;

Full width home advertisement

Tutoriales

Programación

Post Page Advertisement [Top]



Advertencia: Todo lo que leerás a continuación están basadas en mi experiencias en el medio.  Incluyo también opiniones de segunda mano, de amigos y compañeros que trabajan en la industria como desarrolladores web.     Con el propósito de dar un consejo mejor informado y  aplicable a un nivel internacional,  leí varios artículos al respecto tanto en lengua castellana como inglesa.  


Entrar al mundo de la informática es entrar a un mundo exigente.  Sea la rama que se elija hay una regla que nunca cambia: todo informático debe ser capaz de aprender, aplicar, desaprender y volver aprender.



En mi caso personal,  en mis 4 años (ya casi 5) de experiencia laboral he trabajado con: Ruby on Rails, Python, Velneo, Spark SQL, JSON, Bootstrap, Wordpress, Joomla, JQuery, AngularJS, Joomla, CSS AWS, Docker, Git, Grunt, Gulp,  NodeJS,  NoSQL, PostgreSQL, etc.  

En mi vida de estudiante universitario he trabaja con: Java, C/C++, C#, Php, mysql,  ensamblador, haskell, subneting, herramientas de sysadmin, etc.

Se ve como una enorme lista, inmensa.  Para un principiante puede ser aterrador, más si no ha pasado por una experiencia universitaria.     Pero te digo, no te preocupes, realmente no es necesario que seas “excelso”  en cada uno de los lenguajes y frameworks que nombre anteriormente. 

Cuando digo que no tienes que ser excelso, es que no tienes que ser un experto en todo del sentido de la palabra  en  estas herramientas.    Se puede aprender una herramienta y a medida que  ganes “experticia”, mas adelante puedes aprender otras herramientas.

De las otras herramientas solo desbes enfocarte en aprender lo suficiente para tomar sus caracteristicas y resolverlo a problemas puntuales.   O saber como integrar la herramienta principal que usas con otras.

Mi primer  consejo, si eres principiante,  APRENDE INGLES.   No te digo que te vuelvas angloparlante pero  si debes poder leer en ingles perfectamente, además, de aprender  el  lenguaje técnico de la informática en ese idioma.

La razón es muy sencilla, los mejores tutoriales, cursos, foros y documentación se encuentran en el idioma anglosajón.    En español hay buenos cursos y foros pero no tan vastos como en el mundo inglés.
   
Dicho esto vale acotar: en internet hay centenares de  cursos gratuitos (busca en YouTube) que te pueden ayudar aprender desde cero.   

La pregunta que me inspiro a escribir este post fue la siguiente:

   “¿Cómo hago para aprender hacer páginas web?, ¿Por dónde empiezo?”.



Hasta el momento he hablado de forma general.  Voy a lo más específico, al desarrollo web (Web developer), la cual es el área de experticia en la informática dedicada al mundo de la web.   En esta rama es donde se “hacen” páginas web.

En primer lugar podría mencionar como fue mi (los pasos que segui) camino para aprender desarrollo web:

1- ) HTML 
2- ) CSS
3- ) JavaScript  (Este lenguaje hay que aprenderlo muy bien, es la piedra fundamental del desarrollo web actual y futuro).
3- ) Php y Mysql.


Los lenguajes que nombre anteriormente son fundamentales  para aprender a desarrollar páginas web y sistemas web.                Pero en realidad estos lenguajes no se usan “directamente”,  se utilizan frameworks tales como: Wordpress, Ruby on Rails, Yii, AngularJS, Joomla, etc.

¿Cuál es la diferencia entre los lenguajes y los framework?      





Simplificando mucho, con un lenguaje de programación el  desarrollador tiene que programar todo.   Mientras,  un framework  ya tiene predefinida  un conjunto de funciones  y herramientas que solo necesitan ser "configuradas" o llamadas.

Un ejemplo, si en un framework tardas una hora desarrollado una tarea. Muy probablemente, usando un lenguaje desde cero te tardes cuatro horas, quizás más.

Claro la diferencia entre trabajar con un framework y sin uno,  va más allá del tiempo, hay demasiados puntos a destacar.  Algo que requiere su propio post.  De las mismas manera, muchos framework son  open source, solo necesitas una computadora e internet para aprenderlo.

Hasta el momento he hablado más de la faceta “académica” del desarrollo web.

Ahora hablando de unas formas más profesional, más con lo que se trabaja  hoy en día,  se tendría que hablar de áreas de competencia más que lenguajes en específico.   Trabajar  como profesional en esta rama debes trabajar con  desarrollo del lado del servidor (Backend) y  desarrollo del lado del cliente (Frontend).   Inclusive especializarte solo en una lado.

Además, debes saber muy bien el trabajar con líneas de comandos, control de versiones, protocolo HTTP e interactuar con APIs de distintas plataformas.

Ahondemos:

Backend



Es todo lo relacionado con lo interno de las páginas web. Manejo y acceso a los datos, toca todo el manejo interno de una página web.

Desarrollo de lado del servidor:   esto no es más que desarrollar programas/interfaces  en un servidor web para generar respuestas dinámicas a los clientes.   Esto es lo que permite que puedas entrar vía web o móvil a Facebook.  Siguiendo con el ejemplo,  esto permite que lo ve un usuario A en Facebook  sea diferente cuando se conecta comparado cuando el usuario B se conecta.

En el siguiente enlace hay una lista de lenguajes para el  lado del servidor (Server-side) , nombran  un buen número para aprender.    En mi caso, Ruby on Rails  es uno de los lenguajes más fáciles de aprender y desarrollar proyectos profesionales.

Base de datos: toda aplicación web que sea dinámica utiliza base de datos para almacenar los datos de usuarios.   Entender cómo manejar una base de datos es fundamental para el desarrollo web (y otras áreas también).  Hay una gran variedad de base de datos, que comparten muchas características entre sí.   Ruby on Rails trabaja con SQL lite o postgreSQL.


Front End



Es todo con lo que el usuario ve e interactúa.  La parte externa de una página o sistema web.

HTML/CCS:    estos son lenguajes de marcado, no propiamente lenguajes de programación pero son los bloques de construcción básico para desarrollar página web.  Es fundamental usarlos.


JavaScript: este lenguaje si es  un lenguaje de programación en todo el sentido de la palabra. Y hoy en día se usa para todo.   

De hecho leí una vez: “cualquier aplicación que pueda ser escrita en JavaScript, será escrita en JavaScript”.  Por ellos es fundamental que en este lenguaje si te vuelvas un experto. 

Con esto, es importante aprender a usar las librerías deJavaScript.   Estas librerías pueden ser usadas para darle dinamismo visual a una página web, manejar  mapas en una web (google maps), etc.  

Entre estas librerías y frameworks basados en JavaScript están JQuery  y AngularJS.

Me gustaría incluir Bootstrap,  librerías que ayudan a crear diseños responsive de formar fácil.


Herramientas y plataformas



Las herramientas  y tecnologías que nombrare a continuación, son necesarias de aprender porque de una forma u otra te verás obligado a trabajar con ellas. Y si te ves obligado es porque realmente son útiles, facilitaran tu vida como programador.  

Líneas de comando (Shell):   cómo usar líneas de comando para instalar librerías, manipular archivos, ejecutar programas, configurar permisos de acceso  es esencial  para cualquier desarrollador. Sea web o no.    Hay muchas tareas que se pueden hacer de forma extremadamente mejor usando líneas de comando.

Sistemas de control versiones: la verdad sea dicha,  la mayoría de desarrollo web se hace en equipos  por ellos se usan herramientas  colaborativas, entre ellas el control de versión,  para facilitar el trabajo en equipo.     Para este caso, Git es la herramienta por antonomasia para el control de versión.  Es la mejor, es gratuita y tiene una excelente documentación.

Github es un servicio en la nube que usa git,  se ha vuelto una red social para programadores bastante popular,   es altamente recomendable

Manejar APIs:   hoy en día es que casi obligatorio integrar páginas web con redes sociales, dígase: Facebook, twitter, google maps, YouTube, etc.    Esta integración se hace a través de APIs,  no son más que un conjunto de “protocolos” para llamar los servicios que ofrece una plataforma para poder acceder a sus funciones sin comprometer su estructura interna.

Si tiene que integrar cualquier servicio  a tu página web, muy probablemente, usaras APIs.



Espero que esta pequeña guía sea de ayuda.

2 comentarios:

  1. hola. muchas gracias x esta experiencia..voy camino a lo mismo. si sabes donde encontrar mas sobre lenguaje técnico de la informática en ingles, I´d really apreciate it.

    ResponderEliminar

Bottom Ad [Post Page]

| Designed by Colorlib