Cómo elegir un lenguaje de programación para aprender hoy y obtener un gran trabajo en 2 años

Puede tomar años de trabajo dedicado para convertirse en un programador realmente bueno; Entonces, ¿hay alguna manera de elegir el idioma correcto para comenzar a partir de hoy, para ser contratado mañana?

Puede tomar años de trabajo dedicado para convertirse en un programador realmente bueno;  Entonces, ¿hay alguna manera de elegir el idioma correcto para comenzar a partir de hoy, para ser contratado mañana?
Anuncio

La codificación no es fácil; o al menos, aprender a codificar no lo es, especialmente cuando se inicia desde cero. Puede tomar años de trabajo dedicado para convertirse en un programador realmente bueno; Entonces, ¿hay alguna manera de elegir el idioma correcto para comenzar a partir de hoy, para ser contratado en un par de años?

Para averiguarlo, llevé esta pregunta a nuestro panel de expertos residentes: Mientras todos escribimos, varios de nosotros también tenemos experiencia en codificación. Lo que siguió fue una discusión interesante que querría leer antes de embarcarse en su viaje para convertirse en un codificador profesional.

Un método para la locura?

crazy

Esta no es la primera vez que discutimos la elección de un lenguaje de programación: En 2011, ¿hemos discutido qué lenguaje de programación debe aprender para el desarrollo de software? ¿Qué lenguaje de programación debe aprender para el desarrollo de software? ¿Qué lenguaje de programación debe aprender para el desarrollo de software? Al comenzar en el camino de la programación, es importante que invierta su tiempo sabiamente en la elección de aprender algo que le beneficie en el futuro inmediato con resultados visibles en su plataforma de ... Lea más, así como cuál debe aprender. para programación web Qué lenguajes de programación para aprender - Programación web Qué lenguajes de programación para aprender - Programación web Hoy vamos a echar un vistazo a los diversos lenguajes de programación web que alimentan Internet. Esta es la cuarta parte en una serie de programación para principiantes. En la parte 1, aprendimos lo básico de ... Leer más.

Pero esto no se trata de un consejo (como "ir con JavaScript") sino de una metodología, algo que la gente podría usar en dos años a partir de hoy, teóricamente . ¿Cómo averiguar qué idiomas están en aumento? ¿Qué métricas de popularidad de código se pueden confiar y de qué desconfiar (y por qué)? ¿Cuáles son los mejores sitios web de proyección salarial? ¿Es GitHub una indicación o no?

Por ejemplo, hoy en día no encontrarás a nadie contento con PHP, pero muchos, muchos desarrolladores están haciendo un buen uso de la codificación de PHP, y sigue siendo la mayor parte de lo que se está ejecutando en la Web. Entonces, ¿ahora el aprendizaje de PHP es una mala idea? (Probablemente…)

No hay un idioma

choices

Aquí es donde James, nuestro desarrollador web residente y técnico, intervino para decir esto:

Los programadores generalmente no aprenden un solo idioma de todos modos. Cualquiera que vaya a la clásica ruta CompSci terminará con una gran cantidad de Java, un poco de Haskell, algunos Prolog si toman un curso en AI, algunos Node si toman un curso de ingeniería de puesta en marcha, algunos PHP si aprenden tradicional CMS, algunos .NET si internan en alguna oficina corporativa sin valor, algunos JavaScript si hacen diseño web, algunos C ++ si hacen diseño de juegos, y finalmente algunos Ruby si quieren perder su vida con lenguajes oscuros que nadie en realidad usa.

No hay una "metodología", y no eliges un idioma para aprender: ¡te elige!

Aprender un solo idioma es como comer solo digestivos durante un año cuando hay un pasillo entero de galletas. Y, en serio, ¿quién elige trabajos según el salario proyectado?

Pero, ¿y si no aprendes CompSci?

Le respondí a James, diciendo:

Aquí está la cosa: Esto no es para alguien que toma la clásica ruta CompSci. A juzgar por la explosión de MOOC y el número de cursos de programación en línea, mucha gente está recogiendo la codificación desde cero. Y cuando empiezas así, necesitas un idioma para empezar. Quizás te alejes más tarde, pero ese primer idioma será una inversión crítica de tiempo y esfuerzo, así que mejor valdrá la pena.

Lo que más me impactó fue ese último poquito, dijo, quien elige trabajos de acuerdo con el salario proyectado . Creo que algunas personas lo hacen, pero también creo que no es una buena forma de hacerlo.

Cuando se llega a eso, la gente está tratando de descubrir qué idioma para empezar, y el uso que se da al lenguaje en el mundo real tiene peso en esa decisión (no solo lo fácil que es aprender, Pascal ...).

Elija un proyecto primero, luego un idioma

trending-projects

James regresó con esto:

Bien, quizás uno de los puntos de esta metodología debería ser: no tener una metodología. Cuando me encontré con PHP por primera vez, fue a través de WordPress. Tenía experiencia en CompSci en programación y algo de experiencia en diseño web, pero nunca antes había visto PHP. Lo aprendí porque WordPress parecía lo suficientemente fácil, y quería meterme con WordPress. No porque haya mirado una lista de tecnologías de tendencias, o esté considerando un cambio de carrera, sino porque lo mejor de lo que quería saber era utilizarlo.

Si alguien busca aprender programación solo para el propósito de un trabajo, fracasará. Si buscaran solo porque les gusta el sonido de aprender a programar algo, no importaría el idioma que eligieran, siempre y cuando pueda despertar su pasión.

Otra razón para elegir un proyecto primero

Aquí es cuando Simon intervino con un consejo pragmático:

En primer lugar, depende de si desea desarrollar para la Web o el software "estándar".

Para este último, Java es bastante bueno:

  • Simple OO
  • Multiplataforma (Linux, Windows, Mac, Android)
  • Sintaxis similar a muchos otros lenguajes de programación (JS, C #).

No se puede decir mucho sobre el desarrollo web, aunque HTML / JS / CSS / PHP / MySQL parece funcionar para mucha gente. Python, también.

Pero sí, el "conseguir un gran trabajo en 2 años" también me molesta. Destaca el aspecto incorrecto de aprender a programar. Una vez que puede programar, es bastante fácil familiarizarse con otro idioma.

El ser contratado para conocer un idioma específico es similar a ser contratado como PA para saber cómo manejar MS Excel. Si esa es la calificación principal, probablemente sea un mal trabajo.

No aprende un idioma: aprende diseño de software

software-design

Un consenso comenzaba a formarse. Bruce Epper, de la fama de MakeUseOf Answers, dijo lo siguiente:

El lenguaje en sí mismo realmente no importa. Cuando se trata de programar trabajos, los aspectos más importantes tienden a comprender el diseño y la arquitectura básicos del software, el proceso de codificación en general, conocer los patrones de diseño, saber cuándo usarlos y cómo aplicar un patrón específico a la tarea en cuestión: todos los cuales son independientes del lenguaje. Una vez que un programador los conoce, elegir un idioma completamente nuevo es muy sencillo.

Incluso hay habilidades de administración de proyectos, documentación y redacción que son más importantes para un programador que conocer un lenguaje específico.

La base sobre la que estás construyendo importa: ¿inglés o latín?

Fue entonces cuando Guy intervino para recordarnos a todos que el lenguaje importa, hasta cierto punto:

latin

El lenguaje en sí no es lo más importante para conseguir un trabajo, estoy de acuerdo. Sin embargo, la base sobre la cual estás construyendo lo hace. Como he hecho ambas rutas, voy a comparar los lenguajes de programación con los idiomas humanos.

Python parece ser el inglés de hoy. Cada vez más, veo que Intro CompSci y los cursos de programación comienzan con Python en lugar de Java, que parecía ser el más popular durante aproximadamente 10 años. Puedes hacer mucho de lo que quieres hacer con Python.

C ++ es el latín del mundo de la programación. Si lo aprende, puede aprender los principios subyacentes de una multitud de idiomas y aprenderlos más fácilmente. Python sería un paseo si estás bien fundado en C ++.

¿Qué es un "Trabajo de programación"? De todos modos?

Ahora era el turno de Matthew, para recordarnos a todos que ser un codificador puede significar cosas muy diferentes para diferentes personas:

suit

Una cosa de la que no se ha hablado en gran medida es qué tipo de trabajo de programación le gustaría.

¿No te preocupas demasiado por los beneficios que generan los empleados de Startup? ¿Quieres estabilidad y un paquete decente de pago, pero no equidad? ¿Te gusta usar ropa formal de negocios? Aprende C #, Java o COBOL. COBOL también tiene la ventaja de tener cada aplicación bancaria concebida (hipérbole, pero se entiende) escrita en ella. ¡Con la mayoría de los desarrolladores de COBOL jubilados o muertos, existe una gran demanda de desarrolladores de COBOL con unos salarios de seis cifras! Sin embargo, trabajará en grandes bases de código mal escritas creadas durante varias décadas. Eso no es divertido.

Pero, ¿y si la seguridad laboral no es lo tuyo? ¿Desea trabajar en productos interesantes, pero está dispuesto a perder el trabajo cuando el modelo de negocio no funciona? Descubrí que continuar (Hacker News) es una forma segura de descubrir los idiomas que utilizan las startups. Cuando hice una pasantía en un trabajo anterior, usamos una mezcla de Go, Python y CoffeeScript. Otras startups usan Rails y Groovy y todo tipo de frameworks e idiomas oscuros. Solo elija uno y encontrará un trabajo interesante en alguna parte.

Nuevo código, o viejo?

Escribir un código nuevo es una experiencia muy diferente de mantener una aplicación existente, como Bruce agregó:

Con sus comentarios sobre COBOL, tiene otra consideración: ¿quiere trabajar en un código nuevo o mantener el código de otra persona? Esto puede ser un gran elemento a la hora de decidir en qué dirección mover. Para proyectos más pequeños, mantener una base de código escrita por otra persona puede no ser tan malo, pero he visto algunas secciones de código donde hay varias personas que lo miran durante horas y preguntan: "¿Qué estaba pensando este tipo?", O donde el original el programador se estaba aprovechando de una característica específica o error en el compilador (que puede haberse solucionado en el compilador actual) para lograr algo.

¿Qué pasa si no tiene una opción?

Guy regresó para recordarnos a todos que no todos tienen una amplia gama de opciones:

choice

Matthew plantea una buena pregunta con: " ¿Qué tipo de trabajo de programación quieres? "

Curiosamente, nunca pensé que tendría muchas opciones en el asunto. Sabía que quería hacer desarrollo web cuando comencé, después de haber hecho otra programación recreativamente. Pero pensé que sería mejor estar preparado para tomar cualquier trabajo que pudiera conseguir, y estar dispuesto a aprender a medida que avanzaba. Ahora soy un experto en todos los oficios, hábil en varias tecnologías: maestro de ninguno.

En cuanto a averiguar dónde desea trabajar, es importante determinar el tipo de estilo de vida que desea. Luego, consulte las publicaciones de aquellas empresas que aparentemente cumplen con sus criterios y vea lo que buscan en general. Preparar un portafolio de cosas similares a lo que hacen también puede ser muy útil, especialmente si no tiene capacitación formal en las tecnologías que utilizan. Tal vez aprendiste Java en la escuela, pero usan C #. Así que te enseñas a ti mismo C # y haces algunos programas con él como prueba de que sabes lo que estás haciendo y que tienes inteligencia fluida.

No hay una respuesta simple

Si hay algo que muestra esta discusión, es que las preguntas simples no siempre tienen respuestas simples. Y, sin embargo, después de leer las opiniones de todos, me sentí mucho más informado: cambiaron de opinión.

Estoy seguro de que no captamos todos los puntos de vista posibles aquí - para eso es la sección de comentarios. Me interesaría mucho escuchar tu opinión sobre esta cuestión, ya seas un codificador o no. ¿Cómo elegirías un lenguaje de programación para conseguir un buen trabajo en dos años? ¿Es incluso una buena manera de elegir un idioma? Comparte tus pensamientos a continuación.

In this article