We’re endlessly interested in how software engineers learn new skills, earn desired promotions, and move into leadership roles throughout their careers.
In our Professional Development courses, we focus on 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 to 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
If you’re interested in how these knowledge areas align with our upcoming Professional Development courses, learn more here!