¿Cómo debería uno comenzar a aprender programación con algoritmos avanzados?

Compañías como google, amazon y fb generalmente buscan personas con la capacidad de resolver problemas complejos de programación. Una de las características de un buen programador es que conoce muy bien la estructura de datos. Al ser un programador, tiene que lidiar con problemas complejos que requieren un conocimiento profundo del algoritmo y la estructura de los datos. Además de esa lógica también es importante lo que se puede dominar practicando.

Creo que debería comenzar con una estructura de datos básica y luego avanzar hacia una estructura de datos compleja. Los árboles binarios es uno de los temas más candentes en la programación de entrevistas. Teniendo conocimiento de la estructura de datos, ahora puede avanzar hacia algoritmos y algoritmos avanzados. Desde mi punto de vista, puedes continuar con php mientras aprendes estas cosas. De hecho tu experiencia en php te ayudará mucho.

Como usted sabe, para convertirse en un buen programador debe tener conocimientos de algoritmos y estructura de datos. Entonces permítame darle algunos enlaces a recursos que le ayudarán a descifrar entrevistas.

Quiero aprender el algoritmo básico de antemano, ¿por dónde empezaré?

Hackeando una entrevista de Google

Cracking the Coding Interview (Libro)

Diseño avanzado de algoritmos Otoño 2015

Algoritmos avanzados

Recomendaría un libro: Introducción al algoritmo (Compre Introducción a Algoritmos Libro en línea a precios bajos en la India). Hay una buena especialización en coursera, que comienza con lo básico y termina con algoritmos avanzados. Estructuras de datos y algoritmos | Coursera

Una de las cosas más importantes es la práctica, el conocimiento de la estructura de datos y los algoritmos no tiene valor hasta que se implementa. Intenta resolver problemas en codechef u otras plataformas.

¡La mejor de las suertes!

Yo recomendaría revisar lo siguiente:

  1. PHP es más similar al lenguaje C.
  1. Por ejemplo, debería encontrar strlen () en los lenguajes PHP y C.
  2. Es mejor aprender Python, C ++ o Java
  1. Pero no es obligatorio, los algoritmos no están relacionados con los lenguajes de programación, el único beneficio que obtiene es que ahorra tiempo al cambiar a esos idiomas, por lo que esto podría ser un poco ventajoso para otros que sí lo tienen, pero es solo un poco, sin embargo, para usted para progresar más rápido, Python podría ser la mejor manera de seguir adelante. Ver: Respuesta de Manohar Reddy Poreddy a ¿Puedo aprender Python & C en forma simultánea si no sé nada sobre programación de computadoras?
  • Para los algoritmos, vea esto, para una vista de pájaro: la respuesta de Manohar Reddy Poreddy a ¿Qué algoritmos debo saber para convertirme en un buen programador?
  • Top 10 de algoritmos y estructuras de datos para la programación competitiva – GeeksforGeeks
    1. Geeks for Geeks no es óptimo, pero como es usado por muchos, al menos tiene una explicación de la mayoría de DS & A
  • Lo más importante para descifrar la entrevista es obtener una entrevista, lo que en sí mismo es un gran problema.
    1. Reanudar desempeña un papel importante.
    1. No más de 3 páginas.
    2. Las contribuciones de Github, si las hay, ayudarán al entrevistador a ver su código, de esta manera obtiene confianza para llamarlo
    3. Lo que te hace diferente de los demás, de manera positiva, debería estar en la 1ª página.
  • Aparte de lo anterior, si no recibe una llamada, puede hacerlo a continuación:
    1. Conozca más DS & A
    2. Trate de ser referido a través de un amigo para hacer notar su currículum. Esta es una manera un poco mejor, sin embargo, no hay ninguna garantía de que la entrevista sea aún una entrevista.
  • Lo que es más importante son los puntos 1) a 4. b. yo)
  • No hay necesidad de traicionar a tu php de amor :). Debes comenzar desde lo más básico. Solo consulta el libro de Cormen (Introducción a los algoritmos). No recomendaría leer un libro de autores locales sobre algoritmos. Empieza y practica el código y crea tus manos Sucio con el código. Ir a través de las estructuras de datos una vez más e implementar su diccionario de pila de árbol de pila y Hashtables. Después de implementar estas estructuras de datos puede ir a hackerank, codechef y resolver el problema allí.

    A medida que resuelvas los problemas, se aumentará tu confianza.

    Bueno, no me preguntes qué hago: p?