Ambos son importantes si quieres ser un buen desarrollador de software.
Los algoritmos y las teorías relacionadas relacionadas con la informática son fundamentales que realmente debes conocer bien. Piénselo como cuando aprende a conducir un vehículo; primero aprende las técnicas de conducción relacionadas con los controles de velocidad y seguridad. Del mismo modo, el conocimiento relacionado con los algoritmos lo ayuda a comprender y comprender cuáles son las mejores formas de procesar una entrada en determinadas condiciones y restricciones utilizando las estructuras de datos correctas. Le ayuda a uno a comprender los bloques centrales que se utilizarían en muchas aplicaciones de software. Esto le ayudará a razonar por qué su código o una aplicación se comporta de la manera en que lo hace.
Conocer varios idiomas lo ayuda a elegir el mejor idioma para implementar un algoritmo particular, ya que no todos los idiomas son iguales. Diferentes lenguajes tienen diferentes facilidades que ayudan a resolver un caso de uso de manera más efectiva y eficiente. Por ejemplo, una lógica de transcodificación de video basada en flujo se implementaría principalmente en C con llamadas al código de ensamblaje. ¿Puedes hacer lo mismo con Java? Posiblemente si; pero entonces el rendimiento puede no ser lo que querías.
- Cómo ordenar una lista anidada en Python
- ¿Cuáles son algunos ejemplos de problemas para los cuales una cola prioritaria resulta útil?
- ¿Cuál es la diferencia entre los algoritmos de programación de tareas y los algoritmos de equilibrio de carga (estáticos y dinámicos)?
- ¿Cuál es el problema de algoritmo más difícil en LeetCode?
- ¿Cuáles son los algoritmos necesarios para resolver todos los problemas (usando C ++) en cualquier concurso de codificación competitivo?
En la misma línea, si está implementando una aplicación web, entonces usaría Java o Python; pero definitivamente no C.
En realidad, el software tiene muchas partes móviles, cada una de las cuales tiene la responsabilidad de ejecutar una tarea en particular. Entonces es mejor escribir esta parte usando un algoritmo eficiente en un lenguaje que sea más adecuado para el entorno de ejecución y las restricciones dadas. Esto es específicamente cierto en el software actual basado en la nube, donde la funcionalidad se define e implementa en términos de micro servicios: pequeños componentes de software que se ejecutan de forma independiente pero luego se comunican utilizando un mecanismo común como una cola distribuida o memoria compartida. Este es un gran cambio desde los viejos tiempos donde todos los componentes de software se escribieron en un solo lenguaje de programación tanto como sea posible, con la única excepción de aquellos componentes que tuvieron que escribirse en otro idioma donde el lenguaje de programación original no podía funcionar. trabajo. Entonces habría un punto de integración entre estos componentes utilizando algún tipo de puente (recuerde JNI, COM, CORBA y lo que no).
Saber varios idiomas también ayuda a que su currículum se destaque entre los reclutadores y aumenta la posibilidad de que le ofrezcan una entrevista de trabajo.
Por lo tanto para resumir; Ambos aspectos son igualmente importantes. Lo que importa es el orden en que los abordas. Yo diría que primero hornee a fondo los fundamentos usando un idioma. Luego, a medida que resuelves más problemas del mundo real, explora diferentes idiomas.