Wie bereite ich mich auf Campus-Praktika vor? - Eine Reise vom Studenten zum SDE

Wer bin ich?
Ich bin Abhinav Bhardwaj, ein Student im letzten Jahr, der B.Tech verfolgt. in Elektrotechnik von der Delhi Technological University (ehemals Delhi College of Engineering) [Charge von 2K19]. Ich programmiere seit 8 Jahren, seit ich 15 Jahre alt bin. Ich mache seit 4 Jahren Competitive Programming und habe mein erstes Problem mit CodeChef gelöst, noch bevor ich mit dem College angefangen habe. Abgesehen davon habe ich DS & Algo von GeeksforGeeks bis zu dem Punkt studiert, dass meine Freunde mich oft "Chalta Firta GeeksforGeeks" nennen - was "Ein wandelnder GeeksforGeeks" bedeutet. Ich habe mir in meinem dritten Jahr ein Praktikum auf dem Campus gesichert (was aufgrund der Tatsache, dass ich aus der Kernbranche stammte, ziemlich schwierig war), und ich habe mir in meinem vierten Jahr 3 Stellenangebote gesichert (2 auf dem Campus bei OYO und Zomato und 1 off-campus @ Aspiring Minds 'Research Lab). Ich stehe kurz vor dem Ende meines Universitätslebens und habe diesen Artikel bereits seit einiger Zeit geplant. Daher dachte ich, dies könnte der perfekte Zeitpunkt für mich sein, meine Gedanken niederzuschreiben. Ich glaube, ich bin jetzt in der Lage, diesen Artikel über „Wie bereite ich mich auf Campus-Praktika vor? wenn Sie SDE werden wollen “.

Warum habe ich diesen Artikel geschrieben?
Die Studenten betreten das College mit der Hoffnung auf eine gute Platzierung, ein sechsstelliges Gehalt. Mir ist jedoch aufgefallen, dass zwischen Senioren und Junioren häufig eine Lücke im Wissenstransfer besteht. Infolgedessen werden viele oft irregeführt und neigen dazu, Zeit mit unrequisiten Dingen zu verschwenden. In der gleichen Situation habe ich nach Ressourcen für genau diese Frage gesucht. Ich plane, diesen Artikel zu einer zentralen Anlaufstelle für alles zu machen, was Sie über Campus-Praktika wissen möchten.

Bevor wir beginnen, merken Sie sich diese Zeile von Norman Schwarzkopf:

"Je mehr Sie in Frieden schwitzen, desto weniger bluten Sie im Krieg."

Die Bedeutung ist für Sie zu entziffern.

Haftungsausschluss: Dies ist eine Liste, die gerade bearbeitet wird, und obwohl ich beabsichtige, diese Liste vollständig zu machen, haben Sie möglicherweise das Gefühl, dass einige Punkte nicht angesprochen oder ausgelassen wurden. Vorschläge zu anderen Ressourcen, die Ihrer Meinung nach Teil dieser Liste sein sollten, sind willkommen.

Was muss alles getan werden? (Von hoher zu niedriger Priorität):

  • Programmierung / Wettbewerbsprogrammierung.
  • Algorithmen und Datenstrukturen.
  • Akademiker (OS / DBMS / CN).
  • Sprachspezifische Fragen.
  • Systemdesign / Offene Probleme.
  • Rätsel.
  • MCQs basierend auf Programmierung / Lehre.
  • Eignung / logisches Denken / Dateninterpretation.

Aber zuerst eine Vorschau auf den gesamten Prozess:

Der Prozess ist möglicherweise nicht exakt derselbe. Möglicherweise haben Sie weniger technische Runden. Die Reihenfolge, in der die Themen gestellt werden, kann unterschiedlich sein. Dieses Flussdiagramm soll Ihnen nur einen grundlegenden Überblick über den gesamten Prozess geben.

1) Programmierung / Wettbewerbsprogrammierung: -

Ich habe diese eine Zeile viel zu oft gehört und dachte, dass ich Ihnen dies sofort sagen sollte - "Es hat keinen Sinn, irgendetwas zu tun, wenn Sie nicht einmal die erste Runde beenden können". Die Anfangsphase eines Unternehmensprozesses ist immer ein Programmiertest, bei dem Sie anhand Ihrer Fähigkeit beurteilt werden, in einem begrenzten Zeitraum korrekten Code zu schreiben.

Wie vorzubereiten?

Die Ebene der Programmierfragen, die in dieser Phase gestellt wurden, kreuzt selten Fragen der Codeforces-Division 2, Ebene C. Grundsätzlich sollten Sie also in der Lage sein, ein Problem mit einfachen Mitteln (Stufe A, B, C) schnell zu lösen.

Es gibt viele Orte, an denen Sie Ihre Reise in die Welt der kompetitiven Programmierung beginnen können:

  • KarriereCup
  • CodeChef
  • CodeForces
  • HackerRank
  • HackerEarth
  • InterviewBit
  • LeetCode
  • SPOJ
  • Topcoder
Ein Wort der Vorsicht: Versuchen Sie nicht, Probleme von jedem Standort aus zu lösen. Dies führt zu Ihnen und löst nur einfache Probleme von jedem von ihnen. Befolgen Sie stattdessen maximal 2-3 Standorte und halten Sie sich an diese.

- Für Neulinge kann es sein, dass Sie Schwierigkeiten beim Lösen von Problemen haben und leicht demotiviert werden. Daher ist es am besten, mit der A20J-Leiter zu beginnen. Hier werden Probleme nach Schwierigkeitsgraden eingeteilt und Sie können am unteren Ende der Leiter beginnen. Lösen Sie Leitern für eine Weile, und springen Sie zu einer der oben genannten Stellen.

- Für diejenigen unter Ihnen, die sich mit Competitive Programming auskennen oder die sich für ACM-ICPC entscheiden, sind hier zwei wichtige Ressourcen:

  1. Competitive Programming Handbook von Steven & Felix Halim
  2. UVa Online Judge (Download Arena für Windows)

- Für diejenigen unter Ihnen, die mit Division-2, Level-A & B vertraut sind, Level-C jedoch nicht beherrschen, können Sie entweder einen Filter für Codeforces für Level-C anwenden oder die Leiter von wählen Probleme auf A2OJ für Div-2, Level-C. Es gibt keine Abkürzung, um diese Probleme zu lösen. Sie müssen es weiter versuchen. Ausdauer ist hier der Schlüssel. Schauen Sie sich die Lösung anderer Kandidaten an, wenn Sie müssen. Nach einer Weile (indem Sie sich selbst lösen oder nach den richtigen Lösungen suchen) werden Sie in der Lage sein, die richtige zu verwendende Datenstruktur und den zur Lösung solcher Probleme anzuwendenden Algorithmus zu ermitteln. (Vertrauen Sie mir, es gibt keine Abkürzung dafür, ich war dort). Sie müssen zwar kein hervorragender Programmierer sein, um den Onlinetest zu bestehen, aber es lohnt sich, diesen zusätzlichen Vorteil zu erlangen, um für das Traumunternehmen ausgewählt zu werden, das Sie sich wünschen.

Ein Trend, den ich im Programmiertest von Unternehmen zu Beginn der Placement-Saison, d. H. Von Juli bis August, festgestellt habe, ist, dass fast alle von ihnen Fragen an Graphs und Dynamic Programming stellen. Ich wiederhole, nimm diese beiden Themen unter keinen Umständen leicht. Lösen Sie so viele Probleme wie möglich. Wie ich bereits sagte, sobald Sie eine große Anzahl von Problemen gelöst haben, werden Sie den Überblick behalten.

Nehmen Sie an den Codierungsherausforderungen auf einer Website Ihrer Wahl so schnell wie möglich teil. Ich würde CodeForces empfehlen. Auch wenn Sie eine Runde verpassen, können Sie immer die virtuelle Teilnahme zum Üben verwenden.

Hier einige der Probleme, die in der ersten Runde verschiedener Unternehmen, die die DTU im Jahr 2019 besuchten, aufgetreten waren:

CodeNation: -

Ixigo: -

T-Systems: -

Rivigo: -

Visa:-

Zomato: -

Adobe:-

OYO: -

2) Algorithmus und Datenstrukturen:

Jetzt habe ich Leute gesehen, die DS & Algo von InterviewBit und LeetCode studiert haben. Aber für mich war GeeksforGeeks immer der vertrauenswürdigste Ort.

Algorithmen und Datenstrukturen haben separate Abschnitte, hier sind die Links:

  • Algorithmen
  • Datenstrukturen

Jetzt sind diese Teile von GeeksforGeeks buchstäblich riesig. Vorteile: Sie müssen nirgendwo anders hingehen. Nachteile: Der Inhalt ist riesig und Zeitmangel kann ein Problem sein. Zwar hatte ich auf GeeksforGeeks fast alles abgedeckt und war immer im Vorteil, aber wie ich bereits sagte, habe ich meine Reise ziemlich früh begonnen, und Sie haben möglicherweise nicht die gleiche Zeit in der Hand. Hier ist das selektive Studium wichtiger als das erschöpfende Studium. Sie müssen nicht jedes einzelne Thema ausführlich behandeln, auch wenn ein grundlegendes Wissen über alles hilfreich ist. In einem meiner Interviews für die Citibank bekam ich beispielsweise ein Problem mit rot-schwarzen Bäumen, das ich beantworten konnte. Obwohl RB-Bäume selten gefragt werden, konnte ich sie beantworten, weil ich eine Vorstellung davon hatte, was es ist, welche Eigenschaften es hat usw.

Im Abschnitt Algorithmen können Sie Randomisierte Algorithmen, Max Flow (aber Bipartite Matching) usw. belassen. Sie können auch "Bitweise Algorithmen" aus anderen Quellen verwenden, da dieser Teil in Bezug auf GfG und Output: Input ziemlich umfangreich ist niedrig.
 
Ebenso können Sie in Datenstrukturen alle erweiterten Datenstrukturen mit Ausnahme von Segmentbaum und Trie belassen. In ähnlicher Weise können Sie jede Datenstruktur belassen, die nur selten verwendet wird, da Fragen aus diesen sehr unerwartet sind. Studieren Sie Heaps und Trie gründlich, da ihnen in Interviews häufig Fragen gestellt werden. Ansonsten versteht es sich von selbst, Array, Linked List, Stack, Queue, BT, BST und Graph zu studieren.
 
 3) Akademiker (OS / DBMS / CN): -
 
Akademiker stellen in der Regel Fragen zu Betriebssystemen und Datenbankverwaltungssystemen. Fragen aus diesen Themenbereichen sind nicht nur theoretisch, sondern beziehen sich auch auf praktische Anwendungen. Tatsächlich werden sie sich mehr auf den praktischen Aspekt konzentrieren.

  • Möglicherweise werden Sie gefragt, was Multithreading ist, aber es besteht eine höhere Wahrscheinlichkeit, dass die Frage neu formuliert wird, um zu wissen, wie gründlich Sie es untersucht haben, und zwar wie folgt: Können zwei Prozesse / zwei Threads einen gemeinsamen Adressraum verwenden? Prozesse oder 2 Threads teilen?
  • Diese Frage wurde mir auch vom Betriebssystem gestellt, für deren Beantwortung ich gründliche Kenntnisse über Cache, RAM und CPU benötigte: Wird ein System mit Cache (natürlich zusammen mit RAM) immer eine bessere (schnellere) Leistung erzielen als ein System mit nur RAM? , oder ist es möglich, dass es langsamer ist?
Wenn Sie nur die Definitionen studieren, können Sie diese Fragen nicht beantworten. Ein tieferes Eintauchen in das Thema ist notwendig. Diese Themen sollten niemals leichtfertig behandelt werden, da einige Interviews ausschließlich darauf abzielen, Ihr Betriebssystem und Ihre DBMS-Kenntnisse zu überprüfen.

Tipps:

  • Überlegen Sie, bevor Sie sprechen ... ... Interviewer versuchen, das zu erfassen, was Sie sagen, um Sie weiter zu befragen. Ein Auszug aus einem Gespräch, das ich in einem Interview geführt habe, war:

Interviewer: Was sind die Funktionen eines Betriebssystems?

Ich: Speicherverwaltung, Speicherverwaltung, Prozessverwaltung - CPU-Planung usw.

Interviewer: Also, was sind die verschiedenen Algorithmen für die CPU-Planung?

Ich: FCFS, SJF, Priority Scheduling, Round Robin …… ..

Interviewer: Sind SJF und Priority Scheduling in irgendeiner Weise miteinander verbunden?

Ich: Ja, die Idee hinter dem SJF-Algorithmus ist, den schnellsten kleinen Job auszuwählen, der erledigt werden muss, ihn zuerst aus dem Weg zu räumen und dann den nächstkleineren schnellsten Job auszuwählen, der als nächstes erledigt werden soll. Die Prioritätsplanung ist ein allgemeinerer Fall von SJF, bei dem jedem Job eine Priorität zugewiesen wird und der Job mit der höchsten Priorität zuerst geplant wird.

Interviewer: ……… .weitere Fragen ……….

- Fangen Sie meine Drift? Erst denken, dann sprechen.

  • Sie können Computernetzwerke überspringen, da sie ziemlich umfangreich sind und sich nicht viele Unternehmen darauf konzentrieren (ganz nach Ihrer Wahl). Die Schüler konzentrieren sich im Allgemeinen auf OS & DBMS. Wenn ihnen eine Frage zu CN gestellt wird, geben sie im Allgemeinen an, dass sie OS & DBMS gründlich studiert haben und in der Lage sind, Fragen von ihnen zu beantworten, und wenn der Job erfordert, dass sie CN-Kenntnisse haben dann können sie es studieren. [Ich habe gesehen, dass dieses Argument gut funktioniert, da sich Unternehmen selten darauf konzentrieren]. Denken Sie daran, arbeiten Sie klug nicht schwer.

Ressourcen:

  1. Für OS
  • Kursnotizen, UIC
  • Folgen Sie dem Buch Operating System Concepts von Silberschatz, Galvin, Gagne
  1. Für DBMS
  • Kursfolien
  • Folgen Sie dem Buch Database System Concepts von Silberschatz, Korth, Sudarshan

Behandeln Sie diese Themen im letzten Monat, bevor Ihre Vermittlungssaison beginnt. Die Schüler verwenden selten Bücher, um diese Fächer zu studieren, da sie riesig sind. Stattdessen können Sie die oben angegebenen Links verwenden und sie funktionieren einwandfrei.

4) Sprachspezifische Fragen: -

Hierbei handelt es sich um Fragen aus der Sprache, in der Sie am häufigsten codieren.

Für Leute, die in C ++ programmieren, müssen Sie Folgendes abdecken:

  • C
  • C ++
  • Laden Sie 3-4 dieser Apps aus dem Play Store herunter und lernen Sie.

Für Leute, die in Java codieren, müssen Sie Folgendes abdecken:

  • Java
  • Ihr müsst genau wissen, wie JVM funktioniert, also lest diesen Link gründlich. Untersuchen Sie auch, warum es plattformunabhängig ist, wie Quellcode in Bytecode und dann in Maschinencode konvertiert wird usw.
  • Laden Sie 3-4 dieser Apps aus dem Play Store herunter und lernen Sie.

Ich würde jedem raten, eine Art Handzettel für diese Themen vorzubereiten, da sie sehr volatil sind und alle 2-3 Wochen überarbeitet werden müssen.
 
Sie können aufgefordert werden, eine Frage objektorientiert zu codieren. Ich wurde gebeten, das MarsRover-Problem in einem Interview zu codieren.

  • Problemstellung und Lösung des MarsRover-Problems in C ++
  • Problemstellung und Lösung des MarsRover-Problems in Java

Einer meiner Freunde wurde gebeten, Malloc und free in c / c ++ zu implementieren (Wenn Sie nicht wissen, wie malloc und free intern funktionieren, können Sie dies nur schwer beantworten).

Behandeln Sie dieses Thema eine oder zwei Wochen vor Beginn Ihrer Praktikumsperiode. Es nützt nicht viel, es vorher zu tun.

5) Systemdesign / Offene Probleme: -

Offene Probleme sind solche, auf die es keine konkrete Antwort gibt. Meistens werden solche Probleme vom Befragten und dem Interviewer gemeinsam gelöst. Was meine ich damit Der Kandidat schlägt einen Ansatz vor, wie er dazu gekommen ist, und der Interviewer macht auf mögliche Lücken und Optimierungen im Ansatz des Kandidaten aufmerksam. Anschließend versucht der Kandidat, diese Vorschläge einzubeziehen, um eine bessere Lösung zu erzielen. Die Lösung solcher Probleme ist ein iterativer Prozess, und Klarheit in Ihren Gedanken ist ein Muss. Die Fähigkeit, Ihre Gedanken zu artikulieren, ist unerlässlich, um diese Runde zu beenden. Die Probleme beim Systemdesign sind ähnlich und es ist schwierig, sie voneinander zu unterscheiden, mit Ausnahme der Tatsache, dass Sie bei der Designfrage von einem einfachen System ausgehen und langsam ein Upgrade durchführen müssen, um ein skalierbares System zu entwickeln.

Solche Probleme müssen geübt werden, da sie normalerweise während der gesamten Dauer eines Interviews auftreten. Einige der Designfragen, die mir in Interviews gestellt wurden:

  • Entwerfen Sie einen URL-Shortener.
  • Entwerfen Sie ein Aufzugssystem.
  • Design Minesweeper Spiel.
  • Entwerfen Sie einen Texteditor wie einen Notizblock.
  • Entwerfen Sie ein Managementsystem für Parkplätze.
  • Entwerfen Sie ein Chatbot-System, das Anfragen von Benutzern entgegennimmt und sie an die betroffene Abteilung weiterleitet, die ihre Anfragen beantworten kann.

Es gibt eine Reihe von Ressourcen, um zu lernen, wie man Entwurfsfragen löst:

  • System Design Repo auf Github
  • Üben Sie das Systemdesign auf InterviewBit
  • Eingestellt in Tech's System Design Tutorial
  • Grokking the System Design Interview Kurs über pädagogische

Denken Sie an ein paar Punkte:

  1. Sammeln Sie Anforderungen (welche Funktionen wünscht sich der Interviewer in seinem System).
  2. Beginnen Sie mit einem High-Level-Design oder einem Klassendesign. (Definieren Sie alle Klassen, die Ihr System haben wird).
  3. Entwerfen Sie anschließend die ausgewählten Komponenten im Detail.
  4. Ermitteln Sie die Engpässe und versuchen Sie, sie zu beheben.
  5. Verwenden Sie so viele Blockdiagramme und Flussdiagramme wie möglich, um Ihren Ansatz darzustellen. Dies hilft Ihnen nicht nur, klar zu denken, sondern ermöglicht es dem Interviewer, Sie besser zu verstehen.
LRU-Cache-Implementierung und Erklärung der internen Arbeitsweise einer HashMap werden häufig gefragt. Tun Sie diese beiden Fragen gründlich.

6) Rätsel: -

In Interviews werden häufig ein oder zwei Rätsel gestellt, um Ihre logischen Denkfähigkeiten zu beurteilen. Nun besteht eine hohe Wahrscheinlichkeit, dass man ein neues Rätsel in einem Interview aufgrund von Druck nicht beantworten kann. Der Zweck des Fragens von Rätseln ist es jedoch zu überprüfen, wie der Kandidat das Problem denkt / initiiert / versucht, es zu lösen. Es ist nicht wichtig, immer die exakte / richtige Antwort zu geben, aber ein kohärenter Denkprozess ist ein Muss.

Eine Sache, die mir aufgefallen ist, ist, dass die meisten Unternehmen Rätsel aus einem gemeinsamen Pool stellen. Wenn Sie diese Rätsel abdecken, können Sie die meisten der Rätsel knacken, die auf Sie geworfen werden.

  • GeeksforGeeks - Abschnitt "Puzzles" (C / C ++ - Puzzles werden nicht behandelt.) [Führen Sie jedes einzelne Puzzle von GeeksforGeeks aus.]
  • Interaktive Mathematik Verschiedenes und Rätsel

Behandeln Sie dieses Thema eine oder zwei Wochen vor Beginn Ihrer Praktikumsperiode. Es nützt nicht viel, es vorher zu tun.

7) MCQs basierend auf Programmierung / Akademiker: -

Neben dem Programmabschnitt während der 1. Runde gibt es manchmal auch einen Abschnitt, der auf MCQs für Programmierer / Akademiker basiert.

Für programmierbasierte MCQs:

Suchen Sie die Ausgabe, suchen Sie den Fehler im Code-Snippet, suchen Sie die Ausführungsreihenfolge usw. finden Sie in diesem Abschnitt. In den meisten Fällen ist das Code-Snippet in C-Sprache. Unabhängig davon, in welcher Sprache Sie programmieren, müssen Sie ein wenig C beherrschen, um diesen Abschnitt richtig zu machen.

Folgen Sie diesem Buch Testen Sie Ihre C-Kenntnisse von Yashwant Kanetkar

Für akademische MCQs:

Berechnen Sie die durchschnittliche Bearbeitungszeit, konvertieren Sie Postfix in Infix-Ausdruck, suchen Sie den neuen Heap nach dem Einfügen eines Elements usw. finden Sie in diesem Abschnitt.

Üben Sie das Lösen solcher Fragen in der EduThrill-App

Beginnen Sie mit diesem Buch im letzten Monat, bevor Ihre Vermittlungssaison beginnt. Etwa 200 bis 300 Fragen, die gleichmäßig aus allen Kapiteln beantwortet wurden, sollten ausreichen.

Tipp: MCQs haben zwar eine geringere Gewichtung (wie aus den oben gezeigten Screenshots hervorgeht), sie können jedoch ein Spielwechsler sein, wenn die meisten Leute die gleiche Anzahl von Codierungsproblemen lösen oder wenn Sie nicht alle Testfälle bestehen können.

8) Eignung / logisches Denken / Dateninterpretation: -

Zusätzlich zum Programmabschnitt während der 1. Runde kann es in einigen Fällen auch einen Eignungsabschnitt geben. Um Eignungsfragen zu üben, gehen Sie zu indiabix. Machen Sie einige Fragen aller Art. Geben Sie auch ein paar zeitgesteuerte Tests, um herauszufinden, wie viel Zeit Sie für die Lösung benötigen, z. B. 10 oder 20 Fragen. Versuchen Sie, dies zu reduzieren. Je weniger Zeit Sie für die Beantwortung von Eignungsfragen benötigen, desto mehr Zeit können Sie dem Programmierbereich widmen.

Behandeln Sie dieses Thema eine oder zwei Wochen vor Beginn Ihrer Praktikumsperiode.

Tipps und wichtige Hinweise: -

  1. Halten Sie eine anständige CGPA aufrecht, die es Ihnen ermöglicht, für jedes Unternehmen zu sitzen, das Ihren Campus besucht. Versuchen Sie im Idealfall, den Wert über 7,5 / 10 oder 75% zu halten (unabhängig von den Kriterien, denen Ihr College folgt). Wenn Sie jedoch einen Master anstreben, versuchen Sie, ihn über 8,0 / 10 oder 80% zu halten.
  2. Klären Sie die gesamte Frage, bevor Sie mit der Lösung beginnen, falls Sie irgendwelche Zweifel haben. Wenn Sie 10 bis 15 Minuten für die Lösung eines Problems aufwenden und erst dann feststellen, dass Sie alles falsch verstanden haben, kann dies einen schlechten Geschmack im Mund des Interviewers hinterlassen. Manchmal gibt der Interviewer wissentlich eine vage Beschreibung des Problems, um zu sehen, wie Sie die Dinge klären und was Ihrer Meinung nach alles wichtig ist, um dieses Problem zu lösen.
  3. Der Interviewer ist kein Dummkopf, also versuche nicht, ein Schlauer zu sein. - Versuche nicht, eine falsche Antwort zu geben und entkomme. Wenn Sie keine Antwort kennen, teilen Sie ihnen entweder mit, dass Sie sie nicht kennen, oder versuchen Sie, sie logisch zu erraten, und erwähnen Sie ausdrücklich, dass es sich um eine Vermutung handelt. Interviewer fragen nur, was sie wissen und viel erfahrener sind als Sie.
  4. Interviewer sind nicht deine Feinde, sie sind nicht hier, um dich abzulehnen. - Die einzige Tatsache, dass Sie in diesem Raum sitzen, impliziert, dass sie Studenten einstellen möchten. Sie müssen nur nachweisen, dass Sie über die erforderlichen Kenntnisse und Fähigkeiten verfügen, um ausgewählt zu werden.
  5. Springen Sie niemals direkt auf die beste / effizienteste Lösung für ein Problem. - Geben Sie zunächst eine weniger effiziente Lösung an und arbeiten Sie sich nach und nach vor, um eine effizientere zu präsentieren. Es gibt Ihnen etwas, auf das Sie zurückgreifen können, falls Sie keine bessere Lösung finden können.
  6. Zögern Sie nie, laut zu denken und eine Teillösung zu geben. - Es ist wichtig, dass die Interviewer einen Einblick in Ihren Denkprozess erhalten. Lautes Denken kann daher manchmal sehr hilfreich sein, insbesondere wenn Sie nicht in der Lage sind, eine konkrete Lösung zu finden. Es ermöglicht ihnen, Vermutungen fallen zu lassen, und es ist auch besser, zumindest eine Teillösung anzugeben, als ein Problem überhaupt nicht lösen zu können.
  7. Wenn Sie eine Lösung für das Problem des Interviewers vorgeschlagen haben und sich in einem Dilemma befinden, ob es zufriedenstellend ist oder nicht, fragen Sie ihn auf subtile Weise, ob dies gut genug erscheint. Es wird für Sie nicht unangenehm sein und gleichzeitig können Sie Ratschläge oder Anregungen von der Seite des Interviewers erhalten.
  8. Codieren Sie Ihre Lösung bei der Vorbereitung von Algorithmen und Datenstrukturen von Zeit zu Zeit auf Papier. Während eines Interviews müssen Sie mit Stift und Papier codieren. Es ist eine gute Idee, sich daran zu gewöhnen. Ich habe Leute gesehen, die wegen mangelnder Übung Kauderwelsch auf Papier geschrieben haben. Eine sauber codierte Lösung ist immer ein Pluspunkt.
  9. Versuchen Sie bei der Vorbereitung von Algorithmen und Datenstrukturen, ähnliche Muster / Ansätze bei Problemen zu finden und merken Sie sich diese, um den Aufwand zu verringern. Dieser Punkt ist etwas schwer zu verstehen. Lassen Sie mich ihn Ihnen anhand eines Beispiels erläutern. Beim Lösen von Fragen auf der Basis von Arrays stoßen Sie häufig auf Probleme, die mithilfe des Meet-in-Middle-Algorithmus gelöst werden können. Niemand hat mir das beigebracht, aber ich musste es herausfinden, indem ich auf mehrere Probleme stieß.
  10. Beginnen Sie mit dem Studium der Interviewerfahrungen auf GeeksforGeeks, wenn sich die Placement-Saison nähert (ungefähr 2 Monate vor Beginn). Versuchen Sie sich im Interview vorzustellen, wie Sie diese Probleme angehen würden. Lassen Sie sich nicht entmutigen, wenn Sie ein Problem nicht lösen können - denken Sie daran, dass Sie in einem echten Interview vom Interviewer Hinweise auf schwierige Fragen erhalten.
  11. Während der Vorbereitung von JEE sagte einer meiner Lehrer etwas, das ich nie vergessen konnte, und ich neige immer dazu, es zu befolgen: „Eine Frage nicht lösen zu können, ist kein Problem. Die Lösung zu betrachten und nicht in der Lage zu sein, sie in der Zukunft zu lösen, ist “. Sei es Competitive Programming oder DS & Algo, wenn Sie nicht in der Lage sind, ein Problem zu lösen, Zeit damit zu verbringen, zu versuchen, es zu lösen und dann seine Lösung zu betrachten und zu verstehen, was, wie und warum es so gemacht wurde. Ihr Ziel sollte es sein, ein ähnliches Problem beim nächsten Mal zu lösen.
  12. Seien Sie gründlich mit Ihrem Lebenslauf. - Studieren Sie die Projekte, die Sie getan haben. Denken Sie an jede mögliche Frage, die sich daraus ergeben könnte. Zum Beispiel: In einem meiner Projekte hatte ich die Serialisierung verwendet und wurde gefragt, wie diese mit Java implementiert wird. - Ist es eine Klasse oder eine Schnittstelle. Er fuhr fort, um zu fragen, welche Art von Schnittstelle ... ..Eine Marker-Schnittstelle. Mir wurden dann Fragen zur Markerschnittstelle gestellt. Kurz gesagt, wenn Sie ein Projekt gemacht haben, erwarten sie, dass Sie damit gründlich umgehen. Überarbeiten Sie auch alle Kurse, die Sie in Ihrem Lebenslauf erwähnt haben.
  13. Fälschen Sie niemals Ihren Lebenslauf. - Ich habe viel zu viele Studenten gesehen, die erfundene Sachen geschrieben haben, die sie eigentlich nie gemacht haben, und die vom Interviewer erwischt wurden, weil sie keine Fragen beantworten konnten. Schreiben Sie also nur Projekte, die Sie wirklich gemacht haben und Fähigkeiten, die Sie dabei erworben haben. (Wenn Sie noch keine Projekte durchgeführt haben, ist jetzt möglicherweise ein guter Zeitpunkt, einige zu erstellen.)
  14. Verwenden Sie LaTeX, um Ihren Lebenslauf anstelle des normalen alten MS Word zu erstellen. - Ihr Lebenslauf ist Ihr erster Eindruck im Unternehmen. Sie möchten ernst genommen werden und Zeit und Mühe aufwenden, um den perfekten Lebenslauf zu erstellen.
  15. Stellen Sie immer bedeutungsvolle Fragen, wenn Sie diese Worte hören: „Haben Sie Fragen an uns?“ - Nichts kann schlimmer sein, als zu zeigen, dass Sie kein Interesse daran haben, etwas über das Unternehmen zu wissen, für das Sie ein Vorstellungsgespräch führen. Einige aussagekräftige Fragen, die Sie stellen können, lauten: „Welche Teams haben Sie in Ihrer technischen Abteilung? Welchen Teams werden die Erstsemester zugewiesen? Warum sollte ich mich Ihnen anschließen, anstatt irgendeiner anderen Firma da draußen?“ Die Liste ist endlos.
  16. Es mag trivial klingen, aber machen Sie Ihre Grundlagen richtig. - Sie sollten in der Lage sein, die zeitliche Komplexität usw. schnell und genau zu berechnen. Der Lösung, die Sie in Interviews codieren, muss immer die zeitliche Komplexität folgen. In einem meiner Interviews wurde ich gefragt: Sie haben einen Algorithmus mit T.C. von O (n) und einem anderen Algorithmus, der T.C. von O (n²). Wird der erste Algorithmus immer eine bessere Leistung zeigen. Hinweis: Big-Ο wird als enge Obergrenze für das Wachstum des Algorithmus verwendet (Big-O gibt den schlechtesten Fall an). Die Antwort auf diese Frage bestätigt meinen Standpunkt.
  17. Denken Sie daran, es ist ein Marathon, kein Sprint. - Lerne mit ein bisschen Stress umzugehen. Jeder auf dieser Welt arbeitet nach seiner eigenen Zeitzone. Menschen in Ihrer Umgebung scheinen Ihnen möglicherweise voraus zu sein. Das ist alles in Ordnung. Konzentrieren Sie sich auf Ihre Bemühungen - seien Sie wettbewerbsfähig - aber verlieren Sie nicht den Seelenfrieden beim Wettbewerb.
Best Practices in einem Coding-Interview !!

Es gibt verschiedene Themen wie - Wie bereite ich mich auf die HR-Runde vor? und Wie bewerbe ich mich außerhalb des Campus? was ich weiter unten behandeln werde.

Wie bereite ich mich auf die HR-Runde vor?

Obwohl die meisten Leute die HR-Runde nur leicht nehmen [es soll eine leichte Diskussionsrunde sein :)], habe ich gesehen, dass einige Leute nur wegen ihrer schlechten Leistung in dieser Runde wiederholt abgelehnt wurden. Deshalb werde ich ein paar Tipps geben, wie man die HR-Runde wie ein Kinderspiel meistert.

  1. Warum wir? - Informieren Sie sich vorher über das Unternehmen, für das Sie ein Vorstellungsgespräch führen. Obwohl es auch in einer technischen Runde angehoben werden kann, wird es im Allgemeinen für die HR-Runde aufbewahrt. Machen Sie sich mit ihren zukünftigen Geschäftsplänen in Ihrem Land, ihren Expansionsplänen, den jüngsten Auszeichnungen usw. vertraut. Ich erinnere mich, als ich bei OYO eingestellt wurde, stellte mir der Interviewer die gleiche Frage und erzählte ihm alle Auszeichnungen, die sie letztes Jahr erhielten (Linkedin's Top Startup Award 2018 …… ..etc) und der Interviewer hatte ein Lächeln auf den Lippen. Solche Dinge ändern vielleicht nichts am Spiel, können aber insgesamt einen Unterschied machen.
  2. Wenn das Interview weiß, dass Sie bereits ein Stellenangebot haben und gefragt werden, warum Sie nicht zu diesem Unternehmen gehören, sprechen Sie niemals über frühere Arbeitgeber und sprechen Sie die früheren Unternehmen nicht schlecht an. Dies führt zu einer sofortigen Ablehnung, egal wie gut Sie in Ihren technischen Runden abgeschnitten haben. Sagen Sie ihnen stattdessen, wie ihr Unternehmen bessere Wachstumschancen bietet, wie viel Sie über ihr Arbeitsumfeld gehört haben. Ich erinnere mich, dass Zomato das erste Unternehmen in der DTU war, das auch für Praktikanten offen war. Und alle, die es in die HR-Runde geschafft haben, wurden gefragt: "Warum interessieren Sie sich für Zomato und nicht für das Unternehmen, in dem Sie sich gerade befinden?". Einige der Studenten haben genau den gleichen Fehler gemacht, als sie das vorherige Unternehmen schlecht geredet haben, und sie sind nie in die endgültige Auswahl gekommen.
  3. Bereiten Sie vorab eine Antwort auf einige häufig gestellte Fragen vor:
  • Erzähl mir von dir - Diese Antwort sollte immer in Form einer Geschichte über dich sein. Ihre Vergangenheit, wie Sie in die Programmierung eingeführt wurden und wie Sie entschieden haben, dass Sie der Softwareentwicklung nachgehen möchten. Diese Antwort sollte auch Ihre Erfolge in diese Richtung und letztendlich das beinhalten, was Sie in Zukunft tun / erreichen wollen. Diese Frage ist nicht auf die HR-Runde beschränkt, sondern dient als Eisbrecher und kann in jeder Runde gestellt werden.
  • Was sind deine Stärken? - Diese Antwort sollte kein Klischee sein. I ̶a̶m̶ ̶h̶a̶r̶w̶o̶r̶k̶i̶n̶g̶, ̶ ̶i̶n̶t̶e̶l̶l̶i̶g̶e̶n̶t̶, ̶ ̶s̶t̶u̶d̶i̶o̶u̶s̶t̶e̶t̶t̶c̶. Und diese Stärken sollten mit den Bedürfnissen des Unternehmens in Einklang stehen. Zum Beispiel: „Sie sind sehr pünktlich (Sie werden die Fristen einhalten), sehr sympathisch und lustig (Sie sind ein Teamplayer), Sie haben einen nie endenden Wissens- und Lernhunger (der Erwerb neuer Fähigkeiten wird kein Problem sein) Sie)". Betrachten Sie Ihre Stärken und finden Sie sie heraus.
  • Was sind Ihre Schwächen? - Erwähnen Sie zunächst ausdrücklich, dass Sie keine solche Schwäche haben, die die Arbeit behindern könnte. Auch diese Antwort sollte kein Klischee sein. I̶ ̶s̶t̶r̶i̶v̶e̶ ̶f̶o̶r̶ ̶p̶e̶r̶f̶e̶c̶t̶i̶o̶n̶. Zum Beispiel: „Ich bin nicht manipulativ. Auch wenn manche dies für eine positive Eigenschaft halten, sehe ich es als meine Schwäche an. “ Oder: „Ich pflegte die Angewohnheit, Menschen zu helfen, ohne dass sie danach fragten. Dies führte dazu, dass ich manchmal meine Zeit nicht wertschätzte. Aber ich lerne, diese Grenze zu ziehen ... yadda ... yadda ... yadda ".
  • Wo siehst du dich 5–10 Jahre später? - Dies muss jeder von Ihnen selbst entscheiden. Ein Beispiel wäre dennoch: „Ich möchte eine Quelle der Inspiration sein, die Leute sollten zu mir aufschauen und sagen, ich bin der Beste in dem, was ich tue. Ich möchte sehen, dass ich jeden Tag etwas Neues lerne. Ich möchte das Leben der Menschen direkt beeinflussen. “
  • Erzähl mir von deiner Familie. - Erzählen Sie zunächst von ihren jeweiligen Berufen. Wie stolz du bist, wie du versuchst, gute Eigenschaften von ihnen zu emulieren usw.

- Immer wenn Sie einem Interviewer die Hand geben, sollte der Händedruck fest sein.

Wie bewerbe ich mich für ein Praktikum außerhalb des Campus?

  • Pflegen Sie ein einwandfreies LinkedIn-Profil. Ein paar Google-Suchanfragen helfen Ihnen dabei, das perfekte Profil zu erstellen. Ihr LinkedIn-Profil ist ein Spiegel all Ihrer Erfolge, Ihrer Ausbildung, Ihrer Interessen, Bestrebungen usw.
  • Sie sollten einen beispielhaften Lebenslauf haben. Denken Sie daran, dass sich möglicherweise 100s oder 1000s für dieselbe Position bewerben. Ein perfekter Lebenslauf ist also ein Muss. Dies ist der Grund, warum ich darauf hingewiesen habe, LaTeX zu verwenden, um Ihren Lebenslauf zu erstellen. Es gibt Ihnen den zusätzlichen Vorteil gegenüber anderen.
  1. Erstellen Sie eine Liste aller Unternehmen, mit denen Sie Kontakt aufnehmen möchten. Zögern Sie nicht, sich auch für die sogenannten „Big Guns“ zu bewerben. Die Wahrscheinlichkeit, eine Antwort zu erhalten, ist aufgrund verschiedener Faktoren gering (Unternehmen erhalten 100er oder 1000er oder solche Anträge). Stellen Sie daher sicher, dass Sie sich in vielen Unternehmen bewerben, um zumindest einige Antworten zu erhalten.
  2. Finden Sie das Profil der jeweiligen Personalvermittler über LinkedIn. Das ist einfach. LinkedIn ermöglicht Ihnen die Suche nach Beruf und Firma. Verwende das. Alternativ können Sie eine Google-Suche durchführen.
  3. Finden Sie die Karriere-E-Mail-Adresse dieser Unternehmen. Dies ist auf ihrer Website verfügbar.
  4. Lassen Sie Ihren Lebenslauf sowohl an den Personalvermittler als auch an die Karriere-E-Mail senden. Schreiben Sie eine höfliche und einfache Nachricht, in der Sie Ihre Absicht zum Ausdruck bringen.
  5. Alternativ können Sie sich über die LinkedIn-Stellensuche bewerben.
  6. Erstellen Sie Ihr AngelList-Profil und bewerben Sie sich bei geeigneten Startups.
  7. Kontaktieren Sie Ihre College-Senioren auf LinkedIn und fragen Sie, ob sie bereit sind, Sie an ihre Firma zu verweisen.
  8. Einige Unternehmen veranstalten häufig Codierungswettbewerbe für HackerRank, HackerEarth, InterviewBit usw., und wenn Sie sehr gute Ergebnisse erzielen, haben Sie möglicherweise die Möglichkeit, Interviews zu geben.
Viel Spaß beim Interviewen !!

Wenn Ihnen dieser Artikel gefallen hat, klicken Sie auf das -Zeichen und folgen Sie mir für weitere Artikel. Wenn Sie Feedback haben, wenden Sie sich an mich auf Twitter, LinkedIn oder Quora.