Also: Find someone who knows how to debug, and sit next to them for an hour or two while they tear apart a problem, fix it, and make sure it's solved. I've had a couple of tough sessions with world-class debuggers, and learned an amazing amount in a very short while.
Twelve Tips to Master Programming Faster
31–40 of 54 posts
Re: Twelve Tips to Master Programming Faster
#32Earlier quoted context omitted.
I'm tired of seeing the 10,000 hours everywhere, there are so many counter-examples I have no idea why anyone buys it. It doesn't take 10,000 hours to become a master striker in football, they are all young and the older you get, the worse you get. Does it take 10,000 hours to write master songs? No. Look at virtually any modern band. Not many people go through the same gruelling tours as the Beatles did before succe…
Wow, a single post where football, the Beatles, coin-flipping, dish-washing, waitering and the implied programming ... appear together. > Look at virtually any modern band If modern bands don't have to practice so much to be famous, that says so much more about their quality and the record labels that promote them. And I don't see any "modern band" being as popular and as eternal as the Beatles. Michael Jackson was c…
I think the point I'm trying to make is that they can write high quality songs at the beginning of their career as well as at the end. They didn't need 10,000 hours to come up with a great song, an expert quality song. I bet many had only written 20-30 songs before getting famous, certainly nowhere near 10,000 hours of song writing. You even get bands which then fall into mediocrity after a fantastic debut.
I have no doubt they put in hours beforehand, but they've been at school, certainly not playing for 3 hours a day for 10 years.
Not only that they have some mastery of the instruments, song writing, stage charisma, all distinct skills. Many great guitarists write crap songs.
So where did they get the 30 years to get all 3 skills?
I think the Beatles example is bad because they had an extra skill, the ability to morph their music with the times that many other bands don't (Bowie is another example of someone who was able to do this). They are eternal because they constantly changed, put out great albums, which has nothing to do with the 10,000 hours of practice they put in in Germany.
Re: Twelve Tips to Master Programming Faster
#33Re: Twelve Tips to Master Programming Faster
#34The 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 t…
Re: Twelve Tips to Master Programming Faster
#35Earlier quoted context omitted.
Wow, a single post where football, the Beatles, coin-flipping, dish-washing, waitering and the implied programming ... appear together. > Look at virtually any modern band If modern bands don't have to practice so much to be famous, that says so much more about their quality and the record labels that promote them. And I don't see any "modern band" being as popular and as eternal as the Beatles. Michael Jackson was c…
Hehe, yeah, pretty impressive :) I think the point I'm trying to make is that they can write high quality songs at the beginning of their career as well as at the end. They didn't need 10,000 hours to come up with a great song, an expert quality song. I bet many had only written 20-30 songs before getting famous, certainly nowhere near 10,000 hours of song writing. You even get bands which then fall into mediocrity a…
Innate talent is another requirement and will slow you down or speed you up, but I would doubt that you find any experts who are not greatly committed to their field (even if they hadn't dedicated 10,000 hours to it yet, they fully expect to).
Re: Twelve Tips to Master Programming Faster
#36As to #6—software engineering, at a sort of medium level, is mostly object-oriented. At a high level, when talking about how to parallelize and scale, it's more relational, and at a low level, when designing algorithms, it's first very functional and mathematical, then when optimizing them, very imperative. OOP is only really done to figure out what you're building; once you know that, figuring out how you'll build i…
I think the thing about OOP is it's an abstract set of concepts and it's not easy to grasp the benefits until you practice it.
Re: Twelve Tips to Master Programming Faster
#37I 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
#38This scares me. I can relate to the OP in that I denied my interest technology until my twenties until finally embracing it. Evidently, we're both looking to up our game and become better programmers. However, a few of his points are really... concerning. "Great code is easy to read" Not at all. JWZ's code challenges me; heck, some of the Rails code baffles me until I sit down and think carefully. A lot of code can b…
Maybe it should have been "make it as simple to read as possible, but no simpler."?
>"Use github." >Seems awfully narrowly scoped
It is narrowly scoped. The thing I've witnessed with newbies and SCM, is that they are so intimated by it they never get in the habit of using it(until they go to a good shop that uses it). But it takes 1 minutes to sign up for github. And 1 hour of typing "git commit, git add, git init, git push" etc to master the basics. Then building upon that knowledge is easy. But just getting started with SCM is the hardest part, imo.
> "Code is surprisingly more like English than like math."
Kind of the same point as earlier ("clear as possible, but no clearer").
My linux advice was pretty weak, I got some good emails suggesting it should have been more specific, and I agree with that. I should have said "Learn key linux programs". pipes, regexes, vim, etc.
Great feedback, thanks!
Re: Twelve Tips to Master Programming Faster
#39Re: Twelve Tips to Master Programming Faster
#40The 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 t…
I'm tired of seeing the 10,000 hours everywhere, there are so many counter-examples I have no idea why anyone buys it. It doesn't take 10,000 hours to become a master striker in football, they are all young and the older you get, the worse you get. Does it take 10,000 hours to write master songs? No. Look at virtually any modern band. Not many people go through the same gruelling tours as the Beatles did before succe…
I agree with your point, but these examples are flawed. The "fields" of tic-tac-toe, coin-flipping and dish washing are insufficiently complicated that it makes sense to talk about being an expert in them.
Waitering, on the other hand, is definitely an art. Sure, anyone can, with a minimum of training, take an order and put a plate of food in front of a customer. Knowing all details about all dishes on the menu in a fine a-la-carte restaurant, being able to remember an entire tables orders, deducing taste and matching wines from a huge wine list, keeping an eye on everything and understand the timing, so dishes are served and glasses filled exactly when the customer expects it -- and, by the way, doing this for maybe 5-6 tables simultaneously for 6-8 hours straight, on your feet, without missing a beat -- that takes years and years of hard practice.