It’s Commencement time! So I thought I’d compile a list of
1010
10000 things I believe all ICS students should have done (by
themselves) by the time they get their diplomas. With luck, students
have come across some of these in courses. Most likely, that won’t
happen, so students need to make time for extra-curricular activities.
This list is inspired by others out there, but, as the title says, it’s about
doing, as opposed to
knowing or
learning.
First-hand experience is the absolute best route for exploring the fun
things that can be done with computers. Once we make it work and/or
surpass the hurdles, we feel empowered (startup companies, anyone?). It
also builds up the critical skill of finding things out by oneself.
Here is my list, in no particular order:
0000 – Buy your own domain name.
0001 – Install an Apache web server and configure it in a non-trivial way, e.g. to serve multiple domains.
0010 – Install WordPress and have your own blog. Write blog posts
regularly. Write well. Good writing is a critical skill to master in
this profession.
0011 – Run your own web site at home or in a hosting company.
0100 – Write at least one complete
LAMP web app, preferably two — one where P=PHP, the other where P=Python.
0101 – Have your own [physical or virtual] server on the cloud.
0110 – Install VMWare or equivalent in order to boot up your laptop with more than one OS.
0111 – Configure your home DSL router so that you serve a web site or
other kind of server from your home machine / laptop to your friends.
1000 -Use a packet sniffer to learn about the network requests your computer does to your favorite game server.
1001 – Make contributions to an open source project.
1010 – Write an app that uses at least one of the popular Web APIs, like Facebook Connect or one of Google’s.
1011 – Use Google AdSense on your web site, and make money just by virtue of attracting traffic.
1100 – Compile a complicated open source project from scratch, like
OpenSim or
Matterhorn. (Thanks, Sean!)
1101 – Read works of literature and, besides enjoying the ride, pay
close attention to how the author tells the story and makes use of
words. Your programs should be as carefully written as those works of
art! (Thanks, Beki!)
1110 – Get yourself involved in a software project where requirements
are bound to change halfway through — that’s about 0.01% of homework
projects and about 99.99% of real world projects, so find one of the
latter kind. Finish the project with patience and the ability to take
criticism in a constructive way. (Thanks, Lorraine!)
1111 – Write an application using map-reduce. Run it on Google app-engine or amazon EC2. (Thanks, Ian!)