#MAKE YOUR FUTURE
MAKE YOUR FUTURE
Seleccionar página

// Blog
Generación Code

  • <make>
    •  <yourfuture>now</yourfuture>
  • </make>

Vale. Quiero empezar a programar. Pero no tengo ni idea de por dónde comenzar…

Esta es una reflexión bastante común en la gente que quiere iniciarse en el apasionante mundo de la programación. ¿Cómo empiezo?¿Qué pasos sigo? Existen tantos caminos posibles que si preguntas a 20 programadores, todos te darán una respuesta y una perspectiva diferentes basada en su actividad profesional o en su propia experiencia. Entonces, ¿qué hago? Desde aquí vamos a dar unas sencillas pautas para que tengas un poco más claro el camino que debes seguir.

Empecemos por la base

Si tu intención es ir más allá de un proyecto concreto y quieres aprender más de un lenguaje, deberás aprender la lógica de la programación. La manera o el método en el que prácticamente todos los lenguajes de programación están basados. Esto se llama “Metodología de programación”. O también llamado “Fundamentos generales de programación”.

Con la metodología de programación aprendemos a diseñar un algoritmo de programación. ¿Y qué es? Pues, simplemente, un conjunto de operaciones, reglas o instrucciones que le damos a nuestra máquina para que haga algo. Y puede ser tan sencillo como sumar dos números, o algo más complicado como crear una imagen en formato JPEG. Pero todo se basa en los mismos conceptos. La metodología te ayudará a entender y crear tus propias instrucciones. Para ello cada programador comienza creando su propio “lenguaje” de programación básico. También llamado pseudocódigo o pseudolenguaje. No te asustes por el nombre. No tiene nada de esotérico. En este primer “lenguaje” intentamos conceptualizar las instrucciones u operaciones usando una mezcla de nuestro lenguaje natural con diferentes símbolos y términos. Vamos a poner un ejemplo sencillo para que se entienda mejor:

Inicio
   Escribo "¡Hola Mundo!"
Fin

Su significado es bastante obvio: iniciamos nuestra aplicación, escribimos un texto: “¡Hola mundo!” y finalizamos. No parece tan complicado ¿verdad?. Bueno, todo depende lógicamente de nuestros conocimientos. Fíjate en este otro ejemplo:

Inicio
   Defino variable FICHERO
   Defino variable LINEA_FICHERO
   Defino variable CONTADOR => 0
   Asigno variable FICHERO => Leer_fichero "nominas.xls"
   Asigno variable LINEA_FICHERO => Leer_linea_fichero FICHERO
   Mientras LINEA_FICHERO no sea final fichero
       Escribo LINEA_FICHERO
       Asigno variable LINEA_FICHERO => Leer_linea_fichero FICHERO
       CONTADOR = CONTADOR + 1
   Continuar
   Escribo "Hemos leído " + CONTADOR + " líneas"
Fin

Aquí entran en juego otros conceptos básicos de la programación como variables, operadores lógicos y funciones que se aprenden de manera natural con cada lenguaje de programación. Pero como puedes observar todo se basa en ir escribiendo las instrucciones línea a línea. En los lenguajes de programación se sigue esta misma lógica, sólo que cambiamos el “pseudocódigo” por código específico de cada lenguaje. Y esa es la principal clave de la metodología. Para que quede más claro vamos a ver un mismo código en diferentes lenguajes de programación.

Ejemplo de nuestro pseudocódigo:

Inicio
   Escribo "¡Hola Mundo!"
Fin

Lenguaje

Código

PHP

<?php
echo "!Hola mundo!";
?>

C

#include <stdio.h>
int main()
{
        printf("Hola mundo");
        return 0;
}

La lógica es sencilla, pero en cada lenguaje se realiza de manera diferente. Es como hablar en inglés o en Italiano, cambian las palabras, la gramática, pero al final podemos decir lo mismo. Es por ello que son “lenguajes” y cada uno de ellos usa su propia nomenclatura y formato. Pero no te preocupes, porque muchos de ellos comparten sintaxis, al estar desarrollados unos sobre otros. Por eso una vez que aprendes a programar en un lenguaje específico, es muy sencillo pasar a otro. Fíjate en estos ejemplos con nuestro “Hola mundo” en los lenguajes Perl y Phyton. Verás que la instrucción es la misma.

Lenguaje

Código

PERL

print "!Hola mundo!\n";

Phyton

print "!Hola mundo!\n"

Es importante destacar que mucha gente que comienza lo hace olvidándose de la metodología. No es que sea una mala práctica, ni mucho menos. Puedes aprender estos conceptos de manera natural al trabajar en un proyecto con un determinado lenguaje. Pero si quieres convertirte en un programador disciplinado o simplemente quieres asentar los conceptos básicos, estos fundamentos crearán una solida base en tus conocimientos para trabajar sobre cualquier lenguaje de programación.

Bueno, ¿y cómo puedo aprender metodología? Los entornos más académicos usan herramientas como PSeint, que usa un pseudolenguaje propio para representar las líneas de código, y se complementa además con un editor de diagramas de flujo que te ayuda a entender visualmente los pasos que siguen las líneas de código. Es un programa que puedes descargarte de manera gratuita, aunque es importante decir que se trata de una herramienta para asistir al estudiante en su iniciación en la programación. Y es necesario conocer ciertos fundamentos.

Puedes encontrar online muchos recursos gratuitos. Aunque nosotros te recomendamos el que quizás sea el curso de programación más famoso: Hardvard CS50. Puedes acceder a este curso desde plataformas como Codeacademy.

Resumiendo, para programar necesitas:

  • Conocer la lógica de la programación. La manera o el método en el que prácticamente todos los lenguajes de programación están basados. Esto se llama “Metodología de programación”. O también llamado “Fundamentos generales de programación”.
  • Algo de lógica para entender, conceptualizar y solucionar problemas. Esto es algo que hacemos todos los días en nuestras vidas, sólo que en programación lo traducimos en líneas de código.
  • Conocer un lenguaje de programación.

¿Y cuál es el mejor lenguaje de programación?

Antes de nada debes tener claro qué es lo que quieres hacer. Es importante, porque la variedad de elección es bastante amplia. Vamos a hacer un pequeño esquema con algunas posibilidades:

  • Quiero programar páginas web:
    • Quiero programar en la parte de Back-end (servidores): Python, Ruby, PHP, Perl, Java, o .NET suelen ser la referencia. Necesitarás también conocimientos de bases de datos y preferiblemente de administración de sistemas. Estos lenguajes están orientados a crear toda la lógica detrás de los servicios web y necesitas conocer mínimamente como funcionan estos sistemas.
    • Quiero programar en la parte de Front-end (cliente): HTML, CSS, Javascript (con variantes como AngularJS o JQuery). Es recomendable, aunque no imprescindible, que tengas algún conocimiento de diseño.
  • Quiero hacer Aplicaciones para móviles: necesitarás entonces aprender Objetive C o Swift (para iOS) o Java (para Android). En ambos casos, dependiendo de lo que quieras hacer, necesitarás posiblemente tener también conocimientos de servidores si tu intención es crear una App que requiera de un servicio web.
  • Quiero hacer juegos: entonces necesitas aprender C/C++/C# y OpenGL. Si quieres crear juegos para una videoconsola de última generación tendrás que tener unos conocimientos mínimos de los entornos 3D y Animación. Es recomendable tener unos mínimos conocimientos artísticos y de diseño.
  • Quiero hacer programas: si quieres hacer software para Windows deberás aprender .NET o C/C++. Para iOS lo más recomendable es usar C/C++ aunque también puedes usar Objetive C. Para Linux también usarás C/C++ o Java. Si tu intención es hacer programas algo más sofisticados y técnicos es recomendable tener unos buenos conocimientos matemáticos.

Como puedes ver no existe un único camino para iniciarse en la programación. Centrarse es un proyecto concreto para empezar te ayudará a encontrar tu camino más fácilmente.

Como hemos visto la mayor parte de los lenguajes de programación más populares como C, Phyton, .NET o Java sirven para hacer más o menos las mismas cosas. Con C podemos hacer una programa al igual que con Java. Con .NET podemos crear un servicio web de la misma manera que con Phyton. En realidad los lenguajes de programación se diferencian básicamente en su curva de aprendizaje. Lógicamente algunos son más complicados de aprender que otros aunque siempre se ha recomendado comenzar con lenguajes sintácticamente más simples, Es decir, que tengan menos reglas sintácticas o lógicas. De esta manera te permite ir de menos a más. Veamos algunos de los lenguajes más comunes.

  • C: el lenguaje de programación por excelencia: es quizás el lenguaje más usado por su fiabilidad y robustez y sin duda uno de los más populares. Tiene una curva de aprendizaje algo más compleja que otros lenguajes, sobre todo si tu intención es interactuar más con el hardware. Pero te ayudará a entender mejor conceptos abstractos que se asocian a lenguajes de bajo nivel como la gestión de la memoria. Pero sobre todo te enseñará a ser un programador organizado y a optimizar al máximo todos los recursos.
  • Java: junto con C seguramente sea otro de los lenguajes más populares. Es uno de los lenguajes más usados para comenzar en la programación porque es muy útil para aprender los principios de la programación orientada a objetos que se usan en otros lenguajes de programación más modernos (como C# o PHP). Además es un lenguaje multiplataforma, que te permite crear software para muchos dispositivos. Es el lenguaje nativo de plataformas como Android.  Encontrarás infinidad de tutoriales y recursos online.
  • Phyton: uno de los lenguajes más recomendables para comenzar a programar por su simplicidad. Aunque siempre ha estado orientado a entornos Linux, el uso de este lenguaje en servicios tan famosos como Pinterest o Instragram le ha dado mucha popularidad. Según Patrick Jordan de Ariel Computing comenta: “Aunque los demás lenguajes no deben ser descuidados, Python lleva menos tiempo, menos líneas de código, y menos conceptos que aprender para alcanzar un determinado objetivo. Programar en Python es divertido, y eso genera interés y confianza en el alumno, lo que siempre es bueno para animarle a continuar con su formación en otros lenguajes más austeros.”.
  • JavaScript: Aunque lo parezca no tiene mucha relación con Java. Es un lenguaje integrado en todos los navegadores de internet. Es el lenguaje que necesitas aprender si quieres dedicarte al entorno web. O’Reilly Media recomienda comenzar con JavaScript debido, entre otras razones, a su flexibilidad en la sintaxis, lo rápido que puedes ver los resultados y porque no necesitas aprender a usar muchas herramientas. Te basta con tener un editor de texto decente (como Sublime Text) y un navegador.
  • PHP: es uno de esos lenguajes que nació con el auge de Internet y de los servicios web. Orientado al uso exclusivo para servidores, es un complemento ideal si lo que quieres es dedicarte al desarrollo de aplicaciones web. Su curva de aprendizaje es moderada, y es uno de los lenguajes de back-end más demandados.

Te dejamos otra visual muy ilustrativa sobre los lenguajes de programación y usos más comunes extraída del artículo de SOA World :

Lenguaje

Uso típico

Java

Aplicaciones de cliente complejas, grandes aplicaciones web, applets web, multiplataforma

C# / .Net

Aplicaciones Windows, iPhone apps

PHP

Web Application back-ends

Javascript

Para la interacción del usuario a través del navegador web

Python

Aplicaciones de ciencia, herramientas de administración, Automatización de tareas repetitivas de forma rápida, se pueden ejecutar en Linux y Windows (como Java)

Ruby

Aplicaciones web sólidas y Grandes

Perl

Para trabajar con una gran cantidad de texto

Bash

Automatización de actividades sobre Linux (como iniciar / detener procesos)

C/C++

Medio a grandes proyectos, desarrollo integrado, aplicaciones donde la velocidad es un factor muy importante

¿Y ahora qué?

Esperamos que este post te anime en parte a iniciarte en la programación y elegir un lenguaje adecuado a tu nivel y necesidades más inmediatas. Además de los recursos que hemos incluido, puedes comenzar echando un vistazo a la web de Bento. Es un buen punto de partida para localizar otros recursos que puedas necesitar.

Si has leído esto y sientes aún pánico por cómo comenzar, puedes perfectamente iniciarte usando herramientas más sencillas como SCRATCH, que es un lenguaje de programación visual orientado a servir de trampolín a la programación más avanzada. Es muy usado en las escuelas porque está enfocado a edades más tempranas. Aunque no te dejes engañar por su simpleza. Es una herramienta divertida e ideal para aprender los conceptos más básicos.

Más información

Hardvard CS50

Code Academy

Bento

Scratch

Share This
Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012.
Si continúa navegando consideramos que acepta el uso de cookies. OK | Más información