Point #1 is in the same vein as Peter Norvig's Teach Yourself Programming in 10 years. http://norvig.com/21-days.html
Twelve Tips to Master Programming Faster
11–20 of 54 posts
Re: Twelve Tips to Master Programming Faster
#12I disagree with the mentor one. The Internet has always provided faster better and more complete answers than the "ask a co-worker" method, for me anyways.
Re: Twelve Tips to Master Programming Faster
#13Programming, as outlined by guidelines as in the linked article, is nothing more than being able to write the code that solves a problem. Engineering requires you to be able to organize the code and the machines, networks and other infrastructure required to allow your client to reach your code.
Re: Twelve Tips to Master Programming Faster
#14Re: Twelve Tips to Master Programming Faster
#15"Something that you’ll spend 5 hours panicking to learn will take them 2 minutes to explain to you." I disagree with the mentor one. The Internet has always provided faster better and more complete answers than the "ask a co-worker" method, for me anyways.
My first experience with "coding" was trying to make a website for my tshirt printing business. I spent literally 12 hours a day for 10 days learning css and html and I loved it. So I coded about 10 pages for my website. Naturally I just copied and pasted the layout and menus and common stuff over and over throughout all pages. Finally on the 11th day, through a random search for something I don't remember, I stumbled upon this concept of "include_once" where you could create your website in this "templated" style. You just put "include_once(header)" and then includ_once(footer) and you didn't need to constantly duplicate everything. But it was in some language called php so that entailed that i start googling "php" ...
So you see, a 5 minute talk with a guy that knew about coding websites could have quickly briefed me about the differences between client-side and server-side languages, and why and how to use them. Could have told me to start with a framework like kohana rather than write spahgetti-rific code for the first 3 years of my coding hobby. Could have told me about using things like jquery for quick js development (and why and how js is appropriate). Yes yes, expert "crash courses" are definitely valuable.
Note: I tend to disagree with the term "self-taught". Plenty of people have taught me, it just has not been in a classroom environment. I have learned endlessly from the great teachers that write books, code open-source and take the time out to answer forum posts- so I'm not self-taught, its more like self-motivated.
Re: Twelve Tips to Master Programming Faster
#16I think this kind of advice is lacking in a major way: being a good software engineer is not just about being able to write code. Writing code, even 10K hours worth of code, does not make you a good software engineer, unless you also practice how to design your software. You should be able to determine when you are violating DRY, what parts of your program should be separated by a clean internal API and how to separa…
Re: Twelve Tips to Master Programming Faster
#17Re: Twelve Tips to Master Programming Faster
#18Just one disagreement: 5 hours fighting against code can be sometimes better than getting it solved in 2 minutes ;)
Re: Twelve Tips to Master Programming Faster
#19Also, being an expert programmer suggests that you've levelled out, that you've reached a permanent high plateau. There is no plateau. It's a slope all the way to infinity.
If you find you've reached a plateau, shift gears and change to a more abstract programming language.
I'm at 30,000 hours, and I'm not an expert programmer. I'm still learning every day, and I like it!
Re: Twelve Tips to Master Programming Faster
#20It's not as simple as merely doing something for 10,000 hours and then you magically become an expert.
The 10,000 hours-rules refers to the act of performing 10,000 hours of "deliberate practice" (or sometimes called "deep practice") in order to become an expert.
And that's something very different to simply code 10,000 hours in your day job. When googling for that term, you'll find plenty of studies and other resources. :)
If you are interested in this topic, I can recommend the book "The Talent Code" by Daniel Coyle - yes, the title is cheesy but it's a good book, I've read it in pretty much one sitting. A gentle and entertaining introduction into the whole field of how to become an expert.
"Pragmatic Thinking and Learning: Refactor Your Wetware" by Andy Hunt also spends an whole chapter on deliberate practice. It's a very good book, too.
EDIT: This blog post by Derek Sivers could be considered as an example of deliberate practice: http://sivers.org/kimo Just stumbled about it as a submission to HN, nice coincidence... :D