Hacker News new | ask | show | jobs
by karmelapple 2723 days ago
> "Great fighters have to kind of like getting hit."

I'd generalize it to: "Great craftspeople have to kind of like the part of their craft that is unpleasant to 99% of the population."

Someone who excels at playing violin, writing computer software, public speaking, etc., generally does not find the "unpleasant" part to be "tiring", "boring", or "work". Instead, it's just part of the overall experience, which is a net positive.

When I was younger, I had a classmate who's an excellent violin player. Her practice schedule sounded awful to me, with well over an hour spent even on weekdays. I played musical instruments, too, and I liked a little practice, but rarely more than 30 minutes in a day.

I asked the violin player about this schedule, and the way she answered the question made it clear that practicing didn't seem unpleasant, or like "work," like it would to many other people. It was something she truly enjoyed.

Similar things can be applied to software development and liking the idea of investigating obtuse error messages and things breaking without any clear root cause.

5 comments

Yeah, I'm a little skeptical of CS schools that try to shelter their students from suffering. While schools should obviously not attempt to break students, there should be a reasonable crescendo of difficulty within the program. Because, well, software development can be hard. Students that don't like the hard parts don't like software development. This doesn't mean insanely hard "weed-out" classes, but simply projects that reflect the difficulty and demand of the real world.
At some point I was introduced to "Find The Hard Work You're Willing To Do" - http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018...

I think this is an important bit that a lot of people getting into programming don't realize. Many enjoy the "playing with computers" aspect. Some even enjoy writing new code. But the real test is do you enjoy fixing broken code?

The article ends with:

> Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life.

> I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work.

--

Another article that I love is Programming Sucks ( https://www.stilldrinking.org/programming-sucks )

This one starts with:

> Every friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: “Bro, you don’t work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver.”

> They have a point. Mordor sucks, and it’s certainly more physically taxing to dig a tunnel than poke at a keyboard unless you’re an ant. But, for the sake of the argument, can we agree that stress and insanity are bad things? Awesome. Welcome to programming.

--

This "What kinds of frustration do you enjoy" I believe is a stumbling block for many people looking to enter the work force. I've encountered people in the past who love writing code but hate debugging.

I didn't realize anyone likes fixing broken code, debugging, or - from reading HN - what seems like what most professional programmers spend most of their time doing, inheriting a huge broken mess of old software and having to come to understand it and clean it up somewhat. I don't remember reading/hearing anyone say they actually like it.

edit: Nice to hear it!

Finding and diagnosing bugs is annoying. Actually fixing them is super satisfying though. Same with cleaning up old crusty code, figuring out wtf it's meant to be doing is painful but turning it into clear clean well-factored efficient code is satisfying.
Debugging is the best. It feels so good when you stop hitting yourself in the face.

Inheriting a huge mess is harder to love, but refactoring payoffs are huge.

What I will never do again is inherit a huge buggy mess and a boss that wants you to add 5 features to it by the end of the week.

I do. I love hunting down bugs and leaving the code better than it was. I've done some memorable refactorings of terrible code. It feels weird to say I like it, but I kinda do.
I love debugging, but only with access to the code. It gets frustrating to track a problem to some black box library, and then have to stop.
Any program not challenging your ability as an undergrad to implement something beyond your current skill is doing their students a disservice.
AKA “We hackers do for love what others wouldn't do for money.”
I'm reminded of fighter pilots: "I can't believe I'm being paid to fly!"
Can't think of something that must be more thrilling than piloting a fighter aircraft.

Sadly I was too tall/big (I did a stint in the USAF, once...) Most fighter aircraft are designed for small to medium size fit men up to a maximum of 6'... I was 6'3" and slightly overweight

It does look fun. But there are other sports that push the excitement envelope.

I kitesurf. You can pick up the F1 of kites for around a grand. It's like being tied to an F1 car. Or go surfing, tech and shapes haven't changed for a few decades. So boards are cheap. Paddle out when it's big. That's a lot of water sloshing around. Being trapped out back on a big day is truly terrifying. And the only way in is to surf one of those waves. Makes my bum-hole tingle just thinking about it.

> Great craftspeople have to kind of like the part of their craft that is unpleasant to 99% of the population

Fixing bugs and refactoring. They have their perks.

These are two of my favourite things about programming! I wouldn't consider myself "great" or a "craftsperson" though. Maybe I should.
Refactoring is a pleasure for me IF AND ONLY IF there is a decent unit test/functional test suite for whatever I'm working on!

There's a funny perk to bughunting... the amount of time it can take is nondeterministic so you can take breaks during it (they help you find the root cause, anyway, by clearing your head) and nobody will complain. "I'm thinking about the bug! Backburner debugging!"

One hour is nothing, many professional musicians practice many hours a day, each day.