diff --git a/README.md b/README.md index 5a9e2d7..4765f3d 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ - [Russian](translations/README-ru.md) - [German](translations/README-de.md) - [Bahasa Indonesia](translations/README-id.md) +- [ខ្មែរ - Khmer](translations/README-kh.md) @@ -407,13 +408,13 @@ It's user-friendly, available on all platforms and has a cloud sync system. It c My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)). -### 3. Start doing coding interview questions while you're learning data structures and algorithms +### 3. Start doing coding interview questions while you're learning data structures and algorithms -You need to apply what you're learning to solving problems, or you'll forget. I made this mistake. Once you've learned a topic, -and feel comfortable with it, like linked lists, open one of the coding interview books and do a couple of questions regarding -linked lists. Then move on to the next learning topic. Then later, go back and do another linked list problem, -or recursion problem, or whatever. But keep doing problems while you're learning. You're not being hired for knowledge, -but how you apply the knowledge. There are several books and sites I recommend. +You need to apply what you're learning to solving problems, or you'll forget. I made this mistake. Once you've learned a topic, +and feel comfortable with it, like linked lists, open one of the coding interview books and do a couple of questions regarding +linked lists. Then move on to the next learning topic. Then later, go back and do another linked list problem, +or recursion problem, or whatever. But keep doing problems while you're learning. You're not being hired for knowledge, +but how you apply the knowledge. There are several books and sites I recommend. See here for more: [Coding Question Practice](#coding-question-practice). ### 4. Review, review, review @@ -424,7 +425,7 @@ Take a break from programming problems for a half hour and go through your flash ### 5. Focus -There are a lot of distractions that can take up valuable time. Focus and concentration are hard. Turn on some music +There are a lot of distractions that can take up valuable time. Focus and concentration are hard. Turn on some music without lyrics and you'll be able to focus pretty well. ## What you won't see covered @@ -643,7 +644,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/) - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html) - [ ] [Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac) - - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/) + - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/) - [ ] 2s and 1s complement - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4) - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement) @@ -1130,7 +1131,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/) - [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html) - [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk) -- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem) +- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem) - [ ] Consensus Algorithms: - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM) - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE) @@ -1262,7 +1263,7 @@ interview books, too, but I found this outstanding: No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. Instead of a whiteboard, pick up a large drawing pad from an art store. You can sit on the couch and practice. This is my "sofa whiteboard". -I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick. I use a pencil +I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick. I use a pencil and eraser. ![my sofa whiteboard](https://d3j2pkmjtin6ou.cloudfront.net/art_board_sm_2.jpg) @@ -1304,7 +1305,7 @@ Coding Interview Question Videos: Challenge sites: - [LeetCode](https://leetcode.com/) - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing - - [LeetCode solutions from FisherCoder](https://github.com/fishercoder1534/Leetcode) + - [LeetCode solutions from FisherCoder](https://github.com/fishercoder1534/Leetcode) - See Nick White Videos above for short code-throughs - [HackerRank](https://www.hackerrank.com/) - [TopCoder](https://www.topcoder.com/) @@ -1328,7 +1329,7 @@ Mock Interviews: - [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/) - I used this and it helped me relax for the phone screen and on-site interview - [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews - [Refdash: Mock interviews and expedited interviews](https://refdash.com/) - also help candidates fast track by skipping multiple interviews with tech companies -- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously. +- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously. ## Once you're closer to the interview @@ -1458,8 +1459,8 @@ You're never really done. that is just an intro. This a guidebook on program design and architecture ## Additional Learning - - I added them to help you become a well-rounded software engineer, and to be aware of certain + + I added them to help you become a well-rounded software engineer, and to be aware of certain technologies and algorithms, so you'll have a bigger toolbox. - ### Compilers @@ -1943,7 +1944,7 @@ 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) -## Algorithms implementation +## Algorithms implementation - [Multiple Algorithms implementation by Princeton University)](https://algs4.cs.princeton.edu/code)