Mike Levin SEO

Future-proof your technology-skills with Linux, Python, vim & git... and me!

Choosing Programming Languages

There are so many choices in programming languages, each with its own relative strengths and weaknesses and suitability for tasks. And in my mission to teach you one particular “short stack” there is really only one choice for the true and proper short-stack language—and that’s standard ANSI C… but I can’t really in good conscience start teaching you C as your first programming language, least I send you running away. So, I’ve chosen another path for my prescribed short stack approach to programming.

So, I’ll put you on the path towards C with a language that could in itself serve you well for the rest of your life, without ever having to take up C at all—Python. Think of Python as an over-built and over-simplified version of C, but in all the good ways. It literally was built to be an accessible first language to newbies (like you?) and to also equally satisfy pedantic Unix sysadmins and the C programming super-beings. It lives in the middle very different worlds, and does a great job at it.

The Google empire was initially built on Python, and like Python itself, bits can be ripped out and progressively replaced with optimized C code until you have the fastest, most optimized version of your code possible—first, getting speed during the development phase by virtue of using Python (Python is easy), and later getting speed-of-execution by transplanting C components into your Python. C runs fast and is compatible with Python in such a way as it can be seamlessly swapped out with your Python modules.

Each language has a personality, and the above paragraphs have greatly described Python (easy for newbies, compatible with C and a stringent dress-code). Other programming languages have different personalities, and might be right for you. Ruby is philosophically laden simple object oriented that encourages powerful one-line programs. JavaScript is wordy verbose lengthy powerful decloaking functional prototyping ubiquity. Common LISP is a languages for making languages that only you will understand, but which will do the job better than anything else. PHP is web apps in a can. And so on.