Live data from Hacker News

Where to Start in Computer Science?

news.ycombinator.com

1–10 of 19 posts

Where to Start in Computer Science?

#1
Where do I start as a person with an interest in computer science? Obviously this is a vague question, so let me clarify.

There are a few things that I have little interest in, like OS, Game Development, and AI. However, Software development, Database design/management, Server administration, Data communication... and that's just what is coming off the top of my head. I've been floundering and flailing around aimlessly in the world of computer science for a few months now, with some prior experience in very minor things like HTML, JScript, PHP (very little) and other web design related things. I am a 24 year old business student with only a semester to go before graduation and have come to the conclusion that if I could do it all over again, I would definitely be doing something computer science related instead.

I have access to resources like Lynda.com for free through my university, and know about MIT OpenCourseWare, but I sort of feel like a kid in a candy store being overwhelmed with everything when trying navigate through all the possibilities. It's simply overwhelming.

In your experience and knowledge in the field, what was the best way you found to progress step by step from one subject to the next in a productive manner? What are the things that you know that you consider abso-freakin-lutely vital to your arsenal of knowledge and skills?

I don't know really where to start exactly. I feel like I have the basic ideas of the abstraction of programming understood, but now that I'm here I don't know where to go next and what would be the most useful. The area is simply far too complex and diverse and I am simply far too beginner to try to decipher it all.

Please help. Thanks.

Re: Where to Start in Computer Science?

#3
post #2

I recommend you learn either python, java, or c++. In fact learn all three you will be an elite programmer (:

Oh ok well that's reassuring because those are three languages I have toyed around with in the past. From a step one scenario (where I consider myself to be), do you have any recommended learning resources?

Re: Where to Start in Computer Science?

#4
Start with Richard Buckland's lectures on Computer Science on YouTube.

~50 1-2 hour lectures starting from machine code all the way up to software engineering, told by a genial, honest, and passionate man with a likable accent.

Not only will you want to continually keep watching them (because they are compelling), but you will probably watch some of them more than once (because they cover the fundamentals in a way that you really only get in a classroom).

Re: Where to Start in Computer Science?

#5
If it where me and I where starting out I would get an Arduino board and a book on C/C++ development for Arduino. The reason I would do this is because it is very much like the early days of PC development where you are closer to the hardware and the feedback loop is quick, it also cuts away the layers and layers of stuff that can be distracting in a less focused segment. While working through learning to develop on the Arduino I would start reading foundational theory books as the theory will start to click with what you are doing. From there once I had a good grasp of C/C++ and what is going on in the hardware, I would learn a Lisp and start reading the deeper theory books on the various algorithms and start implementing those algorithms in Lisp. To me this will give you the most well rounded foundation in CS that you can get, you will learn two major branches of languages and you will be close to hardware in the beginning.

Re: Where to Start in Computer Science?

#6
post #4

Start with Richard Buckland's lectures on Computer Science on YouTube. ~50 1-2 hour lectures starting from machine code all the way up to software engineering, told by a genial, honest, and passionate man with a likable accent. Not only will you want to continually keep watching them (because they are compelling), but you will probably watch some of them more than once (because they cover the fundamentals in a way th…

Oh, great :-). Thank you, I appreciate you taking the time to lend your advice... I can't wait to get started.

Re: Where to Start in Computer Science?

#7
post #5

If it where me and I where starting out I would get an Arduino board and a book on C/C++ development for Arduino. The reason I would do this is because it is very much like the early days of PC development where you are closer to the hardware and the feedback loop is quick, it also cuts away the layers and layers of stuff that can be distracting in a less focused segment. While working through learning to develop on…

Would a Basic Stamp kit (from Parallax) be similar enough?

Re: Where to Start in Computer Science?

#8
For you that I'd say start with Python. It's used for software development, scripting, system administration and web development which seems to hit everything you want. I'd check out udacity's cs 101 which teaches how to build a search engine in Python as well as Google's Python class: http://code.google.com/edu/languages/google-python-class/

Since you're still in school it might be worthwhile to see if you could sneak into an intro to programming class for your last semester.

Re: Where to Start in Computer Science?

#9
post #8

For you that I'd say start with Python. It's used for software development, scripting, system administration and web development which seems to hit everything you want. I'd check out udacity's cs 101 which teaches how to build a search engine in Python as well as Google's Python class: http://code.google.com/edu/languages/google-python-class/ Since you're still in school it might be worthwhile to see if you could sne…

Seconding Google's Python class. It does an amazing job of covering the most common use cases in a very short class. I'm still relatively new to programming and whenever I'm writing code I invariably find myself referring back to the lessons from the class.

Note that the class is taught in 2.x so if you're running 3.x then the example code won't run. IIRC, updating the print statements for the new version was the only change required to make them work.

Re: Where to Start in Computer Science?

#10
post #5

If it where me and I where starting out I would get an Arduino board and a book on C/C++ development for Arduino. The reason I would do this is because it is very much like the early days of PC development where you are closer to the hardware and the feedback loop is quick, it also cuts away the layers and layers of stuff that can be distracting in a less focused segment. While working through learning to develop on…

Would a Basic Stamp kit (from Parallax) be similar enough?

So long as it has a C compiler it would be fine, the big point is that you want to manage memory as you want to understand how the memory and the hardware is managed. I personally like to have people learn by doing and then read the theory afterwards. For me at least the theory sticks better after someone has witnesses it. My recommendation was because you said that you want to learn computer science and to me that is the best way to do it. If you just want to learn how to program then my recommendation would be entirely different. But if you want to learn computer science then getting closer to the hardware will help you see the theory. To get closer to the hardware their is no better language than C, well you can do Assembly but at least with C you can learn higher order software only concepts that would be difficult to learn in Assembly.
Post reply on HN