Quiero aprender a programar y/o diseñar. ¿Por dónde empiezo?

Con bastante frecuencia muchas personas me preguntan cuál es el mejor lenguaje para programar o, en otros casos, qué aplicaciones deben manejar para ser buenos diseñadores. En ambos casos mi respuesta es siempre la misma: “Para empezar, ninguno”.

Yo no soy ingeniero informático (soy licenciado en Periodismo). Así que os contaré el camino que yo he seguido y que, a buen seguro, es mejorable. Programo desde los 6 años y diseño desde los 14. Formación absolutamente autodidacta y por amor a la informática y el arte. Observación, ganas de aprender y muchas (¡¡¡muchas!!!) horas delante de un teclado.

El primer error antes de empezar a programar es elegir un lenguaje de antemano. Antes que nada hay que saber estructurar código de forma general. Es lo que se llama “pseudocódigo”. Más allá, es conveniente saber qué es una variable, por qué se almacena en memoria, qué es la memoria, etcétera.

Grosso modo, el pseudocódigo es un lenguaje a caballo entre lo humano y lo matemático donde se intenta resolver un problema.

Imaginemos que queremos imprimir en un dispositivo (el que sea), diez veces la frase “Quiero aprender a programar”. Al margen de las sintaxis específicas de cada lenguaje, se puede decir que queremos hacer algo así:

-Iniciar programa
-Iniciar variable “Frase”
-Meter en la variable “Frase” el contenido “Quiero aprender a programar”
-Crear un bucle que imprima 10 veces el contenido de la variable “Frase”
-Salir del programa

Si lo hiciéramos en PHP (un lenguaje asequible cuya sintaxis bebe, en cierto modo, del C), quedaría así:

<?php

$frase=”Quiero aprender a programar”;

for($i=0;$i<10;$i++) {
       echo $frase.”<br />”;

?>

Lo segundo, el bloque de código, es algo relativamente fácil de elaborar cuando se tiene claro lo primero. Hay que saber lo que es un bucle, un array, un condicional, etcétera. Con estos conceptos y un cerebro “programático” se construyen aplicaciones cada vez mayores.

¿Hay que saber matemáticas? Sí. Pero no a un nivel muy alto mientras no desees entrar en el mundo de los algoritmos más complejos o, por ejemplo, los lenguajes gráficos que utilizan álgebra de forma intensiva. 

Lo bueno de orientar tu cerebro hacia la programación es que las mentes programáticas tienen, de forma demostrada, mayor capacidad a la hora de descomponer problemas grandes en subproblemas de menor entidad. Eso les convierte en personas más resolutivas. ¡En eso se basa frecuentemente la programación! Ya sea mediante la filosofía “procedural” o utilizando la “orientación a objetos”, al final casi todo se reduce en modular los problemas para hacer pequeños bloques de código que cumplen funciones cuando reciben mensajes. 

De hecho, los buenos programadores (como es el caso de mi amigo y socio @xelagc) despedazan las grandes aplicaciones -como es el caso de Moodyo– en cientos de pequeños bloques que, de una forma que podríamos definir como “temática”, incluyen métodos para realizar acciones relacionadas. Esos pequeños bloques se suelen denominar “clases” (moldes que explican cómo son los objetos que nacen de ellas) y las acciones que se incluyen en ellos son “métodos”. Puede haber una clase orientada a realizar las operaciones de gestión de usuarios en una red social: alta de usuario, baja de usuario, modificación de usuario…

Por lo tanto, al igual que ocurre en otras disciplinas informáticas -o muy vinculadas a ella- como la animación 3D, es muy importante saber descomponer la realidad en figuras “primitivas”. Esas figuras son bloques de código. Y, a menudo, estos son reutilizables con ciertas modificaciones.

¿Un punto de inicio? Por ejemplo, éste http://www.freewebs.com/jojaqui/tads.pdf

Pero hay mil en Internet. Por suerte, hoy en día los recursos para programar son casi infinitos. No nos engañemos, hay que dedicar muchas horas, aprender la terminología, qué es una CPU, la RAM, los hilos de proceso…y, ¿por qué no? Estudiar un poco de historia que es bastante bonita.

Una vez que entendemos lo básico, debemos elegir un lenguaje con el que hacer prácticas olvidándonos de las interfaces gráficas. No queremos pintar nada bonito, solo comprobar que sabemos manejar variables y funciones con soltura. Mi elección personal es el lenguaje C porque considero que, una vez se entiende éste, es fácil portar los conocimientos a otros. 

Sin profundizar demasiado en él, aunque controlándolo lo suficiente, puede ser adecuado elegir un lenguaje como PHP, Java o Python. Huid de las batallas sobre cuál es mejor. Cada uno tiene sus virtudes, sus pros y sus contras. No hay un lenguaje perfecto. Todos son mejorables y para ello trabaja la comunidad que suele estar detrás de ellos.

Facebook está construido en PHP; eBay en Java y Google suele trabajar en Python. Las tres compañías son fuertes así que, con cabeza, con ellos se puede hacer de todo. 

Después tendréis que elegir un sistema de bases de datos (donde se guardan las “cosas” que genera vuestra aplicación y que tienen que ser recuperadas más adelante). Lo mejor es comenzar con MySQL. Y en el caso de los sistemas operativos, Ubuntu es un buen inicio para adentrarse en los sistemas Linux antes de saltar a otros más orientados a entornos de servidor como puede ser CentOS (la versión “gratis” de Red Hat).

Este procedimiento sirve para todo. Ocurre igual con el diseño gráfico. Nadie es diseñador por manejar Photoshop o Illustrator. Ese es un grandísimo error. Antes hay que estudiar proporciones, colores, historia, dibujar MUCHO a mano y observar las 24 horas.

Desde mi punto de vista, y por mi experiencia en el mundo de la empresa, existen programadores y diseñadores que no son ni ingenieros ni licenciados en Bellas Artes. De la misma forma que existen grandísimos periodistas que no se licenciaron en su momento. En Silicon Valley están comenzando a buscar a mentes brillantes. Cerebros con capacidad para ser formados y que ni han pasado ni, probablemente, pasarán por las aulas de Stanford o Harvard. 

Con una actitud de aprendizaje, superación y esfuerzo continuo construyeron sus empresas Steve Jobs, Bill Gates, Mark Zuckerberg y otros tantos. Ninguno finalizó carrera alguna. ¡Y los dos primeros ni siquiera tenían Internet para aprender a cualquier hora de forma gratuita!

Finalmente, para los puristas: que nadie interprete que yo animo a nadie a dejar la universidad. Ser ingeniero es algo maravilloso y te da una capacidad increíble. Lo que yo quiero decir es que esa capacidad, sin “contenido” y actitud, no sirve de nada.

Lo que nunca sale en los planes de negocios

No me gustan los planes de negocio. Es mejor dejarlo claro al principio para que nadie se lleve a engaño, y así puedan dejar de leer aquellos que piensen que una empresa no puede salir adelante sin 60 folios llenos de argumentos e hipótesis económicas.

No me gustan los planes de negocio porque me gusta más ver a las personas que hay detrás de ellos. Valores como la ilusión, la implicación, el brillo de los ojos al hablar de tu idea, las horas que dedicas a hacer deporte o cómo influye en ti que las acciones de Facebook se desplomen, nunca aparecerán en este tipo de documentos.

Pero no nos engañemos. Son necesarios. Sobre todo al principio. Sirven para analizar el mercado e intentar trazar una ruta que debe parecerse al camino que piensas iniciar. 

El plan de negocio de El Desmarque (www.eldesmarque.es) se hizo en una servilleta y se selló con 49 euros (lo que costaba pagar el primer mes de servidor). Hasta que no llevábamos 3 años no hubo ningún tipo de documento que indicara hacia dónde iba la empresa. Hoy tiene 43 redactores y sedes en Sevilla, Bilbao, Málaga, Huelva y Cádiz y sigue en expansión. Nunca vi una tabla de Excel cuando solicité a su equipo entrar en el accionariado. Ni me interesaba. Ni la tenían. Ni hacía falta. Vi a un equipo ilusionado, con gente joven y que se divertía haciendo un trabajo que, a veces, puede ser muy ingrato.

Sin darnos cuenta estábamos llevando a cabo eso que se llama el “Producto Mínimo Viable”: 6 amigos periodistas, uno de ellos con conocimientos de Internet, que instalan un gestor de contenido de código abierto y se lanzan con una página muy sencilla que informa de Betis, Sevilla y Cajasol. Como “extra”, una sección para lectores. Coste total para iniciar el experimento: 49 euros. Agosto de 2006. Y funcionó. A la semana cambiamos de servidor. A las 3 semanas hubo que migrar a un servidor dedicado. Desde entonces, no ha parado de crecer. Hoy tiene más de 80.000 lectores diarios.

Ni una sola empresa habría dado un préstamo o una inversión para aquel proyecto que, desde el año 1, comenzó a arrojar cierta rentabilidad. Dinero que se reinvirtió, y así continuamos, en eso que los profesionales llamarían “expansión”, “I+D+i”…y otros palabros que se pueden englobar dentro de “Avanzar”.

No había plan de negocio, los integrantes -con la excepción de quien suscribe, y que aún tenía, y tiene, un mundo por aprender…- no conocían mucho el sector online y todo era una aventura por descubrir. Pero, ¿cuál era el punto fuerte? Las ganas. Un intangible que vale oro.

Muchos de los grandes negocios que conozco han nacido y crecido así: una idea, un buen equipo, ilusión y una inversión mínima. Al contrario no funciona. Si tienes dinero y tienes que ponerte a hacer un equipo y buscar algo que funcione no lo tendrás fácil. ¿Twitter? Sí, es la excepción que confirma la regla. Evan Williams, Jack Dorsey y compañía tenían 5 millones de dólares, no sabían qué hacer con ese dinero en Odeo y se les acababa el tiempo. Pero ya venían de vender una plataforma de blogs a Google así que no eran, precisamente, novatos.

Los planes de negocios en Internet tienen como principal hándicap el factor “tiempo”. No han terminado de redactarse cuando ya son obsoletos. Twitter tiene 400 millones de usuarios…no, 500…no, 600… Y Facebook tiene 900 millones…no, 1.000 y vale en bolsa menos de la mitad de lo que valía cuando comenzó su IPO. Las cifras sobre previsiones de eCommerce a nivel global varían cada año. España estaba muy atrás en comercio online en Europa y ahora es el tercer país, a pesar (o gracias a) la crisis. Google saca Google+ sin avisar y siempre estará ahí para intentar hacer lo que tú haces mejor que tú, más rápido y gratis. ¿Alguno os atrevéis a decir si Facebook seguirá siendo la red social líder dentro de 2 años? Imaginad hacer un plan de negocios a 5 años contemplando a la red social de Zuckerberg como competidor o partner. ¿Y si Amazon es, en 5 años, competencia directa de Mercadona? Probablemente sea así.

“Ok, pero ¿habrá algo a lo que agarrarse?”, es una pregunta clásica entre analistas económicos cuando se enfrentan a un plan de negocios para un proyecto online. Sí, el equipo, sus ganas y su capacidad para girar el timón a tiempo si hace falta. Lo demás es pura ciencia-ficción.

Evidentemente, hay planes de negocios que llegan a ser consistentes a base de dar mucho la lata, recortar, ampliar y conseguir situar tus objetivos en un camino relativamente “estable”.

En nuestro caso, redactar el plan de negocio de Moodyo Enterprises nos llevó 12 meses. Se hicieron varios borradores, 3 versiones “definitivas” y una última, estable, que sigue vigente tras varios meses. Pero costó, ¿eh? Cuando dos analistas que llevan muuuuuchos años haciendo este tipo de documentos (con bastante éxito, por cierto) se pusieron a ver las magnitudes se quedaron un poco “a cuadros”. Todo en Internet es desproporcionado cuando funciona bien. Intenta explicar que pasas de, por ejemplo, 30.000 a 11.000.000 de usuarios en menos de 2 años y que tus beneficios pueden superar los 50 millones de euros sin que todo el mundo te mire y te diga: “Vale, y ahora dejémonos de bromas” (No son los números de Moodyo, tranquilos…).

Así que tu primera tarea, si quieres convencer aunque sea a tu economista, es cargarte de argumentos (la historia de Facebook, Foursquare, Twitter y, por supuesto, otros más pequeños pero igualmente válidos como Tuenti o BuyVIP son un buen punto de partida) para poder sustentar tus hipótesis de crecimiento.

Y, ¿qué es lo que nunca saldrá en un plan de negocio? Muchas cosas. Casi todas relacionadas precisamente con la “gasolina” que hace triunfar las ideas. Tu capacidad para hacer frente a un contratiempo importante, tu voluntad y capacidad para seguir adelante -o, llegado el caso, abandonar a tiempo-, lo bueno o malo que eres para dirigir a un equipo de personas y motivarlos, el nivel de curiosidad que te lleva a ir por delante de los demás conociendo a esa pequeña startup rusa a la que, llegado el caso, podéis utilizar como partner, los “ases” en la manga (fundamental) que iluminan la cara de tus compañeros cuando todo parece torcerse… Podría seguir, pero creo que todos nos hacemos una idea.

Por eso no me gustan los planes de negocio. Los creo necesarios y sirven para aprender terminología y pautas que habrás de utilizar posteriormente en muchas ocasiones. Hay que saber hacer un balance o, al menos, interpretarlo correctamente. Es necesario conocer los costes salariales completos, la media salarial para cada categoría profesional, etcétera. Elaborar el DAFO (probablemente lo más interesante y donde más tiempo debes gastar…) es algo que te bajará al suelo en muchos casos, pero si no lo haces bien y dedicándole las horas necesarias, te encontrarás con que había varias “debilidades” y “amenazas” que no contemplaste.

Si algunos tenéis dudas al respecto de alguna idea o, en general, sobre cualquier aspecto relacionado con vuestra startup, podéis contactar conmigo en jpadilla@moodyo.com o, en Twitter, @elpady.