La primera pregunta que podrías hacerte es:
¿Qué lenguaje de programación es mejor?
Pues bien, si le hicieses esa pregunta a diez programadores, obtendrías diez respuestas diferentes.
Hay centenares de lenguajes de programación existentes (FORTRAN, Ada, Perl, ALGOL, ASP, Python, BASIC, Java, JavaScript, Ruby, C, C++, C#, Lisp, COBOL, Delphi, Visual Basic, Objetive-C, Pascal, Go…) y, al igual que ocurre con los idiomas, los hay que son muy populares, muy usados o más fáciles.
En esta página https://www.tiobe.com/tiobe-index// podrás encontrar un ranking hecho por una empresa de Software que ha desarrollado un algoritmo basado en la ejecución de multitud de consultas en los mayores motores de búsqueda del mundo, dándonos unos resultados sobre el número de programadores especializados en cada lenguaje, oferta formativa y empresas que trabajan sobre ellos.
Primer paso: objetivo
El primer paso para elegir el lenguaje de programación es determinar tu área de interés, tu objetivo para programar. Dependiendo del tipo de proyecto, tendrás que elegir un tipo de lenguaje.
Si quieres dedicarte al desarrollo web puedes escoger JavaScript, Ruby, Python, Java, HTML, CSS, PHP o ASP; para desarrollo de videojuegos JavaScript, Java, C o C++; en aplicaciones móviles Ruby, Java, C, Objetive-C o Swift; en aplicaciones de escritorio Python, C o C++; para trabajar con bases de datos PHP, Java, Ruby o Python; con sistemas operativos Java o C; para trabajar en inteligencia artificial PROLOG o LISP… Si no estás seguro, puedes elegir un lenguaje que pueda utilizarse en varios ámbitos como Java por ejemplo, o uno más especializado como COBOL que es usado fundamentalmente en negocios.
Segundo paso: dificultad
El segundo paso es determinar cuál es el lenguaje más sencillo para poder aprenderlo desde cero.
Sintaxis inteligible y atractiva
Una forma de clasificar los lenguajes de programación es haciendo referencia a su nivel de abstracción, en lo mucho o poco que se parecen a un idioma natural escrito. Un nivel “bajo” se refiere a que el lenguaje es más cercano a la máquina y a sus instrucciones, que son difíciles de leer. Un nivel “alto” es más cercano a los humanos. Casi todos los lenguajes de programación usan para sus instrucciones palabras tomadas del inglés.
Obtención de resultados inmediatos
El aprendizaje es más fácil y duradero si es interactivo. Por tanto, es más fácil aprender un lenguaje de programación interpretado (escribes código y lo ejecutas en el acto) que un lenguaje compilado (escribes código y creas un ejecutable). Otro punto por el que un lenguaje interpretado es mejor para el aprendizaje es que su código fuente es legible. Los programas compilados no se pueden inspeccionar en busca de ideas o para aprender cómo funcionan. Lo ideal es aprender un lenguaje que admita más de un estilo de programación (multiparadigma).
Orientado a objetos
Los datos y los métodos están en objetos. Es una forma de programar más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Funcional
Al introducir datos, salen resultados. Como haría una calculadora
Relación con otros lenguajes
Varios lenguajes modernos comparten características de múltiples familias. Así, por ejemplo, Ruby ha recibido influencias de C++, Perl, Smalltalk y Ada, mientras que C# cuenta con parientes tan ilustres como Java y Pascal. Las similitudes entre lenguajes facilitan el aprendizaje por la cantidad de recursos que pueden ser compartidos entre ellos. Y al ser más sencillo pasar de uno a otro, aportan un extra de motivación a quien desee aprender a programar.
Tercer paso: tutoriales y recursos
El tercer paso es averiguar si tiene tutoriales básicos y comunidades que puedan ayudarte.
Un lenguaje de programación, aunque sea muy potente, si no tiene una documentación de calidad con buenas herramientas y una comunidad de usuarios activa y colaboradora, será más complicado aprenderlo.
Esta ayuda proviene de: páginas oficiales, manuales y tutoriales producidos por docentes y programadores, libros gratuitos y de pago, herramientas proporcionadas de forma gratuita y para qué sistemas, entornos de desarrollo a disposición, recursos de aprendizaje interactivos como juegos o aplicaciones web, comunidades, foros...
A continuación tienes una lista de ellos:
- Recursos: https://www.quora.com/What-are-some-websites-similar-to-Coursera
- Recursos: https://bento.io/
- Recursos de aprendizaje juegos: https://www.codeschool.com/
- Educación gratuita: https://es.khanacademy.org/computing/computer-science
- Educación de pago: https://www.codecademy.com/es/catalog/subject/web-development
- Información gratuita Python: http://www.learnpython.org/
- Ebook de pago JavaScript: http://eloquentjavascript.net/, http://shop.oreilly.com/product/9780596805531.do, http://shop.oreilly.com/product/9780596517748.do
- Videos de curso de JavaScript: https://www.youtube.com/playlist?list=PL6AB6BC25625679DE
- Colección de recursos JavaScript: https://developer.mozilla.org/es/docs/Web/JavaScript
- Guía HTML5: http://diveintohtml5.info/index.html
- Guia Ruby: http://poignant.guide/book/
- Guía Interactiva Ruby: http://tryruby.org/levels/1/challenges/0
- Juego Ruby: https://www.bloc.io/ruby-warrior#/
- Tutorial Ruby: https://www.ruby-lang.org/es/documentation/quickstart/
- Libro gratuito: https://en.wikibooks.org/wiki/Ruby_Programming
- Recurso de aprendizaje interactivo Python: http://www.learnpython.org/
- Ejercicios y retos Python: https://www.codecademy.com/tracks/python
- Lecciones sobre Java: http://codingbat.com/java
- Tutorial interactivo Java: http://www.learnjavaonline.org/
- Tutoriales gratuitos Java: https://docs.oracle.com/javase/tutorial/
- Entorno de desarrollo Java: https://www.bluej.org/index.html
- Libros O´Reilly de pago: https://www.oreilly.com/
- Libros de pago: https://www.safaribooksonline.com/library/publisher/oreilly-media-inc/
Ser parte de una comunidad también puede serte útil, pues puedes encontrar gran variedad de ejemplos y herramientas. Además, leer el código de otros programadores puede inspirarte y ayudarte a comprender conceptos.
Participa, colabora, pregunta, muestra tu trabajo.
Cuarto y último paso: elige tu lenguaje
La siguiente imagen muestra las conclusiones a las que hemos llegado.
En Femxa podemos ayudarte. Pásate por nuestros cursos de informática y programación o pregunta sobre lenguajes o sistemas con los que te podemos ayudar: HTML para programación en páginas web. También puedes encontrar formaciones de interés, con temáticas como Cloud Computing, Data Warehouse, Big Data o Business Intelligence.
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo."
─ Ley de Mosher de la Ingeniería del Software.