¿Como puedo ser programador?, El programador principiante.




Si si vamos de programación, ¿ya lo notaste?, que bien. Pues llevo regular tiempo viendo a muchas personas queriendo aprender a programar, y no es que yo sea el mas experto, de lejos se muy poco comparado a otras personas que dominan muchísimos lenguajes de programación, pero aquí estoy tratando de compartir algo de lo que aprendí.

Primero que nada, ¿que necesito para ser programador? o ¿Tengo madera de programador?, "pues no necesitas nada especial solo una Pc estándar y un poco de criterio en lógica y matemáticas básicas, y adelante el mundo es tuyo." ... bueno eso dirían algunos, pero en mi experiencia se que no es tan fácil, todo lo contrario programar es algo muy difícil y demandante, que muchas veces va a requerir de mucho esfuerzo, horas de trabajo, por no decir días, y que a veces puede resultar frustrante, por lo que debes estar seguro si quieres entrar al mundo de la programación.

Así pues una vez superado el párrafo anterior, podríamos decir que dependiendo de a que ámbito de la programación te gustaría entrar, los requisitos varían, por ejemplo, si deseas aprender programación web, pues los requisitos serian una computadora estandar, aprender un lenguaje de programación en servidores como el super famoso PHP o algunos otros como Ruby, Node Js, Python, menos usados estan algunos lenguajes basados en java o .NET, pero a mi criterio considero que PHP es una buena opción, no por que sea el mejor, pero su curva de aprendizaje es corta, es multi-paradigma (en otras palabras tiene muchas maneras de trabajarse desde la mas fácil para principiantes, hasta las mas difíciles que incluyen programación orienta a objetos), la cantidad de informacion disponible es inmensa en internet para este lenguaje, y es practicamente soportado por el 100% de servidores que hay en internet. Ademas deberas aprender un lenguaje de programacion del lado del cliente que por excelencia es Javascript, otras opciones hubieran podido ser Actionscript pero debido a su guerra perdida con html5, prácticamente desapareció de la web moderna.



Ahora bien si lo tuyo no es la web, tal vez podrías aprender a programar aplicaciones de escritorio, sistemas internos o intranets, para lo cual necesitarías de una Pc estándar y conocer los lenguajes de programación como en famoso .NET de microsoft que aunque es de pago tiene una versión gratis para estudiantes, otras opciones pueden ser JAVA (ojo no confundir con Javascript que nada tiene que ver el uno con el otro), o también usar C++.

Cuando llegues a estos lenguajes veras que una de sus características es que requieren de un compilador, por lo que se les llama lenguajes compilados. Que no te asuste el termino ya que solo es una etapa mas en el proceso de elaboración de las aplicaciones del cual ya habrá tiempo para hablar en otra publicación. La desventaja de este ámbito es que hoy en día a perdido mucha fuerza debido a la presencia de aplicaciones móviles y web que pueden fácilmente suplantar a las aplicaciones de escritorio.


Bueno, como vemos ya tenemos varios lenguajes en nuestra lista, y hay muchos mas, pero hay que considerar que algunos lenguajes se encuentran dentro de muchos ámbitos. De esta manera si deseamos programar circuitos electrónicos preparados como Arduino o Rapsberry PI( que son circuitos que ya cuentan con un chip de firmware y una memoria de almacenamiento así como un puerto ethernet para poder conectar el terminal de la Pc) se programan en C++.

Otros circuitos electrónicos internos de algunos electrodomésticos utilizan lenguajes como C y C#, y bueno la diferencia con C++ es el paradigma ya que C++ y C# incluye la programación orientada a objetos a diferencia de C que solo soporta programación imperativa, lo cual lo hace mejor de manejar y cuenta con una gran variedad de librerías a las cuales recurrir para hacer mas rápido nuestro trabajo.



Otro ámbito de la programación en auge, es la programación para dispositivos móviles, como celulares, tablets, gadgets(como relojes) y hasta sistemas integrados en los automóviles, los cuales se basan en plataformas como ANDROID y IOS en su mayoría. Para estas plataformas los requisitos suben, ya que al no ser sobre plataformas de escritorio, requieren un entorno de desarrollo o IDE(Android Studio para Android y Xcode para IOS) y un dispositivo de pruebas que puede ser emulado para lo cual necesitas una computadora con requisitos de gama media alta, es decir una Core i5 y unos 8Gb de RAM para trabajar tranquilamente, también esta la opción de hacer las pruebas directamente sobre dispositivos físicos, pero tendrías que poseer algunos teléfonos móviles para tus pruebas.

Superado esto necesitarías aprender para ANDROID el lenguaje de programación JAVA el cual ANDROID hereda para hacer las aplicaciones, pero aun así tiene una capa de abstracción lo cual lo vuelve un poco mas difícil. Para IOS se trabaja con los lenguajes de programación Swift y Objetive-C y adicional necesitas una Pc con plataforma OSX necesaria para poder correr el IDE de Apple. Lo cual lo complica un poco, pero vamos si fuera demasiado fácil cualquiera lo haría así que no se desanimen.


Por ultimo para los mas hábiles tenemos la programación para videojuegos, el cual tiene un nivel de complejidad superior por que se debe trabajar no solo sobre plataformas sino sobre motores de gráficos desarrollados para cada hardware, pero centrándonos en la programación, el lenguaje mas utilizado nuevamente tenemos a C++ y C#, los cuales trabajan dentro de entornos de desarrollo como UNITY y UNREAL, las desventajas que tenemos en este ámbito es que la información no esta disponible para todos los bolsillos por lo que cuesta aprender, así como los equipos necesarios, también deben cumplir grandes exigencias, por lo que estaríamos hablando de tener que adquirir una computadora de altas prestaciones.

Aun así existen opciones para desarrolladores principiantes con muchos deseos de aprender como podría ser Construct 2 la cual es una plataforma sencilla para diseñar juegos en 2D con amplia información en Internet y que tiene como motor al lenguaje de programación JavaScript incluido dentro del estándar HTML5, así que si aprendes a desarrollar Sitios Web, también podrías aprender a desarrollar videojuegos en 2D, así matamos 2 pájaros de un tiro.



Bueno se que me estoy pasando por alto muchos puntos importantes en cada uno de los ámbitos, por lo cual sera motivo para hacer nuevas publicaciones, no olviden que es mi primera publicacion así que espero haber hecho algo decente, si se me paso algo importante o creen que podria corregir algo todas sus sugerencias y criticas son bien recibidas, gracias de antemano.

Comentarios