Aprenda a codificar desde casa: el manual de habilidades para desarrolladores de cuarentena de coronavirus

Estás atrapado en casa. No puedes salir con tus amigos o ir a eventos. La economía está en caída libre. Pero eso no significa que seas impotente.

El destino te ha entregado esta enorme cantidad de tiempo. Pueden ser semanas. Podrían ser meses. Nadie lo sabe.

La pregunta es: ¿qué vas a hacer con este tiempo?

  • Podría comenzar a transmitir un nuevo programa de televisión.
  • Realmente podrías meterte en un nuevo juego.
  • Podrías mirar por la ventana las calles vacías que te rodean, y tal vez vaciar las botellas que tengas en la casa e irte a dormir.

O podrías tomar el control.

Para cada habilidad que pueda querer aprender, hay un curso en línea gratuito que la enseña, esperando su atención.

La gente subestima la cantidad de recursos de aprendizaje gratuitos que existen. Es una locura. Imagínese una biblioteca de Alejandría del tamaño de Manhattan. Eso todavía no lo mantendría todo.

No necesitas dinero. Si tiene un teléfono o una computadora con acceso a Internet y un lugar cálido para sentarse, está listo.

Solo necesitas tiempo. Y con el Coronavirus flotando por ahí, probablemente tenga más tiempo que nunca.

Soy un ingeniero de software autodidacta. Solía ​​trabajar como profesora de inglés.

Pero en 2011, a la edad de 31 años, comencé a aprender a codificar utilizando recursos en línea gratuitos.

En los 9 años transcurridos desde entonces, trabajé como ingeniero de software en nuevas empresas tecnológicas y construí sitios web para clientes independientes.

No soy especial Hay millones de personas como yo que han cambiado con éxito sus carreras hacia el desarrollo de software en los últimos 5 años. Lo sé porque he ayudado a muchos a hacer esto.

Hace cinco años, creé una comunidad de aprendizaje en línea llamada freeCodeCamp.org. Sí - * comprueba el logotipo sobre este artículo * - que freeCodeCamp.org.

Y a partir de 2020, más de 40.000 graduados de FreeCodeCamp han conseguido trabajos en empresas de tecnología, incluidas Google, Apple, Amazon, Twitter, Spotify y Microsoft.

La mayoría de estas personas no tuvieron que volver a la universidad. No tuvieron que renunciar a su trabajo minorista durante 4 meses para asistir a un bootcamp de programación. Ni siquiera tuvieron que gastar dinero. Acaban de aprender a programar en su tiempo libre, por la noche, después de que los niños se fueran a la cama. O los fines de semana cuando podrían haber estado viendo deportes o jugando videojuegos.

¿Tienes tiempo libre ahora mismo? ¿Tiene espacios en blanco en su calendario para las próximas semanas?

Excelente. Entonces tú también puedes hacer esto.

Te voy a contar cómo.

Y recuerde, a diferencia de mucha gente, no estoy tratando de venderle algo. freeCodeCamp es una organización benéfica pública 501 (c) (3). Todo es gratis.

Puede utilizar freeCodeCamp si lo desea. O puede utilizar algunos de estos otros recursos que recomiendo aquí también.

Solo quiero que tengas éxito.

Quiero que puedas salir en unos meses a partir de ahora y patear traseros post-Coronavirus en el mercado laboral.

Así que use las herramientas de aprendizaje que considere adecuadas para lograr ese poderoso objetivo. Estaré aquí apoyándote de cualquier manera.

Si quieres conseguir un nuevo trabajo después de que pase el #coronavirus, empieza a prepararte ahora.

? ️ Desarrolla tus habilidades.

? Construye tu reputación.

? Construye tu red.

El éxito de su carrera depende de los tres.

Quedarse en casa. Pero no se desespere.

Utilice herramientas en línea para crearlas hoy.

- Quincy Larson (@ossia) 17 de marzo de 2020

Cursos gratuitos y otras herramientas de aprendizaje en línea

Hay miles de cursos que podría recomendar. E incluiré algunos enlaces a listas gigantes de estos al final de este artículo.

En lugar de eso, me enfocaré en una buena muestra representativa de cursos que creo que son un buen uso de su tiempo.

Las principales habilidades que recomiendo que todos aprendan en 2020 son:

  • HTML, CSS y JavaScript
  • Conceptos, algoritmos, estructuras de datos y bases de datos de la informática
  • Python y bibliotecas de ciencia de datos básicas como NumPy
  • Herramientas de línea de comandos como Linux, Git y Bash

Y algunas otras habilidades que serían útiles:

  • Conceptos básicos de pequeñas empresas: cómo encontrar clientes independientes, cómo hacer ventas básicas, contabilidad, asuntos legales
  • Y conceptos básicos de la solicitud de empleo: cómo aprobar entrevistas técnicas, cómo negociar un salario alto
  • Cómo obtener certificaciones profesionales que pueden facilitar la obtención de un trabajo de desarrollador

Para cada uno de estos, recomendaré un solo recurso. Y nuevamente, al final de este artículo, le mostraré otras listas completas de recursos de aprendizaje. Tantos recursos de aprendizaje gratuitos que puedes Scrooge McDuck por el resto de tu vida convirtiéndote en un genio loco si quieres.

Aprenda HTML, CSS y JavaScript

Estos son los componentes básicos de la World Wide Web.

Para cada sitio web que visite, HTML es el hueso. Proporciona la estructura.

CSS es la piel. Proporciona el estilo y la estética.

JavaScript son los músculos y órganos. Hace todo el movimiento y la funcionalidad.

Puede aprender los conceptos básicos de estos, lo suficiente para crear sitios web básicos, en solo unos días de autoaprendizaje.

Ser realmente bueno con CSS y JavaScript te llevará años. Pero lo mismo ocurre con todo lo que les voy a contar aquí.

Excepto HTML. Realmente puedes aprender HTML en uno o dos días. Y sí, puede crear sitios web básicos utilizando únicamente HTML. No serán bonitos. Pero funcionarán. (Estamos hablando de ti, Craigslist).

La mejor manera de aprender esta trinidad de lenguajes de desarrollo web es obtener las 2 primeras certificaciones del plan de estudios de freeCodeCamp. En el camino, creará 10 sitios web. Eso debería ser una práctica más que suficiente para que marques esta casilla en tu perfil de LinkedIn.

Nuevamente, como su nombre lo indica, freeCodeCamp es gratuito. También es completamente a su propio ritmo y se ejecuta en su navegador para que no tenga que instalar nada. Puede hacerlo en su teléfono o tableta. Pero como estarás escribiendo mucho código, un teclado haría las cosas mucho más rápidas.

Puede iniciar las certificaciones freeCodeCamp aquí.

Aprenda conceptos de informática, algoritmos, estructuras de datos y bases de datos

Mucha gente se asusta con las ciencias de la computación porque "apestan en matemáticas" o porque tomaron un curso de Java hace 10 años y lo odiaron.

Bueno, tengo buenas noticias para todos ustedes: la informática no tiene por qué ser una rutina. Puede ser muy divertido. Y no hay ningún curso que haga un mejor trabajo para hacerlo divertido que el excelente curso de introducción a las ciencias de la computación de Harvard, CS50.

Hemos publicado todo el curso sin anuncios en YouTube de freeCodeCamp. Aquí está la lista de reproducción completa.

El curso es de aproximadamente 17 horas de conferencias. Y junto con la descripción de cada video de la conferencia, hay un conjunto de problemas descargable que puede hacer para asegurarse de haber entendido todo. Y también hay notas de conferencias descargables.

Aprenda Python y bibliotecas básicas de ciencia de datos como Numpy

Python es el lenguaje de programación más popular para la Computación Científica, un término general para estadísticas, ciencia de datos y aprendizaje automático.

Python es la elección natural para un segundo lenguaje de programación una vez que haya aprendido algo de JavaScript básico.

El Dr. Chuck es profesor en la Universidad de Michigan y ha enseñado programación durante décadas. Creó el impresionante curso Python para todos.

Y hemos publicado su curso completo de 14 horas sin publicidad aquí. (Asegúrese de consultar la descripción del video para ver sus ejemplos de código descargables y notas de clase).

Python tiene una biblioteca para casi cualquier tarea. Y posiblemente la biblioteca más importante es NumPy (pronunciado num-pie).

Aquí hay un curso gratuito y sin publicidad de 1 hora sobre NumPy, completo con repositorios de códigos que puede usar para jugar en casa.

Aprenda herramientas de línea de comandos como Linux, Git y Bash

Cuando vea Mr.Robot y otros programas sobre desarrolladores o piratas informáticos, verá muchas interfaces de línea de comandos que se ven así:

Los desarrolladores suelen utilizar interfaces de línea de comandos porque puede hacer las cosas mucho más rápido y con mayor precisión que en una interfaz gráfica de usuario (GUI).

Y hay varias herramientas de línea de comandos que los desarrolladores usan mucho. En primer lugar, utilizan Linux para servidores. Muchos de estos servidores ni siquiera tienen una GUI similar a Windows instalada en ellos, por lo que está atascado en la línea de comandos. Y la herramienta de secuencia de comandos de línea de comandos que utilizan la mayoría de las computadoras Linux se llama Bash.

Puede utilizar Bash como indicador para ejecutar comandos. A continuación, se explican algunos de los comandos Bash más utilizados (lectura de 10 minutos).

También puede utilizar Bash para la creación de scripts. (Aunque en estos días, la mayoría de la gente prefiere Python para hacer esto).

Aquí hay un curso de introducción de 2 horas sobre una versión de Linux centrada en la seguridad informática llamada Kali Linux.

Pero hay otra herramienta importante que todo desarrollador debería conocer en 2020. Fue inventada por el mismo tipo que creó Linux y se llama Git.

Git es un sistema de control de versiones que le ayuda a almacenar el estado de su código. Si comete un error, puede volver fácilmente a una versión anterior de su código. Y Git facilita la colaboración en proyectos de código más grandes con otros desarrolladores, utilizando sitios web como GitHub.

El mejor recurso para aprender Git es la propia documentación de GitHub. Aquí hay un buen artículo que explica cómo funciona Git y lo guía a través de algunos de los comandos más comunes.

Aprenda los conceptos básicos de las pequeñas empresas: cómo encontrar clientes independientes y realizar ventas, contabilidad y contratos básicos

Encontrar su primer trabajo de desarrollador es difícil. Es posible que deba postularse para cientos de trabajos antes de que finalmente complete el proceso de entrevista y obtenga una oferta de trabajo satisfactoria.

La mayoría de los gerentes de contratación no quieren arriesgarse con un solicitante desconocido que nunca ha trabajado como desarrollador en ningún otro lugar. Esto no se limita solo a los desarrolladores autodidactas: conozco toneladas de especialistas en informática que se acaban de graduar y luchan por obtener ofertas de trabajo (incluso en un mercado en auge para los desarrolladores de software).

Mi consejo personal es: construya su reputación y su red.

Puede ampliar su reputación creando herramientas para empresas locales.

Puede comenzar trabajando para organizaciones sin fines de lucro locales de forma gratuita. Podrías ayudar a una iglesia o mezquita local a construir su nuevo sitio web. O podría ayudar a un banco de alimentos local a crear un nuevo sistema de inventario.

Pero si se siente ambicioso, vea si puede encontrar un trabajo que pague de inmediato. No es tan difícil como podría pensar. Hay toneladas de bolsas de trabajo con contratos únicos. Incluso podrías encontrar un concierto en una página de clasificados local. (Te estamos mirando de nuevo, Craigslist).

Al construir su reputación como trabajador independiente, ya tiene proyectos exitosos en su haber cuando vaya a postularse para trabajos de desarrollador a tiempo completo.

Esta guía gratuita para desarrolladores web independientes incluye consejos detallados de un desarrollador independiente veterano, un abogado especializado en derecho empresarial y un contador. Piense en ello como "su negocio de desarrollador independiente en una caja". Es un reloj de 3 horas.

En lo que respecta a la construcción de su red, normalmente recomendaría a las personas que asistan a eventos tecnológicos locales y pasen el rato en espacios de hackers y espacios de creación.

Pero con el coronavirus por ahí, te recomiendo que te quedes en casa.

Ingrese a LinkedIn y agregue a todas las personas con las que haya trabajado o haya ido a la escuela.

Si forma parte de algún grupo de Facebook o servidores de Discord, puede crear un nuevo grupo y animarlos a unirse específicamente para las personas que planean hacer la transición al desarrollo de software.

También puede presentarse en el foro freeCodeCamp y comenzar a construir una red personal de personas con ideas afines que están aprendiendo a codificar.

Aprenda los conceptos básicos de la solicitud de empleo: cómo aprobar entrevistas técnicas y cómo negociar un salario alto

Mi amigo Haseeb Qureshi es un ex jugador de póquer profesional convertido en ingeniero de software. Su primer trabajo como desarrollador fue trabajar en Airbnb y ganar 250.000 dólares al año. Eso no es un error tipográfico.

Pudo obtener ofertas de trabajo de Google, Twitch, Stripe y otras grandes empresas, y luego comparar esas ofertas entre sí.

Aquí está su historia de cómo hizo esto, que está llena de toneladas de consejos sobre qué esperar durante el proceso de solicitud de empleo.

Y Haseeb también ha escrito una guía completa para negociar un salario alto una vez que comience a recibir ofertas de trabajo. Estos son una lectura obligada y podrían agregar $ 10,000 a su salario inicial:

  • Diez reglas para negociar una oferta de trabajo (lectura de 20 minutos)
  • Cómo no bombardear la negociación de su oferta (lectura de 30 minutos)

Aprenda cómo obtener certificaciones profesionales que pueden facilitar la obtención de un trabajo de desarrollador

La mayoría de los reclutadores y gerentes de contratación operan con reconocimiento de patrones. Se sabe que pasan un promedio de 6 segundos mirando cada currículum.

Las certificaciones profesionales son una manera fácil de demostrarles a los empleadores que conoce una tecnología. También aumentan la probabilidad de que aparezca en las herramientas de búsqueda de currículum de los empleadores.

No es necesario obtener certificaciones profesionales. Cuestan dinero (generalmente alrededor de $ 100 a $ 200 por examen). Pero si desea ganar algo, le recomiendo comenzar con certificaciones en la nube.

Casi todas las empresas y gobiernos importantes del mundo están en proceso de pasar de sus propios servidores a servidores en la nube. Y puede convertirse en parte del gran esfuerzo para hacerlo de forma segura. Si desea trabajar en DevOps o en Ingeniería de confiabilidad del sitio, estas certificaciones en la nube son un buen camino a seguir.

freeCodeCamp publica nuevos cursos gratuitos de certificación en la nube cada mes y, finalmente, también cubriremos las certificaciones de seguridad.

Pero por ahora, recomiendo comenzar con las certificaciones de Amazon Web Services (AWS). Amazon posee más de la mitad de la industria de la nube pública y casi todas las empresas de Fortune 500 utilizan AWS de una forma u otra.

Escribí esta guía completa para las certificaciones en la nube de AWS, que incluye varios cursos completos gratuitos (y sin publicidad) para prepararlo para estos exámenes.

Y finalmente, algunas listas masivas de recursos de aprendizaje gratuitos

Como prometí, aquí hay algunas listas masivas de cursos gratuitos para ti. Estos se mantienen activamente. Y lo mantendrán ocupado hasta el final de sus días.

Esta primera lista incluye 450 cursos universitarios gratuitos en línea de las 8 universidades de la Ivy League: Harvard, Yale, Princeton, Brown, Columbia, Cornell, Dartmouth College y la Universidad de Pensilvania.

Puede realizar todos estos cursos desde su computadora portátil o teléfono, a su conveniencia. Y nuevamente, todos son gratis.

Aquí hay 450 cursos de la Ivy League que puede tomar en línea ahora mismo de forma gratuita. Las ocho escuelas de la Ivy League se encuentran entre las universidades más prestigiosas del mundo. Incluyen las universidades de Brown, Harvard, Cornell, Princeton, Dartmouth, Yale y Columbia, y la Universidad de Pensilvania. Las ocho escuelas se ubican entre las quince primeras del US News and World Reportnational u… Dhawal Shah freeCodeCamp.org

Y a continuación, el graduado de freeCodeCamp, Dylan Israel, reunió esta increíble lista de recursos de codificación, que también incluye muchas comunidades a las que puede unirse para recibir apoyo mientras aprende a codificar.

La lista de Dylan ha sido tendencia en GitHub durante las últimas semanas. Incluso puede practicar sus habilidades de Git y contribuir con sus propios recursos favoritos a esta lista.

PizzaPokerGuy / ultimate-coding-resources Una colección de los mejores recursos para programación, desarrollo web, informática y más. - PizzaPokerGuy / ultimate-coding-resources PizzaPokerGuy GitHub

Mantente a salvo ahí fuera. Mejor aún, quédese en casa.

Terminaré deseando que usted y su familia pasen por este momento difícil.

Esperemos que el mundo pueda recuperarse del coronavirus.

Pero preparémonos todos para la inmensa cantidad de trabajo que tendremos que hacer cuando el polvo se asiente.

Al aprender estas nuevas habilidades y prepararse para una economía posterior al coronavirus, puede ponerse en posición de hacer el máximo beneficio para su comunidad.

Manténganse fuertes, amigos. Y codificación feliz. ?