Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have recently gotten into programming. (Although I know that the number of books you have read does not determine your programming competency or ability, just to paint a "map" of where I am in terms of the content I know...) I've finished the books:

Python 3 For Absolute Beginners
Pro Python
Python Standard Library by Example
Beautiful Code
Agile Web Development With Rails

and am about halfway into Programming Ruby. I have written many small programs (One that finds which files have been updated and deleted in a directory, one that compares multiple players' fantasy baseball value, and some text based games, and many more). Obviously, as I'm not some sort of child prodigy, I can't take a formal Computer Science course until high school. I really want to learn computer science to increase my knowledge about the code, and the how the code runs. I've really become interested in the math part after reading the source code for Python's random module. Is there a place where I can learn CS, or programming math online for free, at a level that would be at least partially understandable to a person my age?

share|improve this question

closed as not constructive by ChrisF Apr 2 '12 at 9:24

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

I'm personally a bit disappointed by this question being closed. Even if it skirts the rules a bit, it's worth to keep to encourage a young kid to study maths & programming. –  quant_dev Apr 2 '12 at 9:31
Take a look at discrete mathematics on wikipedia and simple wikipedia. –  Philip Apr 2 '12 at 15:46

3 Answers 3

Programming often involves many different kinds of math, some of which is probably accessible to you now and some of which might not make sense for a while. I'd suggest learning whatever math you enjoy. Books of math puzzles by authors like Ian Stewart and especially Martin Gardner are a great introduction to a variety of mathematical fields, and they're a lot of fun. And since you're interested in the foundations of computer science, you should at some point get a copy of Gödel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter. It'd be a difficult book to read straight through from cover to cover, but you can certainly read pieces here and there as you like and still get a lot out of it.

Work hard at the math you learn in school, have fun with math outside school, and you won't go wrong.

share|improve this answer
+1 for GEB - it provides not only tangible understandable insights into the foundations of Mathematics and scientific thinking in general, but also gives a bit of a philosophical background. –  tdammers Apr 2 '12 at 5:34
To Stewart and Gardner, I would also add Raymond Smullyan –  Péter Török Apr 2 '12 at 7:58
-1 for GEB: it's long and overdrawn, it will sap the OPs stamina and possibly discourage him from maths. There are much better books out there. –  quant_dev Apr 2 '12 at 9:30
@quant_dev To each his own, I suppose -- I discovered GEB in a library when I was a kid and found it fascinating. Two of Hofstadter's other books, Metamagical Themas and The Mind's I, would be easier to digest, but seem farther from the OP's goal of learning about computer science. They might turn him into a philosophy major, and we can't have that... –  Caleb Apr 2 '12 at 12:31

Library is a good place to learn. I learned a lot from this book: http://www.amazon.co.uk/Algorithmics-Spirit-Computing-David-Harel/dp/0321117840

On the internet, you can take a look at http://www.khanacademy.org/#computer-science or (maybe later) http://ocw.mit.edu/index.htm .

share|improve this answer

While writing games you can get through a lot of useful math. Several of the free online Python game programming books are intended to be appropriate for your age, particularly Invent Your Own Computer Games with Python.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.