¿Qué debo hacer para ser agnóstico del idioma?

52

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 debería ser agnóstico del lenguaje. ¿Cuáles son las cosas que necesito aprender?

En primer lugar, los paradigmas de POO ya hablan sobre el diseño de la Clase. ¿Hay otros?

    
pregunta Gopi 07.09.2010 - 11:54

4 respuestas

67

Para ser independiente del idioma, debe tener experiencia en todos los estilos y tipos de idiomas comunes.

  • Un imperativo (le dices qué hacer, paso a paso. Por ejemplo, - C)
  • Un lenguaje declarativo (Dígale cuál es su objetivo, determina qué hacer. Por ejemplo, - SQL / HTML / Prólogo)

También:

  • Un lenguaje funcional (las funciones son clave, evitar los efectos secundarios y de estado son los objetivos. Por ejemplo, Haskell / OCaml / Lisp / F #)
  • Un lenguaje orientado a objetos (Arquitectura donde los objetos encapsulan datos relacionados y los métodos que actúan sobre ellos). Por ejemplo, Java / C #)

Algunos estilos de escritura:

Algunos estilos de tiempo de ejecución diferentes:

Cosas de nivel inferior:

  • Algo bastante bajo nivel (Ej. - C)
  • Algunos dialectos del ensamblado (por ejemplo, NASM)

Además de eso, diría que necesita experiencia de alguna programación concurrente y algo evento conducido . Probablemente también debería asegurarse de saber algo sobre los diversos dominios, como la programación web (cliente y servidor), desarrollo de cliente enriquecido / escritorio, juegos. Es posible que también 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 experiencia con Programación genérica y Programación Meta .

Cuando aprenda estos paradigmas, evite simplemente aprender la sintaxis y escribir en su estilo antiguo. He visto a muchos desarrolladores de C # escribir JavaScript como si estuvieran escritos de forma estática. No hagas esto, trata de aprender los paradigmas del lenguaje y abrázalos.

Si has 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 para aprender algo de nueva sintaxis.

No olvide, sin embargo, que la programación moderna depende casi siempre 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.

    
respondido por el Simon P Stevens 07.09.2010 - 13:19
4

No creo que puedas volverte verdaderamente agnóstico al lenguaje. Encuentro que "pienso" en mi idioma actual (en este momento C #).

Sin embargo, dicho esto, creo que podría separar el diseño del código al tratar de pensar en un pseudo código en lugar de en un lenguaje específico, y 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 de esto, como señala Simon, es que el lenguaje y el marco que utilizas en última instancia influirán inevitablemente en el diseño. Por lo tanto, a medida que se desarrolle su diseño, se irá vinculando cada vez más al lenguaje & marco.

    
respondido por el ChrisF 07.09.2010 - 13:19
3

Al leer tu pregunta y algunas de las respuestas, puedes tener la impresión de que eres igual al "agnosticismo lingüístico" con "conocer todos los paradigmas de la tierra".

No estoy seguro de si conocer todos los paradigmas que existen o conocer una variedad de idiomas, abarcando varios paradigmas y tipos de idiomas, lo hace "agnóstico al lenguaje".

Es como decir que haber practicado todas las religiones te hace religiosamente agnóstico.

Creo que una persona que no habla en lenguaje con respecto a los lenguajes de programación debería ser alguien que no sepa cómo programar en ningún idioma o que no le importe con qué lenguaje se le pide que programe.

Dicho esto, algunas personas dicen que un verdadero programador puede programar en cualquier idioma que tenga acceso a la documentación de ese idioma.

Si eso es lo que quiere decir con "lenguaje independiente", 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.

Tal vez quieras ser "politeísta del lenguaje".

Yo mismo soy competente en varios paradigmas de lenguaje, pero preferiría OOP cuando aplique. Así que supongo que no soy agnóstico.

Difícilmente encontrarás a alguien que no prefiera un cierto paradigma o lenguaje dado la libertad de elegir.

    
respondido por el Tulains Córdova 20.11.2012 - 20:03
0

No solo son los idiomas, Java en sí tiene tantos modos diferentes que podrías pasar años solo aprendiéndolos a todos. Podrías aprender:

  • las características de J2EE como Messaging and Persistence y los diversos servidores
  • jsp y juegos de herramientas orientados a Apache
  • hormigas, maven y otros sistemas de construcción (lenguajes propios).
  • Todo el mundo Groovy / Grails
  • todas las API de apache commons
  • sistemas de prueba (Mocking, JUnit)
  • Constructores de GUI como Swing, GWT ...

Y me faltan cien cosas: SOLO dentro de java.

Si pasa años cubriendo la amplitud (aprendiendo todos los idiomas), tendrá problemas para obtener la profundidad para trabajar con eficacia en cualquiera de ellos.

No estoy diciendo que aprender un nuevo idioma sea NUNCA un problema, ¡deberías hacerlo activamente! Intento elegir mi próximo trabajo según lo que puedo aprender (lo que no he hecho todavía), pero a menudo no elijo un idioma al azar y lo aprendo más. La última vez que lo intenté fue con Scala y yo. dejado algo humillado ...

    
respondido por el Bill K 20.11.2012 - 18:21

Lea otras preguntas en las etiquetas