Back from vacations! How nice and comforting to be back into my routines once more… Going to the gym, going for a run, working on side-projects, no more dreadful airports nor train stations… (Hmm, I have to remember to write a blog post about how airports are broken from an UX approach xD).
Anyhow, I did not really find the time to be near a keyboard/computer during my vacations and much less for the beautiful art of coding but I did definitely squeeze some time for reading! Three magnificent books that I would love to recommend to you programmers of any background and condition. They are more leaning towards best practices and methodologies, so soft read that I am sure you will be able to devour in no time.
So! I was finally able to stick my nose into a book about the Software Craftsmanship movement, the extremelly valuable Apprenticeship Patterns: Guidance For The Aspiring Software Craftsman. It is pretty good indeed! This is the kind of book I would give any CS graduate right after college, or any person that wished to start a career in software development. “How can I become a great software developer?” Bang! Book in your hands, start reading xD
It is basically a very straightforward illustration of the software craftsmanship ethos through the enumeration of a series of patterns or practices that would lead any programmer through the long road from apprenticeship to master craftsman. It can get a little tiresome at times with the constant repetition of the medieval jargon, but it is very interesting overall.
Some of the practices that resonated with me the most are:
- Expand Your Bandwidth: Submerge yourself in the Software development world: read blogs, follow the software development industry, listen to software developer luminaries, sign to e-mail lists, join local user groups, do online courses, see videos and listen to podcasts. Take a feel for what’s out there.
- Practice, Practice, Practice: Code Katas!
- Breakable Toys: Build pet projects at home, work on something interesting that tests your skills
- Use The Source Luke: Read open source, learn how to write and not to write code from other developers
- Record What You Learn: Write a Journal, Blog or Wiki of what you learn.
- Share What You learn: Give back to the community. Teaching is a both a way to share and to improve your own knowledge of a topic.
- Create Feedback Loops: Establish ways to measure your performance, so you know what and how to improve
- Reading List: Maintain a reading list to track all the books you plan to read, and remember all the books that you’ve read.
- Read Constantly: Read, Read, Read.
- Study The Classics
- Dig Deeper: Don’t just stay on the surface of the libraries, frameworks, technologies and techniques, dig deep until you know why things are the way they are.
- Familar Tools: Know your tools
- Craft Over Art
- Nurture your Passion
- Unleash Your Enthusiasm
but there are a lot more, so go on and read. It will definitely be worth your time.
Extreme Programming Explained and Effective Programming
I have also been able to cross off my reading list one of the books I consider to be a classic in software development literature, Extreme Programming Explained: Embrace Change by the finest Kent Beck “Check!”. It was a great read, nice to see a lot of the practices I believe should be a standard in the industry write there, written on paper. Finally, I have had the chance to go through Jeff Atwood’s Effective Programming: More Than Just Writing Code, and read and remember some of the articles that are part of this blog to book compilation. Everyone knows Coding Horror and the Jeff’s amazing writing skills, so no need to comment more on that :).
And as a bonus read, a hilarious review of Extreme Programming Explained.