Por lo general, puede trabajar con éxito durante varios (o muchos) años sin encontrarse con ninguno de ellos.
Para el desarrollo web necesitarás otro tipo de conocimiento. Al principio, conocería las tecnologías básicas, en el segundo nivel: marcos de trabajo y API populares, en el nivel superior, aparecen las habilidades y consideraciones arquitectónicas.
Si hablamos de web y proyectos, estaban en los últimos 5 de estos 6, encontré problemas “algorítmicos” solo dos veces:
- ¿Existe un algoritmo informático para detectar 'noticias falsas'?
- Si pudiera romper el algoritmo RSA, ¿lo mantendría en secreto?
- ¿Cuál es el mejor recurso para aprender el algoritmo KMP?
- ¿A los programadores les gustan las funciones recursivas? ¿Por qué o por qué no?
- ¿Qué algoritmo de búsqueda usan los sitios de matrimonio en línea en India?
- algoritmo de gráfico simple para determinar vecindarios de distritos en la ciudad (para el caso cuando el anunciante especificó erróneamente a qué distrito pertenece la dirección);
- caprichosa coincidencia de patrones difusos para direcciones de ciudades (que finalmente convertí en una pequeña biblioteca que FREJ, bastante específica para ese proyecto). Pero fue hace varios años.
Seguramente la web está llena de algoritmos complicados bajo el capó. Piense en la búsqueda de Google, el ranking de la página, los anuncios instantáneos que se muestran dependiendo de las ofertas rápidas que utilizan información recopilada sobre el usuario, todo tipo de “recomendado para usted”, etc. Pero por lo general no trabaja en tales proyectos y ni siquiera participa en ellos indirectamente, aunque a menudo puede usarlos (por ejemplo, agregar anuncios o búsqueda de Google a su sitio).
Concluyendo, aprende algoritmos principalmente para dos propósitos:
- entrenar tu cerebro y la comprensión general de la programación;
- para poder ponerse al día con algunos trabajos más raros y geniales si desea trabajar en esta dirección.
Solo puedo lamentar que a muchas personas se les enseñen demasiados algoritmos y muy pocos patrones, arquitecturas, estilo de código, trabajo en equipo, etc.