Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Publicaciones sobre python (publicaciones antiguas, página 61)

Cómo encontrar un programador que sepa programar.

¿Ya te asus­tas­te? No lo ha­ga­s, el pro­ble­ma es el pro­ce­so de con­tra­ta­ció­n.

Sí, hay mon­to­nes de per­so­nas que se pre­sen­tan pa­ra tra­ba­jos de pro­gra­ma­dor y no sa­ben pro­gra­ma­r. Eso es nor­ma­l.

Es­tá re­la­cio­na­do con una co­sa que es­cri­bió Joel Spol­sky (ex­tra­ña­men­te, so­cio de Atwood en sta­cko­ver­flo­w.­com).

Su­po­né­te que que­rés con­tra­tar a al­guien en el top 1% de los pro­gra­ma­do­res.

Te­nés 100 pos­tu­lan­tes, de ellos 99 no pue­den pro­gra­ma­r. 1 pue­de, y lo con­tra­tá­s.

Des­pués la em­pre­sa de al la­do ne­ce­si­ta lo mis­mo. Tie­nen 100 pos­tu­lan­tes, 99 no pue­den pro­gra­ma­r... ¡y 80 son los mis­mos que la otra com­pa­ñía re­cha­zó!

Así que no, con­tra­tar al me­jor de 100 no es la ma­ne­ra de te­ner un pro­gra­ma­dor "top 1%", es sim­ple­men­te tu in­tui­ción es­ta­dís­ti­ca que te ha­ce equi­vo­ca­r.

No que­rés con­tra­tar a al­guien en el top 1% de los pos­tu­lan­tes, que­rés uno en el top 1% de pro­gra­ma­do­res. Di­fe­ren­tes uni­ver­so­s.

Es­tas dos co­sas son los dos la­dos de la mis­ma mo­ne­da. 99% de los pos­tu­lan­tes son inú­ti­le­s, por eso son pos­tu­lan­tes, por­que no pue­den con­se­guir tra­ba­jo y no tie­nen tra­ba­jo por­que son inú­ti­les co­mo pro­gra­ma­do­res.

Juz­gar a los pro­gra­ma­do­res por el stan­dard de los pos­tu­lan­tes que se pre­sen­tan es co­mo juz­gar la ca­li­dad de un res­tau­ran­te la­mien­do su ta­cho de ba­su­ra.

Aho­ra, ha­bien­do en­ten­di­do es­to, ¿có­mo se en­cuen­tra un pro­gra­ma­dor que pue­da pro­gra­ma­r?

¡Fá­ci­l! ¡Bus­cás uno que ten­ga pro­gra­mas pa­ra mos­trar­te!

Nun­ca con­tra­ta­ría a un pro­gra­ma­dor que no me pue­da mos­trar có­di­go. Tie­ne que te­ner un pro­ble­ma por­que los pro­gra­ma­do­res pro­gra­man.

Es lo que ha­ce­mo­s. ¿Si no lo ha­ce­mos que so­mo­s? ¿Teó­ri­co­s?

Vea­mos al­gu­nas ob­je­cio­nes ob­via­s:

  1. Pro­­­gra­­mó pa­­ra su tra­­ba­­jo an­­te­­rior y no lo pue­­de mo­s­­tra­­r.

    Ok, lohi­­zo. ¿Qué más es­­cri­­bió? ¿A­l­­go open sou­r­­ce? ¿fra­g­­men­­tos en un blo­­­g? ¿Res­­pues­­tas en sta­­cko­­­ve­r­­flo­­w?

    ¿Na­­da? ¿No es­­cri­­bió na­­da sin co­­­bra­­r? No es el que quie­­ro. Si só­­­lo pro­­­gra­­ma por di­­ne­­ro no tie­­ne pa­­sión por la pro­­­gra­­ma­­ció­­n, o no lo dis­­fru­­ta. Pro­­­ba­­ble­­men­­te no es muy bue­­no ta­m­­po­­­co.

  2. Es­­tá te­r­­mi­­nan­­do la uni­­ve­r­­si­­da­­d, to­­­da­­vía no es­­cri­­bió mu­­cho.

    ¿Po­r­­qué? ¿Qué es­­tá es­­pe­­ran­­do? ¿Qué lo de­­tie­­ne? Lle­­va años es­­tu­­dian­­do co­­­mo pro­­­gra­­ma­­r! ¿Qué hi­­zo con el co­­­no­­­ci­­mien­­to que fué ad­­qui­­rien­­do? ¿Lo gua­r­­da pa­­ra cuan­­do cu­m­­pla 25? ¿No pra­c­­ti­­có su ar­­te? No es el pro­­­gra­­ma­­dor que bus­­ca­­mo­­s.

Pe­ro con­se­guir al­guien que te mues­tre có­di­go no es su­fi­cien­te por su­pues­to. Tam­bién tie­ne que ser buen có­di­go, si es­tás se­ria­men­te tra­tan­do de con­tra­tar pro­gra­ma­do­res ex­ce­len­tes.

Así que aquí hay unos cri­te­rios ex­tra:

  1. Fi­­já­­te en qué len­­guakes pro­­­gra­­ma. Si pro­­­gra­­ma CO­­­BOL por gus­­to pue­­de o no ser lo que ne­­ce­­si­­tá­s.

  2. Open sou­r­­ce == bo­­­nus poi­n­­ts: quie­­re de­­cir que no lo ave­r­­güen­­za su có­­­di­­go, y ha­­ce que sus cre­­den­­cia­­les sean tri­­via­­les de ve­­ri­­fi­­ca­­r.

  3. Si es el lí­­der de un pro­­­ye­c­­to con múl­­ti­­ples co­­­la­­bo­­­ra­­do­­­res y lo ha­­ce bien, es­­tá a mi­­tad de ca­­mino de ser un pro­­­gra­­ma­­do­­­r/­­ma­­na­­ge­­r, mu­­chos bo­­­nus poi­n­­ts!

  4. Pro­­­ye­c­­tos con un his­­to­­­rial de co­­­m­­mi­­ts la­r­­go mues­­tran res­­po­n­s­a­­bi­­li­­dad y cri­­te­­rio.

  5. Lis­­tas de co­­­rreo de de­s­a­­rro­­­llo te pe­r­­mi­­ten es­­ti­­mar su pe­r­­so­­­na­­li­­da­­d. ¿Es irri­­tan­­te? ¿Es sen­­si­­ble? ¿Es mo­­­le­s­­to?

Y des­pués es­tá lo ob­vio, re­fe­ren­cia­s, en­tre­vis­ta­s, ejer­ci­cio­s, pe­ro esos son fil­tros se­cun­da­rio­s, lo im­por­tan­te es que pue­da pro­gra­mar, y mos­trar­te su có­di­go es la for­ma de ha­cer­lo.

Un par de horitas hackeando Kuatia...

Ob­via­men­te no es­tá ni cer­ca de ser útil pa­ra al­go, pe­ro­... pue­de ha­cer lis­tas ite­mi­za­das o nu­me­ra­das ani­da­da­s.

Acá hay una cap­tu­ra del edi­tor y de la sali­da PDF que pro­du­ce vía reS­truc­tu­red Text:

editando2

No me pa­re­ce que es­té tan ma­l.

Marave 0.7 liberado

Ma­ra­ve es un edi­tor "re­la­ja­do" ins­pi­ra­do por om­mw­ri­te­r, Da­rk­Room y mu­chos otro. Po­see una in­ter­faz es­par­ta­na a pan­ta­lla com­ple­ta con ele­men­tos que se "des­va­ne­cen" pa­ra no in­ter­po­ner­se en­tre el usua­rio y su tex­to.

So­por­ta re­sal­ta­do de sin­ta­xis, co­rrec­tor or­to­grá­fi­co en lí­nea, mú­si­ca de fon­do, fee­dba­ck au­di­ble de te­cla­do, te­ma­s, ex­ten­sión via plu­gin­s, y mu­cho má­s.

La cap­tu­ra de pan­ta­lla obli­ga­to­ria:

marave18

No hay gran­des fea­tu­res nue­vos en 0.7 pe­ro hay cam­bios in­ter­nos gran­de­s, y bugs im­por­tan­tes co­rre­gi­do­s:

  • Co­­­rre­­gi­­do bug que ro­m­­pía abrir ar­­chi­­vos si no ha­­bía co­­­rre­c­­tor or­­to­­­grá­­fi­­co

  • Im­­ple­­men­­ta­­do so­­­po­r­­te pa­­ra len­­gua­­jes RTL

  • Va­­rios arre­­glos me­­no­­­res

  • Re­­fa­c­­to­­­rea­­do co­m­­ple­­to del co­m­­po­­­nen­­te edi­­tor

Editor: un QTextEdit mejor

Por eso re­fac­to­reé to­das esas co­sas que yo creo que un edi­tor de tex­to de­be te­ner en una lin­da bi­blio­te­ca, pa­ra que la pr­óxi­ma vez que al­guien de­ba rein­ven­tar la rue­da, pue­da usar los bo­ni­tos ra­yos y eje de Ma­ra­ve.

En­ton­ce­s, aquí es­tá Edi­tor, la cla­se con el nom­bre más ob­vio po­si­ble! Es un wi­dget de edi­ción de tex­to pa­ra Py­Qt con fea­tu­res ex­tra, que se pue­de usar co­mo reem­pla­zo de QTextE­dit o QPlain­TextE­di­t.

Por aho­ra, vi­ve aden­tro del SVN de Ma­ra­ve pe­ro tal vez al­gún día sal­ga de ahí.

És­tos son los fea­tu­res:

  • Re­s­al­­ta­­do de si­n­­ta­­xis:

    Y no "en teo­­­ría", co­­­mo QTex­tE­­dit y de­­má­s! Edi­­tor pue­­de re­s­al­­tar un mo­n­­tón de len­­gua­­jes po­r­­que usa GNU sou­r­­ce hi­­gh­­li­­ght via el Sou­r­­ce Hi­­gh­­li­­ght Qt de Lo­­­reno Be­­­tti­­ni.

  • Co­­­rre­c­­tor or­­to­­­grá­­fi­­co

    Si in­s­­ta­­lás PyEn­­chant con los di­c­­cio­­­na­­rios co­­­rre­c­­to­­s, ha­­ce co­­­rre­c­­ción or­­to­­­grá­­fi­­ca on­­li­­ne.

  • Wi­­dge­­ts de Bus­­car y Bus­­car y Ree­m­­pla­­zar

    La cla­­se Edi­­tor te da li­n­­dos wi­­dge­­ts pa­­ra bus­­car y bus­­car y ree­m­­pla­­zar ya co­­­ne­c­­ta­­dos con el wi­­dget del edi­­to­­­r, pa­­ra que lo agre­­gues fá­­ci­l­­men­­te a tu apli­­ca­­ció­­n.

  • Mé­­to­­­dos new/o­­­pen/s­a­ve/s­a­vea­s:

    No im­­ple­­men­­tes abri­­r/­­gua­r­­da­­r, etc! Eso es sie­m­­pre el mis­­mo có­­­di­­go!

Oja­lá le sir­va a al­guien más :-)


Contents © 2000-2020 Roberto Alsina