The Fundamentals section is probably best read chronologically. If you already know how to program, the Supplemental chapters and Projects cover a wide range of real-world use cases that might interest you.

Please read the About page for more details on the progress of this book.

The Fundamentals

This section is a very abridged introduction to computer science and contains the bare minimum that I think you need to learn before being able to see programming as "not magic." The first chapter is an installation guide and an introduction to the command line. The chapter after that exist solely as a copy-and-paste exercise, so you can at least experience how easy it is to run code.

Then it's the basics: numbers, strings, variables, methods, loops and more. At a surface level, Ruby is a language. And just as in French, before you you can converse and flirt in it, you need to learn about conjugation, tenses, and how to form sentences like "Je ne suis pas allé à la bibliothèque pour manger le fromage."

Supplementals

These chapters aren't necessary in understand the foundations of programming, but they're critical to making your programming knowledge useful in real-world applications.

Some of these concepts have little to do with programming, so it's possible to read their chapters without intending to learn programming. Regular expressions, in particular, are valuable to anyone who has to deal with cleaning and verifying datasets. I've devoted several chapters to web-scraping on the assumption that some readers may have little working knowledge about HTML, Javascript, and the other underlying web technologies.

How to use ImageMagick and the RMagick gem to process and interpret images and photos.

• ImageMagick and the RMagick gem

• Opening and saving images

• Image alterations

• Pixel operations

• Drawing

• Applications

Status

Stub

Words

1,967

Lines of code

200

Exercises

3

Pictures

20

Design and Theory

This section contains some of the important computer science and software engineering concepts that I largely skipped over in the beginning to soften the learning curve.

This section is very incomplete and contains few working examples. I'm experimenting with different ways of introducing the topics. The main point is to make you at least aware of them. The topics are deep and complex and can occupy weeks of a class curriculum. Even if this section were more complete, you should seek multiple sources and explanations.

The Projects

Even though The Bastards Book of Ruby was going to just be a list of programming projects and snippets, this section is the least complete and consistent. Some portions have been written before I had decided to write all the other sections, so they contain thorough step-by-step instructions. Other portions – because I assume you've gone through the previous sections, or just out of laziness – do little more than describe the point of the code.

Though many of the Fundamental and Supplementary chapters contain useful code examples, the Projects section attempts to walk through not just the code for specific situations, but the reasons behind exploring a dataset and the possible avenues of analyses and investigation.

The code is a little more complex – and, at times, obtuse – but is meant to be readable by not-yet accomplished programmers. However, readers who are already skilled programmers may find useful insights or ideas to take on.

As of the first release of this book, I've only had time to draft just a few of the project walkthroughs that I have so far planned. This section will be the most added-upon over time.