|
I, too, am in high school, but have been programming for several years. One of the best things that I've been able to do that I wholeheartedly recommend you try to do as well is to find someone in your school or community that knows computer science (the theory and principles involved, not just how to program). A solid knowledge of computer science is a terrific foundation to have, but it's hard to learn on your own. If you have a mentor (I found mine in my school's computer science teacher, and a professor at my local college), you will have someone to guide you and someone to go to when you're confused about something. In addition, as tommynazareth said, find something to make. It doesn't have to be the next Facebook or the Linux 2.8 kernel, but you should find something that you can program. You mentioned Android/iPhone applications were something you were interested in doing. If that is the case, try deciding on a single-functionality app like, for example, a "Where's My Car" clone, where you create an app that remembers where the user last parked his car by using the Android's GPS data. Or maybe you want to make an app that can interact with Twitter. Whatever the case is, pick something and make it. If you have a mentor, you can go to him or her if you get stuck (or even for project ideas!). Contributing to open-source projects (once you're comfortable programming in whatever language the open-source project is in) is a great way to not only make contacts in the programming world and improve your skill set, but also add to your college and job resume. If you're interested in learning CS theory on your own, the more power to you. How To Design Programs, mentioned previously, is a great textbook -- in fact, it's the same one I used when I was first starting out. MIT's OpenCourseWare has copies of most MIT class lectures, and you can try to follow along. Stanford has something similar. Read pretty much anything by O'Reilly. If you want your brain to explode, you can try working your way through Don Knuth's Art of Computer Programming. Since you mentioned "languages ... valuable to learn," check out why's (poignant) guide to ruby at http://mislav.uniqpath.com/poignant-guide/book/chapter-1.htm... (although programming languages come and go like grains of sand on the wheel of time). The most important thing of all, though, is to never stop wanting to learn. TED talks can provide the inspiration for that. Now I must go and finish my homework that I have due for tomorrow. Hope this helped. |
C what I did there?