Effective Programming


I’ve been programming for the last 6 years and I have a bunch of programming languages under my belt. But just because I know other languages doesn’t make me a desireable programmer. Any decent programmer can pick up a new language within a few weeks and pick up the new programming paradigms after. What makes me desireable is how effective I am when I program.

You need to be effective else you risk being left behind

Break your task up

Programming isn’t something you just start hacking away. Without a game plan you are looking at cornering yourself between getting burnt out or getting stuck on a problem. An ice sculptor doesn’t start just hacking away at a peice of ice expecting something to come from it. An artist doesn’t just start throwing paint on a canvas without having an idea of what they want to convey.

As such you should have a plan.

  1. Install rails
  2. Build SAAS application
  3. ????
  4. Profit

This plan does not work… I really shouldn’t have to explain why. If I was to build a project management application this is how I would initially make my checklist of stuff to do

  • Welcome page
  • User Sign Up
  • Setup Payment System
  • Project Creation
  • Project Update
  • Task Creation
  • Task Completion
  • Due Dates
  • User assignments
  • Time tracking

As you can see the points are generic and scoped as such that you could tackle each point almost within an hour. This is how I divide my tasks up and how I can get my stuff done. You should check out http://asana.com to keep your checklists in order. It’s fairly simple and you can play mutliplayer todo list tackling.

Manage your time

Don’t procrastinate. If it’s a tough problem that needs to be solved for the rest of the team to move forward. It doesn’t make sense to put that problem off until later since other developers are waiting on you.

Break the problem up, put a deadline goal on your task. If you can offload some of the hard work to someone else while you tackle another issue.

Take a break

It is better to be effective than stubborn. It’s a no brainer. I’ve seen people tackle the same problem for hours on end with little to no progress. If you’ve been to a University for a computer science course, I can almost guarantee that you have done a homework assignment that took a large amount of time to solve a problem.

Stop that! It’s a giant waste of time. Get up and go do something else and come back to the problem later. Be effective, not a hinderance.

Ask for help

You are only human, you can’t solve every problem by yourself. Sometimes telling someone your problem will actually solve it. I hang around on some IRC channels and ask for help. This doesn’t mean that you go and mooch off of other developers. No body likes a leech.

Be effective!