Como se indica en el título, ¿cuál es la diferencia en años de experiencia en un idioma dado en términos de desarrolladores? Por ejemplo, si un desarrollador ha tenido cinco años trabajando con el idioma A y el otro desarrollador ha tenido dos años trabajando con el idioma B seguido de tres años trabajando con el idioma A, ¿habría una diferencia perceptible entre ellos?
9
Depende.
Tengo un amigo que tiende a apegarse a un idioma, así que si lo consideras "programador A", tiene 1 año de experiencia con ese idioma, cinco veces.
Diferentes idiomas te permiten hacer cosas diferentes. Un ensayo que particularmente me gusta se llama " Batir los promedios " de Paul Graham. En él está tratando de convencer a la gente para que aprenda lisp, pero también hace algunos puntos muy útiles:
En general, mi consejo es aprender más de un idioma y aprender cuáles son las fortalezas y debilidades de los idiomas.
fuente
Por supuesto, el desarrollador que tenga más años de experiencia en un idioma tendrá una mejor comprensión de las bibliotecas centrales y las idiosincrasias de ese idioma. Si los idiomas adoptan el mismo paradigma (imperativo versus funcional), entonces no deberían tener más problemas para aprender ese idioma que no sea aprenderlo.
Mi mayor dificultad para aprender un nuevo lenguaje provino de tratar de cambiar de C # a Erlang, porque representaba no solo una nueva sintaxis sino también una nueva forma de pensar acerca de la programación.
fuente
Esto es lo que esperaría / espero:
fuente
Los idiomas no son el problema. Puedes aprender un idioma completo en un par de días. Lo que lleva más tiempo absorber son las convenciones, las API y varios marcos de terceros. Cuando las personas piden cinco años de X, no les importa el idioma, quieren a alguien que tenga mucha experiencia resolviendo problemas en ese idioma y con ese idioma para que no tengan que pagar ninguna de las curvas de aprendizaje.
fuente
Experiencia y práctica deliberada.
Si no practica deliberadamente, no obtendrá experiencia. (Debe examinar sus errores y corregirlos, practicar lo que es débil y contar con un experto que le diga qué está haciendo mal también ayuda).
Si no intentas mejorar, ¡puedes ser un novato para siempre!
Después de diez mil horas de práctica deliberada, obtendrás experiencia. (Este hallazgo de la educación / capacitación está en toda la red).
Si su programador A no ha estado practicando deliberadamente, nunca mejorará.
Si su programador B no ha estado practicando deliberadamente, nunca mejorará.
Otro hallazgo de la misma investigación: que si tengo 15000 horas y tú tienes 10000, y sigo practicando y tú también, nunca serás mejor que yo.
Saber dos idiomas probablemente hará que B sea un mejor programador (sujeto a las reglas de práctica).
fuente
¿Y los estás usando para el lenguaje A, supongo? (Claramente, habría una diferencia en el lenguaje B.)
Depende en parte de las diferencias entre A y B (particularmente si acortamos la experiencia del segundo desarrollador con A). Si son bastante similares, esencialmente no habrá diferencia en la experiencia. Si A tiene conceptos considerablemente diferentes, tres años aún son suficientes para aprenderlos. Dada una biblioteca muy grande y herramientas complicadas, puede haber una diferencia entre tres y cinco años.
Por supuesto, lo que más importa aquí es el individuo. Un buen desarrollador puede aprender una nueva plataforma a fondo en tres años, por lo que esto no debería ser un problema.
fuente
Estoy de acuerdo en que el lenguaje es lenguaje y los conceptos son conceptos.
Mi problema es que hay una gran cantidad de programadores en estos días que sin un IDE sofisticado no podrían programar en absoluto. Realmente no son programadores, sino que son más como diseñadores.
Sé por experiencia personal que hay muchas personas que han sido seducidas por el entorno de desarrollo de Microsoft. No es incorrecto que suelten un cuadro de texto en la pantalla, luego configuren las propiedades con el asistente y arrastren los datos de una imagen de la base de datos, pero ¿son realmente codificadores en algún idioma si todo lo que hacen es configurar pruebas básicas de igualdad?
Esas personas nunca podrán tomar los Conceptos que han aprendido y aplicarlos a otro idioma.
Cuando entrevisto a personas, estoy más interesado en cómo hicieron su desarrollo y qué marcos utilizaron. Me gusta hacer preguntas como "¿Cómo se escribe un controlador de eventos?", "¿Cómo se colocan exactamente los datos en la base de datos?", O incluso "¿Cómo hago que este botón en particular se vuelva púrpura cuando hago clic en él?" esto eliminará rápidamente a los diseñadores y dejará a los programadores. He descubierto que 3 o 4 años en realidad programar con un año en mi idioma de elección es suficiente para lo que necesito.
Solo otra opinión,
Tal
fuente
"Años de experiencia en lenguaje / plataforma X" es en gran medida una patología de reclutamiento ...
Está abierto a interpretación y no es tan útil como parece a primera vista. Como se ha dicho, el mito de los años de experiencia es una buena lectura.
Además, de manera crucial, la medición de "años de experiencia" en sí misma puede ser muy imprecisa. Aquí hay un ejemplo de mi actuación actual: mi tarea principal es desarrollar y mantener una aplicación web Java. Sin embargo, esto se ejecuta en un back-end que es MFC / C ++ / SQL Server. En consecuencia, también estoy lidiando con el código C ++ casi a diario. PERO: esta experiencia en C ++ es relativamente superficial y está orientada al mantenimiento, y realmente ya no escribo grandes componentes o programas enteros desde cero en MFC / C ++ (aunque solía hacerlo en roles anteriores).
¿Puedo seguir contando estos últimos 5 años como "5 años de experiencia en C ++"? Tal vez. Tal vez no. Dependiendo de cómo quiera venderlo para asegurar un rol en particular, puedo reproducirlo fácilmente sin mentir, o puedo admitir que en realidad no fueron 5 "años de experiencia en C ++" sólidos. :) Estoy seguro de que muchos casos están igualmente abiertos a este tipo de problema de "inexactitud de medición". La profundidad de la experiencia puede nublar enormemente la calidad de la experiencia. Por lo tanto, una "X cantidad de tiempo con C ++" no significa mucho en sí mismo.
fuente
Sí, el Programador 1 no tiene conocimiento de la sintaxis del lenguaje B.
Los conceptos de programación son conceptos de programación. El lenguaje es meramente sintaxis.
fuente