This. After finishing a BS in Maths, and with coding experience, I started a degree in Computer Sciences, thinking that I would know the most of it because I was coding since I was 15.
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.
Well how else are you supposed to interact with computers? Programming does not equal CS, hahaha! I guess in what ever "science" you are thinking of people just sit there and telepathically control the computer.
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?
No - your original comment doesn't make sense. I don't mean "I disagree", although from what little I can make out, I probably do. I mean "it doesn't fully parse".
I was trying to sound as uneducated and ignorant in terms of CS encompassing more than just programming. I was hoping the telepathic part gave it away.
It's sarcasm, it's really not supposed to make sense on a fundamental level. Sarcasm...
Right. Knowing the name of the sort procedure in JavaScript is not the point. The point starts with knowing the difference between bubble and quick sorting and why it might matter. The heart of computer science is the mathematical analysis of computational processes.
The point is that you are conflating "slinging code" with "computer science". To paraphrase an old truism, you're talking about pointing a telescope and we're talking about astronomy.
I am 3,000 hours into the DIY phase myself, so I appreciate your list.
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.
I'm sure it would be easier if I had a mentor or at least a friend...but I'm a loner so I'm taking my lumps the "hard way". It's been cool I love learning this even at my advanced age.
If you want something closer to what you'd expect of CS from a college check out MIT OpenCourseware, it should have everything you need for undergrad CS
A bit of advice from someone who is trying to do the same:
- 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.
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 :)
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.
28 comments
[ 3.0 ms ] story [ 72.9 ms ] threadThe 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...
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?
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?
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?
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.