

Ask HN: High School Student Looking For Learning Resources - crispycret

Hello everyone, my name is Brandon and I'm a junior in high school. I have been programming in Python for almost a year now and have been, for the most part guided by my teacher. Now I'm reaching a point where my programs are to complex and asking my teacher for feedback is time consuming, preventing me from programming as much as I want.  So I would like to take on the role of teacher for myself, and be active in the hacker community.<p>I have the basics of programming down and have been practicing MVC framework for desktop applications. I'm currently getting into Django to start learning web frameworks and databases. I’m not sure where I should go from here. I am stuck on what resources to use, and how to get word of upcoming resources.<p>Can anyone recommend some resources I can use for independent learning such as websites to follow, and books to read, that will make sense to me but is respected by the professionals. The resources I find are either not complex enough or to complex. If anyone can help me get on a path so that I can be in charge of my own learning, I would be very grateful.
======
ecubed
One thing that worked really well for me when I was learning was StumbleUpon.
Choose the python, html, css, web design, photoshop, etc categories and
stumble along until you find a tutorial or article that interests you. It will
expose you to alot of concepts and topics you otherwise wouldn't have thought
to teach yourself.

Also, come up with an idea that you think is just out of reach of your current
skill and just dive in and build it! It doesn't have to be the best thing in
the world, and you don't have to be focused on making money with it, but the
process of trying to architect the thing, and then putting together all the
pieces will be a more valuable experience than any classroom could give you.
You have IRC, stackoverflow, and other similar resources to ask for help if
needed.

------
jzone3
Hi Brandon! I am also in high school (currently a sophomore). Personally, I
would suggest two main things.

1\. Just build something. You said you were using Django. Find an idea, and
build it! You will learn a lot as you build it. 2\. Udacity. I found the
Udacity online courses to be amazing! They are very helpful (I took Web
Development (CS253) taught by Steve Huffman)!

~~~
crispycret
Thanks for the Udacity resource I will definitely go check that out. Just
wondering but do you have any finished public projects? I would really like to
see how another high schooler approaches programming.

------
dpearson
Don't worry too much about whether or not the sources are "respected by
professionals." Rather, you should focus on whether or not the information is
good.

If you're interested in theory, I would point to iTunes U; I've been impressed
with what I've seen of the courses there. I personally can't recommend any
books (that's not really my learning style; I'm much more hands-on).

For the mechanics of programming, there's nothing better than just writing
code. The Python docs are a great source of information, as are sites like
Stack Overflow; search engines will be your friend if you get stuck. Open
source code can be a good reference, as mentioned below, for seeing approaches
to a specific problem (or implementations of a specific algorithm), but
pouring through reams of others' code probably isn't the best use of time.

Overall, you sound like you're off to a good start. I'm a senior in high
school, but, a year into my learning, I wasn't nearly as far along as you.

~~~
crispycret
iTunes U, that's very interesting. I've never really used iTunes so I had no
idea they offered tutorials.

I have tried open source projects a little on github but the files were too
long. I'll look more into open source but I need to dig around to find smaller
projects. If there are any small projects you can recommend that would be
great.

Thanks for the help, I will start digging into the resources you gave after I
take a look at Udacity.

~~~
dpearson
I've not done enough work with Python specifically to be able to recommend any
projects; sorry. As for iTunes U, it's all recorded college courses (some with
exercises and the like, others without); some are better than others (both in
terms of content), but you'll have to look in the description about
prerequisites and languages used.

~~~
crispycret
Yeah that was what I thought when you mentioned iTunes, thanks.

------
jfaucett
I guess you're mainly looking for python related stuff. But if you're open to
alternatives and me being a c guy, I would suggest hacking through the linux
man pages and libc, it will definately help your overall programming skills
and understanding of cs.

Here's a link (posted elsewhere on HN) to intro c programming resouces online:
[http://www.mycplus.com/featured-articles/best-free-
programmi...](http://www.mycplus.com/featured-articles/best-free-programming-
courses-online/)

------
dilithiumH3
So something that worked for me when I was starting out was to reverse
engineer an existing Opensource project or maybe even look at their buglist.
IMO reading code and figuring out the intuition behind it is almost half the
battle. You may also want to pick up some engineering/algorithms/computer
science books to get the underlying (and almost universally) applicable
concepts.

Coursera is a good place to start.

------
orangethirty
Shoot me an email Brandon. You might enjoy hanging out with the Nuuton team.
We work with python and django.

------
crispycret
Thanks everyone for the response it helped a lot.

