¿Hay muchas cosas que un desarrollador debe saber? ¿Qué son?

Lo más importante que hay que entender es: ¿qué valor estoy aportando al proyecto al crear algo? Usted, su equipo y los gerentes deben tener un claro entendimiento de por qué están haciendo algo, cuán valioso es y cómo medir el éxito. Si no puedes hacer eso, estás perdiendo el tiempo.

En un nivel técnico, es muy bueno tener una comprensión de los algoritmos, las estructuras de datos, la gran notación O y los patrones de diseño. Los problemas más comunes (rendimiento, lógica y seguridad) provienen de una arquitectura mal definida. El resto de los problemas generalmente provienen de una documentación deficiente y una sintaxis de codificación deficiente.

Una pieza de código ideal será 50% o más líneas de documentación en lugar de líneas de código, definir claramente qué algoritmo / estructura de datos / patrón de diseño se está utilizando, tener una definición de función de estilo Javadoc, descripción de cada variable local (excluyendo contadores) y un resumen de una línea de lo que están haciendo cada condicional y bucle, junto con los enlaces URL para una lógica particularmente compleja.

Por ejemplo: “Esta es una clase de adaptador para una base de datos de Postgres. Esta función permite la recuperación de datos de nodos secundarios en una estructura de árbol, basada en el recorrido del árbol preordenado modificado; acepta una cadena que define a qué tabla llamar, una cadena para el nombre de la columna y un int sin signo del índice principal. Realiza la consulta, recupera una matriz de lista plana, la convierte en una estructura de árbol de matriz asociativa y la devuelve “.

Finalmente, el código debe seguir un estilo de sintaxis / código coherente, que el equipo haya aceptado. El uso de herramientas de alineación ayuda a hacer cumplir esto. El estilo de código con una buena documentación garantiza que los demás mantengan el código que usted escribe con una dificultad mínima.

Un requisito absoluto es conocer el objetivo del proyecto y conocer las opciones disponibles para lograr ese objetivo (por ejemplo, qué idioma [s] será apropiado incorporar, de modo que al menos un conocimiento superficial de unos pocos idiomas también sería esencial).

Un desarrollador también debe saber para qué plataformas debe desarrollarse el proyecto (lo que influirá en las elecciones establecidas anteriormente).

El desarrollo adecuado debe considerar al usuario final y al mercado o comercialización del producto (intente ver el proyecto a través de los ojos de un vendedor y del mercado objetivo: pregúntese cuáles serán las características para atraer a los usuarios al producto. ¿Por qué preferirán los usuarios? su producto sobre cualquier competencia?).

Después de eso, uno puede derivar el resto. El desarrollo y la codificación son como construir algo con bloques Lego en el sentido de que con solo algunos tipos de piezas, se pueden crear estructuras increíblemente complejas, limitadas solo por la imaginación y las habilidades de resolución de problemas.

En mi opinión, casi todos los desarrolladores necesitan saber

  • Lenguaje de programación Atleast 1 a fondo
  • Implementaciones de estructuras de datos y algoritmos comunes que se utilizan con más frecuencia

Aparte de esto, las cosas que un desarrollador necesita saber dependen del campo en el que desea avanzar.

Por ejemplo, para un desarrollador web de front-end, HTML5 / CSS3 / JavaScript son necesarios, junto con al menos 1 framework de JavaScript popular como jQuery, AngularJS, etc.

Para un desarrollador web de back-end, el conocimiento del marco MVC al menos 1 y la plataforma en la nube al menos 1 (como Google App Engine) es muy importante.

Yo diría que una habilidad muy importante es poder depurar de manera efectiva. Eso significa usar las herramientas de depuración correctas, extraer la mayor cantidad de información posible (mensajes de error, registros de retroceso) y poder entender esa información.

A través de la experiencia, desarrollas una intuición para el código propenso a errores.