Saltar al contenido

D贸nde y c贸mo aprender programacion + primeros pasos para programar

Si eres nuevo en el mundo de la programaci贸n y el desarrollo web, tiene sentido empezar por ense帽arte a ti mismo usando todos los recursos gratuitos de aprender a programar online.

Aprovechando estos recursos mientras aprendes a codificar gratuitamente, puedes descubrir lo que te gusta y lo que no te gusta antes de invertir dinero en un determinado lenguaje de programaci贸n o conjunto de cursos.

Una vez que hayas pasado por suficientes lecciones de programaci贸n gratuita para encontrar esa direcci贸n, podr谩s canalizar tu pasi贸n para seguir aprendiendo a codificar en l铆nea de la manera m谩s eficiente.

Sin embargo, hay muchos recursos, clases y libros de programaci贸n gratuitos entre los que puedes elegir.

驴C贸mo sabes cu谩les son los mejores lugares para aprender a programar online?

Bueno, 隆he investigado un poco para ahorrarte tiempo! Aqu铆 hay 71 de los mejores sitios web para aprender a programar gratuitamente, desde simples tutoriales de programaci贸n hasta cursos completos de programaci贸n en l铆nea.

Para facilitar las cosas, he desglosado estos recursos de aprendizaje de c贸digo por temas.

Utiliza la tabla de contenidos que aparece a continuaci贸n para dar un salto.

Tutoriales y cursos para aprender programaci贸n online en general

驴Eres un friki de la inform谩tica al que le gusta la parte t茅cnica del desarrollo web?

驴Te gusta tomar el control de las cosas, mientras conviertes tu idea de la aplicaci贸n o la idea del sitio web en realidad?

驴Eres un blogger al que le gusta llegar a la gente a trav茅s de un contenido de calidad y crear una interfaz de sitio f谩cil de usar?

Si tu respuesta es 芦s铆禄 a cualquiera de las preguntas anteriores, entonces probablemente necesites aprender a escribir c贸digo por tu cuenta.

Atr谩s quedaron los d铆as en los que se cre铆a que la programaci贸n era s贸lo para los absolutos empollones de la inform谩tica.

Ahora, cualquiera puede participar en el proceso de escribir c贸digo para sus propias creaciones, como sitios web, aplicaciones para m贸viles y software.

Sin embargo, puede que todav铆a te preguntes por qu茅 necesitas aprender a programar cuando puedes contratar a programadores o desarrolladores para que hagan el trabajo por ti

Bueno, para empezar, reduce tu dependencia de los programadores a tiempo completo.

Y, si te conviertes en un experto en programaci贸n o programaci贸n, puedes dejar de contratar programadores o prescindir de un programador para ayudarte a ahorrar costos.

Adem谩s, aunque s贸lo aprendas los fundamentos de la programaci贸n, tu equipo de desarrollo web no podr谩 enga帽arte en nada.

Pero, la raz贸n m谩s importante para aprender a programar es que le permitir谩 trabajar en su visi贸n, en lugar de explicar su visi贸n a otra persona (un programador) que no siempre puede hacer justicia a sus ideas creativas.

Por lo tanto, est谩 claro que debes aprovechar cualquier herramienta de programaci贸n extremadamente simple que te ayude a aprender a programar de forma gratuita.

En este art铆culo, echamos un vistazo m谩s de cerca a los 20 incre铆bles recursos para aprender a programar gratuitamente, todo lo que necesitas es acceso a una conexi贸n a Internet y un buen ordenador port谩til.

El objetivo es revelar las caracter铆sticas que ofrece cada uno de los 20 recursos de aprendizaje de c贸digo libre para animarte a empezar a codificar por tu cuenta.

1. Codeacademy

La Codeacademy es donde la mayor铆a de la gente que es nueva en el mundo de la programaci贸n se inicia.

En su plataforma, puedes aprender a programar entre otras habilidades t茅cnicas.

Su reputaci贸n es bien merecida.

La Codeacademy gira en torno al aprendizaje interactivo; es decir, lees un poco, tecleas tu c贸digo directamente en el navegador, y ves los resultados inmediatamente.

Como su nombre lo indica, este recurso de programaci贸n te ense帽a habilidades t茅cnicas y de programaci贸n a trav茅s de una amplia gama de cursos.

El curso cubre los siguientes temas:

  • Desarrollo de sitios web (incluyendo la programaci贸n interactiva)
  • HTML, CSS, PHP, Python y m谩s
  • Ruby y Ruby on Rails
  • AngularJS, Java, JavaScript, jQuery y as铆 sucesivamente
  • SQL y Git
  • La l铆nea de mando

M谩s de 25 millones de personas han aprendido o est谩n aprendiendo a codificar usando esta gran plataforma.

Lo bueno de la Codecademy es que la plataforma te da la oportunidad de aprender y entender el c贸digo desde cero.

Codecademy es una plataforma de aprendizaje en l铆nea que ofrece clases gratuitas de programaci贸n en lenguajes de programaci贸n como Python, Java, JavaScript, Ruby, SQL, C++, HTML y CSS.

Esta empresa de educaci贸n tambi茅n tiene como objetivo proporcionarte una gran experiencia de aprendizaje en l铆nea y ha tenido bastante 茅xito en hacerlo hasta ahora.

Qu茅 lecciones de c贸digo libre ofrecen: HTML y CSS, JavaScript, PHP, Python, Ruby, Angularjs, La L铆nea de Comando, y m谩s

2. freeCodeCamp

freeCodeCamp es una organizaci贸n sin fines de lucro que se anuncia como 芦dedicada a ense帽ar al mundo c贸mo codificar gratuitamente禄

Esta escuela gratuita de programaci贸n en l铆nea ense帽a a codificar primero a trav茅s de un plan de estudios establecido (aprox.

800 horas en total), y despu茅s te da experiencia pr谩ctica trabajando en proyectos para organizaciones sin 谩nimo de lucro.

Es perfecta para los estudiantes que quieren aprender a programar online obteniendo una experiencia pr谩ctica que les servir谩 y se ver谩 impresionante en un curr铆culum.

Se ofrecen certificaciones de c贸digo libre: HTML, CSS, JavaScript, visualizaci贸n de datos, DevTools, pruebas de control de calidad, Node.js, React, jQuery, y m谩s

3. Coursera

donde y como aprender programacion y primeros pasos para programar

Esta es una enorme biblioteca en l铆nea para varios tipos de cursos basados en la programaci贸n que son impartidos por un surtido de profesores de diferentes universidades.

Coursera b谩sicamente te ofrece acceso a algunos de los mejores cursos en l铆nea del mundo (alrededor de 1 773 cursos) al asociarse con diferentes universidades y organizaciones (138 socios).

As铆 pues, hay una lista interminable de temas de inform谩tica que se imparten en Coursera, incluyendo grandes datos SQL, rob贸tica y Python.

Aunque todos los cursos se ofrecen de forma gratuita, si se desea obtener una certificaci贸n en un tema concreto, es necesario pagar la cuota correspondiente a dicho tema.

El precio para obtener un certificado oscila entre 30 y 100 d贸lares, dependiendo de la elecci贸n de su curso.

Coursera es uno de los mejores lugares para aprender a programar gratuitamente, con sus opciones de cursos profesionales y vers谩tiles.

El sitio es una gran biblioteca de cursos en l铆nea donde las clases son impartidas por verdaderos profesores universitarios.

Todos los cursos son gratuitos, pero tiene la opci贸n de pagar un 芦Certificado Verificado de Coursera禄 (los precios oscilan entre 30 y 100 d贸lares) para demostrar la finalizaci贸n del curso.

A veces, el pago de un certificado tambi茅n permite el acceso a contenidos que no est谩n disponibles en las versiones gratuitas.

Coursera tambi茅n ofrece 芦Especializaciones禄, que son colecciones de cursos sobre un tema espec铆fico, t铆picamente con un proyecto final al final.

Coursera es una plataforma de aprendizaje en l铆nea que alberga contenidos de las mejores universidades, incluyendo m谩s de 100 clases de programaci贸n.

Si est谩s listo para aprender a programar, podr铆as hacer algo peor que empezar aqu铆.

Las clases de Coursera son gratuitas.

Qu茅 cursos de c贸digo libre ofrecen: Muchos (mucho m谩s all谩 de sus temas b谩sicos de programaci贸n/ciencia computacional)

4. edX

Esta plataforma de c贸digo abierto para la educaci贸n superior se est谩 convirtiendo r谩pidamente en un recurso de aprendizaje de renombre mundial con m谩s de 5 millones de alumnos.

En la categor铆a de 芦inform谩tica禄, edX.org ofrece alrededor de 166 cursos diferentes.

Varios de estos cursos, como el curso XSeries, son de pago.

Sin embargo, edX.org tambi茅n ofrece varios cursos verificados de forma gratuita, lo que le permite aprender diferentes lenguajes de programaci贸n a su propio ritmo.

S贸lo tendr谩s que pagar por los cursos gratuitos si requieres un certificado como prueba de que has completado el curso y de la experiencia adquirida.

A trav茅s de esta plataforma de aprendizaje, puedes estar expuesto a C#, Java, jQuery, C++, Python, aprendizaje autom谩tico, programaci贸n R, SQL, dise帽o o desarrollo de aplicaciones m贸viles, etc.

EdX es un programa de educaci贸n superior de c贸digo abierto regido por el MIT y Harvard, lo que lo convierte en otro recurso de alto calibre en el que puedes aprender a programar gratuitamente en l铆nea.

El sitio ofrece 107 grandes cursos bajo la categor铆a de 芦ciencias de la computaci贸n禄, ense帽ando varios lenguajes de programaci贸n.

EdX es otra plataforma de aprendizaje en l铆nea respaldada por la universidad con contenido de escuelas como Harvard y MIT.

Al igual que Coursera, muchas de las clases de EdX son gratuitas, incluyendo clases sobre diferentes lenguajes de programaci贸n, as铆 como algunas opciones b谩sicas de HTML, CSS y JavaScript.

Se ofrecen cursos de programaci贸n gratuitos: Java, C#, Python, y muchos m谩s

5. Codewars

Este sitio web de aprendizaje de c贸digos te permite aprender tu lenguaje de programaci贸n preferido desafi谩ndote.

En esta divertida plataforma de aprendizaje de c贸digo, puedes resolver un desaf铆o a la vez (conocido como 芦kata禄) y afinar tus habilidades existentes.

Puedes aprender m谩s sobre tu lenguaje de programaci贸n favorito o exponerte a un nuevo lenguaje del que sabes muy poco.

Algunos de los lenguajes de programaci贸n t铆picos que ense帽a Codewars son JavaScript, CoffeeScript, Java, Ruby, Python, C# y Clojure.

La idea detr谩s de esta plataforma es animar a los estudiantes a seguir mejorando con cada 芦kata禄 (reto) que se encuentran.

A medida que los desaf铆os se hacen m谩s dif铆ciles, se resuelven las 芦katas禄 de mayor rango.

Te ganas el honor de completar cada 芦kata禄 y pasar al siguiente nivel.

Al final de cada desaf铆o, tambi茅n puedes comparar tu soluci贸n con la de los dem谩s y discutir varias formas innovadoras de tratar con t茅cnicas de programaci贸n similares en la comunidad de desarrolladores correspondiente.

Para a帽adir m谩s diversi贸n a los desaf铆os, Codewars incluso te permite crear tus propias 芦katas禄 y desafiar a otros desarrolladores.

Su objetivo final es permitir a los desarrolladores alcanzar su m谩ximo potencial.

Codewars ofrece una forma divertida y 煤nica de aprender a programar.

Con un tema de artes marciales, el programa se basa en desaf铆os llamados 芦kata禄 Completarlos para ganar honor y progresar a rangos m谩s altos.

Codewars a帽ade una peculiaridad a los procedimientos ofreciendo clases gratuitas de programaci贸n con un tema de artes marciales.

Resolver 芦katas禄 de programaci贸n espec铆fica (un t茅rmino para ejercicios de entrenamiento de karate) le har谩 ganar rangos y honores a medida que avanza en su camino para convertirse en un codificador de buena fe.

驴Qui茅n dijo que aprender a programar online no pod铆a ser divertido? Codewars tambi茅n ofrece una de las listas m谩s diversas de lenguajes de programaci贸n.

Adem谩s de muchas m谩s cosas, lo que significa que puedes decidir qu茅 priorizar cuando aprendas a codificar.

Esta es una forma divertida de aprender programaci贸n en l铆nea si te motiva un poco de juego!

Los desaf铆os de programaci贸n que ofrecen: CoffeeScript, JavaScript, Python, Ruby, Java, Clojure y Haskell

6. GA Dash

GA Dash presenta una forma divertida de aprender a hacer sitios web atractivos desde tu navegador.

Te permite aprender diferentes lenguajes de programaci贸n basados en la web, como JavaScript, HTML y CSS.

La parte divertida es que te ayudar谩 a aprender a hacer sitios web en forma de proyectos.

Con cada recorrido dirigido a construir un sitio web impresionante, se construye un peque帽o 芦proyecto禄.

Todos los recorridos te permitir谩n crear tu propio sitio web.

Adem谩s, te ense帽a a construir un sitio web receptivo (amigable con los m贸viles)!

Esta es la plataforma de aprendizaje en l铆nea gratuita de la Asamblea General.

Est谩 completamente basada en proyectos, se construye un 芦proyecto禄 con cada recorrido, lo que la hace ideal para aquellos a los que les gusta poner manos a la obra mientras aprenden a codificar en l铆nea.

GA Dash es el brazo libre de la escuela de programaci贸n de pago Asamblea General.

Este curso gratuito ense帽a los fundamentos de HTML, CSS y JavaScript de una manera f谩cil de usar e interactiva con el mismo nivel de calidad que otras clases pagadas de GA.

Piensa en ello como un campamento de c贸digo de $0.

Te har谩 empezar a aprender a programar de forma gratuita.

Es uno de los pocos recursos gratuitos de aprendizaje del c贸digo que tiene un curso sobre c贸mo construir un tema de Tumblr desde cero.

Lea mi rese帽a aqu铆.

donde y como aprender programacion y primeros pasos para programar
Qu茅 proyectos de c贸digo libre ofrecen: HTML, CSS, JavaScript, dise帽o sensible

7. Academia Khan

Esta plataforma de aprendizaje hace que sea muy f谩cil aprender y desarrollar habilidades de programaci贸n.

Esto se debe a que no s贸lo se basa en instructores para ense帽ar a los estudiantes, sino que tambi茅n permite a los estudiantes compartir cualquier programa que conozcan con otros estudiantes.

Este tipo de aprendizaje compartido aumenta el compromiso del usuario y ayuda a los participantes a comprender las cosas m谩s r谩pidamente.

Adem谩s, el uso de v铆deos para ense帽ar diferentes matices de la programaci贸n inform谩tica le ayudar谩 a relacionarse r谩pidamente con lo que puede estar intentando hacer en su ordenador.

No s贸lo se limita a la programaci贸n inform谩tica, sino que tambi茅n le ayuda a aprender diferentes cosas que entran en el 谩mbito de la inform谩tica y la programaci贸n con tutoriales de aprendizaje de c贸digos que duran una hora.

De este modo, puedes aprender HTML, CSS, JavaScript, animaciones y m谩s para preparar sitios web y juegos.

Adem谩s, la Academia Khan tiene cursos para ayudarte a preparar tus propias bases de datos.

Esta plataforma tambi茅n ofrece oportunidades de aprendizaje en l铆nea que van m谩s all谩 de la programaci贸n y abarcan varias otras materias.

La Academia Khan ofrece un mont贸n de temas (como dice su portada, 芦Puedes aprender cualquier cosa禄), incluyendo muchos sobre programaci贸n inform谩tica.

Tambi茅n se ofrecen algunos cursos para los ni帽os m谩s peque帽os, 隆para que toda la familia pueda aprender a programar gratis!

La Academia Khan es una plataforma educativa sin fines de lucro dedicada a proveer herramientas educativas en l铆nea GRATUITAS.

Eso incluye una robusta selecci贸n de clases de programaci贸n.

Los recursos de programaci贸n que ofrecen: JS, HTML/CSS, SQL, mucho m谩s

8. MIT OpenCourseware

donde y como aprender programacion y primeros pasos para programar

El OpenCourseWare (OCW) del Instituto Tecnol贸gico de Massachusetts (MIT) es una gran iniciativa emprendida por el MIT.

Como parte de esta plataforma, todos los materiales de estudio de los cursos de licenciatura y de posgrado del MIT se ponen en l铆nea para que pueda estudiarlos en cualquier momento y en cualquier lugar con acceso gratuito para todos.

Adem谩s de las dem谩s asignaturas que se ofrecen, esta plataforma ofrece cursos gratuitos en l铆nea relacionados con la inform谩tica.

Algunos de los cursos de introducci贸n a la programaci贸n incluyen el aprendizaje en l铆nea para Java, Python, C y C++, y la programaci贸n en MATLAB.

Puede navegar por estos cursos gratuitos para buscar uno que se ajuste a sus necesidades.

La competencia para entrar en el MIT puede ser dura, pero el acceso a su material de curso en l铆nea no tiene una matr铆cula o una puntuaci贸n m铆nima en el SAT.

Mantienen una biblioteca en l铆nea de cada tema que ense帽an, sin necesidad de tener una cuenta para el acceso; s贸lo hay que buscar un curso y empezar a revisar el material.

S铆… puedes aprender programaci贸n gratis en el MIT. Qu茅 mundo.

El OpenCourseWare del MIT forma parte de una iniciativa del MIT para publicar gratuitamente TODOS los materiales educativos de sus cursos en l铆nea.

驴Suena demasiado bueno para ser verdad? No lo es Aaaaand, que incluye mucha introducci贸n a la programaci贸n y a otras t茅cnicas y c贸digos para las clases de mecanograf铆a para principiantes.

Se ofrecen cursos: Muchos. Mira su p谩gina web para ver todos los de programaci贸n que ofrecen.

After Hours Programming

After Hours Programming existe desde hace unos a帽os y tiene muchos tutoriales diferentes para aprender los conceptos b谩sicos de Python, PHP y mucho m谩s.

Lo anterior es s贸lo una breve lista de plataformas o sitios web que le permiten aprender a programar o programar online de forma gratuita.

Puede haber muchas otras herramientas efectivas para el aprendizaje del c贸digo.

Si has utilizado alguna de estas herramientas con gran 茅xito, por favor, comparte tu experiencia en la secci贸n de comentarios de abajo y 隆gracias por leerla!

9. El Proyecto Odin

Este proyecto tiene como objetivo ayudarle a aprender el desarrollo de la web en l铆nea de forma gratuita.

Como parte de su proceso de aprendizaje, usted participa en varios peque帽os proyectos para ayudarle a construir su propio portafolio de trabajo.

Tambi茅n tienes la oportunidad de trabajar con otros estudiantes como grupo en diferentes proyectos, lo que mejora tu proceso de aprendizaje.

Este sitio web tiene como objetivo ense帽arte la mayor铆a de los lenguajes de programaci贸n b谩sicos, como Ruby y Ruby on Rails, JavaScript, HTML5, CSS3 y jQuery, necesarios para construir sitios web.

Tambi茅n ofrece un plan de estudios flexible, al que t煤 y otros estudiantes pueden contribuir, para su aprendizaje.

La idea es utilizar las herramientas de desarrollo web m谩s efectivas disponibles.

Los guerreros de hoy en d铆a pueden navegar para aprender a programar con el Proyecto Od铆n.

Est谩 hecho por los creadores de la Escuela de C贸digo Vikingo, un importante campamento de c贸digo en l铆nea, y el Proyecto Od铆n es su versi贸n gratuita y de c贸digo abierto.

Mientras aprendes a codificar gratis con sus tutoriales de programaci贸n, puedes buscar apoyo de otros estudiantes usando el grupo de chat en l铆nea!

El Proyecto Od铆n es un recurso de programaci贸n para principiantes absolutos que ofrece un plan de estudios gratuito y de c贸digo abierto.

Una opci贸n ideal para cualquiera que quiera aprender a programar online.

Temas t茅cnicos disponibles: HTML, CSS, JavaScript & jQuery, programaci贸n Ruby, Ruby on Rails

10. Udacity

Esta plataforma ofrece varios cursos para desarrolladores.

Puedes acceder a todo el material del curso de forma gratuita y afinar tus habilidades como desarrollador web de front-end o como desarrollador de Android o iOS.

Sin embargo, si quieres ser reconocido como un poseedor de un 芦nanodegrado禄, entonces necesitas pagar por sus cursos y obtener asistencia guiada a lo largo de tu curso.

Los programas de nanodegrado tienen como objetivo ayudarle a dar la direcci贸n correcta a su carrera y aumentar sus oportunidades de trabajo.

Adem谩s, si est谩 interesado, puede consultar el material de sus cursos de forma gratuita para determinar si vale la pena hacer su curso de nanodegrado guiado.

La plataforma ofrece varios cursos construidos por empresas de renombre, como Google, Facebook, At&t y Cloudera.

Por ejemplo, puede acceder al curso de aprendizaje profundo gratuito de Google en el sitio web de Udacity.

Udacity ofrece cursos individuales de programaci贸n gratuitos, as铆 como 芦nanodegraf铆as禄 que te capacitan para carreras espec铆ficas como desarrollador web de front-end o analista de datos.

Udacity es una escuela de programaci贸n en l铆nea con una mezcla de clases gratuitas y de pago (alrededor de 200 de sus clases de programaci贸n, lo que ellos llaman 芦nanodegados禄, son gratuitas).

Los materiales de los cursos son gratuitos, pero los nanodegrees requieren una cuota de matr铆cula.

Qu茅 programas de tecnolog铆a gratuita ofrecen: Muchos (no s贸lo de programaci贸n)

11. SoloLearn

SoloLearn es una plataforma social donde cualquiera puede aprender a programar.

Es diferente a otros proveedores de cursos porque est谩 basada en el m贸vil: aprender a programar sobre la marcha, en cualquier dispositivo.

SoloLearn es una plataforma de aprendizaje online y m贸vil con clases de programaci贸n libre en 13 disciplinas de programaci贸n diferentes.

Con lecciones en tama帽o de bocado, logros para desbloquear y pruebas interactivas, hace que aprender a programar sea divertido, y es de descarga gratuita.

Lecciones de programaci贸n que ofrecen: Muchas

12. El jugador de c贸digo

Una compilaci贸n de tutoriales de programaci贸n en l铆nea basados en video para ayudarte a recorrer un proceso de principio a fin.

Es bueno para aprender el c贸digo en l铆nea con proyectos/tareas 芦m谩s peque帽os禄 uno a la vez.

Hay disponibles tutoriales de c贸digo libre: HTML5, CSS3, Javascript, Regex, JQuery

13. Bento.io

donde y como aprender programacion y primeros pasos para programar

Su misi贸n es inspirar a la gente a convertirse en programadores haciendo el c贸digo accesible, asequible y divertido.

Dado que ofrecen m谩s de 200 temas de tecnolog铆a, cualquier cosa que hayas pensado en aprender, la puedes encontrar aqu铆.

Bento es un sitio que cursa clases de c贸digo libre de toda la web y las estructura en un plan de estudios integral.

Pistas de desarrollo web para elegir: Muchas

14. Udemy

Se trata de una plataforma de aprendizaje electr贸nico de renombre mundial que ofrece miles de cursos que se imparten a trav茅s de videotutoriales.

Muchos de los cursos son de pago, pero Udemy tambi茅n ofrece varios cursos gratuitos.

Los temas tratados por Udemy incluyen el desarrollo personal, el estilo de vida, la salud y la forma f铆sica, y el desarrollo.

Como codificador, tambi茅n te ofrece toneladas de cursos de desarrollo en diferentes secciones, como aplicaciones para m贸viles, lenguajes de programaci贸n, desarrollo web, desarrollo de juegos, bases de datos y comercio electr贸nico.

As铆 que, en base a su prop贸sito, puede seleccionar la secci贸n relevante y optar por cualquiera de los cursos gratuitos disponibles para aumentar sus conocimientos.

Adem谩s, puede consultar las puntuaciones y rese帽as de cada curso gratuito antes de inscribirse en 茅l.

Esto te ayudar谩 a elegir el mejor curso gratuito disponible de Udemy sobre el tema o el lenguaje de programaci贸n que te interesa.

Ofrecen cursos gratuitos y de pago.

Tenga en cuenta que en Udemy, los cursos pueden ser creados por cualquiera, as铆 que aseg煤rese de leer las cr铆ticas.

Los cupones tambi茅n se pueden encontrar f谩cilmente, y las ventas son frecuentes.

Udemy se proyecta como un mercado de aprendizaje en l铆nea, albergando m谩s de 130.000 cursos creados por los usuarios sobre todo tipo de temas (incluyendo m谩s de 2.000 clases relacionadas con la programaci贸n).

Aunque algunas de las ofertas de Udemy son de pago (con un coste de 20 a 200 d贸lares por curso), tambi茅n hay muchas clases de programaci贸n gratuitas, incluyendo algunos cursos m谩s cortos del tipo Tech 101 que ense帽an c贸digo para principiantes.

Echa un vistazo a sus cursos de desarrollo aqu铆.

Los cursos de c贸digo libre que ofrecen: Muchos

15. Code Conquest

Este sitio web puede darte una mano cuando est茅s a punto de entrar en el mundo de la programaci贸n.

Aunque no tengas ni idea de lo que es la programaci贸n o la programaci贸n, la plataforma de Code Conquest puede ayudarte a aprender lo b谩sico y a mejorarlo.

Con Code Conquest, tendr谩s acceso a una gu铆a de programaci贸n gratuita para principiantes que contiene un mont贸n de tutoriales de programaci贸n gratuitos.

Con esta gu铆a, aprender谩s a usar un lenguaje de programaci贸n en particular.

Tambi茅n te hace lo suficientemente capaz para determinar qu茅 entrenamiento en lenguaje de programaci贸n es apto para tus requerimientos y puedes entonces tomar tu decisi贸n de acuerdo a ello.

Los diversos lenguajes de programaci贸n ense帽ados por Code Conquest incluyen PHP, JavaScript, Ruby, Python, C++, HTML y CSS.

15. Code.org

Code.org te ofrece acceso a una amplia gama de tutoriales en forma de gu铆as de aprendizaje (tutoriales de aprendizaje de c贸digo de una hora de duraci贸n), v铆deos y dem谩s.

De hecho, tambi茅n te ofrece acceso a diferentes tutoriales y aplicaciones, tal y como las ofrecen sus socios, para aprender sobre el desarrollo de juegos para los grados K-8, programaci贸n JavaScript y otros lenguajes de programaci贸n similares.

Tambi茅n realiza varias lecciones dirigidas por un instructor (o por un profesor) para un aprendizaje f谩cil y r谩pido.

Algunas de estas lecciones que est谩n disponibles en el sitio son de nombres populares en la industria de la programaci贸n.

Por lo tanto, no es de extra帽ar que haya habido millones de participantes que han aprovechado los conocimientos de programaci贸n compartidos en este portal.

El objetivo b谩sico de esta iniciativa sin fines de lucro es ayudar a los estudiantes de la escuela a aprender inform谩tica y hacerla una parte regular del plan de estudios.

Code.org proporciona materiales de aprendizaje dedicados espec铆ficamente a aumentar las tasas de estudiantes femeninos y de minor铆as que ingresan a las carreras de ciencias inform谩ticas.

Sus cursos de c贸digo libre est谩n dise帽ados para estudiantes de K-12, pero pueden ser 煤tiles para todas las edades.

Code.org es un sitio web sin fines de lucro dedicado a alentar a todas las personas (pero con un enfoque en los estudiantes de edad escolar) a aprender a programar online.

No dejes que eso te desanime: despu茅s de todo, todos somos principiantes de la programaci贸n.

(Tambi茅n hay una secci贸n para lecciones de programaci贸n m谩s all谩 del K-12.)

Comienza con sus r谩pidas tutor铆as de Hour of Code, o construye proyectos en cursos de laboratorio.

Se ofrecen cursos de programaci贸n: HTML, CSS, JavaScript, programaci贸n de bloques

Codeasy

Codeasy es probablemente el m谩s nuevo de toda la lista.

Es un curso educativo bastante interesante porque impulsa un nuevo concepto en el estudio de la inform谩tica.

Empiezas a aprender all铆 leyendo una historia de aventuras sobre las m谩quinas de combate del futuro.

En tu camino, te encontrar谩s con retos que requieren una programaci贸n real para resolverlos.

El objetivo final es salvar al mundo de la invasi贸n de las m谩quinas.

Y como un efecto secundario muy importante: convertirte en un desarrollador de software.

El curso se centra en los fundamentos de la inform谩tica utilizando C#.

Es gratuito y est谩 dise帽ado para principiantes completos.

Comienza con un programa 芦Hola mundo禄, te lleva a trav茅s de todo lo que necesitas para escribir tu primera calculadora, llegando a temas m谩s avanzados como los arreglos, y la validaci贸n de entrada.

Todos los que saben leer pueden empezar a aprender all铆.

Codeasy tiene un grupo de apoyo en el que cualquiera que se haya perdido en su viaje por la salvaci贸n del mundo puede hacer preguntas y obtener respuestas significativas en 12 horas.

Web Fundamentals

Web Fundamentals es un proyecto de Google para proporcionar lecciones y tutoriales gratuitos y de c贸digo abierto sobre la programaci贸n en l铆nea a las masas.

Code Avengers

Code Avengers est谩 dirigido a ni帽os de 5 a 14 a帽os y les da un entorno de aprendizaje de programaci贸n divertido e interactivo.

Tambi茅n es un gran recurso para los maestros de escuela que quieren ayudar a sus estudiantes a codificar.

Debido a que su objetivo es un grupo de edad m谩s joven, es ideal para que los adultos entiendan tambi茅n qui茅nes no son tan tecnol贸gicos.

Los Code Avengers tienen su base en Nueva Zelanda.

Tambi茅n ofrecen campamentos de c贸digo donde hay de 1 a 3 d铆as de entrenamiento en c贸digo.

Estos campamentos se encuentran en todo el mundo y en varios estados de los Estados Unidos.

Puedes aprender lenguajes de programaci贸n como C++, HTML, Python, dise帽o de juegos y muchos m谩s.

Tambi茅n ofrecen estos cursos en m煤ltiples idiomas, haci茅ndolos accesibles a todos.

Skillcrush Free Programming Camp

El Campamento de programaci贸n gratis de Skillcrush es nuestra introducci贸n a la tecnolog铆a, a los t茅cnicos y a las carreras m谩s interesantes para principiantes, que puedes completar en menos de cinco minutos al d铆a.

Se entrega directamente en su bandeja de entrada, aprender谩 a codificar en los t茅rminos m谩s simples posibles, e incluso podr谩 intentar escribir su propio c贸digo, para que pueda ver si el aprendizaje de la programaci贸n es el movimiento correcto para usted..

16. Scotch.io

Este sitio web de c贸digo libre cubre muchos temas relacionados con el desarrollo web y el flujo de trabajo.

La plataforma ofrece cursos cortos, tutoriales, gu铆as, entradas de blog y v铆deos.

Hay recursos disponibles sobre la programaci贸n libre: Angular, node.js, laravel, Sublime Text, y m谩s.

17. Hackr.io

Esta no es una plataforma en s铆 misma, pero es una gran lista de recursos de programaci贸n curada por la comunidad.

Simplemente busca el idioma que quieres aprender y obtendr谩s una lista de los mejores cursos, tutoriales y libros en l铆nea recomendados por los codificadores.

donde y como aprender programacion y primeros pasos para programar
Ofrecen lecciones de c贸digo libre: Ninguna, pero recomiendan muchas

The Code Player

Lo 煤nico de esta plataforma de aprendizaje de programaci贸n en l铆nea es que te expone a videos o presentaciones sobre el c贸digo creado por otros desde cero.

Adem谩s, cada lecci贸n de recorrido termina con un video y una descripci贸n detallada del tema.

De esta manera, b谩sicamente est谩s expuesto a varios c贸digos de la vida real que ya han sido implementados con 茅xito.

Al pasar por estos estudios de casos reales, tendr谩 una mejor idea de c贸mo utilizar el lenguaje de programaci贸n particular, basado en diferentes requerimientos.

Puedes aprender sobre lenguajes como HTML5, CSS3, JavaScript y jQuery que son usados por muchos para crear sitios web o aplicaciones m贸viles.

Code School

La Escuela de C贸digo es otra buena plataforma de aprendizaje de c贸digo en l铆nea, que ofrece cursos gratuitos y de pago.

Los diferentes cursos se organizan en forma de caminos, espec铆ficos para la tecnolog铆a y los conocimientos de programaci贸n.

Puedes navegar a trav茅s de estos diferentes caminos de aprendizaje para determinar qu茅 curso es el adecuado para ti en funci贸n de tus necesidades.

Algunos de los principales temas t茅cnicos y de programaci贸n que cubren los caminos de la Escuela de C贸digo son Ruby, Python, HTML, CSS, iOS, JavaScript, SQL y Git.

Puedes empezar a probar los cursos gratuitos de la Escuela de C贸digo aqu铆.

18. W3Schools

Considera que este es tu primer paso, ya que es perfecto para principiantes, W3Schools es el sitio de desarrollo web m谩s grande del mundo, que ofrece tutoriales gratuitos de programaci贸n y materiales de referencia para aprender casi todos los aspectos de la programaci贸n web.

Tambi茅n puedes poner a prueba tus habilidades con pruebas y ejercicios de programaci贸n completos usando su editor en l铆nea.

w3schools es una plataforma de aprendizaje gratuito en l铆nea dedicada a la programaci贸n y el desarrollo web.

w3schools ofrece este tutorial gratuito de HTML, que es ideal para cualquiera que se pregunte c贸mo aprender a programar y est茅 abrumado con la idea de empezar.

De esta lista, este recurso de programaci贸n ha sido quiz谩s el m谩s largo, as铆 que s铆, saben exactamente c贸mo ense帽arte a codificar.

Qu茅 tutoriales de c贸digo libre ofrecen: HTML, CSS, JavaScript, SQL, PHP, jQuery, y m谩s

CodeConquest

codeconquest es una plataforma de aprendizaje de c贸digos gratuita y de servicio completo que ofrece tutoriales in situ y revisiones de sitios de programaci贸n de primera calidad.

Tiene m谩s texto que algunos de los otros recursos de nuestra lista, pero algunas personas aprenden mejor leyendo

19. Coderbyte

Aprende a programar haci茅ndolo! Coderbyte te ense帽a los fundamentos de los lenguajes de programaci贸n m谩s populares y te permite desarrollar tus nuevas habilidades utilizando su biblioteca de m谩s de 200 retos y soluciones de programaci贸n.

Desaf铆os de programaci贸n libre: JavaScript, Ruby, Python, HTML, CSS, Node.js, y m谩s

20. Academia Virtual de Microsoft

Los Learning Paths de Microsoft Virtual Academy son cursos de c贸digo libre comisariados dise帽ados para ayudarte a construir habilidades valiosas a trav茅s de video tutoriales, demostraciones, evaluaciones y m谩s.

Tambi茅n tendr谩s acceso a libros electr贸nicos gratuitos, descargas 煤tiles y un foro de apoyo de la comunidad.

Rutas de aprendizaje gratuitas disponibles: MEAN stack, SQL, Azure, ASP.NET, HTML

21. Edabit

Edabit es 芦como Duolingo para aprender a programar禄, ofreciendo retos de programaci贸n del tama帽o de un bocado que simulan c贸mo es la programaci贸n en el mundo real.

donde y como aprender programacion y primeros pasos para programar
Los temas que cubren sus desaf铆os: Java, JavaScript, PHP, Python, C#, C++, Ruby, Swift

18. BitDegree

BitDegree es una plataforma de aprendizaje en l铆nea con clases gratuitas y de pago dedicadas a las habilidades de programaci贸n, as铆 como a los negocios en general, a la cadena de bloques y a las clases de dise帽o.

22. Libros de la escuela de Lanzamiento

Escritos para complementar el plan de estudios de ingenier铆a de software de la Escuela de Lanzamiento, estos libros gratuitos le ayudar谩n a aprender los fundamentos b谩sicos de los idiomas populares.

Qu茅 temas de c贸digo libre cubren: Git y GitHub, la l铆nea de comandos, Ruby on Rails, SQL

Canales de YouTube para aprender programaci贸n

23. LearnCode.academy

隆Uno de mis favoritos! Este sitio presenta videos enfocados al desarrollo web hechos por Will Stern.

Hay un mont贸n de tutoriales de c贸digo libre en JavaScript y otros lenguajes, adem谩s de v铆deos sobre las diversas herramientas que utilizan los desarrolladores.

donde y como aprender programacion y primeros pasos para programar

24. thenewboston

Aqu铆 encontrar谩s m谩s de 4.000 v铆deos sobre diversos temas de programaci贸n, desarrollo de juegos y dise帽o.

Es uno de los canales m谩s populares, con casi dos millones de suscriptores aprendiendo a codificar con ellos.

Qu茅 videos de programaci贸n gratis ofrecen: Desarrollo de Android, programaci贸n C, MySQL, Python, y m谩s

Suscriptores: 1,987,216

25. Derek Banas

La especialidad de Banas es condensar la informaci贸n sobre los lenguajes de programaci贸n en un solo video por idioma.

Es bueno para los espectadores a quienes les gustan los videos m谩s largos pero m谩s completos en lugar de trozos del tama帽o de un bocado, o que quieren ver videos de resumen de los idiomas antes de sumergirse en los cursos/curr铆culos.

donde y como aprender programacion y primeros pasos para programar

26. Programaci贸nConocimiento

Un canal perfecto para principiantes absolutos que quieren una base para aprender a programar.

Las listas de reproducci贸n de los tutoriales paso a paso cubren varios idiomas sin asumir conocimientos previos.

27. Free Code Camp

Como su nombre lo indica, esta plataforma se trata de aprender a programar en un campamento o comunidad.

La gran parte de este sitio web es que ayuda a las organizaciones sin fines de lucro con la programaci贸n.

Todo lo que tienes que hacer es unirte a su comunidad online y participar en los retos de programaci贸n como grupo.

La plataforma te gu铆a a trav茅s de los retos de programaci贸n ayud谩ndote a aprender en el camino.

Tambi茅n te da acceso a cursos interactivos y tutoriales de programaci贸n.

Adem谩s, tienes la opci贸n de conocer a otros codificadores en el sitio, que viven en tu ciudad, y tener sesiones de intercambio de conocimientos con ellos.

Tambi茅n puede acceder con frecuencia a las salas de chat de la comunidad en el sitio para buscar ayuda de otros codificadores.

As铆, Free Code Camp no s贸lo te ayuda a aprender a programar de forma gratuita, sino que tambi茅n te da la oportunidad de construir aplicaciones 煤tiles para organizaciones sin 谩nimo de lucro en tiempo real.

Algunos de los lenguajes de programaci贸n notables que puedes aprender y trabajar, usando esta comunidad, incluyen JavaScript, HTML5, CSS3, Node.js, D3.js, Databases, Git y GitHub.

Blogs

27. David Walsh

Este blog de programaci贸n est谩 dirigido por David Walsh (un desarrollador senior de Mozilla), aunque hay otros que tambi茅n escriben en el sitio.

Sum茅rgete en los tutoriales de c贸digo libre, how-tos, demostraciones y m谩s.

28. Softwarehow

Todo sobre el uso de herramientas de software para resolver problemas comunes que se encuentran en la tecnolog铆a.

Consejos, gu铆as y revisiones de software espec铆fico.

29. SitePoint

Este es otro blog muy 煤til, si quieres material de calidad relacionado con diferentes lenguajes de programaci贸n.

No s贸lo te ayudan a aprender los fundamentos de los lenguajes, como HTML, CSS y JavaScript, sino que tambi茅n comparten conocimientos sobre la seguridad de WordPress, Swift, React.js y dem谩s.

SitePoint contiene informaci贸n muy detallada sobre todos estos temas que pueden ayudar a su viaje de programaci贸n.

Tienen muchos escritores y publican a menudo.

Los temas van desde el HTML y el CSS hasta el esp铆ritu empresarial.

Tambi茅n tienen libros pagados y cursos en su sitio infantil Learnable.

Aseg煤rate de echar un vistazo a sus nuevas 芦colecciones禄, que incluyen tutoriales de programaci贸n sobre temas como la seguridad de WordPress, React.JS y Swift.

(隆Y se a帽aden nuevas a diario!)

donde y como aprender programacion y primeros pasos para programar

30. Tuts+

Este blog ofrece m谩s de 20.750 tutoriales gratuitos, v铆deos y m谩s para ayudarte a aprender los fundamentos de varios lenguajes de programaci贸n y material t茅cnico.

Los tutoriales est谩n basados en proyectos y ofrecen instrucciones paso a paso, junto con capturas de pantalla apropiadas para entender mejor las instrucciones.

Tambi茅n tiene varios cursos en v铆deo, que cubren la inform谩tica y otros temas.

El sitio web de TutsPlus tambi茅n ofrece varios cursos pagados, libros electr贸nicos y dem谩s para una experiencia de aprendizaje integral sobre el lenguaje de programaci贸n de su elecci贸n.

Desde la perspectiva de la programaci贸n t茅cnica, puedes aprender sobre CSS, JavaScript, Node.js, Swift, WordPress, Joomla y dem谩s.

Toneladas de tutoriales de programaci贸n gratuitos, as铆 como opciones de pago como cursos reales.

Tuts+ es una biblioteca de tutoriales en l铆nea que ofrece m谩s de 20.000 tutoriales gratuitos (miles de ellos dedicados a temas de c贸digo y tecnolog铆a).

Tiene m谩s de 1.130 cursos de video instruidos por expertos (sobre todos los temas, no s贸lo relacionados con la inform谩tica).

Tambi茅n publica libros electr贸nicos.

31. A list apart

Se centra en las habilidades de programaci贸n para el desarrollo de sitios web y cuenta con muchos autores que contribuyen a este blog de hermoso dise帽o.

Estos colaboradores escriben libros y llevan a cabo talleres o eventos relacionados con el contenido web, el dise帽o de sitios web y la programaci贸n.

A List Apart es el sitio web de referencia ideal para las personas que hacen sitios web o para aquellos que est谩n interesados en hacer sitios web.

Muchos autores participan en 芦A List Apart禄. Escriben libros, tienen eventos y dirigen un gran blog de desarrollo/dise帽o.

32. CSS-Tricks

Este sitio web va muy a fondo en el CSS con su gran y malo almanaque del CSS.

Sin embargo, el blog ahora va m谩s all谩 de s贸lo CSS y habla de otras cosas como Sass, JavaScript, PHP, y m谩s.

Explora toneladas de recursos y echa un vistazo a sus fragmentos de c贸digo.

La l铆nea de comandos

33. Aprende suficiente l铆nea de mando para ser peligroso

Tutorial gratuito de l铆nea de comandos para principiantes.

Te gu铆a por los fundamentos de la l铆nea de comandos de Unix, sin requisitos t茅cnicos previos.

34. Usuario de energ铆a de la l铆nea de comando

Serie de videos gratis creada por Wes Bos.

M谩s en un nivel intermedio, as铆 que no es para novatos totales.

donde y como aprender programacion y primeros pasos para programar

35. Conquistar la l铆nea de mando

Libro online gratuito de Mark Bates que profundiza mucho.

Puedes comprar una copia impresa o los screencasts.

Vuelva a la tabla de contenidos 禄

Git y GitHub

36. Inmersi贸n de Git

Una visita guiada para ense帽arte lo b谩sico de Git.

Establece preferencias y crea tus propios proyectos.

37. Intenta Git

Una serie interactiva de desaf铆os para aprender y experimentar con Git.

Creado por la Escuela de C贸digo.

HTML y CSS

HTML.com

HTML.com ofrece un tutorial gratuito de HTML para principiantes absolutos.

Si est谩s listo para aprender a programar de forma gratuita, podr铆as hacer algo peor que empezar con algo tan sencillo.

38. HTML5 Dog

Empieza a aprender a programar con uno de los lenguajes m谩s simples.

Puedes encontrar un tutorial de HTML para principiantes aqu铆.

(Tambi茅n ofrecen tutoriales de HTML intermedio y avanzado).

Los tutoriales de CSS est谩n aqu铆.

驴Est谩s listo para aprender HTML, amigo? Entonces dir铆gete a los tutoriales de HTML en HTML Dog.

24. Learn-HTML.org

Obt茅n tu tutorial interactivo y gratuito de HTML en Learn-HTML.org.

26. Codeacademy Introducci贸n al HTML

La Codeacademy tiene cursos gratuitos sobre todo lo relacionado con la programaci贸n, as铆 que es mejor que creas que tienen una introducci贸n al HTML.

El punto de partida ideal cuando est谩s empezando a aprender a programar.

27. codeconquest Tutorial gratuito de HTML

Conquista la m谩s fundamental de todas las habilidades de programaci贸n (HTML) con este tutorial de conquista de c贸digo.

28. Tutorial de CSS gratuito de Codeconquest

Codeconquest regresa con un tutorial para ayudarte a aprender el lenguaje hermano de HTML, CSS.

Si deseas aprender a programar, eso incluye aprender a estilizar dicho c贸digo.

Este no es un mal lugar para empezar.

29. tutorial de CSS de w3schools

La l铆nea de tutoriales de w3schools contin煤a con esta entrada en CSS.

30. CSStutorial.net

CSStutorial.net es un sitio dedicado a guiarte paso a paso por los fundamentos de CSS.

31. Codeacademy Aprende CSS

Sabes que la Codeacademy no te va a dejar colgado con una de las habilidades de programaci贸n m谩s fundamentales de la tecnolog铆a, 驴verdad? Aqu铆 est谩 su gu铆a gratuita de CSS.

32. Tutoriales de HTML Dog CSS

驴Est谩s listo para aprender el CSS, amigo? Entonces dir铆gete a los tutoriales de CSS en HTML Dog (s铆, tambi茅n hacen CSS).

33. HTML & CSS para principiantes en Udemy

HTML y CSS para principiantes – Construir un sitio web y lanzarlo en l铆nea (Udemy)

Esta clase dual de HTML/CSS es gratuita en Udemy, y es un gran curso intensivo en los fundamentos del desarrollo web.

39. Marksheet.io

Un recurso de programaci贸n en l铆nea para principiantes.

Se divide en cuatro cap铆tulos: la web, HTML5, CSS3 y Sass.

Es como un libro electr贸nico en l铆nea, pero bajo una licencia internacional Creative Commons Reconocimiento-No comercial-CompartirIgual 4.0, as铆 que puedes adaptarlo a tus necesidades.

40. Red de desarrolladores de Mozilla

donde y como aprender programacion y primeros pasos para programar

Documentaci贸n gratuita sobre HTML y CSS (tambi茅n JavaScript).

Tiene tutoriales para personas de diferentes niveles, de introducci贸n a avanzado.

41. Aprende a codificar HTML y CSS

Tutoriales de programaci贸n en l铆nea para ayudarte a construir sitios web bellos e intuitivos.

Cubre una variedad de temas de dise帽o y desarrollo web, desde principiantes hasta avanzados.

HTML5 Rocks

Como su nombre indica, esta plataforma se centra principalmente en el aprendizaje de los matices del HTML5, que se utiliza ampliamente para el desarrollo de sitios web y el desarrollo de aplicaciones m贸viles.

Lo fascinante de este sitio es que es un proyecto de Google.

Por lo tanto, las contribuciones a este sitio y todos los tutoriales de aprendizaje, incluyendo las gu铆as de recursos y las cubiertas de diapositivas, que se ofrecen a usted son proporcionados por profesionales de Google.

Los detalles discutidos por HTLM5 Rocks son m谩s 煤tiles para aquellos que est谩n tratando de mejorar sus habilidades HTML5 existentes.

Por lo tanto, es posible que se requiera una comprensi贸n b谩sica de HTML5 antes de que empieces a usar este sitio.

donde y como aprender programacion y primeros pasos para programar

47. Reloj y c贸digo

Tutoriales de v铆deo en JavaScript sencillos y sin tonter铆as.

Dise帽ados para llevarte desde cero hasta el nivel avanzado.

Adem谩s, participa en sesiones semanales de estudio en vivo para el apoyo de la comunidad mientras aprendes a codificar.

Cursos y tutoriales de JavaScript Framework y de la Biblioteca

34. Learn-JS.org

Learn-JS.org tiene una serie de tutoriales de JavaScript para principiantes y programadores experimentados.

35. MDN JavaScript

MDN (la gente detr谩s del navegador web Firefox) alberga esta secci贸n de tutoriales gratuitos de JavaScript como parte de su serie de documentos web.

36. Elocuente JavaScript

Eloquent JavaScript es un libro de texto de JavaScript que va m谩s all谩 del foro de 芦cortar y pegar禄 de algunos tutoriales en l铆nea y a帽ade estilo y sustancia a su instrucci贸n y ejemplos.

Puedes leer el libro digitalmente de forma gratuita.

38. Microsoft Channel 9: Fundamentos y desarrollo de JavaScript para principiantes absolutos

El Canal 9 de Microsoft es un sitio comunitario que alberga discusiones en video, podcasts, aaay este curso gratuito para principiantes de JavaScript.

39. Codeacademy Introducci贸n a JavaScript

驴No lo sab铆as? La Codeacademy tiene un curso gratuito de introducci贸n a JavaScript, porque…bueno, la Codeacademy!

40. tutorial de JavaScript de w3schools

w3schools permanece en la mezcla del tutorial de c贸digo libre con este tutorial de JavaScript.

41. Tutorial de JavaScript para aprender solo

Si a煤n no has encontrado una clase o tutorial de JavaScript que te parezca bien, prueba esta oferta tan estudiada de Sololearn.

42. JavaScript Essentials (Udemy)

Por 煤ltimo, Udemy llega en el embrague con este curso gratuito de JavaScript Essentials.

43. Reactario

OK, usted SABE que un sitio llamado Reactarmory va a ser serio acerca de React, y s铆, lo son, caminando el paseo con su tutorial de Aprender a Reaccionar por s铆 mismo.

44. jQuery.com

jQuery sigue siendo un elemento fundamental en el mundo de JavaScript, y puedes aprender todo sobre 茅l en los tutoriales del sitio oficial de jQuery.

45. VueJS.org

Aumente su conocimiento del popular marco Vue directamente de estos tutoriales en el sitio web VueJS.org.

46. Scrimba Aprende a reaccionar de forma gratuita

El curso Learn React for Free de Scrimba.com es una colecci贸n de 48 screencasts interactivos dedicados a React JS.

47. Thinkster.io Una mejor manera de aprender angular

驴Listo para sumergir el dedo del pie en el ampliamente utilizado marco de JavaScript que es Angular? Corre (no camines) a esta gu铆a de Thinkster.io.

48. Codeacademy Learn React JS

隆Oh, hai Codeacademy! 驴Qu茅 es eso? 驴Tienes un tutorial gratuito para React JS? 隆Aww, por supuesto que s铆!

42. JavaScript para Gatos

donde y como aprender programacion y primeros pasos para programar

Es como un libro en una sola p谩gina web, dividido en secciones…

con gatos.

Creado por el programador Max Ogden.

Lleno de regalos sin gatos pero con fotos de gatos al final.

S贸lo porque s铆.

Lol.

驴Eres un amante de los gatos que quiere aprender a programar con JavaScript? BOOM, has encontrado tu recurso gratuito.

JavaScript para Gatos es un caprichoso (pero efectivo) tutorial de JavaScript escrito desde el punto de vista de un gato.

43. NodeSchool

Tiene talleres y eventos en persona en todo el mundo, as铆 como una activa presencia en la web.

44. Aprende JS

隆Otra forma pr谩ctica de aprender el c贸digo en l铆nea! A medida que avanzas en las lecciones, puedes escribir en la ventana de abajo.

Creado por la misma gente que hace learnpython.org.

45. Elocuente JavaScript

Otro libro en l铆nea, pero m谩s largo que la mayor铆a.

Tiene grandes patrocinadores financieros como Mozilla y Hack Reactor (芦el Harvard de los campos de entrenamiento禄).

46. Javascript.com

9 mini-lecciones creadas por la Escuela de C贸digo.

R谩pido y perfecto tutorial de programaci贸n en l铆nea para principiantes absolutos.

(Advertencia: JS en la vida real es mucho m谩s dif铆cil.) Al final, te indica materiales de aprendizaje de JS m谩s profundos.

Cursos y tutoriales de Phyton

50. Un byte de Phyton

Libro online gratuito para principiantes que aprenden a codificar.

Puedes elegir entre descargarlo gratis en formato PDF o gastar dinero en una copia impresa.

52. Learn Phyton the hard way (Website)

El libro cuesta dinero, pero el sitio web es gratis.

Escrito por Zed Shaw.

(Utilic茅 el libro cuando empec茅 a aprender.)

49. Learnpython.org

donde y como aprender programacion y primeros pasos para programar

驴Quieres aprender lo b谩sico de Python gratis? Ve a Learnpython.org.

Es tan simple (o, supongo, B脕SICO) como eso.

Aprende a programar en Python de forma gratuita y pr谩ctica con este tutorial interactivo de programaci贸n online.

Tiene una peque帽a ventana en la parte inferior donde puedes escribir tu c贸digo a medida que avanzas en las lecciones.

50. La Gu铆a para principiantes de la Fundaci贸n Python

O puedes ir directamente a la fuente! El sitio web oficial de la Fundaci贸n Python alberga tutoriales gratuitos adaptados tanto a los reci茅n llegados a la programaci贸n como a los reci茅n llegados a Python con experiencia en programaci贸n.

51. Python-Guide.Org Gu铆a del autoestopista para la Phyton

驴Sab铆as que Python se llama as铆 en honor a MONTY Python? Bueno, si no lo sabes, ahora lo sabes, y qu茅 mejor manera de honrar al tocayo de Python que aprender de una gu铆a llamada as铆 por la Gu铆a del Autoestopista de la Galaxia de Monty Python.

Python-guide.org tiene su Gu铆a del Autoestopista de la Phyton aqu铆 mismo!

52. Real Python Aprenda a programar en Python con el ejemplo

驴De verdad quieres aprender Phyton? 驴De verdad? Entonces echa un vistazo al tutorial basado en ejemplos de Real Python.

53. La clase Python de Google

Quiero decir, cuando piensas en tecnolog铆a y sitios web, casi autom谩ticamente piensas en Google, 驴verdad? Y aqu铆 est谩n ofreciendo una clase gratuita de Python.

Probablemente un buen lugar para recoger algunos consejos.

54. Codeacademy Aprende Python

Whoah, whoah, whoah…

驴quieres decirme que la Codeacademy tiene una clase de Phyton? 隆Pero por supuesto que la tienen!

55. w3schools Tutorial de Python

Y, no temas, si eres una persona m谩s de w3schools, ellos tambi茅n tienen uno!

Cursos y Tutoriales de PHP

65. learn-php.org

Si has llegado tan lejos en la lista, habr谩s notado que cada lenguaje de programaci贸n tiene al menos uno o dos sitios de tutoriales totalmente dedicados a aprenderlo.

PHP no es diferente, y learn-php.org no es una broma!

66. PHPBuddy.com

Cuando est谩s aprendiendo una nueva habilidad, un sistema de apoyo es clave.

驴Y qu茅 es m谩s de apoyo que un compa帽ero? En este caso, 隆un compa帽ero de PHP!

67. developPHP.com

PHP es un amigo de los desarrolladores, particularmente si trabajas con WordPress y plugins de WordPress, as铆 que a帽谩delo a tu propio kit de herramientas para desarrolladores consultando los tutoriales de developPHP.com.

68. PHP de la manera correcta

As铆 que hay dos formas de aprender PHP: la forma correcta o la incorrecta.

Um, supongo que quieres aprenderlo de la manera correcta, sin embargo? 驴Incorrecto? Entonces dir铆gete a PHP La Manera Correcta para sus tutoriales gratuitos.

69. El asesino PHP

驴Quieres aprender PHP pero te preocupa que tengas que ser un t茅cnico o un 芦nerd禄 para hacerlo? 隆Entonces perm铆teme presentarte a Killer PHP! Han estado ofreciendo lecciones gratuitas de PHP a los 芦no nerds禄 durante diez a帽os, haciendo de PHP lo que Guy Fieri es para los restaurantes.

70. Codeacademy Aprende PHP

Bueno, supongo que podemos seguir adelante.

No hay nada m谩s que ver aqu铆 en cuanto a recursos de PHP.

Jaja, es una broma.

La Codeacademy tiene un curso gratuito de PHP.

71. tutorial de PHP de w3schools

Aaand, redondeando las cosas para PHP est谩 w3schools (o, como nos gusta llamarlos cari帽osamente, 芦Good Old Trusty禄) con un tutorial gratuito de PHP.

Cursos y tutoriales de WordPress

72. Learn WordPress.com

驴Buscas mejorar tus habilidades b谩sicas de WordPress? Ve directamente a la fuente y obt茅n indicaciones del equipo de WordPress con estos tutoriales.

73. Gu铆a para principiantes de la revista Smashing para crear un sitio web de WordPress

La revista Smashing es el hogar de un mont贸n de grandes sugerencias y tutoriales, su gu铆a de WordPress para principiantes es uno de ellos.

74. WPBeginner.com

donde y como aprender programacion y primeros pasos para programar
Recurso de bonificaci贸n: WordPress es un gran sistema de gesti贸n de contenidos para blogs.

Si est谩s interesado en crear tu propio blog, te recomiendo encarecidamente que consultes la gu铆a detallada de Ryan Robinson sobre c贸mo empezar un blog.

El sitio web wpbeginner alberga una 隆Gu铆a para principiantes de WordPress en su sitio! Esta gu铆a est谩 dise帽ada para poder ense帽arte lo b谩sico de WordPress de forma gratuita en una semana o menos.

Sitio web para usuarios principiantes de WP.

Gran glosario de t茅rminos de WP, adem谩s de cupones de descuento, video tutoriales y un blog que publica art铆culos 煤tiles de diferentes autores.

48. WordPress.tv

Grabaciones de conferencias en vivo de WordCamp en todo el mundo.

Creado por Automattic.

75. WPMU DEV Su gu铆a de inicio para el SEO: Un tutorial de WordPress sobre SEO

El sitio de conocimiento de WordPress WPMU DEV ofrece esta gu铆a 煤nica de WordPress, es espec铆ficamente una inmersi贸n en c贸mo configurar un sitio de WordPress para SEO.

Ruby

56. Tutorial de Ruby on Rails-Aprende a desarrollar una web con Rails

Si eres un aprendiz de libro, apreciar谩s esta versi贸n digital gratuita de Ruby on Rail Tutorial-Aprende Desarrollo Web con Rails por Michael Hartl.

57. Ruby Koans

驴Te atrae la naturaleza profunda y enigm谩tica de los koanes Zen? 驴Puedes imaginarte aprendiendo a codificar con Ruby usando el mismo tipo de formato.

Bueno, 隆mira los koanes de Ruby!

58. Hoja de ruta tecnol贸gica para el aprendizaje de Ruby on Rails

Si te gusta la idea de una hoja de ruta clara para aprender el riel, prueba esta de Techiferous.

59. Chicas de los Rails

Rails Girls es una impresionante organizaci贸n de mujeres usuarias de Rails dedicada a difundir el amor por los Rails.

Y lo hacen aqu铆 con sus gu铆as gratuitas de Rails.

60. learnrubyonline.org

驴Quieres aprender Ruby en l铆nea? Ve a learnrubyonline.org.

Caso cerrado.

61. Codeacademy Aprende Ruby on Rails

Podr铆as hacer algo mucho peor que ir a la Codeacademy para tu primera introducci贸n a Rails.

De hecho, es la mejor elecci贸n.

62. tutorial de Ruby de w3resource

No, no w3schools, esto es w3resource, saliendo de la nada para ense帽arte sobre Ruby.

Gratis.

63. tutorialspoint.com Tutorial de Ruby on Rails

驴Qu茅 es lo que queremos? TUTORIALES DE RUB脥 SOBRE Rails! 驴D贸nde los encontramos? Bueno, tutorialspoint.com tiene uno aqu铆 mismo.

64. Aprende Rub铆 sobre Rails desde cero (Udemy)

驴Empezando con Rails de la nada? Como, 驴literalmente desde cero? Pruebe esta clase gratuita de Udemy: Aprende Ruby on Rails desde cero.

53. Aprende a Ruby de la manera m谩s dif铆cil

Otro libro escrito por Zed Shaw.

Una versi贸n HTML gratuita del libro est谩 disponible en l铆nea.

Al comprar la copia impresa tambi茅n se tiene acceso a los videos.

54. Rails para zombies

Una forma r谩pida e interactiva de aprender Ruby on Rails directamente en tu navegador.

Aprende lo b谩sico de Rails como modelos, vistas y controladores en s贸lo 1 hora.

Creado por Code School.

donde y como aprender programacion y primeros pasos para programar

55. Tutorial de Rails

Libro de 12 cap铆tulos de Michael Hartl.

Puedes comprar ebooks, screencasts del autor, y m谩s.

O simplemente leerlo gratis en l铆nea.

56. RubyMonk

Un recurso completamente gratuito, aunque tienes la opci贸n de donar.

Basado en los tutoriales interactivos de programaci贸n en l铆nea, donde lees una lecci贸n y escribes el c贸digo.

Por 煤ltimo, 芦ejec煤talo禄.

RubyMonk tiene una opci贸n de curso para principiantes, dos intermedios y uno avanzado.

57. Ruby en 20 minutos

Creado por el sitio web oficial de Ruby, esta es una gran opci贸n para los principiantes en el aprendizaje del c贸digo de Ruby.

Aprender谩s los fundamentos del lenguaje en 20 minutos o menos, d谩ndote un s贸lido punto de partida.

Ciencia de los datos / An谩lisis

58. Dataquest

Cursos pr谩cticos de programaci贸n libre que te ense帽an las habilidades necesarias para convertirte en un cient铆fico, analista o ingeniero de datos.

Construye proyectos en tu navegador y trabaja en problemas de ciencia de datos de la vida real.

donde y como aprender programacion y primeros pasos para programar

59. Trampol铆n

Una breve pero intensa introducci贸n al an谩lisis de datos.

Aprende a manipular y analizar datos con un plan de estudios cuidadosamente planificado compuesto por clases en l铆nea gratuitas, tareas, proyectos y m谩s.

(Adem谩s, 隆no se necesita experiencia en an谩lisis de datos o programaci贸n!)

60. EliteDataScience

Gu铆as de ciencias de la informaci贸n y aprendizaje de m谩quinas, minicursos y tutoriales para gente ocupada aprendiendo programaci贸n en l铆nea.

Tambi茅n puedes descargar hojas de c贸digos, listas de control y hojas de trabajo para acortar la curva de aprendizaje de la ciencia de los datos.

Aprendizaje autom谩tico / IA

61. Dominio del aprendizaje autom谩tico

Creado por el desarrollador profesional y practicante de aprendizaje de m谩quinas Jason Brownlee, PhD.

Ofrece tutoriales y recursos gratuitos, incluyendo un curso intensivo de aprendizaje de m谩quinas, para iniciarse en el aprendizaje de m谩quinas y m谩s all谩.

62. Google AI

Aprende de los expertos en ML de Google.

Ofrece recursos -incluyendo tutoriales, cursos, videos y ejercicios- para ayudarte a desarrollar habilidades de inteligencia artificial.

Perfecto para principiantes hasta ingenieros experimentados en aprendizaje de m谩quinas.

Ciberseguridad

63. Cybrary

Videos gratuitos de ciberseguridad y aprendizaje de inform谩tica.

Cubre temas como computaci贸n y forense, criptograf铆a e inteligencia de amenazas cibern茅ticas.

donde y como aprender programacion y primeros pasos para programar

64. Los libros electr贸nicos de seguridad de O’Reilly

Sum茅rgete en el mundo de la ciberseguridad con estos libros electr贸nicos gratuitos.

Aprende sobre la red oscura, la privacidad, el cibercrimen y m谩s.

Cursos y Tutoriales de Desarrollo de Aplicaciones M贸viles

76. Documentaci贸n de Android para desarrolladores de aplicaciones

Si planeas desarrollar aplicaciones m贸viles para Android, es importante que te familiarices con las mejores pr谩cticas directamente desde el propio Google.

Y puedes hacerlo con la Documentaci贸n para desarrolladores de aplicaciones del equipo de Android.

77. Formaci贸n de desarrolladores de Android para nuevos programadores

Aaand, si eres completamente nuevo en la programaci贸n y quieres aprender a desarrollar aplicaciones para Android, 隆comienza aqu铆!

78. Apple comienza a desarrollar aplicaciones iOS (Swift)

Si las aplicaciones para el iPad y el iPhone son m谩s tu problema (o simplemente quieres aprender sobre ellas tambi茅n), consulta los tutoriales y la documentaci贸n de Apple aqu铆.

79. Apple Swift Playgrounds

驴La documentaci贸n del sitio web se siente demasiado seca? Entonces descarga la aplicaci贸n Swift Playgrounds de Apple, una forma de aprender a construir aplicaciones para iOS.

80. Line25 Dise帽a y codifica una genial p谩gina web de aplicaciones para el iPhone en HTML5

驴Quieres que un tercero vea de qu茅 se trata la construcci贸n de una aplicaci贸n de iOS? Prueba la gu铆a gratuita de Line25 para construir una aplicaci贸n para el iPhone con HTML5.

65. Desarrolladores de Android

Sitio oficial para los desarrolladores de aplicaciones para Android.

Aprende a construir tu primera aplicaci贸n para Android con detallados tutoriales de programaci贸n en l铆nea y cursos de formaci贸n.

66. Formaci贸n para desarrolladores de Google

Cursos gratuitos de programaci贸n en l铆nea a su propio ritmo para principiantes y desarrolladores experimentados de Android.

Creados por expertos de Google y Udacity.

Si est谩 interesado en aprender los matices del desarrollo de aplicaciones para Android desde cero, entonces Google puede serle de gran utilidad.

Este gigante t茅cnico ofrece numerosas clases de aprendizaje sobre el desarrollo de Android, incluyendo aquellas dise帽adas para principiantes absolutos.

Tambi茅n le proporciona varios ejemplos de c贸digo que puede reutilizar para su propio desarrollo de aplicaciones para Android.

Por si fuera poco, Google incluso le ofrece acceso a diferentes cursos de formaci贸n en v铆deo online relacionados con el desarrollo de Android.

donde y como aprender programacion y primeros pasos para programar

67. Comienza a desarrollar aplicaciones iOS (Swift)

Parte del archivo de documentaci贸n de Apple, es un punto de partida perfecto para aprender a programar aplicaciones iOS del mundo real que se ejecutan en el iPhone y el iPad.

68. Los parques infantiles Swift

una aplicaci贸n para el iPad que te permite experimentar con Swift a trav茅s de mini-puzzles interactivos.

Adem谩s, podr谩s ver tu c贸digo ejecutarse en un hermoso mundo 3D.

Dise帽o UX / UI

69. La Enciclopedia de la Interacci贸n Humano-Computadora

Una mirada profunda, de 52 cap铆tulos, a la interfaz de usuario y el dise帽o de interacci贸n.

Cubre todo lo que necesitas saber sobre el dise帽o de productos interactivos, como p谩ginas web, software, tel茅fonos inteligentes e incluso objetos dom茅sticos.

70. UXPin

Toneladas de libros electr贸nicos y gu铆as UX gratuitos que cubren la creaci贸n de prototipos para m贸viles y para la web, wireframing, maquetas, pruebas de usabilidad y mucho m谩s.

donde y como aprender programacion y primeros pasos para programar

71. UX Principiante

Suscr铆bete a la formaci贸n gratuita de dise帽o semanal y sum茅rgete en el mundo de la UI/UX con recursos gratuitos, art铆culos de blog y listas de los mejores cursos, podcasts y libros sobre UX.

驴C贸mo aprender a programar?

En este art铆culo, veremos c贸mo aprender programaci贸n de manera adecuada.

Este art铆culo ser铆a 煤til tanto para los que buscan trabajo como para los estudiantes.

Aqu铆 est谩 el mapa de ruta de c贸mo aprender a programar que puede actuar como las 101 gu铆as para principiantes:

1. Familiarizarse con un lenguaje de programaci贸n

El primer paso para aprender a programar es sentirse c贸modo con un lenguaje de programaci贸n.

La gente suele empezar con C, C++, Java o Python.

Personalmente prefiero C++ al principio ya que no es ni demasiado simple (como lo es Python), ni demasiado deficiente en t茅rminos de librer铆as (como lo es C).

C++ es bastante r谩pido y tambi茅n tiene un buen soporte de librer铆as – 隆lo mejor de ambos mundos! Adem谩s, C++ es una buena elecci贸n para la programaci贸n competitiva porque es bastante r谩pido y tiene el soporte de la Standard Template Library (STL).

La elecci贸n del primer lenguaje es altamente subjetiva basada en tus intereses y objetivos.

Puede que te interese el front-end, el back-end, el desarrollo de aplicaciones para m贸viles, el desarrollo de juegos, la ciencia de los datos, etc.

Si tu principal objetivo es conseguir un trabajo, entonces echa un vistazo a nuestro art铆culo sobre qu茅 lenguaje de programaci贸n es mejor para conseguir un trabajo

Puedes empezar por aprender lo b谩sico: sintaxis, tipos de datos, variables, bucles, matrices, etc.

Intenta resolver preguntas sencillas basadas en la implementaci贸n para familiarizarte con estos conceptos b谩sicos.

2. Aprende estructuras de datos y algoritmos

Una vez que se sienta c贸modo con cualquiera de los idiomas mencionados en la secci贸n anterior, lo siguiente que debe hacer es aprender las estructuras de datos y los algoritmos.

Las estructuras de datos y los algoritmos ayudan a construir la aptitud correcta requerida para la programaci贸n.

El conocimiento de las estructuras de datos te ayudar谩 a elegir la correcta para el problema que est茅s resolviendo – no todas las estructuras de datos pueden ser usadas en todas partes.

Cuando aprendas sobre los algoritmos, ser谩s capaz de entender el mecanismo de trabajo de muchas funciones de la biblioteca, que, de otra manera, se te presentar铆an como cajas negras.

Hay muchos buenos cursos en l铆nea en los que puedes estudiar.

La parte 1 y la parte 2 de Algoritmos son buenos cursos para empezar.

Es importante que dediques tiempo a pensar en la implementaci贸n de estas estructuras de datos y algoritmos para que te sientas c贸modo con ellos.

Puedes pensar que aprender su implementaci贸n podr铆a no ser importante ya que en 煤ltima instancia se utilizan las funciones de la biblioteca.

Este es uno de los conceptos err贸neos m谩s comunes que tiene la gente.

Comprender la implementaci贸n te ayudar谩 a evaluar la complejidad del tiempo, lo que te ayudar谩 a optimizar a煤n m谩s tu c贸digo.

Hay un asombroso sitio web, Visualgo, donde puedes visualizar el funcionamiento de las diversas estructuras de datos y algoritmos.

3. Ensuciarse las manos con la programaci贸n competitiva

Una vez que hayas aprendido las estructuras de datos y los algoritmos, deber铆as empezar a resolver problemas en sitios web como SPOJ, Codechef, Codeforces, Topcoder, Hackerrank, Geeksforgeeks etc.

Cuantos m谩s problemas resuelvas, mejor ser谩.

Es mejor, sin embargo, resolver los problemas en un orden creciente de dificultad.

Puedes ordenar los problemas en orden descendente del n煤mero de soluciones presentadas y empezar a resolverlos.

Despu茅s de resolver alrededor de 100 problemas de variedad mixta, te sentir谩s seguro de tus habilidades de programaci贸n.

Despu茅s de que te sientas c贸modo resolviendo las preguntas y codificando las soluciones, puedes empezar a participar en varios concursos de programaci贸n en l铆nea.

Hacer esto mejorar谩 mucho tus habilidades de programaci贸n.

4. Hacer un proyecto

Ahora que has mejorado tus habilidades de resoluci贸n de problemas y programaci贸n, es hora de crear algunas aplicaciones 煤tiles.

Puedes tomar alg煤n marco de desarrollo web popular (Django, Flask, Ruby on Rails, etc.) y hacer un proyecto con 茅l.

Hacer una aplicaci贸n te dar谩 una sensaci贸n de desarrollo de software real, que es lo que hace la mayor铆a de los programadores.

Una vez que hayas hecho algunos proyectos de desarrollo web, puede que quieras probar tu mano en el desarrollo de Android o iOS.

No te limites, 隆aprende lo que quieras!

5. Explora

Una vez que se sienta seguro de sus habilidades de programaci贸n y haya realizado algunos proyectos, deber铆a pasar a explorar los diversos dominios de la inform谩tica y ver qu茅 es lo que m谩s le fascina.

La ciencia de la computaci贸n es un campo vasto y rico, con muchos subcampos interesantes.

Algunos de los dominios m谩s populares de la Ciencia de la Computaci贸n son la Inteligencia Artificial, Aprendizaje Autom谩tico, Criptograf铆a, Computaci贸n en Nube, Programaci贸n de Sistemas, Visi贸n por Computadora, Procesamiento de Lenguaje Natural, Cadena de Bloques, Realidad Virtual, Desarrollo Web, Desarrollo de Aplicaciones M贸viles, y muchos m谩s.

Deber铆as intentar explorar tantos campos como puedas para saber d贸nde est谩 tu inter茅s.

Hoy en d铆a, hay muchos recursos en l铆nea para estudiar cualquiera de los campos mencionados.

Pero con una pl茅tora de recursos disponibles, es dif铆cil para un principiante encontrar un gran tutorial entre tantas opciones.

Sea cual sea tu inter茅s, puedes encontrar los mejores tutoriales, recomendados por la comunidad de programadores, para ese lenguaje/framework en Hackr.io.

Adem谩s de los tutoriales y cursos, tambi茅n puedes encontrar los mejores libros y ejercicios/proyectos/problemas de pr谩ctica en Hackr.

Una vez que estudies algo, intenta hacer un proyecto relacionado con ello.

Los proyectos ayudan a fortalecer los conceptos que se han aprendido.

Tambi茅n son buenos desde la perspectiva de hacer un curr铆culum.

En este art铆culo, vimos un enfoque para el aprendizaje de la programaci贸n.

As铆 es como aprend铆 a programar:) Ya que est谩s leyendo este art铆culo, supongo que te tomas en serio el aprendizaje de la programaci贸n, 隆lo cual es algo bueno! Espero que este art铆culo te haya resultado 煤til.

Todo lo mejor para tu viaje de aprendizaje! Si茅ntete libre de hacerme tus preguntas/dudas en los comentarios.

Si alguna vez has pensado en aprender a programar pero te has sentido desanimado por el coste de las clases de programaci贸n, este es el resumen para ti.

Porque, s铆, si quieres dominar las habilidades de programaci贸n, eventualmente querr谩s sumergirte en una opci贸n de clase de programaci贸n m谩s profunda.

驴Pero aprender lo b谩sico? Puedes hacerlo gratis.

驴aprender a programar GRATIS?

Sip.

Y mejor a煤n: Puedes aprender a programar gratis en l铆nea desde la comodidad de tu propio sof谩.

Hemos elaborado una nueva lista de las mejores formas de aprender a programar gratis en 2019.

A continuaci贸n encontrar谩 m谩s de 80 clases de programaci贸n en l铆nea para cada estilo de aprendizaje, nivel de compromiso y objetivo profesional.

Elija la que quiera y aprender谩 a codificar en poco tiempo.

C贸mo aprender a programar m谩s r谩pido – 10 consejos y trucos

Si decidiste que quer铆as ser programador, debes recordar que eso significa que vas a aprender constantemente.

No importa si acabas de empezar, o si tienes una experiencia, habr谩 algo nuevo, que quieras dominar.

Por supuesto, al principio de tu aventura de programaci贸n, tienes mucho m谩s que aprender.

Al principio, todo puede parecer muy emocionante.

Despu茅s de reunir todas las fuentes, cursos, libros, y todo lo que necesitas, puede parecer que vas a estudiar durante a帽os para completar todo y alcanzar tu objetivo.

Pero no tiene por qu茅 ser as铆, si aprendes con sabidur铆a, entonces es posible aprender programaci贸n m谩s r谩pido.

En este art铆culo, me gustar铆a compartir con ustedes algunos m茅todos que me ayudaron a aprender m谩s r谩pido.

Espero que tambi茅n os sea 煤til a vosotros.

Empecemos!

1. Lo b谩sico es importante

Para entender cualquier tema, tienes que entender los fundamentos.

La misma regla se aplica a la programaci贸n.

No tiene sentido empezar a construir una aplicaci贸n avanzada si no conoces los conceptos b谩sicos del lenguaje de programaci贸n.

Te frustrar谩, y te dar谩 la sensaci贸n de que la programaci贸n es muy complicada.

Si empiezas desde el principio, todo estar谩 claro.

Nunca pienses en ello, ya que es una p茅rdida de tiempo.

Te ahorrar谩 mucho tiempo en el futuro.

Lo mismo ocurre con el aprendizaje de los marcos, sin conocer el lenguaje de programaci贸n.

Por supuesto, es posible, pero es un reto.

As铆 que, recuerda, empieza de cero, y entiende lo esencial.

2. Encontrar el m茅todo correcto

Hay tonos de diferentes recursos para aprender programaci贸n, videos, libros, tutoriales, cursos.

Algunas personas prefieren leer un libro, otras quieren ver el curso en video y otras prefieren hacer un curso interactivo (como el curso de HTML y CSS de Duomly).

Est谩 bien hasta que se ajuste a tu preferencia.

Si seleccionas los recursos adecuados, no te aburrir谩s r谩pidamente, y el aprendizaje te aportar谩 mucha diversi贸n.

As铆 que, recuerda, lo m谩s importante es encontrar la mejor manera para ti.

3. Pr谩ctica, pr谩ctica, pr谩ctica

La programaci贸n se basa en la teor铆a y en mucha pr谩ctica.

Cuando aprendas algo nuevo del recurso te贸rico, crea un proyecto.

Aprender haciendo te dar谩 la mejor experiencia y mucha comprensi贸n.

Leer la teor铆a o el c贸digo no es suficiente para entender la programaci贸n.

Tu trabajo va a consistir en crear el c贸digo, as铆 que tienes que hacerlo para aprender.

Adem谩s, recuerda aumentar la complejidad de tus proyectos cuando est茅s aprendiendo cosas nuevas.

Desde un simple formulario de acceso HTML, puedes crear toda la aplicaci贸n, implementando otras cosas que has aprendido.

Tambi茅n puedes mejorar tu c贸digo existente usando las mejores pr谩cticas.

Cada tarea pr谩ctica es un nuevo reto, y con nuevos retos, no te aburrir谩s f谩cilmente, y el aprendizaje se convertir谩 en una agradable rutina diaria.

Recuerda, cuantas m谩s l铆neas de c贸digo crees, m谩s aprender谩s.

4. Tengan curiosidad

La curiosidad te ayudar谩 mucho con el aprendizaje.

Puedes aprender cosas nuevas cuando en realidad no est谩s aprendiendo.

Lo que quiero decir es que si te interesa el tema, buscar谩s recursos adicionales, como art铆culos o v铆deos de Youtube, para desarrollar tu conocimiento.

Adem谩s, puedes unirte a los foros de programaci贸n o a los grupos de Facebook, y aprender mucho haciendo preguntas a los programadores m谩s experimentados.

Ellos pueden darte el conocimiento que no encontrar谩s en los libros y cursos porque est谩n compartiendo contigo su experiencia en la vida real de la programaci贸n.

As铆, la curiosidad te ayuda a obtener grandes conocimientos de personas experimentadas y la posibilidad de discutir temas de programaci贸n interesantes desde una perspectiva diferente.

5. Pida ayuda

Cuando te quedas con el problema, y tu c贸digo no funciona, pasas d铆as depur谩ndolo y arregl谩ndolo; es una buena idea pedir ayuda.

Probablemente encontrar谩s la soluci贸n si pasas otros d铆as arreglando tu c贸digo, pero alguien con experiencia puede echarle un vistazo a tu c贸digo y ayudarte a encontrar la soluci贸n en unas pocas horas probablemente.

Adem谩s, te explicar谩 qu茅 es lo que est谩 mal.

De esta forma entender谩s tu error, y depende de cu谩nto tiempo te lleve depurar, pero estoy seguro de que recordar谩s lo que debes evitar en el futuro.

Para pedir ayuda, deber铆as obtener una cuenta en el sitio web como Stackoverflow o unirte a los grupos de programaci贸n de Facebook.

Para saber c贸mo deber铆a ser la solicitud de ayuda adecuada, mira este v铆deo https://www.youtube.com/watch?v=aKb_2MyTRhw

6. Cuidar la productividad

La programaci贸n del aprendizaje requiere un entorno y una organizaci贸n adecuados.

Prep谩rate un escritorio bonito y limpio con el ordenador, si te gusta la m煤sica para concentrarte, establece una lista de reproducci贸n para el aprendizaje, apaga todo lo que pueda molestarte o distraerte.

Es una gran idea planear un peque帽o descanso de 5 minutos despu茅s de cada hora.

Es esencial tomar unos minutos de descanso.

Te ayudar谩 a despejar tu mente, y tu cerebro absorber谩 mucho m谩s conocimiento.

7. Aprende a depurar

Programar es resolver tonos de problemas, no importa si eres principiante o experto, tendr谩s que depurar tu c贸digo muy a menudo.

Si no est谩s acostumbrado a resolver problemas, puede ser frustrante a menos que aprendas a encontrar lo que est谩 mal.

Lo m谩s importante es saber qu茅 es lo que no funciona, entonces encontrar la soluci贸n adecuada es mucho m谩s r谩pido.

Es una gran idea aprender a usar las herramientas de depuraci贸n.

Si eres bueno en la depuraci贸n, el aprendizaje de la programaci贸n ser谩 mucho m谩s r谩pido.

8. Aprender la l贸gica de la programaci贸n

Cuando empiece a programar, notar谩 que hay algunos patrones comunes y repetidos.

Es esencial echar un vistazo a los problemas desde una perspectiva de programaci贸n y aprender esta l贸gica espec铆fica.

Adem谩s, recuerda que casi todas las tareas que tienes que hacer en la programaci贸n son posibles de resolver.

Es genial si aprendes los patrones, y tratas de crear soluciones simples para no complicar demasiado tu c贸digo.

La programaci贸n te parecer谩 bastante f谩cil si aprendes a pensar, y cu谩l es la l贸gica detr谩s.

9. Entra en la comunidad

La comunidad de programaci贸n es enorme.

Hay tonos de foros, sitios web como Stackoverflow, grupos de Facebook, foros de Reddit, reuniones, y muchos m谩s lugares virtuales o reales donde puedes unirte.

Conocer a otros programadores y compartir el conocimiento y las experiencias es una gran manera de aprender programaci贸n tambi茅n.

Est谩s obteniendo conocimiento de otros, puedes compartir, discutir o incluso mostrar tu c贸digo a otros para que lo revisen.

Si otros programadores pueden ver tus proyectos, pueden decirte lo que se puede hacer mejor, y un consejo 煤til no tiene precio.

10. Construye tu cartera

Probablemente la raz贸n por la que empezaste a aprender a programar, es para encontrar un trabajo de programaci贸n.

Para hacerlo m谩s r谩pido, puedes aprovechar el tiempo que est谩s aprendiendo, empieza a construir tu repositorio Github desde el principio.

Te recomiendo que inicies una cuenta en Github y uses git en tus proyectos de formaci贸n.

Si no sabes c贸mo hacerlo, lo que aqu铆

Una gu铆a detallada sobre c贸mo aprender la habilidad de la programaci贸n

Foto del equipo de Icons8 en Unsplash

Si quieres convertirte en un experto programador, prep谩rate para pasar al menos 5 a帽os de programaci贸n diaria.

Sin embargo, si s贸lo quieres aprender lo b谩sico que te dar谩 un trabajo o te permitir谩 trabajar en tus proyectos, puedes aprender la habilidad de programar en menos de 100 horas de pr谩ctica.

100 horas de pr谩ctica es m谩s o menos el equivalente que obtendr铆as de una licenciatura promedio de 4 a帽os en Ciencias de la Computaci贸n, pero esta gu铆a te mostrar谩 c贸mo practicar de manera eficiente para que puedas encontrar el tiempo para aprenderlo en hasta 7 meses (y en la mayor铆a de los casos, mucho menos).

驴Suena emocionante?

隆Vamos a ello!

1. 驴Qu茅 es la programaci贸n?

No pasar茅 mucho tiempo aqu铆 ya que si est谩s leyendo esto, probablemente tengas una idea bastante s贸lida de lo que es la programaci贸n.

Aqu铆 est谩 mi definici贸n:

El acto de escribir un c贸digo entendido por un dispositivo computacional para realizar varias instrucciones.

As铆 que, para mejorar en la programaci贸n, 隆escribir谩s mucho c贸digo!

2. 驴Por qu茅 debo aprender a programar?

No estoy aqu铆 para motivarte a aprender programaci贸n, eso depende de ti.

Si se te ocurri贸 la respuesta simplemente leyendo el titular de esta secci贸n, es una muy buena se帽al.

Uno de los mayores factores por los que la gente no sigue aprendiendo ninguna habilidad es porque su 芦por qu茅禄 es inexistente o ambiguo.

Saber el por qu茅…

no puedo enfatizar esto lo suficiente.

T贸mese un momento para anotar ideas sobre por qu茅 quiere aprender programaci贸n.

Si puedes visualizarte haci茅ndolo en el contexto que quieres en el futuro, es perfecto.

Cuanto m谩s clara sea tu imagen de por qu茅 quieres hacerlo, m谩s claro ser谩 tu camino para hacerlo realidad.

Aqu铆 hay algunas ideas para empezar:

  • Consigue un mejor trabajo;
  • S茅 m谩s feliz;
  • Obtener el respeto de los dem谩s;
  • Tener m谩s impacto;
  • Hacerse rico;
  • Ser financieramente seguro;
  • Descubrir nuevos hobbies o pasiones;
  • 隆y m谩s!

Lo que sea que se te ocurra, profundiza en los detalles.

驴Qu茅 trabajo espec铆fico quieres hacer? 驴Qu茅 significa la felicidad para ti? 驴De qui茅n quieres que te respeten? 驴Qu茅 tipo de impacto quieres tener? 驴En qui茅n? 驴Qu茅 significa para ti ser rico? 驴Por qu茅 quieres ser rico? 驴Qu茅 significa para ti tener seguridad financiera? 驴Qu茅 tipo de nuevos hobbies o pasiones est谩s buscando descubrir?

De nuevo, cuanto m谩s clara sea tu respuesta, mayor ser谩 tu motivaci贸n para aprender programaci贸n o cualquier otra habilidad.

3. 驴C贸mo debo practicar la programaci贸n?

Algunas habilidades pueden tener una mayor proporci贸n de conocimiento vs.

aplicaci贸n, este NO es el caso de la programaci贸n.

La programaci贸n es una de estas habilidades donde necesitar谩s practicar mucho m谩s que concentrarte en la teor铆a.

Entonces te recomiendo que pases al menos el 80% de tu tiempo escribiendo c贸digo y el 20% aprendiendo la teor铆a.

A medida que aprendas m谩s y m谩s, incluso aumentar铆a la proporci贸n de pr谩ctica.

En la secci贸n 4 y 5, entraremos en los conceptos b谩sicos de la programaci贸n.

Por cada minuto que pases tratando de entender los conceptos, deber铆as pasar 5 veces m谩s tiempo poni茅ndolos en pr谩ctica.

As铆 es como los conceptos se hundir谩n en tu cerebro y comenzar谩n a tener sentido; no reley茅ndolos varias veces.

Si tu objetivo es encontrar un trabajo como programador junior o simplemente quieres construir tu proyecto, necesitar谩s unas 100 horas de pr谩ctica para lograrlo.

Y no es un camino f谩cil, especialmente si no has tenido mucha pr谩ctica con otras habilidades l贸gicas en el pasado.

Por eso ser bueno en matem谩ticas es a menudo un requisito para entrar en un programa de programaci贸n de computadoras.

Las matem谩ticas que usar谩s en la programaci贸n rara vez son tan complejas, pero la l贸gica que aprendiste al aplicar las matem谩ticas acelera enormemente tus habilidades de programaci贸n.

3.1 驴C贸mo puedo administrar mi tiempo?

Si su objetivo son 100 horas de pr谩ctica, 驴c贸mo se dividen las sesiones de aprendizaje?

Esto depende en gran medida de su situaci贸n.

Algunos de ustedes podr谩n hacerlo a tiempo completo y ser lo suficientemente competentes con un mes completo de pr谩ctica.

Algunos de ustedes tienen otras responsabilidades y no pueden dedicar mucho tiempo.

Para la mayor铆a de las habilidades, recomiendo practicar por lo menos 15 minutos al d铆a en un momento del d铆a donde puedan concentrarse f谩cilmente.

Pero para la programaci贸n, eso simplemente no es suficiente.

Para la programaci贸n, si practicas durante 30 minutos todos los d铆as, son 3,5 horas por semana o 14 horas por mes.

Para 100 horas de pr谩ctica, eso es un poco m谩s de 7 meses de pr谩ctica.

Yo dir铆a que deber铆as aspirar a por lo menos 15 horas por mes, lo que lo hace posible en menos de 7 meses.

Si tienes mucho tiempo libre, yo no me meter铆a en todo este aprendizaje en 2 semanas (50 horas por semana).

A menos que seas un genio (eso es extremadamente raro, por cierto), tu cerebro simplemente no procesa la informaci贸n tan r谩pidamente.

Sobrecargar la informaci贸n de esa manera producir谩 la ilusi贸n de competencia.

Mientras todo est茅 fresco en tu mente, las cosas parecer谩n f谩ciles, pero si dejas de practicar aunque sea por un mes, perder谩s al menos el 60 por ciento de lo que has aprendido anteriormente.

Esto se basa en la curva de olvido.

La regla de oro es el aprendizaje espaciado y la repetici贸n espaciada.

Esto significa que debes espaciar tu aprendizaje en r谩fagas cortas para que tu cerebro tenga tiempo de asimilar los conceptos.

Y deber铆as recordar lo que has aprendido con suficiente regularidad.

驴Con qu茅 regularidad?

La respuesta f谩cil es despu茅s de 24 horas, despu茅s de 7 d铆as, y despu茅s de un mes.

3.2 驴Cu谩ndo debo practicar la programaci贸n?

Todos los d铆as.

Cuanto m谩s pueda hacer de la pr谩ctica de sus habilidades un h谩bito, m谩s f谩cil ser谩 hacer un seguimiento y obtener resultados.

El enfoque y el proceso m谩s que los resultados tangibles.

Siempre es m谩s motivador centrarse durante 30 minutos, por ejemplo, que centrarse en escribir un c贸digo complejo.

Pero como la programaci贸n es una habilidad intelectualmente compleja, aseg煤rate de practicar cuando tu mente est茅 m谩s aguda.

Mientras que la mayor铆a de los programadores proclaman ser noct谩mbulos, las investigaciones muestran que la mayor铆a de la gente tiene la mente m谩s aguda poco despu茅s de despertarse.

Si no est谩s seguro de cu谩ndo es el momento adecuado para ti, yo empezar铆a por la ma帽ana temprano, antes de que nadie a tu alrededor est茅 despierto.

Esto minimiza las distracciones.

Si no funciona de inmediato, por favor no te rindas de inmediato.

Los nuevos h谩bitos toman tiempo para formarse.

Int茅ntelo constantemente durante al menos dos semanas y vea si hay alguna mejora.

Si no, intente en otro momento.

La clave es encontrar tiempo sin distracciones a menos que est茅s practicando en un grupo (lo cual es genial, por cierto).

3.3 驴D贸nde debo practicar la programaci贸n?

Su entorno tiene m谩s impacto de lo que esperar铆a en su capacidad para aprender algo.

En la escuela, 驴recuerdas haber pensado que sab铆as algo hasta que estabas en la sala de examen y no pod铆as recordar nada?

El problema es que el cerebro hace asociaciones con el contexto en el que aprendes algo.

No mucha gente lo sabe, pero es un concepto crucial para aprender realmente algo.

Aqu铆 hay algunos factores a considerar cuando se trata de tu contexto:

  • La ubicaci贸n f铆sica;
  • La temperatura;
  • Distracciones;
  • M煤sica y ruidos;
  • Confort;
  • La gente con la que est谩s;
  • El material que est谩s usando;
  • Tu estado mental (relajado, agitado, nervioso, excitado, aburrido, entusiasta, etc.);
  • Lo que est谩s usando;
  • Lo que est谩s comiendo o bebiendo; y
  • mucho m谩s!

Cuando est谩s en el proceso de aprendizaje de algo, tu cerebro 芦toma una instant谩nea禄 de tu entorno.

Cuanto m谩s estimula tus sentidos, m谩s fuerte es la conexi贸n.

Pero no todo son buenas noticias.

Dentro del mismo contexto y ambiente, te desempe帽as muy bien. Fuera de 茅l, no tanto.

Estoy seguro de que no necesitas pensar mucho en el momento en que eso ocurri贸. Ahora ya sabes por qu茅.

As铆 que, para poder usar las cosas que aprendiste de una forma m谩s adaptable, es muy recomendable que var铆es tu entorno mientras intentas aprender cualquier habilidad.

驴Aprendiendo a jugar al tenis? Practica en diferentes canchas. Practica a diferentes temperaturas.

Practica contra diferentes oponentes. Practica con diferentes raquetas.

Te garantizo que mejorar谩s tu juego de tenis si cambias todas esas cosas. En cuanto a la programaci贸n, practica usando diferentes lenguajes.

Practica con diferentes marcos de trabajo. Practica con el frontend y el backend.

Practica con diferentes IDEs. Pruebe la programaci贸n en parejas.

Haz programaci贸n funcional. Hacer programaci贸n orientada a objetos.

Hacer programaci贸n basada en componentes. Pruebe la programaci贸n de scripts.

Pruebe el aprendizaje autom谩tico. Codifica en tu habitaci贸n, en la sala de estar, en la cocina, en los caf茅s, en la escuela, fuera, etc.

Intenta con diferentes tipos de m煤sica. Hay una combinaci贸n infinita de cosas que puedes hacer!

4. 驴Cu谩les son los conceptos b谩sicos de la programaci贸n?

La verdad es que la habilidad de programaci贸n es demasiado amplia.

Si quieres aprender 芦programaci贸n禄, perder谩s la motivaci贸n r谩pidamente.

隆Es abrumador m谩s all谩 de la imaginaci贸n verlo como una sola entidad! Como tal, la separaremos en las siguientes subhabilidades (no te dejes llevar por los nombres, te simplificar茅 todo):

4.1 L贸gica booleana y condicional

Una expresi贸n booleana es algo que eval煤a a un valor binario de verdadero o falso.

En la mayor铆a de los idiomas, se eval煤an usando estos signos de igualdad:

  • ==: Equivale a
  • >=: Mayor o igual que
  • <=: Menor o igual a
  • >: M谩s grande que
  • <: Menos que
  • !=: No es igual

En la mayor铆a de los idiomas, = es una asignaci贸n de valor, no una expresi贸n booleana.

A veces tambi茅n ver谩s :=, ->, o =>.

Si imprimes los valores de a despu茅s de var a = 3, se imprimir铆a 3.

Si imprime a == 3, el valor ser谩 o bien true o bien falso dependiendo del valor de a.

Si previamente le asign贸 a a el valor de 3, se imprimir谩 true.

Si no, se imprimir谩 falso.

La l贸gica condicional es la evaluaci贸n de una expresi贸n booleana.

B谩sicamente: si esto es esto, entonces eso.

Vemos que todo ese tiempo en nuestra vida cotidiana.

Si aprendo a programar, entonces obtendr茅 [un mejor trabajo, felicidad, dinero, etc.].

aprender a programar, en este caso, es la expresi贸n booleana que es verdadera.

Una expresi贸n condicional puede tener m煤ltiples partes definidas por y/o.

si como prote铆nas Y hago un entrenamiento duro en el gimnasio entonces me crecer谩n los m煤sculos.

Si la mayor铆a de los lenguajes, 芦y禄 se define por && y 芦o禄 se define por ||.

Tambi茅n puedes agrupar expresiones booleanas con ( y ).

si (a || (b && c)) entonces d.

si (compro flores || (cocino la cena && lavo los platos)) entonces mi esposa estar谩 feliz.

Como probablemente se imaginan, esto puede ponerse muy complejo.

En la secci贸n 5.2, les mostrar茅 c贸mo los buenos programadores mantienen esto f谩cil de entender para cualquiera que lea su c贸digo.

4.2 Variables

Para mantenerlo realmente simple, las variables son algo llamado que tiene un valor.

Por ejemplo:

int numTrees = 6
;string orchardName = 芦Golden Apple Orchard禄;
bool isOpen = true;
int[] applesInTrees = {12, 4, 8, 7, 2, 4};
float collectionRatePerHour = 23.2;

Los buenos programadores usar谩n las variables de forma descriptiva en lugar de los valores de 芦c贸digo duro禄.

Aqu铆 hay un ejemplo de un valor 芦hard-coding禄:

si (numTreesCollected < 6) {//
TODO: hacer algo}

驴Qu茅 significa 6 aqu铆 para alguien que no est谩 familiarizado con el huerto o el c贸digo? Nada.

Ahora, si usamos variables en su lugar, es mucho m谩s claro:

si (numTreesCollected < numTrees) {///
Sigue recolectando}

Podr铆amos escribirlo de esta manera debido a la matriz de manzanas-谩rboles:

si (numTreesCollected < manzanasInTrees.length) {///
Sigue recolectando}

Tipos de datos primitivos

En el c贸digo anterior, se le presentaron los tipos de datos presentes en cada idioma:

  • int es un valor num茅rico que no admite decimales.

    Algunos idiomas permiten valores 芦con signo禄 o 芦sin signo禄, lo que significa que evita los n煤meros negativos de no.

    Por defecto, se permiten los n煤meros negativos.

  • string es una 芦cadena de caracteres禄.

    B谩sicamente: texto.

    Su longitud es variable a cualquier tama帽o.

  • bool es un valor booleano de s贸lo dos valores posibles: verdadero o falso.

    Cada declaraci贸n if que se ve eval煤a el valor de una expresi贸n booleana (uno o m谩s valores booleanos)

  • la flotaci贸n es un valor num茅rico que soporta los decimales.

    Algunos idiomas soportan el doble para una mayor precisi贸n en los decimales.

  • la matriz se representa aqu铆 con int[].

    Esto significa una colecci贸n de valores int.

    Se pueden crear arrays a partir de la mayor铆a de los tipos de datos, y ciertamente de todos los primitivos mencionados anteriormente.

Yendo m谩s all谩

Esta subsecci贸n apenas ara帽贸 la superficie de lo que son las variables.

Se recomienda encarecidamente investigar el tema m谩s a fondo una vez que se tenga una mayor comprensi贸n de la programaci贸n en general.

4.3 Bucles

驴Cu谩l es la suma de los siguientes n煤meros: 2, 6 y 7? Bastante simple, 驴verdad? 驴C贸mo lo hiciste?

La mayor铆a de la gente repasa cada n煤mero, manteniendo una suma continua y s贸lo suma dos n煤meros a la vez.

Algo as铆:

  • 2+6 = 8
  • 8 + 7 = 15

En tu cerebro, esto requiri贸 dos iteraciones.

En este ejemplo muy simple, sabemos cu谩ntos n煤meros tenemos y cu谩les son sus valores.

Eso es raramente el caso en la programaci贸n.

Como se mencion贸 brevemente en la secci贸n anterior, tienes el concepto de una matriz.

En su forma m谩s simple, es una lista de valores.

No sabes cu谩ntos valores hay y cu谩les son los valores.

Digamos que quieres escribir un algoritmo que cuente el n煤mero total de manzanas en cualquier huerto.

Los datos se recoger铆an en una matriz para registrar cu谩ntas manzanas posee un 谩rbol.

Para un huerto, la matriz podr铆a ser algo as铆:

var manzanas = [12, 4, 8, 7, 2, 4]

Otra huerta puede tener este arreglo:

var manzanas = [8, 7, 6, 5, 9]

驴C贸mo se crea un algoritmo que funcione en cualquier escenario para contar la suma de las manzanas? La respuesta es con un concepto llamado bucles.

En 煤ltima instancia, no es en absoluto diferente de lo que hiciste en tu cabeza arriba.

Hag谩moslo de nuevo usando la primera matriz:

  • 12+4 = 16
  • 16+8 = 24
  • 24+7 = 31
  • 31+2 = 33
  • 33+4 = 37

As铆 es como se ver铆a el c贸digo:

var manzanas = [12, 4, 8, 7, 2, 4];
var suma = 0;for (var i = 0; i < manzanas.longitud; i++) {suma
= suma + manzanas[i]; }imprimir
suma;

Esa 煤ltima l铆nea imprimir铆a 37 en su pantalla.

Est谩n pasando muchas cosas en el c贸digo de arriba.

Un bucle de for pasa por cada valor de una matriz uno por uno, de un 铆ndice a otro.

En el ejemplo anterior, empezamos desde el 铆ndice 0 (ver var i = 0;).

En la mayor铆a de los lenguajes de programaci贸n, el primer 铆ndice de una matriz no es 1, sino 0.

En el caso anterior, en el 铆ndice 0, el valor es 12.

En el 铆ndice 1, el valor es 4.

Nuestro rango de 铆ndices en el caso anterior es de 0 al n煤mero de valores presentes en la matriz, indicados por apples.length.

Esencialmente, var i = 0; i < apples.length; i++ significa que el algoritmo est谩 recorriendo cada 铆ndice uno por uno (i++), empezando por el primer 铆ndice hasta el 煤ltimo.

Por lo tanto, hay tres componentes de un bucle de for:

  • 脥ndice inicial;
  • 脥ndice final; y
  • N煤mero de pasos por iteraci贸n.

para (startIndex; endIndex; numSteps)

Si el c贸digo anterior, si cambiara i++ por i + 2 sumar铆a todos los dem谩s valores: 12+8+2 = 22.

apples[i] significa el valor en el 铆ndice en el que se encuentra el bucle actualmente.

Si sustituyes i aqu铆 por apples[3], el valor que obtendr谩s es 7.

Aqu铆 est谩 la matriz de nuevo como referencia:

var manzanas = [12, 4, 8, 7, 2, 4];

  • manzanas[0] = 12
  • manzanas[1] = 4
  • manzanas[2] = 8
  • manzanas[3] = 7
  • manzanas[4] = 2
  • manzanas[5] = 4

El bucle de arriba b谩sicamente realiza esto:

var suma = manzanas[0] + manzanas[1] + manzanas[2] + manzanas[3] + manzanas[4] + manzanas[5]

驴Entendido?

S茅 que esto parece complejo ahora mismo, y por eso necesitas practicar durante el 80% de tu tiempo de aprendizaje.

porque es el bucle m谩s com煤n.

Tambi茅n encontrar谩s regularmente el bucle while.

Significa 芦haz algo hasta que termine禄.

Ejemplo: Recoge manzanas hasta que no haya m谩s manzanas que recoger.

Digamos que tomamos el primer huerto que tiene 37 manzanas:

var numApples = 37
;while (numApples > 0) {numApples
= numApples – 1;
print numApples; }

驴Qu茅 crees que pasar谩 aqu铆?

Ver谩s esto impreso en tu pantalla:

  • 36
  • 35
  • 34
  • 33
  • 0

Ver谩 37 valores impresos.

El c贸digo en el bucle while se seguir谩 ejecutando hasta que se cumpla la condici贸n: numApples > 0, alias – 隆hasta que todav铆a tengamos manzanas que recoger!

4.4 Funciones

Las funciones hacen que las piezas del c贸digo sean reutilizables.

驴Recuerdas el bucle de for de arriba para calcular la suma de manzanas del primer huerto? 驴C贸mo haces que funcione para CUALQUIER huerto? Hagamos algunos ajustes:

funci贸n countApples(manzanas) {var
suma = 0; for (var i = 0; i < manzanas.longitud; i++) {sum
= suma + manzanas[i]; }

devolver

suma;

}

隆Has creado tu primera funci贸n/m茅todo! Esto, por s铆 solo, en realidad no hace nada.

As铆 es como usar铆as la funci贸n:

var huerto1 = [12, 4, 8, 7, 2, 4];
var huerto2 = [8, 7, 6, 5, 9];imprimir cuentaAmpollas(huerto1
); imprimir

cuentaAmpollas(huerto2);

Esto imprimir铆a 37 y 35 en su pantalla.

驴C贸mo? Excavemos m谩s profundamente.

Cuando escribes print countApples(orchard1) est谩s enviando la matriz de orchard1 al algoritmo que creaste anteriormente.

Esencialmente se vuelve exactamente como los ejemplos en 4.2:

var manzanas = [12, 4, 8, 7, 2, 4];
var suma = 0;for (var i = 0; i < manzanas.longitud; i++) {suma
= suma + manzanas[i]; }imprimir
suma;

Mientras que fuera de la funci贸n, huerta1 se refiere a [12, 4, 8, 7, 2, 4], se convierte en una variable m谩s gen茅rica llamada manzanas en la funci贸n.

En t茅rminos de valores, al llamar a countApples(orchard1), orchard1 es igual a manzanas en la funci贸n countApples.

De manera similar, cuando se llama a countApples(orchard2), orchard2 es igual a manzanas en la funci贸n countApples.

Con esa funci贸n, ahora puede contar el n煤mero de manzanas de cualquier huerto sin necesidad de reescribir los m煤ltiplos l贸gicos/algor铆tmicos.

S贸lo tienes que usar la funci贸n/m茅todo countApples y pasarle el conjunto de valores que has recogido.

4.5 Idioma(s)

Si tomamos el algoritmo anterior y lo convertimos a diferentes idiomas, se ver铆a algo as铆:

Javascript

funci贸n contarManzanas(manzanas) {var
suma = 0;
for (var i = 0; i < manzanas.longitud; i++) {suma
= suma + manzanas[i];
}suma

de retorno

; }var
huerto1 = [12, 4, 8, 7, 2

, 4

]
; var
huerto2 = [8, 7, 6, 5, 9];console.log (contarManzanas(huerto1

)); console.log (contarManzanas

(
huerto2));

Java

int countApples(manzanas) {int
sum = 0;
for (int i = 0; i < manzanas.longitud; i++) {sum
= suma + manzanas[i];

}suma de retorno

; }int
[] orchard1 = {12, 4, 8, 7, 2, 4}; int
[] orchard2 = {8, 7, 6, 5, 9};Sistema.

o

ut.println (cuentaApples(huerto1));
System.out.println (cuentaApples(huerto2));

Python

def countApples(manzanas)
:sum = 0 por x en manzanas:
sum = sum + x

volver huerta1 = [12, 4, 8, 7, 2, 4
]huerta2 = [8, 7, 6, 5, 9]imprimir cuentaAmpollas(huerta1)imprimir cuenta
Ampollas

(huerta2)

驴No es fascinante?

Es como las lenguas habladas que vienen de la misma ra铆z.

El franc茅s: Je parleItalian
:

Lo parlo

Si entiendes 芦je parle禄 en franc茅s, es muy f谩cil entender 芦lo parlo禄 en italiano.

Del mismo modo, si entiendes c贸mo crear un bucle en un lenguaje de programaci贸n, puedes aprender f谩cilmente a crear un bucle en otro lenguaje.

Todos los lenguajes modernos tienen variables, bucles y funciones.

S贸lo que tienen una sintaxis diferente.

As铆 que, cuando la gente me pregunta qu茅 lenguaje de programaci贸n deber铆an aprender primero, normalmente respondo que depende de lo que quieran lograr.

Cada lenguaje tiene marcos de trabajo que lo soportan.

4.6 Framework(s)/Aplicaciones del lenguaje

Si quieres hacer aprendizaje de m谩quina o estad铆stica, probablemente usar谩s Python o R.

Si quieres crear un software r谩pido y robusto, usar铆as Java o C++.

Tal vez C#.

Si quieres programar una aplicaci贸n web, usar铆as Javascript.

Si quieres escribir c贸digo de fondo, usar铆as Python, Ruby, Javascript, o Go.

Si quieres escribir scripts, usar铆as Go, Python, o Swift.

Sin embargo, estas no son reglas de oro.

Es s贸lo que estos lenguajes tienen marcos de trabajo que te permiten usar el lenguaje m谩s f谩cilmente para contextos espec铆ficos.

4.7 Guiones

El objetivo principal de escribir guiones es automatizar los procesos.

Digamos que quieres cambiar el tama帽o de una colecci贸n de 10.000 fotos en miniaturas.

Hacerlo todo manualmente suena horrible, 驴no? Escribiendo un gui贸n, puedes automatizar el proceso sin tener que cambiar el tama帽o de una sola.

Puedes usar el gui贸n para muchos prop贸sitos diferentes.

Puedes crear p谩ginas web para almacenar datos en una hoja de c谩lculo.

Puedes copiar el contenido de una p谩gina web en tu portapapeles.

Puedes convertir cualquier tipo de datos en otro tipo de datos.

Las posibilidades son infinitas.

Usualmente, usar铆as scripts para una tarea espec铆fica que es aut贸noma, lo que significa que no necesita ser parte de un marco de trabajo m谩s grande.

Por ejemplo, los trozos de c贸digo que hemos escrito hasta ahora se considerar铆an scripts.

4.8 Frontend

El desarrollo del front贸n tiene que ver con cualquier cosa que puedas ver visualmente.

Por ejemplo, un sitio web con su dise帽o (HTML) y su estilo (CSS).

El c贸digo del frontend se ejecuta en el ordenador del usuario.

Un sitio web est谩tico es completamente c贸digo de frontend.

Si usas herramientas visuales como WordPress o Squarespace, eso tambi茅n es frontend.

WordPress y Squarespace tienen c贸digo en su backend que hace que tu frontend funcione.

Cuando la gente habla de frameworks como React, Angular, y Vue.js por ejemplo, estos son todos frameworks de frontend.

隆Hay TONELADAS de ellos!

El desarrollo del frontend sol铆a ser simple, con s贸lo HTML, Javascript y CSS para trabajar.

Luego vino jQuery.

Luego vino todo lo dem谩s.

Nuevos frameworks est谩n saliendo casi todas las semanas.

Debido al siempre cambiante conjunto de 芦herramientas禄 de frontend, puede que quieras empezar a aprender los frameworks m谩s populares y aprender los otros en el trabajo, seg煤n sea necesario.

4.9 Backend

El desarrollo del backend tiene que ver con cualquier cosa que se haga fuera de lo que la gente ve.

Se ejecuta en servidores normalmente lejos del ordenador del usuario, en el servidor o servidores de una empresa.

Podemos ver el frontend como el cuerpo y el backend como el cerebro.

Sabes que el cerebro es responsable de lo que hace tu cuerpo, pero nunca lo 芦ves禄 en acci贸n.

Muchas aplicaciones web dependen en gran medida de los backends para ejecutar el trabajo intensivo de la CPU o la memoria.

驴Has estado alguna vez en un sitio web donde te digan que vuelvas m谩s tarde y que puedas cerrar la ventana? Eso es porque su backend est谩 trabajando en la tarea.

Est谩 trabajando en sus servidores, no en tus ordenadores.

S贸lo se env铆a el resultado a tu ordenador una vez que se ha ejecutado en sus servidores.

Las principales ventajas son que los servidores son m谩s poderosos que tu m谩quina y pueden ejecutar c贸digo m谩s r谩pido.

El backend es tambi茅n el responsable de almacenar los datos en una base de datos.

Normalmente, el frontend s贸lo tiene acceso a una subsecci贸n de los datos para su recuperaci贸n.

Tambi茅n puede enviar los cambios de los datos al backend para su procesamiento.

En su forma m谩s simple, puede significar simplemente 芦insertar en la base de datos禄.

5. 驴C贸mo puedo convertirme en un buen programador?

Lo b谩sico de arriba te ayuda a empezar, pero no ser谩s un muy buen programador a煤n con eso.

A continuaci贸n, explicar茅 algunas formas de pasar de novato a bueno en poco tiempo.

Esta secci贸n es la m谩s compleja, as铆 que si no puedes seguirla en este momento, 隆no olvides marcarla para volver a visitarla m谩s tarde cuando tu mente est茅 m谩s despierta!

5.1 Escribir un c贸digo limpio como un campe贸n

Digamos que est谩s trabajando en un juego de plataformas 2D en Unity.

Quieres a帽adir una simple detecci贸n de alcance para decidir cu谩ndo un enemigo debe atacar al jugador.

Un programador normal puede escribir c贸digo que se vea as铆 (si no utiliza colisionadores):

void Update() {if
(Mathf.Abs(transform.position.x * 100.0 – player.transform.position.x * 100.0) <= 10.0) {isAttacking
= true;
animation.SetAnimation(0, 芦attack禄, false); }}

Si eso te aterroriza, deber铆a hacerlo.

Escribir un c贸digo limpio se trata de hacer tan f谩cil de entender que simplemente est谩s leyendo ingl茅s.

El ejemplo anterior es extremadamente simple, pero podemos hacerlo mucho mejor.

Aqu铆 hay una forma en que un programador m谩s avanzado puede escribirlo:

////
N煤cleo l贸gico Evitar Actualizar() {if
(IsCloseToPlayer())
Atacar(); }////

Detalles

de implementaci贸nbool IsCloseToPlayer() {

retorno

(PositionDifference(transform, player.transform) <= ATTACK_DETECTION_RANGE); }flota
PositionDifference(Transform t1, Transform t2) {retorno
Mathf.

A

bs(GetHorizontalPosition(t1) – GetHorizontalPosition(t2)); }float GetHorizontalPosition(Transform t) {return
t
.position.x * PIXELS_PER_UNIT; }void
Attack() {if
(isAttacking) return; // No es necesario repetir si ya est谩 atacando isAttacking = true;
int animationTrack = 0;
bool loop
= false;

animaci贸n.SetAnimation(animationTrack, 芦attack禄, loop); // Se reiniciar谩 isAttacking despu茅s de AnimationComplete}const
float PIXELS_PER_UNIT = 100.0; // N煤mero de p铆xeles en un solo Unity world view unitconst
float ATTACK_DETECTION_RANGE = 10.0;

驴Cu谩l es una de las primeras cosas que est谩s notando?

芦Hay mucho m谩s c贸digo禄, 驴verdad?

驴Me llev贸 m谩s tiempo escribir? 隆Puedes apostarlo! Pero aqu铆 est谩 el porqu茅 es mejor que el primer bloque de c贸digo (m谩s explicaci贸n tambi茅n en la secci贸n 5.2):

Abstracci贸n y encapsulaci贸n

Ocultar los detalles de la aplicaci贸n.

Si miras de nuevo la funci贸n Update() del segundo bloque de c贸digo:

anula Update() {if
(IsCloseToPlayer())
Attack(); }

Es f谩cil de leer, 驴verdad? Especialmente junto a la primera versi贸n que viste anteriormente:

void Update() {if
(Mathf.Abs(transform.position.x * 100.0 – player.transform.position.x * 100.0) <= 10.0) {isAttacking
= true;
animation.SetAnimation(0, 芦attack禄, false); }}

Cuando alguien m谩s (o t煤 futuro) lee tu c贸digo, quiere entender lo que pasa primero antes de saltar a los detalles.

A veces, los detalles no son tan importantes.

Si lees el segundo bloque de c贸digo, te llevar谩 mucho m谩s tiempo entender lo que significa: 芦si estoy cerca del jugador, deber铆a empezar a atacar禄.

Crear m茅todos de tama帽o de mordida bien nombrados hace que tu c贸digo sea mucho m谩s legible.

Nombra tus condiciones booleanas.

IsCloseToPlayer() es mucho m谩s f谩cil de leer que Mathf.Abs(transform.position.x * 100.0 – player.transform.position.x * 100.0) <= 10.0

En la medida de lo posible, nombra todas tus expresiones booleanas a algo claro.

Una buena manera de hacerlo es preparando es o tiene delante el nombre de la acci贸n.

isCloseToPlayer, hasEnEnoughStorage, isAlive, etc.

Nombra tus acciones.

Attack() es mucho m谩s f谩cil de leer que:

esAttacking = true; animation
.SetAnimation(0, 芦attack禄, false);

驴Puedes encapsular un conjunto de instrucciones en una sola funci贸n con nombre? Si es as铆, 隆hazlo!

La mayor铆a de los buenos c贸digos no necesitan comentarios para explicar la l贸gica, porque las variables y las funciones se nombran correctamente.

Si necesitas un comentario para explicar un bloque de c贸digo, lo m谩s probable es que puedas crear un m茅todo bien nombrado en su lugar.

La regla de 7

驴Cu谩ntas l铆neas de c贸digo debe tener una funci贸n/m茅todo? Aqu铆 hay una respuesta simple: 7 卤 2.

La raz贸n de esto es que nuestro cerebro s贸lo puede trabajar en m谩s o menos tantas instrucciones al mismo tiempo.

Me estremezco cada vez que veo m茅todos que tienen m谩s de 9 l铆neas de c贸digo.

Aqu铆 hay un ejemplo de un juego en el que estoy trabajando:

public void SetUp() {this
.SoulReaper.SetUp(GridAllies.Team); LoadPrefabs ();
InitLists ();
grids.ForEach (grid => InitGrid (grid)); InitTimeline

(true);

InitAllyRowBonuses (
teams [0]); InitOpponentRowBonuses (
teams [1]); }

Si lees el c贸digo anterior, sabes todos los pasos necesarios para configurar esta clase (esto configura la escena de 芦Combate禄).

Es un poco t茅cnico, pero a煤n as铆 es legible para la gente normal.

La mayor铆a de los principiantes pondr铆an toda la l贸gica de inicializaci贸n aqu铆.

Te ahorrar茅 el ejemplo largo, pero combinado, son unas 250 l铆neas de c贸digo.

Nunca ser铆as capaz de leer la l贸gica de una sola vez.

Si escarbas en algunos de estos m茅todos, ver谩s que tambi茅n son menos de 7 l铆neas de c贸digo:

void InitLists () {monsters
= new List<CombatMonster> (); unreaps
= new

List<

CombatUnreap> (); stolenSouls
= new List< CombatMonster> (); }void InitTimeline
(bool soulReaperAssisting) {this.timeline

= new Timeline

(
esto); if (soulReaperAssisting)this.timeline.Add (esto
.

S

oulReaper); if (UnreapSupport)
TimelineController.gameObject.SetActive (true); }
Evitar

InitAllyRowBonuses

(
equipo

, PanelStart.transform.GetChild(2), 0); DisplayRowBonus (equipo,

PanelStart.transform.GetChild(

3), 3)

; DisplayRowBonus (equipo, PanelStart.transform.GetChild(

4), 6
);
}

Hicimos lo mismo con nuestros m茅todos en esta misma secci贸n de arriba:

bool IsCloseToPlayer() {retorno
(PositionDifference(transform, player.transform) <= ATTACK_DETECTION_RANGE); }float
PositionDifference(Transform t1, Transform t2) {retorno
Mathf.Abs(GetHorizontalPosition(t1) – GetHorizontalPosition(t2)); }float Get

HorizontalPosition(Transform t) {retorno

t
.position.x * PIXELS_PER_UNIT;

}

Mantenibilidad

La abstracci贸n y la encapsulaci贸n hacen m谩s f谩cil mantener el c贸digo en el futuro porque se entiende lo que todo significa sin tener que buscar en m谩s de 100 l铆neas de c贸digo.

En el ejemplo anterior de mi juego, si hay un problema con la l铆nea de tiempo que no se inicia correctamente, puedo simplemente buscar en mi c贸digo 芦L铆nea de tiempo inicial禄 y es muy probable que el problema radique en ese m茅todo.

Todo esto hace que el c贸digo sea mucho m谩s f谩cil de depurar.

5.2 Escribir las clases como un campe贸n

Ahora que sabemos por qu茅 el segundo bloque de c贸digo de la secci贸n 5.1 es mejor, a帽adamos m谩s.

Digamos que ahora tienes un enemigo diferente que quieres codificar.

El problema es que esta vez ataca verticalmente, y su rango de detecci贸n es mayor.

Un programador junior puede copiar + pegar el c贸digo de arriba y reemplazar el position.x con el position.y y cambiar la constante ATTACK_DETECTION_RANGE.

Podemos hacerlo mejor con el uso de clases para minimizar la duplicaci贸n de c贸digo.

Los buenos programadores no reescriben el c贸digo que no necesitan tambi茅n.

Es por eso que a menudo oir谩s que los buenos programadores son 芦perezosos禄.

Esto es lo que la clase 芦padre禄 podr铆a parecer:

clase p煤blica Enemy : MonoBehaviour { public float AttackDetectionRange = 10.0f; public string
AttackAnimationName = 芦attack禄; protected const float PIXELS_PER_UNIT = 100.0; // N煤mero de p铆xeles en una sola unidad de visi贸n mundial Unity/// N
ulo de l贸gica del n煤cleo Update

() {if
(IsCloseToPlayer())
Attack(); }
//// Detalles
de implementaci贸n bool abstracto protegido IsCloseToPlayer(); vac铆o virtual protegido Attack() {if
(

isAttacking) return; // No hay necesidad de repetir si ya est谩 atacando isAttacking = true;
int animationTrack = 0;
bool loop = false;

animaci贸n.SetAnimaci贸n(animaci贸nTrack, AtaqueNombreDeAnimaci贸n, bucle); // Se reiniciar谩 isAtaque despu茅s de Animaci贸nCompleta}
flotador protegido PositionDifference(Transform t1, Transform t2) {retorno
GetWorldPosition(t1) – GetWorldPosition(t2); } flot

ador GetWorldPosition

(Transform t) {retorno

t

.position * PIXELS_PER_UNIT;

}}

Hasta ahora, s贸lo hemos hecho una bonita clase abstracta de nuestro anterior gui贸n enemigo.

Notar谩n algunas diferencias:

  • las variables p煤blicas en la parte superior
  • variables y m茅todos protegidos
  • m茅todos abstractos
  • m茅todos virtuales
  • una PositionDifference() m谩s 芦gen茅rica禄

Una variable o m茅todo que es p煤blico es aquel que puede ser llamado por (usando la notaci贸n .

en la mayor铆a de los idiomas) cualquier instancia de la clase (un Objeto):

var instance = new Enemy();
print instance.AttackAnimationName;

Esto imprimir铆a 芦attack禄.

Si la variable no fuera p煤blica, le dar铆a un error, diciendo que la variable no es accesible.

Una variable o m茅todo que est谩 protegido es aquel que puede ser llamado por las clases de padres e hijos.

En breve nos adentraremos m谩s en el concepto.

Un m茅todo virtual (en C#) significa que puede ser anulado por una clase infantil usando la palabra clave de anulaci贸n.

Los m茅todos abstractos tambi茅n necesitan usar la palabra clave de anulaci贸n.

Ahora, no podr谩s instanciar Enemigo debido al m茅todo abstracto.

Cada m茅todo abstracto necesita ser implementado en las clases de ni帽os.

Si queremos instanciarlo, necesitamos crear una clase infantil.

Hagamos primero el atacante horizontal:

clase p煤blica EnemigoHorizontal : Enemigo { protected override bool IsCloseToPlayer() {retorno
(PositionDifference(transform, player.transform).x <= AttackDetectionRange); }}

隆Eso es!

Herencia

El bloque de c贸digo anterior toca un concepto muy importante de clases.

Probablemente el m谩s importante, 隆as铆 que presta atenci贸n! 馃檪

La herencia es una jerarqu铆a de clases que deriva su l贸gica de otras clases.

En el c贸digo anterior, EnemyHorizontal hereda todas las variables y m茅todos p煤blicos y protegidos de Enemy.

Enemigo es la clase padre.

EnemyHorizontal es la clase hija.

En la clase Enemigo, IsCloseToPlayer era abstracta.

Creamos una 芦definici贸n禄 para ello en la clase infantil llamada EnemyHorizontal.

EnemyHorizontal har谩 lo mismo que Enemy excepto por su detecci贸n del jugador en el rango (IsCloseToPlayer()).

Esta l铆nea: clase p煤blica EnemyHorizontal : Enemy puede ser le铆da como EnemyHorizontal es un tipo de Enemigo.

Es un Enemigo, pero con l贸gica adicional.

El bloque de c贸digo anterior es 100% equivalente a la siguiente versi贸n que no utiliza la herencia:

clase p煤blica EnemyHorizontal : MonoBehaviour { public float AttackDetectionRange = 10.0f; public string
AttackAnimationName = 芦attack禄; protected const float PIXELS_PER_UNIT = 100.0; // N煤mero de p铆xeles en una sola unidad de visi贸n mundial de la Unidad //// N
ulo de la l贸gica del n煤cleo

Update() {if
(IsCloseToPlayer())
Attack(); }
//// Detalles
de implementaci贸n protegido bool IsCloseToPlayer() {
retorno

(PositionDifference(transform, player.transform).x <= AttackDetectionRange); }

vac铆o

virtual protegido Attack() {if

(

isAttacking) return; // No es necesario repetir si ya est谩 atacandoisAttacking = true; int
animationTrack = 0;bool
loop = false;

animaci贸n.SetAnimaci贸n(animaci贸nTrack, AtaqueNombreAnimaci贸n, bucle); // Se reiniciar谩 isAtaque despu茅s de Animaci贸nCompleta}
flotador protegido PositionDifference(Transform t1, Transform t2) {retorno
GetWorldPosition(t1) – GetWorldPosition(t2); } flot

ador GetWorldPosition

(Transform t) {retorno

t

.position * PIXELS_PER_UNIT;

}}

Eso es un poco m谩s largo, 驴verdad?

Ahora, vamos a crear el atacante vertical:

clase p煤blica EnemigoVertical : Enemigo { bool de anulaci贸n protegido IsCloseToPlayer() {retorno
(PositionDifference(transform, player.transform).y <= AttackDetectionRange); }}

隆Eso es!

En ambos casos, como AttackDetectionRange y AttackAnimationName son variables p煤blicas, podemos establecer cualquier valor para ellas.

Por lo tanto, podemos crear una cantidad infinita de enemigos que pueden atacar tanto horizontal como verticalmente.

Por ejemplo:

# Goomba : EnemigoHorizontal#
AttackDetectionRange = 5.0;# Koopa : EnemigoHorizontal#
AttackAnimationName = 芦hide_in_shell禄# HammerBro : EnemigoVertical#
AttackDetectionRange = 15.0;# At

tackAnimationName

= 芦throw_hammer禄;

Todo eso est谩 bien, pero 驴qu茅 pasa si el patr贸n de ataque es diferente? 驴Qu茅 pasa si quiero un monstruo que est谩 atacando constantemente cuando est谩 en el rango?

驴Puedes averiguarlo por ti mismo?

Si no, aqu铆 hay una forma de implementarlo:

clase p煤blica EnemyBrawler : HorizontalEnemy { void Update() {this
.isAttacking = IsCloseToPlayer();
Attack(); }
protected override void Attack() {if
(!isAttacking || animation.animationName == AttackAnimationName) return; // No contin煤e si ya est谩 atacando

int animationTrack = 0
;bool loop = true;

animation.SetAnimation(animationTrack, AttackAnimationName, loop);
}

Aqu铆 est谩 c贸mo se ver铆a la jerarqu铆a de clases en este punto:

Enemigo es la clase madre de Horizontal y Vertical.

Horizontal es la clase madre de Brawler.

Horizontal y Vertical son clases hijas de Enemigo.

Y Brawler es una clase infantil de Horizontal.

As铆 que, mientras que en el segundo bloque de c贸digo de la secci贸n 5.1, puede parecer que a帽adimos tanto c贸digo in煤tilmente, que acortamos el c贸digo a largo plazo y evitamos cualquier duplicaci贸n de c贸digo.

Esto nos lleva al concepto de Cohesi贸n:

Cohesi贸n

La cohesi贸n se refiere al grado en el que los elementos dentro de un m贸dulo pertenecen juntos.

En nuestro sencillo ejemplo anterior, cada enemigo s贸lo tiene una acci贸n que realizar: Atacar.

Si tuvi茅ramos que a帽adir m谩s acciones, 驴cu谩les ser铆an?

La simple pregunta que hay que hacerse es d贸nde se decide qu茅 m茅todos debe tener una clase: 芦驴Tiene sentido que este objeto realice esa acci贸n?禄 Si no, la acci贸n debe ser a帽adida a una clase diferente.

Aqu铆 hay un ejemplo:

clase p煤blica Animal {Evitar
Mover() {//
TODO: Implementar esto}}clase

p煤blica Perro

: Animal {Evitar

Ladrido

() {//
TODO: Implementar esto}}}clase

p煤blica

Gato : Animal {Evitar maullido() {// TODO: Implementar

esto}

ladrido de vac铆o

()

{// TODO

: ???

}}

Este ejemplo es intencionadamente rid铆culo para probar un punto.

Es extremadamente com煤n que los programadores a帽adan un m茅todo a una clase a la que no pertenece porque tampoco pertenece a otras clases existentes.

La clase Gato aqu铆 es un ejemplo de una clase con baja cohesi贸n.

5.3 Usar Git como un campe贸n

隆T贸mese esto muy en serio, por favor! 隆No hay nada que los programadores veteranos odien m谩s que resolver conflictos de fusi贸n y cuando se pueden evitar!

Lo m谩s b谩sico

En su forma m谩s b谩sica, Git es un 芦marco禄 para colaborar en una base de c贸digo.

Git se encarga del versionado y la fusi贸n de archivos de una confirmaci贸n en otra.

El c贸digo de Git se almacena en un repositorio, que vive en un servidor de Git.

Como usuario, comprobar谩s una rama del c贸digo, normalmente desarrollada o masterizada.

Esto significa que ahora est谩 almacenado en tu ordenador.

Cualquier cambio que hagas permanecer谩 en tu ordenador local hasta que env铆es tus confirmaciones a una rama remota.

Sin embargo, no puedes enviar los cambios hasta que los hayas confirmado en tu versi贸n local de la rama.

Uf!

Aunque suena complicado, aqu铆 est谩 el proceso m谩s b谩sico cuando se trabaja solo:

git commit – es 芦algo
禄 git push origin
develop

La primera l铆nea crea una instant谩nea de su c贸digo (una confirmaci贸n) con la anotaci贸n: 芦algo禄.

La segunda l铆nea env铆a el c贸digo de confirmaci贸n al servidor remoto, a la rama llamada 芦develop禄.

Eso es bastante simple hasta ahora ya que est谩s trabajando solo, pero digamos que Jane se une al proyecto.

Para mantener las cosas simples, Jane tambi茅n est谩 trabajando en la rama de desarrollo.

La rama de desarrollo remota es la 芦fuente de la verdad禄.

Es donde se almacena la versi贸n m谩s final del c贸digo que puede ser ejecutada por todos en el proyecto.

Ahora, tanto t煤 como Jane tienen una rama local del mismo nombre (develop).

Digamos que ambos quieren trabajar en el mismo archivo al mismo tiempo: EnemigoHorizontal.

Quieres definir el m茅todo IsCloseToPlayer() (especificado por la palabra clave override), y ella quiere a帽adir un nuevo m茅todo llamado UpdateRange().

Una vez que termine de implementar su c贸digo, lo har谩:

git commit -am 芦implemented IsCloseToPlayer
芦git push origin
develop

Poco despu茅s, Jane termina su parte y hace lo mismo:

git commit -am 芦added UpdateRange method to EnemyHorizontal
芦git push origin develop

Git no permitir谩 que la segunda l铆nea pase.

驴Por qu茅 crees que es as铆?

En el momento en que Jane presiona su c贸digo, el desarrollo remoto tiene un nuevo commit de ti, est谩 m谩s adelantado que su sucursal local en t茅rminos de c贸digo.

Antes de que ella pueda empujar su confirmaci贸n, tendr谩 que tirar de los 煤ltimos cambios en el desarrollo remoto.

Se hace de esta manera:

git pull origin develop

Esto fusiona los 煤ltimos compromisos de la rama de desarrollo remoto con su rama de desarrollo local.

As铆 que ahora Jane tiene implementado el m茅todo IsCloseToPlayer en su rama local tambi茅n, adem谩s de su c贸digo.

Ahora puede empujar con seguridad (隆siempre que nadie m谩s lo haga antes que ella!).

git empujar origen desarrollar

Para estar seguro, siempre debes tirar antes de empujar.

git commit -am 芦algo
禄 git pull origin developgit
push

origin develop

Conflictos

Le temer谩s a la palabra.

Y te pasar谩 a ti.

Digamos que t煤 y Jane no se comunicaron correctamente y ambos trabajaron en el m茅todo IsCloseToPlayer para la clase de HorizontalEnemy.

Jane se compromete y empuja sus cambios primero, seguido de ti:

git commit -am 芦implemented IsCloseToPlayer on EnemyHorizontal
芦git pull origin
develop

BAM! Gran advertencia de Git: 芦隆Tienes conflictos de fusi贸n!禄

Bueno, esto apesta.

驴Qu茅 ha pasado?

Git no puede decidir si su versi贸n del c贸digo es 芦mejor禄 que la de Jane.

Ambos comenzaron desde la misma base de confirmaci贸n y cambiaron la misma parte del c贸digo.

No hay forma de saber qu茅 versi贸n del nuevo c贸digo es mejor.

Entonces depende de ti decidir.

Git te mostrar谩 las diferencias, y t煤 tienes que resolver el conflicto.

T煤 decides si tu versi贸n es mejor o la de ella.

Podr铆as hacer una de dos cosas aqu铆: (1) revertir tus cambios y aceptar los de ella o (2) resolver el conflicto usando tu versi贸n del c贸digo, y luego empujar de nuevo.

Flujo de trabajo de GitFlow

S茅 que todo esto suena complicado por ahora, pero se vuelve mucho m谩s complicado..

El proceso anterior funciona bien para los equipos muy peque帽os que trabajan en proyectos peque帽os, pero empieza a quedarse corto muy r谩pidamente.

Quieres minimizar los conflictos y las p茅rdidas de c贸digo tanto como puedas.

Un 芦marco de trabajo禄 com煤n es el flujo de trabajo de GitFlow.

Lo uso todo el tiempo en mis proyectos.

Entrar en los detalles del flujo de trabajo estar铆a fuera del alcance de este art铆culo, pero terminar铆a pareci茅ndose a algo as铆:
Puedes encontrar m谩s informaci贸n sobre ello aqu铆.

5.4 Volverse locamente ingenioso

Esta es la habilidad n煤mero uno de cualquier programador.

Lo cual es genial porque tambi茅n es una de las habilidades m谩s 煤tiles que puedes dominar.

A medida que sigas aprendiendo a programar, te encontrar谩s frecuentemente con stackoverflow.com o sitios web similares.

Cuando buscas en Google c贸mo hacer algo en programaci贸n, es probable que alguien m谩s haya tenido el mismo problema que t煤 y que otra persona haya dado una respuesta clara y c贸mo solucionarlo.

Esa pregunta/respuesta probablemente se encuentra en StackOverflow.

As铆 que, como desarrollador junior, pasa una buena cantidad de tiempo buscando en Google c贸mo resolver las cosas en el lenguaje y el marco de trabajo que est谩s usando.

No hay que avergonzarse de no saber todas las respuestas.

Simplemente hay demasiado en la programaci贸n para saberlo todo.

Si estoy trabajando en un lenguaje con el que no estoy familiarizado, a menudo busco en Google la sintaxis.

Si estoy trabajando en un marco de trabajo que nunca he usado antes, busco en Google 芦How do I do <this> in <that> framework禄.

Todo el mundo hace eso.

En el mundo de la programaci贸n, siempre se espera que seas ingenioso y que averig眉es las respuestas por ti mismo primero, lo cual es una gran manera de aprender cualquier cosa.

Si no puedes averiguarlo despu茅s de intentarlo, entonces es el momento de buscar ayuda de otros, ya sea en persona o preguntando en StackOverflow.

La programaci贸n es el tipo de habilidad que nunca deja de evolucionar.

Si no puedes adaptarte, te quedas fuera.

Cuando contrato programadores, me gusta darles tareas en lenguajes con los que nunca han trabajado.

驴Estresante? Claro, pero eso demuestra lo adaptables que son.

Y eso, para m铆, es m谩s valioso que alguien que conoce el 95% de un idioma.

6. 驴D贸nde puedo encontrar un buen material para aprender a programar?

Nada es eterno con la Programaci贸n, as铆 que es dif铆cil recomendar cosas que permanecer谩n valiosas para siempre.

En el momento de escribir esto, estos sitios web han seguido siendo excelentes para aprender programaci贸n (no estoy afiliado a ninguno de ellos):

  • https://www.codecademy.com
  • https://www.khanacademy.org/computing/computer-programming
  • https://www.udacity.com
  • https://lambdaschool.com
  • https://www.appacademy.io
  • https://www.freecodecamp.org/
  • https://www.youtube.com/user/learncodeacademy

Si te gustan los libros, hace m谩s de una d茅cada, le铆 Code Complete, de Steve McConnell, y se ha mantenido como la gu铆a m谩s completa sobre c贸mo convertirse en un gran programador.

Aparte de eso, sigue siendo ingenioso.

Esfu茅rzate siempre por encontrar nuevos y grandes recursos!

7 consejos y trucos para aprender a programar m谩s r谩pido

Una de las preguntas comunes y b谩sicas entre los estudiantes o alguien que quiere aprender c贸digo es 芦驴C贸mo puedo aprender a programar r谩pido y hacer una carrera como programador?禄.

Tanto si eres un estudiante, como si eres una persona nueva o experimentada que intenta cambiar tu trabajo en la programaci贸n, definitivamente intentar谩s encontrar consejos y trucos para aprender a programar de forma r谩pida y efectiva.

El trabajo de los programadores es uno de los trabajos mejor pagados del mercado y uno de los m谩s interesantes que la gente encuentra.

aprender a programar y dominarlo puede llevar a帽os para un principiante.

La mayor铆a de la gente se da por vencida antes de empezar de verdad.

Al principio, nos entusiasma el concepto de aprender a programar, pero m谩s tarde, en la mayor铆a de los casos, los estudiantes o principiantes se rinden r谩pidamente porque les resulta dif铆cil continuar, se quedan atascados y tienen dificultades para encontrar la soluci贸n de un c贸digo.

Aprender a programar no es un viaje nocturno pero tampoco es tan dif铆cil como la gente piensa, todo lo que requiere es dedicaci贸n, pasi贸n, inter茅s y definitivamente paciencia.

Hay tantos recursos en l铆nea y fuera de l铆nea disponibles para aprender a programar de manera f谩cil, r谩pida y efectiva.

Discutiremos algunos consejos para aprender a programar de manera efectiva y r谩pida.

donde y como aprender programacion y primeros pasos para programar

1. Aclare sus fundamentos:

Un error com煤n que un estudiante o principiante comete mientras aprende programaci贸n es saltarse los fundamentos o el cap铆tulo 1 y saltar directamente al siguiente cap铆tulo de inmediato.

Para entender los conceptos avanzados de programaci贸n es necesario tener muy claros los fundamentos de la programaci贸n.

Si en alg煤n momento cometes el mismo error, acabar谩s con muchas confusiones y tendr谩s que volver a tus fundamentos de nuevo.

Estos fundamentos son Estructuras de Datos, variables, estructuras de control, sintaxis, herramientas o editores de texto.

Cuando empieces a programar, elige un lenguaje de programaci贸n, c铆帽ete a 茅l y aclara primero todos los fundamentos de la programaci贸n antes de pasar al siguiente nivel.

Tu tiempo total para aprender a programar se ahorrar谩 definitivamente si sigues este camino.

2. Aprende haciendo, practicando y no s贸lo leyendo:

Un error com煤n que los principiantes cometen mientras aprenden a programar es leer un libro o mirar el c贸digo de muestra en su escritorio sin practicarlo.

Es f谩cil leer acerca de los bucles, las variables y tener todas las cosas en la cabeza, pero la programaci贸n real no funciona de esta manera.

Realmente necesitas ensuciarte las manos en la programaci贸n y seguir practic谩ndola regularmente.

Cuando empiezas a programar te enfrentas a muchos problemas, te quedas atascado ah铆, se te pedir谩 que implementes el c贸digo de forma pr谩ctica y que encuentres la soluci贸n a un problema espec铆fico y ah铆 te rascar谩s la cabeza mientras implementas el c贸digo.

Cuando escribes el c贸digo, juegas con el c贸digo, cambias tu c贸digo para ver diferentes resultados, optimizas el c贸digo y pruebas diferentes soluciones, tu capacidad de pensamiento l贸gico mejora d铆a a d铆a y eventualmente aprendes muchas cosas que te hacen un mejor programador.

Cuando empieces a codificar, practica el mismo c贸digo o muestra una y otra vez hasta que o a menos que no necesites referirte al mismo libro o recurso de donde has aprendido.

Tambi茅n construye tu propio proyecto, participa en retos de programaci贸n, juega a juegos relacionados con la programaci贸n, practica en tu propio extremo cada d铆a.

3. C贸digo a mano:

Cuando empieces a programar como un principiante estar谩s pensando que por qu茅 deber铆a codificar a mano.

Es un proceso que consume mucho tiempo, no puedo correr y comprobar mi c贸digo en papel y tambi茅n si realmente necesito implementar algo en mi sistema entonces por qu茅 deber铆a usar l谩piz y papel.

Una de las mayores razones es la entrevistas.

Cuando solicites los trabajos de programaci贸n, la mayor铆a de las veces el proceso de evaluaci贸n t茅cnica incluir谩 el c贸digo a mano.

Se te pedir谩 que escribas el c贸digo usando l谩piz y papel o quiz谩s tengas que usar una pizarra.

Codificar a mano es una t茅cnica de la vieja escuela, pero en realidad implica una prueba para la competencia de un programador.

Codificar a mano puede darte una clara comprensi贸n de la sintaxis y los algoritmos, haces una conexi贸n m谩s profunda en tu cerebro.

Aprender a programar de esta manera har谩 que tu trabajo sea m谩s f谩cil y r谩pido m谩s adelante.

4. Compartir, ense帽ar, discutir y pedir ayuda:

Una de las mejores maneras de entender la programaci贸n f谩cil y r谩pidamente es ense帽ando.

Ense帽ar a alguien, compartir tus conocimientos, hacer discusiones con otros programadores te har谩 un mejor programador r谩pidamente.

Ense帽ar a alguien es ense帽arte a ti mismo tambi茅n, as铆 que si eres capaz de ense帽ar a alguien eso significa que realmente entiendes los conceptos.

Es el mejor h谩bito aprender algo en profundidad y te dar谩s cuenta de que no necesitas volver sobre el mismo tema.
Tambi茅n puedes participar en proyectos de c贸digo abierto, discutir tu c贸digo con tus co-programadores o contribuir en Github, tambi茅n puedes recibir ayuda del foro o del sitio de discusi贸n.

Cuando aprendas a programar no dudes en pedir ayuda.

Los principiantes cometen este error y se sienten t铆midos cuando necesitan pedir ayuda.

No importa si haces preguntas tontas y te ves est煤pido, te ayudar谩 a la larga y si no lo haces tendr谩s problemas de programaci贸n m谩s adelante.

As铆 que es bueno encontrar un mentor o tomar ayuda de otros programadores para entender los conceptos f谩cil y r谩pidamente.

Tu mentor o profesional puede guiarte mejor porque ya han estado en tu lugar antes.

5. Utilice los recursos en l铆nea:

Hay muchos recursos en l铆nea disponibles, pagados o no.

Puedes tomar ayuda de estos recursos en l铆nea y comenzar tu viaje de programaci贸n.

Puedes suscribirte a los canales de youtube o intentar codificar los campamentos de entrenamiento para aprender la programaci贸n de manera r谩pida y efectiva.

GeeksforGeeks, Udemy, Coursera y un mont贸n de recursos disponibles para orientarte y aprender programaci贸n.

Tambi茅n hazte el h谩bito de leer blogs relacionados con la programaci贸n, y de tomar ayuda de Stackoverflow, el sitio subreddit de Reddit para 芦aprender programaci贸n禄, como el sitio o la comunidad online.

6. Tomar descansos:

Si quieres aprender a programar no es bueno sentarse frente a una computadora por horas y horas y tratar de entender todo de una sola vez.

Te agotar谩s al hacer esto, as铆 que es mejor aprender a programar en trozos.

T贸mate unos peque帽os descansos para refrescarte.

Tambi茅n deber铆as tener esto en mente mientras depuras tu c贸digo.

A veces pasas horas y horas buscando el error, pero no encuentras la soluci贸n para tu c贸digo, as铆 que es bueno tomar un peque帽o descanso, aclarar tu mente y hacer algo m谩s.

Esto te devolver谩 la atenci贸n y puede que encuentres la soluci贸n para tu c贸digo en el punto en el que estabas atascado.

Adem谩s, intenta eliminar todo tipo de distracciones.

Apaga tu notificaci贸n telef贸nica, notificaciones de correo electr贸nico y trata de aislarte para estar enfocado.

Haciendo esto ahorrar谩s mucho tiempo y te mantendr谩s alejado del dolor de cabeza o la frustraci贸n.

7. Aprende a usar el depurador:

Cometer errores en la programaci贸n es muy com煤n y es completamente aceptable en la programaci贸n.

Encontrar谩s muchos errores en tu c贸digo al principio, as铆 que es bueno usar depuradores para encontrar errores, impactos en tu resultado y comprobar d贸nde has cometido el error.

Te ahorrar谩s mucho tiempo usando un depurador o una herramienta para arreglar los errores en tu c贸digo.

Si eres bueno depurando, ser谩 m谩s f谩cil aprender a programar.

As铆 que aprende a usar alguna buena t茅cnica de depuraci贸n o usa herramientas para comprobar tu pedazo de c贸digo.

Al final, el 煤ltimo consejo es que no abandones cuando empieces a programar.

Puede que en el medio pienses que no eres lo suficientemente inteligente para codificar, pero ten en cuenta que para pensar como un codificador se necesita algo de tiempo y paciencia, pero para aprenderlo r谩pidamente, s贸lo tienes que seguir el camino correcto y ser coherente.

Sigue todo paso a paso, deja claros tus fundamentos primero, sigue practicando y una vez que termines con los fundamentos toma los retos y participa en la programaci贸n competitiva en diferentes sitios para mejorar en ello, para construir tu habilidad l贸gica y para pensar como un codificador.

M谩s tarde te dar谩s cuenta de lo buen codificador que te has vuelto al practicarlo todos y cada uno de los d铆as.

5 Consejos de programaci贸n para principiantes

Si ya sabes c贸mo codificar, entonces hay una pregunta para ti...

驴Cu谩l fue la raz贸n por la que entraste en programaci贸n?…

驴Por qu茅 tomaste la decisi贸n de ense帽arte a ti mismo a codificar y hacer una carrera en el campo de la inform谩tica?

Puede que te haya fascinado alg煤n software o aplicaci贸n.

Puede que te hayas dado cuenta del poder del software y de c贸mo ha cambiado completamente nuestro estilo de vida hoy en d铆a o puede que te hayas inspirado en la contribuci贸n de algunos grandes programadores a la sociedad.

Cualquiera que fuera la raz贸n, te inspiraste en alg煤n lugar y decidiste entrar en el campo de la inform谩tica para ense帽arte a ti mismo a codificar y construir alg煤n software que puede hacer la vida de millones de personas m谩s f谩cil.

La mayor铆a de los estudiantes sue帽an con construir sus propias aplicaciones o software y eso los lleva a aprender a programar.

Con total entusiasmo, tambi茅n empiezan a aprender a programar cogiendo alg煤n lenguaje de programaci贸n pero, en la mayor铆a de los casos, los estudiantes se frustran por la dificultad que encuentran al hacer algunos programas y tambi茅n se vuelve aburrido para ellos.

La raz贸n por la que esto sucede es la falta de orientaci贸n.

Siguen una estrategia equivocada y cometen errores mientras aprenden a programar.

Vamos a discutir algunos consejos que los estudiantes deben seguir para aprender a programar de una mejor manera para evitar todos esos errores.

1. Aplica tus conocimientos te贸ricos de forma pr谩ctica (Pr谩ctica, Pr谩ctica, Pr谩ctica…)

La mayor铆a de los estudiantes s贸lo consumen conceptos te贸ricos y evitan los problemas de la pr谩ctica.

Miran algunos tutoriales de youtube, asisten a algunos programas de clase y piensan de una manera que entendieron todo para no tener que practicar para las preguntas de programaci贸n.

Este es uno de los peores errores que los principiantes siempre cometen en la programaci贸n.

No podr谩s resolver la pregunta de matem谩ticas en tu examen si s贸lo recuerdas la f贸rmula matem谩tica, lo mismo ocurre en la programaci贸n.

Ensuciarse las manos en la programaci贸n y no saltarse la pregunta en los ejercicios pensando que es f谩cil, as铆 que no hay necesidad de escribir el programa.

Muchos estudiantes tambi茅n piensan que las preguntas de programaci贸n son dif铆ciles para ellos.

La raz贸n es que su cerebro no est谩 lo suficientemente entrenado para resolver esas preguntas.

Cuando practicas lo suficiente para la pregunta de programaci贸n el tiempo de respuesta se reduce para tu cerebro y eventualmente obtienes la l贸gica para resolver el problema.

Lo pr谩ctico es importante en la programaci贸n:

  • Te vuelves habitual de la sintaxis y ganas velocidad de tecleo.
  • Necesitas pensar mucho para resolver problemas en la programaci贸n para que eventualmente desarrolle la habilidad de resolver problemas.
  • Ayuda a obtener la l贸gica r谩pidamente para resolver los problemas.
  • Te vuelves consciente de los problemas comunes de programaci贸n.

2. No dejes un hueco en tu aprendizaje

Este es otro error com煤n que la mayor铆a de los programadores novatos cometen…

el aprendizaje irregular.

Se ense帽an a s铆 mismos a codificar durante dos d铆as y al tercer d铆a se lo saltan lo que rompe el ritmo en la programaci贸n.

Mantener la consistencia, hacer programas todos los d铆as y enfrentar nuevos retos de programaci贸n en su aprendizaje diario.

Enfrentar nuevos desaf铆os en la programaci贸n reduce el tiempo de respuesta de su cerebro que ayuda a obtener la l贸gica r谩pidamente.

Tambi茅n te ense帽a a pensar y a resolver los problemas m谩s complejos que son realmente valiosos en las industrias (habilidad para resolver problemas) y tambi茅n es 煤til para resolver problemas de la vida real.

Puedes tomar la ayuda de cualquier libro de texto para resolver los problemas o tambi茅n puedes practicar en el sitio de GeeksforGeeks, HackerRank, Codecademy.

3. No hagas un an谩lisis excesivo del concepto

La mayor铆a de los estudiantes o programadores novatos hacen sobrean谩lisis de conceptos en programaci贸n, lo cual es otro error.

No pasan al siguiente cap铆tulo y pierden su tiempo en un solo concepto.

Tener un buen dominio de un tema espec铆fico es bueno, pero el sobrean谩lisis puede convertirte en el peor programador y tu progreso ser谩 lento.

No podr谩 completar el objetivo en un plazo determinado, as铆 que entienda y capte el tema de forma sencilla, utilice el concepto de forma pr谩ctica y siga avanzando.

Analizar un concepto a fondo por primera vez no es bueno, una vez que tienes suficiente experiencia puedes profundizar en el concepto espec铆fico.

4. Lea el mensaje de error con cuidado

Muchos principiantes no prestan atenci贸n a los errores que aparecen en la pantalla y piden ayuda a sus mentores o a los programadores principales inmediatamente.

Comprende que los errores en la pantalla dicen mucho sobre los problemas y puedes encontrar la soluci贸n desde all铆 tambi茅n si lees el mensaje de error cuidadosamente.

No de todos los errores se puede encontrar la soluci贸n, pero antes de pedir ayuda presten atenci贸n a ella.

Si no encuentras la soluci贸n, busca en Internet el mensaje de error.

5. Resolver las preguntas de los MCQ en la programaci贸n

Si est谩s aprendiendo a programar por primera vez, resuelve los MCQ tanto como puedas.

Puedes encontrar muchos MCQs o preguntas relacionadas con la depuraci贸n en Internet.

Te ayudar谩 en las entrevistas en el campus y fuera del campus tambi茅n.

Hacer que un programa desarrolle la capacidad de pensamiento l贸gico, pero resolver la pregunta de MCQs ayuda a hacer buenos comandos en la sintaxis y empiezas a entender algunas reglas importantes en la programaci贸n.

Tambi茅n ayuda a analizar c贸mo se comporta un programa en diferentes tipos de situaciones.

As铆 que no ignores la importancia de las preguntas de los MCQs y practica diariamente para aclarar tus conceptos en la programaci贸n.

Nota: Recuerda que el aprendizaje del primer lenguaje de programaci贸n siempre requiere esfuerzos especiales.

La programaci贸n tambi茅n necesita mucha paciencia y pr谩ctica.

Inicialmente, luchar谩s e intentar谩s rendirte pero es el momento en que necesitas tener la paciencia para resolver las preguntas.

Tu cerebro necesita ejercicio para resolver las preguntas en la programaci贸n y s贸lo vendr谩 con la pr谩ctica.

Comienza con problemas m谩s peque帽os y entrena tu cerebro para resolver primero problemas simples y luego pasa al siguiente nivel o a alg煤n problema complejo.

No puedes resolver los problemas matem谩ticos del d茅cimo nivel si tu cerebro no est谩 lo suficientemente entrenado para resolver los problemas del noveno nivel.

As铆 que no te saltes la pregunta y mu茅vete nivel por nivel en la programaci贸n.

12 Definiciones de programaci贸n que debes saber para aprender a programar

donde y como aprender programacion y primeros pasos para programar

Cuando les hablo a mis amigos, familiares e incluso a completos desconocidos sobre iD Tech, a menudo me hacen la misma pregunta: 驴pueden los ni帽os aprender a programar?

Para cualquiera que no sea un programador, la habilidad suele resultar ser una brujer铆a; algo que s贸lo pueden dominar aquellos que tienen superpoderes.

Incluso despu茅s de trabajar en la industria de los videojuegos durante a帽os, me ha sorprendido ver lo que se ha producido en nuestros campamentos de programaci贸n y clases de programaci贸n de ni帽os de tan solo siete a帽os

La programaci贸n es accesible para todos.

Y la mejor manera de empezar a aprender programaci贸n es obteniendo un entendimiento b谩sico de la programaci贸n, empezando por lo b谩sico.

Estoy hablando de lo realmente b谩sico.

Como definir palabras b谩sicas.

驴Por qu茅? Porque cuando o铆mos cosas como 芦programaci贸n禄 o 芦Java禄 o 芦aplicaci贸n禄 sin un nivel b谩sico de comprensi贸n, es intimidante.

Es natural tener miedo a lo desconocido…

as铆 que hagamos que lo desconocido se conozca.

(Con a煤n m谩s por descubrir si est谩s buscando t茅rminos de programaci贸n espec铆ficos.)

Adem谩s, cuando intentas conectar con tus hijos, quieres, no, necesitas hablar su idioma.

El ingl茅s ya es bastante dif铆cil, por no hablar de los muchos lenguajes de programaci贸n diferentes a los que los ni帽os pueden saltar.

No es necesario que te conviertas en un codificador, pero ayuda tener al menos cierta familiaridad con los t茅rminos b谩sicos para poder seguir el ritmo.

Por ejemplo, tal vez usted tiene un adolescente que est谩 tratando de 芦mod禄 un juego de Minecraft, mientras que 芦codificar禄 una API .net.

驴Quieres saber lo que realmente est谩n haciendo? Podemos ayudar.

En primer lugar, como una palabra de precauci贸n, la programaci贸n para los ni帽os debe ser abordado un proceso.

Claro, usted puede aprender la programaci贸n m谩s r谩pido con unos pocos pasos clave, pero va a tomar la pr谩ctica regular.

Tienes que empezar en alguna parte, 隆as铆 que empecemos!

1. 芦Programaci贸n禄

Digamos que tienes un perro, y lo llamaremos Max.

Quieres ser capaz de entrenar a Max hasta el punto de que cuando se le ordene, responda y act煤e seg煤n tus instrucciones.

芦Si茅ntese禄 芦Qu茅dese禄 芦Ni siquiera pienses en perseguir a esa ardilla禄

Cuando escribes un programa, la base de tus acciones no se aleja mucho de la misma.

T煤, el due帽o, est谩s dando una serie de 贸rdenes a tu ordenador (o al perro, en este ejemplo) y esperas un determinado resultado basado en esas 贸rdenes.

Pero en lugar de hablar esas instrucciones con un bolsillo lleno de golosinas de tocino, est谩s escribiendo instrucciones en un idioma que se parece al ingl茅s normal, pero con algunos par谩metros y reglas adicionales.

Sin mencionar que, a diferencia de un perro, la computadora siempre escucha, si la orden se da correctamente.

La programaci贸n es la base de la rob贸tica, los videojuegos, las aplicaciones, los gr谩ficos inform谩ticos y mucho m谩s.

Cada programa de ordenador es un conjunto de instrucciones; una secuencia de comandos cortos, uno tras otro.

Se trata de dividir una tarea compleja en un conjunto de instrucciones m谩s peque帽as e individuales y usar un lenguaje de programaci贸n para escribir esas instrucciones.

2. 芦Lenguaje de programaci贸n禄

Para seguir con el punto anterior, para poder comunicarse con un ordenador (y conseguir que ejecute esas instrucciones) debe hablar su idioma.

En la programaci贸n, un lenguaje se compone de un vocabulario y un conjunto de reglas gramaticales, 驴te suena familiar? Donde se pone un poco dif铆cil es que cada lenguaje se basa en su propia y 煤nica sintaxis (estructura gramatical) y sem谩ntica (significado).

Hay un n煤mero de diferentes lenguajes de programaci贸n, y cuando se trata de cu谩l de ellos deber铆as estar aprendiendo, todo depende de lo que quieras hacer.

C++ es la base de los navegadores web m谩s populares, los productos de Adobe, y m谩s, mientras que Java es bueno saberlo cuando se dise帽an videojuegos.

Python impulsa sitios como Pinterest e Instagram, y en el caso de Internet, HTML (Hypertext Markup Language) se utiliza para crear p谩ginas web que muestran informaci贸n.

Esta 煤til infograf铆a del Lifehacker rompe todas las diferencias de lenguaje.

3. 芦Declaraci贸n de programaci贸n禄

Debido a que los t茅rminos 芦instrucciones禄 y 芦comandos禄 se usaron bastante en las explicaciones anteriores, pens茅 que lo mejor era definir a continuaci贸n 芦declaraciones禄

B谩sicamente, la forma en que le dices a un ordenador que haga algo es d谩ndole instrucciones o escribiendo declaraciones para explicar una acci贸n deseada.

De nuevo, es similar a escribir frases en ingl茅s, pero con palabras, n煤meros y puntuaci贸n a帽adidos dependiendo del lenguaje de programaci贸n que est茅s usando.

As铆 que para unirlo, un programa se escribe a trav茅s de una secuencia de una o m谩s declaraciones.

Pi茅nsalo como si le dieras a un amigo instrucciones para conducir: 芦Ve derecho por una milla禄.

Gira a la izquierda.

Sigue recto durante otras dos manzanas禄.

Det茅ngase en la se帽al de alto.

Gira a la derecha禄 La tarea que quieres lograr es llevar a tu amigo del punto A al punto B.

Divides esa tarea en una serie de declaraciones individuales para hacerla realidad.

4. 芦Tipo de datos禄

La inteligencia artificial puede cambiar esto alg煤n d铆a, pero actualmente, las computadoras no pueden diferenciar entre letras o n煤meros.

Por lo tanto, los programadores inform谩ticos deben establecer un tipo de datos.

Esta es una clasificaci贸n del tipo de datos que una variable u otro objeto puede ser asignado en un programa de computadora.

Las variables en la programaci贸n son como las que se aprenden en la clase de matem谩ticas, con la diferencia de que una variable de programaci贸n puede representar m谩s que un n煤mero.

Es decir, podr铆a, por ejemplo, contener un car谩cter alfab茅tico como la 芦c禄 o una palabra o frase entera como 芦Hola Mundo禄, com煤nmente llamada cadena o booleana (m谩s sobre 芦booleana禄 abajo).

Los tipos de datos est谩n presentes en pr谩cticamente todos los lenguajes de programaci贸n de computadoras, incluyendo Visual Basic, C#, C++ y JavaScript.

Algunos ejemplos de tipos de datos incluyen:

  • Booleano (por ejemplo, Verdadero, Falso)
  • Car谩cter (por ejemplo, Z)
  • Fecha (por ejemplo, 29/06/2020)

La comprensi贸n de los tipos de datos permite a los programadores dise帽ar mejores aplicaciones.

5. 芦Booleana禄

驴Recuerdas los viejos ex谩menes de VERDADERO o FALSO en la escuela? Podr铆as llamarlos tests booleanos, ya que una expresi贸n booleana es un valor de VERDADERO o FALSO.

El booleano fue desarrollado por el matem谩tico y pionero inform谩tico ingl茅s George Boole,

Las booleanas se almacenan t铆picamente dentro de un bit, que es la cantidad m谩s peque帽a de almacenamiento en una computadora cuando se trata de 贸rdenes de magnitud.

Tiene un solo d铆gito binario.

Binario, al ser un sistema num茅rico de base 2, significa que s贸lo puede contener el valor 0 o 1.

En el caso de un booleano, 0 suele significar falso mientras que 1 suele usarse para verdadero.

Lo que nos lleva al cl谩sico chiste de programaci贸n, 芦Lo mejor de un booleano es que aunque te equivoques, s贸lo te equivocas un poco禄

6. 芦Binario禄

Todos los ordenadores hablan en binario: 1 y 0.

Un simple y elegante sistema de 2 n煤meros, el binario es la base de todo el c贸digo binario, y ese c贸digo es la base de todos los lenguajes de programaci贸n.

Debido a que el binario puede detectar r谩pidamente el estado de activaci贸n o desactivaci贸n de una se帽al el茅ctrica, lo convierte en una forma eficiente de controlar los circuitos l贸gicos en medios magn茅ticos (los polos positivos y negativos se transfieren r谩pida y f谩cilmente al binario).

7. 芦Aplicaci贸n禄 (AKA 芦App禄)

S铆, tienes un iPhone o un tel茅fono inteligente Android y probablemente est谩s muy familiarizado con las 芦aplicaciones禄, c贸mo descargarlas, c贸mo usarlas, etc.

Pero la aplicaci贸n m贸vil es s贸lo un ejemplo.

Abreviatura de 芦aplicaci贸n禄, las aplicaciones tambi茅n pueden tomar forma de aplicaciones web o aplicaciones en l铆nea.

El t茅rmino 芦app禄 se ha convertido en una palabra de moda, moderna, de moda, pero en realidad no se diferencia de un programa de software.

Una aplicaci贸n est谩 dise帽ada para un prop贸sito particular, y en tu iPhone o dispositivo Android, eso puede significar casi cualquier cosa.

Encuentra un restaurante.

Hay una aplicaci贸n para eso.

Pide una pizza.

Hay una aplicaci贸n para eso.

Facebook.

Hay una aplicaci贸n para eso.

La mayor铆a de estas cosas se pueden hacer a trav茅s de un navegador web, pero las aplicaciones para m贸viles, dise帽adas espec铆ficamente para ser accedidas desde tu tel茅fono, hacen la vida mucho m谩s f谩cil.

Para construir una aplicaci贸n para el iPhone, necesitar谩s conocer XCode, el entorno de desarrollo integrado de Apple.

Para construir una aplicaci贸n para Android, tu entorno de desarrollo requerir谩 Eclipse.

Ver todas las clases de programaci贸n para adolescentes y ni帽os.

8. 芦Programaci贸n de rasgu帽os禄

Ahora pasemos a algo un poco m谩s tangible.

Scratch es un lenguaje de programaci贸n gr谩fica desarrollado por el MIT, en el que los ni帽os pueden aprender los fundamentos de la programaci贸n de arrastrar y soltar para crear historias interactivas y c贸mics.

Aunque puedes ponerte al d铆a en todos los diferentes lenguajes de programaci贸n que se muestran arriba, las clases de programaci贸n de Scratch son fant谩sticas para cualquier ni帽o que necesite una introducci贸n a nivel de principiante.

En lugar de l铆neas de c贸digo, los usuarios de Scratch construyen con coloridos bloques de comandos y sprites de dibujos animados.

La verdadera belleza de esto es que, incluso sin escribir c贸digo, los usuarios pueden ganar experiencia con las declaraciones, aprender ideas computacionales, y pensar creativamente para resolver problemas.

Adem谩s, Scratch es incre铆blemente atractivo.

9. 芦ASCII禄

Cada bit de datos que una computadora procesa tiene que ser convertido en algo para que los humanos lo entiendan y lo usen.

Podr铆a ser una imagen de una pizza, sus documentos de impuestos, o el 煤ltimo video viral de un gato.

Pero de lo que no te das cuenta es que esos documentos de impuestos y la deliciosa pizza, cualquier cosa, en realidad, empieza como n煤meros; lo 煤nico que los ordenadores entienden.

Los 1 y los 0 (binarios) son los datos de la computadora y el ASCII (se pronuncia 芦ask-e禄) es un sistema que mapea los datos/n煤meros en la memoria de la computadora como texto.

El acr贸nimo ASCII significa American Standard Code for Information Interexchange (C贸digo Est谩ndar Americano para el Intercambio de Informaci贸n) y ASCII asigna letras y caracteres a las 256 ranuras disponibles en el c贸digo de 8 bits.

10. 芦API禄

De la misma manera que se necesitan herramientas para construir una casa, tambi茅n se necesitan herramientas, rutinas y protocolos para construir aplicaciones de software.

Eso es lo que es una interfaz de programa de aplicaci贸n (API).

Una API (que se pronuncia fon茅ticamente como 芦a-p-i禄) describe c贸mo el software y sus componentes deben funcionar juntos.

Las API tambi茅n se utilizan en la programaci贸n de interfaces gr谩ficas de usuario o GUI (pronunciado 芦goo-ey禄).

11. 芦B脕SICO禄

Los programadores de computadoras necesitan empezar en alg煤n lugar, y ese lugar sol铆a ser el lenguaje de programaci贸n B脕SICO.

El BASIC (Beginner’s All-Purpose Symbolic Instruction Code) fue creado en 1964 por John G.

Kemeny y Thomas E.

Kurtz en el Dartmouth College.

Como ya se ha mencionado, los lenguajes de programaci贸n permiten dar instrucciones y 贸rdenes a los ordenadores.

El B脕SICO, por lo tanto, es un lenguaje que es muy adecuado para las personas que quieren aprender programaci贸n de computadoras pero que no tienen una inclinaci贸n matem谩tica.

El lenguaje tiene una estructura muy similar a la del ingl茅s, con comandos simples y directos.

En los 煤ltimos a帽os, los lenguajes de programaci贸n como Java y Python han superado la popularidad del BASIC debido a su proliferaci贸n.

12. 芦.net禄

El .NET Framework es un marco de programaci贸n desarrollado por Microsoft que funciona principalmente en Microsoft Windows.

El .net framework puede soportar una variedad de diferentes lenguajes de programaci贸n y permite a los desarrolladores crear aplicaciones m谩s f谩cilmente.

B谩sicamente, es un lote de c贸digo que los programadores pueden usar para reunir m煤ltiples componentes sin tener que escribirlo en el c贸digo.

Puedes pensar en el .net como la versi贸n para computadora de un cobertizo de trabajo.

El cobertizo est谩 provisto de diferentes herramientas, y dependiendo del trabajo, puedes usar esas herramientas en consecuencia.

Si un programador construye un programa que necesita realizar una determinada tarea (como leer informaci贸n de un disco duro) el programador puede simplemente dirigirse al cobertizo (.net) y conseguir la herramienta para hacerlo.

El propietario del cobertizo (departamento de TI) puede a帽adirle, mientras que el proveedor (Microsoft) del cobertizo requiere que lo coloque en un lugar espec铆fico de su patio trasero (Windows).

驴Es dif铆cil aprender a programar?

donde y como aprender programacion y primeros pasos para programar

Aqu铆 hay una lista de razones por las que algo puede ser considerado dif铆cil o dif铆cil:

  • Es nuevo
  • Es diferente
  • Lleva tiempo
  • Se necesita persistencia
  • Carece de recursos

驴Cae el c贸digo en alguno de esos cubos? Claro, potencialmente podr铆as poner la programaci贸n en todos ellos dependiendo de las circunstancias.

Pero si lo piensas, puedes decir lo mismo de casi todo.

Por ejemplo, para m铆 personalmente, dir铆a que aprender a tocar la guitarra es dif铆cil.

Aprender a hacer malabares es dif铆cil.

驴Ves a d贸nde quiero llegar con esto?

Aprender a hacer algo nuevo es normalmente dif铆cil, y eso es lo que hace a los que saben hacer ese algo especial.

Lo que nos lleva a..

驴Es dif铆cil aprender a programar?

No, la programaci贸n no es dif铆cil de aprender.

Mientras que aprender a programar puede requerir que te metas en 谩reas con las que no tienes experiencia previa, aquellos que tienen el tiempo, la persistencia y la dedicaci贸n pueden aprender a programar tan f谩cilmente como pueden aprender a hacer otra cosa.

Es decir, mucha gente sabe codificar, lo que lleva a muchos de los que son competentes en la programaci贸n a lanzar las cosas que todos disfrutamos usando diariamente, desde nuestras aplicaciones, juegos, sitios web, robots, medios sociales y mucho m谩s.

Entonces, 驴por qu茅 la resistencia?

Si la programaci贸n no es dif铆cil, 驴por qu茅 existe esa percepci贸n?

Bueno, para empezar, la programaci贸n es un tema candente y relevante.

Sin ofender a nadie que haga malabares, pero no es una actividad de la que se oiga hablar a diario.

Por lo tanto, podr铆a ser el recordatorio constante de que 芦la programaci贸n es importante禄 pero a煤n as铆 芦necesitamos m谩s codificadores禄 lo que hace que la programaci贸n parezca una tarea dif铆cil.

A partir de ah铆, todo lo que tienes que hacer es lanzar la programaci贸n contra cualquiera de los puntos enumerados en la introducci贸n anterior para empezar a ver que la programaci贸n podr铆a no ser tan intimidante despu茅s de todo.

芦La programaci贸n es dif铆cil porque es nueva禄

Se cree que la programaci贸n es dif铆cil porque es nueva para casi todos nosotros.

Los adultos fueron a la escuela aprendiendo todas las cosas que pensaban que necesitar铆an aprender, y la programaci贸n no era una de esas cosas.

Y para los ni帽os y adolescentes que todav铆a est谩n en la escuela hoy en d铆a, la programaci贸n no se ense帽a en la mayor铆a de los lugares, as铆 que si necesitan encontrar oportunidades alternativas s贸lo para ganar experiencia en esta cosa llamada programaci贸n, debe ser bastante dif铆cil, 驴verdad?

Incorrecto.

aprender a programar no est谩 disponible en muchas escuelas por una variedad de razones, que van desde las restricciones del presupuesto escolar, la inflexibilidad del plan de estudios, la falta de recursos de ense帽anza y m谩s.

Sin mencionar que si la programaci贸n fuera dif铆cil de aprender, no tendr铆as ni帽os que asistan a campamentos de programaci贸n, y si la programaci贸n fuera dif铆cil de ense帽ar, no tendr铆as cursos de programaci贸n en l铆nea, etc.

芦La programaci贸n es dif铆cil porque es diferente禄

Se cree que la programaci贸n es dif铆cil porque es un tipo de habilidad diferente; y 芦diferente禄 en el sentido de que no se parece a nada que la mayor铆a de nosotros haya experimentado antes.

Es decir, si quieres aprender a tocar la guitarra, sabes lo que se requiere de ti, tienes este instrumento y necesitas dominar c贸mo tus dedos interact煤an con sus cuerdas.

驴Quieres aprender a hacer malabares? Sabes que necesitas lanzar y atrapar objetos simult谩neamente.

驴Pero aprender a programar? Es un poco dif铆cil de entender lo que est谩 involucrado.

Puede que conozcas los diferentes lenguajes de programaci贸n de los ni帽os, y c贸mo es el c贸digo, etc., pero el otro 90% es muy diferente.

Sin embargo, no es que sea m谩s dif铆cil aprender…

si acaso, podr铆a ser m谩s dif铆cil empezar a aprender, pero una vez que est谩s en ello, es como cualquier otra cosa…

se siente raro y diferente al principio, pero cuanto m谩s profundo te sumerjas, m谩s te familiarizas y m谩s f谩cil te resulta comprender la tarea que tienes entre manos.

芦Codificar es dif铆cil porque lleva tiempo (y persistencia)禄

Claro, 驴pero qu茅 es lo que no lleva tiempo? Puedes estar de acuerdo o no con la teor铆a de Malcolm Gladwell de que se necesitan 10.000 horas para dominar tu oficio, pero la cuesti贸n sigue siendo la misma: aprender algo lleva tiempo.

Mucho de ese tiempo se gasta en superar mini-retos en el camino hacia la maestr铆a, lo que requiere la persistencia de aquellos que quieren alcanzar la meta final.

De hecho, se puede decir que s贸lo porque algo requiera persistencia no hace que sea dif铆cil de aprender, pero en realidad, lo hace m谩s 煤til.

Con la programaci贸n, espec铆ficamente, el aprendizaje de la habilidad principal proporciona beneficios sorprendentes, pero es el viaje, el ensayo y error y el salto de obst谩culos lo que hace que toda la experiencia sea a煤n m谩s 煤til.

芦La programaci贸n es dif铆cil porque hay una falta de recursos relacionados禄

No es un error que empec茅 con la programaci贸n siendo nuevo/diferente y termin茅 con esta parte sobre los recursos.

Todo est谩 relacionado con el hecho de que el hecho de que algo no se sirva en bandeja de plata o se presente con luces brillantes no significa que no exista.

As铆 que, s贸lo porque la programaci贸n no se ense帽e en muchas escuelas no significa que los ni帽os no deban aprenderla.

Del mismo modo, s贸lo porque nosotros como padres no sepamos codificar, o los profesores de tu hijo en la escuela no sepan codificar no significa que no haya nadie capaz de ense帽arlo.

Del mismo modo, s贸lo porque la mayor铆a de los amigos de su hijo no est茅n aprendiendo a programar no significa que no quieran hacerlo, o que uno de ellos no lo haga.

El punto es que aprender a programar y encontrar las oportunidades para hacerlo va a requerir un poco de investigaci贸n.

No son las Ligas Menores.

No es karate.

No es algo que la mayor铆a de los ni帽os crecen haciendo todav铆a.

No hace que sea m谩s dif铆cil aprender, es s贸lo que los recursos pueden tomar una forma diferente a la que est谩s generalmente acostumbrado como padre.

Como se mencion贸 anteriormente… campamentos de verano, aprendizaje en l铆nea, autoaprendizaje e investigaci贸n.

Los recursos y las oportunidades est谩n ah铆 fuera.

Para ayudar a que su hijo se dirija en la direcci贸n correcta, aqu铆 hay algunas publicaciones adicionales:

驴Qu茅 es la programaci贸n? Pasos de beb茅, 驴verdad? A veces es 煤til empezar lo m谩s b谩sico posible, aprendiendo qu茅 es la programaci贸n (y qu茅 no es).

驴Nunca has codificado?: 驴Tener un hijo con intereses fuera de la tecnolog铆a, como los deportes y la m煤sica? Lo creas o no, hay una conexi贸n con la tecnolog铆a, y darse cuenta de que ese v铆nculo podr铆a ser todo lo que necesitan para ponerse en marcha.

驴Codificar es para m铆? Del mismo modo, es dif铆cil saber si la programaci贸n es para su hijo o si est谩n hechos para la programaci贸n.

Empiece con estas preguntas orientadoras.

驴Es la programaci贸n una buena carrera? La respuesta depende totalmente de su situaci贸n 煤nica, pero si los ni帽os lo disfrutan y quieren una carrera con oportunidades y buena paga, entonces la programaci贸n puede ser definitivamente una buena carrera.

programaci贸n para Ni帽os: Razones por las que los ni帽os deber铆an empezar a codificar, y c贸mo pueden encontrar el 茅xito.

programaci贸n para adolescentes: Claro, empezar temprano en cualquier cosa tiene sus ventajas, pero hacerlo cuando se es adolescente tambi茅n es valioso.

Vea por qu茅!

Lenguajes de programaci贸n para ni帽os: Tal vez el mayor obst谩culo para la mayor铆a de los que quieren empezar a codificar, 驴con qu茅 lenguaje deber铆an empezar? Esta gu铆a deber铆a ayudar!

Terminolog铆a de programaci贸n: Como en cualquier lenguaje nuevo, aquellos que esperan dominarlo necesitar谩n familiarizarse con nuevos t茅rminos y jerga.

Conclusi贸n: Hay tantos recursos gratuitos para aprender a programar!

Como puedes ver, hay un mont贸n de opciones que puedes usar para ense帽arte a ti mismo a codificar gratis.

Y ciertamente, aprovechar todos los recursos gratuitos de programaci贸n en l铆nea que existen es definitivamente el camino a seguir cuando est谩s empezando.

La programaci贸n es la habilidad m谩s buscada hoy en d铆a.

Seg煤n Indeed, 芦Ingeniero de Software禄 es la posici贸n de mayor demanda en la industria.

Considerando la gran demanda de programadores cualificados, tiene sentido para los que buscan trabajo, aprender a programar para principiantes.

Aprender a programar parece dif铆cil para muchos.

Esto es a menudo debido al enfoque equivocado que aplican para aprender a programar.

La gente aspira a hacer aplicaciones complejas, y a menudo ni siquiera saben programaci贸n b谩sica.

Esto tambi茅n me pas贸 a m铆.

Asist铆 a un taller de Android en la universidad, incluso sin saber lo b谩sico de Java.

No me sorprendi贸 que la mayor parte fuera m谩s all谩 de mi comprensi贸n en ese momento.

Hay muchas personas que podr铆an haber tenido experiencias similares, y por lo tanto pensaron que la programaci贸n es dif铆cil.

Ahora, cuando reflexiono sobre ese incidente, me doy cuenta de que es un problema muy com煤n.

Por lo tanto, me gustar铆a compartir un enfoque para aprender programaci贸n que es mucho menos frustrante, y es, de hecho, 隆divertido! Toda la premisa de este art铆culo es que el aprendizaje de la programaci贸n puede ser divertido si se hace de la manera correcta!

Este art铆culo cubri贸 mucho material.

No se espera que entiendas todo de una sola vez.

Recuerda, para la programaci贸n, debes practicar al menos 5 veces m谩s de lo que est谩s adquiriendo conocimientos.

Este art铆culo, si se lee en su totalidad sin detenerse a entenderlo, toma 30 minutos de lectura.

Si te detuviste a pensar en los conceptos, puede f谩cilmente tomar 1 hora.

Yo dir铆a que para entender todo en este art铆culo, necesitar谩s unas 5 horas de pr谩ctica si ya eres una persona l贸gica, y probablemente m谩s de 10-15 horas en caso contrario.

As铆 que, guarda este art铆culo y consulta una y otra vez mientras trabajas para mejorar en la programaci贸n.

Recuerda siempre por qu茅 est谩s haciendo esto.

Practica a diario y no te rindas cuando las cosas se compliquen.

Aplica todos los buenos principios de la secci贸n 3 y estar谩s equipado para aprender la habilidad de la Programaci贸n m谩s r谩pido de lo que nunca esperaste.

Resumen contenido