Todo lo que siempre quisiste saber sobre aprender programación y no te animaste a preguntar

Laura Mangifesta
Mumuki
Published in
6 min readNov 12, 2019

Ilustrado por moli moli.

¿Escuchaste hablar de “programación” pero no sabés bien de qué se trata? ¿Querés aprender pero no sabés por dónde empezar? ¡Este artículo es para vos! Respondemos las 6 dudas más comunes sobre aprender a programar.

Ilustrado por moli moli.

1. ¿Qué $%@!* significa programar?

Programar es, básicamente, darle órdenes a una computadora para que resuelva un problema. Para lograrlo necesitamos hacer dos cosas fundamentales: por un lado, tenemos que pensar de qué forma ese problema puede resolverse. El diseño de la solución es un proceso creativo y es una parte importante -quizás la más importante- de programar.

Por otro lado, tenemos que darle instrucciones a una computadora de forma tal que nos “entienda”. Ahí es donde entra el código, es decir, el conjunto de líneas de texto con los pasos que debe seguir la computadora para ejecutar la solución que diseñamos.

Para comunicarnos con una computadora podemos usar distintos “lenguajes”. Por ejemplo, si queremos decirle que multiplique un número por dos usando el lenguaje JavaScript, el código se podría ver así:

function doble(numero) {
return 2 * numero;
}

2. ¿Qué lenguaje me conviene aprender?

En el mundo existen muchas formas distintas de entender la realidad y eso deriva en formas diferentes de solucionar un mismo problema. En la programación pasa lo mismo: existen distintos paradigmas, es decir, marcos conceptuales que determinan la forma de modelar las soluciones. Algunos de estos paradigmas son el funcional, procedural y orientado a objetos. Los lenguajes de programación se enmarcan normalmente en un paradigma, pero ciertos lenguajes se expresan en términos más fieles al paradigma. Por ejemplo, Haskell es un lenguaje de programación puramente funcional.

Ahora bien, no hay mejores o peores lenguajes en términos absolutos, aunque todos tengamos uno favorito. Tanto el paradigma como el lenguaje que usemos debemos elegirlo en función del problema que tengamos, nuestra preferencia y lo que pida el mercado.

Para empezar a aprender programación te recomendamos evitar lenguajes muy complejos, como pueden ser Scala, Rust o C++. En Mumuki para enseñar los conceptos fundamentales usamos Gobstones, un lenguaje desarrollado por docentes e investigadores de la Universidad Nacional de Quilmes, diseñado para la enseñanza de ideas básicas de programación a personas sin ningún conocimiento previo en la materia.

Al igual que los lenguajes con los que nos comunicamos entre humanos, cada lenguaje de programación tiene su propia sintaxis, es decir, ciertas normas para su escritura. Para empezar a programar necesitaremos aprender la sintaxis de un lenguaje. Sin embargo, esta capacidad de leer y escribir código es tan sólo un medio. Programando desarrollaremos otras habilidades más importante y profundas:

  • Descomposición en subproblemas
  • Identificación de patrones
  • Representación de la información
  • Nominación de conceptos
  • Diseño de algoritmos
  • Aprendizaje a través del error

En síntesis, a la hora de aprender a programar lo más importante es desarrollar estas habilidades. Una vez que sepamos hacerlo podremos aplicarlas a cualquier lenguaje.

► Leé más sobre Pensamiento Computacional acá: https://medium.com/proyecto-mumuki/de-qu%C3%A9-hablamos-cuando-hablamos-de-pensamiento-computacional-2bb6062aad79

3. ¿Dónde puedo aprender a programar?

Hay varias opciones para aprender y, nuevamente, la mejor opción depende de tus objetivos y posibilidades. La primera gran diferencia es entre las instituciones de educación formal y los recursos informales.

En cuanto a la educación formal hay opciones tanto públicas como privadas. No creemos que haya instituciones que sean mejores o peores que otras, pero sí tienen distintos perfiles u orientaciones. Te recomendamos buscar el perfil del graduado de cada plan de estudios.

En la universidad podés elegir hacer una tecnicatura, licenciatura o ingeniería. Las tecnicaturas son más cortas y, por lo general, una vez que terminás podés hacer algunas materias más y también obtener una licenciatura o ingeniería. En cuanto a las carreras largas podés encontrar Licenciatura en Informática, Licenciatura en Computación, Ingeniería en Sistemas, Ingeniería en Informática, Ingeniería en Computación. Aquí aparece una distinción. ¿Cuál es la diferencia entre “licenciatura” e “ingeniería”? Las licenciaturas, en general, ofrecen un cuerpo de conocimientos sobre un campo, una aproximación más teórica, mientras que las ingenierías se orientan más hacia la implementación y la aplicación de los conocimientos.

Por otro lado, aunque a priori suenen similares, Sistemas, Informática y Computación no son lo mismo. Sistemas está orientado hacia lo gerencial, lo empresarial. Informática está orientado hacia lo industrial. Computación está orientado a lo científico.

En cuanto a la educación informal, vas a poder encontrar cursos de algunos meses de duración que, a diferencia de las carreras universitarias, buscan enseñar conocimientos específicos orientados a la inserción en el mercado laboral. Los más comunes son:

  • desarrollo web: programar páginas web
  • full stack: aprender a desarrollar todos los componentes de un sistema
  • UX/UI: diseñar cómo se van a ver las pantallas y cómo interactúan los usuarios con ellas
  • desarrollo mobile: desarrollar aplicaciones para dispositivos móviles
  • análisis de datos: recopilar y analizar datos para obtener información que no puede ser apreciada a simple vista.

Si no tenés tiempo o ganas de hacer un curso o una carrera pero igualmente querés saber de qué se trata esto de programar, siempre podés recurrir a la internet. Hay muchos recursos para aprender, algunos de mejor calidad que otros, varios que son gratis. En Mumuki hay cientos de ejercicios interactivos gratuitos para aprender los fundamentos de la programación y las ideas más importantes de varios paradigmas, entrando a https://mumuki.io/recorridos.

4. ¿Cuál es la salida laboral?

El desarrollo de software es una de las ramas que más crece en materia de empleo. Durante 2018, la Industria del software registró más de 5.300 nuevos puestos de trabajo en Argentina. Esta amplitud en la oferta significa también una variedad de opciones. Podemos trabajar en relación de dependencia, ya sea en empresas nacionales e internacionales, o de manera freelance. Recomendamos dejar la opción de ser freelancers cuando ya tengamos algo de experiencia en la industria.

Ahora bien, sea cual sea la modalidad que elijamos, es importante entender que la programación no es una actividad solitaria. Podemos estar solos cuando escribimos el código pero el proceso es, en la mayoría de los casos, un trabajo en equipo, en el que vamos a tener que comunicarnos con otras personas, tomar decisiones en conjunto, consensuar…Esos equipos suelen ser multidisciplinarios, con personas de finanzas, ventas, diseño, marketing, y muchas otras áreas.

Los programadores y las programadoras no se ocupan de una única tarea. Hay diferentes roles que intervienen en el desarrollo de software.

  • En cuanto al desarrollo propiamente dicho podemos diferenciar entre desarrollo mobile, desarrollo web, full stack, líder técnico, etc.
  • Algunos roles administrativos son los de project manager (PM), product owner (PO), analista funcional.
  • También hay personas que se dedican a probar la calidad del software, haciendo testing (QA, QC).
  • Están los perfiles que se dedican al diseño, tanto visual como de la usabilidad (UI, UX).
  • Un área que está tomando cada vez más relevancia es la de análisis de datos, que se encargan de recolectar y analizar los datos para convertirlos en información útil (Data Analyst, Data Scientist).
  • Finalmente, están los perfiles de infraestructura que se encargan de crear, asegurar y mantener los ambientes necesarios para poder ejecutar las soluciones (DevOps, DBA, Security Specialist).

5. ¿Cuánto tiempo tengo que estudiar?

Este punto es muy importante. Aprender a programar no es súper difícil ni es una actividad reservada para genios pero, como cualquier nueva habilidad que queramos adquirir, requiere tiempo, práctica y paciencia.

Si te quieren convencer de que con un curso de 3 o 4 meses te vas a convertir en desarrollador/a full stack, permitite dudar. Programar es como jugar al ajedrez, aprender las reglas del juego y los movimientos de cada pieza es relativamente fácil, pero saber cómo utilizarlas a nuestro favor para ganar una partida es algo que requiere mucho más tiempo. Asimilar la sintaxis de un lenguaje de programación es relativamente sencillo. Sin embargo, aprender a construir software, al igual que aprender a jugar, nos lleva toda la vida.

6. ¿Necesito saber matemática e inglés?

A pesar de lo que suele pensarse, para comenzar a aprender programación no es indispensable tener conocimientos sobre matemática. En algunos puestos específicos puede haber tareas que precisen un alto nivel en matemática pero eso va a depender principalmente del trabajo que quieras hacer, no es un requisito excluyente para programar.

En cuanto al inglés, si bien no es un limitante, es preferible, ya que aumenta en gran medida las posibilidades laborales. Hoy en día el inglés es la lengua franca de la tecnología, y de la programación. Muchas veces, aún en contextos locales, se programa también en inglés. Es un recurso muy útil para tener en nuestra caja de herramientas, que pasa de ser un ligero plus cuando empezamos, a una habilidad cada vez más necesaria a medida que avanzamos dentro de una carrera profesional.

Si te interesó este artículo, leé más sobre programación en nuestro blog.

--

--