Una guía para aprender a codificar (¡y conseguir un trabajo!)

Evite lo que no necesita; aprende y practica lo que haces

Como la mayoría de la gente, no tenía ningún plan para aprender a codificar. La decisión se tomó cuando perdí mi trabajo en Servicio al Cliente en 2015.

La transición fue tan orgánica como enamorarse de un alma gemela. Éramos viejos amores; había intentado que funcionara en la universidad, pero el momento no era el adecuado. ¡Por no decir que fue fácil! Pero fue mucho más fácil con tanta emoción impulsar la experiencia.

Conseguí mi primer trabajo en tecnología en unos 10 meses después de que comencé a enseñarme desarrollo web, después de una increíble cantidad de trabajo.

Y créanme cuando les digo que si yo puedo hacerlo ... ustedes también pueden.

Estoy bastante seguro de que hay muchas guías sobre este tema: cómo aprender a codificar y obtener su primer trabajo de codificación. Pero este está escrito por mí, así que es diferente. Creo que apreciarás mis perspectivas. :)

Ahora, creo que no hace falta decir que condensar todo el proceso en 5 pasos es una simplificación excesiva. Les voy a dar una idea general de qué hacer. Tiene un par de opciones para llenar los vacíos y, honestamente, ¡debería hacer ambas cosas!

Opción 1 : Apóyese en sus comunidades para obtener apoyo

Opción 2 : obtenga ayuda y orientación específicas

¡Ambos son en realidad mi especialidad! Soy un constructor de comunidades apasionado. Entiendo la importancia de ver y escuchar a las personas que están tratando de hacer lo que tú pretendes hacer.

La opción 1 es una parte importante de su crecimiento como desarrollador. Necesitarás una red de personas. Esta industria es realmente impresionante y muy divertida. Crecemos junto con la tecnología y entre nosotros. Nos vemos en conferencias. Participamos en chats semanales de Twitter. Es droga.

La opción 2 tiene algunas barreras de acceso. Esencialmente, implica tener a alguien, idealmente un entrenador experimentado con un profundo conocimiento de su situación y objetivos, que lo tome de la mano, lo conozca, explore sus sueños con usted y planifique su viaje desde donde está hasta donde quiere ser - estar. Luego, profundiza en las habilidades con un mapa real y un camino hacia su destino. En ese momento, el trabajo duro es suyo y solo suyo.

ME ENCANTA trabajar uno a uno con programadores novatos, pero por supuesto, con el nivel de atención y experiencia requeridos… no es gratis. La mayoría de nosotros hacemos lo que podemos para apoyar a los programadores novatos a través de publicaciones en blogs, episodios de podcasts, libros y más, ¡pero algunos de nosotros estamos dispuestos a dar más de nuestro tiempo y presencia que otros! Como tal, la Opción 2 es una inversión en ti mismo.

Por lo tanto, esto es de hecho una descripción general muy simplificada, pero aún así, bastante completa del proceso de aprender a codificar y luego obtener su primer trabajo de desarrollo.

Paso 1: averigua qué diablos estás haciendo

Creé una guía completa de 14 páginas para esta parte realmente temprana del viaje porque es la parte más fácil de pasar por alto. También es la razón por la que mucha gente farfulla: simplemente no hicieron su tarea inicial.

Puede descargar esa guía, llamada "10 cosas que necesita saber ANTES de aprender a codificar", aquí:

¿Estás pensando en aprender a codificar?

¿Está pensando en aprender a programar y cambiar de carrera? Antes de dar el paso, averigüe qué no es la industria… resources.lavieencode.net

Primero, ¿por qué quieres hacer esto?

¿Ha estado soñando con la codificación desde que era un niño? O tal vez acaba de escuchar que la codificación es el futuro, lo que tiene sentido para usted, ya que la tecnología está creciendo tan rápido, por lo que le gustaría subirse al tren. Independientemente de su motivo, deberá establecerlo desde el principio. Será lo que te empuje hacia adelante cuando las cosas se pongan realmente desafiantes.

Necesitarás crear un presupuesto para ti, lo cual sé que apesta porque yo también odio los presupuestos. Si está cambiando de carrera, debe asegurarse de que podrá realizar la transición con el menor estrés posible. La codificación ya es lo suficientemente difícil ... haga su debida diligencia para no hacerlo más difícil para usted.

¿Existe incluso una industria de desarrollo web donde vive? Si es así, aproveche y comience a hablar con la gente. Asiste a reuniones. Conozca a personas que hacen algo similar a lo que usted quiere hacer.

Pregunte sobre la contratación de empresas en la zona. ¿A la gente le gustan sus carreras de desarrollo? ¿Cómo son sus sueldos?

Si no hay una industria de desarrollo activa en su área local, deberá ser creativo. Los trabajos remotos podrían ser una opción si eso es algo a lo que está abierto. Alternativamente, si tiene los recursos y la flexibilidad, mudarse a una nueva ciudad podría ser un cambio emocionante junto con su nueva carrera.

El objetivo del Paso 1 es asegurarse de que si está buscando un trabajo, no se está lanzando a las cosas sin explorar el territorio primero.

Si interviene, es posible que se sienta desprevenido y estresado cuando vencen las facturas, surgen eventos inesperados y, en general, la vida pasa.

Paso 2: elija un título de trabajo y trabaje hacia atrás

Muy bien, me acerco a esto de manera diferente a mucha gente. Cuando las personas comienzan a aprender a codificar, una de las preguntas más importantes que escucho es "¿qué debo aprender?" (también, "¿dónde debería aprenderlo?").

Tenga en cuenta que en este momento ni siquiera está codificando. O tal vez solo está hurgando, aprendiendo lo básico, pero en realidad no está construyendo proyectos. Todavía está sentando las bases y aprendiendo sobre sus herramientas y el propósito detrás de ellas. ¡Esta es una fase súper importante!

Sin embargo, con todas esas herramientas… ¿cómo saber cuáles se alinearán para un puesto de trabajo real?

¿No sería una mierda aprender un montón de habilidades y un lenguaje bastante inconexos a un nivel básico y luego darte cuenta de que en realidad no te consiguen un trabajo? ¿O que necesitará desarrollar solo algunos de ellos con aprendizaje adicional, para incluso ser competitivo para los trabajos en su área?

Sí ... eso es lo que hizo tu chica.

Historia paralela rápida y relevante

Aprendí HTML y luego agregué CSS. Al principio odiaba el CSS, pero lo solucionamos y ahora estamos bien. Hasta ahora todo bien, ¿no?

Luego, llegué a JavaScript. Estaba bien con herramientas básicas como variables e incluso bucles y algunas estructuras de datos básicas. Pero, en general ... las cosas empezaron a ponerse difíciles para mí.

Tengo una discapacidad de aprendizaje no verbal. Es un poco gracioso que no me diagnosticaran hasta después de que luché por adquirir las habilidades necesarias para conseguir ese primer trabajo en 10 meses. Mis luchas tenían mucho más sentido.

En este punto, los algoritmos me asustaron muchísimo. Los algoritmos de freeCodeCamp fueron un gran desafío. Gran parte de mi trauma de aprendizaje pasado surgió. Lloré un montón de frustración cuando simplemente no podía contextualizar un modelo mental para que mi cerebro neuroatípico "hiciera clic".

Presa del pánico, me descarrilé. O tal vez "en" los rieles, cuando comencé a aprender Ruby. Llegué al mismo punto. Entró de nuevo en pánico.

Cambiado a PHP y WordPress. En realidad, me gustaron mucho ambos y los uso principalmente hoy en día junto con JavaScript. Pero, llegué a ese mismo punto y finalmente colapsé exhausto. ¿Qué diablos me pasaba?

Me tomé un descanso en el momento en que escribí este artículo porque había tenido una crisis existencial, preguntándome si era apto para esto:

Por qué estoy reduciendo el aprendizaje de codificación ... y aumentando el aprendizaje de Resolución de problemas

¡Vaya, ha pasado casi un mes desde que publiqué! No puedo creer que el tiempo pase tan rápido. Tengo razón en esto ... medium.com

Esa historia sirve como una advertencia, para mostrar lo que puede suceder potencialmente si haces las cosas fuera de orden o sin una estructura inicial. Tienes que poder desarrollar estas habilidades para un trabajo si quieres un trabajo.

Entonces, aquí está mi pregunta: ¿por qué no simplemente eliminar las conjeturas y averiguar qué tipo de trabajo le gustaría hacer primero ?

Y, por supuesto, ¡esto va a cambiar con el tiempo! Crecemos y cambiamos no solo como desarrolladores sino como seres humanos a lo largo del tiempo. Aprendemos más sobre nosotros mismos y queremos cambiar nuestros objetivos. Pero comenzar con algún tipo de dirección de la brújula REALMENTE ayuda.

¿Cómo averiguas esto? Querrá hacer un inventario realmente profundo de sus sueños, pasiones y habilidades existentes. A menudo, es útil evaluar esto con la ayuda de otra persona (ejem, como yo). Tenemos las habilidades y talentos que traemos a la mesa que otras personas no tienen ... y que nosotros mismos a menudo pasamos por alto.

Mira lo que está disponible en tu área. Busque en sitios de búsqueda de empleo como Indeed. Pregunte en foros locales en línea.

Pero la parte importante aquí es prestar atención a las habilidades que se enumeran: tanto tecnológicas como interpersonales.

Sí, interpersonal . Tenemos suficientes problemas con la falta de habilidades interpersonales como la comunicación efectiva, la empatía, la compasión y la inclusión. No vengas aquí trayendo más.

Pero esas habilidades de codificación van a darle la dirección y un camino a su destino de manera que si cambia sus objetivos, por lo menos saber lo que estás desviación de y a .

Paso 3: desarrolla tus habilidades

En este punto, tiene un buen sentido de su industria de desarrollo local y ha investigado sobre los títulos de los puestos. Tienes una idea de qué tipo de habilidades necesitarás desarrollar en tu camino hacia tu primer trabajo de desarrollo.

Ahora es el momento de desarrollar sus habilidades.

Es importante tener en cuenta que estará haciendo esto junto con el Paso 4, y junto con cualquier otra cosa, es posible que esté haciendo (queremos mantener esas cosas limitadas). Siempre necesitas aprender y desarrollar tus habilidades mientras también construyes proyectos con ellas.

En general, recomiendo que los desarrolladores web comiencen con la interfaz, ya que todos los caminos conducen a la experiencia del usuario. Pero esto realmente varía según esos objetivos iniciales. ¿Ves dónde fue útil identificarlos primero?

Por ejemplo, su punto de partida será diferente si su objetivo es trabajar con datos. Quizás su objetivo sea aprender, digamos, Python, ya que Python es de forma nativa muy eficiente con la gestión de datos. Naturalmente, diseñará su viaje de desarrollo de habilidades de manera diferente según sus objetivos finales.

La parte importante aquí es que no importa hacia dónde se dirija, tiene una hoja de ruta. Quiere evitar quedar atrapado aprendiendo cosas que no necesita porque se interpondrán en su camino para conseguir un trabajo lo antes posible.

Debe tener una lista de recursos que sabe que funcionan para usted. Saber cómo absorber mejor la información es absolutamente esencial para esta parte. No pierda el tiempo con los libros si aprende mejor con los videos. Una vez más, el tiempo es esencial, por lo que no solo necesita aprender, sino aprender de manera inteligente, eficiente y eficaz.

Dedique una buena cantidad de tiempo a esta sección. Está agregando herramientas a su caja de herramientas y las usará todos los días una vez que comience a trabajar.

Paso 4: construya su cartera y reanude

Recuerde, el Paso 4 se lleva a cabo junto con el desarrollo de sus habilidades. Aprende a diario y aplica lo que aprende. Y, por supuesto, hay un par de partes realmente importantes aquí que los estudiantes de codificación pasan por alto. ¡Así que déjame dar con esos muy rápido!

Hot Tip ™ ️ # 1: Los proyectos te permiten The Edge ™ ️ como programador autodidacta

No tiene un currículum largo que se remonta a su especialización en Ciencias de la Computación en el MIT. Yo tampoco. Pero, como ... ¿ay de nosotros?

Nah.

Como programador autodidacta sin el CV para respaldar sus habilidades, necesitará mostrar lo que tiene. Por lo tanto, aunque también se centrará en su currículum, REALMENTE necesita dedicar tiempo a ese portafolio . Si nada más, su currículum crecerá junto con su cartera a medida que agregue habilidades.

Hot Tip ™ ️ # 2: ¡No necesitas muchos proyectos!

Primero, no necesitas muchos proyectos. Creo que muchos novatos se sienten abrumados ante la idea de tener que construir toneladas de proyectos para mostrar lo que saben.

Es por eso que estamos alineando esas habilidades con la descripción del trabajo real. Si se construye ni un solo proyecto, sino mantenerlo de forma inteligente -Usted va a ser ligas por delante de sus compañeros.

Ok, entonces creaste un proyecto, has estado publicando algunas confirmaciones en GitHub y ya sientes que necesitas saltar al siguiente. Mantenlo ahí, padawan.

¿Aprovechaste al máximo el proyecto? Debido a que está aprendiendo habilidades para un trabajo, probablemente se unirán como una pila. Y lo más probable es que pueda aplicar muchas de sus habilidades recién adquiridas a la misma práctica.

Digamos que está trabajando para convertirse en un desarrollador web front-end. Acabas de crear tu primer sitio web.

¿Puede convertir un sitio web en una aplicación web para que los usuarios puedan iniciar sesión?

Si no creó su página primero para dispositivos móviles (¡debería haberlo hecho!), ¿Qué tal si la refactoriza como móvil primero?

Tómese el tiempo para ver sus proyectos no solo como un activo, sino como un vistazo al funcionamiento interno de su cerebro. Esto es INCREÍBLEMENTE importante para los gerentes de contratación. Quieren saber cómo piensa, para poder determinar si aporta algo valioso a su empresa y equipo.

Entonces, para aprovechar Hot Tip ™ ️ # 2 ...

Hot Tip ™ ️ # 3: conviértase en un narrador, no solo en un codificador

¿Qué mejor manera de mostrarle a la gente el funcionamiento interno de su cerebro que documentar su viaje?

Uno de los recursos más utilizados para conseguir un trabajo es ... redoble de tambores ...

... su archivo README.txt.

Esto no debería ser solo el lugar donde le diga a la gente cómo ejecutar su programa. Aquí es donde debería decirle a los gerentes de contratación:

  • Por qué agregaste esa característica
  • Por qué abandonó la adición de esa otra característica y la eliminó
  • Tus próximos planes de expansión
  • Qué le gustaría ver en términos de comentarios
  • Lo que aprendiste en cada paso
  • De lo que te sientes orgulloso y de lo que podrías haber hecho mejor

¿Por qué nos da vergüenza escribir nuestras historias? ¡No tenemos tiempo para eso, necesitamos conseguirle un trabajo!

Hágalo divertido, incluso. Hazlo épico. Tu viaje es épico.

Pero sí, aproveche su archivo README.txt y será mucho más atractivo para las personas que revisan su cartera y lo consideran para un empleo.

Paso 5: ¡Solicite esos trabajos!

¡Hay mucho que desempacar en este paso, simplemente no es posible cubrirlo todo en una sola publicación! ? Entonces, me limitaré a dejar caer un montón de bombas de valor sobre todos ustedes.

Hot Tip ™ ️ # 1: Solicítelo ya

Una de las preguntas más frecuentes que recibo es "¿cuándo debería empezar a solicitar empleo"? Mi respuesta es algo así como "ayer".

Seriamente. Adelante, aplica. Lo peor que pueden decirte es "no".

Entonces, esto es lo que tiene que ver con solicitar trabajos como codificador autodidacta novato. Quieres hacerlo bien y realmente demostrar:

  • Tu voluntad de aprender
  • Tu crecimiento hasta ahora
  • Su entusiasmo por la industria (¡y específicamente por la empresa!)

Cuando se comunique con los gerentes de contratación, querrá ser honesto con el lugar donde se encuentra , mientras muestra lo que ha hecho. Esos dos componentes te pondrán en el radar. Estás siendo vulnerable y aún retienes cierto control sobre tu imagen percibida.

Otra cosa importante para recordar: cuando se postula para una empresa, no es un trato de una sola vez. Muchos novatos cometen el error de pensar que lo es.

Bien, digamos que te rechazan para una entrevista. Ahora, tiene una ventana para solicitar comentarios. Si responden, es una muy buena compañía. ??

Si realmente te gusta la empresa y ellos saben que eres autodidacta (de todos modos lo sabrán por tu currículum, así que sé transparente), diles que te gustaría desarrollar tus habilidades en su dirección y volver a postularte. en el futuro.

Auge. Acaba de establecer una conexión con los gerentes de contratación y demostró lo decidido que está para mejorar sus habilidades para cumplir con sus requisitos.

Hot Tip ™ ️ # 2: Necesita desarrollar habilidades sólidas para entrevistas de tecnología

Además de construir su portafolio, necesitará desarrollar esas habilidades de entrevista. Pero no cualquier habilidad para entrevistas, la tecnología no es como cualquier otra industria que existe. Estamos nerviosos. Nos gusta que demuestre lo que sabe.

Esto es especialmente importante para los programadores autodidactas. Necesitará saber cómo hacer cosas como:

  • Explica qué son los diferentes conceptos tecnológicos.
  • Resuelva desafíos algorítmicos, mientras explica su enfoque
  • Escriba sus pasos para la solución
  • Lea a sus entrevistadores
  • Baila un poco para mantener el control de la entrevista (esta es mi especialidad jaja)

Hay muchos recursos disponibles para esto, como “Cracking the Coding Interview” de Gayle Laakmann McDowell. Además, funciona como un arma contundente.

Rompiendo la entrevista de codificación: 189 preguntas y soluciones de programación

No soy un reclutador. Soy un ingeniero de software. Y como tal, sé lo que es que me pidan que sea brillante ... www.amazon.com

Necesitarás ser tú mismo. Tienen que desee contratar a usted . Es difícil ser tú mismo cuando no estás seguro de lo que se espera de ti, pero ¿por qué ser contratado como alguien que no eres? Eso suena como forraje para una gran cantidad de síndrome del impostor.

Por este punto

En este punto, tiene una creciente caja de herramientas de habilidades.

Estás aprendiendo todos los días. Estás construyendo proyectos, pero aprovechándolos al máximo en lugar de simplemente deshacerte de ellos y pasar a lo siguiente. Estás contando una historia con tu archivo README.txt de GitHub.

Pero lo más importante es que tiene una idea de hacia dónde se dirige . Esa brújula interna, junto con una comunidad de apoyo (como #CodeNewbie), será lo que te salvará cuando te pierdas.

Desarrolle, crezca y gane confianza en usted mismo. ¡Eres un guerrero total y puedes hacer esto! ??