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
Friday, February 26, 2010
Subscribe to:
Post Comments (Atom)
80 comments:
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
Awesome post! Will keep this in mind for years to come.
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.
Nice points there! Very true, I've been through this. See my advices on becoming a better developer
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.
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.
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.
One thing to add: Senior's have done there share of mistakes and learnt from them.
Rick,
Send me your hometown for the Arkansas Bloggers page. You can just email that to me. Thanks.
This article is very helpful. It made me realize that I always have something new to learn.
Thank you very much!
Nice one Rick, I did not know you are familiar with COBOL :-). Keep posting it is more and more interesting.
Regards from P.
Salut! Harold Bury . payday loans
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
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!
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.
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.
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.
I really admire the author's contribution to this blog. He has done a fabulous job in putting this article together. Thanks for sharing.
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.
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.
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.
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!
You have done really nice job. There are many people searching about that now they will find enough sources by your tips.
This is really good information on keeping separate history files. We will show the class. Good job.
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.
It's great and interesting post! I'm a programmer so I will surely make use of it
asd
Sightline Payments Kirk Sanfordcar games
They are truly very well written, precise and to the point. Thanks.
Nokia Applications | Nokia Games | Nokia Themes | Nokia Prices | Nokia Reviews
this is one of the best websites that i have ever found.. lots of useful information here. Thanks and cheers mate.
dominos coupons
A very insightful article about the real differences between a junior- and senior-level programmer.
Cheap Activewear
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!
great post!!! Really great post, Go ahead guys.
Surely you are right, strike while the iron is hot
That is a good post for newbies thanks.
Classic Cardy
I think your article worth reading public. I would like to see more helpful reply post in your blog.
beethovens trios and duos
Amazing post!!!
Cataratas en los ojos
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
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
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."
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
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
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]
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
I was constantly hunting for reports on the internet in which can help me. Huge appreciate it to the useful information. baseball umpire videos
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
Junior programmer = E07
Programmer = E08
Senior Programmer = E09
Superhero = E10
very useful point for junior programmer,thanks
I knew from previous dealings with Maven, some I thought I knew but wasn't sure, and some I hadn't seen before
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!
Interesting thought and I can relate to this. Often this feel of "same job" creep in developers and if this difference is not understood,
"That’s is so impressive; I am very pleased by this post. Complete information on this post!!! I really like it"
Please keep the motivation that helps putting your experience in letters coming. It helps A LOT. Thank you for sharing.
unlikely post and superb blog, I really like this type of attractive articles keep it up
WOW! Nice information…it has helped me a lot.
I would have preferred to see a few more examples that didn't have anything to do.
Ampoule gu10 | Ampoule halogene
good job keep it up
Excellent posts to read keep it up and keep going on this way. And keep sharing these types of things Thanks
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.
London Airport Taxi
great job ..
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.
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
The author has share a great piece of knowledge , looking for more ..
gatwick parking
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
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
as a Junior programmer is very interesting stage for every programmer,because so many new learning steps with this stage
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.
I love this topic. Writer has made some solid in his article. I will surely research to verify them.
This article is fantastic. I need more articles on the same topic. When will you write more on this topic?
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
I am very impressed by this writing. I also want to share my personal writing on this. How can I send you this article?
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.
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
Excellent blog, lots of useful info. happens all the timeExcavator Training
Thank you for sharing this information, The information was very helpful and saved a lot of my time, Thank you for providing this information
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
Great work.Its nice good keep it up...
Great works Keep it Up.
gatwick meet and greet parking
Really fantastic post you have posted
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/
Excellent article! We are linking to this particularly great article on our website. Keep up the great writing.
Post a Comment