Resources I found helpful
Here is a collection of great resources that helped me to learn.
Web development
Things that helped me to learn web development:
-
Learn to Code HTML & CSS by Shay Howe. This is a guide for HTML and CSS aimed at beginners and building from the ground up. I also like that it lets you apply the learned concepts along the way and lets you build a small website. I believe that following a proper course will leave you with a more comprehensive view of web development compared to learning by picking up bits and pieces along the way. For example, do you know what specificity in CSS is and how it's determined? If not, give this a try.
-
Learn to Code Advanced HTML & CSS by Shay Howe. This is the continuation of the first guide. While the technologies it discusses are somewhat dated by today's standards (e.g., jQuery, Haml, and Sass), the fundamentals still hold and it introduces many relevant aspects such as responsive web design, accessibility, and more complex CSS selectors and animations.
System design
Things that helped me to better understand large software systems:
- Designing Data-Intensive Applications by Martin Kleppmann. While I haven't finished it yet, it discussed important aspects of operating large, distributed software systems and gave great explanations of the techniques utilized behind our favorite web services and data management systems.
Interview preparation
Things that helped me pass my technical interviews:
-
LeetCode. This list wouldn't be complete without mentioning LeetCode. However, I do not think it is necessary to mindlessly grind LeetCode problems. I, myself, have only solved 36 LeetCode problems in total.
-
NeetCode Roadmap. The NeetCode roadmap gives a nice overview over the different kinds of problems present on LeetCode. When you do need to practice your LeetCode problem solving skills, I recommend following this roadmap. Again, you do not have to solve every problem. Just make sure that you can solve problems from each category.
-
Advent of Code. Each year, Eric Wastl publishes a collection of 48 problems in form of an advent calendar. While they train similar skills as LeetCode, they are accompanied by a lovely story and generally less formal and more fun. Taking part at the Advent of Code is also a great way to get familiar with a new programming language.