Advertisement

What distinguishes the top performers in programming?

Started by March 13, 2010 10:13 PM
16 comments, last by _the_phantom_ 14 years, 8 months ago
Well, it seems logical to me that only a very good programmer would know what makes programmers really good. So, I don't really know myself. As an 'outsider', I'm gonna go with the usual stuff: high intelligence and hard work. Throw in ambition too and I suppose you've got a top programmer.
Quote: Original post by RivieraKid
I am definitely not a highly intelligent person but my ability to consume code and visualize a system that I didn't write is far above my peers. My peers are better in maths and abstract thinking but they struggle to debug foreign code. In my current job my productivity is far higher than people with 10 years of professional programming experience. I have 2 years professional experience.

being productive doesn't mean I am a better programmer though. I learn things from my peers everyday.

It depends on the environment. Professors are better in an academic university role, I doubt they could handle the pressures of a high pace client driven code environment.


There are certainly different levels of "good" programmers. Math is not a strong point for me at all but I seem to have pretty good problem solving skills. I've had much smarter people then me as managers and they've never had anything but good things to say during code reviews.
Advertisement
Quote: Original post by ChurchSkiz
Another more specific example from my younger days, I started working for a company and part of my job was to spend about 2 hours a day manually entering in data for credit card processing. There was 7 of us on the team so 14 man-hours a day. I did this for about 3 days before realizing that about 98% of the keystrokes were exactly the same. I would not allow myself to waste 2 hours a day doing the same thing over and over so I created a macro that knocked it down to 3-4 minutes and ended up doing ALL the processing myself. The other people who had been doing this for years were shocked that the work suddenly "went away" and thought I was Jesus reborn. They just did what they were told and never thought to think outside the box.


Man.. I've had something like this.

I worked at an insurance company for 3 weeks to help out, my job was to print out renewal letters, sign them, shove them in an envelope, stamp 'em and put 'em in a bag to be sent.

The main chunk of this work was going through a list of customers one at a time, printing the letter and changing their status code to show the reminder had been printed.

Two days in I took a closer look at the system and found out that you could do the printing and status updates in bulk. I mentioned this to our deparment head (also my Uncle) and he didn't know about it. So I suggested I try it, he agreed as long as I checked it did what I thought. It did.

When I started working there at the start of the 3 weeks the team was a few days behind in letter processing. When I had finished they had 3 weeks worth of letters shoved in draws and waiting to be sent out.

I mentioned this sytem I had 'discovered' to the IT guy at the company around the water cooler on my final day... turns out they should have been trained on the system and thus should have known about it anyway...

When your talking about productivity of programmers you have to take into account several external factors which play into this (other than the obvious ones, intelligence, experience, creativity, etc..). Most programmers are employed in standard corporate jobs where creativity and initiative is usually not rewarded. Rather conformity and consistency is fostered, so they achieve an acceptable level of performance to maintain their jobs but are probably not approaching anywhere near their productive capacity.

In truth those heavily hierarchical organizations there are a few outstanding individuals and they might rise to the top (due to their inherent initiative, risk taking or sheer brilliance). I may be bias but I think you'll find such individuals more so in fields which are highly competitive and provide an avenue for creative expression such as games industry, movie industry, high tech aerospace, stock analysis etc..

I've worked with enough programmers to get a feel for the productivity of people put in a environment where they are given creative freedom and initiative to achieve. In that case the difference isn't as extreme as a factor of 10x. The best programmers were about 2x more productive code wise but more importantly their process was much more mature and they produced less bugs and better design code in general. The determining factor I think between the best and average programmer in that organization, was mostly personal initiative, experience and then intellect.

If you have the drive and willing to put the time into learning something throughly by doing and have the intellectual aptitude you can achieve the highest levels of programming.

Good Luck!

-ddn
Quote: Original post by ChurchSkiz
I think it's related to types of people and not the skill. People who enjoy programming are people that in general enjoy solving problems and creating solutions. This can be applied to any field with positive results.

...

Another more specific example from my younger days, I started working for a company and part of my job was to spend about 2 hours a day manually entering in data for credit card processing. There was 7 of us on the team so 14 man-hours a day. I did this for about 3 days before realizing that about 98% of the keystrokes were exactly the same. I would not allow myself to waste 2 hours a day doing the same thing over and over so I created a macro that knocked it down to 3-4 minutes and ended up doing ALL the processing myself. The other people who had been doing this for years were shocked that the work suddenly "went away" and thought I was Jesus reborn. They just did what they were told and never thought to think outside the box.


There's a lot of insight packed into that post.

For perspective, as ddn3 already mentioned, some companies don't respond well to your "personal ingenuity". I had a rather dead-end job. Being Mister Creative Problem Solver, i would try to optimize the workflow through the department. Sometimes it was allowed, and other times the response was something along the lines of "we just don't do that here". When your creativity is met with punishment, you can probably understand why some people just stop caring.

Needless to say, i don't work there anymore.
Whoever can write the fastest bubble sort!
Amateurs practice until they do it right.Professionals practice until they never do it wrong.
Advertisement
Quote:
Another more specific example from my younger days, I started working for a company and part of my job was to spend about 2 hours a day manually entering in data for credit card processing. There was 7 of us on the team so 14 man-hours a day. I did this for about 3 days before realizing that about 98% of the keystrokes were exactly the same. I would not allow myself to waste 2 hours a day doing the same thing over and over so I created a macro that knocked it down to 3-4 minutes and ended up doing ALL the processing myself. The other people who had been doing this for years were shocked that the work suddenly "went away" and thought I was Jesus reborn. They just did what they were told and never thought to think outside the box.

People at work mock me for using GVim and ViEmu. But man, the "record macro" "play macro" and "repeat last edit" feature saves endless amounts of typing. As do all the move-to-location shortcuts.


What puts the top at the top?
They know their limits (it is hard to drop your ego, and know you hit your wall).
They know how to organize and pace their workload.
They know how to make extensible an maintainable code. (and put enough comments so that others can hop in there and make edits).
They know how to apply problem solving skills. AND they know where and how to look up answers quickly when they encounter something new.
Quote: Original post by ddn3
When your talking about productivity of programmers you have to take into account several external factors which play into this ...


You also have to take into account my personal favorites;
- level of care
- level of pay

Even though I enjoy programming my productivity is modulated by those two factors; if I'm really into the project then I'll work harder than if I'm not. If I'm not really into it but I'm being paid enough then I'll force myself to be more productive.

Of course, if I ever get into a situation where both are low then productivity goes down the toilet... <_<

This topic is closed to new replies.

Advertisement