¿Debería centrarme en aprender más idiomas o algoritmos y estructuras de datos?

Depende en gran medida del área en la que desee especializarse. No lo ha especificado, por lo que seguiré adelante y asumiré que es una carrera de ingeniero de software que se enfoca principalmente en ofrecer productos de software de alto nivel.

Aquí vienen dos declaraciones importantes:

  1. La comprensión profunda del lenguaje requiere la comprensión de los algoritmos y las estructuras de datos implementadas internamente para el soporte de características del lenguaje.
  2. La comprensión de los algoritmos no requiere que conozca ninguno de los idiomas existentes.

Entonces, en un nivel fundamental, el concepto de estructura de datos / algoritmos es más importante para un ingeniero de software completo y experimentado. Irónicamente, si me preguntaras si es posible ser un buen programador sin conocer los algoritmos (sin embargo, conociendo la arquitectura de la computadora, el sistema operativo, las especificaciones del lenguaje, el trabajo en equipo, las metodologías de desarrollo), diría que sí, definitivamente es posible. Ninguno de los dos conocimientos es suficiente, pero ambos son necesarios si te esfuerzas por estar en la cima del juego. Así que aprende en qué área te falta.

Definitivamente Algoritmos y Estructuras de Datos. Todavía necesita conocer al menos un lenguaje de programación lo suficientemente bien como para poder implementarlos, porque solo puede pensar que comprende un algoritmo / estructura de datos, pero no lo hace hasta que realmente lo implemente. Este es uno de los puntos principales de nuestra Especialización: que implemente todos los algoritmos / estructuras de datos que estudie, pero puede usar cualquiera de los 10 idiomas que elija. Aprender un lenguaje de programación más es relativamente fácil cuando ya sabes algo.

Definitivamente algoritmos y estructuras de datos si tiene dominio sobre un idioma en particular. Se aprenderá una nueva llamada de idioma cuando en su trabajo, se le asignará un proyecto específico para un idioma en particular. Pero los algoritmos y las estructuras de datos son lo más básico. El algoritmo sigue siendo el mismo independientemente del lenguaje de programación y el concepto de estructuras de datos comunes también sigue siendo el mismo en todos los lenguajes, solo los cambios de implementación. Por lo tanto, concéntrese en los algoritmos de aprendizaje y las estructuras de datos, ya que son lo más importante en la carrera como programador informático.

Los algoritmos y las estructuras de datos forman la base de la informática. Ni siquiera necesita saber un lenguaje de programación para comprender estos conceptos. Un poco de comprensión del pseudocódigo y / o diagramas de flujo debería ser suficiente para aprender estos conceptos.

Sin embargo, conocer algunos lenguajes populares (Java, C #) lo ayudará a implementar algunos de estos conceptos y tal vez conseguir un trabajo. Eventualmente, es posible que desee conocer más idiomas y comparar / contrastar para comprender los matices y ayudar a decidir cuál usar para un espacio problemático en particular.

Si su dominio de un lenguaje particular como Java o C # es bueno, entonces aprender otro idioma no será difícil. Si bien su dominio de los algoritmos y las estructuras de datos no es bueno, no importa qué idioma conozca o aprenda, es posible que no pueda usarlo de manera eficiente para el rendimiento.

Por lo tanto, sugeriría que primero se concentre en los algoritmos y las estructuras de datos, intente dominarlos si puede. Aprender más idiomas no debería ser muy difícil como dije, puedes hacerlo en cualquier momento.

Los algoritmos y las estructuras de datos son la base; sin eso, no tiene sentido aprender un lenguaje de programación.

¿Alguna vez pensaste por qué hablamos de lenguajes de programación?

Es lo mismo que en la vida real: si no tienes que decir algo, no importa que no hables ningún idioma …