Sabes leer y escribir, ¿verdad?
Lo más probable es que puedas.
Siguiente pregunta: ¿Puedes leer y escribir código?
Lo más probable es que no puedas.
El uno por ciento de los estadounidenses son programadores profesionales. Pero para el 99 por ciento restante de nosotros, aprender a programar, incluida la comprensión de los mejores lenguajes de programación, puede ser casi tan importante como la lectura, la escritura y la aritmética.
Al menos, así lo pensaba Steve Jobs. El cofundador de Apple dijo en 1995: «Creo que todo el mundo en este país debería aprender a programar una computadora porque te enseña a pensar».
Muchas otras personas y organizaciones se han sumado a la exageración de aprender a programar: en 2013, una organización sin fines de lucro llamada Hour of Code lanzó una campaña para alentar a las personas a comenzar a aprender código, con el respaldo de Apple, el presidente Barack Obama, el fundador de Microsoft, Bill Gates, y el fundador de Facebook, Mark Zuckerberg.
En 2014, Inglaterra agregó habilidades de codificación a su plan de estudios nacional. Y han surgido numerosas empresas emergentes y organizaciones sin fines de lucro para satisfacer la demanda de capacitación; En los últimos tres años, 260 millones de personas han utilizado la Hora de formación en Código .
Aquí tienes una guía paso a paso para que pases de ser un novato en el código a un sabelotodo.
1. Entender qué es la codificación.
La codificación es, simplemente, una forma de decirle a una máquina lo que tiene que hacer.
Si te apetece profundizar en el tema, puedes leer este ensayo de 38.000 palabras que responde a la pregunta «¿Qué es el código?»
«Codificación» es el término más común utilizado por los sitios educativos, pero es un poco más complejo que eso. En primer lugar, no hay una única forma de codificar: se utilizan numerosos lenguajes para codificar para diferentes tipos de proyectos. En segundo lugar, saber cómo codificar con un lenguaje en particular no te convierte en programador o desarrollador.
Aunque existe cierto debate sobre la superposición de la codificación, la programación, el desarrollo y otras actividades relacionadas, la mayoría de las personas están de acuerdo en que para ir más allá de la codificación, es necesario ser capaz de comprender la lógica y los algoritmos, conectar diferentes sistemas y lenguajes, y comunicarse y colaborar con otras personas.
2. Comprenda cómo la codificación puede ayudarlo.
Mejorar la alfabetización digital. Dado que las máquinas están en todas partes, saber cómo hablar con ellas es una habilidad bastante útil. Puede comprender mejor las herramientas digitales que usa todos los días y hacer que funcionen mejor para usted.
Cultiva habilidades. Aprender a programar puede fomentar tanto las habilidades duras como las blandas que te beneficiarán en tu carrera y en tu vida. Las habilidades duras te ayudan a hacer cosas geniales: crear sitios web, aplicaciones, juegos y software; analizar una red de datos; automatizar tareas complejas; o abordar cualquier cantidad de problemas.
Las habilidades blandas te ayudan a pensar y trabajar mejor: te empujan a modelar e iterar ideas, identificar y resolver problemas y trabajar dentro de una comunidad colaborativa.
Expande tus horizontes. Aprender a programar amplía tus opciones, al igual que aprender a leer y escribir te permite explorar y expresar un mundo de ideas. Mitch Resnick del MIT Media Lab dijo en una charla TED: «Cuando aprendes a leer, lees para aprender. Y es lo mismo con la codificación: si aprendes a programar, puedes programar para aprender».
Resolver problemas. No aprendas a codificar por codificar, aprende porque quieres usar el código como una herramienta para resolver problemas. «Antes de empezar a programar, piensa en un problema que te entusiasme, algo que te motive a aprender sobre los lenguajes y las herramientas disponibles», aconseja el programador y vlogger Kevin Gisi. «Y una vez que hayas construido esa cosa realmente genial, descubrirás que accidentalmente aprendiste muchas habilidades en el camino».
3. Elige tu camino.
Antes de empezar, recuerda el consejo de Gisi: averigua qué quieres hacer con tus futuras habilidades de codificación. Averiguarlo es importante por dos razones: en primer lugar, se utilizan diferentes lenguajes de programación para diferentes cosas, por lo que debes asegurarte de aprender el lenguaje que mejor se adapte a tus objetivos. En segundo lugar, tener un objetivo específico y significativo te motiva a seguir adelante.
«Aprender a programar es como practicar escalas», dice Gisi. «Te va a convertir en un músico muy fuerte, pero si lo haces durante años sin tocar una canción, te vas a frustrar mucho. Es mucho más fácil aprender algo cuando tienes una razón para querer saberlo».
Entonces, ¿qué idioma deberías aprender?
El subreddit de Learn Programming (un subreddit es un foro sobre un tema en particular; si no estás familiarizado con Reddit, aquí tienes un manual) ofrece esta guía para determinar qué idioma aprender primero:
Quiero aprender a | A continuación, considere la posibilidad de utilizar |
Crear aplicaciones para iPhone | Veloz |
Crear aplicaciones para Android | Java |
Construir un sitio web | JavaScript, CSS, HTML5 |
Escribir aplicaciones de escritorio de Windows | C# |
Hacer juegos en 2D | Python o JavaScript |
Hacer juegos en 3D | C# o C++ |
Programar Arduinos/microcontroladores/robots | C |
Hacer computación científica/matemática o análisis de datos | Julia, Python, R o Matlab |
Hacer automatización y scripting | Muchos lenguajes (Python, Ruby, Bash, Powershell, AutoHotKey…) |
Otros recursos que le ayudarán a encontrar la combinación entre el lenguaje de programación y el lenguaje de programación:
- Este diagrama de flujo
- Este cuestionario
- Este tipo de elige tu propia aventura
- Este extenso ensayo (desplácese hacia abajo hasta la sección 7.1)
4. Elige tu curso.
Echa un vistazo a nuestra lista definitiva de recursos para aprender a programar para obtener una lista seleccionada de sitios que están altamente calificados por los usuarios, recomendados por programadores experimentados y asociados con instituciones conocidas.
Todos los sitios de la lista ofrecen cursos para personas sin experiencia en programación. Cada listado detalla los tipos de cursos ofrecidos, el costo, el compromiso de tiempo, el nivel de experiencia y una muestra de los temas cubiertos.
Aunque muchos cursos son gratuitos, los cursos dirigidos a personas que buscan una carrera en programación suelen ser de pago. Entre todas las opciones, seguro que encuentras una que se adapte a ti.
5. Tener un sistema de apoyo.
El código puede ser intimidante, pero no estás solo: la comunidad de programación valora la colaboración. A continuación, le indicamos cómo puede obtener ayuda:
Consigue un amigo. Incluso si tu amigo también es un novato, pueden responsabilizarse mutuamente y superar los desafíos juntos. Busca un amigo en Perunity o los compañeros de programación subreddit. También puedes encontrar amigos locales buscando Meetup para grupos de interés centrados en lo que estás aprendiendo. Girl Develop It tiene capítulos que ayudan a las mujeres a establecer contactos y unirse para aprender y practicar la programación.
Consigue un mentor. Los mentores pueden ayudarte cuando te quedes atascado y asegurarse de que estás en el camino correcto. Encuéntralo en CodeMentor o el subreddit Code Mentors.
Pregunta en un foro. El foro de programación más popular es Stack Overflow, seguido de Reddit : el subreddit de programación general es Learn Programming, y hay muchos otros subreddits específicos de un lenguaje de programación en particular o un área de interés más limitada.
Haz buenas preguntas. Para obtener ayuda (¡gratuita!) con la codificación, debe seguir el código de conducta no oficial para hacer preguntas. Si las personas sienten que estás perdiendo el tiempo, no obtendrás respuesta o uno sarcástico. Ten en cuenta estos consejos:
- Antes de publicar, busque en el foro para ver si su pregunta ya ha sido respondida.
- Escribe un título descriptivo y una publicación. El Aprende a programar subreddit usa estos ejemplos: MALO: «¿Qué hay de malo en esto?» BUENO: «[C++] Error de segmentación al escribir en la matriz en un bucle for». (El lenguaje de programación se enumera entre paréntesis y describe tanto la tarea intentada como el problema).
- Demuestra que te has esforzado por abordar tu problema y que no esperas que las personas hagan el trabajo duro por ti. Mencione los métodos que ha probado hasta ahora para abordar su problema.
- Este artículo sobre cómo hacer preguntas inteligentes tiene más consejos excelentes, y también es una introducción útil al carácter distintivo de la comunidad de programación.
6. Ve más allá de lo básico
Es cierto que puedes aprender rápidamente los conceptos básicos del código. Pero así como aprender inglés (o cualquier otro idioma) no te convierte en un gran novelista, aprender código no te convierte en un gran programador. Eso requiere mucha práctica.
De hecho, Erik Trautman, fundador de Viking Code School, observó que después de la «luna de miel de la mano» de los cursos de codificación en línea para principiantes, muchas personas caen del «precipicio de la confusión» al «desierto de la desesperación» mientras luchan por pasar a niveles intermedios y avanzados y aplicar lo que aprendieron a problemas de la vida real.
La solución: sigue practicando y esforzándote hacia metas significativas. Echa un vistazo a uno de estos sitios para encontrar ideas de proyectos, desafiarte a ti mismo y competir y colaborar con otros:
- Abadía del Código
- CoderByte
- CodeChef
- CodeEval
- Fuerzas codificadas
- Guerras de código
- Juego de Codin.
- Subreddit de Daily Programmer
- Ejercicio
- HackerEarth (en inglés)
- HackerRank
- Ejercicios de práctica sugeridos por el subreddit Aprende a programar
- Proyecto Euler
- Juez en línea de Sphere
Con la práctica, pronto llegarás a la fase más allá del «desierto de la desesperación»: Trautman lo llama el «auge de lo asombroso».
Holly Munson es una escritora, editora y estratega de contenido independiente con sede en Filadelfia. Lleva siete años informando sobre las tendencias empresariales y también ha trabajado en marketing, revistas y museos.