Although I am officially a “Technical Specialist” on paper for Microsoft technologies, the ability to pass an exam is pretty much useless when faced with real world development decisions.
People sometimes ask me what it’s like - being a software developer - usually with regard to their children who are flirting with the idea as a career. I almost always reply that it’s soul destroying - because 90% of the detail you learn is only good for a few months. The important realisation is that the 10% - the core skill set - is invaluable, and is strangely a mixture of real world experience and textbook study.
Throughout my career I have seen a lot of developers at work - and many different personalities and approaches. Some are great problem solvers, some are plodders, some are pedants, and some are unquestionably brilliant. Working in a technical field can be a great leveller at times - while you may think you have just achieved something particularly clever, there will almost certainly be a far better way of doing what you have done.
I learned a lot a couple of years ago while writing my own chess engine. I never finished it, but while figuring out how to solve the various problems intrinsic to it’s function, read some quite wonderful research papers written a long time before software was ever written on modern computers. Before we were all born, the likes of Alan Turing had solved some of information theory’s greatest questions.
One of the biggest leaps you need to make after leaving college is realising that brilliant people are out there, and that they are also just as normal as you or I. They will delight in passing on their knowledge. Your interest will be repaid, and you will benefit from their insight. You will stand on their shoulders as generations have done so in the past.
While working to integrate an element of a larger system late this afternoon into the behemoth that is Microsoft SharePoint Office Server, I felt privileged indeed to have colleagues around me who have scratched and scraped a huge amount of knowledge together, and were only too keen to share it.
I am wise enough to know that while I may be a creative and at times very clever developer indeed, being clever is not the same as being wise. Cleverness implies intelligence. Wisdom implies knowledge. Two quite different things.