Evolving Your Development Skills
In the last couple of years, I've been adding the HTML/JS/CSS skillset to my stack of required skills and my talks and courses have reflected that change. To my readers who are deep in the XAML stack, this change seems to have come at somewhat a shock to many. I've even been accused by some of abandoning the Silverlight, WPF, Win8, WinPhone folks. This has caused me a lot of frustration because I don't believe that developers can or should only know one possible stack. To reach the full breadth of users, sometimes you need to be able to develop across the ecosystems. In this same time, I've also done quite a number of HTML/JS/CSS talks where I didn't use Visual Studio. Some have conjectured whether I am moving away from the Microsoft stack as a result of the lessened use of Visual Studio in my demos. The frank answer is: nope.
So what is really happening here? I believe the development world is evolving. In fact, this isn't new…in the past 26 years everything has continued to change my entire career. And I expect (and hope) it continues. Software development is unlike many other similar professions. We think of ourselves as engineers but many engineering professions the rules don't change all that often. In civil and mechanical engineering, it can be somewhat stagnant. The requirements change, but torque and setbacks are similar to what they've been for years (AFAIK). But in software everything changes.
This cycle is pretty consistent in my world. I can pretty much guarantee the full cycle on most new technologies I am learning. This is usually because underneath the surface, my brain is afraid that I'm going to be found out to be a fraud. That I am going to run into something new that I can't grok. That my tiny mind can't figure out. But that's a purely personal issue…not a technological one. This insecurity is at the root of what makes new technology fearful for me. Most days I can see past it and realize that it's only that. You'd think that after my 7th book, my insecurities would be gone…but…nope.
So how do I suggest people keep up? For me it's two pronged:
- Listen to what is going on in your corner of software development (not learning the new tech, but know what the new 'cool' acronyms mean.
- Learn something new every year….every year…really…every year. (See my post that discusses this here).
In order to listen for the new technologies, I recommend dusting off your RSS reader and reading some great blogs. Some of those I suggest include:
I also suggest you use twitter and follow people you love. You can lurk without sharing, but seeing what people are talking about can be really helpful.
If you know:
- ASP.NET Web Forms to ASP.NET MVC: Your experience with web development isn't going away. Sure, the designer and server-side controls have been helpful, but learning how those controls actually build the HTML you need will help you move to ASP.NET MVC and richer client-side models (like Single Page Applications). Your skills in back-end development of SOAP-based services is also likely going to need to maturate into REST-ful services. You will be surprised that building and consuming these is easier than WCF.
- Silverlight/WPF to Windows 8/WinPhone: The transition from the older XAML stacks to the newer ones isn't actually that hard. XAML design and data binding are the core of what you do and that doesn't change. Sure, if you're a deep WPF developer, you'll miss triggers but there are options that will help you build even cleaner code (as I am not a fan of triggers). In fact, developing for these new platforms is easier as the integration of asynchronous calls means that you will spend less time finding out what is locking the UI than you used to. Goodbye SynchronizationContext, you won't be missed.
How do you get up to speed? As a Pluralsight author, I am not unbiased…I think at $30/month, you can learn a boatload in a short amount of time. In fact if you look at my recent (and upcoming) courses, they are geared towards these new learning opportunities.
In the interest of encouraging people to view my courses and learn, here are some of the courses I wrote that I think could be helpful:
- A Better CSS: LESS and SASS
- Web Debugging with Firebug, Web Developer and Fiddler
- Web API Design (coming soon)
In any case, whether you view my courses or not…you should take it upon yourself to learn as much as you can. Pick anything that you find interesting and learn…learn…learn.