Javier Pastor

“No tienes que ser un cerebrito para programar”. No lo digo yo: lo dice un desarrollador que lo tiene muy claro. Es en realidad una idea que transmiten la mayoría de nuestros protagonistas: la de queaprender a programar está al alcance de cualquiera.

Quizás esta sea una buena oportunidad: el confinamiento por coronavirus ha hecho que por diversas circunstancias tengamos quizás más tiempo disponible para afrontar algún reto pendiente. Eso es precisamente lo que os proponemos con este tema en el que17 desarrolladores y desarrolladoras nos cuenta con qué lenguaje de programación empezarían ese camino. No solo eso: nos confiesan qué les hubiera gustado a ellos saber antes de empezar.

Desarrolladores por doquier

Para este tema queríamos recabar la opinión de un nutrido grupo de desarrolladores y desarrolladoras, y lo cierto es quela respuesta de todos ellos ha sido fantástica, así que desde aquí queríamos agradecerles su colaboración en este tema.

La propuesta era simple: contestar a unas pequeñas preguntas de forma breve para que todos esos testimonios sirvan a quienes tienen dudas a la hora de afrontar ese reto. ¿Realmente seré capaz de aprender?¿Con qué lenguaje de programación debo empezar?¿Cuál es el lenguaje más interesante? ¿Qué consejos daría la gente que ya lleva años en este campo?

Con esa idea en mente fuimos contactando con una serie de desarrolladores que además nos proponían a otros expertos en diversas disciplinas para enriquecer estos consejos y este cuestionario, así que los perfiles son, como veréis, numerosos y variados.He aquí a nuestros protagonistas:

¿Con qué lenguaje de programación empezar?

Quienes siempre han tenido esa espinita quizás puedan comenzar ahora a quitársela de encima: el confinamiento nos ha obligado a quedarnos en casa, yen algunos casos eso ha llevado a tener mucho tiempo que ocupar.

Hay multitud de propuestas para hacerlo —quizás demasiadas— pero podemos ver también esta situación comouna oportunidad para comenzar a programar desde cero. Es algo que nuestros protagonistas aseguran que se puede hacer, y por eso les hemos preguntado con qué lenguaje de programación darían esos primeros pasos.

Pedro Gómez destacaba que todo depende del campo al que uno quiera dirigirse y explicaba que “si quieres hacer videojuegos te recomendaría C#, perosi quieres entrar en el fabuloso mundo del desarrollo web, iría por JavaScript”.

Ricardo Galli apostaba por lenguajes simples, modernos y concurva de aprendizaje suave. Para él “los dos candidatos claros son Python y/o Go”. JJ Merelo nos daba primero una respuesta corta, “todos los lenguajes” y luego se explicaba con una respuesta más elaborada.

Programar, nos decía, “es como las matemáticas o la literatura: una forma de pensar para hacer algo”. De hecho no apuntaba a ningún lenguaje concreto, sino tratar de aprender varios para “que te olvides un poco de la sintaxis (la sintaxis no importa), aprendas a buscar la herramienta más adecuada, y seas flexible”.

Sergio Lópezapostaba por Kotlin, “un lenguaje moderno, con una sintaxis elegante, y que “crece” con el programador” que tiene la ventaja de estar muy extendido en Android.

Por su lado, Carlos Azaustre explicaba que “sinceramente creo queJavaScript es el mejor lenguaje para iniciarse. Solo necesitas el navegador y la consola para empezar”. Fernando Cejas también apostaba por Kotlin, pero él sobre todo “iría por Python ya que hay muchísima comunidad y ejemplos de los cuales se puede aprender”.

Txema Rodríguez coincidía con Cejas y Galli: “aprovecharía para aprender uno de los lenguajes más versátiles actuales,Python. Es un fenomenal primer lenguaje y también un fenomenal enésimo lenguaje”, apuntaba. También Brais Moure elegiría Python por “su simplicidad de aprendizaje y la gran cantidad de ofertas de empleo que existen”, aunque avisa de que no está orientado a aplicaciones móviles. También Paola García recomendaba este lenguaje “por su aplicación en inteligencia artificial”.

Juan Gómez no recomendaba aprender uno, sino al menos dos lenguajes de programación: “uno con el que sea muy productivo y pueda prototipar rápidamente y otro con el que pueda sacar el máximo rendimiento posible”. Para el primero apuntaba también a Python, pero era el segundo el que tenía “clarísimo”:Rust, que como nos recuerda es el más amado entre los programadoressegún StackOverflow.

Kiko apostaba por Javascript, “el lenguaje de la web”, mientras que para él otra opción clara era Python, “el lenguaje de los datos”. Ambos, explicaba, “son livianos, no necesitan muchos recursos y se pueden escribir desde cualquier editor de texto”, algo quefacilita que “enseguida puedas ver resultados de lo que hace tu código”. También Paqui Calabria apostaba por JavaScript, que es “muy polifacético” y “permite hacer cosas usables desde el principio”.

Jorge del Casar coincide:JavaScript, nos dice, es “un lenguaje sencillo con muchas oportunidades, mucha documentación y que permite obtener resultados rápidamente, algo que motiva mucho cuando estás empezando”. También Diana Aceves se mostraba a favor del lenguaje JavaScript para empezar: “su curva de aprendizaje no es demasiado elevada para empezar yestá entre los lenguajes más demandados en el sector.”

Para meri (con m minúscula, insiste, por favor), en su caso “unamezcla de HML, JavaScript y CSS(sí, CSS es un lenguaje de programación)”, sería una buena forma de empezar porque con esa opción es posible desarrollar “cualquier cosa”.

La apuesta de Quique Fdez. Guerra es distinta y singular: él apuesta porBlockly, usado en ‘The Hour of Code’, que permite “abstrarse de los lenguajes tradicionales para centrarte en la algoritmia”. También original era la propuesta de Jorge Ferreiro, que explicaba que él “utilizaríaScratchcomo primer lenguaje de programación porque permite acceder a un entorno de programación didáctico, divertido y, sobre todo, muy visual”

¿Y si el objetivo es encontrar empleo?

Puede que la motivación de aprender a programarno esté basada (solo) en que quizás los interesados dispongan de más tiempoen este confinamiento por las razones que sea.

Puede que lo que ocurra es que quierenplantearse dar un giro a su carrera profesionaly aprovechar la fuerte demanda que existe en el ámbito del desarrollo software. ¿Cambiaría entonces la preferencia del lenguaje de programación a aprender? Eso es justo lo que les preguntábamos a nuestros protagonistas.

Ricardo Galli explicaba queaprendería Swift si el objetivo fuera desarrollo para móviles. Sin embargo explicaba que “los dos lenguajes que más me atraen y que creo tendrán una demanda creciente son Go y Rust”, aunque este último “puede ser frustrante para un novato”.

JJ Merelo no se desviaba de su discurso en cuanto a la flexibilidad y cualquier propuesta era válida “incluyendo lenguajes como COBOL, que todavía siguen dando mucho dinero aunque sean del pasado”. Paola García “aprendería C como base para otros lenguajes y JavaScript si quisiera uno para encontrar trabajo en el futuro”.

Sergio López seguía apostando por Kotlin, muy válido para especializarse en desarrollos Android, aunque explicaba que es interesante “salir frecuentemente de tu zona de confort” y aprender “un lenguaje funcional moderno” como Elixir, o alternativas como Rust, “sobre todo si tienes una base de C y/o C++”, porque “su uso se está extendiendo rápidamente entre las grandes empresas del sector”.

Para Carlos Azaustre la apuesta seguía siendo clara por JavaScript: “puede no ser el mejor lenguaje del mundo pero si uno de los más versátiles y usados.Los perfiles de Frontend y FullStack son los más demandados y JavaScript es clave en ellos”, destacaba.

Coincidía Diana Aceves, que comentaba cómo además de ser relativamente sencillo,es el lenguaje con más aplicaciones en la actualidad, “bien como JavaScript puro (aka Vanilla JavaScript) o a través de todos los frameworks y librerías basados en él: React, Vue, Angular, Ionic… La demanda es altísima”.

Para Fernando Cejas no había una elección definitiva y “lo mejor seríaaprender las buenas practicas y los patrones de diseñode ingeniería de software, ya que son universales y al final se aplican a cualquier problema que tengamos que resolver”.

Nuestro compañero Txema Rodríguez mantenía su propuesta:Python es un candidato claroque “se ha hecho famoso por todo el tema de Data Science”, aunque también apuntaba a Kotlin o Swift, sobre todo “porque tienen muy buenas salidas en el sector móvil”.

En entornos laborales Brais Moure explicaba que Java “es uno de los más versátiles y con mayores oportunidades laborales” aunque ahora sea algo menos popular. En su ámbito de desarrollo móvil dejaba clara las apuestas ya citadas:Kotlin para Android y Swift para iOS son su “apuesta de futuro a corto/medio plazo”, mientras que Juan Gómez explicaba que además de Rust, algo menos popular en el ámbito profesional, “si tu objetivo es ponerte a trabar ya” él daría dos opciones, “una fácil y otra no tanto: Python y C++”.

Jorge del Casar seguía apostando porJavascriptincluso si el objetivo es la futura búsqueda de empleo: “es una navaja suizaque permite hacer tanto desarrollo frontend (HTML+CSS) como backend (Node.js).

La apuesta sigue siendo de esecombo de HTML, JavaScript y CSSpara meri, que además destaca que no tienen una curva de aprendizaje elevada y que en el ámbito laboral permite acceder a montones de ofertas como “UX Engineers, Frontend-dev o maquetación”.

Precisamente esa misma recomendación era compartida por Quique Fernández “si quieres enfocarte en encontraralgo que puedas usar rápido, porque es aplicable a muchos ámbitos”. Eso sí, para él esto era “una carrera de fondo” y convendría empezar por C —que para él da una buena base— para luego pasar a C#/Java, luego a Python/JavaScript y por último ir a Scala, R o incluso F#.

Jorge Ferreiro planteaba dos opciones distintas de cara a desarrollar una carrera profesional:apostaba por Python “por su uso en temas de Data Science y Machine Learning”, pero también ofrecía como alternativa “JavaScript si vas a hacer más desarrollo web”.

Como el resto de sus colegas, recalcaba que este último le gustaba “porque tiene una barrera de entrada muy baja y ofrece posibilidades tanto para el frontend como para el backend con solo dominar un único lenguaje de programación”. Aún así, destacaba que"es importante a entender los fundamentos de esos lenguajes, pros y contras”.

Esto es lo que los expertos querrían haber sabido al empezar

La última de nuestras preguntas era aún más personal: se trataba de explicar a toro pasado qué echaron ellos en falta cuando empezaron a preguntar. ¿Qué les hubiera gustado saber, y, por tanto,qué consejo les gustaría que les hubieran dado a ellos cuando empezaban?

Para Pedro Gómez lo más importante es “que tengan paciencia y busquen una persona que los guíe por el camino”. Ricardo Galli apuntaba que “programar no es complicado, pero hacerlo bien sí que lo es: eso llega con esfuerzo, práctica y sobre todo leyendo mucho código de terceros”.

De hecho iba a las bases y recordaba que “un buen programador debería ser capaz deimplementar algunos algoritmos fundamentales(Quick Sort, búsquedas del camino corto en un grafo) sin recurrir a Google o StackOverflow”, porque entre otras cosas eso “te enseña la ‘belleza oculta’ en algoritmos relativamente breves”.

Justo en esa dirección iba la recomendación de Quique Fernández Guerra, que explicaba que era mejorno intentar “aprenderlo todo de golpe"y recomendaba “centrarse en las bases de la programación y las buenas prácticas” para poder luego reutilizar todo ello en muchos lenguajes y ámbitos.

JJ Merelo se nos pone nostálgico al hablar de que él empezó en los 80 con el Spectrum y le hubiera gustado que alguien le dijera “no pierdas el tiempo en el ensamblador del Z80”. Más allá de eso, explica, lo importante es que quien quiera aprender “busque un problema que le apasione y que realmente vaya a solucionarle algo”, porque eso hará el aprendizaje mucho más fácil y rápido.

Precisamente esa era la recomendación de meri, que explicaba que al ponerse “una pequeña meta de un proyecto personal"acabas haciéndolo “con más ganas, es algo tuyo”.Además recordaba otro consejo fundamental “preguntar cuando no se entiende algo”.

A Sergio López le pareció importante recordarnos a todos que la programación “requiere práctica” tanto a la hora de escribircomo “sobre todo, de leer mucho código. A veces es frustrante, pero no decaigas.Tómate un respiro, cambia de contexto, y luego vuelve. Al final siempre sale”.

Él incluso apuntaba a ayudar con algo pequeño a algún proyecto Open Source en GitHub, y advertía de un peligro y un error de principiante “que todos hemos cometido: caer en la sobreingeniería. Una buena solución tiene que ser tan sencilla como permita la complejidad del problema que resuelve.Al escribir código, la sencillez es un valor tan importante como lo son la corrección y la eficiencia”.

Carlos Azaustre destacaba lo importante que era"no agobiarse” y recomendaba mucho “leer libros técnicos, seguir a gente del sector y preguntar siempre cualquier duda”, algo desde luego importante y que ha favorecido el auge de comunidades ya de referencia comoStack Overflow, por ejemplo.

Es justo lo que apuntaba Fernando Cejas al incidir en “no frustrarse” y recordaba que para mucha gente “programar puede ser considerado un arte”. Él recomendaba además “compartir sin miedo, ya que se aprende mucho del feedback que obtenemos. Y por supuesto siempre preguntar, preguntar y preguntar”.

Paola García también hacía ese inciso: “no hay una única manera de programar bien.Huye de los gurús que te hacen sentir pequeños. Hay gente buena ahí fuera que comparte lo que sabe y que conoce que empezar es difícil porque tambien ellos lo pasaron en su día. Preguntales, preguntales sin miedo”.

Txema Rodríguez recomendaba conocer “lospatrones de diseñoque se aplican a casi todos los lenguajes” y reforzar por tanto ese apartado base de los fundamentos de la programación. Eso es justo lo que también nos decía Jorge del Casar: “el consejo que daría a alguien que empieza sería que asiente las bases yno quiera correr mucho usando frameworks y cosas mágicas”.

Brais Moure advertía como otros de sus colegas que para esto “se necesita dedicación y paciencia” y recordaba que él sigue aprendiendo todos los días y llevaba 15 años programando. Para él era también importante no frustrarse y solo es necesaria “la constancia suficiente para que la frustración se acabe transformando en diversión para dejar un mensaje final optimista: “te lo prometo, programar es fantástico”.

Juan Gómez iba también en esa línea: “Lo primero, ¡bienvenido! Necesitamos a más gente valiente como tú”, para luego destacar lo importante de es importante que programar te guste porque cuesta esfuerzo y hay que tener paciencia, pero el premio para él es evidente: “es una profesión maravillosa llenísima de satisfacción personal y logros”.

También Jorge Ferreiro lo comentaba: “cuanto más programas, más te gusta, así que perseveray acepta que tendrás bloqueos y frustraciones. Eso forma parte del aprendizaje”. Otra idea fundamental, añadía, “es que no tengas miedo a compartir tu código. Todos hemos escrito código patata en algún momento de nuestra vida, cuanto más enseñes y compartas más aprenderás”.

Kikobeats coincidía con él y explicaba que “Al principio todo es muy nuevo y no entiendes nada, pero poco a poco te vas a hacer con ello”. Él era el que nos recordaba que programar no tiene necesariamente que ver con las matemáticas ni con la física:No tienes que ser un cerebrito/a para poder programar”, sobre todo, recordaba, con la cantidad de recursos online y gratis que existen.

Precisamenteno rendirse y perseverar era otro de los consejos comunesentre nuestros protagonistas, y Paqui Calabria dejaba claro que con el aprendizaje siempre habrá retos que superar: " no eres idiota por haber estado media hora intentando encontrar ese fallo que ha resultado ser una letra mal puesta: nos pasa a todos, todo el rato”.

Diana Aceves también incidía en esa importante reflexión. “No hay que abordarlo con miedo:mucha gente piensa que para programar hay que ser un genio y no es así. Hay que ser paciente, curioso y formarse. No son necesarias ni aptitudes especiales, ni una edad determinada, ni siquiera experiencia previa en tecnología. Hay muchísimas personas que se han “reciclado” y vienen de sectores que nada tienen que ver con programación. Yo fui una de ellas”.

Imagen |Unsplash