¿Qué sería lo primero que hacer si quieres aprender a programar?

(Muchas buenas respuestas ya pero A2A.)

Sugeriría pensar en un problema divertido para resolver y, a partir de ahí, elija un lenguaje que pueda usar para implementar una solución a ese problema. Absorberá lo que está aprendiendo más fácilmente si se divierte trabajando en algo que le interesa, que puede ayudarlo a superar esos obstáculos iniciales de la curva de aprendizaje.

Si está eligiendo problemas simples (probablemente), entonces podría usar Javascript / HTML / CSS ya que tiene acceso a un navegador. (Si lo desea, las páginas web pueden ejecutarse de manera independiente, aunque la configuración de un servidor web le brinda más opciones para expandirse a un segundo idioma de back-end y agregar un componente de base de datos en el futuro).

Una vez que comprenda los conceptos básicos de la programación, puede comenzar a tomar más en serio el buen diseño del programa, etc. Pero al principio, el paso más importante es comenzar.

Suena gracioso decir, pero … consigue una computadora. Lo hace mucho más fácil. Nunca me gustó usar un punzón de tarjeta. Un problema mucho más difícil, que no se puede resolver con unos pocos cientos de dólares, es elegir un lenguaje de programación. Si lee las otras respuestas, verá que se recomienda Javascript, Racket, Python, C y C ++. Me sorprende que nadie de este mismo momento haya sugerido a Ruby o Haskell. Por lo tanto, elegir un idioma es probablemente lo primero que debe hacer si desea aprender a programar. Lo recomiendo encarecidamente sobre la sugerencia de que aprenda algoritmos.

Este es un problema no trivial. Hay pocos temas, si es que hay alguno, más debatidos por los programadores, y la cantidad de calor gastada podría alimentar a una ciudad pequeña indefinidamente. Permítame agregar mi voto a la pila de Python, pero
eso depende de usted. Como decían en los días de los vagones cubiertos, “Elige tu rutina con cuidado, estarás allí durante las próximas veinticinco millas”.

Estoy muy en desacuerdo con la sugerencia de que primero aprendas algoritmos. Con mucho, la mejor manera de aprender programación es el enfoque práctico, con pequeños problemas. Recomiendo aprender a escribir un programa que simplemente lea algo, cualquier cosa, de un archivo, y luego lo escriba en otro, sin cambios. Luego puede crear programas útiles útiles con cambios relativamente menores. Un programa para agregar números de línea a las líneas de un archivo es extremadamente fácil, pero sorprendentemente útil. Solo un poco más difícil es el inverso, un programa para quitar esos números de línea y dejar todo lo demás (como los caracteres de tabulación iniciales) completamente sin cambios.

Casi todos los programas simples que las personas dan son programas de línea de comandos, y la mayoría de los usuarios de computadoras piensan que la línea de comandos es una provincia de dinosaurios y geeks. Por lo tanto, podría ser mejor entrar de inmediato en el mundo de la programación de la interfaz gráfica de usuario. Creo que el Tkinter de Python es el más fácil de usar. Consulte http://tkinter.unpythonic.net/wi … para comenzar, y http://tkinter.unpythonic.net/wi … para ver un ejemplo de un bucle de programa simple. Supongo que hay equivalentes para otros idiomas.

Un buen lugar para comenzar es Javascript. Puede escribir programas en cualquier navegador web convencional moderno en una computadora de escritorio Windows o Mac o Linux. El navegador web tiene una ventana de consola donde puede ingresar el código y ejecutarlo. También tiene herramientas de prueba como ingresar al código e interrogar datos llamados variables. No le cuesta nada y no hay nada que instalar. Un inconveniente es que los materiales en Internet pueden suponer que está creando una página web usando Javascript, por lo que necesita filtrar los materiales para simplemente programar Javascript sin procesar. Pero seguir sabiendo cómo crear una página web mínima para adjuntar archivos de código Javascript será un beneficio para un aprendizaje más extendido.

Desde un punto de vista de aprendizaje de programación pura, una vez que tenga los principios básicos de variables, escritura de expresiones y control de flujo del programa (condiciones, bucles y funciones) querrá pasar a otros lenguajes y herramientas de desarrollo para ellos.

¡Entonces su navegador web de escritorio favorito (FF, Opera, Safar, Chrome, IE) y comience ahora mismo!

Me gusta el libro de David Sawyer. Tiene una sección de Javascript puro que muestra la página web mínima para aprender. JavaScript y jQuery: The Missing Manual: David Sawyer McFarland: 9781491947074: Amazon.com: Books También incluye JQuery si desea aprender a aplicar Javascript en una página web.

Si es un principiante, entonces los tutoriales en video son la mejor manera de intervenir. Luego, después de concentrarse en ello y después de comenzar a obtener el flujo de la línea básica de códigos, puede leer libros o incluso unirse a clases. Pero sin un poco de conocimiento propio, no vale la pena gastar dinero en programación.
Después de obtener todo acerca de su programa “Hello World” (primer programa), debe tomarse un descanso y comenzar a invertir su mente y tiempo en implementar lógicas (matemáticas), cómo y qué pasos están involucrados en la resolución de un problema (sin programación) luego regrese e intente escribir códigos para el mismo problema y ahí está, ahora es un programador.

Y el lenguaje de programación nunca es un límite, pero se supone que C / C ++ es el mejor lenguaje para comenzar

PD: respondí lo mismo para otra pregunta y la copié y pegué aquí para encontrar esto relevante
¿Cuál es la mejor manera de aprender programación?

Juega con legos. No, eso no es una broma o sarcasmo.

El 90% de la programación es la resolución de problemas. Tienes algo que debes hacer. Se divide en partes más pequeñas hasta que sea manejable.

Si desea aprender semántica para un idioma, pero un libro “Introducción a”. Si desea aprender a programar, debe comenzar a pensar como un solucionador de problemas y un científico. Tome las cosas comunes que hace todos los días y divídalas en pasos. Sigue bajando los escalones hasta que ya no puedas más.

Un curso intensivo en análisis de algoritmos o geometría analítica, estadística o álgebra lineal también es útil, como lo es prácticamente cualquier asignatura optativa de ciencias en una universidad, siempre que sea una ciencia dura como la física o la química.

La transferencia de habilidades.

Recomiendo recoger los Programas de diseño disponibles en línea de forma gratuita y es una excelente introducción.

Utiliza DrRacket: el entorno de programación de raquetas, que está diseñado para hacer que los procesos de aprendizaje sean lo más fáciles posible al comenzar con un lenguaje simplificado que luego se ampliará con usted hasta llegar al Esquema completo.

También vale la pena investigar en Realm of Racket por los mismos autores.

Para aquellos que realmente comienzan, depende de dónde se sepa cómo aprender. No obtuve mucho de los libros para principiantes, pero cuando conseguí un programa (un juego de empate en Commodore PET en BASIC), despegué. Fue emocionante poder adivinar lo que significa y cambiar las cosas, por ejemplo, hacer que el luchador de corbata tenga mi nombre. Eso es lo que me hizo comenzar (quizás tenía 6 años). Más tarde compré una computadora Atari con una referencia de comandos BASIC. Esa referencia me ayudó a decir qué pasos fueron posibles para resolver cualquier problema.

Lo primero que necesita en la programación es la habilidad para resolver problemas. Siempre hay problemas como “necesidad de pedirle a alguien que haga referencia más tarde”. Puedes practicar tomando cualquier situación durante el día y pensar cómo una computadora podría manejarlo. Tome documentos de referencia que serían fáciles de encontrar para los idiomas más populares en línea para ver cómo usar los pasos que puede hacer la computadora. Busque el código fuente en lugares como github, sourceforge, bitbucket. Python.org está diseñado para ser un buen lenguaje que no complica las cosas, aunque acostumbrarse a C / C ++ la programación orientada a objetos era más difícil acostumbrarse. Quiero probar este tutor de Python en Codeacademy

Sin embargo, no puedo olvidar lo importante:
A menudo, el problema de no aprender los principios correctos es que hay formas ilimitadas de hacer lo mismo, ¡así que no te acostumbres a escribir algoritmos de la manera más difícil! Ahí es donde necesita información sobre qué algoritmos ya están optimizados en las bibliotecas estándar. Tenga en cuenta que en la fuente de ejemplo que encuentre puede haber algunas buenas ideas sobre la forma de pensar (o puede encontrar algunas ideas terribles en las que podría pensar en una mejor manera)

Soy una persona muy racional, así que una vez que se establece una meta, empiezo a hacer un plan.
Haga preguntas a las personas que ya enfrentaron esta experiencia, que usted ya tuvo.

¿Qué información necesito para lograr esa habilidad? (Aquí hablo en términos de conocimiento pasado que puede usar o cosas nuevas que puede aprender / necesitar de tal manera que le haga comprender la programación más fácil).

¿Quién es la mejor fuente (en términos de aprendizaje eficiente a largo plazo) que me puede proporcionar? Maestros: si crees que la interacción humana se adapta mejor a ti, o la gran Internet: tutoriales, profesores en línea, foros, recursos completos. Pero debe ser selectivo con respecto a internet.

O puede hacerse amigo de alguien que trabaja en un lenguaje de programación específico y unirse a él cuando está haciendo diferentes tareas, pregúntele mucho.
Por ejemplo, si quiero aprender un nuevo lenguaje / tecnología de programación, no sé si eres un principiante en programación, solo necesito una tarea de alguien, ¿hacer esto? Esta es una situación muy común cuando tengo que hacer mis proyectos escolares y no sé nada. Entonces empiezo a google.

Si nunca ha comenzado a pensar en comenzar a pensar en conceptos de programación, el lugar indicado es Code.org. Está programando lecciones dirigidas hacia los 8 años en adelante. No aprenderá un lenguaje “útil” de inmediato, pero comenzará a hacerle pensar de la manera correcta.

Lea una “Introducción a la programación en?” libro donde? puede ser C, Java, Python o cualquier cosa que desee.

Comience desde C / python y vaya hasta Java y C #.