En tu etapa, te recomendaría tres cosas:
# 1 Rompe los problemas.
Aprenda a dividir sus problemas en partes más pequeñas, consiga que las piezas más pequeñas funcionen y luego vuelva a unirlas para resolver el problema original que va a resolver.
Por ejemplo, digamos que necesita escribir una aplicación de consola simple que:
- ¿Cuál es tu único hábito que sigues religiosamente?
- ¿Qué puedo aprender en este momento que me ayude en el futuro?
- ¿Cuándo mejoraste más en el baile?
- ¿Cómo superaste tu miedo en el escenario?
- ¿Cuáles son los consejos más productivos para establecer tus mejores objetivos?
- compila sin errores
- toma un valor como entrada
- toma una decisión basada en esa entrada
- luego produce algo basado en esa decisión
Me he dado cuenta de que algunas personas intentarán abordar todo esto de una sola vez y se frustrarán cuando no funcione.
Lo que puedes hacer en su lugar:
- Comience por construir su clase y asegúrese de que se compile de inmediato.
- Luego, asegúrate de que se ejecute sin errores, aunque solo salga.
- Una vez que esté funcionando, haga una copia de seguridad de eso y guárdelo en un lado.
- Luego escriba y pruebe el código que lee la entrada (simplemente puede mostrarlo en la consola para asegurarse de que sea correcto).
- Luego escribe y prueba el código que toma una decisión.
- Luego escribe y prueba el código que escribe la salida.
Si algo simplemente no funciona, es posible que desee deshacerse del código de entrada, volver a la primera copia de seguridad que realizó y simplemente hacer que la salida funcione. O codifique la entrada y consiga que la lógica para la decisión y la salida funcionen.
Al comienzo de mi carrera, abordé cosas como esta. Luego traté de alejarme de este estilo, pensando que los mejores programadores deben poder escribir un gran código de una sola vez y debería aprender a hacerlo. Tal vez la mayoría de los grandes programadores lo hacen. Pero cuando lo intenté, mi eficiencia y calidad cayeron en picada.
Este año leí Think Like a Programmer de V. Anton Spraul (gran libro) y me convenció para volver a este método.
Ahora vuelvo a tener el hábito de descomponer los problemas en partes muy pequeñas como esta, resolviendo las partes más pequeñas y luego volviendo a armar todo cuando tengo una solución bastante optimizada y probada. Aunque parece que sería mucho más lento, pero en realidad soy más rápido que nunca y la calidad de mi código ha mejorado.
# 2 Completa un proyecto personal.
Encuentre una idea para una aplicación que le interese personalmente construir. Entonces constrúyelo.
Para mí, fue la construcción de un analizador XML en PHP. Por alguna razón, eso realmente me interesó en ese momento. (Esto fue cuando XML era nuevo y no había analizadores que conocía).
En ese momento, solo sabía algo de HTML y cómo hacer simples ventanas emergentes de JavaScript. Tenía casi 0 habilidades de programación. Así que fue un gran reto para mí. Trabajando en ese analizador, aprendí a leer y escribir archivos, recorrer líneas y caracteres, buscar y manipular cadenas, trabajar con matrices, implementar lógica condicional, un montón de cosas que no sabía cómo hacer en ese momento. Realmente me abrió el mundo de la programación y me puso en un nivel completamente diferente.
Como era algo que quería hacer, empujé incluso cuando las cosas eran difíciles. Será difícil, así que es importante elegir algo que te parezca interesante.
# 3 Encuentra un mentor.
Si puede encontrar a alguien que esté más adelantado que usted y que esté dispuesto a ayudarlo, se ahorrará mucho tiempo.
Sin embargo, no vaya a ellos con todas las dificultades ni pídales que hagan el trabajo por usted.
Trate de resolver las cosas por su cuenta. Cuando te quedas atascado, no les pidas una solución. En su lugar, pregúnteles “¿Cómo pensaría esto?” O “¿Cómo abordaría esto?”
La programación tiene que ver con cómo desglosas las cosas y las entiendes, luego resuélvelas de una manera lógica. Siempre que sepa cómo usar las herramientas con las que está trabajando lo suficientemente bien, una vez que tenga el pensamiento correcto, la implementación a menudo se vuelve bastante obvia.