Cuando me gradué, conseguí un trabajo ligeramente superior al promedio trabajando en la tecnología Java Servlet. Pero luego actué siguiendo algunos malos consejos de personas cercanas a mí. Aunque fue un error, los escuché debido a la confianza y, dado que era nuevo en el campo, no sabía nada mejor, y resulta que las personas en las que confiaba tenían algunos problemas relacionados con la rivalidad conmigo por razones nerd. .
Dejando a un lado los problemas personales (solo mencionándolos porque la gente comentaba "¿por qué los escuchaste?"), Conseguí un trabajo en una startup y trabajé allí durante 3 meses como desarrollador de MEAN stack. No funcionó: eliminar los detalles. Me cambié a otra pequeña empresa. Trabajé allí durante otros 6 meses. Fueron buenos 6 meses: estaba trabajando en un buen proyecto. El salario estaba por debajo del promedio, pero los tiempos eran buenos y había crecimiento y aprendizaje.
Pero luego tuve un tipo extremo de problema de reputación (también uno de los factores para cambiar mi trabajo anterior): nuevamente hubo personas muy cercanas a mí que esperaban que ingresara a una gran empresa, y llegó un momento en que sentí que todo se está cayendo a pedazos. En ese momento tuve una oportunidad en una firma de gran reputación en mi ciudad - la tecnología no estaba a la altura de lo que yo quería - ni la carrera profesional. El salario era bueno y era una de las empresas que estas personas cercanas a mí realmente admiraban, por lo que fue un movimiento desesperado para mí aceptar este trabajo. Las cosas están bien aquí, excepto que no hay crecimiento/aprendizaje para mí, ya que el trabajo que hago es simplemente cualquier otra cosa que no sea manejar la política y aceptar culpas por cosas que no hice. La tecnología en la que trabajo rara vez se usa en solo 1 o 2 empresas conocidas "en todo el mundo". Lo había estado aguantando debido a la reputación de que si obtengo una mala etiqueta aquí, esta noticia va a ser tal o cual. Llegó un momento en el que regresaba a casa, me sentaba en mi sofá durante al menos 15 minutos mirando fijamente a la pared, pensando literalmente en nada: la política es mentalmente agotadora. El callejón sin salida: pasé casi 2 años de mi carrera en este lugar, no aprendí casi nada (estos muchachos no creen en la capacitación, o al menos esa es mi experiencia aquí) o en dar tiempo a los empleados para realizar tareas de manera constructiva. Ahora quiero de alguna manera, de todos modos, reiniciar mi carrera como ingeniero de software. Mis problemas (sé que no es razonable): pensando literalmente en nada: la política es mentalmente agotadora. El callejón sin salida: pasé casi 2 años de mi carrera en este lugar, no aprendí casi nada (estos muchachos no creen en la capacitación, o al menos esa es mi experiencia aquí) o en dar tiempo a los empleados para realizar tareas de manera constructiva. Ahora quiero de alguna manera, de todos modos, reiniciar mi carrera como ingeniero de software. Mis problemas (sé que no es razonable): pensando literalmente en nada: la política es mentalmente agotadora. El callejón sin salida: pasé casi 2 años de mi carrera en este lugar, no aprendí casi nada (estos muchachos no creen en la capacitación, o al menos esa es mi experiencia aquí) o en dar tiempo a los empleados para realizar tareas de manera constructiva. Ahora quiero de alguna manera, de todos modos, reiniciar mi carrera como ingeniero de software. Mis problemas (sé que no es razonable):
No puedo cambiarme a una empresa de menor reputación.
No puedo cambiar a un salario más bajo
Seré amargamente honesto aquí: no soy elegible (en cuanto a habilidades) para obtener un trabajo con un puesto que se espera de un tipo de 3 años de experiencia.
¿Qué tengo que hacer? Incluso recibí una llamada para una prueba, pero tengo miedo de hacer estallar mi única oportunidad y con razón, ya que no tengo habilidades serias (la prueba es aplazable), incluso puedo ser la mitad del desarrollador que era desde que me uní a esta empresa. Ahora tengo una trayectoria profesional, pero es casi inútil si me quedo en esta casa de nerds políticos. Gracias de antemano por tu consejo.
Básicamente, te has quedado atascado donde no quieres estar porque te has estado preocupando por lo que los demás esperan de ti.
Es hora de que dejes de hacer lo que te dicen los demás y de que empieces la carrera que quieres seguir y ser feliz.
Ahora, tiene tres años de experiencia como desarrollador; es posible que no sea la pila de tecnología que desea y que no sea muy popular (aunque dudo que sea tan impopular que "solo una o dos empresas" lo usen). Debe tener habilidades transferibles.
Por lo tanto, no vas a empezar desde el principio, pero probablemente tendrás que dar un pequeño paso atrás.
Tu otra opción es quedarte donde estás, volverte más infeliz y perder cualquier oportunidad de conseguir una mejor carrera.
He desperdiciado 3 años iniciales de mi carrera. ¿Hay alguna manera de empezar de nuevo?
No has perdido ningún año, has aprendido muchas cosas . Enséñese a usted mismo a programar en diez años ofrece una visión que invita a la mente. También deberías leer Trabajos de mierda , es estimulante y cubre bastante bien los trabajos de desarrollo de software, ya que la mayoría de los proyectos de software (más de la mitad de ellos) están fallando de alguna manera .
Ha aprendido a comportarse en el lugar de trabajo, lo cual es valioso en un currículum. Si sueña (en mi humilde opinión erróneamente) con subir la escalera de la gerencia , tenga en cuenta hoy el principio de Peter y el principio de Dilbert relacionado .
Por último, tenga en cuenta que la tecnología de software es, en esencia, muy frágil y no dura mucho. Lo que era una palabra de moda en 2016 se convertirá en anticuado (o código heredado ) en 2022 .
Lo que importa mucho más son los conceptos de programación y las habilidades de desarrollo de software (consulte Software Heritage para obtener información importante) y la capacidad de aprender cosas nuevas , incluidos incluso nuevos dominios de problemas . Todo esto dura toda una carrera y todos ellos son apreciados y valiosos en el mercado laboral .
Como instancias de conceptos de programación , considere de manera no exhaustiva, por ejemplo: algoritmos que ha utilizado en su código, independientemente del lenguaje de programación; conceptos informáticos , incluidos los sistemas operativos y sus API, como POSIX , WinAPI o Sockets , protocolos como HTTP o SMTP , DBMS como PostgreSQL o MongoDB , técnicas informáticas distribuidas como MapReduce , paso de mensajes asincrónicos ollamadas a procedimientos remotos, etc. Mencione una breve lista de conceptos de programación de alto nivel en su currículum.
Como habilidades de desarrollo de software , considere los diversos lenguajes de programación que conoce (C++, Java, SQL , su shell ), otros lenguajes informáticos más o menos con los que está familiarizado (como CSS , HTML, PDF, LaTeX , OOXML , DocBook , XML, JSON, DOM, etc.), y su familiaridad con varias herramientas de ingeniería de software ( herramientas de control de versiones como Git , herramientas de automatización de compilación como make
o ant
, editores de código fuente o IDE como emacs
o Eclipse) que practicas a diario. Escribe sobre todos ellos (¡en un solo párrafo!) en tu currículum. Pero enfatice su capacidad para aprender rápidamente cómo usar nuevas herramientas de ingeniería de software y aprender nuevos lenguajes informáticos.
Por ejemplo, programé por primera vez en 1974 en tarjetas perforadas, pero el lenguaje de programación utilizado en ese momento (PL/1) y el sistema operativo que usé ( MVS con JCL ) en ese momento se han olvidado, y olvidé muchos detalles sobre a ellos. Más tarde, programé profesionalmente en el lenguaje de programación C (en realidad, principalmente metaprogramaba en C alrededor de 1990), pero hoy C está pasado de moda (así que también estoy usando C ++ 14 ), y podría aprender Rust e hice código , hace unos años, algún software en Go .
El callejón sin salida: pasé casi 2 años de mi carrera en este lugar, no aprendí casi nada
Percepción equivocada de los suyos . Aprendió mucho (incluidas las cosas que mencioné anteriormente), porque ha mejorado algunas habilidades, pero aún no es capaz de escribir todo lo que aprendió en su currículum. En palabras más simples, simplemente no sabes todas las cosas que aprendiste. Y el aprendizaje no está relacionado con ninguna capacitación que su empresa pague por usted. Con acceso a Wikipedia y muchos otros recursos en Internet (incluido Stack Overflow ), puede (y probablemente lo hizo) aprender mucho de su lugar de trabajo.
Hay un dicho ruso Век живи - век учись (mis difuntos padres me lo repetían semanalmente cuando era niño): Si vives un siglo, tienes que aprender durante un siglo. Se aplica tanto a ti como a mí.
3) Seré amargamente honesto aquí: no soy elegible (en cuanto a habilidades) para obtener un trabajo con el puesto que se espera de un tipo con 3 años de experiencia.
Lea sobre el síndrome del impostor , incluso a la edad de 60 años, todavía tiendo a sentirlo. Sin embargo, tenga en cuenta que la mayoría de las ofertas de trabajo (escritas por recursos humanos ) requieren una cantidad de habilidades irrazonable. Comprenda que el mercado laboral (y la vida corporativa en general) es un teatro .
Cumpliré 60 años durante agosto de 2019, y he pasado toda mi carrera (excepto un año sabático en INRIA ) como Ingeniero de Investigación en Ciencias de la Computación en CEA desde 1985, trabajando en la misma organización (de ~ 16000 personas). Esencialmente tenía dos roles: uno en su división DEN y otro en su división DRT. Cambié de equipo solo unas pocas veces, tal vez 3, en toda mi carrera (por ejemplo, los colegas que tengo hoy son casi los mismos que tenía en 1999, y la unidad con la que estoy trabajando, llamó a un laboratorio de aproximadamente 25 empleados permanentes, mantiene el mismo nombre).
He escrito más de un millón de líneas de código durante mi carrera hasta ahora. Si considero entre ellos qué código ha sido utilizado por otras personas en la vida real (no solo citado en algún artículo), entonces, honestamente, solo podría nombrar la función del complemento GCC y las menos de 10 000 líneas de código que contribuí a GCC . Durante los últimos 20 años, honestamente es la única pieza de código, escrita por mí, que siento que ha sido útil para otros.
Y no estoy solo. Si comienza a leer artículos y libros sobre gestión de proyectos de software (comience con The Mythical Man-Month , es un clásico de su tipo), comprenderá que la mayoría de los proyectos de software generalmente fallan. La tasa de falla típica de los proyectos de software sigue siendo de alrededor del 50% incluso en 2019.
Pero me divertí mucho escribiendo todo el código que escribí durante mi carrera, entonces, ¿qué más puedo esperar?
He sido lo suficientemente ingenuo como para entender muy recientemente que mi función real (no la mencionada en los contratos, por supuesto) es ser el soporte de la optimización del impuesto corporativo (mediante la investigación del crédito fiscal realizado por las corporaciones).
En otras palabras, solo necesitas crecer. Aprendiste muchas cosas en 3 años, y estas pueden incluirse en un currículum valioso.
Y lo más preciado que aprende un desarrollador de software no es sobre ningún tipo particular de tecnología de software (como Java Servlets). Está relacionado con la práctica, y la relación entre tu trabajo diario y la Informática . Solo pregúntate honestamente: ¿has entendido todos los detalles de Introducción a los Algoritmos* (o cualquier libro equivalente o curso universitario)? Entre tú y yo, no lo hice. Y eso es más de treinta años que estoy leyendo este tipo de libros. Mis cabellos son blancos, soy abuelo 7 veces...
¿Qué tengo que hacer?
Si quieres aprender aún más cosas, puedo darte una receta muy simple: contribuye, durante tu tiempo libre (por ejemplo, algunas horas cada fin de semana, y tal vez 30 minutos cada dos días laborales, durante la noche, en casa), en cualquier proyecto de software libre existente (encontrará miles de ellos en GitHub y GitLab ), pero no elija un proyecto enorme (sino uno con solo unos cientos de miles de líneas de código y varias docenas de compañeros programadores). Use su computadora personal para eso (no la de su empleador). Menciona eso en tu currículum.
Tal vez, incluso tome tiempo para aprender un nuevo lenguaje de programación mientras hace eso, por ejemplo, contribuir a algún proyecto de software libre en un lenguaje que no está usando en el trabajo. Te volverás más competitivo que tus compañeros programadores que no lo hicieron. Por supuesto, instale alguna distribución de Linux en la computadora personal de su hogar (ya que Linux está hecho principalmente de software libre y proporciona un excelente entorno de desarrollo para programadores). Y dado que contribuye a un proyecto de software libre existente , aprenderá aún más cómo trabajar en equipo, y el equipo que trabaja en ese proyecto en particular le enseñará muchas cosas.
Por ejemplo, ahora es un experto en Java. Luego contribuya, en su tiempo libre, a algún proyecto de extensión de Guile existente. Aprenderás tanto un nuevo lenguaje de programación ( Scheme , el lenguaje utilizado en SICP , un libro descargable gratuitamente, que, aún hoy, es la mejor introducción a la programación que conozco, que todo programador debería haber leído), y un nuevo enfoque. a la programación (incrustar un intérprete en algún programa existente). Y eso es muy valioso en el mercado laboral (mucho más que cualquier tecnología en particular), porque luego les demuestras a los posibles empleadores que tu mente es flexible, es decir, puedes aprender otro lenguaje de programación y otra forma de programar.
Por supuesto, no se ate a una tecnología de programación en particular. ¡Pero ahora ya lo sabes!
NB : para mí, IDE es una palabra de moda para los editores de código fuente. Mi IDE favorito es Emacs . Además, los hipervínculos están arriba para dar referencias bibliográficas (ya que tengo la edad suficiente para haber escrito informes técnicos antes de la existencia de la Web).
PD : si desea contribuir a algún extraño proyecto de software libre (en el que un colaborador muy activo es un desarrollador de software indio, Abhishek, que trabaja en ese proyecto en su tiempo libre mientras trabaja a tiempo completo), lea este borrador de informe técnico ( saltándose las pocas páginas obligatorias para la burocracia europea). Entonces, si las ideas allí te resultan interesantes, contáctame por correo electrónico a basile@starynkevitch.net
. Pero el proyecto de software libre que tengo en mente es más un proyecto de investigación que de desarrollo, y comparte la mayoría (pero no todas) las ideas explicadas en ese informe aunque tiene diferentes objetivos . Y eso, Abhishek está aprendiendo muchas cosas nuevas*mientras trabajaba en ese proyecto de software libre.
Subestimas totalmente la increíble cantidad de personas totalmente ineptas con un registro de experiencia laboral de 3 años que hay. Hay un montón de ellos. La ineptitud es una elección (o la falta de hacer una) que proviene de permanecer en esa zona de confort tan atractiva. No estés allí, ni siquiera lo desees. Estar incómodo significa oportunidad para aprender algo nuevo. Esfuérzate por la excelencia, pero nunca asumas que estás allí. Aprender la política de la empresa es una habilidad extremadamente útil. También lo es la fortaleza mental de hacer una mierda, incluso si se trata de un huracán. Quédate y aprende.
¿Perdiste tu tiempo? Cada uno de nosotros siempre está aprendiendo algo, consciente o inconscientemente. Por "desperdiciado" sospecho que podría significar algo como "Acabo de descubrir que no me gusta trabajar en el entorno XXXX". ¿Correcto?
Acabo de leer que Richard Feynman en su libro "Seguramente estás bromeando" que se quejó con su profesor de que no ha sido productivo. Su profesor se rió. Unos años más tarde, ganó el Premio Nobel.
Bernardo Barker
Bernardo Barker
Mustehsun Iqbal
Mustehsun Iqbal
Ernest Friedman-Hill
Basile Starynkevitch
Basile Starynkevitch
Randy Zeitman
ed grimm
neuromante
usuario
jsarbour
petirrojo bennett