Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Computer Science for a kid
5 points by throwaway127 on May 5, 2013 | hide | past | favorite | 7 comments
Hello, I'm 15 years old. I've been programming for years and just got into node.JS. I've aspired to study CS @ uni but I really wan't to learn it now but I can't find any resources suitable for kids. I really want to learn some CS Algorithms and how I can implement one. What is your advice?



What do you like doing with computers? The best way to learn CS is to program, and the best way to learn programming is to pick something you're interested in and write little programs to solve problems for yourself. I learned programming by writing tiny little Unix utilities when I was a teenager.

A standard progression of learning algorithms would be to do basic searching (ie, implement a hash table, a binary tree, a heap, a splay tree, a trie, a balanced binary tree) and then sorting and then basic graph theory (ie, learn how to turn a directed graph into a minimum-cost spanning tree, or to find the shortest path from A to B).

If you've got searching, sorting, and graph traversal and reduction down, you're already better than 60% of working programmers, and you'll also have a really good idea where you want to go next.

Don't look for kid-centered resources (you don't need any math at all to get as far as I'm talking abot in CS), but do think about kid-centered projects.

The Wikipedia pages for most of those algorithms are as good as the material you'll get in books.

Since you're 15 and you don't know what you don't know and you don't have to worry about how marketable your skills are, consider learning C. I started coding in C (we didn't have Javascript when I started); my friends who were smarter than me not only coded in C as young teenagers, but write protected mode kernels in it so they could run their 3D engines under MS-DOS. Another nice benefit of starting in C: just getting basic stuff working, like reading in a file and spitting out the lines that match a string, will feel like an accomplishment. Node.js does so much for you that it's easy to take for granted how much you're actually getting accomplished with each line of code you write. You won't have that problem with C. Also you'll know how to use a debugger.

15-18 is kind of a magical run of years for teaching yourself stuff, before the world gets in the way and starts to establish boundaries for you. Try to get to college having written a compiler.


Don't think of yourself as a kid. As long as you have the algebra background, you can learn CS from the same resources as anyone else. How you go about studying CS really depends on your situation and learning style. Does your secondary school/sixth form (I'm guessing you're British from your writing style, else high school) offer computer science courses? If so, I'd highly recommend you take them from your school. Even if they don't have great teachers, they'll give you a structured form to learn CS principles. If your school doesn't offer CS courses or you want to supplement your learning, I'd highly recommend you take Coursiva/EdX courses for the topics you would like to learn. This, of course, takes patience and discipline, but you'll end up being very prepared to study computer science at university.

Source: I'm a 17 year old CS student


Well, kiddo, there are these ancient things... they called em "books" (heh, couldn't resist).

But seriously, used bookstores and the library are a great start look for classics such as Knuth Art of Computer Programming. Also check with the college course catalogs and see what CS classes are using as textbooks.


Rather than trying to learn CS algorithms in general, why dont you come up with a problem you want solved and then try to find what is the best algorithmic approach to it.

Say you want to have a text box that autocompletes? How can you make this really fast over a network connection?

Also you are not really a kid at 15 btw!


What about Udacity.com - there are a few CS courses on there including one on algorithms. It might be a good starting point.


Here are your 3 friends:

Coursera.com Udacity.com Teamtreehouse.com





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: