Friday, February 26, 2010

A secret key to 'Senior' level programming

When I first started in DP ('data processing', we called it then) 20 years ago, I was working for a company that acted as an outsourcer for banks. I started with the company as a trainee, then graduated to the first programmer 'rank' of Junior programmer. Internally, this title carried the cryptic title 'E07'.

I soon found out my company ranked programmers in this way:
Junior programmer = E07
Programmer = E08
Senior Programmer = E09
Superhero = E10 (a very rare breed)

Payscales, of course, were tightly coupled to these ranks, much the same way they are today.

Like all junior programmers, I hoped to spend my required year or two in the E07 ranks, then move up. One thing I was lacking, though, was an understanding of what made the difference between the programmers that went to the very highest ranks and those who stayed in the lower levels.

One day I was working on a project with a kind-hearted E10 named James. We were having a friendly conversation about the kinds of tasks we had ahead of us when James made a profound statement. He said "The work is all the same, whether you're an E07 or an E10".

I was dumbfounded. Not until that moment had I realized that the work I was doing was just as important to the success of the project as the task James was working on. I was doing analysis and coding, James was doing analysis and coding. Even though he worked at the stratospheric E10 level, he used the exact same compiler I used, he worked on the exact same data I worked on, and he used the exact same development environment I used. A failure on his part would embarrass the shop, and a failure on my part would embarrass the shop. In the context of this project, we were peers!

Now, don't get me wrong. Junior programmers are most certainly NOT worth the same money senior programmers are. Today, I depend heavily on widespread recognition of this fact. But at that time, I gave this matter a little thought and came up with an observation that has benefited me immeasurably, to this day.

I looked to my friend the E10 and asked myself what the difference was between his skill set and mine. I drew the conclusion there were at least 2 areas in which he was superior: breadth and depth.

Breadth meant that he had a much wider array of tools at his disposal. At that time, I possessed a moderate amount of knowledge about batch COBOL programming. My friend was knowledgeable about batch COBOL, online COBOL, assembler, JCL, system skills, and more. In today's world, this would equate to something like a Java guy standing next to a Java guy that also knows C++, C#, Ruby, Python, Erlang and a good number of frameworks for each. If the project du jour is just plain Java, those two are on equal footing. But when the next project comes along things could most certainly be different.

The other dimension is depth, which refers to the amount of knowledge held in the workplace domain. In my yesteryear story, I knew how to write and compile my COBOL program, maybe even as well as my friend. But if my program had a bug, I had one trick up my sleeve-- diagnostic debug statements. My friend had that and the ability to read core dumps, knew how to make the compile listing show assembly language (which he could look over for performance heuristics) and more. In other words, beyond the surface of the program source code we produced, he had a much better understanding of the platform we were operating on and how to exploit it. Again, my source code might have been a match for his, but if we needed to go to the next level..... there was an indisputable difference.

In today's world, this might mean the senior guy understands how to tune a JVM, or how to extract meaningful data from profiling tools. The senior level guy knows how to install, configure, debug and profile the platform. The senior guy will know how to establish the build environment, the junior programmer will likely only be productive once it's established.

So I guess I figured out that I had a lot to learn, and set about trying to increase my own depth and breadth. (An effort that continues to this very day!) James' words from two decades ago have helped me measure myself against my peers to see where I need to improve, and this has furthered my career in more ways than I can imagine. If you're on the young side of your career, I hope they can help you, too.

Happy Coding!

Rick

80 comments:

Unknown said...

Come link your blog to our Arkansas Bloggers group that is forming. There are absolutely not obligations...just a way for us to be aware of others in Arkansas who are blogging. arkansasbloggers.blogspot.com

Anonymous said...

Awesome post! Will keep this in mind for years to come.

Aditi said...

Interesting thought and I can relate to this. Often this feel of "same job" creep in developers and if this difference is not understood, leads to frustration at workplace. Nice read.

ochronus said...

Nice points there! Very true, I've been through this. See my advices on becoming a better developer

Kevin said...

The most important point that separates a junior programmer from a senior is the ability to anticipate what all situations the system can get in and handle most if not all of them.

Junior programmers are involved in the implementation of things. But senior programmers while good at implementation are also good at looking at the big picture and understand how to build a system so that when problems might occur (and they do), they know exactly where to look for and fix it. That is the level of understanding of the system that they have.

ecmascripter said...

Great post!

I am also think the same thing. Become at least 2 years as junior programmer (coding). After that, involves in Analysis and coding (at least 2 years) and start to work in Architecture area. Become s/w architect is the highest role in s/w development.

Elena said...

It was interesting to read this article and I hope to read a new article about this subject in your site in the near time.

Anonymous said...

One thing to add: Senior's have done there share of mistakes and learnt from them.

Unknown said...

Rick,
Send me your hometown for the Arkansas Bloggers page. You can just email that to me. Thanks.

Eggman said...

This article is very helpful. It made me realize that I always have something new to learn.

Thank you very much!

Mariusz Róg said...

Nice one Rick, I did not know you are familiar with COBOL :-). Keep posting it is more and more interesting.
Regards from P.

Anonymous said...

Salut! Harold Bury . payday loans

Anonymous said...

Wonderful post, thanks for putting this together! "This is obviously one great post. Thanks for the valuable information and insights you have so provided here. Keep it up!"
Dissertation Writing | Buy Dissertation

Twitter followers said...

In this era of blog ,we easily get nice & updated information for research purposes... I'd definitely appreciate the work of the said blog owner... Thanks!

Dissertation help said...

Wow Impressive! Your blog is very informative. However, it is pretty hard task but your post and experience serve and teach me how to handle and make it more simple and manageable.Thanks for the tips… Best regards.

wound bandages said...

I have been a regular visitor of this site and I love reading blogs posted here. They are truly very well written, precise and to the point. Thanks.

Moleskin said...

Glad to be visiting your blog again, I have been away since months from the internet. I just love reading these types of top quality blogs. Thanks for sharing.

incontinence products said...

I really admire the author's contribution to this blog. He has done a fabulous job in putting this article together. Thanks for sharing.

foley catheter said...

It gives me great pleasure to see author's coming up with some great topics and sharing with us through their blogs. I am really thankful to them for their efforts. Keep up the good work.

medical supplies said...

This topic hasn’t been much discussed on the internet, so it’s good to see people sharing these types of rare information through their blogs which provide knowledge to the readers in many ways. Thanks for sharing.

Dissertation Writing said...

I read whole topic about "Senior' level programming". I would like to follow that you give this usefull idea. I love to learn programming and definitely i will apply this.

seo agency sydney said...

In this era of blog ,we easily get nice & updated information for research purposes... I'd definitely appreciate the work of the said blog owner... Thanks!

Testking 156-215.71 said...

You have done really nice job. There are many people searching about that now they will find enough sources by your tips.

Money news said...

This is really good information on keeping separate history files. We will show the class. Good job.

bard catheters said...

eel delighted to see people sharing quite profitable information on the internet through their blogs. This site has some of the best blogs I have ever come across. Thanks for sharing.

prank callers said...

It's great and interesting post! I'm a programmer so I will surely make use of it

Anonymous said...

asd

Anonymous said...

Sightline Payments Kirk Sanfordcar games

Junaid Ahmed said...

They are truly very well written, precise and to the point. Thanks.

Nokia Applications | Nokia Games | Nokia Themes | Nokia Prices | Nokia Reviews

dominos coupons said...

this is one of the best websites that i have ever found.. lots of useful information here. Thanks and cheers mate.

dominos coupons

juliawells said...

A very insightful article about the real differences between a junior- and senior-level programmer.
Cheap Activewear

SAN DIEGO HOTELS ON THE BEACH said...

Glorious data here. It is glad to see this blog, it is good and detailed fun to read this, nice informative blog, Thanks for the useful information!

sALT lAKE cITY bARS said...

great post!!! Really great post, Go ahead guys.

coursework help online said...

Surely you are right, strike while the iron is hot

Alex Mick said...

That is a good post for newbies thanks.
Classic Cardy

Alex Edward said...

I think your article worth reading public. I would like to see more helpful reply post in your blog.
beethovens trios and duos

romancito2010 said...

Amazing post!!!

Cataratas en los ojos

Alex Edward said...

I wanted to say that it's nice to know that someone else also mentioned this as I had trouble finding the same info elsewhere. This was the first place that told me the answer. Thanks.
Sisley
Sisley cosmetics
Sisley skincare

Alex Mick said...

Thanks for nice info. It’s useful for me. Can you give me some more information with details? I will wait
for your next post.
floor clocks

Unknown said...

ipod touch apps said...

"This is a very good tips especially to those new to blogosphere, brief and accurate information… Thanks for sharing this one. A must read article."

Alex Mick said...

You also know how to make people rally behind it, obviously from the responses taking time and real effort to make a good article !!
Aberdeen bed and breakfast

amhash said...

Awesome information. I am really surprised with this topic. Keep up the good work and post more here to read.
Cheap Logo Design | Custom Logo Design | Stationary Design Service | Website Design Service | Brochure Design Service | Banner Design Service

florida gator forum said...

Absolutely fantastic topic! Great blog. Thanks for taking the time and writing this. please continue.

[url=http://www.gatorsportsnation.com]florida gator forum[/www.gatorsportsnation.com]

things to do chapel hill said...

That's is so impressive; I am very pleased by this post. Complete information on this post!!! I really like it things to do chapel hill

Play baseball umpire videos said...

I was constantly hunting for reports on the internet in which can help me. Huge appreciate it to the useful information. baseball umpire videos

shops to repair xbox said...

You got a very helpful weblog I've been right here reading through for about an hour or so. I'm the beginner as well as your achievement is extremely a lot a good motivation personally. shops to repair xbox

dissertation writing said...

Junior programmer = E07
Programmer = E08
Senior Programmer = E09
Superhero = E10

very useful point for junior programmer,thanks

literature review help said...

I knew from previous dealings with Maven, some I thought I knew but wasn't sure, and some I hadn't seen before

discount bedroom sets said...

Hey
Rick Wagner's Blog
I wish to say that this article is awesome! I would like to see more posts like this, Well done!

BA Dissertation said...

Interesting thought and I can relate to this. Often this feel of "same job" creep in developers and if this difference is not understood,

hd wallpaper backgrounds said...

"That’s is so impressive; I am very pleased by this post. Complete information on this post!!! I really like it"

gcx said...

Please keep the motivation that helps putting your experience in letters coming. It helps A LOT. Thank you for sharing.

uk dissertation writing said...

unlikely post and superb blog, I really like this type of attractive articles keep it up

Natural remedies said...

WOW! Nice information…it has helped me a lot.

Alex Mick said...

I would have preferred to see a few more examples that didn't have anything to do.
Ampoule gu10 | Ampoule halogene

luton airport transfer said...

good job keep it up

Ampoule led said...

Excellent posts to read keep it up and keep going on this way. And keep sharing these types of things Thanks

Projecteur led said...

I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading.Nice blog,I will keep visiting this blog very often.

Johnny said...

London Airport Taxi

great job ..

Micheal Leo said...

That Blog is so interesting and makes a very nice image in my mind. That is very much helpful in nominating the board of directors.

Micheal Leo said...

That Blog is so interesting and makes a very nice image in my mind. That is very much helpful in nominating the board of directors.
Hounslow Taxi | Heathrow Airport Taxi

gatwick parking said...


The author has share a great piece of knowledge , looking for more ..
gatwick parking

cheap gatwick parking said...


I always want to read this kind of article that is so much informative , it force user to come again and again
on this website and read such a good type of article like this one , great share look like author is having
superb command on this topic .
cheap gatwick parking

Micheal Leo said...

Plz tell me some tips about how I can manage my blog like you are managing. I’m really impressed by your style of blogging.
Hotel near Central London | Hotel near Heathrow airport

dissertation structure outline said...

as a Junior programmer is very interesting stage for every programmer,because so many new learning steps with this stage

Value for Venue Hire in London said...

I disagree with negative comments on this post as the post has justified its point with authentic sources and there should be no problem on it.

Banquet Suite London said...

I love this topic. Writer has made some solid in his article. I will surely research to verify them.

Banqueting Ealing said...

This article is fantastic. I need more articles on the same topic. When will you write more on this topic?

meet and greet car parking said...

I am glad to see the information provided by the author .Generally I do not post on articles, but I would like to say that this blog really forced me to do so! Thanks, really nice blog.
meet and greet car parking


Hotels Chiswick said...

I am very impressed by this writing. I also want to share my personal writing on this. How can I send you this article?

Ampoule led e14 said...

I daily watch your website because it helps me in my many works and it is very beneficial for me because it gives the work a professional touch that is really an amazing thing.

help with dissertation said...

A very good post. I am glad to have found this page through search engine and I am enjoying my stay reading some top quality blogs. Thanks.
pay someone to write my dissertation
online undergraduate dissertation

Unknown said...

Excellent blog, lots of useful info. happens all the timeExcavator Training

dissertation proposal said...

Thank you for sharing this information, The information was very helpful and saved a lot of my time, Thank you for providing this information

Unknown said...

Very informative and worthy post. Thanks for the sharing such a precious updates with us.

Real Estate Software

Workout Planner

Farmer Software

Port Software

Stable Software

Dairy Software

Supplies Software

Project Software

watch free online movies said...

Great work.Its nice good keep it up...

Unknown said...

Great works Keep it Up.
gatwick meet and greet parking

High School Diploma Online said...

Really fantastic post you have posted

jaring safety said...


Nice article, thanks for the information. It's very complete information. I will bookmark for next reference
jaring futsal | jaring golf | jaring pengaman proyek |
jaring pengaman bangunan | jaring pengaman gedung
http://www.jual-jaring.blogspot.com/
http://www.agen-jaring.blogspot.com/
http://www.pancasamudera-safetynet.blogspot.com/
http://www.toko-jaring.blogspot.com/
http://www.pusat-jaring.blogspot.com/
http://jualjaringpengaman.blogspot.com/
https://pancasamudera.wordpress.com/
https://pasangjaringfutsal.wordpress.com/
https://jualtambangmurah.wordpress.com/
https://tokojaring.wordpress.com/
https://jualjaringfutsal.wordpress.com/
https://jaringfutsal.wordpress.com/


buy dissertation online said...

Excellent article! We are linking to this particularly great article on our website. Keep up the great writing.