Cómo terminé todo el plan de estudios de freeCodeCamp en 9 meses mientras trabajaba a tiempo completo

Durante el año pasado, terminé todo el plan de estudios de freeCodeCamp mientras trabajaba a tiempo completo como profesor. En este artículo, describiré cómo logré hacer esto. En particular, cómo organicé mi tiempo y qué material complementario utilicé.

Antecedentes

Primero, la historia de fondo. No era completamente nuevo en la codificación. Crecí en una pequeña empresa de tecnología.

Mi padre fundó su propia empresa antes de que yo naciera, donde realizaban diferentes actividades dentro de la tecnología, como arreglar computadoras, configurar conexiones y redes a Internet para otras empresas, impartir cursos de informática y construir aplicaciones administrativas para empresas. Era una ciudad pequeña, por lo que básicamente eran los "chicos tecnológicos" de toda la ciudad.

Las oficinas de la empresa estaban en nuestra casa, así que literalmente crecí entre computadoras y personas a las que les gustaban. Comencé a jugar con Visual Basic cuando era niño (uno de los chicos de la empresa me enseñó a usarlo) y pasaba todo mi tiempo libre en línea, charlando con otros nerds.

Cuando tenía unos 12 años, uno de esos nerds me envió un correo electrónico con un manual de desarrollo web (un enorme archivo .txt que básicamente trataba con HTML) y lo usé para construir mi propio sitio de fans. Incluso tenía uno de esos buenos contadores de visitas.

Lo alojé en Geocities, obtuve una URL corta gratuita y lo incluí en Yahoo y AltaVista (estos eran los más grandes en ese momento).

Después de eso, la vida pasó y dejé por completo la idea de ser programador, ya que las circunstancias exigían un enfoque más “realista”. No voy a entrar en detalles ahora, pero básicamente tuve que dejar de estudiar y conseguir un trabajo.

Seguí viviendo mi vida. Construí el sitio web ocasional para los clientes de mi padre y luego finalmente decidí comenzar a enseñar inglés, que era algo que me resultó fácil y básicamente me olvidé del desarrollo web. Hasta 2016 eso es.

Cómo decidí cambiar de carrera

Me encanta enseñar. Es una profesión gratificante, interesante y divertida. Pero tiene sus desventajas. Al principio, todo parecía un desafío, pero después de tantos años haciéndolo, comencé a sentir que no tenía ningún propósito. Que ya no estaba creciendo ni aprendiendo.

Me estaba sintiendo estancado. Como si mi trabajo fuera exactamente el mismo año tras año. Solo estaba haciendo los movimientos. Tampoco ofrecía muchas oportunidades para reubicarme, algo que se volvió muy importante para mí más adelante.

En 2013, conocí a mi esposo, y el año siguiente hicimos un viaje de mochilero de tres meses a Europa, que es una publicación de blog completamente diferente, pero básicamente tenía un presupuesto extremadamente bajo y tuvimos una experiencia increíble. Nos encantó Europa y decidimos volver para otro largo viaje.

Pasó el tiempo, hicimos otras cosas y luego encontré Codecademy y comencé a jugar con él, y a jugar con la idea de convertirme en un desarrollador a tiempo completo. Ya tenía algo de experiencia en la creación de sitios web solo con HTML y CSS, pero sin JavaScript. Estaba leyendo muchas historias de éxito en línea, pero todavía no lo consideraba una carrera real, ni mucho menos.

Mientras tanto, estábamos planificando el próximo viaje largo, ahorrando dinero, planificando y demás. Trabajaba cada vez más como traductora autónoma, muy involucrada con mi carrera, traduciendo cosas interesantes como novelas y poesía. Llegó 2017 y volvimos a Europa esta vez durante dos meses.

Allí conocimos a un grupo de desarrolladores. Fue loco. Cada uno de los surfistas que conocimos parecía estar en TI de alguna manera, ya sea como gerente de producto de software, desarrollador, evaluador, etc. Todos nos animaron a entrar en tecnología. En ese momento ya habíamos decidido que queríamos mudarnos a Europa, así que muchos de ellos nos dijeron: “Podrías encontrar un trabajo aquí. Los desarrolladores tienen demanda aquí, necesitamos muchos de ellos ".

Antes de que terminara el viaje, tomamos la decisión de inscribirnos para un certificado técnico de 2 años en una universidad técnica recién fundada cerca de nuestra ciudad natal. El programa era principalmente Java, así que cuando volvimos, comenzamos un curso de Java en Cousera. El primer módulo era en realidad un curso de JavaScript, por lo que en realidad nos enganchamos con JavaScript de inmediato.

Mientras aprendíamos JavaScript, esperamos el comienzo del año escolar en marzo de 2018. Solo había 50 lugares para la Universidad, así que nos dedicamos mucho y aprendimos de antemano. Fuimos, hicimos exámenes, aprobamos cursos y luego tuvimos que esperar hasta que se decidieran. Obtuvimos las calificaciones más altas entre todos los candidatos, pero esas calificaciones no marcaron la diferencia. Los lugares se asignarían mediante un sistema de lotería. Mi marido entró y me dejaron fuera.

Decidió que prefería aprender por sí mismo, ya no estaba tan interesado en Java porque estaba enganchado a JavaScript, así que empezamos a aprender por nuestra cuenta.

Empezamos con Codecademy, pero era demasiado portátil para nosotros (no teníamos cuentas Premium). En algún lugar leímos sobre freeCodeCamp. Y lo comenzamos, muy lentamente al principio (el primer certificado me llevó meses obtener, es cierto que en el medio se cambió el plan de estudios y se me cayó mi computadora portátil y tuve que repararla). Después de que terminaron las vacaciones de verano y volví a trabajar a tiempo completo, las cosas se pusieron difíciles.

Trabajando a tiempo completo y haciendo freeCodeCamp a toda velocidad

No fue fácil, no mentiré. Me ayudó que la mayoría de mis amigos y conocidos no vivan cerca de mí, y yo vivo en un pueblo pequeño que no ofrece muchas oportunidades de entretenimiento. En ese sentido, la programación fue un salvavidas. Tenía algo divertido que hacer y era adictivo, así que podía matar horas de aburrimiento con él.

Así que eso ayudó mucho a la hora de lidiar con la cantidad de horas que pasé haciendo trabajo mental (enseñar y estudiar).

El primer certificado me llevó meses, en parte porque estaba esperando ingresar a la Universidad y en parte porque estaba trabajando 10 horas diarias durante los primeros 3 meses del año escolar.

Desafortunadamente, no podía dejar mi trabajo y estudiar a tiempo completo, ya que tenía que pagar las cuentas, así que tenía que ser realmente bueno en 3 cosas:

  1. Gestión del tiempo
  2. Disciplina
  3. Organización

Gestión del tiempo

Comencé a trabajar a las 7 a.m., así que comencé a levantarme a las 4:30 a.m. la mayoría de los días. Comencé el día con desafíos de FreeCodeCamp y café. A veces también leía un libro o hacía otros tutoriales, según en qué estaba trabajando en ese momento. También estudié durante la pausa del almuerzo y después del trabajo, pero acepté el hecho de que no era tan productivo durante la semana debido al trabajo. Así que durante la semana hice principalmente desafíos cortos, lectura, etc. Y trabajé en proyectos los fines de semana, feriados y tiempo libre.

Si tuviera 30 minutos, leería 30 minutos. Si tenía 15, estudiaba un poco durante 15 minutos. Empleé cada momento libre de mi día para estudiar.

Los domingos, preparaba la mayoría de mis comidas de la semana para no tener que perder tiempo cocinando y no tener que terminar comiendo cosas poco saludables. También planifiqué y reuní todo lo que necesitaba para trabajar durante la semana, por lo que no necesitaba dedicar más tiempo a las horas normales de trabajo.

Afortunadamente después de junio, mis horas de trabajo se redujeron de 10-12 a 8, por lo que ahora estaba trabajando en un horario normal y allí comencé a acelerar el ritmo.

Disciplina

Tendrás que estudiar incluso en los días en que no te apetezca. Aquí es donde la motivación también juega un papel importante, pero la disciplina es importante, especialmente si eres como yo y te distraes mucho con las redes sociales y los videos de gatos.

El mejor consejo que puedo darte para combatir la tentación de leer artículos en línea es este: si se te ocurre una pregunta en la cabeza como "¿cómo vuelan los aviones?" (que suele ser el tipo de pregunta que me deja llevar y me absorbe durante 30 minutos), escríbalo en algún lugar y prométase que podrá leerlo todo después de terminar lo que está haciendo.

El 99% de las veces ya no te importará, porque esas preguntas simplemente surgen en tu cerebro porque quiere distraerse. Empuja y lo vencerás.

Otro aspecto de la disciplina es tener que elegir el estudio sobre otras cosas. Esta es la parte no tan divertida. Tuve que renunciar a muchas, muchas cosas que disfrutaba para favorecer el estudio, y no veo la hora de poder volver a ellas. Lo hice solo porque quería convertirme en desarrollador lo antes posible (ver Motivación a continuación), pero incluso si no tienes prisa como yo, es posible que te des cuenta de que pasas mucho tiempo haciendo cosas que, incluso aunque son agradables y agradables, toman demasiado tiempo.

Tendrá que priorizar y tomar decisiones difíciles.

Motivación

Tenía un motivador muy fuerte que era convertirme en desarrollador y mudarme a Europa. Este fue mi objetivo durante mucho, mucho tiempo y llegué a un punto en el que me frustraba no conseguirlo. Todos mis amigos se fueron de la ciudad, prácticamente no tengo familia aquí, me sentía aislado y quería irme.

Eso es lo que me empujó. Se sentía como un fuego bajo mis pies, sentí que no tenía otra opción. Necesita una fuerte motivación para hacer cambios radicales. No sé ustedes, pero soy un tipo de persona que “no arregla lo que no está roto”, por lo que es muy difícil conseguir que haga cosas solo por hacerlas.

Mis aficiones son todas muy prácticas y productivas: jardinería, yoga, cocinar. Necesito tener una razón para hacerlas (quiero verduras gratis, me duele la espalda, tengo hambre). Si eres como yo, necesitarás encontrar una zanahoria para seguir adelante.

Dedique un tiempo a pensar en esto, ¿qué es exactamente lo que desea lograr al finalizar freeCodeCamp? ¿Qué quieres cambiar o conseguir en tu vida personal a través de él?

El plan de estudios + recursos complementarios

Los siguientes son algunos de los recursos complementarios que utilicé en mi viaje freeCodeCamp. Tenga en cuenta que esta no es una lista exhaustiva porque hice muchas búsquedas en Google y que algunos de estos cursos no son gratuitos.

Diseño web receptivo: esta era la parte con la que ya tenía algo de experiencia, por lo que fue fácil y divertido. Usé algunos recursos complementarios, especialmente para Flexbox. Mi lugar favorito para esto es Interneting is hard.

Algoritmos de JavaScript y estructuras de datos: una vez que llegué a los módulos de JavaScript, me enganché. Todo fue super divertido, aprendí mucho y tenía muchas ganas de ponerlo en práctica.

Para esta sección usé libros, principalmente. Ya tenía suficientes ejercicios con freeCodeCamp, pero necesitaba más explicaciones. Beginning JS también tiene toneladas de ejercicios.

  • A partir de la quinta edición de JavaScript
  • No conoces JS
  • Fundamentos de programación con JavaScript, HTML y CSS
  • Documentación de JavaScript

Para cuando llegué a esta sección, también me uní al programa Summer of Code de 1 Million Women to Tech (1MWTT). Aprendí Python básico y JavaScript básico a avanzado, lo que me ayudó mucho, especialmente con Promises.

Aprender Python también me ayudó a reforzar algunos conceptos básicos de programación. Te recomiendo seriamente que cuando te sientas seguro con JavaScript, pruebes un nuevo lenguaje, solo sus conceptos básicos. Se sentirá mucho más cómodo una vez que sepa cómo hacer lo mismo con diferentes herramientas.

Frameworks de JavaScript: esta sección también fue excelente, ya que me dio una base en React y Redux. Ya había estado siguiendo un curso de React en Udemy, React 16.6 - La guía completa (incl. React Router y Redux).

Recomiendo ampliamente este curso y otros del mismo autor. Es increíblemente minucioso y sus explicaciones son impresionantes. Este fue uno de los pocos cursos de Udemy en los que seguí el proyecto que él hace: normalmente veo los videos y aplico los principios a todo lo que estoy trabajando.

En 1millionwomentotech tuvimos una semana de React que era principalmente nativa de React y luego comencé a jugar con ella. En ese momento también comencé a trabajar en mi proyecto paralelo con mi esposo, que decidimos que iba a ser una PWA con React.

No puedo enfatizar lo importante que es construir algo propio desde cero. He aprendido mucho más en un par de semanas construyendo nuestra aplicación de lo que he aprendido con cualquier curso o tutorial.

API y microservicios: esta sección fue una gran revelación para mí y lo cambió todo. Hasta ese módulo, estaba seguro de que quería ser un desarrollador front-end, pero después de aprender Node.js comencé a pensar en ser un desarrollador back-end o Full Stack. Crear API es muy divertido y los resultados se ven muy rápido. Comencé a construir mis primeros proyectos pequeños Full Stack y me emocioné mucho.

Algunos de los recursos que utilicé:

  • El curso completo para desarrolladores de Node.js (segunda edición)
  • Introducción de Node Girls al desarrollo backend con Express
  • Documentos de nodo
  • Express Docs
  • NodeSchool
  • Introducción a Node.js
  • Diseño de API REST y GraphQL en Node.js, v2 (usando Express y MongoDB)

Durante este tiempo, también me ofrecí como voluntario para “1MWTT” y se me pidió que creara una aplicación Probot para incorporar voluntarios con Node. Esto también me dio algo de práctica con Node, lo cual fue muy divertido.

Control de calidad y seguridad de la información: este módulo también fue una revelación. Hasta entonces nunca había escrito una sola prueba en mi vida. Ahora me encanta escribir pruebas e incluso me interesó mucho el desarrollo basado en pruebas.

Usé principalmente los documentos para esta sección, pero luego decidí probar mi interfaz también, y encontré este increíble curso en Udemy que no puedo recomendar lo suficiente. El instructor es, con mucho, el mejor instructor que he visto en Udemy. No puedo esperar a consumir cualquier otro curso que lance en el futuro.

- Documentos de Chai

- Prueba de reacción con Jest y Enzyme

Visualización de datos con D3: este fue el certificado más difícil, sin duda. Las explicaciones fueron buenas, pero una vez que llegas a los proyectos, descubres que los desafíos solo cubren el primer proyecto, y estás un poco solo para el resto. Y no hay muchos buenos recursos en línea. Principalmente leo los documentos y utilizo tutoriales. Estos son los recursos que finalmente me ayudaron a aprobar esta certificación:

- Tutoriales de D3.js por d3Vienno

- Documentación D3

Consejos para terminar el plan de estudios

En resumen, estas son las cosas que más me ayudaron a lograr mi objetivo de terminar el plan de estudios:

  • Utilice el plan de estudios como una hoja de ruta, pero complemente con otros recursos
  • No te quedes atascado por mucho tiempo: haz preguntas, Google, programa de pares.
  • Establezca metas realistas para cada día y semana. No te castigues si una semana estás más lento: la vida pasa. No dejes que te desvíe del rumbo.
  • Tenga en cuenta su motivación: es lo que lo ayudará a superar los días difíciles.
  • Priorizar: tendrá que reducir el tiempo que dedica a otras cosas.
  • No olvide tomarse unos días libres. Son vitales para el proceso de aprendizaje. ¡Y duerme lo suficiente!

Después de freeCodeCamp, me sentí un poco perdido. Esta fue la hoja de ruta que me guió a lo largo de mi viaje de profesor a desarrollador.

Después de unos días de reflexión y planificación, me dediqué a mi proyecto paralelo que estoy construyendo con mi marido. Estamos aprendiendo y divirtiéndonos, y estamos muy emocionados por ello.

Y sí, recibí una oferta de trabajo justo después de terminar el plan de estudios , pero más sobre eso en un próximo artículo.

En general, no podría haber aprendido todo lo que he aprendido tan rápido si no hubiera sido gratis en CodeCamp y estoy extremadamente agradecido con todos los que hicieron posible un proyecto tan maravilloso.

Si siente lo mismo y puede retribuir, considere donar a freeCodeCamp aquí.