
The Bastards Book of Ruby - J3L2404
http://ruby.bastardsbook.com/
======
danso
Thanks for who posted this, I'm ashamed to say that it is in need of an
update/typo-fixing that hasn't been done yet (as you can tell by the winter
seasonal photo).

The main complaint I've heard from people who go through Codecademy/Khan any
of the other "easy-to-interactively-learn" options out there is that they
don't know what to do with their knowledge of loops/conditionals/variables
beyond passing the tests. I wanted something focused on applied tasks, whether
it be web scraping/API-fetching or even something as simple as batch
concatenating/editing text files.

That's how I myself learned, anyway, so just wanted to point out to other
authors the value of simple real-world-data projects as a way to keep readers
interested.

~~~
phaus
I'm a CIS major about to enter my junior year, I still have the same problem
that many of codeacademy's students do. I've done a couple of programming
classes (which I aced) and dozens of tutorials but I don't have a clue where
to begin when it comes to actually designing a useful program.

~~~
envex
You just dive in head first and have to realize that a handful of your early
projects will be garbage/useless.

If you've built a program/app in another language, try and rebuild it in the
language you're learning or one you've never used before.

------
knowtheory
For those interested, the Bastard's Book of Ruby is written by Dan Nguyen, a
journalist and developer who works at ProPublica
(<http://www.propublica.org/site/author/dan_nguyen> ), and the dude
responsible for SOPA Opera (<http://projects.propublica.org/sopa/> ).

I'm not sure how many other programming books have come up out of the news
apps/NICAR world (the National Institute for Computer Assisted Reporting), but
one of the reasons i like the Bastard's Book so much is that it's a really
practical bent on learning to program.

------
wh-uws
Love this quote from the book from the about/why section

 _Programming languages are more human-friendly._

Early computer languages were optimized for early computers. With today's
processors, languages can have far more built-in features that drastically
reduce the physical tedium and memorized minutiae needed to write powerful
programs. Because programming languages don't need to be as _efficient for
machines to process_ , they've become much _more efficient for humans to work
with_.

------
jmmcd
Thanks, this is the best answer to all the "don't learn to program" arguments.

------
saltcod
A really, really good book. My only wish is that there was a Bastards book of
PHP. There is no such practical, useful equivalent in the PHP world that I've
found—and I've looked.

Maybe I'll ask Dan to write that one next =)

~~~
danso
I had said awhile back that I would shoot for a Python version since the code
tries to be as Ruby-idiom-free as possible...but I think I need to first focus
on moving it to a more painless deploying process, such as github+jekyll...and
hopefully make it easy for anyone to port over the lessons/examples in other
(high-level) languages

~~~
apsurd
I'd honestly want to help you enable this using <http://ruhoh.com>. it's
jekyll inspired but made to be a lot more streamlined.

The stack is markdown and mustache. This would be a great way for me to see
how I need to evolve the ruhoh platform.

Can't honestly say this is the best platform for your book but I am willing to
dedicate time to your project to get this done for everyone's benefit. Please
contact me and/or point me to the public repo if available. thanks!

------
lukethomas
As someone who is currently trying to learn Ruby, this book is EXACTLY what I
need. Oftentimes I burn out reading books where I can't see the direct
application of the code I'm learning. THANK YOU!

~~~
danso
Great to hear. I definitely need to clean up/supplement the various exercises
and chapters but hopefully it gives you some of the basic framework to adapt
to other web/data sources that you're interested in. Once you've figured out
how to loop through a database/data table/API and save yourself
dozens/hundreds of mouse-click-copy-paste operations, you won't need much more
incentive to keep coding.

------
mcmire
Nice! I haven't read a whole lot of it yet, just the why and FAQ sections, but
already it feels unlike your everyday programming book, which I think is
refreshing. Also I like the stats next to each of the chapters in the TOC...
you seem to be a detailed person.

------
cocoflunchy
Just something that caught my eye, being french...

This sentence is not correct: "Je n'ai pas aller au bibliotheque pour manger
le fromage."

You should write: "Je ne suis pas allé à la bibliothèque pour manger le
fromage."

Which, in case you wonder, means: "I didn't go to the library to eat cheese."

~~~
maybird
Non-French here, but trying to learn. What's the difference between "manger le
fromage" and "manger du fromage"?

~~~
berberous
non-french speaker here, but i think it's "eat the cheese" vs. "eat cheese /
eat some cheese"

~~~
cocoflunchy
Yup, that's it.

------
damncabbage
This is amazing. Thanks for posting this.

I await the _Bastards Book of Haskell_ with great interest. ;)

------
graeme
Wow, perfect timing, thank you. I just decided to start Michael Hartl's Rails
Tutorial, and was looking for something on Ruby because I don't know the
language.

I love the practical focus; it's exactly why I want to learn programming. I
have a very narrow field, and _no one_ has applied programming + domain
knowledge to it.

edit: forgot to add, the design is beautiful. A pleasure to read.

------
MikeCampo
Excellent work! Maybe I overlooked it, but is there a PDF version of this?

