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

Yeah this is it -

Unconscious incompetent - you don’t even know how much you don’t know

Consciously incompetent - you have a rough idea of how much you still have to learn

Consciously competent - with willpower and effort you are competent at your job

Unconsciously competent - you are competent at writing code without effort or even thinking about it

Senior engineers (good ones) become unconsciously competent, and forget how difficult it is to write good code - because it’s now automatic!



The hardest thing these days is trying to think of names. Taking a concept and reducing it to one or two words that explain what it does, because to have a name that doesn't quite describe it, just, feels wrong.

I spend more time on thesaurus and dictionary sites than I did/do on places like planetsourcecode and stackoverflow.


There’s definitely a little truth to that, but the good ones are also more conscious over time of assumptions and dependencies and how to think about code and what to do and what not to do - and they will talk to you about it at length if you ask them. Half the problem is the young ones frequently don’t ask or listen. I was there once, young and full of pride and energy and not listening, and these days watch younger programmers nod their heads and then proceed to ignore any advice, even answers to their own questions. I don’t see unconscious competence causing many problems, aside from occasional impatience when working with someone who’s too green (or occasionally a bit stubborn about learning certain things.) Also the best older programmers will tell you to stop trying to be tricky & clever, they advocate learning how to write straightforward boring code, and it still takes programming for a couple decades yourself for that advice to sink in. Lawrence Kesteloot wrote a great piece about why this happens (also find other great programming advice sprinkled around his site): https://www.teamten.com/lawrence/writings/norris-numbers.htm...

The thing I see even more with seasoned programmers over time is conscious incompetence. We all start as unconscious incompetence, we all have no idea how much there is to learn, and people tend to assume that you can learn most of what is known in a career or lifetime. Then you learn a lot and grow older, and you find out that the visible bounds of what you don’t know grows much, much faster than the bounds of what you do know. The more you learn and the more you practice, the more you discover how very little you know. (BTW I first heard this from a retiring geophysicist, and have just noticed that it fits every great programmer I’ve worked with, as well as my own experience.)


I recommend any senior engineer look for opportunities to mentor, it keeps your awareness sharp and you may even encounter some unique perspectives that challenge your current model.


I have been surprised/hurt at the lack of these opportunities. I make myself very available to interns, sometimes, we stumble on great discussions, but they insist on doing it all on their own. People closer to my cohort often reach out for mentoring. I don’t know if it’s an ageism thing, or I’m just an asshole and I can’t see it, or what. I’ve decided to quit trying so hard to “give to the following generation”. I’m glad to share, but it’s not worth my own sense of “not mattering anymore.”


Other industries definitely have it better in regards to mentorship and passing the torch on so to speak. I've not once seen an apprenticeship style program for software developers, even though it's the perfect industry for it. There's not really a graceful ageing out process for the industry either. It seems the only pathways are moving up into management. At that point, often your software engineering knowledge gets put to the side, and new developers don't get access to it.

I've worked a few times with people I thought were just leadership jockeys their whole career, and then it turns out they were actually software developers for 20 years prior to that. They had all pretty much washed their hands of software, and their attitude was "Well, what would I know now. Not really my scene anymore.". That's a lot of experience thrown out the window.




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

Search: