Hola soy @desu
En este hilo voy a recopilar material de calidad para pasar una entrevista de trabajo para una posición de SWE en el sector IT. De las (Amazon, Google, Uber, Microsoft, Airbnb, Linkedin... etc) a pequeñas Startups.
El hilo
Este es el hilo que me hubiese gustado encontrar hace 1 año. Bueno, si me hubiesen dado una buena colleja el primer día de uni también me habría valido. Las collejas que no te dieron en su momento todas de golpe te las va dando la experiencia poco a poco, hija de puta. Para aprender? Hay mil cosas y en github se hacen recopilaciones enormes pero hay TANTO que te distraes... Yo siempre me distraigo con todo, doy mil vueltas porqué no quiero joderla.
Esto es el resumen del resumen y algo de historieta con su tragicomedia. Por desgracia la mayoría de memes que forman mi vida los sufro a diario.
¿Que encontraras?
(En post aparte referenciados)
- Como reconocer algoritmos, sus patrones #86
- Como tener el resume, #92
- Como he preparado la entrevista. Consejos, material, mis apuntes...
- Como he negociado el sueldo. Referencias a blogs, conocer como funcionan los contratos por Europa vs lo que lees en reddit(usa) etc.
- Paises para trabajar. Aunque probaré empresas de España también... Aquí hablaré de que sueldos son aceptables centrado en tech hubs europeos, listas de empresas, posibles tax reductions etc.
Sitios de interés
Reddit:
https://www.reddit.com/r/cscareerquestions/
https://www.reddit.com/r/cscareerquestionsEU/
Toque:
https://leetcode.com/
https://www.geeksforgeeks.org/
https://exercism.io/
Resume / Cover Letter
Aparte de reddit, la CMU es una buena fuente:
https://www.cmu.edu/career/students-and-alumni/write-a-resume-or-cover-letter/index.html
(palabras clave de acción, cuantificar y detallar bien TUS logros, NO lo lo que has hecho, tu IMPACTO etc. etc. Saber venderte)
Voy a poner mi resume censurado... Tampoco hace falta más. Hoy en día la gente que tiene un mal resume es gente que ni ha googleado. El resume se tarda un par de días en hacerlo... Hay que dedicarle HORAS. Pedid feedback constante en los foros. Cuanta más gente lo lea y lo entienda mejor es.
Esta en #92
Entrevista técnica
Esto varia según tu posición y experiencia.
Si quieres ser data engineer prepara SQL, algo de big data, system design....
Si quieres ser ML o data science pues preguntas de estadística y probabilidad...
Si quieres ser SWE preparas la entrevista general.
Depende de la entrevista hay varias fases, las que hay que llevar preparadas. Aquí se te van a ir de decenas a cientos de horas de estudio ... Es lo que hay.
Esto es lo que yo preparo y como lo preparo.
Behaviour
Te preparas una tabla en word o excel con tu experiencia laboral y protectos personales.
Para cada elemento te pones dificultades técnicas, conflictos, logros... etc
Ten una respuesta para todo tipo de pregunta de este estilo.
A continuación os pongo mi tabla censurada:
En los recursos de abajo hay una cheet sheat.
Estructura técninca
Recursos: http://www.crackingthepminterview.com/resources.html
Lo peor que te vas a encontrar va a ser un proceso de 4-6 fases. Algo así:
1. Hackerrank / Reto: Te pueden mandar un proyecto para hacer en casa o un reto de hackerrank (esto esta de moda a día de hoy).
2. Skype: leetcode, big O, preguntas teoricas sobre frameworks o tu experiencia...
3. On site: Varias rondas más de entrevistas técnicas, leetcode, patrones / system design.
4. La ultima ronda siempre suele ser alguien del equipo que te quiera fichar o el que decide si hay oferta. Esta fase en FAANG y similares ahora se decide por comité.
5. Oferta, o mejor dicho, negociación.
(Yo no hago nada de deberes para casa que sea más de 2h)
Como grindear
Hackerrank para la primer fase + Leetcode para temas en general.
Si la entrevista va de X lenguaje, buscar en geeksforgeeks que preguntas sobre X lenguaje se hace en la compañia.
Devidir el trabajo en fases, y dependiendo del nivel de dificultad
- Fase 0:
Hacer proyectos y hacerlos en lenguajes que te interese (Rust, Go, Kotlin...)
Hacer algún curso de coursera para pillar bases:
https://www.coursera.org/learn/algorithms-part1
https://www.coursera.org/learn/algorithms-part2
Participar en eventos de competitive programming, hackathons etc.
- Fase 1: LC + HR
Hackerrank easy 10 (para pillar como van)
Leetcode easy 80
Leetcode medium 10
LC ratio 8:1, 8 easy, 1 medium.
Fase 2:
Subir dificultad, bajar tiempos de resolución.
El mejor consejo que he leído, mido los días en horas de estudio, no importa cuantos resuelvas, dedícale horas... Mira las soluciones y estudiarlas y ya volverás si no te sale. Cuantifica en horas no en resueltos porqué te vas a rallar.
Es un gran consejo, ahora lo aplico a la lectura, intento leer una media horita cada día, me dan igual las páginas o los capítulos. Mido en tiempo, en esfuerzo. Lo puedes aplicar a cualquier cosa.
System Design
Va bien leer blogs de engineering de Twitter, Uber, Linkedin, Netflix etc...
https://github.com/donnemartin/system-design-primer
https://www.educative.io/collection/5668639101419520/5649050225344512
Conocimiento general de arquitecturas modernas y luego prepararte las típicas por si cae.