¿Es necesario aprender un algoritmo antes de aprender cualquier lenguaje de programación?

En resumen, los algoritmos son programas de computadora. Ellos son la misma cosa. … La mayoría de las veces los programadores de computadoras crean sus propios algoritmos para el problema particular que intentan resolver, o algunas veces toman prestada una solución exitosa de alguien que ya la resolvió. Lo que quiero decir es que los algoritmos son necesarios para el lenguaje de programación.

Puedes aprender algoritmos a través de algunos cursos en línea:

Los mejores cursos en línea para algoritmos para Java y Python:

  • Estructuras de datos prácticas y algoritmos en Java + HW
  • Algoritmos y estructuras de datos en Python

Como pidió algoritmos para el lenguaje de programación, el primer curso es la mejor opción,

de este curso puedes aprender sobre:

Los temas de este curso cubrirán estructuras de datos como listas, pilas, colas, árboles y algunos de los algoritmos de clasificación, búsqueda y gráficos más potentes que han revolucionado el campo de la informática. A lo largo del curso mantengo las cosas prácticas y proporciono ejemplos de la vida real de cómo funcionan todos estos algoritmos y cuándo y dónde se pueden aplicar para escribir programas informáticos eficientes.

  • Gane confianza para codificar entrevistas
  • Aprenda las estructuras de datos y algoritmos más prácticos y populares en profundidad en lugar de un curso apresurado sobre informática
  • Practique la traducción de códigos sudo y la implementación de algoritmos con Asignaciones y Soluciones
  • Obtenga una comprensión intuitiva de cuántos de los algoritmos y estructuras de datos populares se comportan

Algunos cursos adicionales de algoritmos en línea para la programación:

  • Algoritmos de clasificación utilizando Java y C: fortalezca sus conceptos básicos

Libros de texto para algoritmos (solo con fines de referencia):

  • Introducción a los algoritmos, 3a edición (MIT Press)
  • Algoritmos (4a edición) de Robert Sedgewick y Kevin Wayne
  • Algoritmos de Grokking: una guía ilustrada para programadores y otras personas curiosas por Aditya Bhargava

TODO LO MEJOR

Mi respuesta a este tipo de preguntas es siempre SÍ.

Como dijiste, con el algoritmo puedes avanzar a cualquier idioma. Aprender un idioma sin saber qué hacer con él lo hace inútil.

Piensa que estás aprendiendo un idioma extranjero. Conoces las palabras, pero no la gramática y no puedes construir una oración correctamente. Es posible que pueda escuchar y leer, pero no puede hablar ni escribir. Puedes sobrevivir allí, pero lucharás.

Es lo mismo con el código. Si comprende las palabras clave, puede leer un fragmento de código. Pero sin algoritmo, no puedes escribir código nuevo. Ni siquiera puedes decir si el código es correcto. Para ti, todo parece correcto, siempre que use las palabras correctas. Eres inútil para una empresa.

Me encuentro un tanto en desacuerdo con algunas (la mayoría) de las otras respuestas dadas.

Yo diría esto:

Escribir un programa es, en esencia, decirle a una computadora (con tedioso detalle) cómo hacer alguna tarea. Ahora, si no sabes * cómo * hacer lo que quieres, ¿cómo vas a explicarlo a la computadora?

Por lo tanto, al menos, necesita conocer algunos algoritmos simples, para poder practicar la programación escribiéndolos en un lenguaje de programación.

Eso no significa que deba ser un experto en algoritmos antes de aprender a programar. Solo que necesita saber * algún * algoritmo que pueda expresar como programa.

En su mayor parte, sugeriría aprender los dos en paralelo. Aprenda cómo resolver un problema que desea resolver, luego aprenda a expresar esa solución en código. Enjuague y repita.

Deberías aprender ambos simultáneamente.

Desde mi propia experiencia, puedo decir que no podrá comprender cómo funciona el algoritmo hasta que intente implementarlo. Por esa razón, debe tener algunas habilidades para implementarlo.

Algún problema que enfrentará con lenguajes no procesales o no orientados a objetos.

absolutamente sí

El lenguaje de programación no es importante en absoluto.

todos los idiomas son similares, aprendes uno, sabes la mayoría de ellos.

pero la base es el algoritmo, la estructura de datos y los patrones de diseño.

Contestaré esa pregunta sobre los hombros de dos tipos que son una referencia en algoritmos: Robert Sedgwick y Kevin Wayne.

Si comienza su curso en Coursera (aquí está el enlace), le recomiendan que tenga un buen comando en un lenguaje de programación antes de comenzar el curso.

Entonces, ahí está tu respuesta.

Aprende un idioma y luego aprende algoritmos.

No, probablemente sea al revés. Para conocer un algoritmo, debe poder expresarlo en algún lenguaje, y los lenguajes de programación están dirigidos a este tipo de expresión. Así que aprende tu idioma y luego aprende los algoritmos. Pero para asegurarse de que conoce el algoritmo, es útil poder expresarlo en más de un idioma, y ​​preferiblemente en diferentes familias de idiomas. Es decir, exprese en Python, Lisp y Haskell para que pueda pensar sobre el algoritmo, y no solo cómo se expresa en un idioma.

De ningún modo. De hecho, realmente no necesita conocer algoritmos para algunos trabajos de programación / conjuntos de habilidades. Pero dependiendo de lo que desee hacer con la programación, puede ser útil (o incluso necesario) aprender las teorías básicas de algoritmos. E incluso si nunca termina necesitando algoritmos para su trabajo de programación, puede convertirlo en un mejor programador.

Depende de ti. Muchas personas saltan directamente al campo de codificación, pero aprender algoritmo y crearlo lo ayuda a comprender mejor su código y también lo ayudará a encontrar cualquier error que cometa al escribir su código. Entonces tendrá una estructura aproximada de su código.

Necesita algunas intuiciones acerca de la programación (obtenida más fácilmente al aprender programación básica) para aprender algoritmos, pero necesita algoritmos para comprender algunos de los conceptos más avanzados en programación.

¿Por qué es solo para referencia, no para el aprendizaje, si realmente entendiste el significado de la educación?

More Interesting

¿Cómo se pueden realizar los pagos mediante algoritmos informáticos?

¿Cuál es su estructura de datos favorita y por qué?

¿Cuáles son los algoritmos necesarios para resolver un cubo de rubics?

¿Por qué se utilizan montones para la asignación de memoria? ¿Por qué no se utilizan pilas ni ninguna otra?

¿Cuáles son las aplicaciones prácticas / de la vida real / industriales de Dijkstra, Kruskal y Algortithm de Prim?

Cómo encontrar la subcadena común más larga de tres o más cadenas usando una matriz de sufijos

¿Cuál es el número más pequeño [matemática] N [/ matemática] tal que [matemática] N \ equiv 2 \ mod 3, [/ matemática] [matemática] N \ equiv 1 \ mod 5, [/ matemática] [matemática] N \ equiv 4 \ mod 7 [/ matemáticas]?

¿Cuál es el algoritmo para integrar una función usando un programa de computadora?

Cómo escribir un programa en C para implementar un algoritmo de planificación de prioridades, junto con la visualización del diagrama de Gantt

¿Alguna vez ha enviado un artículo científico sobre un algoritmo que funciona tan bien como los métodos más modernos pero realmente no sabe por qué? ¿Puedes decir 'tal vez' al explicar tu método?

Preguntado por un no experto en tecnología, ¿qué tan impactante sería si una tecnología pudiera mitigar el ruido impulsivo en tiempo real usando un algoritmo no lineal simple que usa la mediana (en lugar de la media)? Por ejemplo, podría usarse para reemplazar filtros lineales analógicos en teléfonos móviles, esencialmente actuando como un filtro lineal a menos que detecte ruido impulsivo y actúe para condicionarlo.

¿Cuáles son todos los diferentes tipos de recursividad en la programación?

¿Hay algún algoritmo de corrector ortográfico de aprendizaje no supervisado?

¿Qué estructura de datos se utiliza para almacenar la pestaña reciente en el teléfono?

¿Cuánto estrés se le da a los algoritmos y las estructuras de datos en el curso de pregrado en CMI? ¿Se enseña programación competitiva allí?