Can you help RubyLearning with your suggestions?

by Satish Talim on November 15, 2008

New Course Offerings

We’re rapidly expanding our course offerings here at RubyLearning, trying to keep up with the enormous and ever-growing interest in Ruby. But we need your YOUR help because, as you know, Ruby is a big subject, and we’d like to be sure to focus in on the areas of most interest to you.

A Note regarding the courses mentioned in the poll below:

  • Ruby Testing and TDD: (starting from the concepts of testing in general, Test::Unit and other tools are discussed. RSpec is not discussed. Suited for people trying to code test code.)
  • Ruby GUI: (GUI programming. Which library do you recommend – Shoes, FXRuby?)
  • Ruby: Git and GitHub: (A short course where you study Git and GitHub. Basic operations are discussed. Publishing a gem using GitHub.)
  • Ruby & SQLite3 database: (Learn SQLite3 using Ruby. Beneficial for those who already know another database and for those are relatively new to database itself.)
  • JRuby: This course is already available, but wanted to check whether you want it.
  • Merb: This is becoming very popular in the community.

Please take a moment to complete a brief poll about the new course offerings we’re considering. Also, please post your suggestions as comments to this blog post. It won’t take more than a minute or two.


Technorati Tags: , , ,

Posted by Satish Talim

{ 61 comments… read them below or add one }

V. Goff November 15, 2008 at 11:11 am

This is an excellent idea! I have chosen two of the 6 that I feel most strongly about. I realize that each has its place.

Thanks, Satish!


takaaki November 15, 2008 at 11:35 am

There are many people who can’t write test code. People are trying, but it’s hard. Especially for those who don’t have experience with Java and C#, it seems quite difficult to understand. Most of the books on testing are using Java and C#. This holds true with books on advanced topics such as design patterns and refactoring (though we have one “Design Patterns” book and an upcoming refactoring book).

Lack of resources is one reason. PeepCode episode on testing is rather obsolete as I understand RSpec episodes are still applicable to current Rails situations. The very first episode on testing is using a very old version of Rails and some test methods are already deprecated. “The Rails Way 2nd edition” spares a lot of pages on testing both (Test::Unit and RSpec). But it’s not a step-by-step tutorial which beginners can follow. “Programming Ruby” has a chapter on testing. But it is also like a reference.

Confusion among learners. The Rails definitions on unit and functional are not strictly correct. What’s the difference between TDD and BDD? A good TDD is BDD? What’s the difference between mocking and stubbing? So is mocking in Rails actually stubbing? What’s testing in Ruby itself? How does Rails expend the idea? All the questions are puzzling to users.

I think understanding the very basic concepts on testing and xDD with bare Ruby (i.e., not with Rails or RSpec) gives a great start for programmers. Once people understand some concepts and Test::Unit, it will not be very difficult to start learning other tools like RSpec.

I hope that RubyLearning will fill the gap and help Ruby programmers.


ed November 15, 2008 at 12:32 pm

What takaaki said and a +1 for shoes


George Thompson November 15, 2008 at 12:38 pm

As long as time allows I’m interested in just about any thing related to Ruby. I’m very interested in TDD and Merb.

TDD because it’s important yet seems to be just out of the reach of people starting Ruby/Rails development.

Merb is an important piece of Ruby’s future for web development.


Satish Talim November 15, 2008 at 12:44 pm

Ed we already have an existing course “Ruby and Shoes“.


softmind November 15, 2008 at 12:55 pm


It would nice if you can consider offering tutorials on ” Merb ” from scratch.

Merb will turn out to be a fastest moving and growing framework very soon.

Since there is not enough documentation available for Merb, this tutorial is right in time, when someone has to start.



Gaveen November 15, 2008 at 1:08 pm

I’ve yet to start TDD/BDD as a practice. I know I should. :) So if I’d enrol that’s what I’d go for.

It’s been great if RSpec was there too. But anyway, interested in Test::Unit too. It’s been seeing some attention again lately.


takaaki November 15, 2008 at 1:29 pm

Gaveen: The reason why RSpec is not introduced here is that this course will have too many contents. If we make the testing course successful, I would love to see the next testing course that covers RSpec. Understanding Test::Unit will give you a better start for learning RSpec, in my view. There are a lot of online resources available for RSpec, but some of them assume that readers have knowledge and skills of Test::Unit.


William Nelson November 15, 2008 at 2:26 pm

Use it or lose it. I think all these course offerings are excellent. The more ways you can learn how to incorporate,test, interface, connect, and manifest Ruby the better.


Nabin November 15, 2008 at 3:04 pm

I have choosen 2, of the six, which i would like to continue, Ruby Testing, Ruby GUI with Shoes. I fully agree with takaaki that “I think understanding the very basic concepts on testing and xDD with bare Ruby (i.e., not with Rails or RSpec) gives a great start for programmers. Once people understand some concepts and Test::Unit, it will not be very difficult to start learning other tools like RSpec.”.

One more thing of my self interest. How about network/socket programming in Ruby. Is there any possibility to include this topic. Hope to see some one interested!!!


Satish Talim November 15, 2008 at 3:26 pm

Nabin we have a Network/Socket programming in Ruby course ready. Not sure what the response to this course would be though.


Raecoo November 15, 2008 at 3:32 pm

I would like to see more information on the TDD and Merb courses


Manjoor Abdulla November 15, 2008 at 3:41 pm

I chose ruby and sqlite3. I feel for hobbyist noobs like me, I should learn the basics very well to have a good foundation for further additiional and advanced learning. I would have also chosen Ruby GUI as a second choice as I feel it is important to learn GUI for bringing user friendly experience to the programs.


Manik November 15, 2008 at 4:28 pm

I choose Ruby Testing and TDD. I have a certain affinity towards testing.
If I had another choice, I would have chose Merb.


takaaki November 15, 2008 at 4:51 pm

Regarding the Testing course, we plan to introduce the concepts on testing first. Understanding why we need to write test code and having a common ground on some of the terminologies are important. Different levels of testing: unit testing, functional testing, integration testing and so on. The concepts of TDD and BDD and how they relate to each other are important. After sharing the knowledge, we can move to actually writing test code using Test::Unit. Familiarizing yourself with Test::Unit is vital. We will also introduce other useful tools for testing such as ZenTest, spec/unit, test/spec, rubydoctest, flog, reek, heckle and flay. We are not sure if we can introduce mocking and stubbing. So most likely there will be no mocha or FlexMock.

We are currently thinking about a 2 or 3-week course. The biggest goal is a) to break your mental block about testing, b) to understand why xDD is encouraged and c) to be used to writing test with Test::Unit and d) get to know other tools to help testing.

We expect participants to have a good discussion on the concepts. As is true with the Ruby Core course, the discussion is a crucial aspect. We don’t give material for you to memorize. Instead we provide materials and discussion questions to make you think and discuss with the other students.

This is just what we have in mind right now. If we think there’s not enough time to discuss every tool we want to introduce, we will reserve the tools for a more advanced course. With these reasons, we think we don’t have time to introduce RSpec for this course. But it’s not that we hate RSpec. RubyLearning already introduced RSpec in one of the intermediate courses.


Abhishek P Shukla November 15, 2008 at 4:52 pm

Well I am excited more about TDD, but yes even Git is an interesting topic.


José Carlos Monteiro November 15, 2008 at 5:04 pm

Tough question. If I was to choose only two, then it would be TDD/BDD and JRuby. But that’s because I’m more concerned on having Ruby in enterprise environments, then on online applications (Rails/Merb) or in personal projects. Ruby has severe caveats and pitfalls for Enterprise acceptance, in my opinion: Unicode, Threads, Database support …

TDD/BDD is a must, in any language. After one learns more and more about those methodologies one wonders why one didn’t learn it before. Same goes for Version Control. How can one code and maintain that code without the “umbrella” of version control? For this, Subversion/Git/Mercurial/darcs/you_name_it are always a plus. One just has to learn about the system and use it.

Last one, but not least, are the GUI and Database courses. These will probably, like Shoes is doing now – in my opinion – for Ruby, will be the “entrance” into everyone’s desktop. First get the desktop, then move onto the enterprise servers. But it’s tricky. GUI concepts are very hard and so are all the issues around coding with non-objected-oriented relational databases – to ORM or not to ORM, that’s the main question.

So, I’d pick each and everyone… although currently I’m not all that interested in Rails or Merb courses. :)


Vinicius November 15, 2008 at 5:10 pm

I think, as many people have said, that TDD/BDD is essential, and, although I’m used to do it with Java, I’m not familiar with TDD on ruby, so I think that’s very important.
On the other side, I think Git is a very powerful VCS and it’s getting very popular and it is very compatible with Agile methodologies, so I think that would be very interesting.
Also, congratulations for the great work on rubylearning. This is just awesome :)


Alexis November 15, 2008 at 5:18 pm

Hi Satish
Coming from a non OO PHP background and with 5 months of intensive ruby / rails development, I have most trouble with the OO aspects of ruby. I really need to learn how to have small controllers / fat models and some kind of basic design patterns training. Got the books but I find very difficult to apply the concepts to my application.


Pratik November 15, 2008 at 5:21 pm

Merb is pretty much a Rails clone for most of the part. Why waste all your time to teach something that’s already easy to learn if you know Rails ?

I vote for Ruby GUI. Shooes ! And also Test::Unit. Testing is 100 times more important than the framework you select.


koko November 15, 2008 at 6:02 pm

I wish more (Basic)Learning programming with Ruby and solid fundamental to learn OOP.


takaaki November 15, 2008 at 6:17 pm

koko There’s a Ruby Core course that offers Ruby and OOP. Check


Satish Talim November 15, 2008 at 6:19 pm

koko we have been running, since 2006, a free online two month course on basic Ruby. The next batch (FORPC101-9C)is scheduled from 6th Dec. 2008. This covers what you mention.


Roy Stannard November 15, 2008 at 8:02 pm

I’m rather interested to learn about merb. I’m currently well into Rails but a new perspective is no disadvantage. Similarly, i’m happy with mySQL. In fact, I’ve configured my version of Rails 2 to use mySQL rather than SQlite 3 on the grounds of my familiarity with mySQL but again, I’d like to have a look at SQlite.
I know little about testing so some exposure there would be OK.


Roy Stannard November 15, 2008 at 8:04 pm

BTW i like the nifty avatars – the line drawing ones, are they available anywhere?


Rodrigo Rosenfeld Rosas November 15, 2008 at 8:14 pm

For Desktop development, I think you should concentrate efforts in Shoes instead of fxRuby or wxRuby, for instance. I’d love to take the Shoes course but I don’t have a Paypal account nor a credit card. It would be much better if I could do a deposit in a Brazilian Bank such as Caixa Econômica or Banco do Brasil.


Rodolinux November 15, 2008 at 8:15 pm

I think that Git usage is an interesting topic. One question exists something similar to Trac in Ruby? It would be nice to use.


Herminio Torres November 15, 2008 at 8:25 pm

Hi, Courses of TDD and BDD and git with Ruby is very important because it not a good portion of people use SVN and CVS. And tests TDD and BDD is very important, since it has almost no equipment and almost never discusses these issues …


Radomir November 15, 2008 at 8:53 pm

Did you consider using wxruby for GUI development? I like wxWidgets and their portability, and there are a lot of widgets to use. All you need for that is a wxruby gem…


Letícia Figueira November 16, 2008 at 1:19 am

I borrow Herminio Torres’ words about testing and TDD.

I don’t need to say I’m a fan of Shoes, so I voted it too.

I also think Merb is an important plot, but, if we’re going to start a framework-based course, then I think we should start with Rails.


Luke Pearce November 16, 2008 at 1:20 am

My votes for some good guides to TDD. I’d love to see some tutorials that create a simple blog or shop site but are written with the test first philosophy.


Gaveen November 16, 2008 at 1:27 am

@Rodolinux: This is off topic, but since you asked,

You can use Trac with Git. There’s at least one Git plugin for Trac and I’ve seen it been used by several FOSS projects. And my personal experience with it is also good.

However, I tend to much prefer Redmine for this kind of purpose plus more. And better, it’s written with Rails.


Bruce November 16, 2008 at 1:42 am

It seems like many are like me, interested mostly in TDD and GUI.

I’m an old school programmer, working on a project where TDD is supposed to be used. It’s been explained to me, but I’ve never had any formal TDD training. I find it difficult to change my ways after so many years. I know it’s just a matter of study and practice, study and practice, etc …

And, I know that knowing a GUI package would greatly enhance some of my Ruby programs.

So, these two got my votes. :)


takaaki November 16, 2008 at 6:32 am

Luke: Even if we plan a course on testing, we don’t include Rails or Merb. So making a blog or shop web app will not be included in the course.


Satish Talim November 16, 2008 at 9:24 am

Raecoo: Matt Aimonetti (Merb Core Developer) and Yehuda Katz (Merb Maintainer) have suggested the Introductory Merb course contents with inputs from Foy Savas (Author, The Merb Way).


Nikhil November 16, 2008 at 12:26 pm

I would like to go for Ruby & SQLite3 database
& Ruby Testing and TDD for testing…


Bhushan Ahire November 16, 2008 at 3:39 pm

Hi All, Its better to have the Test cases details. Like if you have test cases for your code then its very good and you can cover all conditions for testing if tester miss it.

Also Merb is having lots of similar functionalities of Rails, I dont think its better than Rails, except some spacial features.

I like to go for Ruby GUI and TDD



Willian Molinari November 16, 2008 at 6:39 pm


I’m voting for a TDD course, because i’m not familiarized with programming with tests, and i’m learning it now, so, a course will help me so much on it!

Git and GitHub is a good choice too! GitHub makes my code easier to be shared! =)


Willian Molinari


Amanda November 17, 2008 at 1:55 am

It says “Randomly selected three respondents would be entitled to a free course at RubyLearning, of their choice.” – but I presume that’s not the poll, but the comments? Otherwise how would you know how to contact random poll repliers? :)

I would particularly be interesting in testing as it applies to Rails – I can grasp the concept of testing a general class fairly easily (although a course on the specific syntax etc of Test::Unit would be nice) – but the bigger problem I have is testing controllers, and also deciding what to test and how to do it (testing ‘everything’ is a nice short answer, but not really that helpful! ;) )

Anyway, I’m sure anything would be interesting. More Ruby knowledge in the world is always good. :)


Lucas Zawacki November 17, 2008 at 4:26 am

I’m really interested, like many others, in testing and GUI. I’ve been programming in Ruby and reading blogs about it for some months now, and a recurring topic is how testing is important so I think this course is a must have. Also I’m trying to learn Rails + Databases on my own, so I think the Ruby + SQLite3 course is very interesting. And that’s why these three got my votes.


Satish Talim November 17, 2008 at 6:43 am

Amanda you are right about “but I presume that’s not the poll, but the comments” – I shall correct it now.


ndogbosok November 17, 2008 at 9:02 am

start learning from what i like much :)


Raghavendra Kamat November 17, 2008 at 9:44 am

I primarily keep intrest in working in rails.But learning Jruby and Merb will add some added advantages for my technical background..!….so I have voted for the same…!…..


Ajay Arsud November 17, 2008 at 10:41 am

vote for Ruby GUI and TDD :This section provides the sequence of steps to create a Ruby GUI ….!!!
I would love to learn this more…..!!!


Palash November 17, 2008 at 12:05 pm

Really it’s pe a tough question.
I am voting GUI because I like that section of work…….since I am working in rails I would like merb also, It is also a very good framework of ruby,,,and sqlite is necesaary for every work


Michael Uplawski November 17, 2008 at 3:26 pm

I want to be a software lumberjack. So I am all for Sockets and all things dry and ‘basic’. In fact, the continuing Web-Application Hype will obstruct people’s view on the infinite range of tasks, the language can cope with. So I try to rather avoid that area completely.


Phan Thanh Ha November 17, 2008 at 4:14 pm

I am interested in ruby GUI-shoes
it’s good foe everyone


Luis Correia November 17, 2008 at 4:54 pm

I’d go for the TDD (very important… and in the long run results in a very productive workflow… write code THAT WORKS).. even conceptually I’m totally for the TDD.

GUIs are in my newbie opinion what’s lacking in ruby to make it more appealing in terms of integration/interaction with the user.

Database integration is quintessential for any application (IMO) so its a must, namley to use with active record and the Rails framework where you can work the DB itself from scratch using the migrate and activerecord

Jruby is quite essential for anyone trying to bridge JavaScript and ruby altogether…

Sorry for the short post… and possibly for some false assumptions..


Michael Uplawski November 17, 2008 at 7:11 pm

@Luis: Just a correction: JRuby is the bridge btw. Java and Ruby.


p-daddy November 17, 2008 at 7:31 pm

TDD is important the same way that eating your vegetables is important–it’s something I should do more of.

But I think a course in TDD would be helpful in learning various concepts along with tricks of the trade.

glad to see it’s #1 in the poll so far.


Leave a Comment

{ 9 trackbacks }

Previous post:

Next post: