Lassen Sie uns zunächst die Frage klären. Es gibt keinen einfachen Weg, in irgendetwas gut zu werden, aber es gibt einen effizienten Weg, alles zu tun.
Lassen Sie uns versuchen, den Unterschied zwischen einfach und effizient mit Hilfe einer Programmierfrage zu verstehen! Betrachten wir das Problem „Suchen eines Elements in einem sortierten Array“.
- Person A löst das obige Problem mit Hilfe des linearen Suchalgorithmus.
- Person B löst das obige Problem mit Hilfe des binären Suchalgorithmus.
Person A hat also das Problem auf einfache Weise gelöst, während Person B das Problem auf effiziente Weise gelöst hat.
Die effiziente Art und Weise, Datenstrukturen und Algorithmen zu lernen, hängt von mehreren Faktoren ab:
- Ihre Vorkenntnisse über Programmiersprachen und grundlegende DS und Algos.
- Der Zweck, für den Sie es lernen wollen.
- Die Ressourcen, die Ihnen zur Verfügung stehen.
- Ein perfekter Leitfaden!
Lassen Sie uns nun einen genaueren Blick auf jeden der oben hervorgehobenen Punkte werfen:
- Vorkenntnisse von DS und Algo: Wenn Sie bereits gut mit den grundlegenden Datenstrukturen wie Arrays, Linked Lists etc. und einige der grundlegenden Algorithmen wie Sortieren, Suchen usw., dann werden Sie vergleichsweise viel weniger Zeit benötigen als ein kompletter Neuling, da Sie die Grundlagen bereits kennen. Wenn Sie z.B. nicht einmal das am Anfang des Artikels erwähnte Programmierbeispiel verstehen, dann haben Sie noch einen langen Weg vor sich.
- Zweck des Lernens von DS und Algo: Es hängt auch davon ab, zu welchem Zweck Sie Ihre Kenntnisse über Datenstrukturen verbessern wollen. Manche Leute lernen sie für Vorstellungsgespräche, manche für wettbewerbsfähige Programmierung und manche, um Wissen zu erlangen. Wenn Sie sich auf Vorstellungsgespräche vorbereiten, müssen Sie eine begrenzte Anzahl von Datenstrukturen lernen, die in den Vorstellungsgesprächen am häufigsten gefragt werden. Wenn Sie ein guter, kompetitiver Programmierer werden wollen, müssen Sie sich auf komplexe Datenstrukturen wie Segmentbäume, Fenwik-Bäume, binäre indizierte Bäume usw. konzentrieren: Ressourcen spielen eine sehr wichtige Rolle beim Lernen. Sie benötigen eine Reihe von guten Tutorials, die anschaulich genug sind, um alle Konzepte von den Grundlagen bis zu den Fortgeschrittenen zu erklären. Sie müssen auch eine Reihe von beliebten Fragen haben, um das erworbene Wissen zu üben.
- Ein Leitfaden: Nehmen wir an, Sie haben alle drei oben genannten Punkte begriffen. Sie wissen, was Sie lernen wollen, Sie wissen, wofür Sie lernen wollen, und Sie haben auch alle Ressourcen und Tutorien, um dies zu tun. Aber Sie sind immer noch verwirrt über viele Dinge wie „Wo soll ich anfangen?“, „Wie soll ich anfangen?“ usw. Sie brauchen also jemanden, der Sie durch den Prozess führt. Das heißt, es muss jemanden geben, der Ihnen hilft, die verfügbaren Ressourcen effizient zu nutzen.
Die Lösung für die oben genannten Probleme: Bei GeeksforGeeks haben wir bereits eine große Sammlung von Tutorien und Problemen zu Datenstrukturen und Algorithmen, die von einigen guten, wettbewerbsfähigen Programmierern aus der ganzen Welt geschrieben wurden. Wir haben auch viele vergangene, laufende und kommende Kurse über Datenstrukturen und Algorithmen, die auf GeeksforGeeks-Kurse gefunden werden können.
Wenn Sie sich auf Vorstellungsgespräche vorbereiten, empfehlen wir Ihnen die folgenden Links:
- Leitfaden zur Vorbereitung auf ein Vorstellungsgespräch
- Schrittweise Anleitung zur Vorbereitung auf ein Vorstellungsgespräch
- Top 10 Algorithmen in Vorstellungsgesprächen
- Top 10 Algorithmen in Vorstellungsgesprächen | Set 2
- Wie bereitet man sich auf die Top MNCs vor?
- Sudo Placement
-> Interview Preparation Archives
Wenn Sie ein angehender Competitive Programmer sind, ist ein Besuch der folgenden Links ein Muss:
- Wie beginnt man mit Competitive Programming?
- Wie wird man ein Meister in Competitive Programming?
- Ein besserer Weg zur kompetitiven Programmierung
- Tipps und Tricks für kompetitive Programmierer
- Tipps und Tricks für kompetitive Programmierer | Set 2
- Fortgeschrittene Datenstrukturen
- Top 10 Algorithmen und Datenstrukturen für Competitive Programming
-> Competitive Programming Archives