Cómo elegir un lenguaje de programación y escapar del purgatorio del tutorial

Hace unas semanas, publiqué sobre mi experiencia al intentar aprender JavaScript, C #, Python y más de Codecademy, Udemy y freeCodeCamp, además de escapar del purgatorio del tutorial y realmente progresar como desarrollador.

Decidir sobre un lenguaje de programación puede ser extremadamente desafiante y llevar mucho tiempo, ya que existen docenas de opciones, con mucha información contradictoria. En este artículo, compartiré algunas opciones basadas en mi propia experiencia aprendiendo a codificar, con sugerencias sobre cómo elegir un lenguaje de programación, escapar del purgatorio del tutorial y progresar como desarrollador.

Aquí hay una versión en video de esta publicación si lo prefiere (visualización de 11 minutos):

Escenario n. ° 1: sabe lo que quiere construir

A menudo, en artículos como estos (o en las infografías "¿Qué lenguaje de codificación debería aprender?" Con las que probablemente esté íntimamente familiarizado), se le pide que piense críticamente sobre lo que quiere construir después de haber aprendido a código.

Este enfoque es útil si tienes alguna idea sobre qué es lo que quieres hacer con un lenguaje de programación después de aprenderlo, pero no tanto si solo quieres aprender a codificar , como fue mi experiencia. Cubriré ambos escenarios en este artículo.

Si sabe en qué dirección quiere tomar su carrera de codificación después de aprender un lenguaje de programación, lo más probable es que le resulte más fácil averiguar qué idioma aprender primero. Aquí hay algunas sugerencias en ese caso.

Desarrollo de interfaz: JavaScript (y HTML / CSS)

Si ya sabe que desea trabajar en la "interfaz" de los sitios web, es decir, cualquier cosa que el usuario vea cuando acceda a un sitio web, debe comenzar su viaje de codificación aprendiendo JavaScript. Probablemente comenzará por aprender HTML y CSS, que forman la columna vertebral de casi todos los sitios web, y luego comenzará a agregar JavaScript para mejorar la funcionalidad y la interactividad de sus sitios.

JavaScript es bastante ubicuo como lenguaje de programación y tiene una rampa de acceso más fácil que otros lenguajes de nivel inferior como C ++. Es un gran punto de partida si no sabe lo que quiere aprender ... pero más sobre eso más adelante.

Desarrollo back-end: Python, C # o JavaScript (y SQL)

Supongamos que está más interesado en conocer las entrañas de los sitios web, administrar el "back-end" y probar suerte en la administración de bases de datos. Aquí tienes muchas opciones, y la ruta más sencilla es Python, que es un lenguaje amigable para principiantes que tiene marcos maduros (por ejemplo, Django y Flask) para el desarrollo de back-end.

Tampoco puede equivocarse con C #, que lo expondrá al ecosistema .NET de Microsoft y un lenguaje de programación que, una vez que se mete en la maleza, es un placer trabajar con él. Y si está pensando en pasar a "full stack", es decir, desea realizar desarrollo de front-end y back-end, podría considerar aprender JavaScript, que tiene frameworks de back-end más jóvenes pero muy apreciados como Express y Koa. Hacerlo también facilitará su proceso de aprendizaje, ya que utilizará el mismo lenguaje para codificar ambas pilas.

Independientemente del idioma que elija para el desarrollo de back-end, lo más probable es que también termine agregando SQL a su caja de herramientas para la administración de bases de datos, así que póngalo en su radar.

Desarrollo de juegos 2D: JavaScript o C #

He escrito en otra parte sobre qué motor debería usar para hacer juegos en 2D, pero aquí está la parte delgada.

Hay muchos motores de juegos en 2D, muchos de los cuales pueden o no adaptarse a su gusto como desarrollador de juegos, y cada uno con sus propios beneficios, idiosincrasias y curva de aprendizaje. Algunos de ellos, como Game Maker Studio 2, por ejemplo, utilizan sus propios lenguajes patentados para ejecutar scripts, pero en realidad le recomiendo que primero aprenda JavaScript o C #, incluso si está considerando usar un motor de juego diferente a largo plazo. .

Con JavaScript, puede usar marcos como Phaser para crear juegos en 2D o motores con todas las funciones como Construct 3 (que en realidad usa el desarrollo de arrastrar y soltar con espacio para scripts personalizados). Si eliges aprender C # en su lugar, trabajarás con Unity 2D, o quizás MonoGame, pero en realidad recomiendo comenzar con tutoriales que no sean del motor (por ejemplo, .NET) para tener un buen manejo del idioma primero.

Aprender JavaScript o C # le brindará el conocimiento básico de codificación que necesitará para abordar otro motor de juego, como Game Maker, al tiempo que le brindará cosas como las mejores prácticas de programación y la organización del código limpio.

Desarrollo de juegos 3D: C # o C ++

Hay muchas opciones para aprender a codificar para el desarrollo de juegos en 3D, y te sugiero que comiences con C # o C ++. De hecho, a menos que sea un experto en tecnología o ya tenga experiencia en programación, le recomiendo que comience con C # y continúe hasta C ++. Tendrá una curva de aprendizaje más fácil y aprenderá conceptos fundamentales de programación sin tener que lidiar con cosas como la administración de memoria y el código de nivel inferior.

Probablemente terminará aprendiendo ambos en cualquier caso, pero si comienza con C #, puede jugar con Unity 3D y luego hacer su camino a C ++ con Unreal Engine 4.

Ciencia de datos / Aprendizaje automático: Python

Aunque hay opciones en otros lenguajes para aprender ciencia / análisis de datos y aprendizaje automático, Python es actualmente el estándar de oro para este ámbito de la codificación. Es un lenguaje bastante sencillo de aprender y lo expondrá a buenos hábitos de programación y marcos ampliamente utilizados, por lo que no puede equivocarse aquí.

Escenario n. ° 2: no sabe lo que quiere construir

Existe la clara posibilidad de que haya pasado días, semanas o incluso meses buscando artículos, videos, publicaciones en reddit y preguntas de Stack Overflow leyendo sobre lenguajes de programación, y aún no tenga idea de dónde invertir su tiempo porque no sabe lo que quieres construir.

He estado allí. Es molesto.

Mi recomendación para ti, por trivial que parezca, es que solo elijas uno. Literalmente cualquiera de ellos, incluso si no están incluidos aquí. Ve a aprender JavaScript. O Python. O óxido. O Haskell.

Bien, quizás no Haskell. Pero elija algo y quédese con él el tiempo suficiente para aprender los conceptos básicos y ver si existe la posibilidad de que le guste usar ese lenguaje para construir con él. Y tenga en cuenta dos cosas mientras lo hace:

  1. Establezca un límite de tiempo para usted. Como, "Voy a tomar los próximos tres meses para aprender JavaScript usando tutoriales de FreeCodeCamp". Si, al final de ese período, sientes que estás progresando y es interesante para ti, ¡continúa! Si no es así, puede ser el momento de reconsiderar su elección de idioma y ver si hay algo por ahí que pueda ser mejor para usted.
  2. Crea algo que no esté en tus tutoriales. Este es un paso crucial en su crecimiento como desarrollador. Lo cubriré en la siguiente sección.

Escenario n. ° 3: estás atrapado en el purgatorio del tutorial

Si se ha encontrado haciendo un tutorial tras otro, en el mismo sitio web o en diferentes sitios web, sin sentir que está progresando, puede sentirse realmente frustrado con la experiencia de aprender a codificar. Estuve allí y puedo ayudar.

El primer paso es considerar para qué sirven los tutoriales de programación y para qué no. La mayoría de los tutoriales en línea, especialmente los que le permiten codificar directamente en el navegador, son excelentes para enseñarle a programar.

Por otro lado, no son buenos para enseñarte a ser programador.

Los mejores tutoriales lo expondrán a conceptos fundamentales de codificación y requerirán que aplique ese conocimiento para resolver acertijos y proyectos. Son maravillosas herramientas de aprendizaje que pueden, si se usan más allá de su alcance, convertirse en muletas que sofocarán su aprendizaje.

Un programador, por ejemplo, no se pasa el día sentado haciendo tutoriales. Un programador programa , y eso es precisamente lo que necesita hacer para progresar después de dominar los conceptos básicos.

La mejor manera de progresar como desarrollador es elegir un proyecto en el idioma que elijas y empezar a hacerlo. Si está aprendiendo JavaScript, por ejemplo, puede optar por crear un sitio web simple con HTML / CSS y agregar algo de interactividad con jQuery. Probablemente comenzará configurando un entorno de desarrollo integrado, olvidando inmediatamente cómo hacer algo que aprendió en sus tutoriales, se frustrará, diríjase a Google, encuentre la respuesta y continúe. Luego, progresará, se atascará, buscará Stack Overflow, se rascará la cabeza con la documentación oficial, tal vez comparta su código con alguien y repita todo el proceso.

Y estará haciendo exactamente lo que hacen los programadores cuando construyen un nuevo proyecto.

Finalmente, realmente no puede equivocarse con el lenguaje de programación que elija, incluso si no está en esta lista. Si terminas eligiendo uno, aprendiendo los conceptos básicos, haciendo un proyecto y decidiendo que no es para ti, esa experiencia aún te ayudará a largo plazo. La información que aprenderá en el proceso será útil, independientemente del idioma que termine utilizando para sus proyectos.

¡Puedes hacerlo!

Si te gustó este artículo, considera revisar mis juegos y libros, suscribirte a mi canal de YouTube o unirte a Entromancy Discord.

MS Farzan, Ph.D. ha escrito y trabajado para compañías de videojuegos de alto perfil y sitios web editoriales como Electronic Arts, Perfect World Entertainment, Modus Games y MMORPG.com, y se ha desempeñado como Community Manager para juegos como Dungeons & Dragons Neverwinter y Mass Effect: Andromeda. . Es el director creativo y diseñador principal del juego Entromancy: A Cyberpunk Fantasy RPG y autor de The Nightpath Trilogy . Encuentra a MS Farzan en Twitter @sominator.