Si eres nuevo en la programación, considera unirte a un instituto de programación como Coding Blocks o Coding Ninjas. Inscríbase allí, asista a clases regulares, pregunte dudas, envíe tareas, participe en desafíos y competiciones y aprenda todo. Básicamente comprende todo lo que he indicado a continuación.
Si ya se ha introducido en algún tipo de programación en la escuela, entonces ya tiene una idea general de cómo se ve el código, cuál es el tipo de sintaxis adecuado, cuál es el flujo típico de un programa, etc. Así que todo lo que necesita hacer , es para recoger un libro de programación bien conocido (como Let Us C por Yashavant Kanetkar, o Java por E Balagurusamy) y comenzar a leerlo e implementar el código de lado a lado en su computadora. También busque en Internet cualquier tipo de consulta o ayuda con todo. Los foros como StackOverflow y GeeksforGeeks y Reddit tienen muchos problemas relacionados con la programación que la comunidad de programación responde y usted recibirá mucha ayuda allí.
Descargue un IDE (como Dev C ++, Code :: Blocks, Eclipse, Sublime, Atom, XCode, etc.) según el idioma que esté aprendiendo y codifique allí.
Una vez que haya terminado con el libro, debe acudir a un juez en línea como CodeChef, HackerRank o HackerEarth y comenzar a practicar problemas. Son compatibles con una gran cantidad de idiomas y dominios de problemas y puede comenzar fácilmente allí. Entra en la codificación competitiva para hacer de la programación un hábito. Participe en los desafíos semanales y mensuales y trabaje duro para resolver todos los problemas por usted mismo tanto como pueda.
- Tengo 17 años, y realmente quiero aprender a tocar el piano. ¿Donde debería empezar? ¿Es muy tarde para mi?
- ¿Por qué el sistema de Quora valora las vistas sobre upvotes? Mis respuestas con altos votos positivos tienen mucho más valor para mí, ya que siento que he marcado una diferencia.
- ¿Dónde debo aprender fotografía en Nueva Delhi? ¿Cuáles son los mejores institutos para principiantes para aprender fotografía?
- Cómo entrenarme para identificar notas absolutas sin notas de referencia
- ¿Alguien puede comenzar a aprender Big Data? ¿Hay alguna restricción?
Una vez que haya terminado con los problemas de implementación, necesita aprender acerca de las estructuras de datos. De aquí en adelante, sus libros de programación consistirán principalmente en algoritmos que debe comprender e implementar en cualquier idioma que esté aprendiendo.
La sintaxis o intuición básica es similar en la mayoría de los lenguajes de programación y, por lo tanto, si planea aprender otro lenguaje de programación relacionado, no será un gran problema. Implementará las estructuras de datos e intentará problemas de la misma manera que antes, solo que se verá algo diferente en diferentes lenguajes de programación.
Aprenda sobre el funcionamiento, así como la implementación de matrices, matrices en 2 D, vectores, listas enlazadas, árboles, árboles binarios de búsqueda, árboles AVL, gráficos, montones y mapas hash.
También aprenda algunos algoritmos de clasificación populares como MergeSort, QuickSort, HeapSort, InsertionSort, BubbleSort, SelectionSort y BucketSort o RadixSort.
Aprenda sobre las Complejidades de Tiempo y Espacio de un algoritmo, y cómo evaluarlas. Así es como podrá comparar dos algoritmos que resuelven el mismo problema, cuál es más rápido en qué condiciones, cuál es más eficiente (usar menos memoria), etc. Esto le ayudará a obtener más problemas directamente en los jueces en línea.
Lado a lado sigue implementándolos en tu computadora.
Luego vuelva a los jueces en línea y resuelva los problemas basados en la estructura de datos allí. Practica mucho. Diario. Participa también en competiciones.
Después de eso, continúe con la comprensión de algunos conceptos como la recursión y cómo resolver problemas mediante la recursión, el enfoque codicioso, el enfoque de dividir y conquistar, la programación dinámica y algunos algoritmos y problemas estándar, como BreadthFirstSearch, DepthFirstSearch, algoritmo KMP, algoritmo de Dijkstra, Floyd Warshall Detección de ciclos de Floyd, algoritmo Bellman Ford, algoritmo de Prim, algoritmo de Kruskal, multiplicación de cadena de matriz, multiplicación de matriz de Strassen, problema de KnapSack, problema de n-Queens, problema de vendedor ambulante, método de rama y límite, etc.
Abrirán tu mente y te harán rendir mejor y pensar fuera de la caja mientras codificas.
Tomará al menos 2 años dominarlo todo, pero al final todo vale la pena.
Otra forma de aprender a programar es recurrir a hackathons con un equipo que ya sabe programar. Aprenderás mucho más que lo básico aquí y probablemente te motive a ser un buen programador. Luego, puede comenzar a trabajar en Aprendizaje automático, IoT, IA, Visión artificial, tensorflow, redes neuronales, aprendizaje profundo, así como programación de código abierto y contribución en GitHub. Pero una vez más necesitas saber lo básico como se indicó anteriormente.
También es posible que desee obtener información sobre DBMS, desarrollo web, desarrollo de aplicaciones (Android o iOS o ambos), programación de front-end, programación de back-end o compiladores. Sigue de la misma manera que aprendiste anteriormente.
Nota: aprenda Python y luego continúe con C ++ o Java. También aprenda mucho sobre cómo usar las funciones y plantillas de C ++ STL. Busque discusiones siempre que esté atrapado en un juez en línea durante los problemas de práctica. Lo más probable es que encuentre el código completo o la parte de trabajo allí y tenga una idea de cómo implementar el mismo.