I learned this the hard way. I don’t want you to go through the same thing I did in my career as a developer. Back in 1990 it was possible to know everything, the assembly code, the language (C), the Windows SDK, the Windows OS and let’s not forget the application of course. In fact with today’s technologies I’d feel privileged to get to know someone who does know it all. And let’s not forget in 10 years time it’s all out of date or rather we should forget the technology and not get trapped in the past. And back then the tools were not as powerful as they are today.
So I had a conversation with a friend this morning. He is struggling with presenting a technical session. Well who’s the audience I asked? A mix he replied. Some have never seen it and others have expertise. Okay interesting. In my younger years, I was trying to impress (more so out of an inferiority complex back then), a strong weakness I now openly admit. I worked like crazy, read computer books like crazy, but then realized I’m starting to get old several years ago. Life is not about coding like crazy. Absolutely not.
My suggestion to the friend was not to put in an 80 hour week and still be open to pitfalls. Keep it high level and reach them all, so they all understand. Then during Q&A, we recommend bringing in a subject matter expert. So, what if we take the opposite approach? It’s WPF this week, Windows Phone 8 the next, SQL Server performance troubleshooting the week after. It never ends.
I have a family and friends. Many great philosophers have taught us, that in conjunction with health, friends and family are key to a happy and balanced life. So use the tools, use the subject matter experts, use your skills and judgment so provide your customer with the best experience and if that means reaching out to someone who develops debuggers or compilers or whatever day in day out, get them to help you. Then you get to spend more time with your parents, spouse and/or children and friends. This profession has the tendency to drag you in.
So one thing I will recommend to all of you my young friends. Don’t be afraid to seek help. Don’t be afraid to ask for it.
Furthermore invest in learning the tools. They will save you much time and pain down the software lifecycle. The framework and language is great, but without knowledge of the tools, such as profiling, load testing, architecture tools, IntelliTrace, for example, you work harder, much harder.