A few weeks ago I came across a list of courses that should give you a similar level of knowledge to someone who got a bachelor degree in CS. As someone who is not just interested in web development, but rather CS in general and as fan of open course ware I find this is an interesting resource worth looking into.
Maybe some of you are already studying CS and have trouble understanding a topic. Maybe the same course taught by a different person can help you.
But even if you aren’t interested in all of these topics, there might be a few subjects that can boost your understanding of programming.
All the credits go to agupieware. Make sure to check out that site as it has a lot of other interesting content.
Here is the list:
Intro to Computer Science:
Introduction to Computer Science and Programming - MIT
Intensive Introduction to Computer Science - Harvard (CS50)
Programming Methology - Stanford
Programming Abstractions (Second Course in Unit) - Stanford
Theory of Computation:
Introduction to the Theory of Computation - Stonehill
Data Structures and Algorithms:
Introduction to Data Structures and Algorithms - UNSW
Introduction to Algorithms - MIT
Theory of Computation - UC Davis
Algorithms and Data Structures:
Efficient Algorithms and Intractable Problems - UC Berkeley
Data Structures - UC Berkeley
Discrete Math and Probability Theory - UC Berkeley
Operating Systems and System Programming - Berkeley
Introduction to Linux - edX
Software Engineering - UC Berkeley
Introduction to modern Database Systems
Networking and Data Communications:
Fundamentals of Computer Networking - Manhattan College
Introduction to Data Communications - Thammasat University
Cryptography and Security:
Introduction to Cryptography - Ruhr University
Introduction to IT Security - Thammasat University
Introduction to Artificial Intelligence - UC Berkeley
Intermediate and Advanced Courses
Computer System Engineering
Building Dynamic Websites - Harvard
Networking and Communications:
Internet Technologies and Applications - Thammasat University
Statistics and Probability:
Satistics and Probability - Harvard
Probabilistic Systems Analysis and Applied Probability - MIT
Statistical Inference - John Hopkins
Data Analysis and Statistical Inference - Duke
- For better understanding do assignments if there are any!
- Don’t stop coding! Theory is nice and all, but don’t forget to something practical. You may use a resource of you choice and maybe think about a “final project” that you can do.
- Act like you are an actual college student. Take notes!
- This list is not a replacement for a real college degree program. However the aim is to provide you a similar amount of knowledge
- As some courses cover the same topic you don’t have to do everyone of these.
- If there aren’t assignments, use the Feynman technique: Explain it to someone (or yourself) in simple words. Then explain it, as if your would explain it to a kindergardener.
- Some links of the original lists are not included as they don’t exist anymore.
This list is actually an extension to a shorter list that aGupieware published before. If the list above seems a bit overwhelming to you, you can find the core version of it here.
Leave any suggestions for improvements or additions in the comments!
08.04.2017 - As suggested by @astv99 astv99 I included the course “Fundamentals of Project Planning and Management” which also covers software engineering methodologies like agile, scrum and kanban.