¿Necesitamos aprender a programar?

Desde hace un tiempo, existe un movimiento que tiene objetivo que todo el mundo aprenda a programar un poco, un poquito, pero que todo el mundo aprenda. Este movimiento tiene dos objetivos claros.

Por un lado, como estamos rodeados de dispositivos electrónicos programados por todos lados, todo el mundo debería entender un poco cómo funcionan.

Por otro lado, si todo el mundo aprende a programar, es muy probable que eso fomente que más gente se interese por la programación, es muy probable que se produzca un incremento en el número de programadores y es muy probable que la informática avance mucho más rápido.

También existe gente que piensa lo contrario, que no es necesario que todo el mundo aprenda a programar por una razón sencilla, porque dentro de poco los ordenadores serán inteligentes y serán capaces de programarse solos. Si fuera verdad, sólo les tendríamos que pedir lo que queremos que hagan y ellos sabrán cómo hacerlo. ¿Lo veremos algún día? Puede ser, puede ser.

En el artículo Do we really need to learn to code? se discute todo esto.

Todo el mundo debería aprender a programar

Lo dijo Steve Jobs:

Everybody in this country should learn how to program a computer… because it teaches you how to think.

Traducido:

Todo el mundo en este país debería aprender a programar un ordenador… porque te enseña a pensar.

Un vídeo sobre ello de code.org, What Most Schools Don’t teach:

[kml_flashembed movie=”http://www.youtube.com/v/nKIu9yen5nc” width=”560″ height=”315″ wmode=”transparent” /]

Y otro más, “Code Stars” – Short Film:

[kml_flashembed movie=”http://www.youtube.com/v/dU1xS07N-FA” width=”560″ height=”315″ wmode=”transparent” /]

El desarrollo web y cocinar

Hace unos días recibí la siguiente consulta:

Tengo una duda que agradecería me contestaras. Para hacer páginas web utilizo Dreamweaver CS6. Y también para hacer banners y mucho más utilizo Photoshop. Tengo bastante destreza en ambos programas. No he tenido necesidad de aprender ni Html5 ni CSS3 ni Javascript.

Con Dreamweaver hago menús desplegables, menús con efecto acordeón, etc. Para hacer un slider utilizo WowSlider, Y así con casi todo. Puedo llegar a hacer páginas muy profesionales. No tengo ni idea de código.

Lo que sí que tengo claro es la necesidad de aprender al menos un lenguaje de lado de servidor como PHP y saber utilizar MySQL.
Ahora viene mi cuestión.

¿Es necesario o me aconsejas aprender Html5, CSS3 y Javascript con JQuery a pesar de ello? Aparte ¿Sería interesante aprender también PHP, MySQL, Ajax, etc.?

En definitiva, Para llegar a ser un buen profesional, aun sabiendo manejar muy bien Dreamweaver CS6 ¿cuáles son los pasos y todo lo que debería estudiar por orden de aprendizaje para llegar a desarrollar aplicaciones o páginas web dinámicas? Por desgracia estoy en paro y tengo mucho tiempo por delante. Y la verdad es que me apetece aprovecharlo de esta forma. Muchísimas gracias por la atención. Saludos

Y mi respuesta:

Hola.

Pues depende. Por ejemplo…

Para alimentarse y sobrevivir, ¿es necesario saber cocinar? No, a base de latas y congelados y con un microondas, que no hace falta que sea muy bueno, se puede vivir, te lo aseguro porque yo lo hago. Eso sí, mi paladar se ha acostumbrado a que toda la comida tenga el mismo sabor y, seguramente, la alimentación que llevo no es muy sana, mi colesterol debe estar por las nubes.

Lo que tú haces es exactamente lo mismo, pero con las páginas web. Saca tú las conclusiones de lo que te quiero decir, pero aquí tienes una.

Tiene que existir de todo, no es lo mismo una hamburguesa del McDonald’s que una hamburguesa de un restaurante de cinco tenedores. Cada una tiene su precio y su público objetivo. Pero no digas que haces páginas muy profesionales si no tienes ni idea de código.

¿Qué conclusiones has sacado? Mándame otro correo y me las cuentas.

Por supuesto que hay que saber HTML5, CSS3, JS y muchas más cosas si quieres ser un buen profesional. Como tienes tiempo por delante, aprovecha y aprende, tienes mucho que aprender. Puedes realizar mi curso sobre desarrollo web (http://idesweb.es/). Ahí tienes marcado un orden de aprendizaje. Apúntate y te avisaremos de la próxima edición:

http://idesweb.es/apuntate

Un saludo y suerte.

Lo que un programador debe aprender para ser un buen programador

Hace unos días, alguien hizo en Quora la siguiente pregunta:

What are the essential topics a programmer should become well educated in?

Y otro alguien contestó:

Regardless of languages, a programmer should get a good understanding of:

  • How to eat healthily.
  • How to maintain a sleep schedule.
  • How to exercise properly.
  • How to to sit at the computer in an ergonomic fashion.
  • How to find good books to read and good movies to watch.
  • How to ensure people don’t approach you asking to fix their computer or build them a website.
  • How to deal with the opposite sex and not feel awkward.

Lo mejor y sin duda alguna, lo primero que hay que aprender, es la última respuesta: Cómo lidiar con el sexo opuesto y no sentirse incómodo.

 

Cómo llegar a ser un especialista…

…en cualquier cosa.

Llegar a ser un especialista (o experto) requiere un esfuerzo, un gran esfuerzo. Para ti, para mí y para el 99,99999999% de la población, ser un especialista en algo requiere un gran esfuerzo: tiempo y dedicación. Detrás de los éxitos de Rafa Nadal, Leo Messi o Javier Bardem, hay miles de horas de trabajo que no se ven. Sólo pensamos en el éxito, pero no solemos ver el trabajo que ha requerido ese éxito. Si uno quiere alcanzar el éxito, tiene que estar dispuesto a pagar su precio.

Es algo que siempre he pensado y defendido. Pero como yo no soy “nadie”, no lo voy contando por ahí. Pero hay dos personas que saben más que yo y dicen lo mismo:

  • Después de estudiar la vida de varios “expertos” o “triunfadores”, Malcolm Gladwell en su libro Outliers: The Story of Success establece que son necesarias 10.000 horas de práctica para llegar a ser experto en algo. Si suponemos que un año tiene 46 semanas de trabajo, y cada semana son 40 horas de trabajo (1.840 horas al año), serían necesarios cinco años y medio de trabajo continuado a ese ritmo de esfuerzo para llegar a ser un experto en algo.
  • Peter Norvig, director de investigación en Google, en su artículo Teach Yourself Programming in Ten Years (traducido al castellano, Aprende a programar en diez años) critica los libros que te prometen “aprende algo (lo que sea, programar, cocinar, un idioma, etc.) en 3 días, en 2 semanas o en 21 días”. Imposible, si entendemos por aprender el conocer algo en toda su profundidad y amplitud, no quedarnos únicamente en lo superficial.

Desgraciadamente, el aprendizaje que impera en la actualidad es el superficial. Pero no sólo afecta al aprendizaje, sino a casi todo lo que hacemos en la vida. Y otra vez, no lo digo yo, sino que lo dice Nicholas Carr en su libro Superficiales: ¿Qué está haciendo Internet con nuestras mentes? Si no quieres leer el libro porque eres “superficial”, puedes leer el artículo Un mundo distraído.

Y para terminar, otra lectura más sobre cómo llegar a ser un profesional en algo: Lo que nos separa son solo miles de horas…