The anti-Cracking the Interview1 Curriculum
Here are some of the coding exercises I've given for the off chance these might be useful to more people. Feel free to do whatever you'd like with these: copy them, modify them, solve them, etc.
Stars are difficulty ratings, out of 5.
- BELP (BASIC Yelp) review site (limited Gems) ⭐⭐⭐☆☆ (SQL, webdev)
- BELP (contd.) User Metrics ⭐⭐⭐☆☆ (SQL, webdev)
- Bank Concurrency ⭐⭐⭐☆☆ (SQL, distributed systems, Ruby)
- OBench ⭐⭐⭐☆☆ (Ruby, concurrency)
- So Long, Frank ⭐⭐⭐⭐☆ (Ruby, webdev)
- Continuing To Deconstruct The Framework ⭐⭐⭐⭐☆ (Ruby, webdev)
- Cookie Dough (Raw Cookies) ⭐⭐⭐☆☆ (Ruby, webdev)
- BATCHAT ⭐⭐⭐☆☆ (Ruby, sockets)
- My Little HTTP Server ⭐⭐⭐☆☆ (Ruby, webdev, sockets)
- Rack From Scratch ⭐⭐⭐⭐☆ (Ruby, webdev, sockets)
- Putting The Framework Back Together (Ruby DSLs) ⭐⭐⭐⭐☆ (Ruby)
- What Is A Compiler? ⭐☆☆☆☆ (Computer Science)
- Other Databases Part 1: MongoDB ⭐⭐⭐⭐☆ (MongoDB, databases)
- Other Databases Part 2: Flip A Switch ⭐⭐⭐☆☆ (databases, design patterns)
- Other Databases Part 3: Testing ⭐⭐⭐⭐☆ (Ruby, unit testing)
- Hello..., World? ⭐⭐☆☆☆ (JS, webdev, authentication)
- My Language Is Faster Than Your Language ⭐⭐⭐☆☆ (Node.js, Go, Concurrency)
- Functional Programming Is For Ner^H^H^HAcademi^W^WFun? ⭐☆☆☆☆ (Haskell)
- Turning an old laptop into The Cloud ⭐☆☆☆☆ (Linux, command line)
- Advent of Code: Christmas themed coding puzzles, start out easy, and get progressively harder. Teaches you algorithms without boring you. Doing these makes you feel like you can code anything. Suitable for beginners and experts. 2019 is best year.
- Zachtronics: Beautiful, highly produced coding video games. Great, gentle introduction to Assembly language, though the instruction sets are all for ficticious computers. Suitable for experts and beginners.
- Exapunks: 90s cyberpunk theme
- Shenzhen I/O: Simulates having a job at a Chinese hardware company
- Tsoding: Low-level, functional programming, programming for fun. Free.
- Destroy All Software: Computation, webdev, Ruby, Unix, Vim, testing and TDD. Costs money.
- Clean Coder: Fundamentals: Actually useful resource for learning "clean coding" techniques. There's real code examples and refactoring screencasts, which makes this concrete and not hand-wavy. I recommend the first 7 episodes. Costs money.
1 I don't suggest people to grind away at this book, even though it's really popular. Is it a software engineering Bible? No, it's a test prep book. However, your potential employer cares most about whether or not you can make their website/app. In the end, preparing for the actual job would be far more useful to both you and the employer. Code, build stuff, have fun, do Sumcademy.