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.
|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.|
|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.