¿La mayoría de los programadores se especializan en una sola pila, dejando otras cosas, o son expertos en varios idiomas al mismo tiempo? Si es más de uno, ¿cuántos es estándar?
Por experto, me refiero a algo más que simplemente conocer la sintaxis de un lenguaje: un experto sabe lo suficiente de bibliotecas, herramientas, entornos y sintaxis estándar para poder escribir programas no triviales sin tener que buscar constantemente cosas o leer libros / tutoriales.
programming-languages
self-improvement
experience
blueberryfields
fuente
fuente
Respuestas:
El principal beneficio de conocer varios idiomas no es escribirlos directamente. En igualdad de condiciones, prefiero trabajar con un programador de C # que también conozca C, Python y Lisp (por ejemplo) que uno que solo haya pirateado en C #. No es que saber más idiomas sea mejor, es que ser capaz de pensar en problemas en múltiples niveles y desde múltiples perspectivas es realmente útil.
No se trata de marcar un idioma más, o ponerlo en su currículum; solo necesita comprender sus conceptos subyacentes lo suficientemente bien como para programar en él para obtener el beneficio completo. No obtendrá eso al tener una comprensión básica de la sintaxis.
La respuesta más directa es "depende".
En las empresas más grandes se espera / se le permite especializarse, pero como dije anteriormente, creo que aún hay beneficios en comprender cosas más allá de su herramienta favorita.
En lugares más pequeños, realmente no puedes salirte con la tuya. Por lo menos, generalmente necesita mantener su aplicación y compilarla, y probablemente no debería usar los mismos idiomas para ejecutar registros / mezcla de datos como lo hace para construir su aplicación. Supongo que técnicamente podría salirse con la suya al saber un solo idioma, pero el beneficio de tener un lenguaje bien redactado, fuertemente tipado (o al menos con capacidad de aserción), probablemente compilado hace el trabajo pesado y un lenguaje de secuencias de comandos para mantenimiento / Las tareas de configuración / script parecen bastante grandes. No quisiera prescindir de él, sin duda.
fuente
Tienes una pregunta muy interesante:
No creo que ningún programador deba ser un "experto" en un lenguaje específico. Creo que como programadores estamos destinados a ser expertos en programación, diseño de algoritmos, pensamiento en pasos claros, pero un lenguaje de programación es algo que simplemente se aprende.
Un "buen" programador, quiero decir que maneja proyectos de desarrollo sin asustarse detrás del clásico "Nunca he trabajado con eso antes", debe aprender un idioma en menos de 5 días hábiles. Aprende las mejores prácticas, herramientas y bibliotecas principalmente de 2 maneras, 1: lectura y 2: trabajo. O rebotas tu cabeza contra el código o lees un montón de libros.
En unos pocos años siguiendo la premisa de "Los buenos programadores escriben solo código" sin código C # o código C ++ o código Java, se dará cuenta de que después de aprender a desarrollar programas, el lenguaje y las tecnologías no son tan importantes. Claro, sabrás cómo moverte por C # mejor que PHP, pero si has aprendido bien, encontrarás el camino a través de Python si es necesario.
Espero que mis ideas como tú!
fuente
Uno, pero eso no significa que puedas descuidar a los demás. Debe saber lo suficiente para justificar por qué no los está utilizando o conocer sus limitaciones, por lo que puede pedir ayuda cuando sea apropiado.
fuente
Creo que probablemente depende de su personalidad, hay personas que se deleitan en profundizar en los rincones de un tema, y hay otras personas a las que les gusta tener una visión amplia de las cosas. Probablemente necesite averiguar qué tipo de personalidad es usted. No estoy poniendo uno encima del otro, cada uno tiene sus usos.
Como el primero serás el experto, el gurú, el especialista. Como este último, será de uso más general y posiblemente se utilizará en una variedad de situaciones, pero posiblemente no profundizará ni se profundizará en un tema.
fuente
Uno. Pero será mejor que seas muy bueno en eso.
fuente
Uno
El que está delante de ti.
fuente
Como dijo Joel en el podcast SO, es mejor saber muchos idiomas y saber cómo / cuándo usar el idioma adecuado para la tarea. Hay cosas que puede hacer mucho más rápido en un idioma que en otro. Creo que sería bueno saber un lenguaje imperativo y un lenguaje funcional, por ejemplo. Muchas veces aprender un lenguaje más duro o más esotérico entrena tu cerebro para ser un mejor programador en general.
fuente
Ninguno, ya que es probable que haya algunos programadores que no serán expertos en ningún idioma, pero que disfrutan del entorno diverso que tienen y usarán varios idiomas dependiendo de las circunstancias, ya que algunos pueden conocer algunas tecnologías del lado del servidor como PHP, ASP.Net en C # .Net o VB.Net, o Java, un par de lenguajes de secuencias de comandos del lado del cliente como JavaScript o Flash, y esto es sin entrar en ningún hardware utilizado para colocar el material web aquí.
Al mismo tiempo, puede haber algunos programadores que sean expertos en una docena de idiomas o más, ya que eso es lo que estudian con bastante fidelidad la mayor parte del tiempo para mantenerse al tanto de cada idioma.
fuente
Uno, pero debe poder leer de vez en cuando programas no triviales del mundo real que están escritos en algunos otros idiomas. De alguna manera, el que el programador es un experto es como su lengua materna, piensan en él, pero aprender y hablar otros idiomas es muy bueno, ya que muestra que el programador puede apreciar otras formas de pensar. Si pueden pensar en más de un idioma con fluidez como su lengua materna, eso es increíble.
fuente
Esta es una buena pregunta, pero no creo que haya un estándar. Normalmente, por lo que he visto, la gente es experta en un lenguaje de alto nivel (C ++, Java, etc.) en un entorno (Windows / Linux, Mac, Solaris). Conocen aproximadamente algún otro lenguaje de alto nivel, pero no lo entienden completamente. (por ejemplo, C ++, la gente de Java se conoce más o menos). Por más o menos quiero decir que pueden comparar el rendimiento de una tarea en el idioma que son expertos y en el otro idioma. Y luego son moderados en algunos de los lenguajes de secuencias de comandos. (por ejemplo, la gente de Linux sabe bash, la gente de Windows sabe VBA, la gente web sabe PHP).
Para mí lo que importa es el conocimiento básico del algoritmo que el lenguaje. Si sus conceptos básicos son buenos, hay menos posibilidades de equivocarse en cualquier idioma.
Pero sí, a veces puede ser útil saber qué idioma podría ser mejor para cada tarea. por ejemplo, el siguiente código es mucho más rápido en pascal que en C.
strcat (A, "Hola"); strcat (A, "Mundo"); strcat (A, "¡Hola!");
Esto se debe a que Pascal guarda la longitud de la cadena en la primera ubicación y, por lo tanto, es fácil saltar a la última ubicación. En C, la terminación de la cadena es '\ 0' y, por lo tanto, tendrá que recorrer toda la cadena para la operación de strcat.
fuente
Depende del entorno donde esté programando. En un trabajo anterior, la mayor parte de mi trabajo estaba en Perl; Durante mi tiempo allí, me hice bastante competente. Ahora trabajo en un lugar que tiene programas heredados en tres idiomas que apenas conozco la sintaxis; Se espera que los mantenga además de mi trabajo en nuevos proyectos. Ahora soy menos maestro de cualquier lenguaje, pero creo que he tenido una mejor idea de la programación . Aprendí a pensar de manera más abstracta, ver primero el panorama general y luego buscar la sintaxis y las bibliotecas para completar los detalles.
fuente