We’re happy to introduce our newest book, Core Ruby Tools, to our Open Bookshelf! This book provides a short tour of four core Ruby tools: Gems, Ruby Version Managers, Bundler, and Rake. We’ll see how these tools fit into the Ruby environment and your computer system, and learn how to diagnose and fix problems that you may encounter when using them.
We’ll give you a sneak peek into the book by including its introduction chapter in this blog post.
Introduction to Core Ruby Tools
If you’re just starting to learn Ruby, the numerous tools used with the language can seem overwhelming. For instance, right from the beginning, you may need to learn about RubyGems, rbenv or RVM, Bundler, and Rubocop, and that’s just a start. Later, you will learn about databases and SQL, Rake, Rails, and more. New developers have an even bigger challenge: they also need to learn about the command line and environment, git, a code editor, as well as all the concepts of programming. This toolbox provides the environment that makes Ruby a useful and practical software development language.
Fortunately, you don’t need all these tools immediately, nor do you need familiarity with advanced features from the very beginning. All you need to begin is a short introduction to the most commonly used tools. Here at Launch School, for example, we teach many of these tools as they come up in the curriculum. Yes, the introductions come hot and heavy at first, especially for new developers, but nothing is presented before you need it.
Since we already cover much of this material elsewhere, this guide doesn’t spend too much time teaching you how to use these tools, though we do have a “how to” chapter. Instead, we concentrate on a handful of tools — namely Ruby itself, rbenv, RVM, Gems, Bundler, and Rake — and talk about how they fit into the world of Ruby development and your computer system. The information presented here aims at showing what these tools do, how they do it, how they interact with your computer, and how you can diagnose and even fix problems that arise from their use.
We don’t expect you to thoroughly understand every detail on your first pass through this material. The goal here is to help you formulate a mental model of how the pieces fit together; with that mental model, you have a realistic chance at debugging tricky environment issues. These are issues that surround the act of programming. Most professional programmers spend an inordinate amount of time and effort with these non-coding tasks; you likely will too. We want you to learn how to navigate your way through your coding environment with some idea of how everything works.