A list of useful resources for developers as they progress through their careers.
Each topic has resource(s) listed as per what is the best-though opinionated-reading materials, related course, or corresponding video for each topic.
The resources listed here are language and technology-agnostic, except the database topic, where PostgreSQL is listed. Refer to https://roadmap.sh/ for a roadmap specific to your career path.
For more computer science topics, or if you are starting as a computer science graduate, I highly recommend referring to https://teachyourselfcs.com/. They have structured the content well, and most of the references are inspired by that site.
Note: As with any software-related topic, some references may be debatable. This is to provide a good reference for use, may not be the best reference out there.
If you are starting as a developer, it's very important to have a strong base to start your career. The resources listed below will help you develop that base.
Study all the topics below, in roughly the presented order, using either the suggested reading, video or course materials.
Once you have developed a strong base, it's time to develop your expertise. As a senior developer, you should be versed in topics under the Developer
section and below resources will help you with developing the expertise.
As a senior developer, you are required to coach and train mentors. Soft skills also play a vital role for a senior developer, a corresponding reference is added for it.
Topic | Reading | Video | Course |
---|---|---|---|
Operating system | Advanced Programming in the UNIX Environment Linux Kernel Development Or Linux System Programming |
||
Networking | All the three books of TCP/IP Illustrated | ||
Design patterns | Design Patterns https://gameprogrammingpatterns.com/ |
||
Software concepts and design | Software as service Engineering Software as a Service Object thinking Object Thinking Book Or Elegant Objects - Volume 1 & Elegant Objects - Volume 2 SOLID Principles https://en.wikipedia.org/wiki/SOLID 12 factor App https://12factor.net/ |
||
Database | PostgreSQL Tutorial PostgreSQL PL/pgSQL |
Coursera SQL and PostgreSQL: The Complete Developer's Guide | |
Soft skills | Team Geek: A Software Developer's Guide to Working Well with Others |
As you gain more experience, having system design and system architecture knowledge becomes valuable. It's good to understand the basics of it so that you can find out common system patterns and design the system better.
Topic | Readings | Video | Course |
---|---|---|---|
Software Architecture | Follow tech blogs like Amazon, Cloudflare, Netflix Thoughtworks Enterprise architecture patterns: Maybe a little outdated but still a good reference |
Software Architecture Fundamentals | |
Operating System | Systems Performance: Enterprise and the Cloud | ||
Scalability | Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems | ||
Microservices | Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith Building Microservices: Designing Fine-Grained Systems |
||
Soft skills | Peopleware, HBR Must Reads |
You are always welcome to contribute, please refer Contributor's Guide for the guidelines on how to contribute.