freeCodeCamp has some good courses. HTML, CSS, JavaScript are the strong points of FCC.
The React course needs some updating, but it teaches you the basics. They need to update it to include more functional components rather than class components, as the industry has shifted in the last few years.
The first python certification is a nice introduction to Python, but is not interactive like the JavaScript certification is. I actually used this certification as a educational tool for the National CS honors society at my school. Wrote over 70 pages of notes for all 40 hours of videos and then created own challenges for people to follow along with. This is because the only challenges in the course that you get are the 5 final projects with nothing in-between.
Software engineering is split into two parts: front end and back end.
Front end: HTML, CSS, SCSS, JavaScript, AJAX+JSON, React, Redux, DOM, Three.js, ES JS Imports, PHP, etc
→ React + Three.js = React Three Fiber
→ Three.js acts as a interface to WebGL because of how complex it is.
–>Traditional DOM has been replaced in parts of the industry with React in recent years.
Back end server languages to connect to front end: Node JS, NPM (Common JS imports), Express, MongoDB
→ Express acts as a interface to parts of Node.js to make it easier.
→ NPM allows you to share code between computers on one big network
→ Git is used as a tool to help track and manage changes to code (file history)
→ Github does not equal git. Its just a tool to visualize Gits. Just how MP4’s exist without Youtube
Back end: C++, Java, Python, C, C#, Assembly (low level processor programming).
→ Python can be used to control Raspberry Pi. Raspberry Pi can also be used on Front end and can be used for web servers, just like Node.js + Express
→ PyScript was recently announced to try and script the webpage just as JavaScript can. Their is currently no ecosystem for it and no one uses it yet.
→ Warning: Python is slow. If you want a project to be complete fast use Python. If you want it to run fast, use any other language but Python. Its more designed for beginners and basic data analysis.
→ As computers have become faster in recent years, programmers have started using easier and easier but less efficient programming languages. This is why Python has become popular. However, I dislike the simplicity as I think it limits what you can do. Python is just built using C language.
→ Assembly is direct programming of the components within the computer itself. It is not used that much anymore due to the complexity.
→ C++ is one of the hardest languages to learn, but it is used in a lot of processor intensive applications. Rocketships and Teslas’ are coded in C++.
Other: Lua
→ Simplistic programming language used to script video games such as with Roblox and Beamng Drive. Just as JavaScript is used for webpages, Lua is used for video games.