The Part They Don't Tell You

- - posted in programming

I don’t think my profession has ever really been glamorized at all, by anyone, pretty much ever, but behind the usual hackneyed snipes about “techies” and the tired stereotypes about dweeby man-children living in their moms' basements there has really been a lot of movement of new people into my profession. It’s become the new profession people seem to want to get into because of the possibility of getting paid more than for other kinds of work. That’s great and all but I feel like a lot of people coming into software engineering don’t understand this simple fact: it’s actually a pretty difficult job and it takes a lot out of you.

This is actually true pretty much no matter whether you work at a big company, a small company, a medium-sized company, a startup, a consultancy, your garage, a huge office building, some shack down by the river, or an “office” that suspiciously resembles a utility closet with adjoining HVAC room. I’ve worked at all of those, and they’re all super difficult. If your work isn’t challenging, you’re doing something wrong or you need to move on to a better position. If your work is too challenging you’re either at the wrong gig or you’re not cut out for this.

But there are those moments. There are those rare, rare moments, when you grab that code by the face, thwack it with a rolled up newspaper, and tell it exactly what it needs to do and it works. There are those rare moments where you started the day with a bug that turned into a mystery that turned into a quantum physics problem that turned into a math problem that turned into a thousand computer science problems and you fucking rocked the shit out of it. There are those moments when you struggled for hours, maybe days, over a problem that angered you, frustrated you, but then elated you as you gloat over its demise.

If you’re the right kind of person, that high will carry you through the various lows of software engineering. If you’re not, those lows will absolutely destroy you. If you want the rewards, you’ve gotta be willing to endure the stress, the self-doubt, the criticism, and the bullshit.

For those who might be wondering, today was a pretty trying day for me, and it reminded me that some people simply can’t hack it at software engineering, and I did not intend to be one of them. There’s your free advice for the night, space cadets.