La mayoría de la gente supone que estudié informática en la universidad y que he estado codificando desde que era joven. Por lo general, se sorprenden cuando les digo que, de hecho, estudié Marketing y español y que, aunque mi hermano me enseñó a construir una página web muy básica a principios de la década de 2000, en realidad no comencé a aprender a programar hasta que estuve un adulto con trabajo
La verdad del asunto es que mi historia no es única. Simplemente no es cierto que tengas que ser un niño genio que ha estado codificando desde que tenían 6 años para poder programar desde la edad adulta. Hay toneladas de ejemplos de personas que tampoco tienen una formación técnica que se convirtieron en programadores de tiempo completo o simplemente aprendieron una nueva habilidad que disfrutan usar.
En esta publicación, te daré algunos consejos que me han servido bien en mi viaje. Mi camino de ninguna manera es el único y, dependiendo de la situación en la que se encuentre, podría no ser práctico o adecuado para usted, pero ciertamente es un camino, y espero que lo ayude en su camino hacia el aprendizaje de la computadora.

Foto de Miguel Á. Padriñán
Original en blogEl privilegio del tiempo
Es útil hablar primero un poco sobre la verdadera barrera para aprender a programar: el tiempo . Dada la enorme cantidad de cosas que uno puede y necesita aprender para ser un programador efectivo, requiere una gran cantidad de tiempo de aprendizaje.
Esto podría no ser posible para que todos se comprometan. Si tiene responsabilidades que requieren que dedique una gran cantidad de su tiempo (es decir, más de 40 horas a la semana) para llegar a fin de mes o si simplemente tiene otros compromisos de mucho tiempo (como familiares, amigos, organizaciones sociales, etc.) que son más importantes para usted, es posible que no tenga el tiempo libre para dedicarlo al aprendizaje. Eso esta bien! La codificación puede ser una verdadera alegría y es una gran carrera, pero a veces otras cosas son más importantes.
Es importante comprender que aprender a programar a un nivel de empleabilidad es una inversión de tiempo bastante grande y es mejor saber por adelantado si puede o desea invertir una cantidad de tiempo tan grande. La buena noticia es que, como veremos, hay una tonelada de recursos para aprender a programar que le permiten aprender en un horario flexible.

Foto de #WOCinTech Chat
Por dónde empezar
Cuando las personas hablan sobre comenzar a aprender a programar, a menudo hablan sobre con qué lenguaje de programación comenzar. Este es un punto de partida natural ya que la codificación siempre se realiza a través de un lenguaje. Es el aspecto más tangible de aprender a programar computadoras.
Existen muchos criterios para elegir un idioma para comenzar, que incluyen:
* Idiomas con muchos recursos amigables para principiantes :. Los recursos de programación a menudo pueden estar llenos de jerga técnica y pueden esperar implícitamente el conocimiento que es probable que usted como principiante no tenga. Si no comprende un recurso, no se culpe; encuentre un recurso que se esfuerce más por satisfacer sus necesidades como principiante. JavaScript funciona muy bien en este sentido.
* Idiomas que no son demasiado complejos: algunos idiomas requieren mucho más conocimiento previo para ser utilizados. Go es un ejemplo de un lenguaje simple. C ++ por otro lado es un lenguaje muy complejo y, por lo tanto, probablemente no sea la mejor opción para un primer idioma.
Algunos criterios frecuentemente citados que sostienen mucho menos peso:
* Idiomas que dominan en la industria: uno de los primeros idiomas que aprendí después de Ruby fue Standard ML, que no es realmente utilizado por ninguna compañía, pero influyó en mi carrera quizás más que cualquier otro idioma. No se concentre en un idioma en particular solo porque cree que algún día podría conseguirle un trabajo.
* Idiomas que están destinados a un caso de uso particular : en el mundo real, algunos idiomas se usan típicamente para ciertos casos de uso sobre otros. Por ejemplo, el software de audio a menudo se crea usando C ++, pero si está interesado en aprender JavaScript y hacer programación de audio, no asuma que necesita soltar todo y aprender C ++. Pregunte si hay algún soporte en el idioma de su elección para lo que desea construir y no le importe si no es el idioma que normalmente se usa.
No tengas miedo de elegir el idioma equivocado. Siempre puede cambiar a otro idioma si encuentra que su elección actual no satisface sus necesidades. De hecho, te animo a que aprendas muchos idiomas. Cuantos más idiomas aprenda, más se expondrá a diferentes ideas, diferentes casos de uso y diferentes desafíos.
Yo, por ejemplo, aprendí a programar en alrededor de 10 idiomas más o menos con cierto nivel de competencia dentro de los primeros años de aprender a programar. Cada idioma me expuso a algo nuevo que hizo más claros los conceptos en otros idiomas. Ruby, por ejemplo, me expuso a algo llamado programación funcional, pero no fue hasta que aprendí Clojure y luego Haskell que el concepto realmente hizo clic.
Pero quizás el aspecto más importante de qué idioma elegir es la comunidad de personas asociadas con ese idioma que veremos a continuación.

Foto de rubyonrails.org
Comunidad y apoyo
La mayoría de las personas fuera de la programación (y una cantidad deprimente dentro de ella) no se dan cuenta de que la programación (y especialmente aprender a programar) es a menudo una actividad muy social. Ya sea que formes parte de un equipo en una empresa o trabajes en un proyecto en tu tiempo libre, la mayoría de las veces estás interactuando con otros. Los mejores programadores son aquellos que no solo disfrutan de los detalles esenciales de lo que están trabajando, sino que también pueden sacar lo mejor de los demás.
Es importante encontrar una red de apoyo que lo ayude con su aprendizaje. Algunas comunidades de programación son más amigables para los principiantes que otras. Por ejemplo, comencé en la comunidad de Ruby on Rails (RoR) porque estaba haciendo trabajo de soporte en una startup que estaba usando RoR. Cuando comencé, no entendía realmente por qué era RoR: la gente diría que Ruby es un lenguaje de programación y Rails es un marco, pero estos términos me confundieron. Todo lo que sabía era que las personas que conocí a través de Twitter y en reuniones locales fueron muy alentadoras. Por supuesto, estaba nervioso de preguntar lo que supuse que eran preguntas muy tontas, pero estaban allí para ayudar.
Encuentre una comunidad o un conjunto de comunidades que lo ayudarán en su viaje. Si no está seguro por dónde comenzar, pregunte a los demás qué comunidades de programación son las más amigables para los recién llegados. Si no conoce a ningún programador, comience aquí .
La mentalidad correcta
Aprender a programar puede ser un gran desafío, y puede ser tentador rendirse en ciertos momentos. Cuando te sientes abrumado o no lo suficientemente inteligente, es importante recordar: las computadoras no son mágicas, puedes aprender cómo funcionan.
Si algo no está haciendo clic, no es porque no eres lo suficientemente inteligente. Puede ser porque te falta una pieza clave de conocimiento previo. Es posible que el recurso que está utilizando no esté destinado a alguien con sus antecedentes particulares. Puede ser que solo necesites tomar un descanso y aprender algo nuevo. ¡No te rindas!
Que ahora
La mejor manera de comenzar a aprender es sumergirse. Simplemente busque "aprender a programar" y vea lo que aparece. Piense en lo que le gustaría intentar aprender a construir y busque "Cómo X como principiante absoluto". Algunas actividades en las que podría pensar son: crear un sitio web , crear un juego en 2D y crear arte generado por computadora . Existen muchos recursos para ayudarlo a decidir dónde y cómo comenzar a aprender.
Si tiene alguna pregunta o desea algún consejo personal, hágamelo saber .