¿Es importante memorizar algoritmos?

En serio, debe reconsiderar a las personas (llamadas personas mayores) a las que solicita asesoramiento. Por favor, no cambie su método de estudio y consulte a mejores personas mayores para obtener asesoramiento.

Los algoritmos son un área que no puedes entender por atraco. Si bien es posible que pueda obtener una puntuación decente en los exámenes universitarios no tan buenos al atrapar pseudocódigo, pero ciertamente no podrá convertirse en un buen ingeniero de software.

La mayoría de los problemas que encontrará en una entrevista de ingeniería de software de una empresa decente requerirá que aplique su habilidad algorítmica a un problema que nunca antes haya encontrado. Debe dividir el problema en un conjunto de problemas más fáciles que puede resolver con algoritmos que ya conoce. Esto requiere una comprensión concreta de cómo funciona el algoritmo, las matemáticas detrás de él y las restricciones. Asaltar sin duda disminuirá su capacidad de generalizar.

Si eres capaz de entender algoritmos, lo estás haciendo bien. La mayoría de las buenas empresas no se preocuparán por la sintaxis siempre que resuelva el problema correctamente. Así que no pierdas el tiempo asaltando.

Si eres un estudiante universitario y te estás preparando para el examen universitario, la respuesta podría ser afirmativa, pero si quisieras ser un gran ingeniero de software o ser el mejor entrevistador de la compañía de software, la respuesta será un gran no. Nunca se encontrará con la situación en la que escribirá la ordenación de burbujas o la fusión. Hay toneladas de funciones de biblioteca disponibles en todos los idiomas para hacer lo mismo. Además, nadie le pedirá que escriba el código para bfs o Dfs directamente en la entrevista. Se le dará un problema abstracto que se puede resolver de muchas maneras y bfs, dfs podría ser uno de ellos. Así que memorizar el algoritmo no te ayudará de ninguna manera. Si lo hace de esta manera, está perdiendo la esencia de los algoritmos.

Mi consejo es leer sobre las aplicaciones estándar de cada algoritmo e intentar visualizar la complejidad espacio / tiempo. Entonces te darás cuenta del poder de los algoritmos.

Los algoritmos están destinados a ser entendidos, no memorizados y una vez entendidos, no hay forma de revertir el proceso. Si uno memoriza un algoritmo, está obligado a perder el conocimiento si olvida alguna parte del mismo, si uno ha entendido un algoritmo, siempre puede resolverlo y completar la parte que falta. Además, si uno ha entendido un algoritmo, puede identificar fácilmente las variaciones y adaptarlo según las necesidades.

En mi opinión, este tipo de consejos generalmente son dados por aquellos que estudian durante todo el año y comienzan a estudiar a la undécima hora cuando no hay otra opción que memorizar tanto como sea posible para que si se les pregunta algo relacionado, puedan dar algo ¡pertinente! Solo requiere una contrapregunta para determinar si uno ha entendido o memorizado un algoritmo.

En la vida real, siempre se puede consultar material de referencia en caso de duda y eso no tiene nada de malo porque el cuerpo de conocimiento está aumentando a un ritmo rápido.

Solo necesita comprender qué se debe hacer y cómo se debe hacer.

En la vida real, solo se espera que seas lo suficientemente inteligente como para encontrar una solución (algoritmo) al problema. Conocer la solución completa (algoritmo) de memoria es una bendición. Pero para eso siempre tienes internet.

Por lo general, trabajará en equipo y creará módulos, donde cada módulo contiene un trabajo diferente realizado por otros. Y solo sabe qué pasar y qué resultados esperados obtendrá. Por ejemplo, si comprende que necesita el MST de un gráfico, solo necesita comprender cuáles son las entradas y qué salida obtendrá. Ese es el desarrollo práctico 101 😛.

Pero sí, para las ubicaciones, se espera que conozca todos los algoritmos que se enseñan en clase. Esto se debe a que todos los algoritmos suelen ser triviales. No es que le pidan que escriba FFT o Convex Hull. Por lo general, es uno de los algos más simples como Djkstra, Bellman Ford, etc.

No Memorizar algoritmos no tiene sentido. Demasiados detalles. Demasiado divertido. En cambio, concéntrese en memorizar la IDEA BÁSICA del algoritmo. Por qué el algoritmo hace lo que hace y luego ve si puedes ajustarlo a tu problema actual. La memorización es importante en el sentido de que uno debe conocer una gran cantidad de algoritmos útiles y cómo funcionan, pero este “aprendizaje estructurado” nunca debe interferir en el pensamiento libre.

Para ser honesto, creo que la inteligencia tiene dos partes: la habilidad y el conocimiento, y esta última requiere cierto grado de memorización.

Si tienes la habilidad, esa es una parte resuelta. Pero si realmente espera ser un maestro en algo, tendrá que abordar el segundo.

En primer lugar, quiero decir que las personas a menudo miran la capacidad de memorización bajo una luz despectiva. Fiesta porque en estos días Google lo hace tan fácil que no se valora demasiado. De hecho, incluso en mi infancia, el topper de clase solía ser rechazado por ser un “asaltante” inteligente. Pero tbh ya tiene la mitad del conjunto de inteligencia. Por supuesto, hay una forma correcta e incorrecta de hacer las cosas. Si solo memoriza sin comprender los conceptos, no es la forma correcta.

En cuanto a su problema, le diré dónde y dónde no ayudará la memorización. Se lleva a cabo en cualquier tipo de examen competitivo o incluso colocación; la memorización le dará velocidad. Es posible que tenga la habilidad y la capacidad para derivar la fórmula a una pregunta, pero si recuerda la fórmula, puede aplicarla de inmediato. Para su caso, será realmente útil si recuerda algunos algoritmos, como la ordenación rápida, la ordenación por fusión según su velocidad. Ya estás nervioso en una entrevista, sabiendo que “seguro” recuerdas el algoritmo, te hará sentir tranquilo, seguro y podrás concentrarte en la parte de la pregunta que nunca has visto antes.

Puedo ver a la mayoría de las personas respondiendo en contra de la memorización, pero creo que no pueden entender que puedes tener la capacidad de comprender el concepto y memorizarlo. Ambos deben ir de la mano 🙂

¿Incluso sirve el propósito? Yo creo que no. Los algoritmos están escritos para mejorar su pensamiento lógico. Esa es la razón por la que se les pregunta en las entrevistas. Por lo tanto, te sugiero que entiendas el concepto y el código lentamente. Tu competencia debe ser contigo mismo y con nadie más.

Sí y No ambos … necesita memorizar la idea básica de un algoritmo por qué se usa, en qué situación es mejor y en qué casos no funcionará correctamente y NO, no necesita recordar su implementación en cualquier idioma en particular o cualquier otro …
Debe comprender la importancia de algoritmos particulares.
Los algoritmos son importantes para cada tarea de nuestras vidas …
Para saber cómo se utilizan los algoritmos en nuestra vida diaria, debe leer esto y con esto espero que pueda descubrir su importancia en nuestra vida …
Algoritmos y su importancia en programadores Vida | CodinGeek

Puedes, pero realmente no te ayudaría mucho en la codificación. Podría sacarte buenas notas en los exámenes de teoría universitaria.

Los algoritmos deben practicarse con el tiempo tanto que comprenda la lógica tan bien que pueda

More Interesting

¿Qué opinas de una educación en informática donde el profesor de 'algoritmos y programación' ni siquiera sabe acerca de la notación Big O?

¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?

¿Cuál es el peor caso de complejidad temporal de BFS (cuando se busca un elemento), sin almacenar los estados visitados?

¿Qué algoritmo puedo usar para encontrar el camino más corto en un sistema de variante de tiempo?

Cómo explicar el algoritmo de clasificación de inserción a un niño de 10 años

¿Cuáles son las aplicaciones prácticas de los diversos algoritmos que estudian los estudiantes de CS en Data Structures?

¿Es válido este intento recursivo de bubbleort o se puede optimizar?

¿Cómo inserta este código un nuevo nodo en un árbol binario?

¿Qué es una matriz?

¿Cómo funcionan los algoritmos de clasificación en un sistema distribuido grande?

¿Cuántas puertas lógicas se necesitan para multiplicar dos enteros de n bits?

¿Es posible implementar dos pilas usando una matriz?

En la tercera edición de 'Introducción a los algoritmos', ¿por qué comprar acciones es un problema de subarrays máximos?

¿Cuáles serían las mejores entradas para un algoritmo de red neuronal que intenta predecir el mercado de valores?

¿Cuál es la diferencia entre el algoritmo codicioso y la programación dinámica? ¿Es un programa codicioso un subconjunto de programación dinámica?