I am 12 years old and have mastered the basics of Python with Learn Python The Hard Way by Zed Shaw (I think) and it has done me well. What should I do next? Do you have any recommended books or good website tutorials? What do you need to know before learning C?
migrated from stackoverflow.com Nov 24 '11 at 15:59
This question came from our site for professional and enthusiast programmers.
closed as off topic by FrustratedWithFormsDesigner, Morons, Jonas, Anna Lear♦ Nov 24 '11 at 16:20
Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here. If this question can be reworded to fit the rules in the help center, please edit the question.
If you want to learn C (which is a good thing IMO - you learn quite much about memory management etc.), have a look at http://c.learncodethehardway.org/ - it's much better than those "hey, you never programmed but i'll teach you $language" tutorials. If you have some knowledge, start a small project you can practice on. For me it was writing an IRC bot from scratch and modifying irc services (srvx). The existing codebase of the latter made it rather easy to get started (IMO the first days/weeks of a project are the hardest and most annoying), in the from-scratch project I then implemented algorithms/data structures known from the other project on my own, improving my knowledge of them.
However, I'd suggest you to improve your Python knowledge - while having knowledge of many languages is useful, mastering a language will allow you to write better and more complex programs and in the future long-term experience with a language will most likely be useful in job applications.
While very common I really suggest you to stay away from PHP! The majority of examples and tutorials about it is extremely low-quality and with PHP you risk getting used to really bad coding practices!
In case you consider learning Java (you did not mention it in the question but in the tags): If you plan studying computer science in the future chances are good that you'll have to use it at university. However, with good programming skills - which you are likely to get if you started programming at such a young age and continue with it - it will be easy to get into so I would certainly stay away from it right now. If you want to work with a high-level compiled language, better learn C#. It is similar but has lots of syntactic sugar, i.e. language elements that make the developer's life easier, and with Visual C# Express Edition Microsoft has a very good, yet free, IDE available. If you feed google with "C# for kids" you even find some books about it targeted at a young audience - depending on your knowledge they might be way too basic for you though.
Most important, however, is that you shouldn't become a pure geek/nerd at this age. Don't forget there's a real life, too. Computers and especially programming are awesome, but hanging out with friends is nice, too.
The most useful thing to learn is different algorithms and how different languages work. Then you can turn your hand to any language. It is quite likely to by the time you are working full time, you could be programming a language which doesn't exist yet. I have been programming Java for 12 years. It didn't exist until 10 years after I started programming.