- german translation

This commit is contained in:
rene 2019-07-03 22:46:37 +02:00
parent c3ca28cd87
commit ff05386f3f

View File

@ -1,16 +1,17 @@
# Coding Interview University
> I originally created this as a short to-do list of study topics for becoming a software engineer,
> but it grew to the large list you see today. After going through this study plan, [I got hired
> as a Software Development Engineer at Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
> You probably won't have to study as much as I did. Anyway, everything you need is here.
> Ursprünglich habe ich dies als eine kurze To-Do Liste von Studienthemen angefangen um SOftware Engineer zu werden,
> aber es ist zu der riesigen Liste herangewachsen die man heute sehen kann. Nachdem ich diesen Lehrplan durchgezogen
> habe, [wurde ich als Software Entwickler bei Amazon eingestellt.](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
> Wahrscheinlich wirst du nicht so viel lernen brauchen wie ich es getan habe. Aber egal, alles was du brauchst, findest
> du hier.
>
> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
> Ich habe ungefähr 8-12 Stunden am Tag gelernt, und das für mehrere Monate. Hier ist meine Geschichte: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
> The items listed here will prepare you well for an interview at just about any software company,
> including the giants: Amazon, Facebook, Google or Microsoft.
> Die Einträge in dieser Liste werden dich gut auf ein Vorstellungsgepräch bei so gut wie jeder Software Firma vorbereiten,
> so bei den Giganten: Amazon, Facebook, Google oder Micrososft.
>
> *Best of luck to you!*
> *Viel Glück!*
<details>
<summary>Übersetzungen:</summary>
@ -69,8 +70,8 @@ Liste (Netzwerke, Sicherheit) ansehen.
- [Worum es geht](#what-is-it)
- [Warum solltest du das hier lesen?](#why-use-it)
- [Wie man dies hier benutzt](#how-to-use-it)
- [Glaub nicht, dass du nicht klug genug bist](#dont-feel-you-arent-smart-enough)
- [Über Video Resourcen](#about-video-resources)
- [Halt dich nicht für dümmer als du bist](#dont-feel-you-arent-smart-enough)
- [Über Videoquellen](#about-video-resources)
- [Ablauf von Vorstellungsgesprächen und allgemeine Vorbereitung darauf](#interview-process--general-interview-prep)
- [Wähle eine Sprache für das Vorstellungsgespräch](#pick-one-language-for-the-interview)
- [Buchliste](#book-list)
@ -136,7 +137,7 @@ Liste (Netzwerke, Sicherheit) ansehen.
---------------- Alles unter der Linie ist optional ----------------
<details>
<summary>Additional Resources</summary>
<summary>Zusätzliche Materialien</summary>
- [Zusätzliche Bücher](#additional-books)
- [Zusätzliches Wissen](#additional-learning)
@ -188,28 +189,30 @@ Liste (Netzwerke, Sicherheit) ansehen.
## Warum solltest du das hier lesen?
When I started this project, I didn't know a stack from a heap, didn't know Big-O anything, anything about trees, or how to
traverse a graph. If I had to code a sorting algorithm, I can tell ya it wouldn't have been very good.
Every data structure I've ever used was built into the language, and I didn't know how they worked
under the hood at all. I've never had to manage memory unless a process I was running would give an "out of
memory" error, and then I'd have to find a workaround. I've used a few multidimensional arrays in my life and
thousands of associative arrays, but I've never created data structures from scratch.
Als ich dieses Projekt angefangen habe, konnte ich einen Stack nicht von einem Heap unterscheiden, wusste nichts von
Groß-O, nichts über Bäume, oder wie man einen Graphen durchläuft. Wenn ich einen Sortieralgorithmuss hätte schreiben sollen,
dann wäre der nicht besonders gut geworden, so viel kann ich dir sagen. Jede Datenstruktur die jemals benutzt habe war
direkt in der Programmiersprache eingebaut, und ich hatte keine Ahnung wie sie funktioniert haben. Ich muss niemals
Speichermanagement betreiben, außer einer der Prozesse die ich ausgeführt hatte hat einen "out of memory" Fehler gehabt.
Und wenn das passiert ist, musste ich einen Umweg finden. Ich habe ein paar mehrdimensionale Arrays in meinen Leben benutzt
und ein paar tausend assoziative Arrays, aber ich habe nie selbst eine Datenstruktur von Grund auf neu geschrieben.
It's a long plan. It may take you months. If you are familiar with a lot of this already it will take you a lot less time.
Es ist ein großer Plan. Es könnte mehrere Monate dauern. Falls dir schon vieles von dem bekannt ist, wird es dich viel
weniger Zeit kosten.
## How to use it
## Wie man dies hier benutzt
<details>
<summary>How to use it</summary>
<summary>Wie man dies hier benutzt</summary>
Everything below is an outline, and you should tackle the items in order from top to bottom.
Alles hier drunter ist ein Umriss, und du solltest die Aufgaben von oben nach untern abarbeiten.
I'm using Github's special markdown flavor, including tasks lists to check progress.
Ich benutze GitHub's spezielle Version von Markdown, das beinhält Aufgabenliste um den Fortschritt zu prüfen.
**Create a new branch so you can check items like this, just put an x in the brackets: [x]**
**Erstelle einen neuen Branch. Damit du Einträge abhaken kannst, füge einfach nur ein x in eckigen Klammern ein: [x]**
Fork a branch and follow the commands below
Erstelle einen Fork dieses Projekts und gib die folgenden Kommandos ein
`git checkout -b progress`
@ -217,7 +220,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
`git fetch --all`
Mark all boxes with X after you completed your changes
Hake alle Kästchen mit x ab nachdem du die Änderungen vollzogen hast
`git add .`
@ -227,25 +230,26 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
`git push --force`
[More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
[Mehr über die Markdown Version von GitHub](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
</details>
## Don't feel you aren't smart enough
- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
## Halt dich nicht für dümmer als du bist
- Erfolgreiche Software Engineers sind klug, aber viele sind sich unsicher ob sie klug genug sind.
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
- [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY)
- [Believe you can change](http://www.aaronsw.com/weblog/dweck)
- [Think you're not smart enough to work at Google? Well, think again](https://www.youtube.com/watch?v=uPOJ1PR50ag)
## About Video Resources
## Über Videoquellen
Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.
I like using university lectures.
Auf manche Videos kann man nur zugreifen indem man sich bei einem Coursera- oder EdX-Kurs einschreibt. Das sind so
genannte MOOCS. Manchmal werden die Kurse gerade nicht angeboten und man muss ein paar Monate warten. Man hat dann
keinen Zugriff darauf.
Ich würde mich sehr freuen wenn du mir dabei hilfst kostenlose und immer verfügbare öffentliche Quellen hinzuzufügen,
wie z.B. YouTube Videos um die Online Kurse zu ergänzen.
Ich benutze gerne Vorlesungen von Hochschulen.
## Interview Process & General Interview Prep
@ -381,10 +385,10 @@ If you have a better recommendation for C++, please let me know. Looking for a c
- [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
OR:
ODER:
- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- by Goodrich, Tamassia, Goldwasser
- von Goodrich, Tamassia, Goldwasser
- used as optional text for CS intro course at UC Berkeley
- see my book report on the Python version below. This book covers the same topics.
@ -396,7 +400,7 @@ OR:
<summary>Python</summary>
- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- by Goodrich, Tamassia, Goldwasser
- von Goodrich, Tamassia, Goldwasser
- I loved this book. It covered everything and more.
- Pythonic code
- my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
@ -449,7 +453,7 @@ I keep a set of cheat sheets on ASCII, OSI stack, Big-O notations, and more. I s
Take a break from programming problems for a half hour and go through your flashcards.
### 4. Focus
### 4. Fokus
There are a lot of distractions that can take up valuable time. Focus and concentration are hard.
@ -459,7 +463,7 @@ These are prevalent technologies but not part of this study plan:
- SQL
- Javascript
- HTML, CSS, and other front-end technologies
- HTML, CSS, und andere Front-end Technologien
## The Daily Plan
@ -525,7 +529,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
- [ ] Skiena:
- [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
- [Folien](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
- [ ] [Orders of Growth (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/orders-of-growth-6PKkX)
- [ ] [Asymptotics (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/asymptotics-bXAtM)
@ -652,7 +656,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- [ ] Online Courses:
- [ ] Online Kurse:
- [ ] [Understanding Hash Functions (video)](https://archive.org/details/0102WhatYouShouldKnow/06_02-understandingHashFunctions.mp4)
- [ ] [Using Hash Tables (video)](https://archive.org/details/0102WhatYouShouldKnow/06_03-usingHashTables.mp4)
- [ ] [Supporting Hashing (video)](https://archive.org/details/0102WhatYouShouldKnow/06_04-supportingHashing.mp4)
@ -993,7 +997,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Object-Oriented Software Engineering: Software Dev Using UML and Java (21 videos):
- Can skip this if you have a great grasp of OO and OO design practices.
- [OOSE: Software Dev Using UML and Java (video)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] SOLID OOP Principles:
- [ ] SOLID OOP Prinzipien:
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
@ -1226,7 +1230,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- simplicity and robustness
- tradeoffs
- performance analysis and optimization
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] **HIER ANFANGEN**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
@ -1245,10 +1249,10 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
- [ ] Scalability:
- [ ] Skalierbarkeit:
- You don't need all of these. Just pick a few that interest you.
- [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- [ ] Short series:
- [ ] Kurzreihen:
- [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
@ -1301,7 +1305,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section.
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- Review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
- flow:
@ -1615,7 +1619,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- See more in MIT 6.050J Information and Entropy series below.
- ### Parity & Hamming Code (videos)
- ### Parität und Hamming Code (videos)
- [ ] [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
- [ ] [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
- [ ] Hamming Code:
@ -2033,7 +2037,7 @@ Sit back and enjoy. "Netflix and skill" :P
- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
- [ ] [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
- [ ] [Graph Theory von Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
</details>
@ -2042,14 +2046,14 @@ Sit back and enjoy. "Netflix and skill" :P
- [Directory of Online CS Courses](https://github.com/open-source-society/computer-science)
- [Directory of CS Courses (many with online lectures)](https://github.com/prakhar1989/awesome-courses)
## Papers
## Paper
<details>
<summary>Papers</summary>
<summary>Paper</summary>
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
- [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- [implemented in Go](https://godoc.org/github.com/thomas11/csp)
- [implementiert in Go](https://godoc.org/github.com/thomas11/csp)
- [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- replaced by Colossus in 2012
- [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
@ -2063,7 +2067,7 @@ Sit back and enjoy. "Netflix and skill" :P
- [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
- [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
- [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
- paper not available
- Paper nicht verfügbar
- [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker:
- [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
@ -2079,6 +2083,6 @@ Sit back and enjoy. "Netflix and skill" :P
</details>
## LICENSE
## Lizenz
[CC-BY-SA-4.0](./LICENSE.txt)