After reading this and its complacent I've-learned-as-much-as-I-need-and-besides-I-have-kids attitude, I'd say he does a good job making a case against himself being a very good programmer. His mechanical analogy (socket wrenches) for "computer code" (sic) is particularly revealing.
Ironically, none of this has intrinsically to do with his not liking to program on Saturdays, yet ends up reinforcing the notion that, for whatever reason, there is a correlation.
I know at least five guys who have small children and hack in their spare time. Yes, it's a struggle, but they all do it. I also know quite a few with small children who never do that. They never did before they had kids, either, but the kids furnish a nice excuse. Kids are handy that way. (Edit: notice how the author plays this card, even though he already said he almost never programmed outside of work or class.) Anyway, my point is that the first group are really good programmers and the second are, by and large, not. Anecodotal though this may be, I buy the idea of a correlation.
P.S. Another trait that good programmers tend to have is not seeing themselves as good enough and not getting defensive about proving how good they are. Exercise to the reader.
I have written web apps and low level networking code and plenty of stuff in between, aka a web server. I have worked with computers that have less than 1kb of RAM and distributed networks. I have written code 100x faster than a coworker who was still better than average (30 min vs 7 days). I remember spending a few days coding something so so our customers did not have to the post office website to find zip+4 addresses and realizing using them as a backup was almost pointless because I had a better solution. I love solving hard problems, and most of the time I don't code at home.
PS: Ok, I did just start working on an iPhone app, but that's mostly because I stopped coding at work. There is a life outside a compiler and going snowboarding, watching amine, reading, or any number of other things are just more fun.
Don't be insulted; it's just an argument on the internet. Besides, the correlation people like me are claiming is at most a statistical pattern with lots of room for variation. (You sound like a good programmer regardless. But what I find endearing in your comment is how you go and spoil your argument by hacking on an iPhone app in your spare time - and feel obliged by intellectual honesty to fess up to it!)
Of course, you might also mean that the debate is insulting because it's pointless. I can understand why it would seem that way. What does it matter whether someone programs outside of their job or not? It doesn't, intrinsically.
Here's why I think the subject is interesting anyway: there's no cheap way to tell who the really good programmers are. This is not just a hard problem, it's a hard problem that seems like it ought to be an easy one. Why can't you just devise a test? People have tried to figure this out every which way, spending many millions, maybe billions in the process. And no one has a good answer. That's genuinely surprising.
Given that situation, any criterion one can use as a (cheap) proxy for "good programmer" is of interest, even if it's imperfect.
What makes the "hacks in spare time" correlation with "good programmer" interesting is not that it captures all of the good programmers. There are certainly good ones who don't do that; i.e. the test does produce false negatives. What makes it valuable anyway is that it excludes the overwhelming majority of bad programmers, the ones for whom it's a job that they aren't very good at and aren't motivated to get good at, who form 90% if not 99% of the professional population. In short, the test is interesting because it excludes many more false positives than it admits false negatives.
A corollary is that all the people who protest "I don't code in my spare time, yet I am a good programmer" aren't really adding much data to the discussion. The ones we need to hear about are the bad programmers who do. :)
Even if all good programmers were programming at home the knowledge that a programmer is coding at home wouldn't give us much.
G - good programmer
C - coding at home
P(G|C)*P(C) = P(C|G)*P(G)
P(G) = 1% # percent of good programmers among all
P(C) = 20% # percent of programmers that code at home
P(C|G) = 100% # assume that all good programmers code at home
Probability that a programmer is a good one given that it codes at home:
I think 20% is on the low side. But, you really need to define your terms. I would call 1/3 of all programmers useful, in that they can create more value then they cost. However, when you have a tiny budget and need to find useful programmers willing to work long hours for low pay then you really want young smart programmers with a lot of experience. And they only way to have a lot of experience at a young age is to do a lot of side projects.
There are plenty of programmer that will blow your mind making 150+k/year, finding programmers that will blow you mind and are willing to take far less and a slice of equity is far harder.
PS: There are talented older people that are also under payed, but that's normally because they are happy where they are. Finding them and getting them to work for you is hard and expensive.
Good points. It's worth remembering that when it comes to this stuff, we're all anecdotalizing in the dark. I say that because it sounds like we've had quite different experiences. (20% of programmers work on side projects sounds low to you, very high to me.) Frankly, I'm not even sure it's possible to properly define these terms, let alone measure them.
I just wanted to point out the interesting juxtaposition of
"P.S. Another trait that good programmers tend to have is not seeing themselves as good enough and not getting defensive about proving how good they are. Exercise to the reader."
followed immediately by:
"I find this debate insulting."
This seems to always happen with hiring debates - last time, it was the "Would you hire someone without a college degree?" question on Reddit about 8 months ago. Interestingly, all the degree-less folks I would hire kept their mouth shut in that debate. They know that they're good enough to hire with or without a degree, so they don't need to prove anything to anybody. It's the folks who aren't quite sure that need to rant on and on.
It doesn't matter if everyone likes you, so long as someone likes you. Applies as much to jobs as it does to friends, girls, or customers.
FWIW, I do code at home. And I find this debate rather baffling. I code because I want to, not because I care whether someone will hire me for it. If it gets me a job, so much the better, but if it doesn't, I can always start a company, compete with them, and kick their asses. It doesn't have to be mutually exclusive to having a life, either. I read, too, and play violin, and occasionally go hiking or see a movie with friends, or play Starcraft or board games after work, or any of a number of other activities.
> After reading this and its complacent I've-learned-as-much-as-I-need-and-besides-I-have-kids attitude
If you think he's claiming that he's learned all he needs, I don't think that you really did read TFA.
> I know at least five guys who have small children and hack in their spare time. Yes, it's a struggle, but they all do it. I also know quite a few with small children who never do that. They never did before they had kids, either, but the kids furnish a nice excuse. Kids are handy that way.
Yeah, well, work sure does furnish a nice excuse for not being present in your kids' lives too. You can play this from both angles.
Obviously I read the article. Does "its complacent I-learn-as-much-as-I-need-by-osmosis-just-by-working-at-a-startup-and-reading-reddit-and-besides-I-have-kids attitude" work better for you?
Actually, I was careful not to say that he isn't a skilled programmer. I have no way of knowing whether he is or isn't. What I said is that his piece does a good job of making a case against his own argument.
Oh come on. "Any of Ted's past stuff"? I've read a lot more than any, and all I remember are a lot of sarcastic rants alleging stupidity on the part of others. I played along for a while, thinking that the author had a minor gift for satire, until it became clear that he was writing the same thing over and over again and never going deeper. But there's a more substantial point here. You can't tell from blog posts whether someone is a skilled programmer. You can only tell that by working with them or with their code. I haven't done either, so what I said was true.
The gap between blogging about programming and actually being skilled at it is no different than the general gap between talking about any X and doing X (which is one of the most noticeable properties of the human race).
I'm not sure Pressflip is very good evidence for him being a skilled programmer. I've seen some of his Google code and it's pretty decent though. I just wish he didn't have the habit of throwing shit at other people.
Judging by your post, I'm going to go out on a limb and say that you don't have children....Your anecdotal observations about parents did little to advance your point.
Either way, I think the entire debate belongs in the 'bike shed' category.
Just as another data point, I too have a small child (toddler in this case) who gets just about every minute of my time outside of work. The three hours every night after she goes to bed is spent either with my wife or coding.
With that said, not one of his comments contradicts any of my personal experience working with other parents.
(You know a thread is getting too big when you have to click "parent" to figure out if someone is talking to you...)
I'm going to go out on a limb and say that you don't have children
Heh. Wrong.
I'm afraid your inferencing could use a little sharpening. If you're correct about this (and you may well be)...
Your anecdotal observations about parents did little to advance your point
... then there's probably some extraneous reason why I'm so hung up on the matter of parenting, programming, and spare time. I wonder what that could be? (And how is it that I know so many programmers with small children...)
Ironically, none of this has intrinsically to do with his not liking to program on Saturdays, yet ends up reinforcing the notion that, for whatever reason, there is a correlation.
I know at least five guys who have small children and hack in their spare time. Yes, it's a struggle, but they all do it. I also know quite a few with small children who never do that. They never did before they had kids, either, but the kids furnish a nice excuse. Kids are handy that way. (Edit: notice how the author plays this card, even though he already said he almost never programmed outside of work or class.) Anyway, my point is that the first group are really good programmers and the second are, by and large, not. Anecodotal though this may be, I buy the idea of a correlation.
P.S. Another trait that good programmers tend to have is not seeing themselves as good enough and not getting defensive about proving how good they are. Exercise to the reader.