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:
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).
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.
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.
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.
Back to code…