Recientemente solicité un puesto de desarrollador junior en una empresa de TI. Durante la entrevista logré tener muy claro con qué tecnologías e idiomas estaba más familiarizado, y todo salió bien.
Después de la entrevista me enviaron una tarea, que básicamente es construir una aplicación web simple, y fueron claros en estos dos puntos:
Al leer las pautas de asignación, sé que podría hacer un muy buen trabajo con tecnologías con las que tengo más experiencia.
Durante la entrevista logré averiguar qué tecnologías utilizan de manera más regular y es algo con lo que ya trabajé sin embargo por un tiempo muy breve, esto me deja con el siguiente dilema:
¿Debería hacer la tarea con la tecnología con la que estoy más familiarizado, lo que significa que haría el trabajo más rápido y con más calidad, aunque esta tecnología en particular realmente no la usaría si me contrataran?
¿O debo usar la tecnología que sé que la empresa usa en sus proyectos, lo que significa que tendría que estudiar un poco sobre cómo usarla y que me llevaría más tiempo y probablemente con menor calidad que la primera opción?
Creo que vale la pena señalar que el entrevistador me preguntó mucho sobre mi experiencia con las tecnologías que no están usando en este momento .
Si le dijeron explícitamente que use cualquier tecnología que desee e incluso se entusiasmaron con la tecnología que conoce, entonces le sugiero que use la que le resulta más familiar.
De esa manera, entregará un código de mejor calidad que si tomara una curva de aprendizaje en este momento con las otras tecnologías.
También les mostrarás más de "tu verdadero yo" como profesional, lo que les permitirá evaluarte mejor como candidato y ver lo que puedes aportar a la empresa. También verán qué cosas nuevas podrían aprender de usted o qué nuevas tecnologías podrían considerar adoptar.
Utilice la tecnología con la que esté más familiarizado.
Lo más probable es que la empresa quiera ver cómo piensas, no necesariamente si conoces las complejidades y el azúcar sintáctico de PHP, Perl, Ruby y C. No hace mucho tiempo, comencé a trabajar en una empresa que usa Ruby on Rails y nunca tuve Escribí una línea de RoR en mi vida. Incluso podría salirse con la suya con el pseudocódigo, pero no lo recomendaría.
Cómo piensas es más importante que dónde va el punto y coma.
Descargo de responsabilidad: solo tengo 1 año completo de experiencia laboral, acabo de hacer la transición a mi segundo trabajo de tiempo completo y no he sido contratado en función de las asignaciones, sino más bien de pruebas de corta duración y entrevistas de trabajo.
En primer lugar, incluso si no hay una fecha límite adecuada, sería una buena ética de trabajo completarlo de manera oportuna.
Cualquiera de las opciones tiene sus pros (y tal vez sus contras).
Opción 1, Tecnología Personalmente Familiar , (Pros):
(Contras):
Opción 2, Tecnología estándar de la empresa , (Pros):
(Contras):
Las desventajas no son tan malas, pero supongo que todo se reduce a lo que quieres hacer: mostrar lo que puedes hacer con lo que sabes o usar esto como una oportunidad para desafiarte a ti mismo y familiarizarte con sus tecnologías.
Sugeriría a OP que busque lo que más le resulta familiar para hacer esta tarea y enumeraría algunas de las razones en mi opinión, ya que yo mismo también soy nuevo en la empresa y he pasado por esto hace semanas.
La empresa preferiría que tuviera un pensamiento lógico y habilidades de programación fuertes en lugar de saber más lenguajes de programación pero con habilidades de codificación y pensamiento lógico débiles. Esto se debe a que las habilidades de programación son mucho más importantes que la cantidad de lenguajes de programación con los que está familiarizado. Si le va bien en su tarea con el idioma con el que está familiarizado, entonces la empresa creerá que aprender nuevos idiomas/marco no le llevará mucho tiempo ni le resultará difícil, ya que saben que sus habilidades de codificación y pensamiento lógico son buenas.
Deje que la empresa decida qué tipo de lenguajes de programación o marcos debe aprender después de revisar su asignación. En algunos casos, hay más de un lenguaje de programación/marcos que se aplican en la empresa según el proyecto. La alta dirección decidirá a qué equipo se le asignará y, por lo tanto, aprenderá los nuevos lenguajes/marcos a utilizar. Creo que se le daría suficiente tiempo para ponerse al día en este caso.
Entonces, ¿por qué no haces lo mejor que puedes en la tarea para mostrarles lo que tienes?
¿Debo hacer la tarea con la tecnología con la que estoy más familiarizado o debo usar la tecnología que sé que la empresa usa en sus proyectos?
Hay muchos factores aquí, pero creo que deberías usar la tecnología que usa la empresa.
why?
En primer lugar, los ingenieros son evaluados principalmente en las dimensiones "puede resolver cosas" y "hace las cosas". Si estuviera buscando calificar esta tarea, realmente no me importaría lo que ya sabe, pero más aún si puede aplicar lo que sabe para resolver tareas desconocidas. Esto va a reflejar lo que hace un ingeniero todos los días. Además, un buen ingeniero (web) debe probably
ser capaz de crear una aplicación web básica en cualquier tecnología, aunque no esté familiarizado con ella.
En segundo lugar, realmente puede mostrar una voluntad de sumergirse y resolver problemas difíciles (difíciles por la falta de familiaridad). Esto contribuirá en gran medida a elevarlo sobre otros candidatos.
Tercero. No tiene nada que perder si realmente no hay una fecha límite que se acerque rápidamente. Si resulta demasiado difícil de hacer con su tecnología, simplemente recurra a lo que sabe. Nunca lo sabrían a menos que les dijeras.
Hay ventajas y desventajas en ambos enfoques, como han dicho otros. DarkCygnus y gitguddoge han expresado la consideración que creo que es probablemente la más importante. Probablemente estén evaluando qué tan bien sabe lo que sabe y qué tan bien comprende los principios generales.
Hay muchas formas de resolver el mismo problema de codificación y la eficiencia de las diferentes soluciones puede variar mucho. Por ejemplo, suponga que no sabe lo suficiente sobre las funciones internas de un idioma para saber que un elemento que parece ser una variable primitiva en realidad se implementa bajo el capó como un atributo de objeto, por lo que se asigna en el montón en lugar de la pila, y luego ¿Lo incluyes en un bucle grande? Por supuesto, encontrará que se ejecuta mucho más lento de lo que sería si primero lo convirtiera a un valor basado en la pila. Estos son los tipos de cosas que notan los evaluadores de su código.
Aquí hay un ejemplo de cuatro formas de hacer lo mismo en JavaScript que, aunque todas resuelven el problema planteado, se desempeñan en niveles muy diferentes de eficiencia al hacerlo. Algunas de las soluciones son bastante elegantes y utilizan expresiones regulares para reducir el código necesario a unas pocas líneas. Y también, un poco más lento que el enfoque de bucle iterativo más prosaico.
Creo que es mejor mostrar tu habilidad si eres capaz de escribir código realmente eficiente y de buen rendimiento en cualquier cosa con la que estés más familiarizado que si eres capaz de resolver un problema de manera ineficiente adquiriendo rápidamente un conocimiento práctico de cualquier tecnología que sea. usando. Tenga en cuenta que puede obtener otra entrevista en la que se le pida que justifique sus opciones de codificación, y sonará mucho más informado si puede respaldarlas de manera convincente.
Así que voy a decir que te apegues a lo que sabes mejor, especialmente si eso es lo que piden. Si eso es lo que están pidiendo, lo más probable es que estén buscando para ver qué tan bien sabes lo que sabes.
Cygnus oscuro
Dawud ibn Karim
steve-o
donquikong
bobrodes
Beldad