Tengo 16 años y estoy interesado en la programación: ¿dónde y cómo empiezo?

No hay suficiente información en la pregunta para proporcionarle la mejor respuesta posible.

¿Por qué quieres aprender programación?

  1. ¿Quieres participar en programación competitiva , por ejemplo, ACM ICPC?
  2. ¿Quieres construir sitios web y aplicaciones web ?
  3. ¿Quieres construir aplicaciones de escritorio ?
  4. ¿Quieres construir aplicaciones móviles ?
  5. ¿Quieres construir un sistema operativo ?

La respuesta a su pregunta depende de la respuesta de las preguntas mencionadas anteriormente. Déjame intentar guiarte hacia cada posibilidad. Para todas las cosas mencionadas anteriormente, debe aprender uno o más lenguajes de programación . Entonces tienes que practicar ese idioma todos los días para que sea fluido. Debes poder transferir tus pensamientos a tu código .

  1. “Quiero participar en programación competitiva”.
    1. Aprende un lenguaje de programación como C / C ++ o Java . Estos dos son aceptados en todas las plataformas de programación competitiva. Para un principiante, aprender lo hará cualquiera. Aprende el idioma leyendo libros como “Teach Yourself C ++” de Herbert Schildt. Escriba todos los códigos por usted mismo y ejecute los programas que se dan en el libro.
    2. Después de terminar el libro, comience a resolver problemas en las plataformas UVaOJ, LightOJ, Topcoder, Codeforces, Codechef, Hackerrank, etc. Hay muchos de ellos. Simplemente comienza a practicar en algún lugar. La sección de principiantes de LightOJ es buena. Sigue practicando
    3. Como ha estado practicando durante alrededor de 6 meses, ahora debería ir a aprender algoritmos y estructuras de datos . Hay muchos de ellos para aprender. La sección de tutoriales de topcoder te va a ayudar mucho. Sin embargo, si los encuentra difíciles de entender, solo busque el tema en google y encuentre los tutoriales que le gusten. Geeksforgeeks también es un gran lugar lleno de cientos de artículos. Aquí hay dos respuestas que te ayudarán.
      1. La respuesta de Bidhan Roy a ¿Qué es una lista de estructuras de datos que un programador competitivo debe conocer?
      2. La respuesta de Bidhan Roy a ¿Cuáles son algunos buenos sitios web para aprender estructuras de datos y algoritmos?
    4. La última fase es seguir practicando, aprendiendo cosas nuevas y participando en concursos con regularidad. Asiste a Topcoder, Codeforces, Codechef, Hackerrank de forma regular. ¡Continúa creciendo!
  2. “Quiero construir sitios web y aplicaciones web”.
    1. Hay dos partes principales en el desarrollo web. El front-end y el back-end. El front-end es la “página web” que ves en el navegador de tu computadora. El back-end es el programa que se ejecuta en el servidor que no se ve directamente.
      1. Para el desarrollo de front-end , necesita aprender HTML, CSS, JavaScript, etc., que se utilizan para construir la página web.
      2. Para el desarrollo de back-end , hay muchos lenguajes de programación del lado del servidor. Puedes aprender PHP, Java, Python, Ruby, JavaScript, etc.
    2. Utiliza HTML, CSS, JavaScript para construir las páginas web. Hay marcos frontales como bootstrap, angularJS, etc. que te ayudarán.
    3. Utilice el lenguaje del lado del servidor para codificar el back-end. Más adelante puede usar frameworks como Django, Spring, Laravel, etc.
    4. Dependiendo de si usa un marco o no, y del marco que use, es posible que necesite aprender sobre el lenguaje de consulta y la base de datos. Incluso si no necesita aprender el lenguaje de consulta, si el marco hace todas las cosas buenas por usted, aún debe considerar buscar en la base de datos y el lenguaje de consulta. Definitivamente ayudará.
    5. ¡Así que aprende y comienza a construir algo! Hay muchos recursos gratis.
  3. “Quiero construir aplicaciones de escritorio”.
    1. Para aplicaciones de escritorio, puede utilizar Java, Python, C ++, C #, etc.
    2. Aprende el idioma de algún libro o sitio web. ¡Construye la aplicación!
  4. “Quiero construir aplicaciones móviles”.
    1. Para Android, tienes que aprender Java .
    2. Google tiene sus propios tutoriales de Android que son lo suficientemente ricos. También puedes encontrar muchos tutoriales en youtube.
    3. Para ios, tienes que aprender Objective-C .
    4. ¡También hay muchos tutoriales disponibles en Internet para iOS!
  5. “Quiero construir un sistema operativo”.
    1. Esto es mucho más complicado que cualquiera de los anteriores. Tienes que estudiar muchas áreas de la informática para construir una. Entonces, por ahora, supongamos que no va a construir un sistema operativo.
    2. Sin embargo, aquí hay una idea aproximada de las cosas que necesitas saber si quieres construir un sistema operativo.
      1. Programación del sistema (muy probablemente utilizando C / C ++)
      2. Programación en lenguaje ensamblador
      3. Arquitectura de hardware
      4. Sistemas de archivos
      5. Gestión de la memoria
      6. Procesos
      7. ¡Mucho más!

Aquí hay una confesión sincera, sin embargo, no tengo mucha experiencia sobre las últimas 3 partes de esta respuesta. Así que solo traté de dar una idea basada en el poco conocimiento que tengo. También podría haber perdido cosas importantes. Hay muchos otros aspectos de la programación que no he mencionado aquí. Estos son los más populares.

¡Comience a realizar búsquedas en Google, comience a aprender, siga practicando y siga creciendo!

Primero, comienza con un buen lenguaje de enseñanza . Es una locura comenzar con un lenguaje industrial como Java, Python, JavaScript, C, Swift, etc. Los lenguajes industriales llevan una gran cantidad de equipaje que puede distraer a un principiante que debería enfocarse en aprender conceptos básicos de programación, NO en sus peculiaridades del idioma de partida. y rarezas.

En segundo lugar, para el idioma de enseñanza elegido, siga uno o dos tutoriales de idioma para calentarse. También puede echar un vistazo a la referencia del idioma para familiarizarse con el idioma, una vista de pájaro.

Tercero, realice una serie de ejercicios de programación, cosas como rutinas de clasificación, algoritmos de búsqueda, cálculo de números de Fibonacci, etc.

Cuarto, comienza a escribir pequeños programas para hacer tareas simples. Trabaja en tu camino hacia proyectos de software más grandes. Recuerda, la clave para aprender a programar es la práctica . Mucha y mucha práctica de escribir software.

Para ser honesto, no hay muchos buenos idiomas de enseñanza. Solo puedo pensar en Basic, Logo, Pascal, Scheme y Smalltalk. De estos, recomiendo altamente Smalltalk.

Por un lado, Smalltalk fue diseñado por Alan Kay y su equipo en Xerox PARC para enseñar programación a niños . Eso es un buen pedigrí.

Por otro lado, el lenguaje es sumamente simple y fácil de aprender. ¡Sólo tiene seis palabras reservadas! La sintaxis completa puede caber en una tarjeta postal.

Y, sin embargo, Smalltalk es increíblemente poderoso. Lea por qué Pharo podría ser el futuro del desarrollo de software.

Una vez que haya aprendido la programación de Smalltalk, es muy fácil seleccionar lenguajes posteriores como Java, Python y JavaScript. Eso es porque ahora tienes una base sólida.

Aquí hay algunos grandes recursos:

  • un tutorial agradable y suave – Aprende Smalltalk con el Profesor Stef
  • el Smalltalk más desarrollado – ¡Bienvenido a Pharo!
  • un libro gratis – Pharo actualizado por ejemplo
  • una guía de introducción para Pharo — Inicio rápido de Pharo
  • un MOOC (curso en línea abierto masivo) —Programación de objetos en vivo en Pharo
  • Algunos videos geniales – Smalltalk 4 You
  • un libro que me gusta (no basado en Pharo) – Smalltalk by Example
  • otro libro que me gusta (no basado en Pharo) – Programación de computadoras usando GNU Smalltalk
  • Algunos recursos adicionales – Recursos

Este libro (no gratuito) es mi favorito para aprender a usar Smalltalk para la programación orientada a objetos: Smalltalk, Objects, and Design, de Chamond Liu.

Yo mismo he publicado un montón de tutoriales de Smalltalk. Los últimos son:

  • Aprende a programar
  • Tetera: la programación web es fácil
  • Cómo utilizar el depurador Pharo

Buena suerte.

Tengo 46 años y acabo de volver a codificar (realmente no he jugado con el código desde el C64 en los 80). De todas formas; Lo mejor que he encontrado hasta ahora es codecademy.com. Puedes aprender los conceptos básicos de html, css, javascript; y algunas cosas más avanzadas … Es gratis registrarse; las lecciones son fáciles de entender; Y, puedes aprender a tu propio ritmo. Además, registrarse en GitHub también ha sido útil, ya que puedes echar un vistazo a otros programas, profundizar en ese código y descubrir cómo hacer que un programa realmente funcione. Buena suerte y diviértete programando!

Wow, como han cambiado los tiempos. Hace más de 38 años, cuando comencé, pasé incontables horas caminando a bibliotecas leyendo libros y revisando temas de la revista Byte y el Dr. Dobbs. Tuve que rogar para poder acceder y leer manuales de sistemas en grandes organizaciones que tenían computadoras antiguas.

Tuve que construir mi primera computadora personal como un kit de electrónica con una interfaz de algunas luces e interruptores.

Lo que me impulsó fue mi sueño de que una máquina realizara mi oferta. Para poder simular el mundo que me rodea y mi imaginación.

Comienzas con el deseo de que una computadora haga algo por ti. Persigues el “interés” que dices que tienes. Supongo que su “interés” no se extiende solo a la elección de una carrera “aceptable”.