DIY Computer Science Degree
github.com
github.com
Here are the books that our university uses for first-year students combined with books that I found to be useful:
Introduction to Programming (using Eiffel) [1]
Mathematics for Computer Science (or: Discrete Mathematics) [2]
Introduction to Datastructures and Algorithms [3]
Introduction to Digital Design [4]
Parallel Programming (using Java) [5]
Optional but highly recommended, you'll probably find it completely out of scope:
Real Analysis I [6]
Real Analysis II [7]
Introduction to Linear Algebra [8]
Introduction to Physics [9]
[1]: http://www.amazon.com/Touch-Class-Learning-Program-Contracts...
[2]: http://ocw.mit.edu/courses/electrical-engineering-and-comput...
[3]: http://www.amazon.de/Introduction-Algorithms-Thomas-H-Cormen...
[4]: http://www.amazon.com/Digital-Design-Computer-Architecture-E...
[5]: http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/...
[6]: http://www.amazon.com/Analysis-Texts-Readings-Mathematics-No...
[7]: http://www.amazon.com/Analysis-II-Texts-Readings-Mathematics...
[8]: http://www.amazon.com/Introduction-Linear-Algebra-Fourth-Gil...
[9]: http://www.amazon.com/Fundamentals-Physics-Extended-David-Ha...
Have added this list to my project!
- Learn one language/ platform at a time. Also, think about what you want to learn. Web development? Mobile? CS fundamentals? It is very easy to waste alot of time when your are not focussed on a particular goal.
- Try not to get tricked into spending to much time on those fancy looking tutorials. Building something yourself is much more valuable than obtaining meaningless 'badges' and achievements.
- Ruby on Rails is complex and I would not recommend it for beginners. I wasted alot of time doing tutorials that covered random parts of rails that I never used in projects. Again, if you want to learn Rails, start your own project as soon as possible and select learning materials based on that.
- Stick with the basics. Try not to get distracted by frameworks, tools and the overwhelming amount of tutorials available.
for javaScript, have a look at this:
http://javascriptissexy.com/how-to-learn-javascript-properly...
Ruby / Python:
http://learncodethehardway.org/ https://www.udacity.com/course/cs101
rails http://guides.rubyonrails.org/getting_started.html
good luck
I am learning for the sole intent of then being able to immediately put into action what I've learnt within the startup environment and also contribute to open source projects where I can :)
What are you learning?
The truth is nope. You see a lot of things besides coding, with seems to be more important than to do a a while, compile a program or use a library. You learn the WHY, which most of the time is more important than the HOW.
I agree, so I'm also going to do some of the MOOC CS courses as well, coupled with working at a startup.
I'm trying :)
The popular and misguided thoughts about CS is that it might involve math. HELLO! have you ever had to use a calculator to write a "Hello World" program? Where is the science in that?
It's sarcasm, it's really not supposed to make sense on a fundamental level. Sarcasm...
CS degrees are not so much about programming, as some people have stated. More so theoretical understanding, logic(which is important IMO), best practices on projects, approaches(agile etc.). The programming that is touched on will be an intro to an OO language. Generally, most CS students are expected to learn programming in their own time on their own accord in order to complete assignments etc.
I think Effective Objective-C and Effective JavaScript (as well as the "Good Parts" and "Secrets of a JS Ninja") were good books.
Also, the C book, since it is difficult to understand Objective-C without a firm grip on C. Although, there are certainly more recent and easier books on C to read.
Which book is "THE C Book" you refer to?
And how have you enjoyed your DIY journey so far?
I'm going to go through the MIT OpenCourseware stuff on this to begin with.
What have you found most helpful? Do you deal with algorithms everyday?