27.6.11

20 cosas que he aprendido sobre la web

En realidad son 20 cosas que han aprendido los de google sobre la web y que han liberado en un formato de libro HTML5 muy curioso.

http://www.20thingsilearned.com/es-ES/foreword/1

Además han liberado el código fuente del libro de forma que la gente pueda hacer otros libros parecidos. El libro no es técnicamente una maravilla pero tiene sus cosas y sobre todo las ilustraciones molan mucho :P

8.6.11

Eres un quisquilloso vs código bien escrito

for(int i = 0; i < 10; i++) {
     //do something
}



Cuando escribo código y la mayoría de las veces escribo en C/C++ uso una convención de espacios, paréntesis y llaves muy cuidadosa. Alguna vez me han llamado quisquilloso pero la mayoría de las veces dicen pijotero.

Lo importante no es los espacios ni donde están las llaves ni nada de eso, hay muchas convenciones y hay "guerras" por estas cosas cada vez que uno abre la boca, hay un montón de estilos con sus propias reglas, el que yo uso se parece bastante a BSD KNF. Para saber mas lo mejor es mirar la wiki.

Lo importante es que de un solo vistazo sabes claramente si estabas escribiendo las cosas cuidadosamente o muy de prisa. Si era muy de prisa, es también muy probable que el error esté por ahí cerca.Espero que esto os salve la mitad de horas que me ha salvado a mi por lo menos

7.6.11

La sensación del tiempo infinito

Cuando estas programando te enfrentas a un monton de problemas, la mayoría son problemas del propio código o del software que se está intentando desarrollar, esos problemas al final se solucionan. Hay otros problemas que son mucho más complicados de definir y de solucionar. Aqui es donde llega "La sensación del tiempo infinito".

Es una sensación que tiene el programador cuando no avanza, cuando cree que tiene un montón de horas por delante y avanza muy lentamente. El dia va pasando y la solucion no llega, no estas realmente atascado en el código pero no tienes un incentivo real para ir más rápido.

Es probablemente la peor sensación a la que se puede enfrentar un programador. Al menos de las peores a las que yo me he enfrentado.

¿Como se soluciona esto?

La respuesta rápida es: no lo sé. La respuesta larga es lo que peor me sienta es el código repetitivo que no es un reto sino más bien "Book keeping" como le llaman los ingleses. Asi que paso 1: evitar el código repetitivo automatizando todo lo posible

Lo siguiente que peor me sienta es tenerme que pelear con el IDE, la librería o el framework en vez de con mi problema, esto realmente es horrible y la única forma de solucionarlo que conozco es conocer tu entorno, esto cuesta mucho porque por cosas de la vida cambias de IDE, de entorno y hasta de sistema operativo.

Finalmente usar una PDA (Papel de apuntar), todas las mañanas escribo una pequeña lista de 4 o 5 cosas que tengo que hacer y al terminarlas voy tachandolas, esto da la sensación de trabajo realizado y ayuda a ver como avanza el trabajo.

No todos los problemas se solucionan con un mejor algoritmo, algunos necesitan tener en cuenta al programador pero oye cuando funciona es casi arte.