These are the best learning resources I've found to date.
Selection criteria - resource has at least one of the following aspects: Either:
Also:
See review notes for brief summary of the teaching methodologies.
Crash Course Computer Science
Youtube Playlist
Crash Course aims to be easy and accessible way to learn fast - they even use cute animations and story examples to illustrate tricky concepts. Often a great starting point for understanding contexts before you get more specific. It's also good material to fill basic foundational knowledge gaps.
Format: Youtube video course
Availability: Free
Code Complete, Second Edition
Book Link
Considered the "Bible" of software development- despite this book being published in 2004 the principles and practices are still considered highly relevant fundamentals of the industry today. It is comprehensive but written in a humorously relatable and easy to understand format.
Format: Book
Availability: Free 1 week trial in Oreily link
How I Learned Front-end Web Development for Free in Five Days
Article
A useful list of guides the author employed to learn the different aspects of front-end web development in 5 days.
Format: How-To Resource Lists
Availability: Free
jQuery Tutorial for Beginners at LearnCode.academy
Youtube Playlist
Learn Jquery really fast, easy to follow.
Format: Youtube video course
Availability: Free
Learn to Program in Javascript: Beginner to Pro
Udemy Course
Useful as it goes sufficiently in-depth on a lot of foundational concepts like the differences between programming languages. Also has a quiz after many of the lessons so you can test yourself.
Important Notes: this course was created in 2014 so it pre-dates the release of ES6. Therefore it doesn't incorporate some important changes like now-recommended block-level let and const variables (it uses the unrecommended var), promises and ES8's introduction of async/await.
However I STRONGLY recommend you do this course FIRST (it's only 4 1/2 hours) before tackling a brief 1-2 hour refresher course on ES 6-8 improvements on Javascript, and simply put a pin in this fact while you do this course. This is one of those crawl-before-you-can-walk scenarios as Javascript is quite unique among programming languages. From my own struggles with Javascript I found it necessary to go back to the basics of Javascript first in order to appreciate the changes and the contexts in which they were made.
Explaining this important context for Javascript and specifically how it differs from other languages is something this course does excellently, and thus lays crucially important foundations for understanding. You can then easily build apon these with the updated syntax when you understand what is going on under the hood, how Javascript works and WHY these additions were needed.
Remember, despite tech being a fast-changing industry, when it comes to understanding foundations and fundamentals, the most recent resources may not always be the best, (which is why Code Complete (Second Edition) is still widely considered one of the most crucially important resources of learning proper software development, despite it being written in 2004.)
Format: Udemy video course
Duration: 4 1/2 hours
Availability: Free
Crash Course Artificial Intelligence
Youtube Playlist
Crash Course aims to be easy and accessible way to learn fast - they even use cute animations and story examples to illustrate tricky concepts. Often a great starting point for understanding contexts before you get more specific. It's also good material to fill basic foundational knowledge gaps.
Format: Youtube video course
Availability: Free
Machine Learning Andrew Ng Courses
Youtube Playlist
Goes in-depth and quite technical for when you want to start digging into machine learning. I was able to follow the [free] Introduction to Machine Learning course - it is quite mathematical - managing with a high school mathematics level understanding though it might take some repetition. Has quizzes to test yourself after lectures and soft "deadline" weekly submissions.
Format: Youtube/Coursera Video courses with quizzes and weekly submissions
Availability: Free/Paid
Make Unity Games with Brackeys
Youtube Playlist
Learn fast - start from their basic Make A Game course, easy to understand, goes step by step. Gets more in depth with specific topic courses as well eg FPS, 2D Platformer, C# game development, etc building up to advanced.
Format: Youtube video course
Availability: Free
Automate the Boring Stuff with Python
Free Book
Easy to understand introduction for programmers and non-programmers alike.
Going through the book helps ensure you have a solid grasp of fundamentals. This book is highly recommended for foundational knowledge.
Format: Book
Availability: Free
Also Available: in a Udemy course (see below).
Automate the Boring Stuff with Python Programming
A Udemy video Course based off the books. This is unfortunately not free, but Udemy do have frequent discount sales to look out for.
Easy to understand, follows the book pretty closely. For programmers and non-programmers. Going through the course helps ensure you have a solid grasp of fundamentals. Recommended for foundational knowledge particularly if you find video an easier medium than books for learning.
Format: Udemy video course
Availability: Paid (often discounted)
Duration: 9.5h
This Free Udemy Course **'Try Django 2.2 - Web Development with Python 3.6+' is very clear for beginners and easy to follow, and you get to build a fun blog site in the process! I found there wasn't much difference at all using Django 4.2.7 and Python 3.12, so the course, which seems to have been created in 2019, has aged well! You can find it here
Format: Udemy Course
Availability: Free
The Official Django docs and Django tutorial are great and very beginner-friendly! The Django site has all different levels of explanation, from a quick start to a tutorial to topic explanations to more in-depth and detailed documentation. They have links to the different section and an explanation of each here.
Format: Official Docs - But very user-friendly!
Availability: Free
When you get comfortable enough with Django that you want to set up a production-ready (ie live) site you'll want to take a look at these:
Setting up a Postgres DB as your Django DB: See this guide.
Format: Online Guide
Availability: Free
Setting up Environment variables in Django: so you don't commit sensitive data! Here's a handy explainer article.
Format: Short Article/Guide
Availability: Free
Note: Templates Available Here: I made a Django settings.py example showing a configuration for PostgresSQL DB and the integration of environment variables. You can find it in the Django folder in this repo.
Format: Github Code Repo
Availability: Free
For Complete Beginners:
Oracle Cloud Infrastructure- Part 1 ( Fundamentals of Cloud) - This course describes IAAS, PAAS, SAAS and compares Oracle vs AWS basic concepts at a complete beginner level. It's therefore useful even if you're not planning to use Oracle or AWS but just want to understand Cloud at a high level.
Format: Udemy video course
Availability: Free
Duration: 1.5h