Hacker News new | ask | show | jobs
by ef4 4406 days ago
> They don’t tell you that a lot of programming skill is about developing a knack for asking the right questions on Google and knowing which code is best to copy-paste. And they don’t let you in on a big secret: that there is no mastery, there is no final level. The anxiety of feeling lost and stupid is not something you learn to conquer, but something you learn to live with.

Just because you haven't achieved mastery yet doesn't mean it doesn't exist. It takes a very long time.

Until you've worked with masters, you may doubt they exist. But they do.

4 comments

The OP has it right. I've been programming almost 40 years, and I think it's safe to say I've achieved a certain level of mastery. But when I'm working on something hard, I still feel lost and stupid. I wouldn't have it any other way! If I don't feel challenged, I get bored really really fast.
Do you feel a difference in the way you handle the solution space exploration ? tricks or just decades-built patience ?
Patience, and a confidence that comes from having solved hard problems before. If there's a trick, it's to always focus on the part that doesn't make sense yet.
Good point
On the other hand, most masters will not call themselves that, and will resist being labeled as such. Because ironically, true mastery can only be achieved through humility.
No, I don't think so. There are many masters in music who can be quite arrogant, don't see why it can't be applied to programming. Also, those people who don't call themselves 'masters' may not do so for the sake of their public image. Once you start working with them you'll know what they really think.
I disagree with the author -- I never feel lost and stupid. There is always a way of bringing an idea to life, even if there are compromises and tradeoffs.

But nowadays, I am forced to rely on third-party libraries. These libraries often change constantly and have "in-development" nuances. So, the OP regrettably is correct that searching the Internet is a requirement for working on modern applications.

I do reminisce about the pre-Internet days, when all I needed was my brain and a simple reference book!

My mom taking python on coursers constantly feels lost and stupid. She's doing it again even though she passed last time.

I remember feeling that way when I was eleven, teaching myself. But I think this feeling goes away with self confidence and experience.

>I do reminisce about the pre-Internet days, when all I needed was my brain and a simple reference book!

Once upon a time, I had a bookcase full of three-ring binders containing plural "reference books", updated frequently via snap-open, pop-out, slide in latest version.

These days, I find Chrome's location bar far faster and more convenient than that bookcase!

She is absolutely correct about the importance of "developing a knack for asking the right questions on Google".

And as for copy-paste, when and to what extent to do that is another knack, one which will likely accompany the acquisition of the first knack.

I bet the person who maintained your code felt lost and stupid though! The benefit of libraries is that the reference exists at all.
You assume that all libraries are bug-free and documented accurately! I assure you that few are.
That depends. Use a well known library in Python or Perl, and they usually are well documented and tested.

Now choose some obscure JavaScript library from Joe Random on github, and what you say is probably true.

If those libraries are open source, you can still do it. ;-)
If you want to be super technical, sure. But in the context of this article that quote rings true. The masters really are surprisingly few in our field. At least the sort of masters I think you're talking about. In my experience most programmers have a sense of imposter syndrome that is very tough to crack so including that quote in the article was something I liked and think is important for other developers to hear. The amount of knowledge and experience needed for true mastery is so deep and wide that in practical terms I would agree with that quote completely.
"The masters really are surprisingly few in our field."

Contrary to what some readers here might expect, most highly competent developers don't have blogs or start their own companies. Most of the talented and experienced engineers who work in the bowels of Google optimizing search algorithms, or at Boeing writing avionics software or at Oracle designing database systems pursue their craft in obscurity and anonymity. I work with master programmers every day who nobody has ever heard of.

Having been on HN for a few years, I've recognized several of the people here as being masters of their craft based on the depth of understanding and experience that's evident in the words they've written.

"In my experience most programmers have a sense of imposter syndrome..."

I think that the Dunning-Kruger effect, in which "incompetent people will tend to overestimate their own level of skill" and "fail to recognize genuine skill in others"[1] is much more prevalent in our field than impostor syndrome (the opposite phenomenon).

[1] https://en.wikipedia.org/wiki/Dunning-Kruger_effect

HN is a bit of an echo chamber, unfortunately. Masters don't really tout themselves as that, nor do they self-promote everything they do.

On the other hand, there's plenty of jr. devs who blog about the 'amazing' gains of productivity from switching to Vim...

Being a "Programming Master" has so little to do with coding, but the ability to analyze and automate real world processes and make them interact intelligently for the benefit of the user. Solving puzzles and memorizing algorithms it's taking someones project and giving it life.