Made a sharp delineation between required and optional study topics.
Moved these down to the optional area: - endianness - garbage collection - unicode - emacs & vim - unix command line tools - design patterns Removed a video and link from prerequisite knowledge that were overly complicated for the topic.
This commit is contained in:
parent
55080ee861
commit
e931d9d9eb
248
README.md
248
README.md
@ -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,6 +1245,10 @@ Take coding challenges every day, as many as you can.
|
||||
|
||||
- [MIT Interview Materials](https://courses.csail.mit.edu/iap/interview/materials.php)
|
||||
|
||||
- [Exercises for getting better at a given language](http://exercism.io/languages)
|
||||
|
||||
Programming:
|
||||
|
||||
- [LeetCode](https://leetcode.com/)
|
||||
- [TopCoder](https://www.topcoder.com/)
|
||||
- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
||||
@ -1330,7 +1258,7 @@ Take coding challenges every day, as many as you can.
|
||||
- [InterviewCake](https://www.interviewcake.com/)
|
||||
- [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
||||
|
||||
- [Exercises for getting better at a given language](http://exercism.io/languages)
|
||||
- [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.
|
||||
|
||||
---
|
||||
|
||||
## Additional Learnings (not required)
|
||||
*****************************************************************************************************
|
||||
*****************************************************************************************************
|
||||
|
||||
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.
|
||||
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 Learning
|
||||
|
||||
- ### 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
|
||||
## Computer Science Courses
|
||||
|
||||
http://www.gainlo.co/ - Mock interviewers from big companies
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## 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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user