Care sunt câteva întrebări tipice pentru interviul de proiectare pentru inginerii de software?


Cel mai bun răspuns

Iată câteva din cele intervievarea escapadelor:

  1. Proiectează instagram sau un anumit tip de feed de conținut. Acesta este de fapt SUPER comun, i trebuie să-l fi obținut de 3 sau 4 ori la diverse companii. Este destul de tăietor de cookie-uri și este probabil ceea ce vor pune intervievatorii prea leneși pentru a veni cu o întrebare mai bună.
  2. Tip de proiectare înainte / completare automată. De asemenea, l-am primit de mai multe ori, uneori cu ușoare variații. De obicei, se bazează pe o structură de date Trie. Acesta este unul excelent de practicat!
  3. Proiectați un autobuz de mesagerie (apache kafka / zeromq / rabbitmq). S-ar putea să obțineți așa ceva dacă interogați pentru un rol software infra-orientat. Acesta este unul excelent care poate genera multe zone de focalizare diferite și sub-întrebări.
  4. Proiectați o memorie cache LRU. De obicei se rezumă la implementarea unei liste dublă pentru a obține eliminarea constantă a timpului pentru elementele utilizate cel mai recent când memoria cache este plină.
  5. Design un cache distribuit. Din nou, ar putea fi pentru un rol care este infra-orientat. Poate fi, de asemenea, luat în mai multe direcții diferite.
  6. Proiectați tabele de baze de date / depozit de date. Acest lucru ar putea fi pentru un rol mai orientat către inginerul de date, dar este, de asemenea, obișnuit pentru SWE, având în vedere că proiectarea bună a datelor este extrem de importantă.

Iată câteva pe care NU le-am văzut personal , în ciuda faptului că este general acceptat ca obișnuit:

  1. Proiectați un dispozitiv de scurtare a adreselor URL
  2. Proiectați un site web-shop / e-commerce

Sper că acest lucru vă va ajuta! Aș fi dispus să pariez că primele 4-5 vor acoperi MAI MULTE interviuri de proiectare a sistemului – și pentru cele pe care nu le acoperă, cunoștințele pe care le obțineți din studierea lor ar trebui să se transfere bine la diferite variații ale întrebărilor.

Răspuns

Interviuri de proiectare a sistemului testează-ți abilitățile de proiectare și abilitatea de a lucra cu servicii complexe și scalabile. Performanța dvs. în aceste interviuri determină ce funcție și salariu vi se va oferi. Dacă aveți abilități de design lăudabile, veți obține o ofertă mai mare. O resursă bună de pregătit pentru acest interviu: Interogarea interviului de proiectare a sistemului

Câteva exemple de probleme de proiectare sunt: ​​

De asemenea, este o idee bună să vă familiarizați cu concepte de sisteme distribuite precum Hashing consecvent, Partiționarea datelor , Echilibrarea încărcării , Redundanță și replicare , Teorema CAP etc.

Din experiența mea, candidații care s-au descurcat mai bine în interviurile de design au urmat acești șapte pași:

Pasul 1: clarificări privind cerințele: Puneți întotdeauna întrebări pentru a găsi întinderea exactă a problemei pe care o rezolvați.

Pas 2: Definiția interfeței de sistem: Definiți ce API-uri sunt așteptate de la sistem. Acest lucru vă va asigura, de asemenea, dacă nu ați greșit vreo cerință.

Pasul 3: estimarea înapoi a plicului: Este întotdeauna o idee bună să estimați scala sistemului pe care urmează să îl proiectați.

Pasul 4: Definiți modelul de date: Deși este nu este necesar din timp, acest lucru va clarifica modul în care datele vor circula între diferitele componente ale sistemului și mai târziu vă va ghida și spre partiționarea datelor.

Pasul 5: Proiectare la nivel înalt: Desenați o diagramă bloc cu 5-6 casete care reprezintă componentele centrale ale sistemului dvs.

Pasul 6: Proiectare detaliată a componentelor : Sapă mai adânc în 2-3 componente; feedback-ul intervievatorilor ar trebui să vă ghideze întotdeauna către ce părți ale sistemului dorește să explicați mai departe.

Pasul 7: Blocaje: Încercați să discutați cât mai multe blocaje posibil și abordări diferite pentru a le atenua.

Sper că acest lucru a ajutat.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *