For years I have ignored the programmer vs. developer problem. For those of you that don’t know of this problem it’s quite simple: There is a trend in some IT circles to regard programmers as second class citizens, as code cowboys that are trigger happy, and are just good for writing code.
Right now if you Google programmer vs. developer, you will get articles on how developers:
- Design the application from the ground up.
- Write specs, and documentation.
- Write test cases.
- Write unit tests.
- Write code.
Instead a programmer:
- Write codes.
- Fix bugs; if you are lucky.
Well I don’t know about you but that does not seems like a real picture to me. People can call themselves whatever they want, you can call yourself a programmer, developer, engineer etcetera. Hell there was guy at my former employer that referred to me as “Engineer”, let me tell you I’m not an Engineer don’t have the degree, don’t have the know how. The point is that the word developer to my knowledge is a relative new term, while programmer is a much older term. Maybe the reasons of such distinction is to differentiate the real programmers, from the posers? I don’t know.
The truth is that when I hear the world programmer I think of people like:
- Dennis Ritchie
- Ken Thompson
- Bjarne Stroustrup
- Bill Joy
- James Gosling
- Linus Torvalds
- Keith Bostic
- Alfred Aho
- Brian Kernighan
- Rob Pike
- Jamie Zawinski (jwz)
- Theo de Raadt
- Paul Graham
- John McCarthy
- Guy L. Steele Jr.
- Larry Wall
- Eric S. Raymond
For a more complete list please go here.
If you take the time to visit each of the links above, you will see some are referred to as:
Those who know me, might be perplexed I left out from the list, who to me is a great programmer and someone that I admire, that is Donald Knuth. Dr. Knuth is to me is a master, any other title in my opinion falls short of his achievements.
Now I’m sure you are asking yourself, what is my position, if I failed to make my position clear from the statements above let me just say, I don’t believe in labeling, that said I don’t consider myself to be one or the other, but if you push me I have to go with Programmer.
I know a lot of people that ware the title “developer or programmer” and are neither. Programming is a lot more than writing code in your favorite language, and to me there are only: good programmers or bad programmers –of course the posers, but those are easier to spot.
I leave you with this little snippet from Donald Knuth:
Languages come and go much faster than I can write books. That’s why I chose to explain algorithms in English, not in the language of the moment. Readers learn a lot by converting from English to their favorite language; The Art of Computer Programming emphasizes things that are independent of languages. No matter what programming language is hot, you need good ideas to express in those languages. If you want your algorithms to be prepackaged, fine, but then my books aren’t written for you.
Actually I’m extremely glad to see the continuing development of languages, not only because programming languages are getting better and better in important ways, but also because such work soaks up a lot of people’s energy-therefore computer scientists don’t write papers that I would otherwise have to read, and I can get my books finished a lot sooner.
3 Comments
I consider myself a mix between a developer and a programmer (based on your expose). However, I don’t like when people refer to me as a simple programmer — the word has acquired a negative connotation throughout the years — because I do much more than just write code (costs/estimates planning, project management, requirements gathering, etcetera). On today’s ever-changing world, programmers are almost extinct. You no longer can afford to have individuals whose sole purpose in a company is to write code (get them in a room with a few computers and throw away the key! They can’t communicate to another human being!).
Just a thought…
I agree, but a programmers work has never been to just write code –that was my whole point. There is a misconception. Programmers have to do the same today’s developers does, and in some cases even more.
You are mixing a manager role, with a developers, a developer, unless he is a lead, does not have to deal with budgets, cost/estimates, project management (not a macro level), and other managerial duties.
My point is that there is no difference between a programmer and a developer, it does not matter how you flip it.
I agree there is a negative connotation to the word programmer, but if you look at the list I posted most of those individuals refer or referred to themselves as programmers. In the old days (well not so old, 10 to 20 years ago) a programmer, designed, planned, wrote the strategy document, plus the technical documentation, and some times, had to come up with: budget and estimates, costs,etcetera.
Now we don’t work that way, now we have a design team, that in most cases are made up of people that don’t know anything about programming, which to me is the worst thing that can happen, because to design an application however big or small, you do need to have programming knowledge, please don’t confuse programming knowledge with knowing a language. You need to know about architecture, security, performance, protocols etcetera.
Let me illustrate the state of the problem, with a personal example:
I used to work for a company that provided consulting services to a big USA telecom, I had the good luck of working on a high priority, highly critical project for said company, this project, had: requirement docs, design docs, networking infrastructure, etcetera, and were quite detailed. Now as soon as I finished reading the thousands of pages of document, I immediately told a few persons you know like say Tamgo, or Tak; This application will have to be re-designed, it looks good on paper, but it will not work, I can’t tell you the details as I’m still bound by NDA’s, I of course told my manager, and his superior, and even went so far as to talking to other managers about my concern (with my managers approval of course) every single person, except for a Senior production support engineer, and his manager. Ignored me.
What happened? A year later, the VP ordered a re-design and
a re-implementation of the core of the application, the cost to the company? I can’t tell you, but If I could you would not believe me. When the VP was told by the production support manager, that me a lowly programmer (My position was of an engineer, but who are we kidding) had made the observation that it would need to be re-designed, he called me into a meeting, and ask why did no one listened to me? The answer was he is not a developer. I took that as a compliment.
My point to all of this, is, there is no valid reason for the word/title programmer to have a bad connotation. The only possibility I see, is, that of there being bad programmers, but hell, where I worked, there are guys that are called developers, and don’t know the first thing about coding, designing, planning, scheduling, estimates, refactoring, maintenance, testing, or networking. There were guys that would panic, to the mention of the word “Recursion”, and look at you like you were crazy. There were guys that have no idea why having 100MB objects, it’s a bad thing!
The truth of the matter, is that if you called yourself a developer, and you are not able to: program, design, plan, manage your time effectively, solve problems, be proactive, and able to learn new things. I would not hire you regardless of whether you called yourself: Developer, Computer Scientist, or Programmer.
to paraphrase the old adage “Those who can’t program develop” the whole connotation of a programmer being bad was created by those that aren’t good at the job and need to fill in the gaps with other tasks, like scheduling, budgets, unit tests, etc. Yes I said unit tests because if you forget to test your code then there is something wrong with you.
As most profession they are full of people that are just half-good (or less) and they have to make up tons of work to justify their existence (read salary). All in all it doesn’t count how you call yourself, it is just what you are, and in the end the code is what’s important.
Post a Comment