¿Qué pasos puedo tomar para mejorar mis habilidades como programador y ser más comercial?

Terminé la carrera de Informática en 2005 y he trabajado en la misma empresa como programador durante los últimos siete años. He ganado un salario progresivamente mejor a lo largo de este tiempo y he disfrutado de una seguridad laboral bastante cómoda.

Sin embargo, me temo que mis habilidades de programación ya no son comercializables. Pasé la mayor parte de los últimos siete años creando interfaces de intranet para bases de datos o creando informes en línea. Entonces, la mayor parte de mi experiencia es en SQL, con algo de ASP Classic. Me gradué con algo de experiencia en C# y VB, pero mi gerente es muy contrario a Visual Studio, por lo que no he usado esas habilidades en años. Últimamente, me han presentado proyectos que involucran mySQL y PHP. Pero incluso después de siete años en este puesto, no soy realmente un experto en ningún área en particular.

He revisado muchas ofertas de trabajo, que solicitan una amplia variedad de habilidades y tecnologías, ninguna de las cuales estoy calificada. Parece que he dejado que este trabajo me arrincone en lo que respecta a mi carrera. ¿Qué debo hacer para salir de este callejón sin salida?

Hagas lo que hagas, no vuelvas a cometer el mismo error. Siempre pregúntese "¿Qué estoy obteniendo de este trabajo, además de dinero?"

Respuestas (6)

Voy a ofrecer una opinión diferente de @kolossus . Si solo tiene 7 años en su carrera, todavía está alcanzando su potencial como tecnólogo. Tiene mucho más que aprender, y si va a liderar en el futuro, debe tener más experiencia para transmitir: más éxitos y fracasos para ver que lo convertirán en un mejor líder. Pensar que deberías ser gerente o líder solo por tu experiencia es un error, ya que los mejores programadores no siempre son gerentes o líderes exitosos.

Las certificaciones, al menos en los EE. UU., generalmente tienen poco valor. El valor que brindan, en mi opinión, es encender un fuego para que alguien aprenda un tema por dentro y por fuera. La mejor parte de obtener un certificado es el aprendizaje que se le impone con una fecha límite (la prueba), y la falla de la prueba resulta en una pérdida de tiempo y dinero. Te provoco que estudies mucho, y el conocimiento vale mucho más que el certificado.

Manténgase en la programación y adquiera algunas habilidades más comercializables. Probablemente necesitará hacer esto en su propio tiempo. Las habilidades de las bases de datos se transfieren a cualquier RDBMS, por lo que parece tener eso a su favor. Incluso el simple hecho de adquirir conocimientos más profundos de PHP con su experiencia en SQL debería generar oportunidades potenciales. Busque lenguajes como Ruby, que son populares y generalmente se consideran más fáciles de aprender. Alejarse de las tecnologías de Microsoft y acercarse más al código abierto también debería generar más oportunidades en el futuro. Las empresas vinculadas a Microsoft pueden limitar sus opciones, donde las tiendas de Unix/Linux pueden tener varios idiomas en uso.

Y podría leer esta publicación de blog que escribí sobre mantenerse al tanto de las habilidades tecnológicas mientras trabajaba en un entorno técnico limitado. fecak.com/…
Los programadores dicen que la certificación no tiene ningún valor, pero por lo general no son ellos quienes contratan.
Hablaba como reclutador de ingenieros de software, no como programador (no soy programador). Por lo general, mis clientes no han dado ningún valor a las certificaciones y, de hecho, algunos han sido bastante cautelosos con los candidatos que simplemente intentan obtener múltiples certificados sin tener experiencia en el mundo real. En mi opinión, eso puede jugar en su contra: cargar certificados o pruebas Brainbench para probar y probar sus habilidades puede dar la apariencia de que alguien está tratando de jugar con el sistema, y ​​sería mejor pasar tiempo en proyectos de código abierto o proyectos personales donde Se puede mostrar el código.

Es posible que realmente no te veas como un experto en una sola cosa, pero ¿es eso correcto? Es posible que se esté comparando injustamente con las personas activas en los blogs y Twitter. La gran mayoría de las personas con las que se entrevistaría o se sentaría al lado no solo no están en esa liga, y tanto usted como ellos se sentirían extremadamente incómodos si lo estuvieran .

Por lo tanto, analice detenidamente cuáles han sido sus logros en el trabajo. Estos hablan mucho más alto que las tecnologías particulares en su currículum, especialmente si puede encontrar una manera de que los reclutadores y las empresas se acerquen a usted, y no al revés. Algunas formas de hacerlo son actualizar su perfil en Dice.com o LinkedIn.com, con su nuevo currículum seguro.

Tómese un par de fines de semana para experimentar con idiomas en los que no se sienta cómodo. Aprender nuevos idiomas es en sí mismo una habilidad, por lo que esto le resultará muy útil. Además, te sorprendería la cantidad de conceptos que puedes aprender en un proyecto de fin de semana. Escriba en un blog sobre sus hallazgos, lo que permitirá a los posibles empleadores evaluar sus habilidades técnicas y de comunicación, así como su actitud y enfoque.

Responda preguntas en sitios como este. Esto le dará una experiencia más amplia de la que podría obtener en el trabajo, mientras busca respuestas a las preguntas de los demás.

Aprende tus patrones de diseño. A menudo es cierto que las empresas que preguntan sobre patrones de diseño son las peores por no usarlos, por lo que esto puede resultar frustrante para usted. Sin embargo, debe superar la entrevista para estar en condiciones de no usar su conocimiento ganado con tanto esfuerzo y frustrarse :).

Tenga en cuenta que hay muchas cosas que puede hacer para mejorar su productividad además de las tecnologías que conoce y cómo codificar. Por ejemplo, cuantos más métodos abreviados de teclado conozca, más tiempo podrá dedicar a pensar en problemas de codificación (porque no pierde unos segundos cada vez que no levanta el mouse),

Finalmente, invierta tiempo y atención en las habilidades de su gente, incluida la autopromoción. Debe encontrar una manera de ver el valor de su trabajo en los últimos siete años y transmitirlo a los empleadores potenciales. Además, puede aprovechar mucho más el apoyo y la aceptación de otras personas cuyo trabajo necesita (como aquellos que le brindan diseños, datos u otros activos), que por pura brillantez técnica. Esta puede ser una lección difícil de aprender, pero es mejor aprenderla temprano en su carrera que tarde.

También te sugiero que dejes de pensar en ti mismo como un programador estricto. Hay muchos títulos dentro de la informática y el desarrollo de software y usted puede ser uno de estos otros títulos en este punto con la amplitud de su experiencia.

Tus habilidades suenan comercializables para mí . Entonces, me inclinaría a preguntar si por "habilidades de programación" se refiere a algo más específico, como habilidades de programación de aplicaciones de escritorio o habilidades para escribir algoritmos. La última vez que verifiqué cantidades excesivas de sitios web que usan SQL (por lo general, pero no siempre, MySQL) y ASP o PHP, por lo que sería difícil pensar que las habilidades de programación web no son comercializables o están en demanda, o que usted no tiene adquirido un conocimiento considerable del dominio a partir de sus años de experiencia.

Considere las oportunidades donde se encuentra . Sin duda, podría tener una conversación con su jefe y transmitirle sus aspiraciones, y hacerle saber cómo podría ayudarlo a alcanzar algunos de sus objetivos de experiencia en el dominio. De acuerdo, las preocupaciones comerciales pueden ser lo primero, y es posible que no pueda trabajar al 100% solo en su parte favorita del trabajo, pero cuando su jefe está tratando de decidir si debe hacer X y Joe, su compañero de trabajo debe hacer Y, o viceversa, si sabe lo que le gustaría hacer, puede ayudar a influir en el proceso de toma de decisiones para alinear sus tareas con sus intereses.

Decide en qué te gustaría especializarte . Si siente que su puesto actual lo está encasillando en una especialidad que no le interesa continuar a largo plazo, comience por evaluar qué otra especialidad preferiría seguir. Considerar qué idiomas son populares en su área, o qué idiomas y habilidades están en demanda en las listas de trabajos puede ayudar a reducir la lista de opciones. ¿Preferirías ser un programador de C#? ¿Un programador de PHP? ¿Aprender Java o C++? ¿Convertirse en un gurú de la base de datos? Etc.

Desarrolle habilidades en su especialidad deseada . Una vez que haya elegido un área en la que le gustaría concentrarse, debe encontrar una manera de desarrollar esas habilidades. Si su jefe no está interesado en usar esos idiomas internamente, es posible que desee considerar un proyecto fuera del trabajo. No tiene que ser un proyecto exigente, sino algo para recuperar ese otro idioma fresco en tu mente. Tal vez podrías unirte y contribuir a un proyecto de código abierto . Esa es una excelente manera de poner el pie en la puerta para trabajar con una tecnología nueva o diferente, con el beneficio adicional de que su código fuente no es propietario, por lo que puede usarlo en una cartera para futuros empleadores. También podría considerar unirse a un grupo de desarrollo profesional.para personas que estén interesadas en la tecnología que le interesa a usted, si hay una en su área. O simplemente comience a leer un par de libros sobre el tema, o busque clases de extensión universitaria para profesionales donde enseñen ese idioma para repasarlo.

Vende tu experiencia por todo lo que vale . Al final, lo que busca mostrar es que, aunque no tenga, por ejemplo, 3 años de experiencia programando C#, su nueva dirección profesional deseada, tiene siete años de experiencia programando en otros lenguajes en los que ha aprendido todo tipo de habilidades transferibles (resumir y desglosar problemas, mantener el código existente, trabajar con equipos, aprender tecnologías nuevas/diferentes, etc., etc.), además, recientemente ha estado abordando el aprendizaje de esta nueva habilidad increíble, eso es lo que son. buscando, lo que te convierte en un candidato mucho más increíble en general.

O tal vez, solo encontrar una salida para las habilidades que no usa en el trabajo sería suficiente para sentirse realizado. Esa es tu llamada.

Voy a recomendar el libro Programador Apasionado . La primera edición del libro se llamó "Mi trabajo fue a la India". Gran parte del libro trata sobre cómo mantener sus habilidades actualizadas mediante la identificación de sus puntos débiles y cómo llegar a un lugar mejor, tanto técnica como comercialmente. En otro hilo , publiqué una serie de libros que recomiendo para las personas que tienen la "cosa" del desarrollo, pero no tienen las habilidades para lidiar con las oficinas y la política de la oficina.

A diferencia de las otras respuestas, recomendaré obtener un par de certificaciones (elija algo que sepa) y que actualice los certificados cada dos años. Como una aventura de una sola vez, los certificados no son tan buenos: representan una instantánea de que conocía la tecnología X en la fecha Y. Como un esfuerzo continuo, les muestra a los posibles empleadores que se mantiene al día con la tecnología más nueva y no descansa en lo que lo hiciste hace décadas. También soy desarrollador y mi enfoque es .NET. Como resultado, tengo certificados de Microsoft desde 1998, y cada dos años obtengo una nueva certificación de 4 letras. Así que puedo señalar esta progresión como evidencia de que no me relajo cuando se trata de mantenerme al día con la tecnología.

Pasé la mayor parte de los últimos siete años creando interfaces de intranet para bases de datos o creando informes en línea

El nombre de moda para esto es "inteligencia empresarial". Ser bueno con Crystal Reports o Pentaho (hay una versión de código abierto) o SSIS podría ser una nueva dirección para tomar su carrera.

Considere buscar puestos de analista de datos. Hay muchas posiciones bien pagadas donde el conocimiento de la base de datos es crítico. Los redactores de informes tienen una gran demanda. Los especialistas en BI tienen una gran demanda.

Esta es su señal para comenzar la transición a la función de gestión/liderazgo del equipo. Empieza la transición. Este negocio no es amigable para los desarrolladores mayores/envejecidos que no están al día con la tecnología más avanzada. Después de siete años en la naturaleza con (presumiblemente) una rica experiencia amplia y profunda, está maduro y preparado para liderar un equipo o administrar proyectos. Considere lo siguiente para su transición

  1. Quiero creer que en esos siete años, ha adquirido un conocimiento muy específico de la industria (como desarrollador de finanzas, he dominado la ISO 8583conciliación, la reconciliación y el arbitraje de disputas). Por lo tanto, debe poder categorizar algunos conocimientos/experiencias como específicos de la industria. La experiencia en la materia es invaluable en el ascenso a roles superiores.

  2. Obtenga una certificación de proveedor neutral . Algo que no tiene absolutamente nada que ver con la programación central. Mire hacia estos tres PMP, ITIL V3 (Foundation is adequate), CISMy/o CISA. Estas certificaciones están en orden de responsabilidad al organismo certificador. Con PMP o ITIL , simplemente puede obtener la certificación y comenzar a practicar de inmediato y comenzar a obtener retornos de su inversión sin tener que pagar una tarifa de mantenimiento o créditos de recertificación anuales, etc. EDITAR (aclaración) Obtener el certificado lo coloca en el marco correcto de mente y te da la formación necesaria para asumir más responsabilidad y un punto de vista diferente en el negocio.

  3. Elija dos o tres de las tecnologías que haya usado antes y dedique partes adicionales de su tiempo libre para desarrollarse aún más en ellas . A nadie le gusta un Jack de todos los oficios, maestro de nada . Como líder/gerente de tecnología, es muy recomendable que sea un experto en la materia o esté cerca de uno en una tecnología específica. Un general no puede dirigir sus tropas sin haber estado nunca en la línea de fuego.

  4. Fíjate en ti mismo que ya no estás buscando un trabajo de programación durante tu búsqueda de trabajo . Está buscando funciones de gestión de proyectos, líder de equipo/tecnología o desarrollador sénior . La búsqueda de empleo depende tanto de lo que hay en el mercado como de lo que buscas en el mercado. No te subestimes o te quedes fuera de aquello para lo que te estás posicionando.

7 años no es mucha experiencia y OP parece no estar seguro de sus habilidades. Ahora no es el momento de la gestión para él. Necesita más tiempo para crecer, más para aprender, antes de poder pasar el conocimiento a otros.
@fecak Creo firmemente que 7 años es tiempo suficiente para un papel de líder de equipo si ha tenido la experiencia como líder de equipo. La riqueza de la experiencia, no solo la habilidad o el número de años, es un factor que contribuye a la suma total de un profesional. He conocido a personas que han visto, hecho y experimentado más en 5 años de trabajo técnico, de lo que muchas personas experimentan en 10. Si ha manejado suficiente responsabilidad en sus 7 años, ¿por qué no puede impulsar un papel de liderazgo en el equipo? como mínimo?
Dice que "no es realmente un experto en ningún área en particular". En su respuesta, el n.º 3 dice "a nadie le gusta un Jack o todos los oficios..." ¿Está diciendo que aquellos que no tienen experiencia deberían liderar? No quiero faltarte el respeto, pero OP realmente debería tratar de desarrollar sus habilidades y ni siquiera pensar en el liderazgo a menos que tenga alguna habilidad innata para liderar. Su pregunta era sobre cómo mejorar sus habilidades de programación y ser comercializable. No es comercializable como gerente (parece que no tiene experiencia en la gestión). Es algo comercializable como programador, particularmente si aprende habilidades de programación más comercializables.
¿Dónde menciona OP su experiencia como líder de equipo? Me refiero a tu primera oración "si ha tenido la experiencia como líder de equipo". ¿Qué te hace asumir esa experiencia?
@fecak, no te preocupes. Lo que dije en el número 3 creo que se relaciona con lo que has dicho. "Como líder/gerente de tecnología, es muy recomendable que sea un experto en la materia o esté cerca de uno en una tecnología específica", así completé la declaración que ha citado. Por supuesto, debe tener una gran experiencia en campos específicos. Es una transición, no dejar el trabajo hoy y postularse para el trabajo de la próxima tarde. Transición. Debería comenzar ahora y probablemente estar listo para mudarse en 2 a 4 años.
Gracias por aclararlo. Discreparé respetuosamente y diré que tiene más tecnología que aprender antes de considerar el siguiente nivel. Me alegro de que pueda ver opiniones diferentes.
@fecak Jajaja. No se preocupe jefe. Por eso estamos todos aquí.
Solo quiero señalar que uno debe tener un cierto grado de experiencia para poder solicitar la certificación PMP (Project Management Professional) . Esto incluye 3 años de experiencia en la gestión de proyectos, así como una licenciatura de 4 años o educación en gestión de proyectos.