Cómo aprender algoritmos y programación competitiva de manera rápida y efectiva cuando te estás haciendo viejo

Es posible que no pueda aprender tan rápido a su edad porque tiene otros compromisos (familia, etc.), pero eso no importa mucho. Simplemente significa que tendrá que seguir aprendiendo cada vez que pueda encontrar tiempo. Finalmente, su arduo trabajo dará sus frutos. Sin embargo, pregúntese si vale la pena sacrificar el tiempo dedicado a otras cosas en su vida. (No tiene que dedicar horas cada día … tal vez unas pocas horas a la semana, tal vez con semanas libres, pero sigue siendo un costo de tiempo).

Seguiría una progresión como esta:

  1. Mire los videos de la conferencia Introducción a los algoritmos.
  2. Obtenga un libro de preparación para entrevistas como Cracking the Coding Interview o Elements of Programming Interviews y practique con él.
  3. Simultáneamente, practique problemas de LeetCode, GeeksforGeeks, etc.
  4. Obtenga la programación competitiva 3 para aprender a resolver problemas de programación competitiva.
  5. Practique problemas de CodeChef, Sphere Online Judge, Google Code Jam, TopCoder, etc. Comience a participar en competencias en vivo.

Todo el tiempo, aprende lo que puedas. Revise los temas anteriores para asegurarse de no olvidar las cosas. Pase tiempo entendiendo en lugar de memorizar.

A medida que envejece, debe salir de la idea de que necesita aprender nuevas tecnologías “rápidamente” para competir con sus pares más jóvenes, pero en su lugar conocer y comprender los principios básicos detrás de toda la programación (específicamente métodos de código orientado a objetos).

Debe especializarse en un idioma y ser selectivo con los marcos de software con los que trata y que tienen un sentido intuitivo para usted. Nunca pienses que eres demasiado viejo o lento. Las mentes y los cuerpos jóvenes tienen la energía y las ideas frescas, las mentes más sabias saben dónde aplicar su energía y tienen la experiencia suficiente para saber qué ideas nuevas son novedosas y factibles y dónde aplicarlas.

Sobre todo, mantenga la codificación y, lo más importante, la arquitectura de los nuevos modelos de software. La realidad es que el desarrollo es más fácil hoy que en el ensamblador o en los días de puntero C / C ++. Construir desde cero o reinventar la rueda no es necesario cuando tienes bibliotecas de terceros que hacen mucho trabajo por ti y, a menudo, son una búsqueda de Google y hacen clic.

No siempre se trata de encontrar la respuesta correcta, se trata más bien de hacer las preguntas correctas para aclarar problemas y obtener soluciones definitivas.

La programación competitiva es como las ferias de ciencias. Son geniales para los estudiantes, te expones un poco a la ciencia, pero una vez que comienzas a hacer ciencia para ganas la vida, quieres jugar por apuestas más altas. Si la programación competitiva es un pasatiempo serio que desea perseguir, hágalo, pero creo que tendrá mucho más satisfacción a largo plazo para resolver problemas que la gente realmente se preocupa.

En cuanto a cómo hacerlo? Practicas, estudias las soluciones que otras personas han ideado, te abres camino a través de algunos libros de texto de algoritmos y repites eso durante varios años.

La edad no importa en absoluto, excepto que tiene más experiencia, autodisciplina, madurez y recursos. Si no puede aprender rápidamente con todas esas ventajas, no creo que la edad sea lo que lo detenga.

More Interesting

¿Qué es el algoritmo A * en inteligencia artificial?

Si pudiera romper el algoritmo RSA, ¿lo mantendría en secreto?

¿Por qué todos me dicen que aprenda la estructura de datos y los algoritmos si quiero obtener un trabajo de desarrollo de software?

¿Hay alguien que pueda responder esta pregunta?

¿Por qué el orden de selección no se denomina orden de intercambio?

¿Qué es lo más profundo que aprendiste al leer SICP?

¿Qué algoritmos debo saber para poder resolver la pregunta de Aprendizaje automático / Ciencia de datos de CodeSprint 5 en HackerRank?

¿Los ingenieros de software de Google, Amazon, etc. utilizan estructuras de datos y algoritmos en el desarrollo de aplicaciones en tiempo real?

¿Cómo se implementa std :: make_heap de STL?

¿Cuál es el algoritmo de tiempo polinómico de peor caso de más rápido crecimiento utilizado en la práctica?

¿Cómo podemos desarrollar un algoritmo para emitir juicios sobre casos legales en India?

¿Cuán específicamente la memoria de la clase de almacenamiento cambiará las arquitecturas, los ecosistemas (incluidas las opciones de lenguaje de programación) y los algoritmos para big data?

En el 8 rompecabezas, ¿por qué solo es posible alcanzar la mitad de todas las combinaciones posibles desde cualquier estado dado?

¿Hay algún buen sitio para aprender algoritmos / conceptos de programación todos los días (similar a la pregunta SAT del día)?

Cómo implementar consultas mínimas de rango bidimensional con una complejidad de O (1) por consulta