"It's my late grandmother, may God have mercy on her soul," she said, watching him look at the painting. "My role mode."
"Why? Was she a programmer?"
She just looked at him like, how slow can a mammal be and still have respiratory functions?
- Snow Crash, by Neal Stephenson
I love to read everything: fiction and non-fiction, software books and eighteenth-century romantic classics. But I'm not going to talk about the entertainment value or aesthetics of fiction, cause that's a matter of taste. Here's why I think that reading good literature is actually essential to your career as a software developer:
1. Reading fiction will make you a better speaker and writer. You become a better communicator and influencer if you learn how to tell stories. And the best way to learn what makes a good story is to read lots of them. Also, surrounding yourself with masterful uses of the English language (i.e., the kind you don't usually hear on TV) will make you a better writer. Yes, you write code, not prose; I know. But you also write documentation, emails to clients and coworkers, and documents persuading management and coworkers of your point of view.
2. Reading fiction will help you understand your users, clients, and coworkers. To write good user interfaces or give your clients what they really want, it helps be able to put yourself in their shoes. I'm not implying that we developers don't get people, just that all of us humans live in a world limited by our own narrow experiences and understanding. Fiction gives you a window into the lives of all sorts of people who are different from you, and helps you empathize with them at work. You can learn about other people's culture, values, and frustrations without traveling halfway across the world.
3. Reading fiction will give you an appreciation for everything that the software industry's taken from literature: the Literate Programming paradigm, or the humor in the fact that this Win32 website is called Catch-22. Think of these allusions that you hear all the time: big-endian and little-endian, that the Answer to the Ultimate Question of Life, the Universe, and Everything is 42, and what it means to grok something. Do you know what books those are from?*
For anyone who's not convinced, I point you to What Has Literature to Offer Computer Science?, by Mark Dougherty
*Gulliver's Travels by Jonathan Swift, The Hitchhiker's Guide to the Galaxy by Douglas Adams, and Stranger in a Strange Land by Robert Heinlein
The Software Development Study Group has been meeting in the SRT office (206 S. Fifth, Suite 200) on Tuesdays at 5:30pm for several weeks now. We've picked a jam session format, meaning that each week a different person leads a one-hour jam any coding topic. Getting to actually write some code instead of just hearing someone talk has been awesome! And everyone knows that sometimes the hardest part about getting started with a new technology is just figuring out what to install, and how to say "Hello, World!" So far we've had:
October 6- Bill Heitzeg: Problem Solving
October 13 - F. Andy Seidl : XSL
October 20 - Ben Barefield : Ruby
And the next one is yours truly, using the ruby base we got last time to give everyone an intro to rails. Here are the pre-reqs to this week's jam:
1) Make sure you have ruby installed somewhere, and a command-line available (either windows, cygwin, whatever). If you don't have a preferred IDE or editor, windows ruby comes with scite, which is pretty cool.
2) We will need to install some gems (ruby plugin libraries), so if your RubyGems system is old, update it by running
gem update —system
3) We will be using SQLite instead of mySQL to minimize pain. Download the pre-compiled version of SQLite3 3.5.4 from the SQLite web site (http://www.sqlite.org/sqlitedll-3_6_19.zip ) , unzip it and copy sqlite3.dll and sqlite3.def to your ruby/bin directory.
4) Now that SQLite3 is installed, just install the gem:
gem install sqlite3-ruby
5) Install the rails gem:
gem install rails
6) Read the first 2 sections of this tutorial, which we will be using: http://guides.rubyonrails.org/getting_started.html
Hope to see you there!