(^68) 97 Things Every Programmer Should Know
Fulfill Your Ambitions with Open Source .................
Richard Monson-Haefel
CHANCES ARE PRETTY GOOD that you are not developing software at work
that fulfills your most ambitious software development daydreams. Perhaps
you are developing software for a huge insurance company when you would
rather be working at Google, Apple, Microsoft, or your own startup developing
the next big thing. You’ll never get where you want to go developing software for
systems you don’t care about.
Fortunately, there is an answer to your problem: open source. There are thou-
sands of open source projects out there, many of them quite active, which offer
you any kind of software development experience you could want. If you love
the idea of developing operating systems, go help with one of the dozen oper-
ating system projects. If you want to work on music software, animation soft-
ware, cryptography, robotics, PC games, massive online player games, mobile
phones, or whatever, you’ll almost certainly find at least one open source proj-
ect dedicated to that interest.
Of course, there is no free lunch. You have to be willing to give up your free
time because you probably cannot work on an open source video game at your
day job—you still have a responsibility to your employer. In addition, very few
people make money contributing to open source projects—some do, but most
don’t. You should be willing to give up some of your free time (less time play-
ing video games and watching TV won’t kill you). The harder you work on an
open source project, the faster you’ll realize your true ambitions as a program-
mer. It’s also important to consider your employee contract—some employers
may restrict what you can contribute, even on your own time. In addition, you
need to be careful about violating intellectual property laws having to do with
copyright, patents, trademarks, and trade secrets.