4 ms·
C was my first language as a teenager. It is my native (formal) language, if you prefer. Considering OP's question: After C, I'd suggest looking into the Lisp
by LabMechanic 3y ago
C was my first language as a teenager. It is my native (formal) language, if you prefer.
Considering OP's question:
After C, I'd suggest looking into the Lisp family of languages like Scheme or Racket. I discovered them not long ago and wish I had found them sooner.
The reason is simplicity, ubiquity (Clojure), maturity (way older than C, see Lindy effect).
Then after Lisp, Python. Done.
There is nothing really to be learned thereafter. Programming languages come and go, but they have certain elements in common:
- I/O
- repetition (recursion)
- conditional execution
- arithmetic
Then there is stuff on top of that: OOP (which means data and code belong together. You can do that in C too:
https://www.state-machine.com/doc/AN_Simple_OOP_in_C.pdf https://www.state-machine.com/doc/AN_Simple_OOP_in_C.pdf
After C, Lisp (e.g., Racket) and Python, I would focus on common data structures and algorithm topics:
Data Structures
- Linked Lists
- Trees, Tries & Graphs
- Stacks & Queues
- Heaps
- Dynamic Arrays
- Hash Tables
Algorithms
- Breadth-First Search
- Depth-First Search
- Binary Search
- Merge Sort
- Quick Sort
If you want to go to the extremes:
Lambda calculus and the formal language around Turing machines. Turing machines only need to read/write memory, move around memory, execute a finite program, have (near) unlimited memory.
Excel seems Turing complete, so maybe start programming with Excel. Don't!
Then there are what I call "industry languages", programming languages that you cannot keep in your head easily and probably need IDE assistance with:
C++, Java, Scala, Rust, etc., are production environment languages.
Learn them later in life.