Recommended First Languages to Learn
Languages That Teach Your Brain How to Code Well
The following nine languages provide the most personal empowerment and overall knowledge of how languages work so that you can pick up any language later more easily.
Keep in mind that there are other essential languages that are not included but are required for most technology occupations.
Language | Category | Description |
---|---|---|
Bash | Imperative | Default shell language for Linux. Use from the command line or as a script. |
Markdown | Declarative | Primary knowledge source language developed by writers, for writers which can be easily written with nothing but the simplest text editor and rendered in any other format with tools like Pandoc. |
JSON | Data | Human-readable structured data language used for inter-applications communication. |
YAML | Data | Human-writable JSON-compatible structured data language for configuration and database-free information storage. Used for Markdown document front-matter. |
HTML | Declarative | Web content language invented by physicists requiring coding skills to write. |
CSS | Declarative | Web style language added when HTML started adding appearance elements instead of content and structure. |
JavaScript | Imperative, Functional | Web logical language that allows imperative logic (if-then) and event (when-then) handling. |
Go | Imperative, Functional | Modern Python, Java and C/C++ replacement for most work created at Google by “Bell Labs refugees” including Ken Thompson (the creator of Unix) and Rob Pike (the co-creator of modern Unicode standard). Gentle intro to pointers and strict typing. |
C | Imperative | Mother of all languages, literally. Originally created to rewrite the first Unix operating system. Really only need to learn enough to understand it and thereby all languages. |
Essential Languages
These following languages are so common that basic skill programming any any of them is generally considered essential for any technology occupation. These include many of the recommended languages but not all.
Remember that once you have learned all the recommended languages picking up new ones is much easier later.
These are ordered by general level of assumed expectation that you know them. There’s plenty to keep you busy learning for a long time but don’t feel you have to master them all before applying for work opportunities or joining an open source project.
Markdown |
HTML |
CSS |
JSON |
YAML |
XML |
JavaScript |
Bash |
Python |
Java |
C |
Go |
C# |
You forgot …?
You will find that this selection and order of languages differs significantly from what most traditional educational organizations — and even modern bootcamps — would have you learn. This is by design.
Many of the languages taught to beginners (like Java, Python, and Lisp) are ancient and focus on things like single object inheritance that would get you fired from most jobs as a software developer today.
It is no secret that these organizations and bootcamps are not keeping up. They are teaching ancient languages that few in the industry today would pick for greenfield projects. Sure these legacy languages will be around for a very long time, and there will be good jobs maintain systems written in them. But than can be said for COBOL and Fortran as well. That doesn’t mean you should choose then as them as your first languages to learn. In fact, it is the reason you should not learn them until later.
Python is best for machine learning!
Actually that is no longer true.