Să clarificăm mai întâi întrebarea. Nu există o modalitate ușoară de a deveni bun la ceva, dar există o modalitate eficientă de a face totul.
Să încercăm să înțelegem aici diferența dintre ușor și eficient cu ajutorul unei întrebări de programare! Să considerăm problema „Căutarea unui element într-un array sortat”.
- Persoana A rezolvă problema de mai sus folosind algoritmul de căutare liniară.
- Persoana B rezolvă problema de mai sus folosind algoritmul de căutare binară.
Deci, persoana A a rezolvat aici problema într-un mod ușor și totuși persoana B a rezolvat problema într-un mod eficient.
Acum, modul eficient de învățare a structurilor de date și a algoritmilor depinde de mai mulți factori:
- Cunoștințele dvs. anterioare de limbaje de programare și DS și Algos de bază.
- Scopul pentru care doriți să o învățați.
- Resursele pe care le aveți la dispoziție.
- Un ghid perfect!
Să analizăm acum mai în profunzime fiecare dintre punctele evidențiate mai sus:
- Cunoștințe anterioare de DS și Algo: Dacă sunteți deja bine familiarizați cu structurile de date de bază precum Array, Linked Lists etc. și unii dintre algoritmii de bază, cum ar fi Sortarea, Căutarea etc., atunci, comparativ, vă va lua mult mai puțin timp decât unui începător complet, deoarece cunoașteți deja elementele de bază. De exemplu, dacă nici măcar nu înțelegeți exemplul de programare menționat la începutul articolului, atunci mai aveți un drum lung de parcurs.
- Scopul învățării DS și Algo: Depinde, de asemenea, de scopul pentru care doriți să vă îmbunătățiți cunoștințele despre structurile de date. Unii oameni le învață pentru interviuri de angajare, alții pentru programare competitivă și alții pentru dobândirea de cunoștințe. Dacă vă pregătiți pentru interviurile de angajare, atunci aveți de învățat un set limitat de structuri de date care sunt cel mai frecvent întrebate la interviuri, iar dacă doriți să deveniți un bun programator competitiv, atunci va trebui să vă concentrați asupra structurilor de date complexe, cum ar fi Arborele de segmente, Arborele Fenwik, Arborele binar indexat etc.
- Resurse disponibile: Resursele joacă un rol foarte important în învățarea oricărui lucru. Aveți nevoie de un set de tutoriale bune care sunt suficient de descriptive pentru a clarifica toate conceptele, de la cele de bază până la cele avansate. De asemenea, trebuie să aveți un set de întrebări populare pentru a pune în practică cunoștințele pe care le-ați dobândit.
- Un ghid: Să spunem că v-ați dat seama de toate cele trei puncte de mai sus. Știi lucrurile pe care vrei să le înveți, știi scopul pentru care vrei să înveți și, de asemenea, ai toate resursele și tutorialele pentru a face acest lucru. Dar sunteți încă confuz în legătură cu o mulțime de lucruri, cum ar fi „De unde să începi?”, „Cum să începi?” etc. Așadar, aveți nevoie de cineva care să vă ghideze în acest proces. Adică trebuie să existe cineva care să vă ajute să folosiți resursele disponibile într-un mod eficient.
Soluția la problemele de mai sus: La GeeksforGeeks, avem deja o colecție vastă de tutoriale și probleme bazate pe Structuri de date și Algoritmi scrise de câțiva programatori buni și competitivi din întreaga lume. Avem, de asemenea, multe cursuri trecute, în curs de desfășurare și viitoare despre Structuri de Date și Algoritmi care pot fi găsite pe GeeksforGeeks-Cursuri.
Dacă vă pregătiți pentru interviuri, vă recomandăm să parcurgeți următoarele link-uri:
- Ghid de pregătire pentru plasare
- Un ghid pas cu pas pentru pregătirea pentru plasare
- Top 10 algoritmi în întrebările de interviu
- Top 10 algoritmi în întrebările de interviu | Set 2
- Cum să vă pregătiți pentru MNC-urile de top?
- Sudo Placement
-> Arhivele pregătirii pentru interviuri
Dacă sunteți un programator competitiv aspirant, vizitarea link-urilor de mai jos este o necesitate:
- Cum să începeți cu programarea competitivă?
- Cum să devii un maestru în programarea competitivă?
- Un mod mai bun de a aborda programarea competitivă
- Consiliere și trucuri pentru programatorii competitivi
- Consiliere și trucuri pentru programatorii competitivi | Set 2
- Avansat Structuri de date
- Top 10 Algoritmi și structuri de date pentru programarea competitivă
-> Arhivele programării competitive