Los secretos del programador pragmático

1.- Don´t live with broken windows.
(No vive con ventanas rotas)
2.- Iterate the schedule with the code.
(Itera la planificación con el código)
3.- Some things are better done than designed.
(Algunas cosas estan mejor hechas que diseñadas)
4.- Test early. Test automatically. Test often.
(Realiza test)
5.- Finds bug once.
(Encuentra los errores una vez)
6.- Prototype to learn.
(Prototipos para aprender)
7.- Fix the problem, not the blame.
(Solucionar el problema, no la culpa)
8.- Make a quality requirement.
(Hacer requerimientos de calidad)
9.- Eliminate effects between unrelated things
(Elimina los efectos entre cosas sin relación)
10.- Don´t repeat yourself (DRY).
(No te repitas)
11.- Refartor early, refactor often.
(Refactoriza)
12.- There are not final decisions.
(No hay una única decisión).
13.- Remember the big pictures.
(Recuerda los grandes dibujos. En referencia al boceto inicial)
14.- Abstractions live longer than details.
(Las abstracciones viven más que los detalles)
15.- Be a catalyst for change.
(Se un catalizador [agente acelerador de una reacción] para el cambio)
16.- Don´t be a slave to formal methods.
(No seas un esclavo de los metodos formales)

Los secretos del programador pragmático

«How to be a good programmer» Cómo ser un buen programador

Hay muchas distinciones dentro del mundo de la informática. Yo soy ingeniero técnico de gestión, debería estar preparado para abarcar muchos ámbitos y por tanto muchos trabajos. Pero, no se programar. (Despectivamente) «Eso es de programadores», vale, yo quiero ser uno de ellos. Pero que difícil que es. Necesito muchas más formación para este puesto. ¿Cómo la consigo? Do it yourself (Hazlo tu mismo) o ten pasta y vete a cursos y practica como un loco.

Timeline
– Lo primero que me di cuenta, es que hay mucha gente como yo. «Mal de muchos, consuelo de tontos». Alivia y consuela, pero quiero ser un programador. No es la solución.
– Hasta que fui al ‘Agile Open Spain 2009‘. Los que fuimos y coincidimos casi en todas las sesiones referentes a programación, teníamos el mismo anhelo: aprender. Hablamos de excelencia, de como llegar a ella. Ibamos desde programadores elementales, jefes de proyecto, arquitectos, y empresarios. A pesar de que había más charlas sobre metodologias ágiles, yo fui donde creía que iba a aprender algo de programación. A partir de aquí, he visto la luz.
Aprende a programar en 10 años. , ¡joer!, ¿no era en 21 días?. Pues eso, haz un plan a largo plazo. En 21 días puedes aprender algo, pero no serás un programador excelente.
The Pragmatic Programmer.  No me lo he leido aún, pero proponen el Coding Dojo. Esto es, un gimnasio para aprender a programar. Hacer todos los días unos ejercicios y perfeccionarlos. Dos maneras: Randori (por turnos, uno hace un test y el otro pasa el test) y prepared (Code Kata: en un pomodoro hacer un ejercicio de programación y llevarlo a la excelencia.). Por tanto hay que hacer gimnasia de programación. Yo eligo las dos maneras.
_Code Kata Randori: he de quedar con alguien por internet para pasarle un test, él me devuelve el test pasado y otro test. Habrá que evaluar pero creo que 3 test por semana, no están mal.
_Code Kata Prepared: voy a prepararme una kata. Aún no la he elegido, estoy buscando y he encontrado algunos sitios con ejercicios.
[Pido perdón porque los enlaces no corresponden con la palabra elegida, pero van sobre el tema del que he escrito en este apartado].
Leer libros de gente excelenteClean Code, Refactoring, Design PatternsCode Complete 2.
– Ir a por un certificado java. Aunque ahora con Oracle, no se sabe como quedará la cosa, por aprender que no sea.

¿Cómo englobo yo esto dentro del agilismo? Pues muy fácil, atendiendo a los principios agiles, hay uno que dice: «Continuous attention to technical excellence and good design enhances agility» así que de momento tengo para rato, 10 años, bueno 9.

«How to be a good programmer» Cómo ser un buen programador