Conversely, the authors who have studied it long and hard and ought to be the ones who think it’s easy, never ever make such a claim.
I’ve been at this for years and I sometimes feel like I’ve only just begun. – Kyle Simpson
I recently watched Ben Callahan’s course on responsive web design. I found the most interesting bit was right at the end when he spoke about the 4 stages of competence:
1. unconsciously incompetent
2. consciously incompetent
3. consciously competent
4. unconsciously competent
Seth Godin has written a book called ” The Dip”. Steve Smith has a brief review of it here.
Between stages 2 and 3 we experience a Dip where we have to get worse before we can get better. This applies to just about any skill that we need to learn.
There are certainly some commonalities with learning other languages, but also some real differences. There have been a number of lessons that I’ve learned that have caused me to completely reevaluate the language and look at exactly the same piece of code as if it has become a new language. Things like closures, callback functions, prototypical inheritance, osmani’s book on design patterns: every time it is like reaching the next level in a video game. It’s still the same game, but the rules of the game have gotten more complex.
I’ve seen and heard this too.
Even easier: the code is over-engineered to death