¿Cómo esperan las empresas que alguien obtenga 2 años de experiencia como desarrollador junior si casi todas las vacantes son para personas con 2 años de experiencia?

Esperamos que trabajen en otro lugar, como una gran empresa que puede pagar a los desarrolladores junior para aprender los conceptos básicos de software comercial y tiene suficiente efectivo para cubrir a las personas que no trabajan. Las grandes compañías de software estadounidenses hacen reclutamiento en el campus, por lo que procesan un flujo constante de esas personas en desarrolladores de software de empleador oficial.

Cuando no podemos contratar a suficientes personas para su segundo trabajo corporativo, podemos mirar a los nuevos graduados con pasantías y experiencia de código abierto que sugieren que tienen más probabilidades de tener éxito que el graduado promedio con cero experiencia práctica fuera de la escuela. Si bien el código horrible que escribí antes de conocerlo mejor, el subsistema SCSI de Linux que construí a los 18 años me abrió las puertas.

Cuando nos conformamos con nuevos graduados, a menudo pedimos referencias a profesores universitarios en nuestros alma maters y escuelas locales. Hable con sus profesores y vea si tienen algo que ofrecer. Mi miembro favorito de la facultad, Evi Nemeth, colocó estudiantes en todo el país.

Hable con ex compañeros de clase que saben de lo que es capaz: obtuve mi primer trabajo a través de un estudiante con el que compartí muchas clases y tercero con mi compañero de Compiler Construction.

Busque trabajos a nivel local donde el costo de no trabajar es menor. Solicite en compañías menos populares que no están eligiendo ingenieros junior con 2–5 años de experiencia.

Aproveche la experiencia de uno de estos trabajos iniciales para obtener mejores puestos posteriores.

Repasemos eso desde la perspectiva de un empleador.

La primera semana o dos.

Alguien sin habilidades prácticas y experiencia comprobada se une a su equipo. Los saluda, los muestra, los presenta al equipo y los deja acomodarse en su escritorio.

Compartes el acceso a tu VPN, los agregas en Dropbox o Drive, les das la documentación del primer proyecto en el que trabajarán. Organice una breve reunión con los otros desarrolladores si lo desea, está bien.

Dejas que instalen su stack técnico y esperas que comiencen a solucionar errores y problemas durante los primeros días, y espero que lo hagan desde allí.

Esto fallará miserablemente.

El desarrollador nuevo (muy probablemente) carece de:

  • Habilidades técnicas.
  • Conocimiento de la mejor pila técnica que necesitan usar (o lo que sea que la compañía use).
  • Experiencia con GitHub / Bitbucket, integración continua, scripts de implementación, pruebas unitarias.
  • Sin exposición a un proyecto grande (o incluso existente).
  • Falta de familiaridad con los conceptos de un gran producto: arquitectura, infraestructura, fundamentos.
  • No hay experiencia práctica en el software de refinación con compatibilidad con versiones anteriores.
  • Experiencia limitada en probar el problema de numerosas maneras, sabiendo lo que puede fallar en el extremo técnico (casos extremos o regresiones).

Lo que probablemente sucederá es la falta de progreso o una serie de parches que rompan casi todo.

Luego vienen las habilidades de comunicación y gestión.

No estoy hablando de “liderar un equipo”, por supuesto.

Pero mientras trabaja en errores (o incluso durante la revisión de la documentación), un desarrollador está a punto de:

  • Estime ciertas características o priorice el trabajo atrasado.
  • Haga preguntas específicas que aclaren las necesidades del negocio y el contexto de la tarea.
  • Construya un modelo mental del problema en su cabeza.
  • Prepare un parche que cumpla con el resto de la base del código (estándares de codificación, cobertura de código esperada).
  • Reasigne adecuadamente la tarea con un comentario apropiado que explique la solución y la documente.
  • Documentar el comportamiento en otro lugar: en una documentación real o en un repositorio de pedidos pendientes de PM.
  • Busque los enfoques existentes que conducen a la reutilización del código y la aplicación efectiva de las estrategias existentes para resolver un problema conocido.

Aquí viene el problema con comportamientos inesperados, tareas poco claras y comunicación ineficiente.

Los jóvenes requieren tutoría proactiva.

La cuestión es que el estudiante de primer año carece de habilidades técnicas, conocimientos de informática (en la práctica), experiencia real en el trabajo en proyectos existentes, habilidades de comunicación, habilidades de trabajo en equipo y otras cosas descritas anteriormente.

Eso termina en un gran conjunto de actividades en las que se debe trabajar simultáneamente. Cada uno puede tomar meses hasta que consiga una persona productiva a bordo.

Algunos se aceleran más rápido, otros no. Una compañía puede invertir más de un año en incorporación y capacitación hasta que obtenga resultados razonables en tareas bastante triviales.

Agregue un año de salario a la ecuación.

Y luego agregue el tiempo semanal de todos los miembros del equipo involucrados en el proceso de tutoría. El mentor debe manejar tres cosas:

  • Hacen su propio trabajo a tiempo completo.
  • Ayuda, entrena, educa, orienta, apoya al principiante.
  • Arregla el desorden después de lo que no les fue asignado en primer lugar.

Muchos de mis amigos que contratan a su primer empleado junior como fundadores tecnológicos dicen que trabajan 2 turnos, ya que les toma el doble de tiempo manejar su carga de trabajo y una nueva persona (y su trabajo).

Los jóvenes pueden mirar alrededor bastante pronto.

HackerLife compartió una investigación [1] en la que se analizó la duración promedio de los ingenieros de software en San Francisco:

No es improbable que pase de 3 a 5 años o más en las empresas líderes a nivel mundial. Pero eso generalmente se aplica a ingenieros experimentados que buscan un trabajo sólido a tiempo completo que les permita hacer lo que aman mientras cuidan de su vida (familia, amigos, viajes).

Esto explica la tenencia en pequeñas empresas (1,5 años) , combinada con la falta de otras ventajas y, a menudo, un salario más bajo (o un paquete de bonificación).

Pero si usted es una empresa pequeña o mediana, que capacita a un junior durante un año y se va en unos meses, ¿cómo se reflejaría eso en el negocio, la moral del equipo y su progreso continuo?

Contratar un desarrollador junior requiere un salto de fe . Lo que ayuda es la experiencia en pasantías, trabajar en proyectos de mascotas, colaborar con otros desarrolladores en conciertos paralelos, unirse a una comunidad de código abierto y otras indicaciones de que el desarrollador ha gastado el tiempo y el esfuerzo que reducirían la curva de aprendizaje y aumentarían las posibilidades de una efectividad asociación por un período de tiempo más largo.

Notas al pie

[1] Tenencia de ingenieros de software en San Francisco

Este problema es universal. NADIE quiere contratar a alguien que salga de la escuela sin experiencia. Capacitar a las personas es costoso y no hay forma de exigir que alguien se quede con usted y recupere su inversión después de haberlos capacitado. Si necesita mano de obra de bajo costo y baja experiencia, su preferencia siempre es alguien con ALGUNA experiencia. Por lo tanto, cada trabajo de nivel de entrada requerirá o tendrá como preferencia 2+ años de experiencia. Es estándar. Esos son los trabajos que solicita.

¿Por qué? Hay una lista finita de personas con poca experiencia en busca de trabajo. Finalmente, esta lista se agota o se reduce a las personas con poca experiencia que no se ajustan a la cultura. Esto deja a la compañía con la opción de dejar el puesto abierto o elegir a alguien con poca o ninguna experiencia para invertir. Ahí es donde entran los nuevos graduados universitarios sin experiencia. Casi todos con 2 años de experiencia fueron contratados para su primer trabajo. un puesto que “requería” 2 años de experiencia.

Acabo de terminar con mi búsqueda de trabajo de nivel de entrada. 8 meses de trabajo a través de descripciones de trabajo que requieren 2 años de experiencia con mi 1 año de pasantía. Es humillante y molesto, y te abre los ojos. Aprendí a hacer contactos. Aprendí a convencer a la gente. Aprendí mucho sobre mí, lo que realmente quiero, cómo puedo adaptar lo que quiero con lo que necesitan las personas que tienen vacantes de trabajo. Fueron 8 meses muy fructíferos. Eventualmente, se me dio un trabajo de 2 años de experiencia para ‘casi cero’ experiencia porque me conecté con el gerente de contratación, me conocía a mí mismo y lo que quería, y esas cosas encajaban con lo que el gerente de contratación y la compañía querían en el puesto. Encajan tan bien que la compañía está dispuesta a brindarme un poco de experiencia.

Una de las cosas de las que los convencí es que la experiencia que tengo (varios años de programación en Python, varios años de fabricación y trabajo de diseño de productos, varios años de fabricación) puede llenar esos vacíos en mi experiencia laboral en ingeniería civil y hacerme útil mientras Aprendo el oficio. También utilicé mi experiencia laboral de pasantía como piezas de rompecabezas para encajar en las ranuras vacías que describieron en la descripción del trabajo. La “experiencia con los procesos de la ciudad” fue una gran razón por la que me contrataron.

Así que obtén redes. No para conseguir un trabajo, sino para conocer los problemas por los que las personas que contratan están contratando. Encuentre una manera de adaptar sus cualidades y cualquier experiencia que tenga en esos problemas. Resuelve problemas por tu cuenta. Lea las descripciones de trabajo y enumere el software, los idiomas y procese las descripciones de trabajo que se ajustan a lo que desea. Aprende esas cosas por tu cuenta. Encuentra asociaciones comerciales y únete a ellas. Ir a almuerzos y seminarios. Únase a la fuerza laboral sin tener realmente un trabajo.

¡Buena suerte! Su búsqueda de empleo de nivel de entrada será la peor de su vida, pero hay muchas oportunidades de aprendizaje que provienen de ella. Si aprende de cada oportunidad y no se rinde, obtendrá uno de esos trabajos de “se requieren 2 años de experiencia” … eventualmente.

Es una espada de doble filo. La Ingeniería de Software es una de las mejores / mejores industrias donde las cosas están sucediendo y la gente quiere entrar. Esto crea una gran cantidad de problemas para empleadores y empleados.

Para los empleadores : las personas que son amigas / conocen a los ingenieros de software (SE) descubren que los salarios son buenos y tienen la impresión de que el trabajo es fácil. “Venga; él solo está sentado frente a una PC todo el día escribiendo en su teclado. ¿Qué tan difícil puede ser? ”Sería un pensamiento común. Las personas aleatorias quieren ingresar a la industria NO porque les guste / les encante / les apasione / etc., sino porque quieren el dinero. Este problema se duplica cuando tu amigo SE que parece torpe / ingenuo / infantil para ti obtiene un mejor salario que el tuyo. Empiezas a pensar “¡mira a este tipo! Soy más maduro y serio que él; ¡Estoy seguro de que si tuviera su trabajo lo haría aún mejor que él y obtendría un salario aún más alto! ”. Sin embargo, lo que no se ve es que cuanto más hábil es un SE, más le faltan otras “habilidades para la vida”. Aprender / conocer un millón de lenguajes de tendencias / lenguajes de secuencias de comandos, mejores prácticas (patrones de diseño, paradigmas, MISRA, etc.), algoritmos de aprendizaje, estar familiarizado con las IDE y herramientas actuales de tendencia hace mella en su psique y se duplica al tomar un costo en su tiempo desde el tiempo que dedica a dominar estas cosas que no dedica a sus otras “habilidades humanas”. Una cuestión secundaria es que hay más puestos que desarrolladores para cubrirlos: los desarrolladores tienen la oportunidad de saltar de trabajo si tienen el conjunto de habilidades requerido por el nuevo empleador. En resumen : el SE nerd / geeky / ingenuo es envidiado por sus amigos que no ven la imagen completa y solo quieren “un pedazo del pastel”. Esto da como resultado una afluencia constante de candidatos sin talento y hambrientos de dinero que solo pierden tiempo para el empleador, o incluso peor: si el candidato logra asegurar un puesto, el empleador enfrentará muchos obstáculos (intente capacitarse y tratar de quedarse con el candidato) cuando se entera de que su nuevo recluta solo está por el dinero. Además, las empresas temen a las personas que simplemente buscan trabajo.

Para un SE que realmente quiere un trabajo : dado el caso anterior, puede imaginar que una de las principales contramedidas que encontraron los empleadores fue hacer las entrevistas cada vez más difíciles y establecer requisitos cada vez más altos. Una de las mejores maneras de decir que alguien es un SE “real”, no un buscador de oro: si tiene al menos 2 años de experiencia en la industria (preferiblemente en una sola empresa) ya que eso significa que fue / se hizo lo suficientemente bueno para permanecer allí tanto tiempo y él también tenía la determinación / pasión (por cualquier razón) de permanecer allí por tanto tiempo. Además, eso significa que probablemente también hizo un trabajo productivo en esos 2 años. El recién llegado SE debe enfrentarse a los empleadores que tienen miedo de ser un buscador de trabajo o un buscador de oro falso.

—————————————————————————————————————

Solución : no hay una solución real. Tal vez los SE deberían decir cuán duro fue su día (incluso si es increíble ya que están haciendo lo que realmente les gusta), o incluso mejor: digan que fue bueno, pero recuerden a las personas que han estado codificando con pasión durante su tiempo personal durante los últimos 1–2–5 años +++.

Como “estudiante de primer año”, su única esperanza es seguir tratando de postularse para puestos junior y dejar en claro (tanto de usted como del empleador) que está dispuesto a aprender. Si alguien lo acepta para el “aprendizaje”, tenga la decencia y permanezca en esa posición y dé todo por al menos dos años. Hay un dicho que dice que un SE recién contratado (Junior o Middle, que la mayoría de los SE son de todos modos) será improductivo durante los primeros 6 a 12 meses en un trabajo, ya que tiene que acostumbrarse al equipo, el proyecto, la arquitectura, la cadena de herramientas. , los procedimientos. Por lo tanto, si alguien tiene la amabilidad de extender un trabajo en el que lo capacita al principio, recompénselo exhaustivamente devolviéndole al menos otro año de sus mejores esfuerzos (esto no significa hacer horas extra todos los días / vivir en la oficina; pero el tiempo de trabajo es tiempo de trabajo y estás completamente enfocado). De esta forma, ambas partes están satisfechas, y si en algún momento desea separarse, puede hacerlo sin renunciar a ninguna de las partes.

Para cuando vaya a su primera entrevista, debe tener una cartera de trabajo. Puede ser cualquier tipo de desarrollo de software. Web. Base de datos. Servidor de cliente. Cualquier idioma (s). Cualquier base de datos. Podría ser el desarrollo del sistema operativo. Si tiene un título universitario, aún necesita la cartera.

No puede ser solo un sitio web de WordPress, a menos que haya realizado alguna programación, o haya creado macros o similares para conectar (combinar) diferentes API juntas.

En un caso, contraté a alguien que había realizado una maestría en informática especializada en TCP / IP. Esto fue en 1992 y, aunque no lo estaba contratando para trabajar en TCP / IP, tenía una muy buena comprensión de las “entrañas” de los sistemas operativos y las redes. Trabajó conmigo en Informix 4GL y C, JAM y Oracle. Realmente disfruté trabajando con este “Programador Junior” durante dos años, y todavía estamos en contacto todos estos años más tarde.

Esencialmente, debe demostrar que ya puede programar y que alguien le ha pagado para que haga algún tipo de trabajo informático.

Mantener y reparar computadoras y redes también cuenta en la cartera.

¿Cuántos años codificó en la escuela, en qué porcentaje de su tiempo? Ese es tu tiempo base inicial. Por el bien de la discusión, digamos que suma hasta un año. ¡Ahora solo necesitas un año más! Palabra Mágica 1: Pasantía. Palabra Mágica 2: Proyectos. Palabra mágica 3: voluntariado. No esperes a que tus habilidades se degraden. Usted es inteligente. Encuentre maneras de aprovechar sus habilidades. No es como si los empleadores pusieran su reclamo de experiencia bajo el microscopio. Son ustedes los que examinan. Prepárese para la pizarra (desafíos de codificación). Prepárate para explicar en detalle cómo juntas tus proyectos. Esté preparado para proporcionar un código de muestra original para la revisión de ingeniería. También podría ayudar si tiene proyectos de código abierto para mirar, cosas de GitHub, etc. Practique explicando su código y sus proyectos a los no codificadores. ¡Buena suerte!

Estás apuntando demasiado alto.

Los desarrolladores junior tienen 2 años de experiencia.

Los desarrolladores de nivel de entrada / principiante / graduado tienen 0 años.

Tenga en cuenta que puede graduarse con 1 año de experiencia con un título de 4 años, si realiza pasantías entre los años 1–2, 2–3 y 3–4.

Otro problema que enfrentará es que, al ser de América del Sur, a menos que se haya graduado de una universidad estadounidense o europea, con la acreditación ABET, es poco probable que tenga un título acreditado ABET.

Es mejor que tenga las pasantías y las brillantes cartas de recomendación de cada uno de ellos para compensar eso.

Tenga en cuenta que las personas de la India enfrentan desafíos similares si se gradúan de instituciones no acreditadas; Si una universidad no puede acreditarse, la mayoría de la gente considera que no es más que una fábrica de diplomas.

Un desarrollador recién salido de la escuela puede o no saber programar, pero potencialmente no sabe muchas otras cosas, como comportarse como profesional, cómo trabajar con un equipo, qué esperan los jefes de los empleados, etc. Una persona que tiene dos años de experiencia laboral real sabe estas cosas, o no habría sido retenido durante dos años. También ha demostrado cierta habilidad de codificación.

Las habilidades de un candidato con dos años de experiencia todavía están actualizadas, mientras que un candidato de mayor rango puede no estarlo. Un candidato con dos años de experiencia es relativamente económico, en comparación con los candidatos de mayor rango. Es una apuesta mucho más segura contratar a una persona con experiencia laboral que contratar a un nuevo graduado y capacitarlo. Es comprensible que una pequeña empresa quiera centrarse en el trabajo y esté dispuesta a pagar una prima por los candidatos que hayan demostrado su valía.

Todo esto significa que el mercado para nuevos graduados universitarios es más difícil que el mercado para profesionales con algo de experiencia.

En su caso particular, también desea emigrar de un país del tercer mundo donde los estándares educativos están menos establecidos, al viejo mundo. Es más difícil entrevistarte, más difícil de entender cómo es tu entrenamiento, más difícil de entender tu idioma hablado. Esto lo pondrá en desventaja inherente en comparación con los candidatos locales. Agregue a eso que carece de experiencia laboral, sobre la cual basar un juicio de su potencial.

Entonces, si estuvieras contratando, ¿qué harías?

Mis disculpas si esto se indica en otra parte. He visto preguntas similares antes, y nunca se menciona una razón principal. A veces se insinúa.

Algunas compañías, en particular las bien establecidas; los que tienen reconocimiento de marca: trabajen con universidades y otras instituciones para contratar estudiantes que aún no han estudiado y monitorear su desempeño en el trabajo. Los artistas de alto rendimiento tienen prioridad para las ofertas de trabajo. En algunos casos, todos los espacios disponibles son ocupados por desarrolladores talentosos, de modo que a muchas cooperativas no se les ofrece un trabajo, y tal que la mayoría o prácticamente todas las publicaciones de trabajo son para desarrolladores experimentados.

Los estudiantes con experiencia en otras compañías también son considerados para puestos de nivel de entrada. En términos más generales, se espera que las contrataciones que primero se unen como junior sean mejores que algunas o la mayoría de las personas que salen de un programa cooperativo. De ahí el requisito de “2 años de experiencia”. Este es el reverso de la expectativa de un menor de que él o ella ganará más que alguien que todavía está en la escuela.

Obtener un título de CS, pasante, ser contratado. Esa es cada vez más la única forma de hacer que suceda en los Estados Unidos en estos días. Si no tiene un título de CS o similar, basura. Otra opción es tener una cartera impresionante y solicitar una compañía que pague muy por debajo del promedio de la industria, en todo caso, donde la cantidad de competencia será mucho menor.

La cantidad de trabajos Junior disponibles ha disminuido mucho y los que he visto tienen calificaciones bastante altas para un trabajo de nivel de entrada. Son más para los graduados de CS que no obtuvieron trabajos en los que internaron o tal vez una persona con un año de experiencia en una empresa poco notable y que no han desarrollado muchas habilidades útiles más allá de lo que comenzaron. También obtienen cientos de solicitantes talentosos.

Ha habido una fiebre del oro hacia las posiciones de desarrollador en los últimos años y hemos alcanzado un punto de saturación en el nivel de entrada. Si de alguna manera puede poner su pie milagrosamente en la puerta sin ser un experto en CS y tener algunos años de experiencia, el mercado laboral sigue siendo excelente.

Si no tiene experiencia en CS pero tiene suficientes habilidades y una cartera que de otra manera cumpliría con los requisitos de trabajo de posición Junior, busque otras posiciones que requieran esas habilidades pero no enfatice la necesidad de ser un graduado de CS o tener muchos Con experiencia avanzada. Parece que la mayoría de las empresas tecnológicas tienen algunos de estos tipos de puestos. Aún mejor si el puesto corresponde al departamento de Ingeniería, ya que será más fácil la transición al desarrollador si puede demostrar que se puede confiar en usted. Solo mantén tus opciones abiertas.

Porque estás buscando un puesto como Desarrollador Junior. Busque un puesto como programador de nivel de entrada. Eso requiere 0 experiencia. Después de 2 años, tendrás 2 años de experiencia.

¿Puedo darle algunos consejos como programador con poco más de 1.5 años de experiencia?

¡Solicitar el trabajo!

No estoy diciendo que deba postularse para puestos de alto nivel, pero a veces una empresa dice “experiencia mínima de 2 años” y termina contratando graduados. La compañía para la que trabajo actualmente prefiere contratar a personas que no hayan asistido a instituciones terciarias y, siempre que tenga la mente para programar, le enseñarán mientras trabaja.

No dejes que estos “requisitos mínimos” para puestos junior te asusten. Simplemente hazlo.

Comience como un profesional independiente. Eso fue lo que hice. Explore CraigsList y otros sitios en busca de trabajos pequeños y fáciles que pueda manejar. Si realmente quiere llegar hasta el final, regístrese como propietario único (es decir, obtenga una licencia comercial) y obtenga el título de trabajo que más le convenga.

Hazlo por un par de años y ponlo en tu currículum. Estarás por encima de todos los demás candidatos junior. Pague sus cuotas temprano con esa inversión de tiempo inicial y será recompensado por ello más adelante.

More Interesting

¿Java está saturado?

¿Los desarrolladores de software a menudo toman mucho tiempo para aprender nuevas habilidades técnicas?

¿Es cierto que la mayoría de los desarrolladores de software no tienen tiempo hasta la fecha, ya que ya pasan la mayor parte de su tiempo trabajando y aprendiendo?

Preguntas de la entrevista técnica: ¿Cómo diseñaría un sistema para almacenar el historial de búsqueda de sus usuarios?

Como desarrollador, ¿cuál es el tipo de datos más interesante con el que ha trabajado y por qué? ¿Qué lenguaje / herramientas / marcos usaste?

Cómo encontrar un equipo para hacer un MMORPG de PC por un porcentaje de ganancias en lugar de un salario

Cómo comenzar a convertirse en un desarrollador de aplicaciones o software exitoso

¿Cuál es el mejor, iPad o MacBook, para desarrolladores?

¿Cómo coordinan sus esfuerzos los desarrolladores de software con diferentes niveles de experiencia?

Para una empresa de nueva creación, ¿cuál podría ser un buen software de gestión de productos / proyectos para trabajar (o reemplazar) a jira?

¿Cómo es asistir a la maestría de Cargenie Mellon en ingeniería de software o al certificado en ingeniería de software?

¿Cómo pueden los desarrolladores de software comenzar una empresa de consultoría de nicho dirigida a la industria de la salud?

Como desarrollador de software, ¿qué son los indicadores o las banderas rojas por el hecho de que paso demasiado tiempo en un boleto?

¿Qué temas debo saber para una entrevista de desarrollador de software?

¿Sundar Pichai es ingeniero de software o desarrollador de software?