As I discussed in my last blog entry, there are two main areas in Computer Engineering, Software and Hardware. I thought it would be good to start a discussion today with the area that I know best,Software Engineering.Since the age of 9,when my parents first bought me an Atari 400 home computer (back in 1980 !), I’ve been learning to code.The 400 was a behemoth in it’s day,having a flat membrane keyboard, an 8 bit CPU with 8 KB RAM,and you had to use a detachable cartridge with BASIC on it to even program it to do anything.Those first years gave me the basic concepts of programming that still hold true today in the world of declarative or functional programming.I’ve been programming now for over 25 years, in many different languages,for many different applications,and I can say with all honesty that if you learn one language,it’s not too hard to transfer those skills on to the next.So it doesn’t really matter which language you learn (as long as it’s one of the more popular ones), it will teach you valuable concepts that will be applicable to most other languages.With that in mind, What are the languages to learn to program ? And what are the strengths and weaknesses of them all ? Obviously,there are many modern computing languages,most of which are free to download the compiler or the run time engine for, and most are also easy to learn. If you want to learn to code there are 4 good languages to start with. Let’s discuss the history of what are known as C based programming languages.