Free-Computer-Science-University
So after watching all the resources, I thought to put all the important technical courses in one place and help those people who want to learn computer science. Keep track of Progress using the Task lists and yeah all the courses are free.:D So start following these courses. I can't guarantee you that you'll get a job but I can assure you that you'll have deep understanding about Computer Science. Even I am following this syllabus and believe me, everyday I learn something new. And I would like to thank all the contributors who have helped to make this project better. Good luck everyone!
For introductory computer Science:-
or
These two are great introductory courses which were taught by some of the best professors in their field.
Learn to code in (at least) one object-oriented programming language:-
-
1. For learning C++ refer this: https://thenewboston.com/videos.php?cat=16
-
2. For learning Java refer this: https://www.udacity.com/course/java-programming-basics--ud282
-
3. Great course about programming principles: https://www.udacity.com/course/design-of-computer-programs--cs212
Learn to code atleast in one scripting language:
-
1. For python refer to no.2 in introductory computer science
-
2. For javascript: https://www.codecademy.com/learn/javascript
Develop some mathematical thinking
-
2. https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/index.htm (focus in this course very nicely)
Develop a strong understanding of algorithms and data structures (very important)
-
1. Course by MIT:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-spring-2008/index.htm
-
2. Read about all the algorithms and data structure here(if you can :P):http://wcipeg.com/wiki/Special:AllPages
Do competitive programming
This blog will tell you everything related to competitive programming.
Learn about computer networking
Learn about operating system
Learn full stack web development (Do both if you can)
Learn android developement
Learn IOS developement using Swift
-
1. https://www.udacity.com/course/swift-for-beginners--ud1022
-
2. https://www.udacity.com/course/intro-to-ios-app-development-with-swift--ud585
If you're interested in Data science then these courses are for you
For machine learning
For Deep learning (One of my favourite course ;) )
For Artificial Intelligence
For cyber security basics
- 1. https://www.edx.org/course/cyber-security-basics-hands-approach-uc3mx-inf-2x
- 2. https://www.cybrary.it/cyber-security/
Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug
For that take this course to understand about version control.
So I guess these courses will help everyone for learning CS in both length and breadth. These courses are not short but trust me these are very interesting courses. Even I am learning CS from these courses. So if anyone wants to contribute, you're welcome.
Mobile Game Developer Nanodegree
No longer listed on Udacity
View Details
If you want the skills to turn your game ideas into reality, or get ready to
jump into professional game development, this is the program for you!
The core of this Nanodegree program is libGDX, a powerful cross platform game
development framework that allows you to release your game on a variety of
devices and operating systems.
Do Internships in your interested position
Participate in Google Summer of Code
Read about it can be found here: https://www.quora.com/What-is-GSoC-and-how-does-one-apply-for-GSoC
Participate in ACM-ICPC
Details can be found here about how to preapare and what is it https://competitiveprogrammers.blogspot.in/
Final and most important tip
Do programming daily if you can.