Cómo elegir un lenguaje de programación para aprender hoy y obtener un excelente trabajo en 2 años
La codificación no es fácil; o al menos, aprender a codificar no lo es, especialmente cuando se comienza desde cero. Pueden pasar años de trabajo dedicado para convertirse en un programador verdaderamente bueno; Entonces, ¿hay una manera de elegir el idioma correcto para comenzar a partir de hoy, para ser contratados en un par de años??
Para averiguarlo, dirigí 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 interesante discusión que querría leer antes de embarcarse en su viaje para convertirse en un programador profesional..
Un método a la locura?
Esta no es la primera vez que hablamos sobre cómo elegir un lenguaje de programación: en 2011, ¿qué lenguaje de programación debería aprender para el desarrollo de software? ¿Qué lenguaje de programación debería aprender para el desarrollo de software? ¿Qué lenguaje de programación debería aprender para el desarrollo de software? Al iniciar el camino de la programación, es importante que invierta su tiempo sabiamente en elegir aprender algo que lo beneficiará en el futuro inmediato con resultados visibles en su plataforma de ... Leer más, así como cuál debe aprender para la Web. programación Qué lenguaje de programación aprender - Programación web Qué lenguaje de programación aprender - Programación web Hoy vamos a echar un vistazo a los distintos lenguajes de programación web que impulsan 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”) pero una metodología - algo que la gente podría usar en dos años a partir de hoy, teóricamente. ¿Cómo averiguar realmente qué idiomas están en aumento? ¿Qué métricas de popularidad de código confiar y cuáles desconfiar (y por qué)? ¿Cuáles son los mejores sitios web de proyección salarial? ¿Es GitHub una indicación o no??
Por ejemplo, no encontrará a nadie hablando sobre PHP en estos días, pero muchos, muchos desarrolladores se están ganando la vida con PHP, y sigue siendo la mayor parte de lo que se está ejecutando en la Web. Entonces, ¿aprender PHP ahora es una mala idea? (Probablemente ...)
No hay un idioma
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 siga la ruta clásica de CompSci terminará con una gran cantidad de Java, un poco de Haskell, algo de Prolog si toman un curso de inteligencia artificial, algo de Node si toman un curso de ingeniería de inicio, algo de PHP si aprenden tradicional CMSes, algunos .NET si realizan pasantías en alguna oficina corporativa sin valor, algunos JavaScript si hacen diseño web, algunos C ++ si hacen diseños de juegos, y finalmente algunos Ruby si desean desperdiciar su vida con lenguajes oscuros que nadie en realidad usa.
No hay “metodología”y no eliges un idioma para aprender: te elige!
Aprender un idioma es como comer solo digestivos durante un año cuando hay un montón de galletas. Y en serio, ¿quién elige puestos de trabajo según el salario proyectado??
Pero qué pasa si no aprendes CompSci?
Le respondí a James, diciendo:
Aquí está la cosa: esto no es para alguien que toma la ruta clásica de CompSci. A juzgar por la explosión de MOOC y la cantidad de cursos de programación en línea, muchas personas están mejorando la codificación desde cero. Y cuando empiezas así, necesitas un idioma para empezar. Quizás se aleje de eso más adelante, pero ese primer idioma será una inversión crítica de tiempo y esfuerzo, por lo que vale la pena.
Lo que más me impactó es lo último que dijo. - ¿Quién elige puestos de trabajo según el salario proyectado?. Creo que algunas personas lo hacen, pero también creo que esa no es una buena manera de hacerlo.
Cuando se trata de eso, la gente son tratar de averiguar con qué idioma empezar, y el uso que el lenguaje tiene 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
James volvió con esto:
Bien, quizás uno de los puntos de esta metodología debería ser: no tener una metodología. Cuando me topé con PHP, fue a través de WordPress. Tenía experiencia en programación en CompSci y algo de experiencia en diseño web, pero nunca antes había visto PHP. Lo aprendí porque WordPress parecía bastante fácil, y quería meterme con WordPress. No porque haya visto una lista de tecnologías de tendencias, o si estuviera considerando un cambio de carrera, sino porque algo genial que quería saber sobre la usó.
Si alguien quisiera aprender a programar solo para los fines de un trabajo, fracasaría. Si estuvieran buscando solo porque les gusta el sonido de aprender a programar algo, no importará el idioma que elijan, siempre que pueda despertar su pasión..
Otra razón para elegir un proyecto primero
Esto es cuando Simon intervino con un consejo pragmático:
En primer lugar, depende de si desea desarrollar para la Web o “estándar” software.
Para este último, Java es bastante bueno:
- OO simple
- Multiplataforma (Linux, Windows, Mac, Android)
- Sintaxis similar a muchos otros lenguajes de programación (JS, C #).
No puedo decir mucho sobre el desarrollo web, aunque HTML / JS / CSS / PHP / MySQL parece funcionar para mucha gente. Python, también.
Pero sí, la “para conseguirte un gran trabajo en 2 años” un poco me molesta también. Destaca el aspecto equivocado de aprender a programar. Una vez que puedes programar, es bastante fácil entender otro idioma.
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 va a ser un mal trabajo..
No aprendas un idioma: aprende diseño de software
Empezaba a formarse un consenso. Bruce Epper, de la fama de Respuestas MakeUseOf, dijo esto:
El lenguaje en sí no importa. Cuando se trata de trabajos de programación, los aspectos más importantes tienden a ser entender el diseño y la arquitectura básica 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 sabe esto, es muy fácil aprender un lenguaje completamente nuevo..
Incluso hay habilidades de gestión de proyectos, documentación y escritura que son más importantes para un programador que saber un lenguaje específico.
La base sobre la que estás construyendo importa: inglés o latín?
Esto fue cuando Guy intervino para recordarnos a todos que el idioma hace importa, hasta cierto punto:
El lenguaje en sí no es lo más importante para conseguir un trabajo, estoy de acuerdo. Sin embargo, la base sobre la que estás construyendo lo hace. Ya que he hecho ambas rutas, voy a comparar los lenguajes de programación con los lenguajes 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 parece ser el más popular desde hace unos 10 años. Puedes hacer mucho de lo que quieras 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 juego de niños si estás bien fundado en C++.
Qué es un “Trabajo de programación,” De todas formas?
Ahora fue el turno de Matthew, para recordarnos que ser un programador puede significar cosas muy diferentes para diferentes personas:
Una cosa de la que no se ha hablado mucho es qué tipo de trabajo de programación desearía.
¿No estás demasiado preocupado por los beneficios que se ofrecen a los empleados de Startup? ¿Quieres estabilidad y un paquete de pago decente, pero no equidad? ¿Te gusta usar ropa formal de negocios? Aprende C #, Java o COBOL. COBOL también tiene la ventaja de tener todas las aplicaciones bancarias únicas concebidas (hipérbole, pero se entiende la idea) que se hayan escrito en ellas. ¡Con la mayoría de los desarrolladores de COBOL ya sea retirados o muertos, hay una gran demanda de desarrolladores de COBOL con algunos salarios de seis cifras! Sin embargo, estará trabajando en bases de código enormes y mal escritas creadas a lo largo de varias décadas. Eso no es divertido.
Pero ¿y si la seguridad laboral no es lo tuyo? ¿Quiere trabajar en productos interesantes, pero está dispuesto a quedarse sin 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 inicial, usamos una mezcla de Go, Python y CoffeeScript. Otras nuevas empresas utilizan Rails y Groovy y todo tipo de marcos e idiomas poco claros. Simplemente elige uno y encontrarás un trabajo interesante en algún lugar..
Código nuevo, o antiguo?
Escribir un nuevo código es una experiencia muy diferente de mantener una aplicación existente, como Bruce agregó:
Con sus comentarios sobre COBOL, tiene una especie de otra consideración: ¿quiere trabajar en un nuevo código o mantener el código de otra persona? Esto puede ser un gran artículo al decidir qué dirección mover. Para proyectos más pequeños, mantener un código base escrito por otra persona puede no ser tan malo, pero he visto algunas secciones de código en las que varias personas lo han estado mirando durante horas preguntando, “En qué estaba pensando este chico?”, o donde el programador original se estaba aprovechando de una característica o error específico en el compilador (que puede haber sido corregido en el compilador actual) para lograr algo.
Qué pasa si no tienes una opción?
Guy regresó para recordarnos que no todos tienen una gran variedad de opciones:
Mateo plantea una buena pregunta con, “¿Qué tipo de trabajo de programación quieres??”
Curiosamente, nunca pensé realmente que tendría muchas opciones al respecto. Sabía que quería hacer desarrollo web cuando comencé, después de haber hecho otra programación de forma recreativa. Pero pensé que sería mejor estar preparado para aceptar cualquier trabajo que pudiera conseguir, y estar dispuesto a aprender a medida que avanzaba. Ahora soy un experto en todos los oficios, experto en varias tecnologías - maestro de ninguno.
En cuanto a averiguar dónde quiere trabajar, es importante determinar el tipo de estilo de vida que desea. Luego mire las publicaciones de aquellas empresas que parecen cumplir con sus criterios y vea lo que están buscando en general. Reunir una cartera de cosas similares a lo que hacen puede ser muy útil también, 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 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 capturamos todos los puntos de vista posibles aquí, para eso está la sección de comentarios. Me interesaría mucho escuchar su opinión sobre esta pregunta, ya sea que usted sea un programador profesional o no. ¿Cómo elegirías un lenguaje de programación para obtener un buen trabajo en dos años? ¿Es esa incluso una buena manera de elegir un idioma? Comparte tus pensamientos a continuación.
Explorar más sobre: Búsqueda de empleo, Programación.