We’re endlessly interested in how software engineers learn new skills, earn desired promotions, and move into leadership roles throughout their careers.
There are six key knowledge areas to help software engineers grow their careers. These areas (Design, Quality, Requirements, Testing, Maintenance, and Models + Methods) have been established by the excellent SWEBOK Guide, which you can download for free here.
For each knowledge area, we keep a running list of resources that can help you dig deeper, learn more, and keep growing in your craft. See some of these resources below, recommended by our instructional team.
Design:
Scalable Internet Architectures
Schlossnagle, Theo, Pearson
Distributed Systems For Practitioners
Raptis, Dimos, Leanpub
Designing Data-Intensive Applications
Kleppman, Martin, O’Reilly
Quality:
Software Metrics, A Rigorous and Practical Approach
Fenton, Norman, et.al, CRC Press
Software Assurance and Software Safety Standard
NASA
Requirements:
Mastering the Requirements Process: Getting Requirements Right
Robertson, James, Addison-Wesley
Beyond Requirements: Analysis with an Agile Mindset
McDonald, Kent, Addison-Wesley Professional
Testing:
Automated Software Testing
Jena, Ajay Kumar, et. al., Springer
Lessons Learned in Software Testing: A Context-Driven Approach
Kaner, Cem, et. al., Wiley
Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional
Black, Rex, Wiley
Maintenance:
Working Effectively with Legacy Code
Feathers, Michael, Pearson
Leading Change
Kotter, John, Harvard Business Review Press
Models & Methods:
Lean-Agile Acceptance Test-Driven-Development
Pugh, Ken, Addison-Wesley Professional
Test-Driven Development, An Empirical Evaluation of Agile Practice
Madeyski, Lech, Springer
_____
For those looking to start a new career, we offer Intermediate and Beginner Coding Bootcamps. And for those already on the job, we offer Corporate Training so employers can upskill and reskill their internal teams.