Still I think my question remains un answered. May be I should re-phrase it as "How should I become a good programmer able to crack problems easily"?
What books did most of you used to aspire to be a good programmer?
Thanks again!
11–19 of 19 posts
Still I think my question remains un answered. May be I should re-phrase it as "How should I become a good programmer able to crack problems easily"?
What books did most of you used to aspire to be a good programmer?
Thanks again!
Step 2) call yourself a ninja
My recommendation is to build a bunch of interesting things that are at a higher level than one-off, design-free algorithm puzzles (well, those sorts of things aren't exactly 'design free' but they typically don't make you think about lots of tradeoffs - you find a plausible way to do something and do it).
I suspect that for most people this means finding an employer who solves interesting problems and getting an job there that actually involves participation in the 'good parts', so that you actually do it. My record of self-motivating after my degrees were done is pretty much zero - best to make this your day job.
The other part of the "doing" side of things is finding something to do. A good place to start is by solving a problem you have yourself or that you are interested in. Maybe you think all the todo list managers suck, or maybe you want a tool that helps to organize your porn collection. Great, pick a language and get to work.
Another secret is to hang out with smart people and other good programmers. Talk to others about their work and learn from them. The rising tide raises all ships.
It's kind of a hard thing to evaluate, I suppose. I would say that to 'become great' - you can't just sit around programming all day (although this will no doubt help). It's a kind of 'knack' for working problems out, finding new techniques, using tools in new ways etc. These are all the things that make 'great' programmers great imho, and none of them are actually directly related to programming. In my experience, people who are REALLY good at solving programming problems are REALLY good at it outside of the programming discipline too.
Thanks guys for your comments. I didn't know Code Ninja and Rockstars were not liked by the developers community per say. I would refrain from using those terms. Still I think my question remains un answered. May be I should re-phrase it as "How should I become a good programmer able to crack problems easily"? What books did most of you used to aspire to be a good programmer? Thanks again!
Thanks guys for your comments. I didn't know Code Ninja and Rockstars were not liked by the developers community per say. I would refrain from using those terms. Still I think my question remains un answered. May be I should re-phrase it as "How should I become a good programmer able to crack problems easily"? What books did most of you used to aspire to be a good programmer? Thanks again!
There is a huge difference between knowing and KNOWING. Knowing your tools well enough lets you focus on the problem rather than searching how to hacking your way through. Don't be a copy paste programmer.
Don't be mislead by fast typers either.
Fast turnaround is good, but stable code is better. What's the point of finishing in 1 day instead of 2 if you'll be debugging for a week afterwards? With enough practice you'll be able to get the stable code out in the same time as the fast typer.
Some book recommendations:
-Code Complete 2.
-Refactoring: Improving the Design of Existing Code.
-Clean Code.
-Head first design patterns.