Cel mai bun răspuns
Proiectarea sistemului este obligatorie pentru pregătirea interviurilor pentru toți candidații cu experiență. Proiectarea sistemului înseamnă probleme scalabile de proiectare a sistemului (cum ar fi Uber, Facebook Newsfeed, webcrawler design etc.). După cum puteți vedea în toate aceste sisteme au acces de miliarde de utilizatori. Companiile doresc, de asemenea, un inginer care să poată proiecta sistemul care poate gestiona cererea de milioane la un moment dat , iar sistemul ar trebui să fie întotdeauna robust, cu o latență foarte mică. În general, pregătirea proiectării sistemului va dura 2 luni dacă sunteți un începător complet. Dar da, trebuie să depuneți mult efort pentru a-l învăța.
Înainte de a merge mai departe, permiteți-mi să vă dau o idee corectă despre aspectul interviului de sistem
Runda de proiectare a sistemului ar trebui să aibă întotdeauna începeți cu
- O discuție detaliată despre cerințe și ce elemente acceptă sistemul nostru și pe care le putem ignora
- După cerință, este mai bine să dați intervievator o idee corectă despre estimarea numărului de oameni care vor folosi sistemul
- Discutați despre API (REST API) Implică în sistemul prin care utilizatorul accesează serviciul nostru
- Încercați să desenați Capăt la cap fluxul de proiectare la nivel înalt al proiectului
- Gândiți-vă și veniți cu componentele sistemului implică în sistem și, de asemenea, fluxul dintre componentele sistemului
- În cele din urmă, veniți cu un design la nivel scăzut al sistemului
Este foarte important să faceți o discuție sănătoasă cu intervievatorul și încearcă să iei ajutor de la el rezolvarea unei probleme. Va face o impresie bună că candidații sunt un bun jucător de echipă . Chiar dacă știți soluția Nu începeți niciodată să rezolvați problema de proiectare fără să o discutați cu intervievatorul. Intervievatorul vă va oferi o idee corectă despre cerință și vă va oferi indicii. Dacă încercați direct să o rezolvați, atunci intervievatorul va crede că cunoașteți deja soluția și că „
Înainte de a începe rezolvarea unei probleme bazate pe proiectarea sistemului, este foarte important să pregătiți elementele de bază. Mai jos sunt câteva dintre subiectele pentru elementele de bază
Pentru pregătirea unei probleme de proiectare a sistemului, lucrurile sunt, desigur, experiența dvs. vă va ajuta . Întrucât s-ar putea să fiți implicat în mai multe cicluri de viață ale dezvoltării proiectelor, vă ajută pentru a răspunde în timpul procesului de interviu.
Dar, majoritatea candidaților nu au primit multă expunere în industrie , mai ales pentru că faptul este 70-75\% dintre persoanele din IT lucrează la un proiect de întreținere în care trebuie să adauge API-uri și să dezvolte componente mici. Deci, imaginea de la capăt la cap a oricărui proiect pe care nu l-au obținut. Pentru aceștia, puteți învăța proiectarea sistemului alăturându-vă unor cursuri / training online . Aceste resurse online mă ajută să mă pregătesc pentru interviuri.
- Puteți învăța proiectarea sistemului de la cursul Logicmojo . Acesta este cursul online de cursuri video pentru pregătirea proiectării sistemului, precum și algoritmi. Acest curs vă va oferi o perspectivă bună asupra tuturor componentelor de proiectare a sistemului și acoperă aproape toate întrebările de proiectare adresate în Interviuri. Au inclus câteva peste 40 de probleme de proiectare , ceea ce cred că este suficient de bun.
- Apoi avem un blog foarte celebru numit HighScalability . Aceste bloguri vă oferă detalii despre componentele sistemului, API-ul și estimări parte a faimoaselor probleme de proiectare a sistemului. Deși acoperă detalii imense ale sistemului, dar trebuie să extrageți detaliile utile și relevante
- De asemenea, există un curs online bun educativ curs de proiectare sistem grokking. Aceasta este, de asemenea, o colecție bună de probleme de proiectare a sistemului. Trebuie să parcurgeți completul și să-l citiți ca resurse bazate pe text
De asemenea, trebuie să participați la toate întâlnirea de proiectare se întâmplă în proiectul dvs. curent în birou, deoarece în acele întâlniri arhitectul principal discută discuția de proiectare și defectele în proiectarea existentă a sistemului. Acest lucru oferă o idee corectă despre cum să alegeți designul pentru orice sistem. De asemenea, încercați să citiți și să înțelegeți documentul de proiectare al oricăror proiecte anterioare. Acest lucru vă ajută și în timpul interviurilor de proiectare a sistemului
Răspundeți
Nu vă lăsați copleșiți. Pregătiți pas cu pas și descompuneți-l în timpul pregătirii și faceți același lucru odată ce vă aflați în interviul real. Proiectarea sistemelor este dificilă – trebuie să vă ocupați de natura nestructurată a interviului, dar cu o practică suplimentară, veți fi pregătiți să vă descurcați cu orice vă vor arunca .
- Înțelegeți obiectivele interviului – Clarificarea timpurie a ambiguităților este esențială. Asigurați-vă că știți ce vor să știe.
- Stabiliți domeniul de aplicare – Încercați să definiți toate caracteristicile designului la care vă gândiți prin importanța lor pentru utilizator pentru scenariul furnizat.
- Proiectare pentru scala corectă – Același set de caracteristici necesită o abordare foarte diferită pentru diferite scale. Este esențial să determinați scara, astfel încât să știți dacă datele dvs. se pot potrivi pe o singură mașină sau dacă trebuie să scalați citirile.
- Începeți la nivel înalt , apoi mergeți mai departe – Începeți cu acoperirea procesului de la capăt la cap, pe baza obiectivelor stabilite. Acest lucru ar putea include detalierea diferiților clienți, API-uri, servicii de backend, procese offline, arhitectură de rețea, magazine de date și modul în care acestea se reunesc pentru a îndeplini cerințele
- Structuri de date și algoritmi – Nu uitați să țineți cont de cerințele dvs. de scalare, unde analiza complexității runtime și a memoriei devine la îndemână.
Exersați cât mai mult posibil în săptămânile premergătoare întâlnirii dvs. la Amazon. Fiind în concordanță cu pregătirea interviului și programându-l în rutina săptămânală în săptămânile premergătoare interviului va fi cel mai mare ajutor în realizarea sigur că ești gata. Practica de calitate este, de asemenea, mai importantă decât cantitatea. Asigurați-vă că nu vă distrage atenția în timpul sesiunilor și că vă concentrați asupra problemelor la îndemână și lucrați la lucruri care vă provocă. Dacă practicați doar lucrurile ușoare, veți avea surprize neplăcute și stres în timpul interviului real.
O modalitate excelentă de a vă îmbunătăți abilitățile pentru un interviu este prin ședințe de interviu simulate. Experiența te obișnuiește cu cum te vei simți atunci când te vei întâlni cu managerul angajator. Consultați Pramp , o platformă de interviuri simulate peer-to-peer, pentru a începe.
Pramp oferă utilizatorilor practici de interviuri pentru proiectarea sistemelor simulate a lucra cu un coleg. Împreună veți îndeplini atât rolul de intervievator, cât și cel al intervievatului, astfel încât să puteți învăța și din punctele forte și punctele slabe ale acestora. Este benefic să vezi pe altcineva să-și completeze interviul de proiectare a sistemului și să-l vezi din perspectiva intervievatorului. Veți primi, de asemenea, feedback după experiență, pe care îl puteți utiliza pentru a identifica componentele pe care trebuie să lucrați înainte de a vă întâlni cu managerul de angajare la Amazon.