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

Having taught many non-programmers to start their programming journey, this article rings very true.

The "cliff of confusion" he describes is a function of the Dunning-Kruger effect (http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect), which indicates that you don't know how bad you are at something until you get better at it. As an educator, the challenge is to make that cliff as unscary as possible and chart a path through the "desert of despair" so that you're not pushing too much at one time.

On the other hand, as a self-learner it's really really hard to get past the point where you've learned enough to know how much you have yet to learn, or in terms of the article, when you look over the cliff and see how HUGE your journey is becoming.

To a large extent, the article is an advertisement (in more ways than one) for guided learning, expressed in a pretty clear way.



Totally unrelated to this, but I was interested to see how often the Dunning-Kruger effect is mentioned on HN, since it seems like the comments on almost anything will inevitably yield some reference to it (the opposite, impostor syndrome, comes up quite often too, but has a more obvious and less interesting name); a quick search yields 730 results for "Dunning Kruger" over all time, and half a dozen in the last week alone... which was perhaps a little less than I was expecting, but still rather a lot.

Totally unrelated to that, Algolia's HN search really is magnificent - supremely fast, accurate, and even quite attractive. Impressive.


Totally agree. Helping novice programmers through that time of "Oh my god, I know nothing, I will never be good at this" as their world is expanding is crucial. I think having a support system can make a big difference here -- and it might last months or even years until you feel confident enough to work full-time, when you'll re-enter the desert (since the tools your job uses probably include at least one thing you're not familiar with).

One thing that I think separates senior engineers from juniors is a level of confidence and willingness to tackle the unknown and learn new things, tempered by pragmatism that they don't all need to be tackled and learned right away.


The Dunning-Kruger effect pretty much sums up myself. I feel like I have a firm grasp on the structure and syntax of JS, but now I'm questioning whether I really do. I always feel awful, as I can't really implement anything, and am always frustrated when I can't get off the ground starting a project.

I just don't know how to actually _do things_ with code. So, in essence, I think I know the language, and in a sense I do insofar as I know how to write an if else statement, a while statement, declare a variable, etc., but I _don't_ actually know the language, because I can't do anything with what little I do know.

Do you have any advice?


Here's a few...

Build something, anything. Then set it aside for a while, come back to it and improve it. Reading code you wrote a couple of months ago will highlight very quickly the parts that are clear and concise and those that are not.

Pick an open source project that is interesting to you and improve the documentation. Writing clear documentation requires a depth of knowledge that surpasses just employing it.

Give a presentation on and/or tutor someone on a topic. Like writing docs, this requires being able to think clearly about the topic.




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

Search: