Chad Perrin: SOB

4 October 2010

Blogstrapping, Finally

Filed under: Geek,Metalog,Profession,Writing — apotheon @ 12:08

Just over three years ago, I wrote an entry here at SOB entitled Blogstrapping, in which I mentioned I was “planning to spin off a development weblog from SOB.”

I then said:

At first, the main focus is likely to be on writing weblog software, since the idea of this spin-off is that I will be writing a weblog application, and will be using it as I write. It’ll be the ultimate expression of the concept of “eating my own dog food”, as the expression goes.

It has taken me almost three and a half years to get around to it. I’ve had other things on my plate and, as I mentioned in The Virtues Of Lump — the inaugural entry at blogstrapping — laziness has served as the key motivation behind my procrastination. Perhaps ironically, I think that procrastination was probably for the best; I think I am actually in a better headspace for this project now than I was at the time.

Anyway . . . the wait was long, but it appears to be over. I’m working on development of the CMS application I use for blogstrapping at a pretty good clip so far. You can see the blogstrapping version of this entry, the “hello world” of the new development Weblog, if you like: Blog Strap Ping

. . . or just check out the main page of blogstrapping and follow links from there. There’s an RSS feed, too, complete with autodiscovery that should be recognized by modern browsers like current versions of Firefox. I still need to work on perfecting the generation of the RSS feed, but I believe it should work with (most?) RSS readers.

That’s where I’ll likely be sharing most of my thoughts about software development from now on. Of course, I’ll also be contributing a couple times a month to the Programming column at TechRepublic from now on. The subject matter of such articles will likely vary (perhaps subtly) from that of my blogstrapping entries, however.

Thanks for reading. I hope you like the new venue.

19 September 2010

using recursion to solve a real problem

Filed under: Geek,Profession — apotheon @ 02:55

Back in the days when discussing the FizzBuzz problem of interviewing programmer job candidates, Dan Kegel had this to say:

Speaking on behalf of software engineers who have to interview prospective new hires, I can safely say that we’re tired of talking to candidates who can’t program their way out of a paper bag. If you can successfully write a loop that goes from 1 to 10 in every language on your resume, can do simple arithmetic without a calculator, and can use recursion to solve a real problem, you’re already ahead of the pack!

My question is simple: What counts as “a real problem” one can solve with recursion that would be small enough to be a quick job interview question (like the FizzBuzz question)? I don’t seem to run afoul of problems that call for recursion very often. When I do, it seems like it’s always a “toy” problem like a Fibonacci number generator or factorial calculator.

I’m pretty sure I could solve a “real problem” using recursion, at that level of complexity at least, if I ever ran across one.

15 September 2010

How bad a programmer am I?

Filed under: Cognition,Geek,Profession — apotheon @ 04:43

I’ve come to realize something today:

I think of myself as a worse programmer than I actually am.

I don’t get as much code written as I would like. I run into a wall a lot of the time when trying to get something done, and it feels a little like I’m running up against the edge of my own competence. I know I’m no expert, nor even “proficient” in the Dreyfus model, but I might be better than I tend to think when I have those moments of incompetence.

I’ve realized that one of the biggest problems I have with making progress on my own projects is figuring out how I want to build them — to some extent, even figuring out what I want them to do. Once I have a clear idea of some piece of functionality that needs to be built, I tend to build it; once I know how I want to organize the architecture, I put it together; once I have a theory for the project’s concept, I design it. Reverse those steps, and you’ve got a path from concept to completion.

The biggest problem for me is, apparently, developing that theory for the project’s concept. When working on a fairly clear-cut project, such as when doing something for a client who has more than a vague notion of what (s)he wants, everything flows easily, but a lot of the time the vague notion is mine, and it’s up to me to come up with something clear-cut from there.

I’ve never been a cubicle-based developer. My information technology related dayjob employment has always been focused on things like network administration, data center support, and on-site client system recovery. I have not had a straight-up development job, per se, though I have done a fair bit of lightweight development for clients (Web development, software tool maintenance, integration, and actual — le gasp! — consulting). It occurs to me that if I had at some point had a desk-and-beige-box, cubicle-embedded, corporate development job I’d probably have a more positive view of my own programming skills.

In a cube farm, doing development scut-work, expanding the code base of some Enterprisey bloatware system by working on some micromanaged little segment of it, I would have realized much sooner that I do seem to have the ability to churn out code to meet the well-defined goals set before me — and do a better job of it if I understand how it fits into the big picture. In short, while I’ve spent a long time rating myself somewhere around the level of a low-level Advanced Beginner in the Dreyfus model, I think I might actually land squarely in the Competent category. It’s just difficult to see that from where I’m marooned on the far fringes of development, well outside the kind of programming work most developers do.

Maybe tomorrow I’ll change my mind, but for now it looks like I’ve suffered under a delusion that is the diametrical opposite of the Dunning-Kruger effect.

I’ve been thinking about the Dreyfus model of skill acquisition a lot lately (I blame Andy Hunt, and his book Pragmatic Thinking & Learning). It is in part because of this fact that I’ve come to realize that my own cognitive bias in the case of rating my development skills lands me squarely in the self-underestimating camp.

Now I just need to spend a few more days thinking about it to make sure my epiphany is not just a flash of ignorance, rather than insight. If it turns out this realization is not, itself, a misperception, I then need to start working on believing it. Long habit of belief in my own relative incompetence will be difficult to break.

Older Posts »

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License