Thus Spaketh Idd Salim

The difference between a mere programmer and a coder

by on Nov.09, 2010, under Coding, Personal

A programmer mis-using the word 'code'

Leo I am on a positive note. Bwana Too and Don will be happy clients by the end of the day. Systems sasa zitaisha. I am cleaning my table and wiping my plates for the BIG meal about to be served.

Cometh my dis on programmers and kudos on the coders (the real coders),  then cometh the question on my various input avenues (facebook, twitter, 2go, mxit, sms, zunguka and phonecalls). “Salim, what is the difference between a Coder and a Programmer?”, you ask.

Like you know, I don’t like beating around the bushes. Any kind of bushes. Actually, I don’t like them bushy. So, here cometh the answer:

Programming Languages:

Programmers use simple and easy-to-learn languages like PHP and VB. Most programmers will learn on-need-to-learn basis. When they need to perform a certain task, that is WHEN they learn how to do it, copy-paste code from the net, plug and pray.

Coders use functional and ‘geeky’ OO languages like Python, Lua, C++, Java, Lisp/Scheme or Erlang. Some use Perl and C. Most coders prefer to write their own code, algorithms, DB abstraction layers, custom widgets etc. Good coders write code. Smart ones copy-paste. (With strict emphasis to the DRY mantra and copy-pasting codes they UNDERSTAND, can adapt and actually debug).

Programming Methodologies

Programmers use the simple 2-tier-model. App and DB. Bora i can connect to a DB and list, add, delete and update data, najua that language. May a times, you will hear a programmer speak vile sacrilege like, ‘Najua C, C++, PHP, VB, Delphi.. but Java nimesahau kidogo…’

A coder will master ONE (Max 3) language and understand all the intricacies of the language. Top coders will involve approaches like ORM and MVC to make the code human-supportable. They are strictly OO. Never procedural. Hata kwa script ya  10 lines of code.

Databases Models

We all know Access, MySQL (especially after ORA) and SQL Server are easy to use and have tonnes of wizards. They make it easy to make apps, but do not conform to strict standards. A programmer would never know this. A MySQL-using programmer will be found using MySQL with ONLY myISAM and InnoDB tables.

Real coders use either a hand-compiled MySQL with variations of Memory, MyIsam, InnoDB based on application needs (fast search, storage, temporary storage) etc. When they decide to actually respect the client and the APP. They use PostgreSQL. Period.

DB Connection is always though an ORM or a very strict custom abstraction class. Not via end-user-facing code.

Systems Type

A programmer will always be heard talking about easy systems like basic networking systems, school systems, cyber cafe, payroll etc. Most find comfort in ‘developing solutions’ using CMSes like Drupal and Joomla.

Coders write Joomla and Drupal. They develop systems that challenge the human intelligence. Traffic systems, Natural language processors, logic based systems, marketing intelligence systems and stock market analysis systems. Basically, systems that programmers shun away from. Systems that ‘cannot be done’.

Coders are the ENGINE creators. Programmers are body parts assemblers.

Coders are the back-bone fixers. They manage the kidney and the liver. Programmers just make sure both nipples are of the same size.

Coders dig the foundation, mix the concrete and tar and lay the steel base of the highway. Programmers paint the road.

Case closed.

Back to code…

Wazi.

:, ,

  • Ephantuk

    Nice…Only that some coders can suck at business sometimes as they wallows in the complexity of the code and presenting how simple it is to do a given piece of app only to take time and finally switch off the phone. I happen to be a businessman dealing with a few coders (real hardcore coder as described). Very poor in communication, expression and striking business deals. A real coder needs a hand in business streamlining to avoid building apps to fill all drives and available backup storage without a dime.

  • Ezra

    well put cudos

  • Alwova

    hahaha now i know where i belong!!

  • Otipaps

    Salim, without a an efficient systems analyst and a systems architect, does a coder stand a chance at enhancing a complex system ? Unless of course you “coders” code everything…..huh!

    Wazi, back to analysis and ar…

  • George

    I have always felt that your definitions of coder vs programmer are a little disturbing since I like looking at good programmers as developers! On the other hand the softtware development strategy that you adopt is increasingly important. I would always vote for Agile methods and pair programming when it comes to software development approaches in a team and any good programmer relies on automated testing and good documentation.
    While a good developer will understand one or more languages, he is increasingly aware of paradigms that are necessary to tackle different real world problems. when to use a functional paradigm(Haskel,LISP,R),Objected Oriented Programming(C,JAVA,C++),Procedural(VB,BASIC,FORTRAN),etc
    Good programmers and developers are also aware of design patterns and increasingly use them to tackle real world problems.
    The term coder is ambigious and points to cryptness which is not good for developing maintanable code. If it comes to bare knuckles problem solving and creativeness i really fall in love with the term hacker. These are real creative minds and genius. Most of them also tend to be very good developers.

  • George

    The so called system analyst and the beast called architect do not exist in any modern beat-a-deadline-deliver-working-software team. The terms coined by microsoft are credited with late software delivery, a suit and tie. fck that!

  • DT

    Idd, well said. What must I do to enter the kingdom of God-ers?

  • crazyprogramm3r

    when all is said and done,what the users sees is the work of a programmer and that is what they associate with,who cares about geeky stuff when all they want is a solution to do something?wake up n smell the coffee man!

  • Anonymous

    Sniff.. sniff.. What coffee? Ohh, Nearly forgot. Tired cliches.

    Please read the post above before getting all hormonal. maybe, you mean ‘work of a CODER and that is what they associate with..’.. geeky stuff = hacker…

    wake up n smell the coffee man!

  • Anonymous

    Like all good things, it takes time… :)

  • http://twitter.com/jmwai james mwai

    This is nice article although I find your use of programming languanges in this issue rather disturbing. Python while a very extensive languange, is fairly easy to learn. PHP on the other hand has adopted oo paradigms in recent releases. I haven’t used PHP recently but i find it wrong to characterise people who use it as cheap programmers. It is used extensively in companies like facebook and yahoo. When it comes to programming languanges, no languange can claim to be ultimately superior than the others. The best languange is the one that works best for your particular problem domain. For instance python is slower than java but java cannot even be remotely compared to python when it comes to rapid web development. I am sure there are some things vb.net can do way better than other languanges. You can’t therefore use the programming languange one uses to classify people as good or bad coders.
    Regarding database models, the choice again depends on the problem domain not on mastery although you can use that to determine a persons skillset. I was of the opinion that the database models are influenced by scalibity which boils down to sql and no-sql debate.

  • Anonymous

    Bwana Mwai… if you are talking about advanced python and call it EASY, then I am impressed. We need to meet and discuss some NLP algorithms I am doing in python. I am not saying python is hard, only that if you know it well enough, then you are more than just a mere programmer. WAYY more.

    facebook does not use THE php we all know, use and love. They adapted the trunk and re-wrote their own PHP.

    Apart from crashing, I really want to hear what else VB(.*) can do better than any other language.

    In conclusion, someone coding in VB, Cobol or Foxpro will never and can never do systems that mundane python coders can do. All languages are equal, but some are WAYYY equal than others.

    Now, this does not mean that a Hello_world python programmer is immediately superior to a VB master. VB can do alot of tricks. Just like a Vitz can do a u-turn. But only when there is soap on the floor.

    I am sure tuko pa1…

  • http://twitter.com/ekaduki Edwin Kaduki

    According to your definition I’m most def a programmer.

    However even programmers are of different levels. There are those that can actually develop a solution from conception to completion, and they’re not like the other guys starting out.

    However unapenda jina coder but it may not necessarily represent what you’re refering to as a coder…

  • http://twitter.com/ekaduki Edwin Kaduki

    BTW, I also believe that at times you need to do a cost benefit analysis when you decide what tool to use… otherwise you will find you pay more (timewise, doing all things perfectly well), than you receive. Especially if you’re doing it for money. Unless you just settle to do BIG jobs where it is all beneficial.

  • http://twitter.com/ekaduki Edwin Kaduki

    By the way, I’ve always believed that the developer himself is the master of his tools. There are thousands of python “gurus” that produce products that suck. And .NET (of which I’m a faithful user – no regrets), has also been used by real gurus to develop real stuff. Look @ the respected stackoverflow (http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/). As much as there are many C# VB.net developers that are masquaraders, there are those that use those tools to great effect.

  • http://www.kenyanlyrics.com/mgangagenge Mgangagenge

    Kama indastiri yeyote, musheso wa gombyuta iko na manufakchaling(aka kodas), retailing(aka programas), ndistlibushon, whoresale na hiyo mabo yote. Mimi kusema ukweli niko na lispekt mingi sana kwa wale wa manufakchaling, lakini sio lasima ati ukuwe mmoja wao ndio upate mapato. Kwa hivyo matharau haifai. Angalia hawa wadosi wa Siricon Fally, mgani hapa ni koda? Less thani haf! http://www.siliconvalley.com/sv2020

  • hacker69

    lol strictly OO? dude, the days when people thought OO programming could solve world hunger and war are long gone. lots of languages are multiparadigm. “DB Connection is always though an ORM”? How now? I thought ORM put simply maps data from Object oriented to relational like if ur using java with mysql you use like Hibernate for persistence? there are developers and programmers. programmers jus write code thats it. developers know patterns, modelling, big O, data structures, heap and stack, writting specs, writing tests etc. now dude do you do unit tests on your code? do you think its better to have a factory to create objects instead of having constructors all over? do you use uml diagrams? how do your algorithms behave in terms of big o?

  • Mimi

    Salim…Rebel withouta course!!!Yeah i said it….i use html /css/javascript..what do u call that? oh, loook what html 5 and javascript can do!!

    http://creativefan.com/20-shockingly-cool-html5-canvas-applications/

  • Anonymous

    this blog post is totally pointless. you should get a term to call the ones you are calling programmers

    http://www.google.co.ke/search?hl=en&q=define:programmer
    http://www.google.co.ke/search?hl=en&q=define:coder

  • Anonymous

    Ok. If it makes you sleep better, I will call then wanna-be-coders.

  • Anonymous

    And what revenue model do those apps have?

    Err.. You are a Javascript Coder, I can testify.

  • Anonymous

    much better. thank you

  • Anonymous

    Err.. Bill gates = Coder.. err.. Sergery = Coder.. errr… Zuckerberg = coder… Errr… nindelee ama niache?

  • Anonymous

    My god!! Did you google all that?

    Coz you really spoke of things coders do…

  • Knjiru

    Zuckerberg has written fb in php: Oh wait that is a programmer

  • http://soloincc.blogspot.com soloincc

    There has always been a never ending debate on which title to apply to people who develop systems, people who code et. al. The debate of coders vs programmers is just a Kenyanised version of this whole debate as us programmers/coders/developers prefer looking fancy when we introduce ourselves as coders. The difference is the end product, performance, scalability and in general neatness of code. By merely using OO doesnt mean one is a guru, nor is not using agile, uml and all that mean that one sucks at writing code! As long as the code is neat, and we can debate what neat is all about, its performance is tight and the code is easily readable, adaptable and can be read by another coder, I can say BINGO, you are good at what you do.

    There is basically no difference to which ever tag you may choose to apply, the level YES! There is a big difference between a newbie and a guru, and I am sure you will find someone calling himself a newbie coder and another a guru programmer.

    For me, call me anything you want, even ‘typing monkey’, as long my code is neat, the performance is tight and I can pay ma bills am cool!

  • Anonymous

    Ohh no. You are wrong. Or maybe just ignorant.Original FB (100k to 1M users) was done in PHP.Then zuckerberg realized. PHP is a pussy language. At least the core code. So FB hired team PHP to come to FB, Sign an NDA and redesign PHP for FB. Jielimishe : http://www.readwriteweb.com/archives/facebook_gets_faster_debuts_homegrown_php_compiler.php

  • Anonymous

    CODER:
    The difference is the end product, performance, scalability and in general neatness of code. For me, call me anything you want, even ‘typing monkey’, as long my code is neat, the performance is tight and I can pay ma bills am cool!

    Programmer:
    Anything else apart from above.

  • http://www.kenyanlyrics.com/mgangagenge Mgangagenge

    Hapo kusema ukweli naona ni Sergei pekee dio koda. Agalia linki tafadhari, Bill Gates ata hayuko hapo, na Sakapag si koda vile umetuelesea. Na surely unafikiri ati hiyo decision ya kupatilisha PHP ilikuwa yake peke yake? Kichana ako na 24 pasent shares pwana. Facebook iko na wenyewe siku hisi, Sakapag ndio sura ya Facebook tu

  • Izo

    Ahem, I’m sorry Idd, but knjiru has a point, and you are wrong. Zuckerberg and his team didn’t redesign php. They built a compiler and a runtime environment to better optimise the PHP pages they had already developed. In the words of one facebook engineer:

    “HipHop (for PHP) programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features — such as eval() — in exchange for improved performance” (SOURCE: http://developers.facebook.com/blog/post/358)

    In other words the problem was optimisation/scalability rather than source code weaknesses. Pole.

    Back to hacking…:-)

  • Ezra Mureithi

    salim i think you need some more research read this http://brajeshwar.com/2007/are-you-a-programmer-or-a-coder/

  • http://www.facebook.com/people/Dexta-Dex/1260852431 Dexta Dex

    Programmer = engineer, Code = smart plumber.
    This is to mean the programmer has a better idea of the of the final destination of a product. All the individuals you mentioned from Bill gates to Zuckerberg stop at one point they all end being programmers coz they have to keep the design organized. I respect coders coz if there are people who know where a bug is its the coder. Besides when money is put on the table coders have no say, when passion is a measuring factor all programmers reminisce the coding days.

    In so many words its better to say both have their place in the software world/society and they co-exist peacefully each doing their bit while having their bragging rights in their right quarters if not amounts.

    To summarize, its safe to say coding requires energy while programming requires experience and tact. Coders want to become programmers as they age while programmers on the other hand just luv the coders company and energy with which they execute stuff.

  • http://www.facebook.com/people/Dexta-Dex/1260852431 Dexta Dex

    Something just hit me…..in college there are no coding classes rather programming classes. Where people are taught about “coding” languages, system design/analysis, databases etc. When you join a software developing organization you start out as a junior programmer coz in the end they’d like you to either become a senior programmer as you move up you become an analyst. This is to point out that in as far organizational structure is concerned, coders/junior programmers are at the bottom of the food chain.

  • Otipaps

    I think Salim is a programmer trapped in a coders way of doing things…

  • Ken

    love your blog though with a little arrogance some how well put ,Most of the people u call programmers are actually script kids ,my definition of programmers are orphans capable to develop System frameworks ,complex engines i.e biometric system /Analysis systems etc ,but at the same time humble enough to write javascript to validate a form.Lets accept most programmers are broke coz we always try writing code to solve problems in our world than solve real life issues and business problem that affect our life i.e communication/communication tools like facebook to a simple system to print a student receipt . I guess Idd Salim you should blog why the briefcase guys are kompressoring while CODERS AND PROGRAMMERS are stuck in IHUB (i never go there) trying to save the world , it takes more than code to mint money,good code without proper business we leave most of us as some 30 year old programming dinosaur /programming lingual with little money to say and long CV of projects.
    NOTE : Am a Kenyan programmer and paid well(proud to be but the company calls me Senior software developer above all i put business attitude in everything read the story of a smart programmer steve wozniak and super salesman /designer (creativity genius) Steve Jobs).

  • Anonymous

    “and you are wrong. Zuckerberg and his team didn’t redesign php” – read my response again.

    U just said what I said before… with more words…

  • Anonymous

    toka college. LIke you sai, you wont learn any CODING there.

  • Pingback: Just the victims of the ‘Ameleenian Conondrum’ « Thus Spaketh Idd Salim

  • Anonymous
  • http://www.facebook.com/profile.php?id=1043992606 William ‘Gridenko’ Njoroge

    I beg to differ with the origin of architect stuff. Architects deal with the software architecture. Not unless the project is really huge and there are so many aspects of interoperability u cant use an architect there fore Its true the “modern beat-a-deadline-deliver-working-software team” cannot accommodate an architect simply because of the nature of the project.
    U wouldn’t have a neuro-surgeon at a dispensary now, would you?

  • Gachagua

    Nice.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Kenyan Blogs Webring Member

Possibly related