I'm a junior dev with ~2 years experience. Currently I'm primarily doing back-end web work on a massive spaghetti codebase written in Node, Python, and PHP.
My current reading list:
* Code Complete: A Practical Handbook of Software Construction - Steve McConnell
* Agile Software Development - Robert C. Martin
Upcoming reading list:
* Node.js Design Patterns - Mario Casciaro
* The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt
* Clean Code - Robert C. Martin
* Refactoring: Improving the Design of Existing Code - Martin Fowler
And maybe Working Effectively with Legacy Code by Michael Feathers.
If anyone has any comments or other suggested readings I'd love to hear them!
Interesting to note the famous "hello, world" program that beginners are taught was popularized by the example used in The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.
It's also very short so it should still be easy to get through even if it isn't especially gripping.
It gets a lot of positive reviews because it is from a highly credible source who actually did what he was talking about not just wrote about it and because it describes conditions that still obtain; more than forty years later we still haven't learnt all the lessons.
Mythical Man Month and Peopleware both deal with managing work: estimating work, problem of quality, feature creep.
Agile offers methods to address these same problems, just a little more evolved, imho.
* working in sprints forces estimations over smaller pieces of work (aim small, miss small).
* sprints, in my experience, challenge feature creep. teams are much more aware of time and challenge anyone making changes to scope. nothing is free.
* teams are responsible for dev and testing (e2e); no throwing crap over the wall.
These books deal with more than these topics.
btw, the quiet room for 2-3 people as described in Peopleware is being thrown out where i work. walls are being torn down to build team collaboration spaces. times have changed.
My current reading list:
* Code Complete: A Practical Handbook of Software Construction - Steve McConnell
* Agile Software Development - Robert C. Martin
Upcoming reading list:
* Node.js Design Patterns - Mario Casciaro
* The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt
* Clean Code - Robert C. Martin
* Refactoring: Improving the Design of Existing Code - Martin Fowler
And maybe Working Effectively with Legacy Code by Michael Feathers.
If anyone has any comments or other suggested readings I'd love to hear them!