¿Debería uno aprender nuevos idiomas o solo concentrarse en los idiomas que ya conoce y aumentar su conocimiento del mismo? [cerrado]

22

¿Qué camino es más beneficioso y productivo?

Chankey Pathak
fuente
1
¿No depende esto del tipo de trabajo y proyectos? Si trabajas para una gran empresa, probablemente no estés cambiando las tecnologías con demasiada frecuencia, si trabajas por cuenta propia, tienes la opción.
Chris
@Chris: Sugerencia, "Idiomas y marcos", la mayoría de los desarrolladores ya no trabajan solo con un compilador de línea de comandos y un editor de texto, sino bibliotecas, IDE, BD, Herramientas de
terceros
1
A juzgar por el recuento de votos, esta pregunta es constructiva en opinión de muchos. Creo que Mark Trapp es en realidad un programa de computadora escrito para cerrar preguntas.
T. Webster

Respuestas:

18

Creo que necesitas los dos. Debe concentrarse en sus competencias básicas y mejorar su comprensión de ellas, pero al mismo tiempo es beneficioso mirar hacia afuera y ver qué más hay ahí fuera. La exposición a otros enfoques y otros idiomas es muy importante para que uno sea un mejor desarrollador en general. Hay muchas maneras de desollar a un gato, por así decirlo, y conocer la mayor cantidad posible de ellas lo convertirá en un psicópata mejor para elegir la herramienta adecuada para una tarea en particular.

Por lo tanto, dedique la mayor parte de su tiempo a mejorar su competencia elegida y dedique parte de su tiempo a aprender algo nuevo.

Adam Lear
fuente
44
+1 Por saber cómo usar bien el "martillo", pero también por saber que existen cosas como "destornilladores", "sierras" y "tachuela".
Ryan Hayes
1
Y la mayoría de las veces aprender un nuevo idioma puede exponerlo a un patrón de diseño o algo que es útil y que nunca pensó en usar sus propios idiomas.
AttackingHobo
8

Alguien dijo: "No vale la pena aprender un lenguaje que no cambie la forma en que piensas sobre la programación".

Entonces, si conoce Java, hay poco beneficio en aprender C # (o viceversa). Si no es por razones pragmáticas (es decir, lo necesita para resolver un problema), le sugiero que se adhiera a un Idioma por Paradigma, y ​​su horario aún está lo suficientemente lleno;).

La especialización, por otro lado, en mi experiencia se logra principalmente en el campo, es decir, cuando se trabaja en un proyecto, por lo que es algo natural.

keppla
fuente
1
C # ofrece nuevas características interesantes para los desarrolladores de Java. Las expresiones linq y lambda podrían abrir sus ojos a un mundo nuevo.
Carra
En realidad, diría que llevar un programa C # al mercado ha sido más fácil (al menos para mí), y luego llevar un programa Java al mercado. Entonces, en ese sentido, mis ojos se abrieron porque podía tener las comodidades de Java mientras evitaba algunas de sus deficiencias. Independientemente de las guerras de llamas del lenguaje, diría que es un buen punto.
Riwalk
Empecé en .NET y realmente aprendí mucho de mis retoques con Objective C y JavaScript.
Trevor
@Carra: no estaba al tanto de eso (mi última experiencia en profundidad con ambos fue cuando Java 1.5 era actual). ¿La diferencia, según su experiencia, ha crecido lo suficiente como para hacerlos lo suficientemente diferentes como para justificar una recomendación para aprender ambos (desde una perspectiva 'académica')?
keppla
Probablemente aún sea mejor aprender uno y un lenguaje funcional. En general, estoy de acuerdo contigo.
Carra
3

Hay muchos argumentos realmente buenos en ambos lados. Hace muchos años se me presentó esa pregunta exacta ... concéntrese en mi idioma principal e intente convertirme en un "experto" O escoja un nuevo idioma y amplíe mi comerciabilidad. Elegí concentrarme en un idioma.

Realmente no habrá una respuesta incorrecta. Ambos tienen méritos, realmente se reducirá a cuál le queda mejor y a dónde quiere que vaya su carrera.

Walter
fuente
2

Aprender nuevos idiomas es principalmente un medio para obtener nuevos conceptos y aumentar su eficiencia con la programación. La programación de aprendizaje en sí misma es muy diferente de aprender un nuevo idioma para programar.

Debes concentrarte en mejorar tus programas (y hay muchas métricas para medir eso, muchas subjetivas; no importa, elige las métricas y refínalas con el tiempo, úsalas para tu educación).

Una vez dicho esto, aprender idiomas 'más nuevos' (digamos Python) sobre tu lista anterior (como, digamos ' C' y muchos más) te ayudará a pensar de manera más eficiente y a concentrarte en los conceptos centrales que deberían mejorarse. Llevando el ejemplo más allá, puede que no aparezca de inmediato, pero es posible que su Cprogramación mejore porque ha estado pensando en Python. Incluso podría comenzar a escribir Python en lugar de psudocódigo para C. Ahora, ese es un psudocódigo mucho más legible y verificable.

Lo que nos lleva a resumir la pregunta principal:
Sí, debe enfocarse en los idiomas que ya conoce y aumentar su conocimiento en ellos, siempre y cuando todavía estén en uso para usted. Y también debe incursionar en lenguajes más nuevos para dar a sus cerebros herramientas más nuevas para pensar (quizás incluso más rápido) en soluciones para sus necesidades de programación.

nik
fuente
1

Domina un marco de programación (y lenguaje relacionado) y deja algo de tiempo libre para otro "dominio" preferiblemente diferente. Ejemplo: cliente-servidor C ++, Ruby en la Web

umlcat
fuente
1

Aprendiendo un nuevo lenguaje

Depende del propósito para el que estás aprendiendo el idioma. Si está aprendiendo el idioma porque usa un paradigma diferente o es adecuado para un dominio de problema particular. Sin embargo, si es un lenguaje muy similar al que ya conoce y todo lo que planea hacer es reescribir todo su código existente en ese nuevo idioma, probablemente no haya tanto valor (por ejemplo, reescribir una aplicación web de Python en rubí) en él.

Conocimiento más profundo en el idioma actual

Si ya se siente muy cómodo programando en un lenguaje, está familiarizado con todas sus expresiones idiomáticas y puede escribir programas en él sin tener que buscar en la documentación para cada llamada a la biblioteca, probablemente no haya mucho más que aprender al respecto. Si, por otro lado, su conocimiento del idioma no es tan profundo, puede tener algún valor aprender más. Algunas buenas formas de medir si estás en el campo anterior o posterior para el lenguaje X son

  1. ¿Cuántos programas has escrito en el lenguaje X?
  2. Si va a Desbordamiento de pila y mira las preguntas etiquetadas con X, ¿a cuántas de ellas se sentiría cómodo dando una respuesta?
  3. ¿Acude la gente a pedirle ayuda con el lenguaje X?

Si sus respuestas a estas preguntas están en algún lugar en la línea de "mucho", "la mayoría de ellas" y "sí, y se está volviendo molesto", es una buena indicación de que ha dominado el idioma y debe pasar a algo nuevo.

Zhehao Mao
fuente
0

Si ya eres lo suficientemente bueno con el idioma que conoces, no es bueno aprender trucos muy detallados y específicos para un poco de genialidad ... será totalmente una pérdida de tiempo. Sin embargo, cuando estás bastante incómodo con un idioma, la sugerencia es dominar ese idioma primero.

Además de los idiomas, hay marcos, patrones ... para aprender un marco debe conocer un idioma, por lo que para idiomas muy similares, aprenderlos no ayuda más que traer diversión no tan divertida.

Mi opinión personal es que siempre debe desarrollar sus capacidades para hacer un software más rápido, seguro y más robusto, para más plataformas, y acortar el tiempo, para ese objetivo puede necesitar aprender un nuevo idioma, un nuevo marco, un nuevo IDE (eso es tan importante como un idioma), y solo cuando está para ese propósito su inversión vale la pena.

Al menos no aprendas un nuevo idioma para aumentar la cantidad de idiomas que conoces.

tactoth
fuente