¿Como iniciar en la programación?

¿Como iniciar en la programación?

Antes de entrar en materia quisiera hacer un apunte, y es que por suerte el panorama profesional en el campo de la programación está cambiando, está sufriendo una transformación hacia un ecosistema diferente al que fue implantado en el siglo 20 que consistía en demostrar nuestra valía con un papel, un título firmado y sellado por una institución universitaria que acreditase que hemos superado con éxito una licenciatura, maestría o doctorado; no me malinterpreten, no quiero decir que esto no sirva, es una llave que ayuda abrir muchas puertas, pero no aporta la experiencia necesaria para ser considerado un buen profesional, mientras que existen programadores autodidactas sin títulos académicos que superan en nivel de conocimientos y experiencia no solo a una gran cantidad de egresados, sino también a un buen número de profesores, y si aún tienen dudas al respecto, debo recordar que en la actualidad, algunos de los empresarios más ricos del mundo son informáticos, por mencionar algunos: Mark Zuckerberg, Bill Gates o el difunto Steve Jobs, y de esta lista otro detalle interesante: Ninguno obtuvo un grado universitario.

La programación es una profesión donde no hay excusa para no tener experiencia, por ejemplo, a diferencia de profesiones del área médica donde es un requisito ejercer con un título en programación trabajar por tu cuenta no solo es un derecho, sino una obligación; tus trabajos son tu curriculum, la prueba más fidedigna de que eres un buen programador y para muchas empresas, tiene más valor la cantidad y calidad de los trabajos que hayas realizado y las líneas de código que has escrito en el proceso que cualquier título universitario, por lo tanto, si quieres ser programador pero crees no tener los recursos necesarios, estas muy equivocado, en Internet tienes a tu disposición todos los recursos que puedas necesitar para conseguir tu objetivo.

Ahora bien ¿Cómo empezar a programar? Primero y, antes de nada, tenemos que identificar las distintas áreas donde nos podemos enfocar, desde el desarrollo web, aplicaciones móviles, software de escritorio, videojuegos o ingeniería electrónica.

Una vez identificado nuestra área, tenemos que elegir un lenguaje de programación adecuado.

lenguajes-de-programacion

Desarrollo web

En desarrollo web existen 2 ramas que hay que conocer y saber diferenciar, Backend y Frontend.

En el Frontend vamos a desarrollar la interfaz gráfica del sitio y para ello tenemos que conocer a la perfección el lenguaje de marcado HTML, CSS y JavaScript, padre, hijo y espíritu santo de la web.

En Backend vamos a trabajar la parte interna, el funcionamiento de la página o aplicación web en sí; el lenguaje de programación por excelencia es PHP, aunque Phyton (usando Django) y Ruby (usando Ruby on Rails) son opciones que vienen ganando adeptos.

También tenemos que tener conocimientos de bases de datos, siendo MySQL el mayor exponente, aunque existen otras opciones como SQLite o MongoDB por mencionar algunas.

Aplicaciones móviles

En el desarrollo de aplicaciones móviles hay 2 ramas, aplicaciones nativas y aplicaciones hibridas; quizás hayan escuchado de las Web Apps, pero como tal, al momento de escribir esto se considera como Web App a una página web con diseño responsive, por lo que no lo considero una rama en esta área.

Aplicaciones nativas

Las aplicaciones nativas son aquellas desarrolladas en el lenguaje nativo del terminal, que al momento de escribir este artículo los SO que dominan el mercado son 2: Android e iOS.

La ventaja de las aplicaciones nativas es que se puede obtener un mejor rendimiento, nos dará acceso a las librerías gráficas del SO (menús, botones, etc.) y es capaz de hacer uso de todas las capacidades del dispositivo, como la cámara, el GPS, etc.

La desventaja es que es un modelo 100% dependiente de la plataforma, no son portables de forma que habrá que desarrollar una App para Android y otra para iOS, lo que por supuesto encarece el desarrollo.

Si quieres desarrollar aplicaciones para Android, deberás aprender Java como lenguaje de programación; si decides desarrollar aplicaciones para iOS, deberás aprender Objetive-C.

Aplicaciones hibridas

Las aplicaciones hibridas son aplicaciones desarrolladas en HTML, CSS y JavaScript utilizando un empaquetador como PhoneGap que nos brinde acceso a las capacidades del dispositivo de una forma neutral.

La principal ventaja es que, al tratarse de un modelo neutro, la portabilidad es absoluta, de forma que es posible desarrollar una sola aplicación para las distintas plataformas, algo que para el cliente final se traduce en menos costos por su desarrollo.

La desventaja es que su integración con el SO así como su rendimiento puede no ser tan optimo, y en contra de lo que uno pueda llegar a pensar, quizás su desarrollo sea algo más complicado.

Software de escritorio

El Software de escritorio es todo aquel que se ejecuta en un – valga la redundancia – equipo de escritorio y por cada SO existen diferentes lenguajes de programación específicos, al igual que en las aplicaciones móviles; no obstante, hay una gran cantidad de lenguajes de programación multiplataforma como JAVA, C, C++, considerados lenguajes de alto nivel y quizás los más demandados y mejor pagados del mercado, también vienen ganando fuerza Phyton y Ruby, siendo Phyton el más accesible y según su enorme comunidad de usuarios dicen que puede hacer casi todo.

Videojuegos

De los distintos campos que podemos encontrar en programación, el desarrollo de videojuegos quizás sea el segundo campo más complicados de todos. Hay que tener vocación por la programación, hay que dominar las matemáticas con solvencia y por supuesto, ser un apasionado de los videojuegos.

En el desarrollo de videojuegos hay 4 principales ramas, el desarrollo de gráficos (diseño 2D y modelado 3D), composición musical, guionismo y programación.

Como estamos hablando de programación, por demanda los principales lenguajes de programación son C++, C# y JAVA, aunque por supuesto también es posible desarrollar videojuegos utilizando otros lenguajes como Phyton o JavaScript, por mencionar algunos.

Ingeniería electrónica

Y llegamos al escalón más alto y quizás el más complicado de todas las áreas, en ingeniería electrónica se manejan lenguajes de programación de alto nivel como C, C++ y ensamblador y sobra decir que es uno de los campos mejor pagados y más difíciles de acceder, por lo que debo ser un jarro de agua fría y decir: Aunque es posible ser autodidacta en este campo, es necesaria muchísima paciencia, disciplina y un temario universitario para aprender en el orden correcto.

¿Y ahora?

“La mayoría de los buenos programadores programan no porque esperan que les pagen o que el público los adore, sino porque programar es divertido.”

Linus Torvalds

Ahora que conoces mejor las distintas áreas, el verdadero consejo es el siguiente:

Piensa que es lo que quieres hacer, investiga por tu cuenta y sea cual sea el área que hayas elegido, no esperes, empieza desde ya, en el proceso de aprendizaje crea un pequeño proyecto que resuelva una necesidad concreta, no importa si ya se ha hecho o si otros lo han hecho mejor, no te compares con nadie, ve acumulando proyectos y compártelos en plataformas como GitHub, ve adquiriendo experiencia y con el tiempo podrás ir mejorando tu trabajo, pero cada trabajo terminado es la mejor prueba para complementar tu curriculum y adquirir la confianza necesaria para responder preguntas como ¿es posible realizarlo? ¿y en cuánto tiempo puede estar listo?

Autor: Javier Ocampos

Fundador de Leedeo y cofundador de Nube Online. Desarrollador web por vocación, soy un apasionado del fron-end y back-end por igual, ya que considero que lo visual y lo funcional siempre han de ir de la mano.