Well, not really. But it was the old title of Chad Fowler’s excellent book I am reading, which offers solid career advice for programmers. If you are a programmer in USA or Canada, and want to keep your job and not get outsourced, you’d be doing yourself a favor by reading this book.
In a traditional client-server programming paradigm, request-response model is pretty common. Whenever client needs resource, it sends a request to the server. Server responds a response with the requested resource to the client. However, this assumes that the client is always the initiator. What if the server has some data to send to the client?
I had an interesting experience at work this evening. It was late afternoon, and I was tasked with a somewhat important feature, the details of which were not so clear to me. There was significant work involved in both back-end and front-end, including the database. I have been procrastinating on this for almost an hour.
I have been intentionally getting a lot of my code reviewed at work recently. There are so many things you learn from the code reviews, which they don’t teach you in school, such as how to write production-quality code, common exceptions to look for, and many more.
As a developer, once I get a feature working, the common impulse is to move on to a next shiny feature. However, programming is so much like writing. Getting a feature working is just a first draft. You have to come back to it and rewrite it and refactor it. Martin Fowler’s new book lists the following benefits of refactoring.