Cómo aprender a programar: una guía para principiantes
Hola amigos de Steemit, hoy traigo para ustedes una traducción de un post muy interesante que realizó el compañero @scipio a través de Utopian.io.
Hello friends of Steemit, today I bring for you a translation of a very interesting post that made the companion @scipio through Utopian.io
Inicialmente obtuve ésta información en un proceso de indagación para colaborar en los proyectos de @utopian.io, me pareció que la información que se transmite en el post es muy importante, hice el esfuerzo de trabajar en él, realmente espero que sea de gran utilidad para la comunidad. @scipio explica de manera muy profesional como empezar tu camino hacia la programación con código abierto.
Post Original
Como aprender a programar: Una guía para principiantes
La semana pasada, me uní activamente al Movimiento de Código Abierto Utopian.io, y he notado que mucha gente está buscando unirse al mundo del Código Abierto (Open Source) a través de Utopian.io. Entre los entusiastas utópicos, están los experimentados y los programadores completamente principiantes. Para un programador principiante, puede ser desalentador investigar dónde comenzar con la programación de código abierto. Hay tanta información en línea: tantos lenguajes de programación, tanta terminología, marcos, bibliotecas, subcomunidades ... ¿Por dónde empezar si eres un aspirante a programador principiante de código abierto?
¿Te llama la atención esto? ¡Entonces este artículo es para ti! Observa esta publicación como tu guía para convertirte en un verdadero desarrollador de código abierto, al ahorrarte cientos de horas tratando de encontrar tu camino. ¡No aprenderás a programar simplemente leyendo éste artículo, por supuesto, pero te pondrá en el camino correcto y actualizado en poco tiempo! ¡Te deseo mucho éxito y diversión aprendiendo a convertirte en un programador de código abierto!
Lo basico
Toma la responsabilidad de tu aprendizaje
Por favor, comprende que aprender a programar puede ser divertido y difícil. En aproximadamente 10 horas, te familiarizas con los conceptos de programación, con 100 horas invertidas te vuelves competente, después de 1,000 horas puedes ser considerado "bueno" en la programación y, después de 10 000 horas, puedes considerarte incluso un "experto". Que tan bueno quieras ser en la programación depende, por lo tanto, en gran medida de cuánto tiempo estás dispuesto a invertir. Aprender a programar es como aprender cualquier habilidad, no hay "atajos" (hasta el momento, ¿quién sabe lo que la Inteligencia Artificial traerá a la mesa dentro de 25 años a partir de ahora?)
Configuración básica
Para comenzar a codificar, por supuesto necesitas un editor de código. Existen muchos editores de código, pero recomiendo usar el editor de Atom o el editor de códigos de Microsoft Visual Studio o el editor de Sublime Text. Dependiendo de tu tipo de sistema operativo de computadora (Windows, Mac OS o Linux), existen diferentes editores de código, pero los que acabo de recomendar tienen incluidas todo tipo de herramientas atractivas (como resaltado de sintaxis), y son extensibles a través de complementos/extensiones para satisfacer sus propias necesidades!
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789287/gtbhb4talxhmhmckxo6z.jpg)
Fuente
Aconsejo a los programadores principiantes que comiencen su camino hacia la programación con el desarrollo web, porque las técnicas relacionadas al diseño web son ampliamente aplicables. Por lo tanto, también necesitas instalar un navegador web moderno como Google Chrome o FireFox Developer Edition o Safari (instalado de manera predeterminada en un Mac).
De esta manera, lo que codificas dentro de tu editor, ¡lo puedes ver en tu navegador! Tu código ni siquiera tiene que estar en línea, ¡puede ejecutarse desde tu propia computadora para empezar!
Paso 1: Aprende HTML5 y CSS3
HTML (abreviatura de Hypertext Markup Language (Lenguaje de marcado de hipertexto)) es el lenguaje de marcado estándar para crear páginas web y aplicaciones web. Y HTML5 es la quinta (y actual) versión principal de HTML. HTML fue creado / propuesto por Tim Berners-Lee y por lo tanto Tim Berners-Lee es considerado como el inventor de la web tal como la conocemos hoy. HTML se usa tanto para estructurar una página web como para mantener el contenido de la página. Originalmente (HTML1) HTML también se utilizaba para estilizar una página web, pero hoy en día las personas usan CSS como un lenguaje complementario para diseñar una página web (elegir colores, fuentes y todo tipo de configuraciones de diseño). CSS es la abreviatura de Cascading Style Sheets (Hojas en estilo cascada), y CSS3 es la tercera (y actual) versión de CSS.
¿Por qué HTML y CSS primero?
¿Por qué te recomiendo encarecidamente que comiences con HTML5 y CSS3? La respuesta es dual: -A- dominar HTML y CSS es relativamente fácil de lograr y te da la oportunidad de obtener un trabajo como desarrollador de interfaz alrededor del mundo, estando rodeado de otros desarrolladores que te ayudan a que aprendas en tu camino hacia la programación, y -B- HTML y CSS carecen de flujo de control_ Pueden ser manejados a través de lenguajes de programación más avanzados que se analizan en los siguientes pasos (Tu puedes combinar las habilidades de HTML y CSS con nuevas habilidades en lenguajes como JavaScript y PHP).
¿Cómo comenzar a estudiar HTML y CSS?
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789353/krfwbf14qgk6nbvbv56h.png)
Fuente
Hay dos maneras para comenzar a aprender HTML y CSS. La primera es simplemente experimentar desde cero en tu propia computadora: crear una nueva carpeta en tu computadora de escritorio y llamarla "Pagina web", y dentro de esa carpeta-"página web" se agrega una nueva carpeta ("imágenes") y dos archivos ("index.html" y "style.css"). Simplemente abra toda la carpeta-"página web" dentro de su editor de código. ¡Y luego ve a W3schools para aprender los conceptos básicos! Intenta crear cosas en la página web usando tus archivos "index.html" y "style.css". La segunda forma es ingresar a un curso en línea (gratuito) sobre HTML y CSS. Podrías probar CodeCademy gratis como un curso introductorio. Existen numerosos otros cursos en línea, pero me parece CodeCademy muy amigable para principiantes.
Paso 2: Aprende jQuery (la biblioteca de JavaScript más famosa)
Si has tenido éxito en el "Paso 1", tu próxima meta de programación sería aprender jQuery. En resumen, tanto jQuery como JavaScript se usan para manipular el comportamiento de tus páginas web. Por ejemplo, puedes programar una buena animación a través de jQuery /JavaScript cuando alguien hace clic en un botón, o un control deslizante visual o puede cargar nuevos datos cuando estén disponibles sin necesidad de volver a cargar la página, o ... etc. etc., etc.
¿Por qué aprender jQuery tan pronto?
Muchos desarrolladores avanzados de JavaScript parecen "desaprovechar" el uso de jQuery, pero no estoy de acuerdo: incluso sugiero aprender jQuery antes de aprender JavaScript, aunque jQuery es "solo" una biblioteca de JavaScript escrita en JavaScript. Lo que creo que es genial sobre jQuery, es -1- su motor selector y -2- sus habilidades para el DOM transversal y la manipulación y su manejo de eventos. Esta es probablemente una nueva terminología para ti, pero todo tendrá sentido cuando comiences a trabajar con jQuery. A través del motor de selección de jQuery puedes orientar fácilmente los elementos HTML que desees manipular: ¡funciona igual que aprendiste sobre cómo funciona CSS!
¿Dónde comenzar a estudiar jQuery?
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789462/zi7fcwjb8rsas9kga9q3.jpg)
Fuente
Puedes estudiar la documentación de jQuery en https://jquery.com/, o tomar un curso de jQuery para principiantes en CodeCademy, o aprender a través de W3Schools, o utilizar otros recursos. Simplemente comienza tu trayectoria en jQuery e intenta lograr algo simple (como cambiar el color de fondo de un botón después de hacer clic en él); no te preocupes si tu código es útil o no, ya que en el proceso de aprendizaje puedes obtener mejores resultados. Pequeños pasos...
Paso 3: Experimenta con el desarrollo de Wordpress (local)
Si has estado trabajando en los pasos 1 y 2, ¡ya has aprendido mucho! Pero hasta ahora solo hemos hablado sobre el desarrollo de software del lado del cliente. El siguiente paso es tu trasformación hacia la programación es un poco de programación del lado del servidor, y para eso, recomiendo comenzar con la descarga e instalación de Wordpress. Wordpress actualmente es el motor de administración de contenido web de código abierto más utilizado (~ 25% de todos los sitios web en el mundo de hoy se construyeron usando Wordpress).
WAMP / LAMP / MAMP
Para instalar Wordpress en su computadora local, primero necesita instalar localmente un entorno de servidor web. Debido a que Wordpress usa el lenguaje PHP en el lado del servidor, necesitas un servidor web en ejecución y una instancia de MySQL en tu computadora local. Si estás en Windows puedes instalar WAMP, si estás en Linux prueba LAMP, y en una Mac puedes usar MAMP.
Desarrollo del tema Wordpress
Una vez que tenga todo instalado, ¡está listo para comenzar a agregar funcionalidad del lado del servidor a tu proyecto de sitio web de prueba! El documento HTML / CSS / jQuery ahora puede evolucionar a una plantilla de Wordpress y, al combinar varias plantillas, terminas construyendo tu propio Tema de Wordpress. Puedes aprender mucho sobre cómo funciona Wordpress estudiando varios temas de Wordpress que se encuentran en línea, además puedes instalar algunos complementos de Wordpress y estudiar su código, y por supuesto estudiar el Wordpress Codex que contiene todo tipo de documentación técnica de Wordpress.
Base de datos MySQL
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789526/bymaltew6ldrg7iiiwtg.png)
Fuente
¡Sin estudiar realmente la API de MySQL, por desarrollar tu propio Tema de WordPress, de hecho estarías interactuando con la base de datos MySQL! En esta base de datos, los contenidos de tu sitio web (prueba) ahora se almacenan como Publicaciones. Puedes observar y consultar esta base de datos usando una herramienta como, por ejemplo, phpMyAdmin. ¡Hay mucho que aprender sobre cómo consultar MySQL, el cual es Sistema de Gestión de Bases de datos Relacionales!
Paso 4: aprende un poco más de PHP
¡PHP no solo es utilizado por Wordpress, sino que es un lenguaje de programación en sí mismo! La iteración más reciente de PHP es PHP7. PHP fue originalmente creado por Rasmus Lerdorf para desarrollar rápidamente HTML dinámico. PHP puede considerarse como una base de programación en sí mismo. Puedes escribir PHP de múltiples maneras: admite programación procedural y programación orientada a objetos, por ejemplo (imperativa, funcional y reflexiva). PHP es como una enorme caja de herramientas con muchas herramientas diferentes.
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510782214/bvown9oz8voayx2gp4gr.png)
Fuente
Observa bien: el tiempo que debes dedicar al aprendizaje de PHP depende de tus objetivos de programación. PHP se hizo muy popular alrededor del año 2000 en adelante, pero (principalmente) se usa solo para el desarrollo web del lado del servidor. Si planeas programar otros tipos de software de código abierto, aprender PHP podría no ser el lenguaje más ideal en el que puedas pensar para el futuro.
Paso 5: Estudia el JavaScript del lado del cliente (JS)
En el "Paso 2" hemos hablado acerca de jQuery, y mencioné que jQuery era solo una biblioteca de JavaScript (lib) con algunas herramientas prácticas integradas. ¡Pero aún no hemos hablado sobre el desarrollo de vanilla JavaScript! Lo mejor de JavaScript, que fue creado por primera vez por Brendan Eich, quien por cierto también cofundó Mozilla, el que se ejecuta en tu navegador web. Hay mucho que decir sobre JavaScript, sería imposible incluirlo en esta publicación de blog. En esencia, podrías comenzar a entender JavaScript pensando en él como un lenguaje interpretado utilizado para hacer que las páginas web sean interactivas.
Bibliotecas y marcos populares de JavaScript
Hablamos de jQuery como una biblioteca de JavaScript para principiantes, pero en los últimos años, especialmente después de que Google lanzara su motor V8, las cosas comenzaron a evolucionar realmente muy rápidamente en el mundo de JavaScript. Se desarrollaron muchas librerías y frameworks además de JavaScript, como jQuery, ReactJS, AngularJS, VueJS ... Podría continuar durante siglos simplemente mencionando todo, realmente es alucinante cuánto hay por ahí. Y si eres un principiante de JS, ¿por dónde empezar? Por favor, comprende, si has llegado hasta aquí, también habrás reunido suficientes conocimientos sobre qué bibliotecas y marcos pueden satisfacer mejor tus necesidades. Algo de eso también es solo una cuestión de preferencia.
GSAP - Plataforma de animación GreenSock
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789223/smdvdqgrxt6g8afvhnkn.png)
Fuente
Quiero dedicar un poco de atención especial a GSAP - GreenSock Animation Platform. A pesar de que otras herramientas salen para las animaciones del sitio web, GSAP es relativamente desconocida aún en una propia categoría. Si deseas que tu transformación hacia la programación se incline hacia el diseño y desarrollo de animaciones, GSAP es la herramienta para ti.
Paso 6: estudio de JavaScript Cliente- Servidor (nodo JS)
Aprender JavaScript no solo es interesante para los desarrolladores de aplicaciones para el usuario, sino también desde hace un par de años para desarrolladores de back-end, o para ambos: desarrolladores full stack. Porque ahora, desde que Ryan Dahl creó NodeJS, es posible no solo usar JavaScript como un lenguaje de programación del lado del cliente, ¡sino también en el servidor NodeJS! también se creó con el motor V8y utiliza un modelo de E / S no bloqueante y controlado por eventos. Es "solo" JavaScript, pero usa un código asíncrono mediante devoluciones de llamada, aunque al usar Promises y _async / await un programador JS inteligente puede evitar el "infierno de devolución de llamada".
NPM
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510789102/bgwo1gyq71iti9qy5eu7.png)
Fuente
NodeJS presenta NPM, que es un gestor/ecosistema de paquetes que contiene todo tipo de bibliotecas Open Source de NodeJS. Lo que hay allí, si no lo sabías, también es alucinante. Herramientas como browserify, Grunt, Gulp, Cordova ... ¡la lista sigue y sigue y sigue!
Observa bien: para concluir tanto en el desarrollo de JS del lado del cliente como del lado del servidor, hay un gran impulso con respecto a JavaScript. Si eres (relativamente) nuevo en la programación, ¡el dominio de JavaScript parece ser una buena opción!
Paso 7: Regístrate, y comienza a usar Github.com
Si quieres ser un desarrollador web de código abierto, necesitas conocer y usar GitHub. Es mejor considerada como una plataforma de desarrollo y un entorno de alojamiento de código de software, donde se puede encontrar casi todo el código de software de código abierto. Puedes usar el código que se encuentra en GitHub, pero como aspirante a desarrollador de software de código abierto, ¡por supuesto también te gustaría contribuir! Y ahora, desde que @elear fundó Utopian.io, ¡incluso puedes ser recompensado por contribuir a GitHub (= colaborar en proyectos de código abierto junto con otros desarrolladores) y avisar a los utopianos sobre esto!
¿Cómo funciona GitHub?
Para probar cosas, primero puedes crear un repositorio, que se utiliza para organizar un solo proyecto. Es posible que quieras agregar un archivo README, con información sobre el proyecto. Luego crea una Rama. La ramificación es una forma de trabajar en múltiples versiones de un repositorio de código. El valor predeterminado se llama una "rama principal". Si modificas / actualizas tu código, debes confirmar los cambios y agregar una breve descripción que explique de qué se trata el cambio. Luego, abre una solicitud de extracción: estás proponiendo tus cambios y solicitando que alguien revise y obtenga tu contribución, y combine tu contribución en tu rama (Mientras estás realizando pruebas, puedes combinar tu propia solicitud de extracción, por supuesto).
¿Hiciste algo útil en GitHub al agregar con éxito una contribución? Wow! ¡Entonces te acabas de convertir en un verdadero desarrollador de código abierto!
Paso 8: implementa tu proyecto de código abierto en línea
![](https://steemitimages.com/640x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1510782182/whdhjhhc7i7jvyspaqft.png)
Fuente
Si has creado un nuevo proyecto de Código Abierto muy prometedor, ¡por supuesto quieres que tenga éxito! También necesitas tu propio sitio web (lo cual, por supuesto, entonces no es un problema para ti), y podría alojar tu sitio web de proyecto Código Abierto en numerosos hosts. Una plataforma de alojamiento que me gustaría mencionar aquí es Heroku.Heroku es una plataforma en la nube que utiliza contenedores administrados (¿Docker?) Para implementar aplicaciones web modernas. Tú, como desarrollador del proyecto, despliega tu aplicación, que luego se ejecuta dentro de un contenedor llamado Dyno y puedes administrar y mejorar su entorno de alojamiento según sea necesario con el tiempo. Así que (casi) de forma gratuita comienzas a alojar su aplicación, y se puede ampliar una vez que se vuelva popular.
Más pasos para tu camino hacia la programación
Puedes ir a cualquier tipo de ruta en la programación. Intenté guiar a los aspirantes a desarrolladores de código abierto en un camino seguro utilizado por muchos, muchos desarrolladores de código abierto con experiencia en todo el mundo. No he cubierto a fondo otros lenguajes de programación modernos e interesantes, como GoLang, Elixir, Python, pero estoy seguro: de que también están revisando. A su debido tiempo: estos son pequeños pasos...
¿Te gustó esta publicación en el blog? ¿Te gustaría que continuara estas largas publicaciones (porque me toman bastante tiempo escribirlas en realidad?). ¿Qué planeas desarrollar primero usando sus nuevos Super Poderes de programación? Házmelo saber, a través de los comentarios, o en steemit.chat, o por supuesto en el Utopian Discord Chatserver! ¡Estoy @scipio allí también! ¡Saludos y nos vemos! :-)
Fin de la traducción
Esto ha sido toda mi entrega estimados amigos, espera sea de su total provecho. Recuerden disfrutar de las herramientas descritas. Te deseo el mayor de los éxitos en tu camino hacia la programación.
Gracias a @scipio por la confianza y el apoyo brindado.
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by sandrag89 from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews/crimsonclad, and netuoso. The goal is to help Steemit grow by supporting Minnows and creating a social network. Please find us in the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
Que genial que expliques esto para principiantes!!, pregunta: te gusta mi fondo de pantalla hecho por mi? - -![](https://steemitimages.com/640x0/https://i.imgur.com/C9YEZ1d.png)
Gracias @thewinter excelente fondo de pantalla. Saludos!
we r brothers,we can work together, I like ur post,so,I will help u and u help me
Resteemed your article. This article was resteemed because you are part of the New Steemians project. You can learn more about it here: https://steemit.com/introduceyourself/@gaman/new-steemians-project-launch
Thank you @gaman
Buen Post :*