¿Solicita un puesto de desarrollador si no conoce bien el idioma o los idiomas?

Si y no. Es más importante comprender un paradigma de programación que ser sorprendente en un lenguaje de programación específico.

Por lo general, un programador que se sienta cómodo con Java y comprenda los problemas de administración de memoria puede aprender a trabajar con una base de código C ++. Un programador con experiencia escribiendo en Haskell probablemente puede aumentar rápidamente la base de un código Scala. Una persona con una comprensión decente de la teoría de conjuntos puede aprender los conceptos básicos de SQL en unas pocas horas.

Algo más específico que los patrones y el flujo del lenguaje se puede aprender en el trabajo mientras el programador se familiariza con los problemas específicos del producto en el que está trabajando. En la industria, siempre tiene ejemplos de código para mirar, y siempre tiene compañeros de equipo para ayudar con preguntas específicas (y con suerte, están revisando su código en caso de que cometa errores).

Una base teórica sólida en un paradigma de programación puede permitir que un programador brillante y motivado se sienta cómodo trabajando con una variedad de lenguajes que siguen ese paradigma con un tiempo de aceleración relativamente corto.

Como entrevistador para algunas empresas y gracias a los excelentes consejos y las discusiones constantes sobre el tema con otros gerentes, nunca me concentré en lo que ya sabe, sino en dos cosas: 1) ¿ha adquirido una forma de sonido consciente / semi-consciente de aprender a hacer cosas? 2) ¿estás postulando para un puesto que refleja lo que te gusta hacer?

El primero es fácil de entender y se refiere al hecho de que en la programación de computadoras nunca haces las mismas cosas dos veces. Si lo haces, te estás repitiendo, lo cual ya es un antipatrón. Por lo tanto, debe ser apto para adquirir nuevos conocimientos. Algunas personas son mejores en esto, y usted las ve porque les gusta desafiar el status quo propuesto, o les gusta reunir formas objetivas o de otro modo “alternativas” para probar axiomas. Hay una sensación natural de incomodidad hacia las proposiciones no verificadas o las que se basan solo en la autoridad de quién las expresa.

Llegamos a la parte de la pasión. En mi humilde opinión, si te apasiona la programación de computadoras, dominarás al menos cinco lenguajes de programación. Tal vez estoy llegando al mismo punto a través de un camino diferente, pero ¿permitiría que una empresa o una comunidad de un solo idioma dicte todo lo que necesita saber sobre programación? Ese tipo de suposiciones deben ser cuestionadas.

Cada compañía es diferente cuando se trata de conocer tecnologías particulares.

Google no espera mucha experiencia previa y prueba la habilidad general. (La excepción son los candidatos a doctorado que son evaluados en su área de investigación). Esto se debe a que Google utiliza una gran cantidad de tecnología patentada y existe la expectativa de que tomará entre seis meses y un año ponerse al día. Es posible desarrollar competencia intermedia con un nuevo idioma durante ese período de tiempo. Los fundamentos de CS y la capacidad de programar son importantes, pero la experiencia con lenguajes y tecnologías particulares no lo es.

Otras compañías pueden desear experiencia en idiomas / tecnologías particulares y no están dispuestas a invertir en capacitación . En particular, si la empresa construye con sistemas de código abierto y disponibles públicamente (como AWS), puede preferir contratar a alguien que ya esté familiarizado con esas herramientas. También pueden estar menos dispuestos a contratar a un candidato que necesitará seis meses para ponerse al día en un nuevo idioma.

En la mayoría de los lugares hay un término medio. Quieren que los candidatos sean expertos en todas las tecnologías, pero se dan cuenta de que esto no es probable. Por lo tanto, podrían estar dispuestos a enfrentarse a un programador que conoce Java pero no conoce AWS, o viceversa. O tal vez son competentes en Python pero solo tienen una experiencia mediana con C ++. Es probable que no todas las tecnologías sean igualmente importantes para la empresa, por lo que incluso si un candidato no coincide, aún puede tener una oportunidad en el trabajo.

Lo mejor que puede hacer es aclarar su nivel de experiencia con las tecnologías enumeradas y dejar que decidan. Saben mejor cuán importante es para ellos el conocimiento de las tecnologías específicas. Si su experiencia no coincide, entonces que así sea. Por otro lado, si está al frente y lo traen a una entrevista, estaría bien decir que no está particularmente familiarizado con un idioma o tecnología. Podrían tener eso en cuenta al evaluar su desempeño. Saber lo que sabe y qué tan bien lo sabe es un rasgo importante en un desarrollador.

No me ha importado. El primer trabajo que obtuve de la escuela de posgrado fue para un fondo de cobertura y me dijeron que podía escribir en el idioma que quisiera. Estábamos construyendo un sistema de comercio algorítmico en un nicho de mercado desde cero, trabajando en un problema en el que nadie había trabajado antes, por lo que no había necesidad de integrarse con una base de código existente y gran parte del trabajo era de naturaleza exploratoria de todos modos. En mi trabajo actual, puede llevar hasta un año obtener autorización para recibir información sobre qué es el programa, lo que le brinda mucho tiempo para aprender un nuevo idioma. * Habilidades generales de resolución de problemas y conocimiento de la eficiencia del algoritmo y el objeto. El análisis orientado y el diseño de sistemas más grandes es lo que les importaba.

* Lo curioso de la defensa. Mi cuñado acaba de terminar el entrenamiento de las fuerzas especiales, para lo cual se requiere que aprendas un nuevo lenguaje natural, que por supuesto te envían a la escuela, así que si es posible que un gruñido de infantería vaya de cero a fluido Tagalo en cuestión de meses, seguramente un ingeniero lo suficientemente inteligente puede aprender a usar un lenguaje de programación desconocido.

Depende. Muchas veces es lo suficientemente bueno como para tener algo cercano a lo que quieren, no necesariamente una coincidencia exacta.

Muchas veces, los idiomas y las habilidades enumeradas en un puesto de trabajo son todo lo que el gerente de recursos humanos podría pensar, o todo lo que el equipo actual está utilizando. El problema es que a menudo esto es excesivo.

En mi último trabajo, una publicación de trabajo que enumera todos los idiomas que usé incluiría C #, Ruby, Java, JavaScript, SQL y Groovy, además de experiencia en JQuery, MVC.NET, Mule, SalesForce, etc., etc.

No es razonable esperar encontrar una pareja perfecta para ese desastre.

Mi trabajo actual quería Perl, Rails, Java, experiencia en Linux, MySql, etc. Muy poca superposición directa, pero pude decir que había trabajado en Perl antes de mi último trabajo, que MVC tomó mucho concepto de Rails, eso Usé Linux para mis máquinas personales, etc.

El otro programador que contrataron antes que yo no conocía a Perl, pero él solicitó y consiguió el trabajo.

Aun así, a veces las empresas quieren experiencia en habilidades específicas y no tener esas habilidades en su currículum o carta de presentación lo mantendrá fuera de la entrevista.

Si y no.

Particularmente cuando cumple con la mayoría de los requisitos, incluso si le falta un idioma o herramienta, puede comunicarse y aprender en el trabajo. La mayoría de los puestos no obtienen el candidato ideal, por lo que puede intentar ser el más cercano.

Dicho esto, inviertes tiempo para estudiar al menos lo básico, en preparación para tu entrevista y luego para unirte.

Depende mucho del puesto y de la empresa. Si lo contratan para mantener / ampliar el software escrito en un idioma específico, entonces probablemente sea importante. Si lo contratan para desarrollar aplicaciones complejas, entonces el conocimiento específico del dominio probablemente sea mucho más importante: siempre puede aprender un nuevo idioma.

Si no los conoce en absoluto, entonces no; a menos que sea realmente un puesto de aprendiz, no le darán trabajo. No conocerlos bien es bastante normal; muchas personas obtienen su primer trabajo antes de que realmente puedan armar un programa serio por sí mismas.

Muchos anuncios de trabajo tienen una enorme lista de diferentes habilidades que sienten que deben tener. A veces vale la pena solicitarlos, porque al final podrían no encontrar personas que tengan todas esas habilidades al precio que están pagando y podrían llevarte a ti. Por otro lado, algunas personas pueden ser molestadas contigo por tener la presunción de presentar una solicitud.

Mi primer trabajo fue en un idioma que nunca había usado y con un motor de juego del que nunca había oído hablar. 10 meses después, me asignaron una programación de tareas en un lenguaje que nunca había escuchado sobre el uso de un motor de juego que nunca había usado. Mi siguiente trabajo fue programar en un lenguaje que nunca había usado.

Por lo tanto, no solo solicito los recibo. El idioma rara vez importa. Si la empresa necesita un experto y los necesita al día desde el primer día, entonces seguro. O si están explotando algunas características del lenguaje realmente profundas, entonces tal vez. Pero de lo contrario, puede aprender la sintaxis básica de un fin de semana a una semana y estar listo para continuar. Para ser sincero, me lleva más tiempo aprender la base del código a un nivel que me gusta más que a los idiomas.