La propera avisau!


Escrit per Aaloy a 11 de March , 2012 a les 5:39 p.m.

Avui prop de les dues de la matinada segons els registres twittaires en @pacoros i en @joanballester protagonitzaren una d'aquestes discussions que tant ens agraden als informàtics, donant forma a un quasi-flame twittaire. És una llàstima que seguir una conversació sigui tan mal de fer a Twitter si no ho fas directament quan se produeix. Amb la darrera novetat de la web he pogut fer-me una idea de com va anar la cosa, però al·lots, si per mala sort atribueixo una frase a un que no toca ja m'ho direu. Com que he trobat que la conversa era prou interessant, em permeto la llibertat d'extreure'n un grapat de frases, les agrup per conceptes i miraré de fer-ne alguna aportació constructiva, o destructiva, ja veurem, després de tot és un flame, no?

Programador que controla vs programador que en sap.

@juanballester diu: @pacoros Solo diferencio "buen programador" de "programador 
 que controla bien X lenguaje", creo que hay diferencia. No sé dónde lo siento xD
@pacoros diu: @joanballester Cualquiera que conozca bien un lenguaje, con el
suficiente tiempo y ganas puede programar buen código. Repito "y ganas".

Aquí estic més d'acord amb Juan que amb Paco. Els conceptes bàsics de programació són gairebé universals i es pot ser un bon o mal programador independent del llenguatge. Conèixer un llenguatge no és garantia de programar bon codi, fins i tot per moltes ganes que un hi posi. Hi ha una qüestió estadística pel mig, que en siu que hi ha una gran diferència entre un bon programador i un programador típic, [de l'ordre d'un factor 10[(http://blogs.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx), i sovint ens podem trobar que hi ha programadors que tenen un factor de productivitat negatiu, sí heu llegit bé, són aquells que fan anar de bòlid a la resta. És a dir, a més del coneixement de les regles del llenguatge de programació triat, s'han de cercar unes certes aptituds individuals. Lo del "tiempo suficiente" no serveix, ja que un dels requisits que fan bo un programador és que sigui capaç d'entregar una feina en temps i forma.

Bon programdor segons l'entorn

@joanballester Está claro. Sólo te digo que lo de "buen programador" 
 depende de muchos factores y depende de dónde programe.
@pacoros lo siento, es que no termino de comprender qué tiene que ver 
 "dónde programe" con lo bueno que sea... o es que no te pillo :D
@joanballester Se puede valorar que sea rápido, que tena tasa de errores baja, 
 que sepa hacer algoritmos... Que sepa muchos LP sólo es un +
@joanballester Pues que el concepto "buen programador" no es universal. ¿O sí? 
 Yo te digo que depende de para quién programe o dónde lo haga
@joanballester Si en un proyecto todos trabajan igual menos uno que programa 
 "mejor" al final los demás no lo entienden y es peor

M'agrada la darrer frase de Paco perquè és totalment certa, però a la vegada paradoxal. Donat que si passa llavors estam davant d'algú que pot programar bé i no ser un bon programador. Quan un està en un equip ha d'adaptar-se a com està escrit el codi, a la manera de programar de l'equip. L'efecte que parla Paco és el de programador "prima donna", o aquell que té necessitat de mostrar que sap fer les coses de manera que ningú pot entendre. Quan parlam d'equips de feina aquests tipus de gent representen una productivitat negativa, ja que fan perdre molt de temps a la resta. Productivitat negativa per mi significa ser mal programador. Això vol dir que algú ha de programar "pitjor" per adaptar-se a l'equip? Bé, tampoc és això. S'ha d'adaptar a l'entorn o també pot mirar d'adaptar l'entorn. Vull dir, si algú programa millor o té més capacitat que la mitjana doncs té una oportunitat fantàstica de mirar d'ajudar a la resta. Un bon programador per mi també és algú que pot fer evolucionar un equip.

Com es pot veure el tema dona per molt. Potser perquè el tema del que és bo és i serà sempre una variable relativa. No hi ha absoluts. Al final programar tampoc és sols el codi, programam per les persones i no per les màquines, això ho hem de tenir clar, i quan programam ens relacionam amb l'entorn.

Supòs que per això molts consells que trobareu a l'hora de triar un bon programador es refereixen tant a la seva capacitat tècnica com amb l'encaix amb la resta de l'equip. La gent tècnica tenim tendència a tenir menys habilitats socials i a tenir un grau de frikisme major i això també s'ha de tenir en compte a l'hora de formar un equip.

Jo tenc una idea molt clara del que és per mi un bon programador, però com que està basada en factor qualitatius a més de quantitatius és força mal de fer expressar-la. Però potser si l'hagués de resumir diria que per mi és aquella persona que essent tècnicament bona li agrada formar part dels nostre grup i amb la que el grup s'hi sent bé amb ella. Quan això passa s'acaba creant un entorn òptim per al desenvolupament i com se sol dir, el tot és major que la suma de les parts.

I la propera vegada em despertau! :D


Traducciones/Translations by apertium

4 comentaris, 0 trackbacks (URL) , Tags: Informàtica

Relacionats:
   1. Se buscan buenos programadores

Comentaris

1 Comentari de Paco Ros a les 09:03 del Sunday 11 Mar de 2012

Psé, va ser una conversa interessant :-) BTW al "log" que aferres s'han traspepelat alguns @ que no són de qui diuen ser...

Tractaré d'aferrar-te la correcta (1ª part):
@joanballester
Curiosamente, un buen programador @aaloy) escribió sobre eso hace poco [CAT] ow.ly/9zZKu y estoy bastante de acuerdo con él.

@pacoros
@joanballester Cada cual tiene su opinión sobre los buenos programadores. Y dependiendo de dónde se sienten los criterios cambian.
In reply to Joan Ballester

@joanballester
@pacoros Solo diferencio "buen programador" de "programador que controla bien X lenguaje", creo que hay diferencia. No sé dónde lo siento xD
In reply to Paco Ros

@pacoros
@joanballester Está claro. Sólo te digo que lo de "buen programador" depende de muchos factores y depende de dónde programe.
In reply to Joan Ballester

@joanballester
@pacoros lo siento, es que no termino de comprender qué tiene que ver "dónde programe" con lo bueno que sea... o es que no te pillo :D
In reply to Paco Ros

@pacoros
@joanballester Pues que el concepto "buen programador" no es universal. ¿O sí? Yo te digo que depende de para quién programe o dónde lo haga
In reply to Joan Ballester

@pacoros
@joanballester Se puede valorar que sea rápido, que tena tasa de errores baja, que sepa hacer algoritmos... Que sepa muchos LP sólo es un +
In reply to Joan Ballester

@joanballester
@pacoros Hablo de una valoración media de todo eso, por supuesto ;-)
In reply to Paco Ros

@pacoros
@joanballester Exacto, pero cómo ponderas cada factor, varía en cada sitio. Por eso lo de "depende de dónde" porque en cada org. ponderan !=
In reply to Joan Ballester

@joanballester
@pacoros bueno, evidentemente hablo de mi visión del asunto, del código que leo y mi evaluación final es esa :-)
In reply to Paco Ros

@pacoros
@joanballester stupendo :-) y como valoras el código que ves? A que le das mas importancia?
In reply to Joan Ballester

@joanballester
@pacoros Lo que te decía... una media a ojímetro (el mío) :D de todo: legibilidad, simplicidad, seguridad, complicación, cantidad, etc...
In reply to Paco Ros

@joanballester
@pacoros elegancia... :D
In reply to Paco Ros

@pacoros
@joanballester y a que, casualmente, tu código la mayoría de veces te parece mejor que el de los demás?
In reply to Joan Ballester

@joanballester
@pacoros Que va, que va... yo soy un recién llegado, hay verdaderos cracks. Simplemente intento aprender de vosotros ;-)
In reply to Paco Ros

@pacoros
@joanballester Ahora te has sobrado :-D Porque de código mío no has visto ni una línea ;-) Y posiblemente de @aaloy tampoco.
In reply to Joan Ballester

@pacoros
@joanballester BTW no le dés importancia. Me parecía un debate interesante si se puede evaluar cuantitativamente la calidad del código.
In reply to Joan Ballester


2 Comentari de Paco Ros a les 09:03 del Sunday 11 Mar de 2012

2ª part:

@joanballester
@pacoros tuyo nop, aún... pero queda constancia ;-)
In reply to Paco Ros

@joanballester
@pacoros sí se podría evaluar, siempre que tuvieras suficiente código en diferentes circunstancias... hay veces que hay más tiempo, menos...
In reply to Paco Ros

@joanballester
@pacoros pero yo creo que sí, teniendo diferentes registros puedes darte cuenta de si es bueno, a veces incluso con muy poquito :-)
In reply to Paco Ros

@pacoros
@joanballester Cualquiera que conozca bien un lenguaje, con el suficiente tiempo y ganas puede programar buen código. Repito "y ganas".
In reply to Joan Ballester

@pacoros
@joanballester Pero ambos sabemos que a veces no hay ni tiempo ni ganas. ¿Es entonces un mal programador? ¿Es el código malo si no falla?
In reply to Joan Ballester

@joanballester
@pacoros Ahí está la cosa, yo creo que no. Es decir, creo que hace falta "algo más" que conocer el lenguaje para escribir buen código
In reply to Paco Ros

@joanballester
@pacoros totalmente de acuerdo, el tiempo no es algo que abunde en esta profesión :D
In reply to Paco Ros

@pacoros
@joanballester He visto buenos programadores que no terminan el sw a tiempo y "malos programadores" que cumplen muy bien y con pocos fallos
In reply to Joan Ballester

@joanballester
@pacoros y también de acuerdo, absolutamente... en el "ganas" ;-)
In reply to Paco Ros

@pacoros
@joanballester Una vez me preguntaron si conocía buenos programadores para contratar. Pregunté qué entendían por buenos programadores (sigo)
In reply to Joan Ballester

@pacoros
@joanballester me dijeron que aquellos que en lugar de hacer lo que se les madaba, cuestionaban y aportaban al desarrollo.

@pacoros
@joanballester Me dio que pensar. Cada cual lo interpreta como le da la puta gana.

@joanballeste
@pacoros cierto... en mi caso me refiero a ser elegantes programando, elegancia + claridad + simplicidad... me gusta leer código así
In reply to Paco Ros

@joanballester
@pacoros y además, ayuda mucho si trabaja más gente escribiendo en el mismo proyecto :-)
In reply to Paco Ros

@pacoros
@joanballester En un proyecto con varios programadores, son buenos si trabajan todos igual y entienden el código de un vistazo.
In reply to Joan Ballester

@pacoros
@joanballester Si en un proyecto todos trabajan igual menos uno que programa "mejor" al final los demás no lo entienden y es peor.
In reply to Joan Ballester


3 Comentari de Paco Ros a les 09:03 del Sunday 11 Mar de 2012

3º part:
@joanballester
@pacoros bueno, si hay un grupo, tiene que haber unificación de criterios, y algo de guía de estilo, o todo se va al carajo rápido... xD
In reply to Paco Ros

@joanballester
@pacoros Aunque... al final suele pasar lo de siempre, las prisas lo joden todo ;-) (o casi xD)
In reply to Paco Ros

@pacoros
@joanballester Ja, ja, ja. Las putas prisas. Sí. BTW ese puntillo de presión que dan las prisas... a veces han salido las mejores cosas.
In reply to Joan Ballester

@joanballester
@pacoros Las prisas, sobretodo en la etapa de mantenimiento... son el puto demonio. El primer TODO (arreglar esto más adelante) lo jode todo
In reply to Paco Ros

@pacoros
@joanballester Ja, ja, ja! Eso se explica con el "technical debt" bit.ly/bCUotp
In reply to Joan Ballester

@joanballester
@pacoros sí, o cuando hay alguno que ya está hasta la punta de la * y ya empieza con sus nombres de variables inentendibles, etc... facepalm
In reply to Paco Ros

@joanballester
@pacoros gran página esa... muy buenos artículos, una de mis preferidas, aunque ahora escriben menos
In reply to Paco Ros

@pacoros
@joanballester Están liados con el StackExchange
In reply to Joan Ballester

@joanballester
@pacoros y dicho esto, y hablando de prisas y tiempo... voy a ponerme a redactar propuestas que el lunes tienen que estar todas ;-)
In reply to Paco Ros

@pacoros
@joanballester Que te sea leve.
In reply to Joan Ballester

@joanballester
@pacoros bah, escribes 10, aceptan uno... el pan de cada día ;-)
In reply to Paco Ros


4 Comentari de Paco Ros a les 09:03 del Sunday 11 Mar de 2012

Tema: Què és un bon programador? Existeixen criteris cuantitatius per determinar que un programador és un bon programador? Quina és la influència de l'equip a un bon programador?

Conclusions després del "debat":
- Un bon programador ha de conèixer un llenguatge a fons, però no tots els que coneixen a fons el llenguatge són bons programadors.
- El cas contrari no sempre es dóna.
- El fet de que un programador sigui o no bo, depèn molt de l'entorn: no és lo mateix una organització que una altra perquè la manera de cuantificar la qualitat d'un programador canvia d'una organització a una altra.
- Quan es tracta de treballar en equip, el criteri també canvia: és millor un programador bén integrat en un equip mediocre que un gran programador "de lliure" a un equip només "bo"
- El temps i la taxa d'errors són factors clau. També la simplesa i la legibilitat del codi, però cada qual els podera a la seva manera.
- Definitivament, NO hi ha una única manera d'avaluar la qualitat d'un programador.

Tot això és perquè pens que no hi ha criteris cuantitatius establerts (i per tant "estandaritzats" i coneguts arreu) per determinar la qualitat d'un programador. Per tant, un programador bon coneixedor d'un llenguatge, amb el suficient temps i ganes, pot integrar-se a un equip i fer-ho molt molt bé amb una taxa d'errors baixa i uns temps d'entrega millors que la mitjana de l'equip.


Avís: Els comentaris es tanquen automàticament als 30 dies