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.
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!)