No tengo un título de CS o una base de CS, y soy autodidacta. He estado haciendo desarrollo web durante ~ 10 años y recientemente acepté mi primer trabajo a tiempo completo como desarrollador web en LinkedIn. Estoy hablando desde la vista de un desarrollador front-end aquí 🙂
No creo que lo necesites. Como en, puedes ser un buen desarrollador web sin él. Pero será muy difícil elevarse a un rol de ingeniero superior o de software sin él. De hecho, el mayor desafío que enfrentarás es conseguir un trabajo.
No solo es realmente difícil obtener entrevistas para trabajos de desarrollo en las principales empresas sin un título de CS, sino que sus entrevistas se adaptan específicamente al conocimiento de CS. Recientemente realicé mi primera búsqueda de trabajo con la intención de conseguir un trabajo en ingeniería de front end en una empresa líder en el área de la bahía. Entrevisté a un montón de empresas, y diría que al menos el 70% de ellas agrupan a todos sus desarrolladores en un proceso de entrevista. Como en, se esperaba que conociera estructuras de datos que ni siquiera existen en mi idioma principal (JS), y algoritmos para problemas que nunca enfrentaré en el front-end. Cosas que enseñan los programas de grado de CS. Esto se consideró el conocimiento básico mínimo que un “ingeniero” debería tener, y si pasa esa etapa, entonces obtiene entrevistas especializadas para el front-end o el back-end.
- Cómo representar más de la cantidad predeterminada de dígitos en números como (1/7) en Python
- ¿Es log n lo mismo que O (nlogn)?
- ¿Cómo es ser un experto en matemáticas trabajando como ingeniero de software?
- ¿Cuál es el significado del teorema de Barrington?
- Cómo escribir un programa en C para verificar si para cualquier triplete entero (x, y, z) y otro entero n, [matemática] n ^ x + n ^ y = n ^ z [/ matemática] ocurre para (a, b) siendo la entrada donde [matemáticas] a \ leq n \ leq b [/ matemáticas]
LinkedIn tiene específicamente desarrolladores web como una organización separada que tiene la libertad de realizar entrevistas de la manera que deseen. Si hubieran intentado entrevistarme de la misma manera que sus ingenieros de software, habría fallado. Pero me hicieron preguntas relevantes para el desarrollador web, y sabía las respuestas. El mayor conocimiento de CS que necesitaba era la recursividad básica.
Otra compañía con la que hablé me dijo que solo contratan nuevos graduados para la ingeniería full-stack. Cuando les dije que aún no estaba calificado para eso y que me gustaría postularme para el puesto de front-end abierto que habían publicado, me dijeron “intentemos la pila completa de todos modos” y me enviaron una prueba de HackerRank que inevitablemente fallé. Decidieron darme otra oportunidad y entrevistarme para el front end, y llegué muy rápido al final del proceso (acepté la oferta de LI antes de mi entrevista final y terminé la conversación).
Dicho todo esto, estoy tomando clases en CS ahora porque quiero poder entender cómo funciona todo y tomar decisiones más informadas sobre los marcos, el rendimiento y, finalmente, convertirme en un ingeniero de pila completa.
Mi punto es que creo que la mayoría de las empresas lo tienen al revés para los desarrolladores web (nota: no estoy hablando de ingenieros de software aquí, específicamente desarrolladores web). En primer lugar, un desarrollador web debería poder escribir código para la web. ENTONCES, el conocimiento de CS puede ayudarlo a tomar mejores decisiones. No como una línea de base.