This is my first post and my first blog ever. I decided to create a blog to share what I know or don't know or have found interesting. As a junior in engineering, its finally come down to choosing a track so I choose computer systems, which I have found to be very interesting especially since I have fallen in love with programming.
With that in mind, given that its the summer and I have time, I decided to self teach myself computer science by following a computer science curriculum. I realized its worth sharing all of the great information I have found about accomplishing this task because I've noticed many people are (or wanting) to doing the same. I have looked at many curriculum's from TAMU, CMU, Stanford, MIT, UIUC and a few other universities and have gathered enough information about textbooks to use and the topics I'll try and cover. It comes down to the following:
Current topics to learn:
- Learning a programming language: C, C++, Java, Python, etc: (For now my goal is to learn C, C++, Java, Python and JavaScript)
- Know Calculus, Discrete Math and linear algebra, Probability and Statistics, Differential Equations: (Since my engineering degree already covers Calculus, Linear A. and D.E., the only thing for me to self learn is discrete mathematics and Probability and Statistics.)
- Data structures and algorithms: (I'll be using the Java language to study this topic because it has been recommended by many and because I have found some great courses at Coursera taught by Princeton and Stanford using the language.)
- Computer architecture: (Since I chose to focus on computer systems, my degree will automatically require me to take computer architecture courses)
TBD Topics:
- Operating Systems
- Networking
- Databases
- Machine Learning / AI
- Compliers
- In-depth focus on Programming languages
Interesting articles/blogs/forums/courses for self learning computer science:
- What is the best way to self teach... in a typical computer science degree
- Learning to Program: What should a self-taught programmer read and learn?
- What every computer science major should know
- Udacity courses - Software engineering
- Coursera
Books to read:
-----------------------------------------------------------------------------------------------------------
My current tasks list (I'll update as I go):