Resources

This blog is a lot about resources for learning or getting to know different things. Here I’ll try to point to some of the best ones I’ve come across and especially to the ones I wish I would have picked up earlier. If you want to add to this add list feel free to comment or contact me in another way (see the About section).

Also please note that the resources are in no particular order, please read the short description to try to figure out what suits you the most.

Free Resources

Non-free Resources

Free Resources

Free as in “free beer”, so you can just download or view them on the Internet without paying any fee. So special Kudos go to every author of every resource in this section since they were willing to share these resources for free.

Learning Ruby

These resources are all targeted at beginners and aim at teaching ruby. They are very distinct, some are interactive others are books. Some cover a lot, some just the real basics. Choose what you like and feel comfortable with.

  • Ruby Track from Codecademy Codecademy really is an awesome website, this course takes you through the basics of ruby with interactive lessons. So they introduce a new topic to you and then it’s off to hands on tasks for you to complete. And in the process you earn cool badges!
  • RubyMonk A cool web based interactive environment where you get information about a topic and then get to code immediately. It’s a lot like the Ruby Koans as they test if what you coded achieves what they want to. Moreover it has also got those nice ZEN like comments. And it runs in your browser, no need to install something.
  • Ruby in 100 Minutes This great tutorial from JumpstartLabs gives you a great walk through of the basic ruby concepts. It’s all text but includes some exercises for you to make. My project group liked it a lot =)
  • Ruby Koans A very different but fun way to learn Ruby, you are given a test suite and you learn ruby by making all those tests pass. All is set up around your path to “enlightenment” – pretty nice and really shows you the spirit and value of Test Driven Development! Plus some of the problems later on are actually a bit harder, so you are really solving more advanced problems.
  • TestFirst.org Testing what you do first, also known as Test Driven Development (TDD), is a very important lesson and I wish I had started with this as well. This page provides you with resources to learn and failing tests where you should fill in the blanks. So a bit like my beloved Ruby Koans. Besides Ruby it also features JavaScript.
  • Ruby From Other Languages Aimed at people, who already know programming, this provides a comprehensive list of important features of the Ruby language. For some languages it also provides a list of similarities and differences, those languages right now include C/C++, Java, Perl, PHP and Python.
  • Learn Ruby The Hard Way A guide to learning Ruby assuming absolutely no prior programming knowledge. Don’t be scared by the title “the hard way” – this book explains a lot of things. They just call it the “hard way” since it is kind of the old way, go through every exercise and make it run. The page also contains information about Python and C.
  • HacketyHack A cool and easy introduction to Ruby programming – it is actually a Ruby program written with Shoes. It is designed with children in mind but it certainly can’t be bad for adults. As a plus, here you are actually doing some GUI programming.
  • Why’s (Poignant) Guide to Ruby A famous guide to Ruby by a famous Rubyist. There is a nice little story and nice  little cartoons throughout the whole book which are pretty funny. Many people like this guide very much. However for my taste it sometimes is too much story and not enough knowledge, but decide for yourself!
  • Ruby User’s Guide Pretty concise and good guide about basic Ruby.
  • Beginning Ruby I haven’t read it in its entirety, but those are nearly 700 pages teaching you very much about Ruby, its culture and many cool libraries. The subtitle says “From Novice to Master” and it really means it. It is a couple of years old by now so some information might not be totally up to date (information about Rails for example) but it’s free and otherwise a great resource. It’s written by Peter Cooper, who blogs a lot about Ruby and other stuff for example at Ruby Inside.

Learning Rails

These resources are also pretty diverse, but I’d recommend you to at least go through some basic Ruby material before starting with Rails. Make sure to also check out the Complete section, some very good resources for learning Rails can be found there as well.

  • Rails Beginner Cheat Sheet There are quite some cheat sheets for Rails out there, however I found that none of them was suitable for beginners. So I created one 🙂 It features explanations of basic concepts like the rails console or the Rails folder structure and answers to common questions like: “How do I start the server?” And I added explanations to make everything as clear as possible. Hope that it helps you!
  • Ruby on Rails Tutorial Book One of the best Ruby on Rails tutorials I’ve ever read and worked through. Back then I couldn’t believe that it was free. Michael Hartl leads you through the whole process of setting up Ruby on Rails, teaches you the basics of Ruby and then develops a Twitter like Web application with you – and that with Test Driven Development – just WOW! It’s also how I learned Rails.
  • Rails for Zombies A fun and interactive way to learn the Ruby on Rails basics. At first you get introduced to a topic with a cool video by Gregg Pollack and then you are given several tasks, which you have to complete on your own (in the browser). Very fun and practical.
  • Software Engineering 2 course material This the course material from a course I took at my university, which is freely available. Just scroll down and you can download the slides on Rails basics, Behaviour Driven Design etc.
  • Ruby auf Schienen A german tutorial about Ruby and Ruby on Rails which seems fairly complete with over 15 chapters and many many sub chapters! Ein deutsches tutorial, was auch super umfangreich aussieht 🙂

Advanced Ruby

When you have mastered the basics, there is always room to learn more. Some of these resources here also talk about Rails, although it’s not necessarily their main focus.

  • Ruby Best Practices A book, written by Gregory Brown, introducing you to some higher level Ruby and best practices mostly featuring source code from real open source projects. It really shows off some great techniques to make your Ruby Code a lot better.
  • Ruby Rogues A podcast featuring many famous Rubyists. They usually talk about a designated topic for a while and then come to the picks section. The Picks section allows the panelists to make some picks of cool things they came across, not necessarily connected to Ruby. It’s a very informative podcast, make sure to bring some time however, as the episodes are about one hour-long. A new episode of Ruby Rogues airs about every week.
  • Ruby5 A short podcast (mostly 5+ max 3 minutes) with the news around Ruby and Rails. A great way to get you quickly updated. Airs twice a week.
  • Ruby Inside One of the biggest (if not the biggest) Ruby blog operated by Peter Cooper. It features posts about interesting Ruby/Rails features and gems as well as reviews of some Ruby books.
  • Practicing Ruby (Vol.1) As Gregory Brown is releasing the second edition of his newsletter, he released the issues from the first newsletter for free on this blog. Well worth a read!
  • Clever Algorithms 45 Artificial Intelligence Algorithms described – code examples in Ruby. I have to admit, I haven’t yet read it but for writing such a book and releasing it for free, its place here is well deserved. And Peter Cooper likes it, which is always a good sign.
  • Rubular A nice way to play with regular expressions in Ruby. You can specify a test string and a regex and Rubular shows you all the matches. Also the quick reference at the bottom is one of the best of its kind that I have ever seen. (Attention though, it’s still running 1.8.7)
  • ruby-warrior A game for learning ruby and artificial intelligence. You are a warrior climbing a tower up level by level and prepare the warrior with enough artificial intelligence to defeat all the monsters and move up to the next level.
  • Puzzle Node If you want to work on your programming skills it is a good exercise to solve some of these advanced puzzles.

Advanced Rails

These are just a few resources specific to Rails, however don’t forget  that in order to write better Rails applications you also need to improve your Ruby. Therefore also check out the Advanced Ruby section.

  • Objects on Rails A brilliant book by Avdi Grimm about object oriented design of Ruby on Rails applications. Want to take your Ruby on Rails skills to the next level? This is definitely worth reading.
  • Ruby on Rails Security Guide Before you ever release a web applications built with Ruby on Rails to the broad public you should make sure to read this guide and check your application thoroughly. If you don’t want to see your application headed for disaster, that is.
  • Rails Best Practices A website focusing on people to share their rails best practices. It also comes along with a gem to check your project for violations of the collected practices.
  • PlanetRubyOnRails A blog which displays the newest blog posts from several other blogs about Ruby/Rails. A real good overview and pretty informative.

Complete: Learning to Advanced Ruby & Rails

There were a couple of resources I had to mention twice since they included material for beginners as well as advances Ruby & Rails devs – hence this new category for those resources, that got something to offer for the new as well as the more seasoned Ruby & Rails developers.

  • RailsCasts Ryan Bates makes an awesome job of shortly explaining Ruby on Rails features or introducing gems via awesome screen casts. Often he takes you step by step through the journey of accomplishing a specific task. If you would rather like a text version you might want to check out ASCIIcasts.
  • Ruby on Rails Guides Here you can find guides covering basically everything about Rails ranging from beginner topics to more advance topics.
  • JumpstartLab tutorials JumpstartLab does Ruby and Ruby on Rails trainings and workshops. They share all their material for free online. They also have a list with more specific topics. Awesome!
  • Rubeque A little quiz site where you can try to code for given problems and see if your code does the trick. With problems ranging from elementary to really advanced. If you want, you can also create your own problems for others to solve!

Web Development

This refers to more general Web technologies so HTML, CSS, JavaScript and some other topics.

  • code.org Site dedicated to coding with a beautiful learning section (which the link goes to) – you will definitely recognize some of the resources from here. They also made this awesome motivational video.
  • Codecademy A great interactive place to learn about JavaScript, basics of webpages (HTML + CSS), Python and of course Ruby. The site is very interactive, so you get straight to the exercises right in your browser. Plus you got nice progress bars, points and badges to motivate you. It’s also a platform for questions and discussions.
  • sitepoint Good overall reference for CSS, HTML and JavaScript. They show examples and the compatibility of the presented features with different web browsers.
  • Mozilla Developer Network – Doc Center The makers of Firefox, Thunderbird and other great Software have a good collection of documents describing many web technologies such as HTML and CSS.
  • Google: HTML, CSS, and Javascript from the Ground Up Video tutorials from Google for learning the web basics. The site also has a lot of further teaching material.
  • jQuery Documentation If you want to do web development you most likely need some client side code, and as plain JavaScript is pretty hard a library like jQuery is a good choice. Their Documentation is one of the best I’ve ever seen, it gets you started right away, features many easy to understand examples and good descriptions.

Agile Software Development and General Software Engineering

Agile Software Development is very dear to my heart and I believe that everyone should learn about it. If you ask me, it’s a more efficient, more honest and foremost a more fun way to work.

  • LearnGitBranching An awesome interactive website with a beautiful visualization and some cool tutorials to teach you the basics of git. I believe it’s a great help to better understand version control and especially git! For now I have to recommend using it in Chrome though – doesn’t work bug free in Firefox (yet).
  • PragPub A monthly pragmatic magazine published by The Pragmatic Programmers, who I admire. Magazine often contain articles by authors of their books, who share part of their books or totally new content. Many articles are about agile software development and the methodologies that go with it. However many articles are also about programming languages, like Ruby, CoffeeScript or Arduino. A magazine usually consists of 40 to 60 pages. You may download them as pdf, mobi, epub or view them as HTML. The magazine sure are worth a read and I am waiting for its release every month.
  • The Agile Warrior The blog of Jonathan Rasmusson, where he shares interesting bits of information he has come across as well as slides of presentations he gave. It is mostly about agile software development but sometimes Rails, C# and other interesting topics make their way into his blog. Also one of the best introductions to agile that I’ve seen: Agile in a Nutshell
  • The Scrum Papers A very good explanation of Scrum by the co-creators of Scrum, Jeff Sutherland and Ken Schwaber. Despite a basic description of Scrum, case studies about Scrum and additional knowledge is presented. Highly recommended reading!
  • Agile Manifesto The foundation of all agile software processes, presenting all the values and principles.
  • Practices of an Agile Developer Pullout Card A pretty good summary of the book itself, which I enjoyed pretty much and features very important tips.
  • The playbook by thoughtbot Thoughtbot is a well-respected company doing web development and design for their customers. They released the playbook as part of their lessons learned and it is for everyone, who wants to build a web application. I haven’t read it all (yet) but what I read seems like a good concise roundup of good practices, knowledge and tips! These guys know what they are talking about!

Non-free Resources

The resources in this section are not freely available on the Internet, you have to buy them. Those are books I’ve read and found to be especially good.

I would like to mention that I am not associated with the publisher of those books (though I somehow wish I were associated with The Pragmatic Programmers, but that’s another story) and I don’t get anything if you click on the links I provide here. They are just there for your convenience.

Agile Software Development

  • The Agile Samurai An awesome introduction to agile software development by Jonathan Rasmusson, powered by a lot of good illustrations and humor. Easily one of the best books I ever read. My Review
  • The Pragmatic Programmer The first book (to my knowledge) that Dave Thomas and Andrew Hunt wrote. It is simply awesome and has been referred to as one of the best books about programming by many people and to me it totally is. I list it under agile because the principles presented here are very agile, however the term wasn’t even coined back when this book was written. Now also available as an ebook!
  • Practices of an Agile Developer A really good book with succinct descriptions of the practices and why they are so valuable. It always starts out with a devil statement, what you shouldn’t do, and closes with an angel statement showing you what it should be like. I enjoyed this book a lot.
  • Agile Coaching A good book about agile software development, not only for coaches though. As long as you are working in an agile team and are always looking forward to improve your ways of working, this book is well worth a look.

Coding

  • Eloquent Ruby One of the best you’ll ever read about Ruby. It’s not designed to be your first book on Ruby, but rather your second book. It taught me so many advanced concepts of Ruby and better style. Oh and all of this while being really entertaining. The book also got good ratings from Peter Cooper and a whole episode from the Ruby Rogues about it.
  • CoffeeScript This book taught me CoffeeScript and I love CoffeeScript by now. It is concise and familiarizes you with many concepts in no time! Tired of JavaScript? Go get it!
  • Clean Code A really good book by Uncle Bob Martin (and several co-authors), elaborating on what good and clean code means and how to achieve it. The book also takes you through some refactorings of code to see the promoted principles and techniques in action. The book is a classic and a very enjoyable and informative read targeted at making you a better software craftsman.

General

Information about how to make your workflow more efficient and other general information.

  • Pragmatic Learning & Thinking A book by Andrew Hunt about how your brain works and how you can get more out of your brain. It’s a book for knowledge workers of all professions, which really helps you to leverage your brain more. It introduces the reader to some of the common concepts and if you’ve never read a book about the brain or learning techniques before don’t be afraid – neither had I. It’s written very well and understandable. My Review
  • Pomodoro Technique Illustrated Explaining the Pomodoro technique in detail with many nice illustrations and background knowledge. It is a good way to use your day more effectively, so it is worth a look.
  • Software Programming and Coding Glossary for Kids An easy to understand list of programming terms and what they mean. Not only useful for kids but to all beginners!

One thought on “Resources

Leave a comment