¡Hazte relevante! Trataré de responder esta pregunta siguiendo las líneas de otra pregunta.
¿Qué debo comenzar a hacer todos los días para obtener un trabajo en el dominio de Ingeniería de Software en India?
Mi consejo sería comenzar a pensar, no en términos de aprender solo estructuras de datos o algoritmos, sino más en términos de problemas y ¿cómo resolvería un problema?
- ¿Cómo resolvemos esta pregunta: Jimmy y NITT WiFi?
- ¿Qué debo hacer si tengo dificultades con la programación dinámica en SPOJ?
- Cómo implementar un árbol de segmentos con treaps
- ¿Cuántas veces se realiza la comparación [código] i> = n [/ código] en el siguiente programa? [código] int i = 200, n = 110; main () {while (i> = n) {i = i-1; n = n + 1;}} [/ código]
- En el algoritmo O (n) para encontrar el elemento máximo en una matriz, ¿cuál es el valor esperado del número total de cambios en el valor de una variable que mantiene el máximo sobre el paso de una matriz?
¡Define los problemas que crees que son interesantes en la vida cotidiana!
Por ejemplo:
- ¿Cómo ve un cliente de Ola / Uber la ETA del controlador, de los miles de controladores que operan en una región?
- ¿Cómo funciona un administrador de descargas de Internet?
- ¿Cómo funciona un acortador de URL?
La intención es comprender y diseñar sistemas a su alrededor que impliquen:
- Aprender sobre qué estructuras de datos usar y cuándo.
- Comprender qué estructuras de datos podrían usarse, pero ¿por qué no?
- ¿Cuándo usar una base de datos? Sugerencia: cuando la RAM no sería suficiente para contener todas las estructuras de datos en la memoria.
- Piense por qué la relación es una buena opción frente a una base de datos no sql . ¿Por qué usarías MySQL vs MongoDB, etc.?
- ¿Cuándo una base de datos no sería suficiente y necesitará una memoria de acceso más rápida? Sugerencia: base de datos en memoria
Básicamente, lo que debes comenzar a entender es, ¿cómo lo resolverás?
Se trata principalmente de volverse relevante en el dominio. Elegir las herramientas adecuadas utilizadas en la industria siempre aumentará sus posibilidades de conseguir un trabajo.
En el proceso de leer y comprender lo anterior, asegúrese de crear algo utilizando las herramientas también.
¡Bueno! Basta de consejos, pero ¿Cómo comenzar con esto?
Para mejorar su DS y Algoritmos, vaya con Cracking the Coding Interview (4th Edition), resuelva todas las preguntas primero. Hay soluciones disponibles para estos en Github. (Las soluciones son para la 5ta edición, intente obtener la misma o la última 6ta edición).
Algunas buenas preguntas de diseño del sistema se pueden encontrar en este repositorio de Github. Al principio pueden ser abrumadores, pero comenzarán a tener sentido si sigues leyendo sobre ellos.
Feliz codificación 🙂