Ask HN: Advice for those in high school?
Hi HN,
My brother referred me to this site. I'm in highschool right now (Junior), and am interested in learning programming. I'm trying to figure out this space right now. I've learned some Java on my own, but want to upgrade my skill set so I can (eventually) be a part of a startup. I'm wondering what languages are valuable to learn, and what the best resources for that are.
Overall, I'm just looking for some guidance to propel me into the same space as some of you guys. I was inspired by that Ferross story recently, and in general want to dedicate myself to learning all the skills necessary to be in a similar position in a few years. Advice from some of the veterans on here would be appreciated..
12 comments
[ 3.6 ms ] story [ 43.9 ms ] threadIn 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?
Made nothing. Worked harder, made some. Worked more, made more. Now it's a decent income stream and I've gone from a nobody to a less-nobody.
Age is less of a barrier every year. Get started ASAP. As pg often says, if you're so passionate about something, why aren't you working on it RIGHT NOW?
Good luck!
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...
Make sure to avoid feeling inferior with whatever it is however it comes out. ALOT of programming is learning by doing. Don't get caught up in well "all I did was x". You can still learn alot from actually having done x that can help you when you eventually want to make y.
Next its good that you are getting started early.
I wish I had the foresight to ask this question of a community like HN (much less known about/ had HN) back in high school especially so I could have gotten started working on subjects like the ones you can read here
http://www.quora.com/What-does-it-take-to-become-a-programme...
I've been learning programming since about middle school (about to graduate from college now) and I'm still learning everyday. People well into their careers from CEOs to new hires will tell you the same.
Dive into something, start small and scale up. You'll be amazed at what you can come up with given time.
http://paulgraham.com/hs.html
Although it remains to be seen what will happen to languages - learn a second language (human) fluently.
I always thought that being a native English speaker put me at such an advantage compared to people from other parts of the world in business, but a lot of my peers in Western Europe are fluent in English and of course fluent in their own language, if not fluent in another as well.
If you're in the USA, it might be less of an issue (I'm in the UK), but I think it will be an increasingly important differentiator, particuarly if you work for a company which is looking to diversify overseas or is a multi-national.
It will also bring many other benefits 1. Freedom to travel lots of places (ok, you can get by on English in most places, but being fluent in either French or Spanish opens up a whole new world of places you can travel to confidently)
2. If you travel a fair bit, it just makes you a more confident person. (I haven't travelled much myself, but obviously friends etc have and those who have travelled are more confident, more outgoing and probably more likely to succeed)
3. Having being involved in work for clients overseas, although they can speak fluent English - there is kudos and also deeper understanding if you can speak their language as well.
As well as programming languages, learn a second human language, I sure as wish I had kept up some of mine. It will keep you in good stead for both business and life.