Hacker News new | ask | show | jobs
by wglb 5841 days ago
I have been programming for a long time, and I don't think I can give a totally articulate answer to that question. Well, I do have answers, but they don't make seem to make sense to anyone but other programmers.

Part of it is the reward from solving difficult problems or puzzles. And with the risk that you might not be able to solve the problem. Part of it is the creation of something that didn't exist before. Part of it is, when you are in the zone, time disappears.

Some of the problems in this business are pretty intractable, or at least appear that way. I remember once when I was younger I got this idea in my head that I wanted to solve algebraic problems by programming. At the time, I was working on the IBM 1800 (architecturally equivalent, instruction-wise to the 1130) (like that really tells people anything), which was a 16-bit accumulator-type machine with maybe five registers. I worked on this for maybe a month, to the point where I felt mentally strained. So I backed off, never solved it. Later, I heard about maxima. I wasn't even close.

But that seems to be the rule, rather than the exception for things I have been involved in. I mostly start things these days that I have no real clue whether or not I will succeed. Real-time acquisition of electrocardiogram data? We certainly didn't know the horde of sub-problems we were going to encounter, and certainly did not stand around enumerating the risks. We just forged ahead. The Matasano challenges? Talk about staring at a web page for a couple of hours with no clue. (That worked out well, as I now work there.) (And despite what tptacek self-deprecatingly says, he is marvelous to work with and work for.)

Compilers? Didn't you ever wonder "hmmm, I wonder how this works", or "why does FORTRAN have this clearly stupid and trivial limitation on elements on the DO loop?" I got a fire in my belly about that one for sure. But I had no idea or expectation that this would lead to a career.

Or the google code challenge. I got it in my head to try this out, kind of to flex the muscles. That was an education. But I learned something.

I know that there is a lot of talk on this forum about "fail early, fail often". I think that perhaps the original intent of that admonition is "don't stand around enumerating risks. Dive in, push forward, adjust, repeat". So in the words of the protagonist in The Art of Racing in the Rain, "your car goes where your eyes are". To translate, "don't look at the wall, look at the track".

So any programming ability can give enormous leverage in many areas of modern life. Full-on programming ability more so.

If you don't have a deep curiosity about how this complicated stuff works, I am at a loss as how to describe that to you, as that is where I come from and where I live.