|
@@ -38,7 +38,6 @@ sometimes word-for-word in Google's coaching notes.
|
|
|
- [Queue](#queue)
|
|
|
- [Hash table](#hash-table)
|
|
|
- [More Knowledge](#more-knowledge)
|
|
|
- - [Endianness](#endianness)
|
|
|
- [Binary search](#binary-search)
|
|
|
- [Bitwise operations](#bitwise-operations)
|
|
|
- [Trees](#trees)
|
|
@@ -55,16 +54,11 @@ sometimes word-for-word in Google's coaching notes.
|
|
|
- [Dynamic Programming](#dynamic-programming)
|
|
|
- [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
|
|
|
- [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
|
|
|
- - [Garbage collection](#garbage-collection)
|
|
|
- [Caches](#caches)
|
|
|
- [Processes and Threads](#processes-and-threads)
|
|
|
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling)
|
|
|
- [Papers](#papers)
|
|
|
- - [Unicode](#unicode)
|
|
|
- - [Emacs and vi(m)](#emacs-and-vim)
|
|
|
- - [Unix command line tools](#unix-command-line-tools)
|
|
|
- [Testing](#testing)
|
|
|
- - [Design patterns](#design-patterns)
|
|
|
- [Scheduling](#scheduling)
|
|
|
- [Implement system routines](#implement-system-routines)
|
|
|
- [String searching & manipulations](#string-searching--manipulations)
|
|
@@ -75,7 +69,15 @@ sometimes word-for-word in Google's coaching notes.
|
|
|
- [Your Resume](#your-resume)
|
|
|
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
|
|
|
- [Have questions for the interviewer](#have-questions-for-the-interviewer)
|
|
|
-- [Additional Learnings (not required)](#additional-learnings-not-required)
|
|
|
+- [Once You've Got The Job](#once-youve-got-the-job)
|
|
|
+
|
|
|
+---------------- Everything below this point is optional ----------------
|
|
|
+
|
|
|
+- [Additional Learning](#additional-learning)
|
|
|
+ - [Unicode](#unicode)
|
|
|
+ - [Endianness](#endianness)
|
|
|
+ - [Emacs and vi(m)](#emacs-and-vim)
|
|
|
+ - [Unix command line tools](#unix-command-line-tools)
|
|
|
- [Information theory](#information-theory)
|
|
|
- [Parity & Hamming Code](#parity--hamming-code)
|
|
|
- [Entropy](#entropy)
|
|
@@ -83,7 +85,9 @@ sometimes word-for-word in Google's coaching notes.
|
|
|
- [Compression](#compression)
|
|
|
- [Networking](#networking)
|
|
|
- [Computer Security](#computer-security)
|
|
|
+ - [Garbage collection](#garbage-collection)
|
|
|
- [Parallel Programming](#parallel-programming)
|
|
|
+ - [Design patterns](#design-patterns)
|
|
|
- [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
|
|
|
- [Fast Fourier Transform](#fast-fourier-transform)
|
|
|
- [Bloom Filter](#bloom-filter)
|
|
@@ -101,7 +105,7 @@ sometimes word-for-word in Google's coaching notes.
|
|
|
- [Go](#go)
|
|
|
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
|
|
- [Video Series](#video-series)
|
|
|
-- [Once You've Got The Job](#once-youve-got-the-job)
|
|
|
+- [Computer Science Courses](#computer-science-courses)
|
|
|
|
|
|
---
|
|
|
|
|
@@ -322,18 +326,16 @@ Write code on a whiteboard, not a computer. Test with some sample inputs. Then t
|
|
|
- [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
|
|
|
- [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
|
|
|
|
|
|
-- [ ] **How floating point numbers are stored:**
|
|
|
- - [ ] simple 8-bit: [Fractions in binary? (video)](http://math.stackexchange.com/questions/301435/fractions-in-binary)
|
|
|
- - [ ] 32 bit: [Representation of Floating Point Numbers - 1 (video)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
|
|
- - [ ] 64 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
|
|
-
|
|
|
-- [ ] **Computer Arch Intro:**
|
|
|
- (first video only - interesting but not required) [Introduction and Basics - Carnegie Mellon - Computer Architecture](https://www.youtube.com/watch?v=zLP_X4wyHbY&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq&index=1)
|
|
|
-
|
|
|
- [ ] **Compilers**
|
|
|
+ - [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
|
|
|
+ - [ ] [Hardvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
|
|
|
- [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
|
|
- [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
|
|
|
|
|
+- [ ] **How floating point numbers are stored:**
|
|
|
+ - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
|
|
+ - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
|
|
+
|
|
|
## Algorithmic complexity / Big-O / Asymptotic analysis
|
|
|
- nothing to implement
|
|
|
- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
|
|
@@ -484,13 +486,6 @@ Write code on a whiteboard, not a computer. Test with some sample inputs. Then t
|
|
|
|
|
|
## More Knowledge
|
|
|
|
|
|
-- ### Endianness
|
|
|
- - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
|
|
|
- - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
|
|
|
- - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
|
|
|
- - Very technical talk for kernel devs. Don't worry if most is over your head.
|
|
|
- - The first half is enough.
|
|
|
-
|
|
|
- ### Binary search
|
|
|
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
|
|
|
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
|
|
@@ -910,13 +905,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
|
|
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
|
|
|
- Pages 1048 - 1140 in CLRS if you have it.
|
|
|
|
|
|
-- ### Garbage collection
|
|
|
- - [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
|
|
- - [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
|
|
- - [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
|
|
- - [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
|
|
- - [ ] [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
|
|
|
-
|
|
|
- ### Caches
|
|
|
- [ ] LRU cache:
|
|
|
- [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
|
|
@@ -1131,44 +1119,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
|
|
- [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
|
|
|
- [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
|
|
|
|
|
|
-- ### Unicode
|
|
|
- - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
|
|
|
- - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
|
|
|
-
|
|
|
-- ### Emacs and vi(m)
|
|
|
- - suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor
|
|
|
- - vi(m):
|
|
|
- - [video](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
|
|
|
- - set of 4 (vidoes):
|
|
|
- - [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
|
|
|
- - [The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
|
|
|
- - [The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
|
|
|
- - [The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
|
|
|
- - [Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
|
|
|
- - emacs:
|
|
|
- - [Basics Emacs Tutorial](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
|
|
|
- - set of 3 (videos):
|
|
|
- - [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
|
|
|
- - [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
|
|
|
- - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
|
|
|
- - [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
|
|
|
- - [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
|
|
|
- - [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk)
|
|
|
-
|
|
|
-- ### Unix command line tools
|
|
|
- - suggested by Yegge, from an old Amazon recruiting post. I filled in the list below from good tools.
|
|
|
- - [ ] bash
|
|
|
- - [ ] cat
|
|
|
- - [ ] grep
|
|
|
- - [ ] sed
|
|
|
- - [ ] awk
|
|
|
- - [ ] curl or wget
|
|
|
- - [ ] sort
|
|
|
- - [ ] tr
|
|
|
- - [ ] uniq
|
|
|
- - [ ] [strace](https://en.wikipedia.org/wiki/Strace)
|
|
|
- - [ ] [tcpdump](https://danielmiessler.com/study/tcpdump/)
|
|
|
-
|
|
|
- ### Testing
|
|
|
- To cover:
|
|
|
- how unit testing works
|
|
@@ -1188,34 +1138,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
|
|
- [ ] [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
|
|
|
- [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
|
|
|
|
|
|
-- ### Design patterns
|
|
|
- - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
|
- - [ ] Learn these patterns:
|
|
|
- - [ ] strategy
|
|
|
- - [ ] singleton
|
|
|
- - [ ] adapter
|
|
|
- - [ ] prototype
|
|
|
- - [ ] decorator
|
|
|
- - [ ] visitor
|
|
|
- - [ ] factory, abstract factory
|
|
|
- - [ ] facade
|
|
|
- - [ ] observer
|
|
|
- - [ ] proxy
|
|
|
- - [ ] delegate
|
|
|
- - [ ] command
|
|
|
- - [ ] state
|
|
|
- - [ ] memento
|
|
|
- - [ ] iterator
|
|
|
- - [ ] composite
|
|
|
- - [ ] flyweight
|
|
|
- - [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
|
|
|
- - [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
- - [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
- - [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
|
|
|
- - [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
|
|
- - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
|
|
- - [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
|
|
-
|
|
|
- ### Scheduling
|
|
|
- in an OS, how it works
|
|
|
- can be gleaned from Operating System videos
|
|
@@ -1313,6 +1235,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
|
|
Once you've learned your brains out, put those brains to work.
|
|
|
Take coding challenges every day, as many as you can.
|
|
|
|
|
|
+Programming Question Prep:
|
|
|
+
|
|
|
- [ ] [Great intro (copied from System Design section): Algorithm design:](http://www.hiredintech.com/algorithm-design/)
|
|
|
- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
|
|
|
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
|
|
@@ -1321,16 +1245,20 @@ Take coding challenges every day, as many as you can.
|
|
|
|
|
|
- [MIT Interview Materials](https://courses.csail.mit.edu/iap/interview/materials.php)
|
|
|
|
|
|
- - [LeetCode](https://leetcode.com/)
|
|
|
- - [TopCoder](https://www.topcoder.com/)
|
|
|
- - [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
|
|
- - [Codewars](http://www.codewars.com)
|
|
|
- - [HackerRank](https://www.hackerrank.com/)
|
|
|
- - [Codility](https://codility.com/programmers/)
|
|
|
- - [InterviewCake](https://www.interviewcake.com/)
|
|
|
- - [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
|
|
+- [Exercises for getting better at a given language](http://exercism.io/languages)
|
|
|
+
|
|
|
+Programming:
|
|
|
|
|
|
- - [Exercises for getting better at a given language](http://exercism.io/languages)
|
|
|
+- [LeetCode](https://leetcode.com/)
|
|
|
+- [TopCoder](https://www.topcoder.com/)
|
|
|
+- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
|
|
+- [Codewars](http://www.codewars.com)
|
|
|
+- [HackerRank](https://www.hackerrank.com/)
|
|
|
+- [Codility](https://codility.com/programmers/)
|
|
|
+- [InterviewCake](https://www.interviewcake.com/)
|
|
|
+- [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
|
|
+
|
|
|
+- [Mock interviewers from big companies](http://www.gainlo.co/)
|
|
|
|
|
|
## Once you're closer to the interview
|
|
|
|
|
@@ -1378,14 +1306,76 @@ Take coding challenges every day, as many as you can.
|
|
|
- What do you like about it?
|
|
|
- What is the work life like?
|
|
|
|
|
|
+## Once You've Got The Job
|
|
|
+
|
|
|
+Congratulations!
|
|
|
+
|
|
|
+- [10 things I wish I knew on my first day at Google](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
|
|
|
+
|
|
|
+Keep learning.
|
|
|
+
|
|
|
+You're never really done.
|
|
|
+
|
|
|
---
|
|
|
|
|
|
+ *****************************************************************************************************
|
|
|
+ *****************************************************************************************************
|
|
|
+
|
|
|
+ Everything below this point is optional. These are my recommendations, not Google's.
|
|
|
+ By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
|
|
|
+ any software engineering job.
|
|
|
+
|
|
|
+ *****************************************************************************************************
|
|
|
+ *****************************************************************************************************
|
|
|
+
|
|
|
---
|
|
|
|
|
|
-## Additional Learnings (not required)
|
|
|
+## Additional Learning
|
|
|
|
|
|
- Everything below is my recommendation, not Google's, and you may not have enough time to
|
|
|
- learn, watch or read them all. That's ok. I may not either.
|
|
|
+- ### Unicode
|
|
|
+ - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
|
|
|
+ - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
|
|
|
+
|
|
|
+- ### Endianness
|
|
|
+ - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
|
|
|
+ - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
|
|
|
+ - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
|
|
|
+ - Very technical talk for kernel devs. Don't worry if most is over your head.
|
|
|
+ - The first half is enough.
|
|
|
+
|
|
|
+- ### Emacs and vi(m)
|
|
|
+ - suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor
|
|
|
+ - vi(m):
|
|
|
+ - [video](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
|
|
|
+ - set of 4 (vidoes):
|
|
|
+ - [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
|
|
|
+ - [The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
|
|
|
+ - [The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
|
|
|
+ - [The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
|
|
|
+ - [Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
|
|
|
+ - emacs:
|
|
|
+ - [Basics Emacs Tutorial](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
|
|
|
+ - set of 3 (videos):
|
|
|
+ - [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
|
|
|
+ - [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
|
|
|
+ - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
|
|
|
+ - [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
|
|
|
+ - [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
|
|
|
+ - [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk)
|
|
|
+
|
|
|
+- ### Unix command line tools
|
|
|
+ - suggested by Yegge, from an old Amazon recruiting post. I filled in the list below from good tools.
|
|
|
+ - [ ] bash
|
|
|
+ - [ ] cat
|
|
|
+ - [ ] grep
|
|
|
+ - [ ] sed
|
|
|
+ - [ ] awk
|
|
|
+ - [ ] curl or wget
|
|
|
+ - [ ] sort
|
|
|
+ - [ ] tr
|
|
|
+ - [ ] uniq
|
|
|
+ - [ ] [strace](https://en.wikipedia.org/wiki/Strace)
|
|
|
+ - [ ] [tcpdump](https://danielmiessler.com/study/tcpdump/)
|
|
|
|
|
|
- ### Information theory (videos)
|
|
|
- [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
|
|
@@ -1454,10 +1444,45 @@ Take coding challenges every day, as many as you can.
|
|
|
- [ ] [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
|
|
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
|
|
|
|
|
+- ### Garbage collection
|
|
|
+ - [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
|
|
+ - [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
|
|
+ - [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
|
|
+ - [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
|
|
+ - [ ] [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
|
|
|
+
|
|
|
- ### Parallel Programming
|
|
|
- [ ] [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
|
|
|
- [ ] [Efficient Python for High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
|
|
|
|
|
|
+- ### Design patterns
|
|
|
+ - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
|
+ - [ ] Learn these patterns:
|
|
|
+ - [ ] strategy
|
|
|
+ - [ ] singleton
|
|
|
+ - [ ] adapter
|
|
|
+ - [ ] prototype
|
|
|
+ - [ ] decorator
|
|
|
+ - [ ] visitor
|
|
|
+ - [ ] factory, abstract factory
|
|
|
+ - [ ] facade
|
|
|
+ - [ ] observer
|
|
|
+ - [ ] proxy
|
|
|
+ - [ ] delegate
|
|
|
+ - [ ] command
|
|
|
+ - [ ] state
|
|
|
+ - [ ] memento
|
|
|
+ - [ ] iterator
|
|
|
+ - [ ] composite
|
|
|
+ - [ ] flyweight
|
|
|
+ - [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
|
|
|
+ - [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
+ - [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
+ - [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
|
|
|
+ - [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
|
|
+ - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
|
|
+ - [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
|
|
+
|
|
|
- ### Messaging, Serialization, and Queueing Systems
|
|
|
- [ ] [Thrift](https://thrift.apache.org/)
|
|
|
- [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
|
|
@@ -1641,6 +1666,8 @@ Sit back and enjoy. "netflix and skill" :P
|
|
|
|
|
|
- [ ] [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
|
|
|
|
|
+- [ ] [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
|
|
|
+
|
|
|
- [ ] [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
|
|
|
|
|
|
- [ ] [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
|
|
@@ -1667,21 +1694,8 @@ Sit back and enjoy. "netflix and skill" :P
|
|
|
|
|
|
- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
|
|
|
|
|
|
-## Maybe
|
|
|
-
|
|
|
-http://www.gainlo.co/ - Mock interviewers from big companies
|
|
|
+## Computer Science Courses
|
|
|
|
|
|
----
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-## Once You've Got The Job
|
|
|
-
|
|
|
-Congratulations!
|
|
|
-
|
|
|
-- [10 things I wish I knew on my first day at Google](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
|
|
|
-
|
|
|
-Keep learning.
|
|
|
-
|
|
|
-You're never really done.
|
|
|
+- [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)
|
|
|
|