Wednesday, May 06, 2009

The coder's bookshelf

(permalink)
I've spent a decent amount of time and money assembling a book collection that's relevant to the coders in the Hacker House. I thought I'd publish what we have so far. Apologies in advance for the made up genres. Some of these books were contributed by John Devor & Dan Grover but most were purchased used off of Amazon. In total I spent about $400.

The collection was partly based off of these recommendations:
- The Top 9½ In a Hacker’s Bookshelf
- Book Reviews by Joel Spolsky
- What is the single most influential book...
- What would you put on a hacker's bookshelf?

Feel free to suggest any other books in the comments below!


Oreilly reference books (programming):
- Learning Python
- Python in a Nutshell (indispensable)
- Programming Collective Inteligence
- Version Control with Subversion
- Python pocket reference
- CVS pocket reference
- Facebook Cookbook
- FBML Essentials

Other reference books (programming):
- How to Design Programs
- Structure and Interpretation of Computer Programs (I'm currently working through this book... it will take me a while)
- The Little LISPer
- The Little Schemer
- The C Programming Language
- Core MAC OS X And UNIX Programming
- Programming Ruby
- Agile Web Development with Rails
- The Definitive Guide to Django
- Practical Django Projects
- Pro Django
- Simply Javascript (sitepoint)
- PHP Developer's cookbook
- Object-oriented PHP
- Beginning OpenGL

Obviously there are many other reference books worth owning. We chose the above books because they cover the languages relevant to us.

Anecdotal "Nonfiction" / historical startup-related stories:
- DEC Is Dead, Long Live DEC
- Burn Rate
- The Perfect Store
- Once You're Lucky, Twice You're Good
- Microsoft REBOOTED
- Founders At Work
- Revolution In The Valley (My favorite book in this section.)
- Hackers by Steven Levy
- Crypto by Steven Levy
- The Fall of Advertising & The Rise of PR
- The Search by John Batelle (Needs more research/interviews from Google founders & employees.)
- Blog Blazers

Programming/startup-related stories & essays:
- The Pragmatic Programmer
- Joel on Software (A great first read for any CS student entering the workforce.)
- Facts and Fallacies of Software Engineering
- The Mythical Man-Month
- Design Patters
- Hackers & Painters
- The Monk and the Riddle

Other hacker books:
- The Best of 2600 (A Hacker Odyssey)
- 2600 Magazines
- Computer Networks (A Systems Approach) by Peterson & Davie
- Computer Networking by Kurose & Ross
- Mathematical Structures for Computer Science
- Applied Cryptography by Bruce Schneier


Motivational / Organizational:
- The Last Lecture by Randy Pausch (A quick & inspirational read. Life-changing stuff. Read the wikipedia article first.)
- Getting things DONE
- How to Win Friends & Influence People (A classic, but can easily be paraphrased.)
- The Art of the Start
- The Creative Habit
- Bit Literacy (A gift. A good book for the computer (semi/il)literate.)
- Influence by Robert Cialdini
- 7 Habits of Highly Effective People
- Talent is Overrated

Writing / Literature:
- Best Software Writing by Joel Spolsky
- On Writing Well by William Zinsser
- Writing Down The Bones
- A Glossary of Literary Terms

Finance & Economics:
- Basic Economics by Thomas Sowell (If you want to learn Econ, read this book.)
- Freakonomics
- The Visual Display of Quantitative Information
- Buffett by Roger Lowenstein
- The Intelligent Investor
- How to Invest $50-$50,000

Political:
- Several books by Bob Woodward (The War within, Bush at War, etc)
- The Quotable Atheist
- The Squandering of America
- The End of Faith
- The Selfish Gene
- Atlas Shrugged
- The world is Flat (There's a debate as to whether these books belong in the economics section. My vote is no.)
- Hot, Flat & Crowded (same as above)

Science & History:
- 100 Scientists who Changed The World
- A short History of Nearly Everything
- Gödel, Escher, Bach: an Eternal Golden Braid
- On Speed: the Many Lives of Amphetamine
- Guns, Germs, and Steel
- Sex, Time, and Power
- Outliers
- The Double Helix

Un-categorized:
- Around the world in 80 days
- A Confederacy of Dunces
- Walden
- Civil Disobedience
- A Brave New World
- The Power of One
- One Flew Over the Cuckoo's Nest
- Profiles In Courage
- Geek Silicon Valley (If you're a geek in the valley you need this book.)

Recent purchases (haven't yet arrived):
- Zen and the Art of Motorcycle Maintenance
- Art of Computer Programming, Volume 1
- Code Complete

Labels:

Wednesday, May 14, 2008

SICP and promises

(permalink)
A few days ago I blogged about be working through SICP in ARC. I was going to track my progress on bluwiki.

My personal goal was to make some progress every day. That hasn't happened.

I'm thinking about abandoning ARC, and just working through SICP in scheme. Scheme & ARC are remarkably similar, it seems the only difference is semantics. It'd be a lot easier scheme, since I wouldn't have to translate all the problems. Also, the language is more mature - so I suspect the libraries are more robust.

We'll see - I'm going to take a crack on SICP 1.2 and 1.3 this weekend, and I'll make a decision after that.

Labels: , ,

Thursday, May 08, 2008

how to dive into web programming

(permalink)
I'm just starting to get serious about web programming, and I've done a decent amount of research about how to master it. I quickly articulated this advice in an email to a friend, and I thought I'd post it here:


Her question:
From: AM
To: Sam Odio
Subject: hi i'm curious..

Hi,

I saw that you're doing SCIP - so then I looked up what a functional programming language was, and according to wikipedia functional languages "have largely been emphasized in academia rather than in commercial software development." But it notes that you can use it for commercial use as well. So are you doing it just to learn or is to serve some future practical purpose?

I was just wondering b/c I always want to know what the best language to learn is (not that I have much of an intention of learning any sort of functional programming after getting extremely confused by your progress tracking on bluwiki) and I also know that this is all based largely on personal preference, but i'm still curious....

AM.


My response:
From: Sam Odio
To: AM
Subject: Re: hi i'm curious..

my suggestion:

1) learn an object oriented language & framework (I'm doing pything w/ djano, you can also do ruby/rails or php/symfony)
2) learn functional programming w/ SICP if you want to get good (CLisp, scheme, arc)

#2 will take a lot of time, and yield few direct results. But it'll help you understand what is capable w/ programming. Long-term results, not short-term. If you want ONLY short-term results, learn php/symfony. PHP is not completely object oriented, but quick & dirty.

-s


What does everyone think? did I give her the right advice?

Labels: , , , , , ,

Saturday, April 29, 2006

Foxfield: a time to party, drink, and... program?

(permalink)
Today is April 29th, the day of the annual Foxfield Races. The races are a venerable UVa tradition when just about everyone takes time out of their rigorous schedules to convene on a field, party, get drunk and do crazy things, like getting paid for jumping in a trough full of piss (foxfield's "bathroom").

Having stayed up till 4 yesterday, I couldn't wake up in time to leave for the races this morning (everyone got up @ 7). Since I wasn't really looking forward to going anyways, I decided not to meet up with them there and instead do some programming in Rails.

So I'm programming in my backyard on my laptop and all these drunk students walk are walking home after the races. I have my ruby on rails book out, and this guy comes up and reads the title, and then exclaims "HEY! 3 Dollar Rails!" I replied with an "uh, yah... you got it."

Its times like that which make me realize how out of place I am, cause at that moment I realized the word "rails" means something entirely different than to the majority of the UVa population. When they hear it, they think cheap drinks; when I hear it, I think a cool programming tool. Guess that makes me a geek.

Labels: , ,

Tuesday, April 18, 2006

Ruby on Rails

(permalink)
If you haven't started using Ruby on Rails, you need to.

Although I still haven't mastered it, I have been absolutely AMAZED at how powerful it is. A couple vids to whet your appetite:

- creating a blog with ruby on rails in 15 mins
- ruby on rails web interface to flickr


I know this is old news for all you programming geeks out there, but just entertain me.

Labels: , ,