
Pasé el final del invierno en una cabaña calentada por una estufa que funciona con energía solar en el norte de Utah. No había ducha, pero montamos un satélite en el techo y logramos tener Internet más rápido que mi apartamento en San Francisco. Decidí aprender a codificar.
Quería usar el aislamiento para aprender algo nuevo. Desde que tengo uso de razón, he tenido una mentalidad técnica, pero mis intentos anteriores de codificar han arrojado resultados poco espectaculares.
Aprendí algo de C ++ en la escuela secundaria, pero principalmente escribí código gigantesco y repetitivo porque no entendía las funciones. Tomé un curso de Visual Basic .NET en la licenciatura, pero casi no tengo memoria de lo que sucedió allí. Trabajé en el curso de JavaScript de Codecademy hace unos años desde una hamaca en Guatemala.
Creo que este camino sinuoso de no aprender completamente me preparó de alguna manera. También tengo un título en Gráficos por Computadora, que estaba mucho más enfocado en diseño, animación y modelado que en codificación, pero me dio algunos conocimientos básicos de HTML / CSS.
Se ha escrito mucho sobre "por qué codificar", por lo que no voy a vencer a un caballo muerto aquí.
La versión corta es la siguiente: las personas inteligentes parecen estar de acuerdo en que saber codificar es un multiplicador de fuerza para casi todo lo demás en su vida.
Después de investigar en línea para determinar el mejor lugar para comenzar, decidí comenzar a trabajar a través de Free Code Camp. El segundo lugar fue The Odin Project, pero Reddit pareció estar de acuerdo en que FCC era el punto de partida más sólido. Y por alguna razón confío en la mente colmena de Reddit cuando se trata de estas cosas.
Así que establecí una pequeña meta inicial de 2 horas / día e instalé RescueTime para rastrearme. He aquí un vistazo de cómo fue.
DÍA 1
Trabajé rápidamente en las tres primeras secciones. HTML5 / CSS, Responsive Design con Bootstrap y jQuery tuvieron un tiempo de finalización total estimado de 13 horas, pero según RescueTime los eliminé en solo cuatro. En este punto me preguntaba si estaba haciendo algo mal, pero decidí felicitarme y seguir adelante.
DÍA 3–4
Había estado en una buena racha y me estaba moviendo sin problemas a través de la sección de JavaScript básico. Temprano en la mañana del día 3, comencé a sentirme atrapado por primera vez en un ejercicio de búsqueda de perfiles que involucraba el uso de un bucle para recorrer una serie de objetos. Pero a las 10:30 pm había llegado casi a la mitad del Scripting de algoritmos básicos (y según RescueTime, había pasado un total de 12 horas y 20 minutos en Free Code Camp).
A la mañana siguiente comencé a analizar el resto de los algoritmos básicos, escribiendo algunas de las soluciones en 3-5 minutos. Confirmé en el chat de la FCC que muchas personas comienzan relativamente rápido y disminuyen con el tiempo a medida que aumenta la dificultad relativa (lo que hace que los tiempos de finalización estimados sean más realistas).
Dicho esto, en la noche del cuarto día terminé los algoritmos con un total de 18 horas en FCC (y un estimado de 22 horas de trabajo total contando el tiempo dedicado a otros recursos de investigación como Mozilla Developer Network. en este punto eran 75 horas.
Mi micro-meta original de 2 horas al día me había dejado pensando que habría completado 100 horas de trabajo cuando saliera de mi escondite de Utah. Ahora que me había inspirado mucho el trabajo, había completado el 75% de donde quería estar en tan solo cuatro días.
DÍA 17
Entré en modo de cabeza abajo y no tomé notas de progreso durante dos semanas. La mala noticia es que hay poco que informar allí, pero la buena noticia es que FCC me tuvo en un estado de flujo durante dos semanas seguidas. En este punto, había completado un portafolio esquelético (ahora un poco más sustancioso) y construí una Máquina de Cotizaciones Aleatorias, así como una aplicación meteorológica inspirada en El Señor de los Anillos realmente horrible. El día 17 envié mi visor de Wikipedia. Aprender a usar las API fue divertido y útil. ¡Resulta que puedes construir cosas de complejidad media sin entender los servidores back-end o las bases de datos (puedes simplemente conectarte a los de otra persona)!
DÍA 23-24
Trabajando a través de los algoritmos intermedios, me encontré comenzando a ver la diferencia entre código limpio y feo. También comencé a insertar más notas en mi código para revisarlas más tarde. De alguna manera, me tomó tanto tiempo darme cuenta de que console.log ("pruebas") siempre se escuchan en la consola del desarrollador de JS en el navegador. Comencé a usar //repl.it para ejecutar código que mostraría los registros de la consola como una salida clara. Es algo vergonzoso ahora, pero bueno, no dejé que eso me detuviera y ahora lo sabes mejor.
Fallé mi navegador por primera vez trabajando con Sum of All Primes. Independientemente, finalmente resolví el problema y me sentí realmente bien al lograr que el 99% de la función principal se resolviera sin ninguna investigación externa.
DÍA 31–33
Encontré los desafíos del algoritmo avanzado bastante… bueno… avanzados. Estaba bastante emocionado cuando terminé el algoritmo avanzado "Rango de fechas amistosas" en solo 90 minutos. En dos de estos algoritmos avanzados, hice referencia a funciones específicas de StackOverflow para ayudar con la limpieza de mi código. En ese momento me preocupaba que esto pudiera volver a perjudicarme, pero muchos recursos que he encontrado argumentan que lo que hace a un gran programador es la capacidad de hacer preguntas específicas a un motor de búsqueda. Por ejemplo, crear una versión JS del algoritmo de Heap desde cero sería matemáticas de alto nivel y una reinvención de la rueda. Encontrar un modelo de JavaScript con el que pudiera trabajar me permitió terminar de construir el automóvil.
El día 33 terminé el último de los desafíos de codificación avanzada. El siguiente proyecto (el primero de los proyectos de Advanced Front End Development) requirió la construcción de una calculadora JS. Fue agradable volver a profundizar en el lado HTML / CSS de las cosas. Aumenté el desafío codificando en vivo en el canal de Twitch de FCC y terminé completando el proyecto con una audiencia en vivo de 24 personas. Esta fue una gran experiencia que me obligó a explicar mi código mientras lo escribía. La codificación en vivo también tiene la necesidad incorporada de mantener el impulso. Recompensa un estilo de codificación de "moverse rápido y romper cosas" sobre un método más de investigación.
DÍA 40
Codificar el juego Tic-Tac-Toe resultó ser (para mí) el proyecto más agotador de todos. Para mí, codificar la IA no fue muy divertido ni satisfactorio. En mi opinión, mi resultado final tenía una IA débil y una interfaz deficiente. En ese momento me preguntaba si quizás construir cosas interactivas como esta simplemente no era mi pasión.
DÍA 45
Trabajé increíblemente duro en el proyecto final que pedía una réplica de JavaScript del juego Simon de los años 70, con un "modo estricto" opcional y una velocidad de juego cada vez mayor. Estaba decidido a hacerlo excepcional. En el momento de escribir este artículo, todavía siento que mi Simon es una de las versiones más atractivas que existen. ¡El día 45 terminé el proyecto y obtuve mi certificado de Desarrollo Front End!

Estadísticas finales:
77 horas de referencia y aprendizaje
67 horas de desarrollo de software
41 horas de comunicación (incluido el chat de la FCC)
= 185 horas en el transcurso de 45 días (o ~ 4 horas / día)

Terminé terminando el plan de estudios en aproximadamente la mitad del tiempo.
No puedo recomendar lo suficiente el programa Front End Dev de Free Code Camp. Independientemente de cuánto tiempo te lleve, es gratis, es fácil de comenzar y tiene una comunidad inteligente y accesible (si lo digo yo mismo).
Me había encontrado sintiéndome intelectualmente hambriento y aprender a codificar proporcionó un estiramiento satisfactorio para los viejos músculos mentales. Me mudaré de regreso a San Francisco y tengo la intención de continuar este viaje hacia la tecnología.
Si está aprendiendo a codificar, trate su educación como el trabajo que es. ¡Sígueme y déjame saber cómo puedo ayudarte! Nunca antes las enormes ganancias del progreso iterativo habían sido tan claras como cuando se aprende a codificar.
