Friday, December 28, 2012
The 'find me' problem
The internet has a problem. Ok, there's a lot of problems with the internet. There's one in particular that's been bugging me lately.
There's four zillion sites out there with information on programming (however you define that word). Some are pay, some ad-supported, others are wikified and expect "the community" (whoever that is) to do all the writing legwork for them. Virtually all of them have the same issue: They only do one thing.
Doing One Thing is very important in some instances. The company I used to work for missed out on many opportunities because they tried to do too much. Tutorials, on the other hand, *should* do as much as possible (as long as it's within their problem domain). Many tutorials list a basic use case and how to solve it but never look at how one may do it in production. Others only push a certain framework or technique without looking into alternatives.
Isn't this missing the entire point of tutorials? Readers are here to learn. A well-written tutorial should teach something. More often than not, there's a bit of code to copy/paste to solve whatever problem you've got (badly). Jeff Atwood characterizes this problem as the bathroom wall of code.
I call this "find me" problem. Best practices and further information are out there but are buried beneath mounds of tutorials written for hits. If we're to find out how to work our craft right, then we'll need to go beyond Google and find some *gasp* real people.
Much as I complain about the problems of StackOverflow, they've provided the framework that has grown into an excellent community in the chat rooms. If your language of choice has an active room, you should start hanging around. You never know what you might find. I know a lot of my development as a programmer has been due to my experience there. (Make sure you know how to ask questions first).
You might also find programmers willing to provide advice on an IRC channel specific to your domain. I can't offer advice here but here's where a quick search will actually help.
Another place to discover best practices are books. Take this advice with a grain of salt, as some books are obsolete before they're even published. Others, like The Pragmatic Programmer or Code Complete 2 go beyond language-centric "Tips 'n Tricks" to universal concepts that will make you a better coder.
Finally, there *are* good programming blogs out there. It's very easy to get overloaded trying to read all the blogs out there. Find some good ones (I recommend Coding Horror and Steve Yegge's Blog Rants to start) and read through the archives, picking whatever strikes your fancy.
Finally, don't be afraid to post bad code and ask for help. (So long as you're prepared for a lot of constructive criticism.)