Superant l'entrevista de programació
Tags: català, programació, carreres, algoritmes
Published: 2022-01-26 16:27:36

"L'entrevista de codi" és una etapa molt comú als processos selectius d'empreses de tecnologia, però intimida molts candidats. En aquesta sèrie de publicacions, pretenem desmitificar aquesta etapa i definir un cami per practicar, preparar-se i presentar el seu millor rendiment el dia de l'entrevista.

**Perquè entrenar les entrevistes de codi?**

Els problemes presentats en les entrevistes moltes vegades no tenen res a veure amb el que es troba en la pràctica, tot i això, moltes empreses adopten aquest tipus d'entrevista. Aquesta etapa pot tenir diferents maneres d'abordatge i nivells de profunditat, però gairebé sempre existeix.

Un motiu per això és que aquests testos són una avaluació objectiva amb resultats comparables. No pot ser l'única mesura, però juntament amb altres tipus de testos, demostren l'aptitud d'un candidat a la oportunitat. Moltes empreses necessiten  demostrar objectivament les decisions de contractació, per evitar favoritismes i corrupció.
  
**Estils d'entrevista de programació**

L'entrevista de codi pot tenir molts estils diferents. No oblidis parlar amb l'empresa per saber com serà cada entrevista i així preparar-te adequadament.

_Estil "Certificació"_

Aquest tipus d'entrevista es comú en processos amb gran nombre de candidats, com una etapa inicial. En aquestes proves, el candidat pasa per una sèrie de qüestions, normalment d'opció múltiple, en una plataforma online.

No solen ser exàmens difícils, com podria ser-ho una certificació. En general, es tracten els conceptes fonamentals dels llenguatges i llibreries utilitzades a la empresa.

Malgrat ser una etapa impersonal, aquest estil d'avaluació evita que tant l'empresa com el candidat inverteixin en etapes més profundes sense la qualificació o afinitat amb l'oportunitat.

Per preparar-se per a aquest tipus d'entrevista, un bon recurs son els models d'examen de les proves de certificació de les tecnologies utilitzades. Això ajuda a practicar el control del temp, més enllà de l'assumpte en si mateix.

_Estil "Programació en Parella"_

Aquest és l'estil més comú, que abordarem en aquesta sèrie.

L'entrevistador presenta un problema al candidat, que ha d'implementar un programa que el resolgui, dins d'un  temps límit. A més del test de programació, aquest és també un test de lògica i comunicació. L'objectiu no és només comprovar si el candidat coneix els comandaments i algoritmes, sinó també la solució de problemes, la comunicació i el treball en equip.

Aquesta etapa no és necessàriament difícil. Moltes vegades els algoritmes són intencionadament simples, només per a comprovar la capacitat de manipular les eines i el codi. A més d'això, l'entrevistador pot ajudar a entendre el problema i fins i tot, amb la implementació, tal com ho faria un company. La complexitat dels problemes presentats varien molt segons l'empresa i càrrec desitjat.

El temps, novament, és un factor crític i molt limitat. Moltes vegades els problemes es podrien resoldre fàcilment, si tinguéssim més temps. A través de la pràctica freqüent i de les eines adequades, aconseguim evitar la pèrdua de temps i enfocar-nos més en la solució del problema.

_Estil "Deures"_

El procés selectiu també pot incloure l'elaboració d'un projecte petit, en un escenari més realista. En aquest cas, a més de l'algoritme, s'afegeix la construcció d'una aplicació, integració o dispositiu. Així, a més del llenguatge, s'avalua l'ús de tecnologies i protocols utilizats en la empresa, com bases de dades, cues de missatges, plataformes de contenidors i altres.

Malgrat que per fer aquesta tasca ens donin més temps, és important no perdre el control. No només per realitzar la tasca dins el temps, sinó per no invertir més esforç de l'adequat per a l'entrevista, com desafortunadament passa. 

**Controlant el Temps**

No estem acostumats a programar "contrarellotge", principalment mentre parlem en un altre idioma, i a vegades amb estrès. Això pot tornar difícil una situació que seria trivial en condicions normals.

Utilitzarem tres "pilars" per controlar el temps durant l'entrevista i transformar-la en un procés constructiu i tranquil:

_Pràctica Regular_

La repetició té un rol essencial en l'aprenentatge i en el rendiment. Al principi, fins i tot els primers passos són desafiants. Al final, almenys en aquesta sèrie, pots confiar que dominaràs els algoritmes i proves de codi. 

Recomano que intenteu solucionar tots els problemes i algoritmes, fins i tot els més bàsics. La repetició permet que identifiquem els patrons de codi molt clara i ràpidament.

_Domini de les eines_
Les einas automatitzen les tasques repetitives, per tal que no et prengui temps durant la prova. A més dels algoritmes, intenta memoritzar els principals comandaments del llenguatge, les dreceres de l'editor i inclús trossos de codi.

No totes les entrevistes permeten l'ús d'eines, peró és important conéixer les seves funcionalitats. No cal programar sempre "al paper". 

_Comunicar i compartir_
Abans de començar a escriure l'algoritme, parla una mica amb l'entrevistador. Confirma que entens el problema i els casos de testeig. Presenta la teva proposta de solució i discuteix les alternatives. A la majoria dels processos, l'entrevistador pot i vol ajudar el candidat a presentar el seu millor rendiment.

**Dubtes? Crítiques? Suggerències?**
Parla directament amb nosaltres en el nostre [Discord](https://discord.gg/Zp8CR8grD4) o via [Twitter](https://twitter.com/caravanacloud)

**Participa amb [Caravana Cloud](https://patreon.com/caravanacloud)!** Com a membre tens accés a posts exclusius i molts més beneficis, directament via patreon.
















 



  ____