¿Debo aprender algoritmos si quiero ser desarrollador web / móvil?

Por supuesto, no es necesario aprender algoritmos si su único objetivo es escribir aplicaciones móviles.

Dicho esto, todavía recomendaría tomarse un tiempo con ellos. Mejorar los algoritmos e incluso las estructuras de datos solo puede ayudarlo a ser un mejor programador.

La razón por la que recomiendo algoritmos no es porque terminará usándolos en su vida cotidiana de codificación, sino porque los algoritmos ayudan a entrenar a su cerebro a resolver problemas y codificar de manera eficiente. Te obligan a pensar en el código de una manera completamente nueva, y si aún no lo has aprendido, los buenos programadores no solo hacen los trabajos, sino que los hacen de la manera más eficiente.

Los algoritmos también lo ayudarán con posibles entrevistas en el futuro. Las interoperaciones de pizarra son notorias en Silicon Valley, y si tiene confianza en los algoritmos, probablemente le irá mucho mejor en las entrevistas.

Asistí a la Escuela Holberton en SF, y nos enfocamos mucho en la programación de bajo nivel C, algoritmos y estructuras de datos, y estuve muy agradecido de tener esa experiencia, a pesar de estar interesado en el desarrollo móvil.

Aquí hay un secreto: ¡no necesitas aprender algoritmos para ser desarrollador!

La mayoría de los desarrolladores del día a día solo necesitan tener un conocimiento práctico de varios algoritmos y luego utilizarlos a través de cualquier biblioteca o marco que estén utilizando. Les puedo asegurar que la mayoría de los desarrolladores no están escribiendo sus propios algoritmos de búsqueda o clasificación. Seleccionamos uno listo para usar que se adapta a nuestras necesidades.

La gran mayoría de los problemas resueltos en el código no necesitan mucho en términos de conocimiento de algoritmos o capacidad para escribir MapReduce.

Eso sí, parte de aprender a ser un buen desarrollador de software es exponerse a algunos algoritmos comunes y saber cuáles son los niveles relativos de rendimiento de cada uno y dónde usarlo. Pero una vez pasado eso, saber dónde encontrar diversas capacidades, como una función de clasificación y saber cómo usar estructuras de datos como listas, mapas, árboles, etc., le permitirá obtener el 98% de sus actividades de desarrollo diarias.

Un algoritmo, por cierto, es un conjunto definido de pasos para resolver un problema. Todos los desarrolladores escriben algoritmos todos los días. La diferencia es saber qué conjunto de algoritmos necesita escribir frente a cuáles enlatados se utilizan en varios pasos.

Conocer los aspectos básicos de cómo se pueden resolver varios problemas es todo el conocimiento del algoritmo que necesita. Confía en mí, para ser un desarrollador de Android no necesitas conocer algoritmos. Y si lo hace, las probabilidades son muy buenas, es conocimiento que necesitará en el back-end, no en el frente.

More Interesting

¿Cuáles son las cosas más incomprendidas sobre programación competitiva y concursos de programación como ACM ICPC?

Cómo implementar un árbol de segmentos con treaps

¿Cuál es el camino más corto de Dijkstra para el siguiente gráfico?

Cómo mejorar en la resolución de problemas para JEE

¿Cuál es la diferencia entre el árbol de búsqueda binario y la búsqueda binaria?

¿Dónde puedo aprender los algoritmos de C ++ en línea?

Me da miedo mirar las preguntas en GeekForGeeks, ¿cómo superar este miedo?

Dada una lista de enlaces con punteros derechos, cada elemento de la lista tiene un enlace descendente que contiene otra lista de enlaces con punteros descendentes, de modo que cada lista derecha y abajo están ordenadas. ¿Cuál es la forma más rápida de aplanar la lista de enlaces de forma ordenada?

¿Hay algún algoritmo de aprendizaje automático para el que pones una línea y devuelve la línea más cercana en un conjunto de datos?

¿Cuál es el algoritmo más complicado por el que has pasado?

¿Hay algún proyecto de aprendizaje automático de finanzas que pueda ejercer con Python?

¿Se puede implementar un mapa usando Tree? ¿Se puede implementar un mapa usando List? Esto es específico de Java, pero me gustaría conocer el enfoque general.

¿Por qué ocurre el peor de los casos en Max-Heapify cuando la fila final del árbol está medio llena?

Después de que termina el programa de programación (estructuras de datos y algoritmo), ¿qué se les enseña a los estudiantes en CSE después de eso?

¿Cuál es la mejor fuente disponible para aprender estructuras de datos y algoritmos para un principiante?