Stephen King is widely quoted as saying "If you want to be a writer, you must do two things above all others: read a lot and write a lot." Stephen King is undoubtedly a successful author so I must assume he knows what he's talking about; and I think there is a significant degree of similarity between writing programs and writing novels.
Let's start with reading. In my experience, very few SAS developers own a SAS-related book or a software engineering book. If developers don’t know about the fundamentals of software engineering (not just code syntax but also issues like configuration management and testing) how can they explain them to non-technical folks like sales and upper management once they’ve become technical leaders?
SAS Publishing doesn't offer too many titles that address software engineering for SAS projects, but don't let that hold you back. There are plenty of good books that offer insight that is relevant to the SAS practitioner. My own bookshelf includes classics and contemporary books alike (in no particular order):
- The Mythical Man Month, by Fred Brooks [amazon.co.uk]
- Refactoring: Improving the Design of Existing Code, by Martin Fowler [amazon.co.uk]
- Planning Extreme Programming (XP), by Kent Beck & Martin Fowler [amazon.co.uk]
- The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling, by Ralph Kimball [amazon.co.uk]
- The Data Warehouse Lifecycle Toolkit, by Ralph Kimball [amazon.co.uk]
- Waltzing with Bears: Managing Risk on Software Projects, by Tom DeMarco and Timothy Lister [amazon.co.uk]
- Head First Software Development, by Dan Pilone & Russ Miles [amazon.co.uk]
- Algorithms + Data Structures = Programs, by Niklaus Wirth [amazon.co.uk]
- What is Lean Six Sigma, by Mike George, Dave Rowlands & Bill Kastle [amazon.co.uk]
- UML Distilled, by Martin Fowler [amazon.co.uk]
- Information Revolution: Using the Information Evolution Model to Grow Your Business, by Jim Davis, Gloria Miller & Allan Russell [SAS bookstore]
Practice for the sake of practice is commonplace in sports and many other pursuits, why not programming? The term coined by Dave Thomas, co-author of the book The Pragmatic Programmer, in a nod to the Japanese concept of kata in the martial arts. A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition. I'll return to this subject in subsequent articles.
In summary, don't leave your professional development in the hands of your manager. Consider adding a professional book to your bookshelf (and read it too). And challenge yourself to do a little off-topic coding in order to broaden your knowledge and experience. You'll thank me for it!