Mazes For Programmers part 1, introduction

This entry is part 1 of 11 in the series Mazes For Programmers

I am reading the rather excellent Mazes For Programmers by Jamis Buck, and am following along, building my own mazes.

As you can see from pretty much every review of the book, the one (and generally single) criticism everyone has is that the code samples are in Ruby. This is not altogether surprising as the author was one of the Ruby On Rails core team, but it does cut out the vast majority of developers who are not familiar with Ruby. Had the samples been in a C-style language (C++, C#, Java, JavaScript, etc), it would have been instantly accessible to a vast amount of developers.

However, I viewed this as an opportunity to learn a new language, and dutifully installed Ruby. It took me a bit of struggling to get this all working (they don’t make it easy), but I got there. Armed with a quick Ruby tutorial, I got myself familiar with the basic syntax and got to work.

It didn’t take me long to cross Ruby off the list of languages that I want to learn. Before anyone jumps on me for that, it’s not a criticism, it’s just that I haven’t yet seen any advantages to using Ruby over my current toolset. Realising that apart from being fun, writing maze generation and solving code held the key to understanding some interesting and possibly useful algorithms, I decided to drop Ruby and develop my own C# code.

Whilst this was a little frustrating, as it required me to understand the author’s code a lot more deeply than I would have done otherwise, it had the big advantage of requiring me to understand the author’s code a lot more deeply than I would have done otherwise! Copying code from a book doesn’t make you study it properly. Trying to convert it to another language means you have to.

I have created a GitHub repository for my code samples. Please feel free to download my code and play with it. I would be interested to hear if anyone has any comments.

I’m hoping to blog about my progress with this book. Watch this space.

Series NavigationMazes For Programmers part 2, some basics >>

Be First to Comment

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.