How to Become a Great Programmer: One Easy Lesson!

Introduction


Coding

Formatting Your Code
Why style matters

Universal Programmers Toolkit
Care and feeding of your code collection

Effective Proactive Debugging Techniques
It's all about the tools

Good Programming Practices
What to do (or not)

Banning Bad Bots
A short but effective script


Management

The Joy of Specs
How to (almost) guarantee a successful project

Habits of Successful Freelancers
Advice for success

How to Become a Great Programmer
One easy lesson!

Bidding on a Stranger's Project
The basics

Freelancing 101 - Don't Send That Email!
Pick up the phone instead

Ensuring Your Web Site Project Succeeds
Advice for clients


Photography

How to Take Great Photos (And Fix Lousy Ones), Part 1
Composing and shooting your photos

How to Take Great Photos (And Fix Lousy Ones), Part 2
Editing and postproduction

How to Become a Great Programmer: One Easy Lesson!

Introduction

Whether you arrived here as part of a serious quest to become a great programmer or just to improve your programming skills, you've come to the wrong place. Odds are you're a lousy programmer and you'll never rise above mediocrity at best.


Let me explain:

 

The main point of this article is to drive home the point that the best programmers are self-motivated and have the necessary mental resources to fill the gaps in their knowledge. In other words, good programmers are natural hackers (in the traditional, knowledge-seeking sense of the word.) That's it. If you don't fit that profile, well, you're not a very good programmer (at least compared to those with a hacker mentality) and will always struggle with programming.

 

In other words, to use the "teach someone to fish and you've fed them for a lifetime" analogy: lousy programmers need to be shown how to fish while great programmers can figure out for themselves how to fish.

 

Despite my bleak outlook for your future, I actually do have some advice for the wanna-be great programmer:

Attributes of Great Programmers

Earlier I stated that the best programmers are self-motivated and have the necessary mental resources to fill the gaps in their knowledge. That doesn't mean they know everything; rather, it means they have the ability to:

 

 

In other words, great programmers don't just know a whole lot of stuff (although many of them do), they also have the ability to learn more stuff: they are self-sufficient knowledge-acquiring machines. Instead of simply wondering "why?" and wringing their hands, they naturally dig in and find out why, without being told to do so (or how).

 

So far I've just talked about a general ability to seek out and find answers on your own. While that single attribute is the driving force behind any great programmer, it is only part of the picture. A great programmer must also, at minimum, understand all the basics of programming: data structures, logic, flow-control, and all that other stuff they teach you in college.

 

But all those details are outside the scope of this article. Remember, this article is about how to learn to fish, not technical details on how to bait the hook or cast the line.

Starting Point

So where does this leave you? That depends on your previous programming experience:

 

Complete novice: The bad news is that you have a zillion things to learn. The good news is that any experience will be a learning experience. The trick is finding things you can understand to begin with. The simplest way: Google "___ tutorial" (fill in the blank with the thing you want to learn. Of course, much of this will be over your head. You need to hook up and hang out (whether online or in person) with those who know more than you. Consider getting a mentor and/or hiring somebody to jump-start your education process with an hour or two of pointers. Your goal should be to become self-sufficient as quickly as possible, and to rely on your mentor only when you're truly stumped.

 

Average programmer: You know a bunch of stuff but you're somewhat of a Jack-of-all-trades. You need to hone your skills in one area and master it. Google "advanced ___ tutorial" (fill in the blank with the thing you want to learn).

 

Advanced programmer: you shouldn't have even read this far.

 



Return to Kim Moser's Generic Home Page.
Copyright © 2014 by Kim Moser (email)
Last modified: Wed 09 January 2008 17:29:52