# Mazes for Programmers (PragProg)

**URL:** <https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520>\
**Category:** General Learning Resources\
**Tags:** published-book, algorithms, book-mazes-for-programmers, pragprog, ruby, math\
**Created:** [29 April 2020 20:36 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520 "2020-04-29T20:36:39Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![PragmaticBookshelf](https://forum.devtalk.com/user_avatar/forum.devtalk.com/pragmaticbookshelf/32/463_2.png) [@PragmaticBookshelf](https://forum.devtalk.com/u/PragmaticBookshelf)\
**Post date:** [29 April 2020 20:36 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/1 "2020-04-29T20:36:39Z")

</div>

A book on mazes? Seriously? Yes! Because it’s fun. Remember when programming used to be fun?

Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller’s, each copiously illustrated and accompanied by working implementations in Ruby.

 ![jbmaze](https://forum.devtalk.com/uploads/default/original/1X/26eb9863cfdedb0d5bf3c7bdf6c3cc34e6a3e23e.jpeg)

### Mazes for Programmers

_edited by Jacquelyn Carter @jkcarter_

A book on mazes? Seriously? Yes! Because it’s fun. Remember when programming used to be fun?

Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller’s, each copiously illustrated and accompanied by working implementations in Ruby. Understand their pros and cons, and how to choose the right one for the job. You’ll start by learning six maze algorithms and seeing how Dijkstra’s algorithm can help solve, analyze, and visualize mazes. Constrain your mazes to different shapes and outlines, such as text, circles, hex, and triangle grids. Cull dead-ends and make your passages weave over and under each other. Build your mazes in multiple dimensions, and even on curved surfaces.

Through it all, you’ll discover yourself brimming with _ideas_, the best medicine for programmer’s block, burnout, and the grayest of days.

* * *

_ **“Mazes for Programmers\_ perfectly recaptures that feeling of pure, unadulterated awesomeness for awesomeness’s sake. This will be a book I come back to again and again.”** _

_–Corey Haines, CTO, Curious Nation_

* * *

- Full details: [Search](https://pragprog.com/book/jbmaze/mazes-for-programmers)
- View this book’s portal and details on how to post errata and suggestions [here](https://devtalk.com/books/mazes-for-programmers).

_Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “ **devtalk.com**" at checkout 👍_

---

<div class="post-metadata">

**Author:** ![chaptuck](https://forum.devtalk.com/user_avatar/forum.devtalk.com/chaptuck/32/3397_2.png) [@chaptuck](https://forum.devtalk.com/u/chaptuck)\
**Post date:** [21 January 2022 15:41 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/2 "2022-01-21T15:41:23Z")

</div>

This is one of my favorite programming books of all time. Such a simple idea but there is so much you can learn about algorithms, complexity, and programming (and mazes) just by writing some simple scripts to build mazes. Last time I read it I had some fun re-implementing all the Ruby in Python (I may try a functional language next).

---

<div class="post-metadata">

**Author:** ![jamis](https://forum.devtalk.com/user_avatar/forum.devtalk.com/jamis/32/1083_2.png) [@jamis](https://forum.devtalk.com/u/jamis)\
**Post date:** [21 January 2022 16:14 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/3 "2022-01-21T16:14:56Z")

</div>

Thank you! I’m so glad you’ve enjoyed it. ❤

---

<div class="post-metadata">

**Author:** ![AstonJ](https://forum.devtalk.com/user_avatar/forum.devtalk.com/astonj/32/7_2.png) [@AstonJ](https://forum.devtalk.com/u/AstonJ)\
**Post date:** [21 January 2022 22:18 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/4 "2022-01-21T22:18:15Z")

</div>

Looks like it could be a fun one for one of our book clubs :003:

I love the little bio at the end:

> Jamis Buck is an alumnus of the Ruby on Rails core team, and has worked at Basecamp (formerly 37signals). He’s been active in open source for years, and has a deep passion for learning. Some years ago he began researching and writing about maze algorithms, and the bug never left him. **He’s probably lost in a maze somewhere, right now.**

:lol:

---

<div class="post-metadata">

**Author:** ![dyowee](https://forum.devtalk.com/user_avatar/forum.devtalk.com/dyowee/32/6692_2.png) [@dyowee](https://forum.devtalk.com/u/dyowee)\
**Post date:** [22 January 2022 04:25 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/5 "2022-01-22T04:25:17Z")

</div>

How much of the mazes/algorithms are useful in day-to-day programming? 🙂

---

<div class="post-metadata">

**Author:** ![iPaul](https://forum.devtalk.com/letter_avatar_proxy/v4/letter/i/7feea3/32.png) [@iPaul](https://forum.devtalk.com/u/iPaul)\
**Post date:** [22 January 2022 23:06 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/6 "2022-01-22T23:06:36Z")

</div>

Depends on what are you trying to do, e.g. one can use it to improve their Ruby skills. I used one of the maze generating algorithms from the book to generate a PacMan like table. But the book deserves to be read because it is fun.

---

<div class="post-metadata">

**Author:** ![mafinar](https://forum.devtalk.com/user_avatar/forum.devtalk.com/mafinar/32/723_2.png) [@mafinar](https://forum.devtalk.com/u/mafinar)\
**Post date:** [22 January 2022 23:22 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/7 "2022-01-22T23:22:05Z")

</div>

It would be nice. I am trying to solve the problems of this book using Python. Would be in if someone opens a book club on this.

---

<div class="post-metadata">

**Author:** ![chaptuck](https://forum.devtalk.com/user_avatar/forum.devtalk.com/chaptuck/32/3397_2.png) [@chaptuck](https://forum.devtalk.com/u/chaptuck)\
**Post date:** [16 February 2022 21:57 UTC](https://forum.devtalk.com/t/mazes-for-programmers-pragprog/520/8 "2022-02-16T21:57:44Z")

</div>

> [@dyowee](#):
>
> How much of the mazes/algorithms are useful in day-to-day programming? 🙂

For day to day it was mostly good practice debugging my own code. It’s also useful in learning about tradeoffs and efficiency of algorithms.

If you are a game developer these maze algorithms are great for creating dungeons and game levels. ⚔
