¿Qué debo aprender en programación?

Empieza a aprender con algoritmos y estructuras de datos. ¿Por qué? Comenzar desde el segundo párrafo . He escrito otra respuesta sobre cómo comenzar con algoritmos y estructuras de datos, especialmente para aquellos que conocen Java. Aquí está: la respuesta del usuario de Quora a ¿Dónde puedo aprender y practicar algoritmos en lenguaje Java?

Una de las tareas en los cursos que mencioné en esa respuesta es una búsqueda * con la que se escribe un programa que le da la solución a 8-puzzle dada la configuración inicial. ¿Qué pasa si el tamaño del tablero es grande?

Una cosa más, ya sabes el rompecabezas de Sudoku. No tu ¿Qué tal si escribes un programa que te da la solución cuando das una configuración inicial de la pizarra? Sudoku resolviendo algoritmos – Wikipedia. En lugar de resolver el tablero de Sudoku de 9 × 9, ¿qué hay de resolver NxN? ¿Qué tan lejos puedes ir?

¿Conoces el juego de la serpiente y las escaleras? Dada una configuración de tablero y un dado con n lados, ¿qué secuencia de movimientos me ayudará a alcanzar el final rápidamente? ¿Cómo se escala su solución cuando el tamaño del tablero y la cantidad de lados en los dados es grande?

Por eso deberías estudiar algoritmos y estructuras de datos. Es por eso que debes estudiar problemas conocidos a los que se puedan reducir. Por eso debes estudiar varias técnicas de diseño de algoritmos. También debe poder elegir la estructura de datos y la representación correctas para el problema dado.

Por último, no se preocupe mucho por aprender los lenguajes de programación. Los algoritmos y las estructuras de datos son agnósticos del lenguaje. Puede “implementarlos” en el idioma de su elección. Además de las estructuras de datos y los algoritmos, también debe aprender el poder de la abstracción, la arquitectura del software, los patrones de diseño, etc. para construir software de gran tamaño. Pero primero aprende DSA.

Debería aprender algoritmos y estructuras de datos si desea subir de nivel como desarrollador de software. Cuando los aprendas, debes aprender a usarlos en el desarrollo (o, mejor aún, escribir un programa que usará extensivamente algunos de los algoritmos que aprendiste) porque sin saber cómo usarlos básicamente significa que solo tienes conocimientos teóricos que son bastante inútiles en realidad. mundo.

La programación nunca puede aprenderse por completo, solo la mejora resolviendo diferentes tipos de problemas. Al final, se trata de resolver ciertos problemas, no de escribir código.

Un consejo importante, surf github. Explore las tareas que podrían hacerse usando lo que sabe sobre programación. Esto te ayudará mucho a evaluar tus conocimientos.

Lea sobre Estructuras de Datos y Algoritmos.

En C #, hay muchos componentes disponibles en la caja de herramientas, aprenda sobre ellos y cómo usarlos.

Escribe mucho código. Aprender sin practicar lo que aprendiste es inútil.

Soy un programador principiante. Me encanta resolver acertijos y hacer códigos eficientes, pero eso es todo lo que sé.

Te encantará esto:

  • Tendrá que tratar de aprender cómo resolver el mayor enigma de todos ellos, es decir, cómo escribir un programa sin rompecabezas. No creo que nadie lo haya resuelto todavía, incluso con millones de personas pensando en ello.
  • ¡Tendrás que aprender a escribir código eficiente en múltiples dimensiones! No, no me refiero a usar una versión 3D de Visual Studio 😀 Me refiero a “eficiente” en diferentes “ejes”: uso eficiente del procesador, uso eficiente de la memoria, comprensión eficiente por parte de los humanos, eficiencia para modificar (los pequeños cambios en los requisitos solo requieren un pequeño cambios en el código).

Debe familiarizarse con varios dominios de aplicaciones como web, móvil, juegos, IoT, aprendizaje automático, ciencia de datos, computación numérica, etc. El conocimiento específico del dominio es crucial para escribir aplicaciones en cada una de estas áreas. Para convertirse en una profesión, entonces, necesita tener experiencia en programación en varios dominios de aplicación.

Según su descripción, su principal objetivo es demostrar que su código es valioso, ¿verdad? Si es así, comience con juegos, cartas, ajedrez, etc. Especialmente el juego local o el juego de reglas locales. Conoces la regla, haces visible la regla, no compartes el juego hasta que realmente te guste.

Aplicación básica como gestión de archivos, memoria de voz, puede obtenerlos fácilmente. Después de tu arduo trabajo, te das cuenta de que las personas no tienen ningún interés en ello. Eso será muy dolido, he estado allí. Pero eso no va a pasar con los juegos.

Tal vez pueda comenzar haciendo algo útil para su computadora o su teléfono.