Why "which programming language?" doesn't matter
I'm often asked "Which programming language should I start with?".
I get it.
You don't want to waste your time learning a "dead" programming language (or maybe you do ... see latin)
You fear sinking a substantial amount of time into one language but then needing to switch later, maybe due to better packages in the other language, or more job opportunities.
But... the starting language shouldn't matter, learning programming concepts (via any language) does.
Consider `i=100`, which programming language is it in?
This code creates a variable `i` and gives it the value `100`. This code will run in python, R, bash (arguably a programming language), awk (god no!), or many other scripting languages.
On the other hand, it's not C++ or Java which requires types and semicolons, see 'int i = 100;'.
With this one command, we've explored the concept "variable assignment" across languages.
Additionally we can translate code from a scripting language to a compiled language and vice versa.
`i=100` turns into `int i = 100;`
One concept, many languages.
Speaking of concepts, there is a reason why programming languages are taught from first principles. My preferred order of learning programming concepts are 'data types', then 'loops', then 'functions', and then maybe 'objects' or creating 'packages'.
Learn the concepts in several languages, and your progamming ability will be future-proof, even as new languages rise and become marketable.
Which programming language? All of them.
Some Resources:
- Dylan Beattie's talk "The Art of Code" - for motivation, and a reminder that coding can be fun and beautiful
- The book "Code: The Hidden Language of Computer Hardware and Software" - for an accessible (and illustrated) explaination of how computers and software works
- Stackoverflow's 2020 Developer Survey - for a yearly survey identifying the most popular programming languages. I highly recommend grouping these languages by similarity and learning them concurrently.
- w3schools - for a roadmap to learning website development langauges
- Hadley's "R for Datascience" - for the key concepts in tidyverse, and data analysis in R. Notice how the magritte symbol %>% is similar to bash's pipe symbol. Tidy data looks similar to GraphDB's triplestores.
- Another Book On Data Science - Learn R and Python, side by side
- cplusplus.com - for a quick lookup of C++ commands.