Category — TecnologÃa
14 cosas que se pueden aprender de un buen programador
El contenido de este post es una traducción libre que he hecho de éste otro.
La imagen tÃpica que se tiene de un programador es la de un nerd inadaptado y aburrido, muy aburrido. Uno normalmente no asocia la palabra programador a un tipo creativo. Nada más lejos de la realidad. Tirar lÃneas de código es uno de los trabajos más creativos que se pueden tener. Hay que navegar por dos mundos: el estructurado de los lenguajes de programación y el imaginativo de las abstracciones que se han de efectuar para modelar la realidad en un programa informático. Y esto no es trivial.
A continuación enumeramos una lista de caracterÃsticas por medio de las que un buen programador puede aumentar su creatividad:
1.- Aprender un nuevo lenguaje de programación: por placer o trabajo, no te limites a manejar los lenguajes con los que te sientas cómodo. Incorpora nuevas habilidades.
2.- Empieza por el principio: cuando te atasques, a veces la mejor forma de encontrar una solución creativa es volver al principio y comenzar de nuevo.
3.- Cuestiónate continuamente todo: has de tener en cuenta todas las suposiciones que estés haciendo, asegurándote de que son correctas y de que estás contemplando cada posible caso. Las suposiciones pueden limitar la creatividad. A veces eliminar alguna suposición puede abrir nuevas vÃas.
4.- Diviértete: entusiásmate con lo que haces, disfrútalo, plantéatelo como un juego, un reto, un desafÃo. Engáñate a ti mismo si es un puro infumable. Disfrázalo con nuevas ideas o diseños marca de la casa. Hazlo realmente atractivo.
5.- No te canses de probar posibles mejoras: incluso el más pequeño cambio puede cambiar la fisonomÃa de un programa o página web. Las pruebas han de hacerse de forma rigurosa.
6.- Apasiónate: una vez te diviertas, te costará menos trabajo irte a la cama pensando en tus programas.
7.- Domina tus herramientas: debes mejorar constantemente el uso que haces de tus herramientas de programación, cambiándolas en el caso de encontrar otras mejores. Tunéalas, aprende cómo funcionan, cómo sacarles el máximo partido.
8.- Plantéate nuevos conceptos: las personas que incubaron Skype, Google Docs o Twitter lo único que hicieron fue unir conceptos abstractos y a priori diferentes (teléfono + ordenadores; páginas web + procesadores de textos; ¿qué estará haciendo ahora la gente?). Piensa en los “¿y si…?”, y estarás en camino de hacer cosas diferentes.
9.- Estructurar como medio, no como limitación: la creatividad no es escribir todo lo que se te venga a la cabeza en un folio en blanco e imaginar un mundo sin limitaciones. Esto no es real. Estamos rodeados de limitaciones. No podemos evitarlas. Un programador ha de asumirlas como parte de las reglas del juego.
10.- No descartes nada hasta que lo intentes: sÃ, la profesora de tu guarderÃa tenÃa razón: no existen preguntas absurdas. Te sorprenderÃas si lo intentas. Pruébalo. Incluso si no funciona, algo te habrás acercado a una posible solución.
11.- Busca una solución más simple y elegante: el buen programador asume que la solución más simple es siempre la mejor. Las soluciones difÃciles nos conducen a dificultades.
12.- No temas retocar el código de otros: no reinventes la rueda, Internet está llena de buen código. Mejóralo si puedes.
13.- Colabora: cuatro ojos ven más que dos, dos mentes son más creativas que una. Siempre. Selecciona las mejores ideas, independientemente de cuál sea su procedencia. Evita las jerarquÃas, los amiguismos.
14.- Poquito a poco, crea algo hermoso: el hecho de que uses código muy básico y no necesariamente bonito no significa que no pueda conjuntarse resultando en un producto impresionante. Presta atención a los detalles, especialmente en aquellos que se reflejen en el conjunto.
August 12, 2008 6 comentarios
Learning the art of programming
“Learning the art of programming, like most other disciplines, consists of first learning the rules and then learning when to break them”.
Joshua Bloch, Effective Java
No pude evitar acordarme de una cita que leà en el blog de Alejandra, atribuida por ella a su padre:
“Las reglas están para guiar a los inteligentes y para ser seguidas a rajatabla por los ceporros”.
June 19, 2008 4 comentarios
Mi primer pedido en Amazon
Hoy me he presentado en la oficina de Correos a las 8:30, con un resguardo que habÃa recibido el dÃa anterior, en el que se me instaba a recoger un paquete proveniente de Chicago. Habida cuenta de que el pedido que habÃa hecho en Amazon tres semanas antes no se esperaba hasta el próximo 3 de julio, y que muy cerquita de Chicago hay alguien muy especial para mi, no esperaba que fueran los libros.
Pero lo eran, y aunque es otro tipo de alegrÃa, estoy muy contento de que por fin hayan llegado. Por fin tengo lectura profesional en papel. Será algo nuevo para mi, harto de tener que leer manuales, tutoriales, faq, referencias de lenguajes en una pantalla. Mi vista me lo agradecerá. Mis “tiempos muertos” también.
Los libros son:
Effective Java (2nd Edition)
CSS Mastery: Advanced Web Standards Solutions
Head First Design Patterns (Head First)
Ya os contaré qué tal conforme vaya leyéndolos. Saludetes.
June 18, 2008 6 comentarios
Sobre la I Barcelona PHP Workshop
Hace unas horas escasas que acaba de terminar la primera edición del PHP Barcelona Workshop, al que he tenido el gusto de asistir. El evento, de los primeros de este tipo que se organizan en España, habÃa acaparado muchas expectativas, agotándose las 200 acreditaciones disponibles. A continuación reflejo mis sensaciones sobre el mismo:
Era mi gran apuesta del evento, y ha sido la mayor decepción. Seguramente esta circunstancia se ha producido porque mis expectativas eran demasiado altas, no por la calidad del framework o de los ponentes. En cualquier caso, daré mi opinión al respecto: ha sobrado la media hora teórica, a pesar del esfuerzo de Aldo contra el micro, contra el idioma, contra los elementos. No es que no haya sido interesante lo que nos ha contado, pero un acercamiento teórico de media hora a Symfony sobre lo que es capaz o no de hacer no lo he terminado de encontrar apropiado en un workshop cuyo márketing habÃa radicado en torno a la eminente practicidad de los talleres.
La segunda parte, la práctica, mejoró un poco el tono aunque hubo cosas que se pudo observar que Ricard no habÃa preparado exhaustivamente. En cualquier caso me llevé una agradable sorpresa con algunas caracterÃsticas del framework que no conocÃa y que desde luego hace que me plantee sentarme un ratito a dialogar con él.
Elegà esta ponencia porque siempre me he visto atraÃdo por le enorme potencia de este “simple” editor de textos. Ya habÃa hecho mis pinitos, y más o menos era consciente de lo que se puede conseguir con él. Se hizo bien patente que los dos ponentes de esta sesión controlaban bastante sobre el tema. Faltó algo de tiempo para las prácticas, y un poco de orden. En cualquier caso, para mi ha sido lo mejor del workshop, aunque no me veo dándole utilidad a corto plazo, pues por motivos de estrés profesional no tengo pensado invertir mucho tiempo en superar la elevada curva de aprendizaje de Vim (de momento, ya digo :D).
Supongo que ha sido por un poco de todo, pero lo cierto es que esta ponencia me ha aburrido soberanamente. La hora era terrible, el sueño que tenÃa tras el magnÃfico viernes que Barcelona me regaló y el hecho de que se empezaran a hacer ejercicios usando un framework (YUI) sin explicar los rudimentos más básicos de Ajax (al menos el httpObjectRequest!!) hicieron que me fuera mentalmente del workshop. Además, una de las buenas noticias de la jornada, Carlos, un gallego que he conocido gracias al poquÃsimo networking que he hecho hoy (ayer me vacié en conversaciones bastante interesantes y me quedaba poco que ofrecer hoy), no conocÃa la versión Javascript del Chiki-Chiki, a lo cual tuve que poner remedio. Esta circunstancia terminó de sacarme al 100% del taller. Mea culpa.
Este taller también lo esperaba con mucho interés, y tampoco ha cubierto todas mis expectativas, aunque tengo que aclarar que lo he abandonado antes del final, porque los aviones no suele esperar a los rezagados, y dado que tenÃa que coger metro y cercanÃas para llegar desde el Citilab al Prat sin pagar a los grandes saqueadores e inquisidores de la carretera, decidà no jugármela y salir con suficiente antelación. Hice bien, ahora escribo esto a algunos metros de altura, a bordo de un avión de ClickAir que hace un ruido un tanto extraño. Me quedé con las ganas de ver la parte de la presentación que le correspondÃa a Oriol, la próxima vez será.
LogÃstica
Al margen de mis apreciaciones sobre los talleres, he de comentar un par de cosas positivas y otro par un poco menos sobre la organización logÃstica del evento. Primero las positivas: el Citilab me ha gustado mucho, la red ha ido bastante bien exceptuando dos momentos muy puntuales. La comida, compuesta por pequeños snacks, tortillita, empanadas, buenas croquetonas (aunque frÃas) y abundantes latas de refrescos, tampoco ha estado nada mal. Las negativas: el horario no se ha respetado, aunque por lo que parece esto es una constante en todo evento que se precie. El ponente Ricard Luquero comenzó su exposición hablando en catalán, hasta que debió ver la extrañeza reflejada en el rostro de algunos de los presentes y preguntó si esta circunstancia generaba algún problema. Seguidamente continuó en castellano. Lo cierto es que desconozco la procedencia en términos generales del personal, pero tanto Carlos (de Santiago de Compostela) como yo nos quedamos a cuadros. Ojo, no quiero polemizar con nadie respecto a esto, y no seré yo quien le diga a nadie en qué idioma ha de expresarse, pero si organizas un evento y lo publicitas a nivel nacional (Barrapunto) tienes que ser consciente de cuál es tu audiencia potencial.
Resumiendo:
El balance general que saco del evento es positivo, aunque menos de lo que esperaba. El cansancio, mi nula formación en algunos de los temas tratados (sobre todo Symfony y Ajax) y, como ya he reseñado, la falta de un último punch práctico en algunas ponencias le han restado algo de brillantez. En cualquier caso, ha quedado claro que habÃa trabajo e ilusión de fondo, y con esos ingredientes a buen seguro el año que viene corregirán los pocos errores que hayan podido tener y el PHP Barcelona Workshop madurará. Espero verlo. ¡Y hacer algo más de networking!.
June 7, 2008 6 comentarios
Reproductor de vÃdeo revolucionario
Pues sÃ, me váis a perdonar que hoy prácticamente no escriba nada. Me limitaré a colgar dos vÃdeos sobre DimP, un reproductor de vÃdeo implementado por unos pavos de la universidad de Toronto y que francamente creo que puede cambiar las cosas…
[youtube=”http://es.youtube.com/watch?v=WcIy9O344bI”]
[youtube=”http://es.youtube.com/watch?v=ib_g7F6WKAA”]
Ojo, que se puede descargar, aunque sólo para Windows de momento.
Visto en TechCrunch.
May 23, 2008 1 comentario