Live data from Hacker News

Twelve Tips to Master Programming Faster

breckyunits.com

11–20 of 54 posts

Re: Twelve Tips to Master Programming Faster

#12
"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.

Re: Twelve Tips to Master Programming Faster

#13
I 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 separate responsibilities.

Programming, 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

#15
post #12

"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.

From someone that is 100% self-taught I can say from experience that its more an issue of "you don't know what you don't know. This is the major crux of self-learning. How can google possibly help you if you don't know how to frame the problem or even what terms are involved in whatever it is you want to learn? One example I remember was learning about database optimization; how do I know to search for "normalization" if I don't know what normalization is? So of course getting answers from google is super-fast, but that entails that you know what to search for.

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

#16

I 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…

I think this is more of a starter tip list. I see this more of as a motivation push that some people need in order to get over the self-imposed obstacles of just starting. Just start!

Re: Twelve Tips to Master Programming Faster

#19
Mostly good advice, but the 10,000-hours-until-you're-an-expert meme bothers me. First, not everything is equally difficult. Playing the violin is harder than knitting.

Also, 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

#20
The author got the 10,000 hours-rule slightly wrong. :)

It'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

Post reply on HN