¿Cuál es la mejor manera de comenzar a programar para un adolescente?

Los lenguajes de programación se utilizan para escribir aplicaciones de software. Algunas lenguas son algo específicas del dominio; otros son de propósito general. Por ejemplo, PHP es específico para el desarrollo web del lado del servidor : la aplicación web está alojada en un servidor web y el navegador web presenta la interfaz de usuario en el lado del cliente. PHP no es realmente usado para nada más.

JavaScript es similar al desarrollo web , pero aquí se puede usar tanto en el lado del cliente (Angular / React / Ember / etc.) Como en el lado del servidor (Nodo / Express). Fuera de la web, JavaScript no es particularmente popular porque tiene que competir con tantos otros buenos lenguajes … aplicaciones de servidor: Java, Python, C #, PHP, Ruby, Go, etc .; móvil: Java para Android y Objective-C / Swift para iOS; escritorio: Java con JavaFX, Python con PySide, C ++ con Qt; juegos: C ++, C #, Java; IoT: C, Java, Python, Perl. Básicamente, JavaScript enfrenta demasiada competencia lingüística.

De los tres que mencionaste, solo Python es verdaderamente de propósito general . Se utiliza para casi todo . Se utiliza para la computación numérica y la ciencia de datos. Se utiliza para el aprendizaje automático y el procesamiento del lenguaje natural. Se utiliza para robótica e internet de las cosas. Se utiliza para servicios web, backends de juegos, gestión de operaciones, animación, almacenamiento y procesamiento de medios, neurociencia, sistemas de pago, infraestructura de telefonía … lo que sea. Esta es la razón por la que Python es el segundo lenguaje de programación más popular del mundo (después de Java).

Para los principiantes en programación, siempre recomiendo esta respuesta: la respuesta de Richard Kenneth Eng a ¿Por qué debo aprender a programar y qué idioma debo aprender?

  1. HTML y CSS no son programación. HTML es contenido. CSS es presentación.
  2. “Estás en el proceso de …” No veo “programación” en la lista. Los “usos prácticos de diferentes idiomas” no lo son, la programación es. Deje de aprender toneladas de lenguajes y comience a aprender programación: use algoritmos y estructuras de datos. (No, no escribirá el código; la programación se enseña en inglés. Y no, no puede hojearlo y decir que lo ha aprendido; le tomará aproximadamente 6 meses si lo estudia, más si lo hace. no. Aprender a programar no es divertido, no se supone que sea, es un trabajo duro.
  3. Si piensas analíticamente, encontrarás que el libro tiene sentido bastante rápido. Pero … si piensas de manera lineal, como lo hace la mayoría de la gente, no vas a aprender a programar. No, no “no aprenderé a programar de esa manera”, no aprenderé a programar en absoluto. La programación es analítica, no lineal. Y cómo tu cerebro funciona se decidió mucho antes de que nacieras. Entonces, si tienes un cerebro lineal, encuentra una línea de trabajo que necesite un pensamiento lineal. (Es como “pensar” en ti mismo 6 pies de altura cuando tienes 4 pies de altura. No puedes. Puedes pensar que tienes 6 pies de altura, al igual que puedes pensar que eres un programador, pero aún eres un 4 pies de altura no programador.)
  4. Una vez que haya terminado Algorithms and Data Structures, obtenga las listas de sintaxis de PHP, Python y JS, y busque lo que necesita a medida que lo necesita. (Si escribe en varios idiomas todo el tiempo, nunca recordará si es substr () o substring (), estará golpeando a Google constantemente. Pero la programación no recuerda la sintaxis, es cómo hacer que una computadora resuelva El problema que le pidieron resolver con una computadora.)

Hay algunos conceptos que debes entender para vencer tus dificultades.

  • Cualquier lenguaje de programación que no pueda hacer esta simple operación matemática (1 + 1) no puede usarse para implementar nada interactuado.
  • HTML, CSS solo se puede usar para crear páginas web fijas, debe usar PHP o JS o Python junto con ellas para crear cualquier página web interactiva
  • Supondré que el punto de interactuar y no interactuar no está claro y trataré de simplificarlo.
  • Cuando creas una página web que el usuario no envía o solicita datos de ella, se llama una página web sin interacción. Como la mayoría de los sitios web personales. Simplemente escriba información sobre usted y su correo electrónico y algunos de sus trabajos e información adicional, y eso es todo. El usuario no hará nada allí excepto leer lo que escribiste.
  • Los sitios web interactuados son como Quora de Facebook o cualquier otro sitio web. El usuario debe enviar información (la pregunta que publica) y obtener datos del sitio web (las respuestas que obtiene) y esto no se puede hacer utilizando HTML y CSS solo porque no son un lenguaje de programación real.
  • Lea sobre cualquier lenguaje de programación antes de aprenderlo . Python, por ejemplo, se puede utilizar en muchas cosas, como desarrollo web y desarrollo de escritorio. Puede crear casi cualquier tipo de aplicaciones que se ejecutan en el escritorio.
  • Lea muchas fuentes, hay muchas aplicaciones de código abierto disponibles en Internet, solo léalas e intente citar ideas de la aplicación tantas como pueda.
  • Leer libros en nunca es suficiente, escribir código. Escriba un montón de código, intente convertir cualquier idea en una aplicación, incluso si es simple. Empújate hasta el borde
  • Otras personas han respondido a los usos de los diferentes idiomas que enumeró, y me uniré al coro de decir que Python es el único lenguaje de propósito general que ha enumerado allí. Todo lo que haya enumerado tiene que ver con la programación del lado del servidor o la creación basada en web.

    Aprendí a programar a la edad que tienes ahora, y la forma en que aprendí fue simplemente viendo las conferencias gratuitas de la universidad de una introducción a la clase de informática en línea, y luego creando un gran proyecto después. No recomendaría comenzar con un proyecto grande, ya que todavía no has aprendido buenos hábitos de codificación.

    En su lugar, comenzar con pequeños proyectos. ¿Puedes crear un convertidor Celsius-Fahrenheit? Impresionante, ¿puedes obtener datos del tiempo en línea? ¿No? Está bien, hay mucha gente en línea para responder sus preguntas, y hacer una búsqueda rápida en Google probablemente generará publicaciones en el foro de Desbordamiento de pila que tienen información relevante. Genial, ahora que lo has hecho, ¿puedes hacer que tu programa haga esto al comienzo de cada día? ¿No otra vez? Está bien, en este punto, deberías darte cuenta de que Google Search y Stack Overflow son tus buenos amigos. Ahora, ya que toda su salida está saliendo como texto plano, vea si puede hacerlo en una ventana presentable.

    Impresionante, has creado algo [marginalmente] útil, pero lo más importante es que has aprendido mucho en el camino. La lectura de libros es genial, seguro, pero mucho aprendizaje, especialmente para las cosas introductorias, se obtiene de manera más eficiente a través del simple acto de hacer. No se deje atrapar por “no tener suficientes ideas”, solo haga algo pequeño que le venga a la mente al principio. Después de que haya codificado lo suficiente, las ideas comenzarán a fluir y llegará al punto en el que tendrá que descubrir qué es lo que no debe codificar en lugar de averiguar qué codificar.

    TL; DR: Sigue aprendiendo, codifica todos los días, lee libros o artículos en línea, tiene objetivos poco realistas, sueña con el código, ¡eso es!

    ¿Sabes que una carrera en programación es realmente problemática?

    Creo que lo que necesitas es pasión , curiosidad y un ávido deseo de aprender , sin cesar. Si no tiene eso, es mejor que vaya al trabajo de administración (lo siento, no es estúpido, pero como programador desde hace casi 40 años, sé que las expectativas son altas y que el campo ha cambiado y que continuará cambiando a un ritmo increíble. ).

    No entiendo por qué están aprendiendo PHP y Python juntos, creo que al principio solo debe aprender un idioma de back-end, y como será su primer lenguaje de computadora back-end, recomendaría Python por su simplicidad. pureza y transparencia. No escribo que PHP es el peor lenguaje (es decir, ¡no empieces con él, lo usé durante 10 años!), Pero al principio debes aprender un gran lenguaje simple que te enseñe lo básico sin demasiadas excepciones. o efectos secundarios (no excepciones, excepciones 😉)

    Claramente, estás aprendiendo a crear sitios web, con HTML5 y, con suerte, CSS3, y como te encuentras en una ruta de aprendizaje, debes mantenerte con VanillaJS (Javascript puro) en lugar de confiar en los increíbles marcos de JS disponibles, para conocer la base, con Python para el Back-end si quieres ir de pila completa.

    Aprenderá cómo usar JS framework más tarde, después de que comprenda completamente JS y su poderosa expresividad.

    Una alternativa si desea ser más front-end es probar NodeJS y MongoDB, para centrarse en su conocimiento de JS / JSON, y creo que podría ser interesante dejar de lado el lenguaje de back-end real y los sospechosos habituales.

    Codifico desde finales de los 70, soy viejo pero no obsoleto (¡gracias Schwarzy!), Y creo que terminaremos rápidamente con los desarrolladores front-end que usan servicios de back-end que también están basados ​​en JS, ya sea comunicándonos con MongoDB (entre otros) o utilizando Framework o CMS que están basados ​​en Javascript o Javascript extendido (de hecho, estoy trabajando en el último en mi tiempo libre), por lo que la comprensión profunda de JavaScript (JS 6, ECMA-262 y evoluciones, etc.) y HTML5 + CSS3 son obligatorios, cualquier otra cosa es opcional!

    TypeScript [2] es solo una exageración para las personas que no conocen mejor y quieren que JavaScript se vea como cualquier lenguaje basado en herencia (la herencia puede ser mala, Interfaces, IoC y Aggregation salvaron al mundo OO de ahogarse por la falla total de C ++). ), no entendieron que la programación de OO podría expresarse de diferentes maneras y ¡vale la pena explorarlas todas!

    PD: Habrá que volver a aprender algo más tarde, cuando maduren, porque la primera vez que aprendemos algo lo entendemos mal, al menos yo (soy bastante tonto), y los años de volver a aprender ponen una perspectiva completamente nueva en cualquier La tecnología y las formas de utilizarla. Abrazar el cambio, abrazar la inseguridad!

    Cómo aprender a programar:

    • Hacer proyectos paralelos.
    • Compra y lee libros de programación.
    • Hacer proyectos paralelos.
    • Toma clases de informática.
    • Hacer proyectos paralelos.
    • Leer blogs de programación.
    • Hacer proyectos paralelos.

    para más: ¿Cómo aprendió a programar Feross Aboukhadijeh? Y si pudiera hacerlo de nuevo, ¿qué haría diferente? ¿Con qué idioma empezaría?

    Leer libros. Ver videos tutoriales. Prueba cosas y haz preguntas en IRC cuando te atasques. Pero antes de todo eso, pregúntate por qué quieres comenzar a programar. Si te apasiona, lo descubrirás por ti mismo.

    Juega con programas, diviértete con programas.