I've recently started the CS50: Introduction to Computer Science course on edX by Harvard and the 12-week course (although you can follow it at your own pace) essentially goes through the basics of Computer Science. The lectures and projects cover topics such as the programming language C, arrays, algorithms, memory, data structures, Python, SQL, information, and then a track choice of either Games, Mobile (Android/iOS), or Web.
The course is free unless you choose to pay for the certificate and the lecturer, David J Malan, is honestly so amazing at keeping us engaged. I've normally got a really short attention span and the style of learning (lecture then project) is also really new but I've been enjoying the course a lot. The course is pretty well-known, especially for building a strong base for you in Computer Science. It feels good to see yourself get smarter and honestly, being able to solve a problem after putting a lot of time and effort can be so incredibly satisfying.
Although the course is 12 weeks long (around 3 months), I think it takes a lot longer than that, especially if you're a beginner to Computer Science and if you can't dedicate more than 8-12 hours a week. However, it's a great way to meet new people online, build your technical and thinking skills, highlight your passion for a CS or even allow you to decide whether Computer Science is something you want to study at a higher level (university, etc.) or not.
I started the CS50 course because I'm planning on studying Computer Science at university and I really wanted to improve my knowledge on the subject, especially as I haven't taken CS as an A-Level. Lately, artificial intelligence and algorithms have been looking pretty interesting and there's also another course called CS50's Introduction to Artificial Intelligence with Python that's caught my attention too.
I'll be posting my (semi-)answers and my thinking process over the next few weeks/posts and so let's see how that goes!