Bueno, aquí están mis humildes opiniones:
Aprende de los demás
Trabajando en colaboración con mejores desarrolladores, la mejor manera de mejorar sus habilidades de codificación y no hay alternativa. Si puedes codificar con alguien con mejores habilidades en persona, hazlo.
Lo mejor es trabajar bajo supervisión o en colaboración con un gran desarrollador. Encuentre a alguien que sea inteligente y que haya trabajado en muchos lugares. Trabaja bajo su supervisión y te garantizo que tus habilidades de codificación aumentarán.
Sal de la oscuridad
No deberías estar en la oscuridad. Como si ocurriera una magia. Presiona un botón que ha aparecido un programa. Tienes que entender cómo funciona todo. Si usa ide, intente trabajar con la línea de comandos durante algún tiempo. Para comprender mejor lo que está sucediendo debajo. Cómo se convierte el código fuente en código de bytes o código de máquina o cómo funciona el código interpretado.
Recoger un idioma del hogar Digamos java. Ahora pon tus fundamentos en ese idioma. Debe saber cómo funciona todo en Java. Cómo se compilan los programas, cómo se ejecutan, cómo funcionan los argumentos de la línea de comandos, cómo se manejan las excepciones, cómo se administra la memoria y qué pasa por referencia y valor.
Ahora, una vez que lo hayas hecho, el trato es el mismo en todas partes. Y en qué es diferente, siempre puedes buscar en Google.
Estructuras de datos y algoritmos.
Esa es la columna vertebral para la resolución de problemas tanto en ingeniería de software como en informática. Usar la estructura de datos correcta en el momento adecuado le ahorra muchos problemas. Te voy a dar un ejemplo. Debe verificar nuevamente si un valor ya está presente en una colección. Usted elige el vector para el almacenamiento. Ahora queda atrapado en los bucles O (n ^ 2). Si ya se hubiera ido con hash set, la vida habría sido fácil y su programa habría sido mucho más rápido.
Los buenos programadores son buenos en algoritmos y estructuras de datos. Período. Si no lo eres, detente y ve a mejorar. De lo contrario, seguirás viendo a otras personas haciendo magia que nunca entenderás.
Divide y conquistaras
Confía en mí, esta estrategia funciona increíblemente. Piensa en la imagen más grande por un tiempo y luego olvídalo. Vea cómo puede resolver el problema en pequeños pasos. Ahora resuelva estos pequeños problemas con una mente relajada.
Ah, por cierto, no vayas allí y empieces a escribir. No sugiero hacer diagramas y toda esa mierda que enseñan en las clases. Pero codifique lentamente. La codificación rápida causará problemas y usted se pondrá nervioso. Así que tómalo con calma y ve despacio y constante. La vida será más fácil. Confía en mí funciona.
Aprenda sobre socios de diseño
Si eres ingeniero de software, no puedes vivir sin patrones de diseño. Lee un libro sobre ellos. Leí los patrones de diseño de Head First. Fue increíble. Puedes elegir el tuyo, pero si nunca has oído hablar de patrones de diseño, ve a leer un libro. Las cosas en línea no funcionarían aquí, en mi opinión. Serás un mejor ingeniero de software después de haber leído sobre patrones de diseño y comprender que otros códigos se volverán más simples.
Mejoran con el tiempo. No tengas miedo de hacer más clases de las necesarias. Simplemente hazlo. Aprenderás tu mismo.
¿Qué pasa con la depuración?
Aprende a ejecutar en seco el código en tu cerebro. Sigue el código secuencialmente y sigue ejecutándolo en tu cerebro. Llegarás al problema. De todos modos, hay muchas técnicas. Al final, el depurador es la clave en los lenguajes compilados. Pero antes de continuar con el depurador, aprenda las técnicas como detener la ejecución en varias etapas si los resultados son correctos hasta esa etapa y generar información de depuración.
Después de esto, viene el depurador. Si eres realmente bueno para depurar, puedes rastrear el error de inmediato. Romper puntos, entrar, salir, si sabes estas cosas, ya eres un buen depurador. El descanso viene con experiencia. Supongo que no hay un atajo realmente.
Conocimiento de la amplitud
Déjame darte un pequeño cuestionario para que puedas ponerte a prueba la cantidad de conocimiento que tienes
- ¿Sabes qué son las solicitudes http? ¿Qué son las solicitudes de envío y recepción?
- ¿Conoces los permisos de archivos?
- ¿Conoces las claves públicas y privadas?
- ¿Sabes sobre dns?
- ¿Conoces las expresiones lambda?
- ¿Qué sabes sobre computación paralela? ¿Y la informática distribuida?
- ¿Conoces los bloqueos de hilo? Y, por supuesto, multihilo.
- ¿Conoces las aplicaciones de escalado?
- ¿Qué tan bueno eres en los sistemas de control de versiones? O específicamente git. No estoy sesgado específicamente hacia git, entonces.
- ¿Qué tan bueno eres con las expresiones regulares?
- ¿Sabes sobre picadillo, salazón? ID únicos?
Y hay innumerables más. Si no sabes la respuesta, ve a buscarlos. A menos, por supuesto, si usted es un desarrollador web de back-end y planea hacer eso toda su vida. Conviértete en un solucionador de problemas. Y podrá trabajar en cualquier tecnología.