a life of coding

Wednesday, May 31, 2006

Back to Basics: Attending UC Berkeley From Your Lap

Background

You're three years into high school, and bored out of your mind. You live in, have always lived in, have never left, central Connecticut. Its a far cry from the mid-west or the deep south, but you still find it difficult to learn more than they print in your text books, or what 9 out of 10 people know. An hour due north east and you might have been the subject of a half-indie blockbuster movie... but you aren't nearly that lucky. You're looking for an out, but you aren't even old enough to drive a car.

As it turns out, you're a lucky bastard. If you haven't yet guessed, this was my youth - years of frustration in trying to pursue something that no one understood. The benefit? Being able to gripe about how you pulled yourself out of nowhere by your own bootstraps. My verdict? Griping gets you no where, just do a better job than I did. After all, you're a lucky bastard. The reason that you are a lucky bastard - that you have no excuses - that this situation simply no longer exists - is simple: the Internet.

The Appetizer

If you are an athlete, painter, musician, or gear head, the Internet is probably quite useful. Sites like Wikipedia provide you with information that you would have never had access to (personally, I would have killed at least one or two people for that kind of resource). They'll help you sharpen your technique and learn the latest trends, even if you live in a cave (one with net access). But these areas require physical skills, and probably coaching. You must practice them for years, especially if they are competitive. They are intrinsically tied to the people available to you. On top of that, the best information for you is probably not available on the net at all - the best athletes and painters probably don't write web pages.

Ah, but maybe you're not. Maybe you are a computer geek, as I am. Spending more time trying to describe yourself in terms of bits and algorithms than figuring out who you are in the first place (btw: not healthy). If this is the case, then you sir (or hopefully, madam: 'cause computing need chicks) are in luck. While you might live in the sticks of Alaska, Peru, or Iowa, you are on the forefront of the computer industry. Don't lament not being in the Valley (crowded), don't make excuses of Route 128 (cold). The secret that expensive real estate doesn't want you to know is simple: the computer industry elite is everywhere are nowhere, wherever there is 'net. Does high school seem more interesting yet?

The Entree

So, young padawan - where to start. Some rules of thumb:
  • Don't use commercial products
  • Don't worry that your work doesn't look professional
  • Don't listen to what most people say - they don't know anything anyway. Especially if you are in High School.
  • Don't ignore everyone - some people know more than you (or they) think they do.
  • Don't get involved in politics or religion too much.
  • For the love of God, don't write C++. (You'll thank me later)
  • Read a lot. Paul Graham, Golden Age SciFi, Cyberpunk, the classics. I regret not reading more.
  • Exercise regularly. I fought what my parents forced on me, but you picked a mostly sendentary career and the human body requires exercise. Learn it early, and you'll appreciate it forever.
  • Learn Java. It has its problems, but its your best bet. Download src.jar and learn how everything works.
  • Finish things. When you're teaching yourself, its easy to leave things half done. Make a list of things you are working on and when they will be finished.
  • Use open source tools. Use Linux. Download source code for things and see how they work.
  • Talk to people. Just as a storyteller needs an audience, you need users. Programming is not about computers, its about solving people's problems.
  • Contribute to open source projects. You are contributing to the wealth of the world, and you can put that on your resume. Plus, you don't have to interview for them (suits bad!).
  • Think about what you are doing. Part of what you are doing is learning, so pay attention. Honestly, you don't want to succeed too much too early, or the allure of skipping college will be too great.
  • Oh yeah, go to college. You won't want to, and you might not enjoy it, but if you want to succeed (and who doesn't?), you have to. Its hard to explain why, so you'll just have to trust me. If you find it too easy, there will be a world of seriously cutting edge projects looking for volunteers. If you find it too hard...
Finally, the title of this post - attend UC Berkeley. Its easy! Really, anyone can do it - I do it at work. Plus, its free - how can you say no to that?

In a bid to put other schools out of business, the top programs are putting scores of class resources online - including podcast audio of lectures. I have been listening to CS 61A with Brian Harvey at work. Being a little underwhelmed with my GeorgiaTech undergrad education, I was curious to see what (if anything) I missed out on. So far, I like the clarity and confidence that Harvey has - but then, I thought the same of Kurt Eiselt. The course seems significantly faster and denser than my Tech experience. I suppose a program like UCB can expect more of its undergrads.

If you are interested in learning Lisp (or anything for that matter) or testing the breadth of your skills, I recommend checking out the plethora of courseware available. If you're trapped in High School computer class, step up and ask your teacher to incorporate intro level college courses. The first couple months of a class like CS 61A will teach you more than a year of AP Computer Science. And I cannot stress enough that all of this is free. If you have the time, you are losing nothing by checking it out.
Just Desserts

Convinced that you are alone in your thirst for knowledge? You could not be more wrong. Get together with your friends and work on things together. Networking is the name of the game in software. If you are in the Atlanta area, check out atlHack.org. We're like a support group for caffeine addicts and computer programmers. But it isn't hard to start your own - websites and time are both cheap now. If you do, drop us a line and we can start a network of hackers.

Whatever you do, make sure that you're in it for the right reasons. If you enjoy what you do, you'll get more out of it and do a better job. No startup has been founded by people who don't enjoy what they do. Plus, I don't like working with people who don't enjoy what they do, so do me a favor.

1 Comments:

  • Here is a link with the video of lectures of the course 6001( http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm) from the MIT :

    http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/

    By Anonymous Monkeyget, At 12/1/06 4:29 AM  

Post a Comment



<$I18N$LinksToThisPost>:

Create a Link

<< Home