Por ahora trabajo con asp.net y C #. También he hecho un trabajo decente en Java. Estoy planeando mi carrera de tal manera que algún día sea agnóstico del lenguaje. ¿Cuáles son las cosas que necesito aprender?
Primero serían los paradigmas de OOP, ya que habla sobre el diseño de la Clase. ¿Hay otros?
language-agnostic
Gopi
fuente
fuente
Respuestas:
Para ser independiente del idioma, debe tener experiencia en todos los estilos y tipos de idiomas comunes.
También:
Algunos estilos de escritura:
experiencia de escribir fuerte frente a débil también es útil.
Algunos estilos de tiempo de ejecución diferentes:
Cosas de nivel inferior:
Además de eso, diría que necesita experiencia en alguna programación concurrente y algo impulsado por eventos . Probablemente también debería asegurarse de saber algo sobre los diversos dominios, como la programación web (cliente y servidor), desarrollo de clientes enriquecidos / escritorio, juegos. También es posible que desee aprender sobre programación integrada o hardware dedicado (como consolas de juegos), y el desarrollo móvil se está convirtiendo en un dominio cada vez más relevante.
Otros también han mencionado que vale la pena adquirir algo de experiencia en programación genérica y enfoques de programación Meta .
Cuando aprenda estos paradigmas, evite simplemente aprender la sintaxis y escribir en su antiguo estilo. He visto a muchos desarrolladores de C # escribir JavaScript como si estuviera estáticamente escrito. No hagas esto, trata de aprender los paradigmas del lenguaje y abrázalo.
Si ha hecho todo esto, las diferencias entre los idiomas se volverán en gran medida sintácticas, por lo que el cambio se convertirá en un ejercicio bastante simple de aprender una nueva sintaxis.
Sin embargo, no olvide que la programación moderna casi siempre depende de un marco, por lo que familiarizarse con los marcos comunes y populares para cada idioma que aprende también es fundamental. Saber que C # es irrelevante sin .net.
fuente
No creo que puedas convertirte en un verdadero agnóstico del lenguaje. Me parece que "pienso" en mi idioma actual (en este momento C #).
Sin embargo, una vez dicho esto, creo que podría separar el diseño del código al tratar de pensar en un pseudocódigo en lugar de un lenguaje específico, y realmente escribirlo en este formato. Esto podría ayudarlo a concentrarse en las decisiones de diseño y arquitectura en lugar de la implementación en su idioma actual. El inconveniente con eso, como señala Simon, es que el lenguaje y el marco que finalmente utilices influirán inevitablemente en el diseño. Entonces, a medida que su diseño se desarrolle, estará cada vez más vinculado al lenguaje y al marco.
fuente
Al leer su pregunta y algunas de las respuestas, uno puede tener la impresión de que usted iguala el "agnosticismo del lenguaje" con "conocer cada paradigma en la tierra".
No estoy seguro de si conocer cada paradigma que existe o conocer una variedad de idiomas, abarcando varios paradigmas y tipos de idiomas, lo hace "agnóstico del lenguaje".
Es como decir que haber practicado todas las religiones te hace religioso agnóstico.
Creo que una persona independiente del lenguaje con respecto a los lenguajes de programación debería ser alguien que no sabe programar en ningún idioma o que no le importa con qué idioma se le pide que programe.
Dicho esto, algunas personas dicen que un verdadero programador puede programar en cualquier idioma con acceso a la documentación de ese idioma.
Si eso es lo que quiere decir con "agnóstico del lenguaje", entonces casi cualquier programador experimentado puede programar en cualquier idioma con el que se vea obligado a trabajar, dado el acceso a la documentación del idioma.
Quizás quieras ser "politeísta del lenguaje".
Yo mismo soy competente en varios paradigmas de lenguaje, pero preferiría OOP cuando se aplique. Entonces supongo que no soy agnóstico.
Difícilmente encontrará a alguien que no prefiera un cierto paradigma o lenguaje dada la libertad de elegir.
fuente
No son solo los lenguajes, Java tiene tantos modos diferentes que podrías pasar años aprendiéndolos todos. Podrías aprender:
Y cien cosas que me faltan, SOLO dentro de Java.
Si pasa años cubriendo la amplitud (aprendiendo cada idioma), tendrá problemas para ganar la profundidad para trabajar eficazmente en cualquiera de ellos.
No digo que aprender un nuevo idioma sea NUNCA un problema, ¡debes hacerlo activamente! Intento elegir mi próximo trabajo en función de lo que puedo aprender (lo que aún no he hecho), pero no suelo elegir un idioma aleatorio y no lo aprendo más. La última vez que lo intenté fue con Scala y yo. dejó algo humilde ...
fuente