Hobbyist code monkey is tomorrow's enterprise architect
A post last night by Joe Bork in response to a post by Rory Blyth debates whether or not Microsoft should cater to the low-end programmers and hobbyists in the development of its tools. I take the position that Microsoft had better cater to these folks. If the point-of-entry to the platform is easy, it pulls brilliant people into our profession. We need more of those, because there are too many people running around who think because they have a degree in CS that they're experts. (Note: I think everyone should go to college, live on campus and learn about life, but that's a discussion for another day. The point is that college alone is not a measure of your capability, see these comments in Rory's blog. I'd never hire those people.)
A “hobbyist“ might very well make writing code their day job. It happened for me. A lot of folks code Web sites as a hobby and one day find themselves with a business. It happened for me.
Ironically enough, Rory makes the point that, “When I was over the hump of getting accustomed to .NET, I found my job much easier. Gone was the horrible combination of procedural and OO programming styles.” That's ironic to me because that alone is the single greatest reason to get the hobbyist/low-end guy learning about the platform.
This is a subject near and dear to me, because the book I'm working on is really targeted to “those people” and getting them up to speed. Many are brilliant people who need a push into the OO world from their script background in ASP, PHP or whatever.
Rory says, “Microsoft tools are not for hobbyists. If you're a hobbyist and curious about coding, then there are many other ways for you to go about learning. Microsoft tools are priced for professionals. The training is priced for professionals. What does a hobbyist need with something as expensive as VS.NET?”
For one thing, VS itself teaches OO design in certain respects that are not obvious to someone using Web Matrix or NotePad. For example, if you want to consume a Web service from Amazon or Google in your app, reading docs on either one would never lead you to believe that you could treat these as object-oriented services. In VS, you add a reference, it creates proxy classes, and all of a sudden it's obvious that you're creating an object, passing a type into it, and getting back objects that represent your favorite books on underwater basket weaving. Without VS, the novice thinks, “What the hell do I do with all of this XML?”
That's one example, but I can think of dozens of others, many a lot more fundamental than consuming a Web service. I encounter them when I train people on a consulting basis all of the time.
It's a crime that VS will set you back nearly a grand, but even worse is that no one seems to see that the language-specific IDE's can be had for under a hundred bucks, and they do most of the same work.
Getting back to whether or not MS should cater to these people, as I said, absolutely. If it's easier for the “n00bz,” chances are it'll be easier for me. The easier development is, the faster I develop, the faster I get something to market, the faster I get paid. It's not about measuring my testicular fortitude versus other developers, as there's always someone who knows a lot more than I do.