Quiero aprender algoritmos, pero no tengo amigos que estén interesados ​​en él. ¿Cómo aprenderlos de manera efectiva por mi cuenta?

OK, veo tu problema. Lo único que necesita para aprender algoritmos es una computadora portátil, una conexión a Internet y una mente lista para aprender. La mejor manera de aprender algoritmos es probar diferentes problemas. Después de todo, los algoritmos no son más que herramientas para resolver problemas. En primer lugar, recomendaría este sitio GeeksforGeeks | Un portal informático para geeks. Trate todos los artículos dados aquí como problemas resueltos.

Primero mire el problema e intente hacerse una idea de la solución. Si es un principiante, intente escribir los programas primero en papel y lápiz (eso es lo que se espera que haga en una entrevista técnica).

En segundo lugar, si se siente cómodo con el problema y su solución. Intente resolverlo en una computadora local e intente desarrollar todos los casos de prueba posibles. (Esto también es algo que se espera que haga en una entrevista técnica)

En tercer lugar, si no obtiene la solución, puede omitir el problema y volver a solucionarlo más tarde. Sin embargo, si está completamente desconcertado, vea la solución e intente obtener el enfoque de la solución. Ahora puede intentar codificarlo. La solución de código completo debe buscarse solo cuando no le quede otra opción. Leer una solución completa realmente puede ayudarlo a aprender nuevas técnicas para abordar otros problemas nuevos. Sin embargo, hacerlo con demasiada frecuencia lo inhibirá de desarrollar un proceso de pensamiento que sea más importante que la solución real del problema . Recuerde que nunca podrá conocer todos los métodos posibles para resolver todos los posibles problemas que pueda enfrentar mientras codifica.

En cuarto lugar, una de las cosas más importantes que debe aprender es saber cómo analizar su código de espacio y tiempo. Cada vez que codifique algo, intente calcular su complejidad de tiempo.

En quinto lugar, trate de pensar en formas en que podría disminuir la complejidad del tiempo de los algoritmos. Siempre es un ejercicio útil descubrir tantas formas de resolver un problema particular como sea posible. Para este primer recurso al forzamiento bruto y luego avanzar hacia arriba.

Una vez que haya resuelto una buena cantidad de preguntas de los temas comunes, es posible que desee

sumérjase en la codificación competitiva. En este caso puedes probar Codeforces. Este es el mejor sitio para explorar los rincones de la codificación competitiva. Pero precaución: la codificación competitiva no es pan comido, el progreso estará plagado de dificultades. Hay muchos otros sitios que son increíbles para la codificación competitiva. Pero no voy a entrar en esos detalles porque es suficiente hacer religiosamente el sitio mencionado anteriormente. No es necesario ser un gran codificador competitivo para ser un maestro en algoritmos. Sin embargo, [matemáticas] [/ matemáticas] alguna exposición a la competencia la codificación es generalmente requerida y recomendada [matemáticas]. [/ matemáticas]

Ahora es posible que desee utilizar su conocimiento del algoritmo y la estructura de datos para obtener un excelente trabajo u oferta de pasantía. Para esto, se le pedirá que aparezca en entrevistas que se llevan a cabo en diferentes campus universitarios. Para estas entrevistas, debe profundizar en las preguntas típicas de la entrevista. Sitios como LeetCode Online Judge y LintCode – Home son maravillosos en este sentido. Otro gran sitio es la preparación de la entrevista de codificación de forma fácil. Incluso la práctica | GeeksforGeeks tiene una buena variedad de preguntas. Pero hay que tener en cuenta que aunque el conocimiento de las estructuras de datos y los algoritmos es una habilidad necesaria para una entrevista de software, puede que no sea la condición suficiente. También debe estar bien versado en otras materias basadas en ciencias de la computación. Además [matemáticas] [/ matemáticas], incluso si no está interesado en codificar entrevistas, estos sitios le proporcionan problemas de entrevistas frecuentes (preguntas de las principales empresas como Facebook, Amazon, Google y Microsoft) que son algorítmicamente

estimulante.

Ahora llegando a lo que no debes hacer. No lea un libro ni siga una serie de conferencias en video sin entrar en el código. Hojear un libro de texto tratando de obtener una lógica vaga del algoritmo no ayudará . Debes codificarlo.

No intentes codificar todas tus tareas en lenguaje C (a menos que seas un gran programador). C ++ o Java o Python pueden ser más fáciles. Puede usar sus bibliotecas para hacer que su vida de programación sea un poco más fácil.

PD: Soy un estudiante universitario de TI y voy a aparecer para entrevistas técnicas. Este es un resumen de las técnicas que he encontrado útiles para un codificador de intelecto promedio como yo.

Hay muchos amigos para ayudarte a aprender algoritmos por tu cuenta, permíteme sugerirte algunos nombres:

1. Puede comenzar con el libro Introducción a los algoritmos (libro de Cormen, Leiserson, Rivest y Stein)

2. También te gustaría escuchar a uno de los escritores del libro que acabo de mencionar Video Lectures | Introducción a los algoritmos (SMA 5503) | Ingeniería Eléctrica e Informática | MIT OpenCourseWare

3. También puede visitar Coursera para comprender mejor los algoritmos, y si va a seguir los videos de la Universidad de Princeton en el mismo sitio web (sí, Coursera), también podrá aprender los algoritmos en lenguaje Java.

4. También hay posibilidades de que sigas teniendo problemas con las implementaciones, mi sugerencia será GeeksforGeeks. En serio, ayuda mucho.

5. Para implementar los algoritmos, también puede dirigirse a Sphere Online Judge (SPOJ) o CodeChef.

Para aprender sobre algoritmos que no necesita amigos interesados ​​en la programación, solo debe tener una computadora y un deseo de construir cosas geniales y automatizar cosas para facilitar la vida.

Comience a aprender algoritmos tomando uno de los MOOC enumerados. El MIT MOOC es un poco avanzado y necesita algo de experiencia en codificación, para un principiante es mejor comenzar con el curso de Stanford.

Stanford: Algoritmos Parte 1

Stanford: Algoritmos Parte2

Introducción a los algoritmos

Feliz aprendizaje !!

Hay una serie de buenos sitios web GeeksforGeeks | Un portal informático para geeks Concurso de programación, concurso de programación, programación informática en línea, etc.

Siempre puedes aprender y practicar los problemas desde allí. Todo el mundo está ahí para discutir contigo. Puede discutir sobre Desbordamiento de pila.

Hay un dicho … “Si quieres hacer algo grandioso tienes que caminar solo …”. Bueno, creo que esta es tu motivación, amigo mío. Si eres una persona con experiencia en informática / tecnología de la información, Algorithms es uno de los más importantes para tu carrera. Así que tienes que lidiar con eso lo suficientemente bien, incluso si no tienes muchos amigos de ideas afines. No voy a estudiar cómo estudiar algoritmos, pero simplemente te diría que conoces tu propio bien mejor que nadie, así que actúa con prudencia.
Vaya allí, obtenga un libro, un cuaderno y una computadora portátil con acceso a Internet. Tal vez incluso puedas ser una motivación para que tus amigos empiecen a hacerlo. Si no, todavía tienes una razón mayor para hacerlo. Carrera.

Coursera.org
edx.org
Únase a cualquier curso de algoritmos y allí encontrará todo el mundo esperando que sea su amigo.
Había aprendido algoritmos de edx e hice muchos amigos allí.

Cuando comencé, solo conocía a 1 programador competitivo. Pero casi no he recibido ayuda en absoluto. Acabo de competir por el progreso un poco todos los días. Funcionó. Su respuesta sobre cómo aprender algoritmos está aquí en este enlace.

Espero que eso ayude.

La mejor de las suertes.