de Andy Tiffany

Când vine vorba de interviuri de codare pentru tablă albă, nu uitați să PREP

Cand vine vorba de interviuri de codare pentru tabla alba

PREP este un mnemonic pe care l-am creat pentru a vă ajuta să vă amintiți pașii implicați în rezolvarea problemelor de codare a tablelor albe. Inseamna Parametre, Return, Example, Pseudocod.

Cand vine vorba de interviuri de codare pentru tabla alba

Mnemonica este nouă, dar tehnica de bază este testată în luptă. Aceasta este în esență o versiune prietenoasă pentru începători dezvoltare bazată pe teste care se pretează bine provocărilor de codificare.

Să trecem direct la el și să învățăm PREP printr-un exemplu de problemă. Vom folosi JavaScript, dar această tehnică funcționează pentru aproape orice limbaj de programare.

Intervievatorul dvs. vă cere să văritual o funcție care acceptă o propoziție și returnează cel mai lung cuvânt. Ce faci?

„P” este pentru parametri

Majoritatea problemelor implică scrierea unei funcții. În acest pas, trebuie să determinați ce parametri ar trebui să accepte funcția dvs. Apoi, trebuie să le dați nume semnificative.

Cuvinte cheie precum „acceptă” sau „acceptă” în declarația privind problema vă vor ghida aici. Dacă nu este clar, puteți solicita și intervievatorului clarificări. În cazul dvs., declarația „acceptă o propoziție” vă spune că funcția ar trebui să accepte un singur parametru șir.

Deci, ați determinat tip parametrului dvs. Dar ce ar trebui să-i dai numele? S-ar putea să pară simplu, dar numirea bună este o abilitate crucială de programare și necesită practică.

Ați putea să-l numiți „phraseString”, dar numirea „propoziție” este mai concisă și clarifică totuși că avem de-a face cu un șir.

Deoarece acesta este primul tău pas, trebuie să te gândești și la un nume semnificativ pentru funcția ta. În cazul dvs., „longestWord” este concis și descriptiv. Acum, după ce ați decis acest lucru, puteți scrie shell-ul pentru funcția dvs. astfel:

„R” este pentru Return

Ce funcționează această funcție întoarcere? Este un număr? Un boolean? O sfoară?

Rețineți: valoarea returnată de o funcție nu este aceeași cu cea pe care ar putea să o afișeze într-o instrucțiune de tipărire / jurnal.

Încă o dată, puteți consulta afirmația problemei pentru clarificare. „Returnează cel mai lung cuvânt” vă spune că întoarceți un cuvânt, și știi că cuvintele sunt șiruri. Să clarificăm acest cristal creând o variabilă care să reprezinte această valoare de returnare și aranjând funcția dvs. pentru a o returna. Chiar dacă nu returnați încă răspunsul corect, sunteți pregătit să returnați tipul corect. Ați creat un substituent care va facilita următorii pași.

„E” este pentru exemplu

Chiar și pentru dezvoltatorii experți, codul static este mai greu de înțeles decât rularea codului. Doriți să faceți codul dvs. rulabil și „viu” cât mai curând posibil. Puteți da viață funcției dvs. cu un exemplu de invocație de testare.

Știți că dacă funcția dvs. acceptă propoziția „Am văzut un hipopotam”, aceasta ar trebui să returnează șirul „hipopotam” odată ce funcționează corect. Dar, deocamdată, doriți doar să vedeți valoarea substituentului dvs. de la ultimul pas pentru a confirma că codul dvs. poate fi rulat și configurat corect.

Ultimul „P” este pentru pseudocod

Deși este tentant să te scufunzi și să începi codarea acum, ar fi prea ușor să fii prins într-un detaliu care te-ar putea distrage de la imaginea de ansamblu. Mai întâi trebuie să elaborați o strategie și pseudocodificare este doar tactica pentru asta.

Pseudocodul este o serie de afirmații precise scrise în comentarii în limba vorbită, care descriu ceea ce trebuie să faceți.

Ați terminat PREP. Acum puteți codifica!

Cei patru pași din PREP te-au ajutat să încadrezi în mod clar problema și să te gândești cum să o rezolvi. Într-adevăr, încadrarea precisă este jumătate din luptă. Cei mai mulți intervievatori vor fi deja impresionați să vă vadă abordarea metodică. În acest moment, obiectivul dvs. este să scrieți doar cod care va face exemplele și testele dvs. să treacă. Veți face acest lucru codificând fiecare dintre pașii dvs. de pseudocod.

Știți că aveți o soluție de lucru când puteți rula codul și puteți vedea rezultatul corect.

Ai trecut prin cea mai grea parte acum. Puteți răsufla ușurați că cel puțin ați ajuns la o soluție de lucru. În acest moment, mai sunt doar două întrebări la care să ne gândim:

  • Există cazuri de margine care ar rupe codul? De exemplu, trebuie să țineți cont de propozițiile care au un punct la sfârșitul lor? Veți scrie mai multe cazuri de testare pentru aceste cazuri marginale, apoi veți remedia codul dacă este necesar.
  • Puteți face codul mai curat sau mai eficient acum? Ar trebui să discutați ideile cu intervievatorul, astfel încât acesta să vă cunoască gândurile înainte de a risca să rupă soluția.

Asta e! Acest proces ar putea părea excesiv de mecanic la început, dar credeți-mă, va deveni a doua natură – la fel ca pașii în învățarea conducerii. Chiar și după o programare de peste 12 ani, aceasta este încă aproximativ secvența pe care o urmez când rezolv problemele. Aș folosi mai probabil un cadru de testare formal în loc de declarații jurnal, așa cum am făcut aici, dar pașii sunt aceiași în ambele sensuri.

Acum încerci! Iată câteva probleme la nivel de începător cu care vă puteți exersa, în ordinea crescătoare a dificultății:

  1. Să presupunem că aveți o serie de șiruri de genul [ “adios”, “bye”, “ciao” ]. Sarcina dvs. este să scrieți o funcție numită total_characters care acceptă o astfel de matrice ca parametru și returnează numărul însumat de caractere pe toate șirurile din matrice.
  2. Scrieți o funcție pentru a răsturna o monedă de n ori, care returnează numărul de ori în care a fost răsturnată o „cap”.
  3. (Din Tabără Cod liber) Vă vom transmite o serie de două numere. Returnează suma acestor două numere și toate numerele dintre ele. Cel mai mic număr va fi nu întotdeauna pe primul loc. Încercați să utilizați PREP pentru a configura mai întâi acest lucru, dar nu ezitați să confirmați configurarea și să rezolvați problema aici.

PREP a ajutat deja câțiva Codificarea primului pas cursanții își aseamănă interviurile de codificare și sper că vă poate ajuta și pe voi. Codificare fericită!

Dacă ți-a plăcut acest lucru, dă clic pe? mai jos, astfel încât alte persoane să vadă acest lucru aici pe Medium.