Hay muchas cosas que puede hacer para asegurarse de seguir siendo un candidato principal, sin importar el mercado. Entre ellos (no una lista exhaustiva):
- Continúe aprendiendo nuevas tecnologías populares, y las que parecen ser populares. Si estaba preguntando esto en 2007, es posible que desee aprender Ruby y Rails. Estarías en una posición excelente para subirte a la ola de Rails, siendo lo suficientemente popular para las personas que saben que tiene una gran demanda pero aún no tiene una gran oferta. (Esto es diferente de ser un “lenguaje hipster” en el sentido de que un hipster evitaría cualquier cosa de gran demanda).
- Lo mismo ocurre con las cosas “meta”, como arquitectura, procesos, herramientas, pruebas, “la nube”, virtualización, etc., o técnicas como AI o Big Data. Tal vez incluso la gestión de proyectos, por lo que ayuda en ese departamento.
- Asegúrate de que tus fundamentos estén a la altura. Revise algoritmos comunes, cómo analizar un algoritmo (principalmente, complejidad de espacio y tiempo), habilidades generales de resolución de problemas, patrones de diseño, refactorización (incluso si no los patrones formales de refactorización, al menos por qué y cómo hacerlo de manera segura), etc.
- Asegúrese de que su software sea de alta calidad . “Funciona” es solo el comienzo . Se me ocurrió una serie de aspectos clave, priorizados en el acrónimo ACRUME: el software de alta calidad es apropiado (hace el trabajo correcto), correcto (hace el trabajo correcto), robusto (difícil de hacer que se porte mal, ya sea accidentalmente o a propósito), utilizable (fácil de usar con un mínimo esfuerzo), mantenible (fácil de cambiar sin tener que preocuparse de que lo haya roto) y eficiente (no utiliza muchos más recursos de los necesarios). Voy a proponer algunos materiales de capacitación Real Soon Now, pero por ahora al menos tener en cuenta esos aspectos será de gran ayuda. Leer sobre codificación segura contribuirá en gran medida a la robustez.
- Desarrollar habilidades blandas , como comunicación y liderazgo, y ser visto como agradable y confiable. Sus ideas no valen nada a menos que pueda comunicarlas claramente a personas en posiciones de poder que confían en usted. (Incluso si trabaja en solitario por cuenta propia, todavía existe esa persona: su cliente). En particular, el análisis de requisitos (incluida la obtención) es muy útil, porque generalmente son vagos al principio.
- Practica todo lo anterior en tu tiempo libre. Puede contribuir a proyectos de código abierto (o comenzar uno propio), resolver ejercicios en lugares como Exercism.io, Codewars o Project Euler, o Google el término “código katas” y resolver lo que encuentre. Para la comunicación y el liderazgo, puedes aprender y practicar en Toastmasters.
- Muestre sus habilidades al mundo. Comparta su experiencia en su propio blog o en publicaciones de invitados en un blog popular. Sea un invitado en un podcast o comience el suyo. Hable en una conferencia, o al menos en un grupo de usuarios local (y si no hay uno, inícielo), tal vez incluso en alguna otra ciudad que esté visitando. Escribe un libro, incluso si es solo un libro electrónico corto. Grabe un video (podría ser un screencast) o una serie de ellos. Realizar un seminario web. Asegúrese de que su sitio web y sus cuentas de redes sociales muestren todo lo anterior.
- Pula su perfil en lugares donde los reclutadores / clientes / lo que sea que puedan encontrarlo. Además de las principales bolsas de trabajo, aquí en los EE. UU. Eso significa LinkedIn. En Europa occidental, eso parece significar Xing. Veo que estás en Nairobi (A2A por David Mburu); No tengo idea si hay algo más específico para África, Kenia o Nairobi … pero incluso si no lo hay, es posible que te contraten para trabajar de forma remota , si tienes electricidad confiable e Internet rápido y confiable.
- También puede ayudar a desarrollar una profunda experiencia en un dominio . Por ejemplo, podría aprender mucho sobre minería, construcción, cohetes, fabricación de automóviles o lo que sea, y cuando alguna empresa en ese dominio necesite un programador, será un candidato atractivo al necesitar menos capacitación en su dominio.