Photo by RetroSupply on Unsplash
2000 lines - or more - to learn programming - from WYSIWYG to MERN Stack and Bitcoin
The first book that I opened about web development was a book about the HTML, in the epoch of WYSIWYG and iframes. Since my 12 years old age the web changed. Some years ago any web developer used plugins to display videos online, tables, and Adobe Macromedia.
Yes, one day, tables were a good practice to creating layouts. Today, tables are a thing to be prevented if possible. A time without the Boostrap, a time with an HTML version specified for Internet Explorer, a time without backend runtime for JavaScript, a time without EcmaScript.
Now the discussion is about descentralized finance (Bitcoin), data science, artificial intelligence, prompt engineering, typescript, nodejs, Rust, Python 3.x, etc.
Things changed a lot of. One advantage of these changes is that learning web development and computer science online it`s more accessible.
You can consume websites like as Roadmap.sh and Youtube.com to learn from the gurus and genious, to watch conferences, and more. You literally has the opportunity to follow to a channel specialized in HTML/CSS Layouts. Moreover, you can learn from MIT, Harvard, Stanford, Yale, all for free and online.
But so much information and resources can confuse you about the path, then I decided to share my currenct learning plan. This plan is for long-term learning, not a "one-month" plan.
This plan have more than 1900 lines to help me track the progress (it's a spreadsheet, I change the color of the line according the learning status related to the line - green if I already learned).
The topics includes:
JavaScript/TypeScript
Python
C++
Business Management (Finance and Marketing)
Blockchain
Data Science (I excluded the AI part of Natural Language Processing and Machine Vision, because I like to produce code related with business decision making)
Math, in special, Probability and Linear Algebra (when I am studying Electrical Engineering in university I achieved 90% of success in Linear Algebra, but I would like to learn more).
The resources used as reference are official documentations, official APIs, roadmaps from Roadmap.sh, courses from ocw.mit.edu, books recommended by specialists, Youtube playlists, and the Coding Interview University.
I will share with you the courses from MIT that are in my plan (some are for review):
Single Variable Calculus
Multivariable Calculus
Linear Algebra
Introduction To Probability
Probability And Random Variables
Introduction To Statistical Methods In Economics
Mathematics Of Machine Learning
Introduction To Computer Science And Programming In Python
Mathematics for Computer Science
Introduction To Algorithms
Design And Analysis Of Algorithms
Principles Of Microeconomics
Econometrics
Introduction to Machine Learning
Communicating With Data
Intermediate Macroeconomics
Networks
Optimization Methods
Artificial Intelligence
Introduction to Deep Learning
Database Systems
Data Mining
Another items in my list (most are books about C++):
Regular Expressions Cookbook
Programming: Principles and Practice Using C++
C++ Primer
Effective C++
Effective Modern C++
Effective STL
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
More Exceptional C++
C++ Templates: The Complete Guide
C++17 - The Complete Guide
C++20 - The Complete Guide
C++ in Action
Modern C++ Design
Practical C++ Metaprogramming
C++ in Concurrency
C++ Core Guidelines
Modern C++ Programming with Test-Driven Development
Large-Scale C++
Design Patterns
The Programming Pearls
The Art of Multiprocessor Programming
TCP/IP Illustrated, Volume 1
TCP/IP Illustrated, Volume 2
TCP/IP Illustrated, Volume 3
Unix Network Programming
Unix Network Programming Vol II
Some additional content, Roadmaps:
Node.js Roadmap
Python Roadmap
Nodejs Roadmap
Software Architect
Cyber Security
DevOps
Backend
Front-end
Prompt Engineering
AI and Data Science
Yes, It's a lot of of content, and it's not all the list, but it's a good list to really understand programming and be prepared for most of the challenges.