Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> usually it meant just straight up getting the command wrong 5 times before trying to read the man page, thinking I understood what the man page meant, trying again another 5 times

I think that is a developer's superpower. The poncy term for it is grit. I tell others that the secret to leaning computers is frustration and persistence.

> and then giving up.

Knowing when to stop or change direction is hard.

I've definitely wasted years of work failing to solve something that I eventually had to give up on (most memorably depending on nasty Microsoft products).

But I've also been paid very nicely because I've solved problems that others struggled with.

And I was paid for the failures too.



I've been a sysadmin for a quarter century and I've always said my only real superpower is that I read error messages when they appear, something none of my non-admin coworkers can do, for some reason.


A smart, and by no means technically incompetent friend of mine struggled to get a software product to run. He would reinstall it, try different configuration, uninstall plugins, yet every time he tried running it, the program gave the same error message. I asked him to read the error, and it very simply stated that it was failing to create symlinks because the the disk was formatted with ExFAT. Had he just piped this message into ChatGPT, he would have avoided hours of debugging.


Do copy pasting them into Google count?


Sure, about 3/4 of the time the answer is on the first page of results


I consider myself a fairly good developer, and I think that's in large part due to knowing, "doing this should be possible, and the reason it's not working right now is just due to stupidity (my own or the developer of whatever I'm using's)". But yes, in a few (thankfully rare) cases it just plain isn't practically possible. Even then, I've given up on problems just to have it nagging in the back of my mind and then randomly coming up with a beautifully simple solution weeks later. That's sort of the essence of what I like about programming (and math too).


> the secret to leaning computers is frustration and persistence

And if persistence fails, bring out the big gun: belligerence.


Grit is something you gain once you already have an intrinsic motivation, such as already having a belief you can do this. Something has to spark in people that they’re capable in the first place.


People forget that struggling is part of the learning process. It's great that people want to make things easier to learn, but struggling is essential. You want to ensure that people don't struggle so much they get stuck (one extreme), but you don't want to make it so easy people don't struggle at all (the other extreme). There's balance, but that balance requires struggling.


I think this is one of those statements that sounds reasonable on the surface but if you read it over a few times it doesn’t say anything concrete enough to pin down anything that could be refuted, even though I think the vibe is off.

So in return I’ll share my vibe, which is that my point was a small amount of struggle can be good once people are already determined to learn something, perhaps because they have found a spark for it. But before they’ve found their spark, all it does is turn people off. And in general, I don’t think struggle is essential at all. In fact I’ve learned a great many things successfully without struggling.


You must have a different brain than mine. I'm finding (and increasingly as I age), that the act of learning feels inherently uncomfortable. Like my brain really wants to use its existing toolset instead of learning something new, and is saying so quite loudly. A similar discomfort happens with exercise. If there's zero struggle to lift the weight, then your muscles aren't really developing. I think this is pretty well-known and well-documented.

So how do you learn without struggle? Are you being spoonfed the material on a learning happy path so you happen to never make a mistake and thereby have to redo your work? Do you not experience effort and mistakes and frustration as 'struggle'? After you're "done" learning a particular skill without struggle, what happens when you have to apply that skill at a higher level than you learned it at? Is it just joy and rainbows all the time?


When you read a novel, you’re learning the plot, the intricate relationships between the characters, forming opinions about the current and future state of the fictional world, that sort of thing. Does this feel like a struggle to you? It’s still learning, but I don’t find it a struggle, mostly because I’m enjoying the process and the experience.

A great many things can be learned in this way. Not everything I’ll grant you, I haven’t found a way to learn a language or complex mathematical topics without struggle yet. But even in my software development work if something is a joy to learn I still learn it, no struggle required.

Kids learn a lot through play, and play isn’t a struggle for kids.

Lots of examples.


I don't think it's just age, and I think the comparison to working out is apt. To gain muscle you need to get tired. To restate my previous comment in this framework: to gain muscle you need to struggle; you can go too far and injure yourself but neither is there exercise that is effortless.

I'm not sure how the gp even reasons like they do. What does effortlessly learning a new skill look like? You're just instantly good at it? The logical conclusion here is that either: 1) they're so galaxy brain that nothing is hard or 2) they're incrementing so minutely that the progress is so smooth sailing that they are able to fool themselves into not believing there ever was a struggle.

If the first option we have to consider their morals as they could save countless lives and thrust humanity generations ahead technologically, due to their ability to solve problems us mere mortals struggle with.

Personally I'm much more believing of option 2 as it makes the most sense if we consider the computational requirements for increasing precision along with our current understanding of human psychology to create these types of mental defenses as remembering the struggle can deter us from doing it again. But mostly I'm sold on option 2 because if they were so galaxy brained they'd be cognizant of the fact that the rest of us aren't and we wouldn't be having this conversation.

But hey, maybe I'm the one fooling myself here. Maybe the gp is just god. They could just be omnipotent and not omniscient. Which in that case we've answered the AGI super intelligent problem.


Effotless and without struggle are two very different things. Walking a kilometre or two to the shops isn’t a struggle, but it’s not effortless either. It takes effort but it’s pleasant and not a struggle at all. Running would be a struggle. Effortless would be having someone drive you there. See what I mean?


  > I think that is a developer's superpower.
I do too, but only because we can do both.

I think comparing math education to programming education is quite apt here. After all, programming is math[0]. Both are extremely abstract subjects that require high amounts of precision. In fact, that's why we use those languages![1]

One of the absolute most difficult parts of math is that you don't have feedback. Proving you did things correctly is not automated. You can't run it and have an independent (not you) mechanism tell you that the output is what you expect it to be. This leads to lots of frustration as you sit there thinking very hard about what you've done wrong. It is frustrating because you're often blind to the mistakes as that's why you've made them in the first place! But the upside is that you quickly become attentive to details and learn those pitfalls very well. This also means you can abstract very well (the entire point of math) as you learn to abuse things on purpose. The struggle is real, but the struggle is important to the learning process. You learn very little if there's no struggle. Your mind is made to remember things that are hard better than things that are easy.

In programming we typically have the opposite problem. You get instant feedback. This makes iteration and solving your specific problem much faster. You can experiment and learn faster as you poke and prod seeing how the output changes. BUT there is a strong tendency to leverage this too much and use it to outsource your thinking and analysis. Iterating your way to success rather than struggling and analyzing. This doesn't result in as strong of neural pathways, so you don't remember as well and you don't generalize as well. Having taught programming I can tell you that countless students graduate from university[2] thinking that because the output of their program is correct that this means that their program is correct. This is a massive failure in logic. Much easier to see in math that just because 3+3=6 and 5+1=6 doesn't mean that the process is equivalent[3]. The correctness of the program is the correctness of the process, not the correctness of the output.

While that's the typical outcome of learning programming, it isn't a necessary outcome and there's nothing stopping anyone from also using the same approach we use in math. Math is only that way because we're forced to[4]! Both have their strengths and weaknesses, but neither is strictly better. The strictly better learning path is the combination and that is the superpower we have. It's just easy to abdicate this power and only do the easy thing.

[0] We can really say this from Church-Turing but if you really have concerns with this statement you'll need to read more up on the theory of computer science and I suggest starting with lambda calculus.

[1] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...

[2] and even graduate degrees. You'll also see this idea prolific on HN and I'm sure someone will respond to this comment countering the point

[3] You can abstract this, I'm not going to do some long calculation here but I'm sure most people have done a long calculation where they got the right answer but the process was wrong and they had a professor still mark them wrong (and correctly so).

[4] If you're going to lean on me I'll concede




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: