Ich Plane, Meinen Job Zu Kündigen Und Ein Jahr Lang Vollzeit Algorithmen Zu Studieren. Mein Ziel Ist Es, Meine Algorithmenfähigkeiten Für Die Vorbereitung Eines Google-Interviews Zu Trainieren. Kann Mir Jemand Einen Rat Geben?

Ich Plane, Meinen Job Zu Kündigen Und Ein Jahr Lang Vollzeit Algorithmen Zu Studieren. Mein Ziel Ist Es, Meine Algorithmenfähigkeiten Für Die Vorbereitung Eines Google-Interviews Zu Trainieren. Kann Mir Jemand Einen Rat Geben?

February 4, 2023, by Reiner Heun, Arbeit

Herzlichen Glückwunsch zu diesem Gedanken. Es ist eine mutige Idee, und ich empfehle Ihnen, dass Sie überhaupt darüber nachdenken; nicht viele können. Jeder will gewinnen, aber nur wenige wollen sich auf den Sieg vorbereiten.

Als Gründer von Coding Interview Bootcamp, Interview Kickstart, spreche ich regelmäßig mit Ingenieuren, die danach streben, in einige der besten Unternehmen im Silicon Valley einzusteigen. [Übrigens, wir melden uns für kommende Chargen an!]

Die meisten von ihnen haben nicht den Luxus, ein Jahr Vollzeit damit zu verbringen. Aber wenn doch, ist das großartig und ich würde dir Folgendes raten:

Kurzfassung: Meiner Meinung nach ist Aufhören oder nicht eine zweitrangige Entscheidung. Ihre primäre Entscheidung

Weiterlesen

Herzlichen Glückwunsch zu diesem Gedanken. Es ist eine mutige Idee, und ich empfehle Ihnen, dass Sie überhaupt darüber nachdenken; nicht viele können. Jeder will gewinnen, aber nur wenige wollen sich auf den Sieg vorbereiten.

Als Gründer von Coding Interview Bootcamp, Interview Kickstart, spreche ich regelmäßig mit Ingenieuren, die danach streben, in einige der besten Unternehmen im Silicon Valley einzusteigen. [Übrigens, wir melden uns für kommende Chargen an!]

Die meisten von ihnen haben nicht den Luxus, ein Jahr Vollzeit damit zu verbringen. Aber wenn doch, ist das großartig und ich würde dir Folgendes raten:

Kurzfassung: Meiner Meinung nach ist Aufhören oder nicht eine zweitrangige Entscheidung. Ihre primäre Entscheidung besteht darin, herauszufinden, was Sie mit Ihrer Zeit tun werden, um Ihre Chancen zu maximieren, Ihr Ziel zu erreichen.

Längere Version:

(Die längere Version wurde länger als ich dachte, ich würde sie ursprünglich schreiben, aber ich hoffe, dass jeder, der sie liest, sie nützlich finden wird):

1. Machen Sie einen akribischen Plan

Der Plan, den Sie gegeben haben, ist ein guter Anfang, aber gehen Sie damit tiefer. Was Sie brauchen, ist ein Plan für bewusstes Üben. Lesen Sie alles über Deliberate Practice und ich wette, es wird Sie ansprechen. Sie möchten genau wissen, wie viele Tage Sie freinehmen, wie viele Stunden Sie pro Tag dafür investieren können, wie viele Themen Sie studieren und wie vielen Projekten oder Interviewproblemen (ungefähr) Sie sich stellen möchten, pro Thema. Und Sie möchten diese Vorbereitung gesprächsorientiert durchführen.

Cracking the Coding Interview (Buch von 2011) ist ein sehr gutes Buch, aber je nachdem, welches Team Sie bei Google interviewen, finden Sie es möglicherweise nicht angemessen. Ich würde sagen, gehen Sie auch das Buch Elements of Programming Interviews durch. Zwischen diesen beiden Büchern und Glassdoor (Firma) sollten Sie genug Futter haben. Sie können auch Introduction to Algorithms (Buch von Cormen, Leiserson, Rivest und Stein) verwenden, aber ich würde vorschlagen, dass Sie es eher als Referenz verwenden und nicht als Buch zur Vorbereitung auf ein Vorstellungsgespräch, da Sie sonst möglicherweise überwältigt werden.

Auf der gleichen Linie bin ich mir nicht sicher, ob eine Algorithms-Klasse sehr nützlich sein wird. Es kann als Disziplinierungssystem nützlich sein (siehe meinen nächsten Punkt), aber nicht besonders nützlich für die Vorbereitung auf ein Vorstellungsgespräch. Sie behandeln wahrscheinlich eine Menge Material, das für Interviews nicht nützlich ist, und geben nicht genug Übung für Material, das es tatsächlich ist.

Achten Sie beim Üben von Problemen darauf, Code zu schreiben. Codieren Sie jedes Problem, das Sie studieren, und messen Sie selbst. Wenn Sie bei irgendeinem Problem 45 Minuten überschreiten, tun Sie es immer wieder, bis Sie es auf 45 Minuten reduziert haben. Verwenden Sie TopCoder oder Codeforces oder HackerRank oder LeetCode oder ähnliches, um etwas wettbewerbsfähiger zu üben.

Viele Leute werden Ihnen raten, auf einem Whiteboard zu üben, anstatt zu programmieren. Während dies definitiv hilft und erforderlich ist, ist es der erste Schritt, sich mit dem Schreiben von Algorithmen und Datenstrukturen in tatsächlichem Code vertraut zu machen. Sobald Sie damit vertraut sind, ist es nicht mehr viel Arbeit, diese Fähigkeit auf ein Whiteboard zu übertragen.

Der Punkt ist, wenn Sie einen detaillierten Plan erstellen, wissen Sie, was als nächstes zu tun ist, und dies wird in Ihre Go/No-Go-Entscheidung einfließen.

2. Es darf kein ganzes Jahr dauern

Wie werden Sie wissen, dass Sie bereit sind?

A. Gehen Sie zuerst in die Breite, statt in die Tiefe.

Entscheiden Sie sich mit Hilfe von jemandem für eine Reihe von Themen, die Sie üben müssen (Arrays, Strings, Rekursion, DP, Bäume usw.). Unterteilen Sie dann Ihren Plan in immer tiefere Phasen mit anspruchsvolleren Interviewproblemen. Erledigen Sie in jeder Phase ein gewisses Maß an allen Themen, anstatt eine Phase einem ganzen Thema zu widmen. Nochmals - vergessen Sie nicht, Code für jedes Problem zu schreiben, das Sie studieren.

B. Messen Sie sich nach jeder Phase mit Scheininterviews.

Wenn Sie sehen, dass Sie sich in Scheininterviews verbessern, werden Sie selbstbewusster. Sie werden wissen, wann Sie aufhören müssen, und es ist sehr wahrscheinlich, dass Sie kein ganzes Jahr brauchen. Stellen Sie sicher, dass Sie die richtigen Interviewer für Scheininterviews finden. Gute Gesprächsführung ist eine Funktion der Erfahrung in der Gesprächsführung.

Um die Auszeit im Lebenslauf zu rechtfertigen, würde ich dir raten, nebenher freiberuflich zu arbeiten.

3. Erstellen Sie ein Unterstützungssystem

Wenn Sie so menschlich sind wie die meisten Menschen, dann wird es schwierig sein, Fokus, Disziplin und Motivation während Ihres freien Jahres (oder sogar Teilzeit) aufrechtzuerhalten. Sehr schwer.

Um dieses Adrenalin hochzuhalten, sollten Sie das bestmögliche Unterstützungssystem mit einigen oder allen der folgenden Punkte erstellen

A. Erstellen Sie ein Studiensystem: Niemand sagt es besser als Scott Adams. Lesen Sie dies geduldig: Scott Adams Blog (Goals vs Systems).

B. Finden Sie einen Kumpel: Lernen Sie zusammen, überprüfen Sie die Arbeit des anderen, ziehen Sie sich gegenseitig zur Rechenschaft. Sie beide werden das Wissen länger behalten und gemeinsam stärker werden. Wusstest du, dass CS Colleges in Israel gemeinsame Hausaufgaben geben? Es funktioniert oft wie Magie.

C. Finden Sie einen Mentor (oder Mentoren): Jemand, der bereits bei Google arbeitet und Ihnen vertraut, was Sie sind, wäre großartig. Bitten Sie um Anleitung, Scheininterviews, Bewertungen, Code-Reviews usw.

D. Messen Sie sich ständig: Stellen Sie sicher, dass Sie sich nach jedem erreichten Teilziel mit einem objektiven Maßstab bewerten/beurteilen/messen, z. B. mit einem Scheininterview oder einer Coding-Challenge.

e. Krankenversicherung: Wenn Sie einen Partner haben, der Sie unterstützen kann, ist das großartig. Wenn nicht, müssen Sie die Obamacare-Prämie als Teil Ihrer Ersparnisse berücksichtigen (natürlich nur in den USA).

4. Arbeite für Meisterschaft, nicht um Google zu knacken

So widersprüchlich es klingen mag, aber das Wichtigste ist: Zielen Sie nicht auf Google. Ziel ist es, Interviewalgorithmen/Datenstrukturen zu beherrschen. Google wird folgen. Wenn Sie die Meisterschaft erlangen, werden auch viele andere Unternehmen folgen.

Working for Mastery vs Performance ist eine bekannte Theorie in der Bildung. Wenn Sie auf Meisterschaft vs. Leistung abzielen, werden Sie in der Lage sein, sich aus schlechten Momenten zu befreien. Und nur dann werden viele Dinge, die ich zuvor vorgeschlagen habe, einfach, nämlich. Code schreiben, sich selbst messen, Scheininterviews führen, mit Gleichgesinnten sprechen usw.

5. Die Beherrschung von Vorstellungsgesprächen führt zu überlegener Leistung bei der Arbeit.

Das ist schwer zu glauben, aber ich habe das in mehreren Fällen gesehen. Interviewfragen sind ein großartiges Mittel, um zu lernen. Sie sind die schnellsten Verbindungsstücke zwischen Theorie und Praxis. Sie setzen dich echten Herausforderungen aus und regen zum Nachdenken an.

Am wichtigsten ist, dass Sie sich keine Sorgen darüber machen müssen, wieder einen Job zu finden, was Sie bei Ihrer aktuellen Arbeit sicherer machen wird.

6. Messen Sie sich kontinuierlich

Ich wiederhole und hebe diesen Punkt hervor, weil ich das nicht genug betonen kann. Scheininterviews sind eine großartige Möglichkeit, Ihren Fortschritt zu messen. Machen Sie eine Runde, bevor Sie beginnen, und machen Sie eine Runde nach jeder Phase Ihrer Vorbereitung. Auf diese Weise wissen Sie, wann Sie anhalten und wie weit Sie gehen müssen. Es gibt keinen anderen Weg, wie Sie es objektiv wissen werden.

7. Machen Sie sich klar, wofür Sie optimieren

Machen Sie sich bewusst, dass dies ein teures Experiment für Sie ist. Sie geben nicht nur Ihre Ersparnisse eines Jahres aus, Sie verlieren auch das Gehalt für ein Jahr. Wenn Sie im Silicon Valley sind, kann das leicht 200.000 US-Dollar nach Steuern bedeuten. Selbst wenn Sie Google beitreten, dauert es etwa 2 Jahre, bis Sie diese Art von Geld zurückerhalten.

Natürlich ist Geld nicht das Einzige, was zählt, und es gibt viele andere immaterielle Vorteile, wenn man in die besten Unternehmen einsteigt. Ich meine nur, dass Sie insgesamt ein gutes Gespür dafür haben und sich damit wohl fühlen sollten.

Zuletzt:

Ihre letzte Zeile ist genau richtig und zeigt Ihre großartige Einstellung. Interviews sind weder exakte Wissenschaft noch standardisierte Tests, und es steckt mehr dahinter als Algorithmen und Datenstrukturen. Sie können also nach all dem immer noch bei Google-Interviews scheitern. Aber wenn Sie mit dem Ziel gearbeitet haben, Meisterschaft zu erlangen, und jeden wachen Moment dieses Jahres mit einem Plan genutzt haben, werden Sie immer noch die Nase vorn haben, und Ihre Vorbereitung wird Ihnen auf ungesehene Weise zugute kommen. Es muss.

Wenn Sie sich entscheiden, den Sprung zu wagen, dann wünsche ich Ihnen das Allerbeste. Wie sie sagen: Möge die Macht mit dir sein!

(Bereiten Sie sich darauf vor, ein Zitat zu gewinnen, das von einem ähnlichen Zitat von Paul Bryant übernommen wurde)

(Bearbeiten 1: Einige wichtige Bedenken wurden hervorgehoben, die begraben wurden

Bearbeiten 2: Kurzversion hinzugefügt und das Zitat zugeschrieben)

Das ist total toll. Ich bin sicher, Sie haben sich vorgestellt, wie sehr sich Ihr Berufsleben verändern wird, wenn Ihr Kopf voll ist mit so vielen weiteren Tools und tiefgreifenden Informatikkonzepten, und um ehrlich zu sein, beneide ich diese Gelegenheit.

Einige – viele – der Antworten, die Sie auf diese Frage erhalten, sagen Ihnen, dass Sie es nicht tun sollen, oder dass eine Lücke in Ihrem Lebenslauf nicht gut aussieht, bla bla. Schau, es ist dein Leben. Mach was immer dich glücklich macht. Und übrigens, ich war ein Personalchef – ich habe ein Buch über die Einstellung von Softwareingenieuren geschrieben – und ich würde es absolut verdammt großartig finden, dass jemand ein solides Jahr brauchte, um zu studieren und sich zu verfeinern

Weiterlesen

Das ist total toll. Ich bin sicher, Sie haben sich vorgestellt, wie sehr sich Ihr Berufsleben verändern wird, wenn Ihr Kopf voll ist mit so vielen weiteren Tools und tiefgreifenden Informatikkonzepten, und um ehrlich zu sein, beneide ich diese Gelegenheit.

Einige – viele – der Antworten, die Sie auf diese Frage erhalten, sagen Ihnen, dass Sie es nicht tun sollen, oder dass eine Lücke in Ihrem Lebenslauf nicht gut aussieht, bla bla. Schau, es ist dein Leben. Mach was immer dich glücklich macht. Und übrigens, ich war Personalchef – ich habe ein Buch über die Einstellung von Softwareentwicklern geschrieben – und ich würde es total verdammt toll finden, wenn jemand ein solides Jahr brauchte, um sein Handwerk zu studieren und zu verfeinern. Ich will etwas davon! Intensive Leidenschaft, viel praktisch angewandtes Informatikwissen – das ist wunderbar.

Sie haben ziemlich offen um Rat gefragt, also werde ich ein paar Ratschläge verteilen, die Sie nützlich oder zumindest interessant finden könnten. Vertrauen Sie mir natürlich nicht einfach. Und in Anbetracht der Menge an Aufmerksamkeit, die Ihre Frage auf sich gezogen hat, würde ich sagen, dass Sie auf eine Menge zurückgreifen können. Fantastisch.

Um einen Punkt zu wiederholen, der von anderen angesprochen wurde: Machen Sie sich keine Sorgen, einen Job bei Google oder anderswo zu bekommen. Hast du SpaceBalls, The Movie gesehen? Es gibt eine Szene, in der die schurkischen Helden vor einem Schlachtschiff des bösen Imperiums fliehen. In Panik, um sie zu fangen, versetzt der Bösewicht Dark Helmet das Schiff in „Ludicrous Speed“. Sie springen voraus und sind plötzlich so schnell, dass ein Held bemerkt: "Sie müssen uns um anderthalb Wochen überholt haben!" Das wird sein, dass Sie über ein Google-Interview hinausschießen. Fantastisch.

Ein Jahr ist eine lange Zeit. Nicht im Nachhinein, aber sicherlich in der Perspektive und im Leben. Das gibt Ihnen die Zeit, die Sie brauchen, um viel und vielleicht noch wichtiger in die Tiefe zu lernen. Wenn Sie bereits ein praktizierender professioneller Programmierer sind, dann haben Sie in 1 (einem) Monat alles, was Sie allgemein wissen müssen, um so ziemlich überall ein Programmierinterview zu bestehen. Toll! Jetzt hast du weitere 11 Monate.

/reibt sich die Hände

Das ist der gute Teil. Sie können etwas tun, was nur sehr wenige Menschen tun können: verbringen Sie bis zu den ganzen Tag und werden Sie jeden Tag besser und tiefer in genau das, was Sie wollen. Und worin solltest du besser und tiefer werden wollen? Das müssen Sie ziemlich schnell herausfinden, aber nicht unbedingt sofort. Nehmen Sie sich ein paar bis ein paar Wochen Zeit, nachdem Sie begonnen haben, wirklich ein Gefühl dafür zu bekommen, was interessant ist, welche Teile von CS Sie interessieren und was Ihre Aufmerksamkeit braucht und verdient.

Die Renditen, die Sie bei der Softwareentwicklung aus der Sicht "Code schnell auf dem Board" erzielen, beginnen an diesem Punkt zu sinken, aber das ist in Ordnung. Sie gewinnen viel mehr - die Fähigkeit, wirklich schwierige Probleme zu lösen. Die Art, die nicht gelöst wird, indem man Reddis, Hadoop, Docker, Ruby on Rails und ein paar andere Wörter in eine Tüte wirft und sie zusammenschüttelt, bis ein halbherziges Produkt entsteht. Das ist Amateurzeug, das dich ehrlich langweilen wird. Sehen Sie, eines der Dinge, die Sie früh und von Zeit zu Zeit tun werden, ist, einige der Big Papers zu studieren. Stöbern Sie ein wenig herum - was hat die letzten 10-15 Jahre im CS-Bereich beeinflusst? Denken Sie an Dinge wie das Google Big Table-Papier. Sie werden solche Systeme nicht verwenden ... Sie werden sie von Grund auf entwerfen.

Oder vielleicht wird Ihnen ein anderes, innovativeres Stück auffallen, wie das Knowledge Vault-Papier von 2014. Das ist maschinelle Intelligenz, Baby. Und Sie können in den 11 Monaten, die Ihnen noch bleiben, eine ganze Menge Maschinenintelligenz schlürfen und verdauen. Sie können die Prinzipien, die Mathematik lernen und viele verschiedene Aspekte und bewegliche Teile dieses Bereichs für sich selbst codieren. von Entscheidungsbäumen über unterstützende Vektormaschinen bis hin zu multidimensionalen Bag of Phrases und darüber hinaus. Sie können neuronale Netze gefährden.

Ich schlage dringend vor, dass Sie tatsächlich viel Energie für maschinelle Intelligenz aufwenden. Es ist eine enorm hohe Nachfrage und die Eintrittsbarren sind ziemlich hoch - Sie müssen sich wirklich anschnallen und tief gehen, bevor Sie anfangen können, praktisches Fachwissen für mehr als ein oder zwei Spezialwerkzeuge zu beanspruchen. Das macht Sie sehr beschäftigungsfähig - ein erklärter Grund für die Reise - und Sie haben eine echte Chance, an der Spitze der Informatik und des Ingenieurwesens mitzuwirken.

In einem Jahr schafft man nicht alles. Aber man kann verdammt weit kommen. Weit darüber hinaus, wo Sie sein müssen, um hervorragend beschäftigungsfähig zu sein, darüber hinaus, wo Sie sein müssen, um ein technisches Vorstellungsgespräch zu bestehen (Sie können sogar Schwierigkeiten haben, Ihre Ideen und Lösungen einzudämmen, damit Sie sie den Interviewern erklären können - stellen Sie sich das vor) und wenn Sie dies schätzen Als Übung zur Persönlichkeitsentwicklung werden Sie Ihren eigenen Maßstäben gerecht. Und darüber hinaus.

Fantastisch.

Related Post: