Lacker Style

Tuesday, April 14, 2009

Get Started

A recent anonymous comment on this blog -


Hey your dad's my doctor, and I attend sycamore junior high school. I'm in all accelerated classes with straight A's and looking at a future in computer science. Any tips on things I could do right now to get started?


Well if my dad is your doctor I feel obliged to help out.

Dear anonymous commenter, you are lucky that you have plenty of time before you need to make any important decisions in your life. I could be wrong but you sound very success-oriented. Since you are in junior high school, the next year of your life will probably be the least important year of your life, offering you plenty of time to goof around with no serious repercussions whatsoever. So first off, take advantage of that. See if you can still get straight A's while not turning in a lot of your homework. Try to play a lot of video games and learn how to do that thing where you spin your pen around on your thumb. Treat hanging out with your friends as a priority over all over things.

So on to the less important topic of preparing for your future career. Computer science is a weird subject because so many people pick it up outside of class. A few people will study hard and then be indifferent to computers in their actual life but it's pretty rare. It's much more likely for people to be good at and enjoy computer science if they are the sort who writes little programs for fun outside of class. If you are just picking computer science because it seems like the least bad class you're taking, remember there are a heck of a lot more things to study in college than in junior high, so you don't have to pick yet, at all.

Finally, the question you actually asked. What to do now? The easiest thing to do that will provide you with general background knowledge (and something that you might actually do after reading this) is to regularly read stuff on the internet about programming, the software industry, or academic computer science. For you, I recommend Hacker News, programming.reddit, and many blogs: Lambda the Ultimate, Word Aligned, Coding Horror, xkcd, Eric Sink's weblog, Gamasutra, Gabor Hits Send, Inside Social Games, Luis von Blog, Neopythonic, Stevey's Blog Rants, TechCrunch, and The Daily WTF.

For-reals finally, the most helpful thing is just writing programs. Learn Python because it is the best for casual programmers. Claim you are starting an open source project to get free subversion hosting from Sourceforge (trust me you want this). Then do whatever you find most interesting, because the bottleneck is not going to be your time, the bottleneck is going to be how long you can go without getting bored and quitting. Aim for something as simple as possible that will still entertain you. Like hangman. If that's too simple, how about mastermind. If that's too simple, how about superghost. If that's too simple, how about othello. How about a program to predict who will win baseball games, or a program to check the headlines every five minutes and email you whenever a famous football player gets injured for your fantasy league. I don't know how good you are but if you can, try out these programming contests like TopCoder or there are probably local ones for students. Write some stuff using something academicky that there is plenty of information available online about, like neural networks or alpha-beta.

If you have actually read this far (seems unlikely), start doing some stuff, and are frustrated because you are stuck somewhere, send me your code and I will give you feedback. Post it in the comments or just email it to me at (my last name)@gmail.com.

1 Comments:

  • Thanks for the tips. I've already started looking into python, but haven't written any code yet myself. And yes, I did read that far.

    By Anonymous Anonymous, At April 20, 2009 3:33 PM  

Post a Comment



<< Home