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.

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.
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.
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).
Rust Imperative Fastest safe low-level language. Uses the LLVM. It is almost impossible to write unsafe code (unlike C, Go, and others). Rust syntax is harder than Go and its concurrency considerably less elegant. But safety, speed, lack of garbage collection make it a favorite. Rust causes you to think safely as well as code safely.

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.

See Also