Conseguir tu primer trabajo en Tech 🔥
Tags: trabajo, frontend, backend, datascience
Published: 2023-06-03 11:51:43

Hace unos días me invitaron a impartir una charla sobre el proceso para poder conseguir un trabajo en la industria tech a personas que están empezando en el area.

En la charla me he enfocado en hacer énfasis en los consejos y recomendaciones que a mi misma me han ayudado a lo largo de mi carrera y los recursos que son de mucha utilidad para conseguir un portafolio que destaque sobre los demás.

Este es el resumen de la presentación con links y tips 🔥 

## Proceso de selección en tech
El proceso de selección varía entre una empresa/proyecto a otro pero la mayoría de procesos siguen un orden similar al siguiente:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2jcln8rx614iwjvnznwi.png)

## Currículum vitae
Este primer paso es muy importante por que es la puerta de entrada al proceso de selección y tomando en cuenta que la cantidad de cv's que reciben los reclutadores para posiciones junior son bastante altas, realmente tenemos que sobre salir de entre todos para poder tener una oportunidad.

En este artículo no me enfocaré en el formato del cv sino mas bien en la sección de experiencias previas.

Cuando estamos a penas entrando a un area nueva es común que no sepamos que incluir en esta sección, sin embargo hay una gran cantidad de recursos que nos pueden servir para generar experiencias completamente validas para el cv.

#### Contribuír a proyectos de código abierto  
Este tipo de experiencia puede aportar bastante solidez a nuestro cv ya que no solo podemos comprobar que hemos desarrollado parte de un proyecto sino que la empresa puede revisar el código que hemos aportado y verificar que es de calidad.

Las principales plataformas donde podemos encontrar proyectos de código abierto son:

- https://github.com 
- https://codeberg.org
- https://gitlab.com

A demás esta página recoge un listado de filtros con los cuales podremos encontrar issues o "necesidades" que tienen los proyectos, etiquetados con un nivel "bajo" de experiencia o que son buenos para personas que contribuyen por primera vez:
https://www.firsttimersonly.com


### Hackatones
Los hackatones son eventos en los que un grupo de personas se reunen fisicamente o virtualmente para desarrollar una o varias ideas en un tiempo determinado.

Estas experiencias también son bastante valoradas porque no solo se trata de desarrollar código sino de desarrollar una idea y de trabajar en equipo. Cualidades muy valoradas al momento de buscar developers.

Aquí puedes encontrar listados de hackatones que sucederán a lo largo del año:

- https://www.eventbrite.es/d/online/hackathon
- https://hackathonspain.com
- https://hackathon.talent-network.org
- https://www.hackathon.com

### Competencias y ejercicios
Existen una gran cantidad de sitios donde podemos encontrar ejercicios o ideas de desarrollo de software que podemos desarrollar y subir a nuestro repositorio de preferencia para utilizarlo como portafolio.

Aquí listo algunas de ellas:
- https://www.freecodecamp.org/espanol/news/el-desafio-100daysofcode-su-historia-y-por-que-debes-probarlo-para-2022
- https://github.com/practical-tutorials/project-based-learning
- https://www.kaggle.com/competitions 

También existen comunidades como [Hablemos Python](https://hablemospython.dev/ ) donde se promueve el desarrollo de proyectos realizados por la comunidad y que aportan justamente esa experiencia de desarrollo en equipo para personas de todos los niveles y con conocimientos en distintas tecnologías, ya que la mayoría de proyectos necesitan diversidad de perfiles para poder completarse.

## Entrevista inicial con RH
Una vez que has sido seleccionadx para empezar el proceso de selección, vendrá la primera entrevista con recursos humanos, usualmente querrán conocer un poco sobre tí y sobre tu experiencia previa.

Aquí es donde utilizaremos todo lo que aprendimos al desarrollar los proyectos anteriores para demostrar los conocimientos con los que contamos.

Muchas veces en este punto van a preguntarte cual es tu expectativa salarial, aquí podemos tener puntos de vista diferentes, ya que hay personas que prefieren no responder a este tipo de preguntas, lo cual es completamente valido.

Pero algunas otras personas prefieren establecer una cantidad mínima, por lo que si la empresa no puede pagarte esa cantidad y tu no estas dispuestx a negociarla, el proceso de selección ya no continuaría. Esto puede ser bueno si no quieres invertir tu tiempo en las entrevistas y pruebas técnicas, si al final no se podrá realizar el acuerdo.

Asi que mi recomendación para este paso es que investigues a la empresa, su valores y sus productos o servicios, para poder saber si es una empresa que encajaría con tu forma de pensar y también para descartar a posibles empresas con culturas laborales tóxicas.

Un sitio que puede servir para investigar salarios y opiniones es https://www.glassdoor.es, también puedes buscar en linkedin y en plataformas como github. 

## Pruebas técnicas
Existen una gran cantidad de pruebas técnicas, aquí hablaré un poco de los tipos de pruebas a las que me he enfrentado yo.

### Resolver un problema con código en tiempo real (ó con límite de tiempo)

En este tipo de prueba lo más importante es entender el problema y explicarle a la persona que entrevista, como planeamos resolverlo, aún a pesar de que el código no funcione.

Si la posición requiere conocer sobre Testing tendrás que desarrollar con TDD en está prueba.
Algunos sitios donde podras encontrar ejercicios para practicar:

- https://projecteuler.net/archives
- https://www.hackerrank.com/domains
- https://exercism.org 
- https://leetcode.com
- https://platzi.com/comunidad/retos-de-programacion-para-cualquier-lenguaje-segundo-nivel-condicionales

### Resolver un problema con código de forma asíncrona
En este tipo de prueba nos envían un problema el cual tenemos que resolver y usalmente tendremos algunos días o una semana para hacerlo, con todas las herramientas que tengamos a nuestro alcance. 

Lo más importante en este caso es utilizar buenas prácticas y  si hay código previo en el proyecto, es importante identificar errores o mejoras que se puedan hacer.

Si después de lograr esto te queda tiempo, has todos los tests que puedas.

En la entrevista de revisión del código, propón mejoras en el código y si no te dió tiempo de hacer algo, explicales que te hubiese gustado implementar si tuvieras más tiempo.

Algunos repositorios donde podemos encontrar código de este tipo para practicar:

- https://github.com/techops-recsys-lateral-hiring 
- https://retosdeprogramacion.com/semanales2023 Respuestas: https://github.com/mouredev/retos-programacion-2023/tree/main 

### Pair programming
En este caso es muy importante comunicarte con la persona que te entrevista y preguntarle constantemente su opinión sobre lo que propones ya que ellos te han dicho que es un pair programming y esperan que actues "de forma natural" como si fuese un día normal de trabajo.

Normalmente se requiere que propongas mejoras al código si es que ya existe.

### Resolver un problema de forma conceptual
En este caso la comunicación es muy importante, explicar con detalle los conceptos que te preguntan y casos de aplicación puede hacer la diferencia.

No supongas nada, mejor pregunta para estar segurx de que es lo que quieren escuchar.

## Entrevista de cultura laboral
Algunas empresas realizan este tipo de entrevistas donde se trata de entender si tu podrías encajar en el equipo pero también si a tí te hace sentido la empresa. Esta entrevista es muy util para hacer todas las preguntas que tengas sobre el día a día en la empresa y de cuales son las opciones de crecimiento que podrían existir.

## Comunidades
Finalmente algo que siempre le recomiendo a las personas que están en busqueda de trabajo es asistir y formar parte de una o varias comunidades de tecnología.

Existen comunidades en todo el mundo, algunas tienen actividades en persona y otras actividades virtuales. De cualquier forma, formar parte de una comunidad puede ayudarte a crecer tu red de contactos, aprender de personas que están en distintos niveles en areas similares a la tuya y también para compartir tu experiencia.

A demás es justo en estas comunidades donde surjen muchos proyectos o eventos en los que es posible participar y que también pueden aportar en tu cv, por ejemplo voluntariados y contribuciones a proyectos open source.

Muchas de estas comunidades puedes encontrarlas en:
- https://meetup.es 
- https://eventbrite.es 

También puedes seguirles en twitter, linkedin y facebook para estar al pendiente de las actividades y noticias de la comunidad.

¡Espero que estas recomendaciones puedan ayudarte!