Skip to content
Rich Linnell edited this page Jan 30, 2025 · 1 revision

Welcome to the SudokuSolver wiki!

This project may seem somewhat run of the mill for a lot of you, but for me it's quite a milestone. Having spent the last 10 years of my working career leading teams, and projects, and not really doing much in the way of coding, I found myself out of work and struggling to find any senior roles in a recessed tech market. So I decided to roll up my sleeves and get coding again. So I joined a friend of mine's business as a low-latency C# engineer.

My background is pretty much pure C#.Net and whilst I've not coded for a while, when I was last coding it was at a pretty decent level for a well respected consultancy. But I've always thought that C# was a little too far away from the real nuts and bolts of programming computers. It's very good at making your world all warm and fuzzy and safe, but does so at the cost of real speed and power. I've always wanted to get back to the style of coding I did when I was in my teens, on my ZX Spectrum, writing Z80 assembly in my bedroom until the early hours of the morning.

The obvious choice would be C++, however I find myself in a very interesting position from a work perspective in that we use C# for most of the engineering work we do, but for certain aspects, where we just really can't afford the overhead of the framework, we use Rust. And so, I have the incentive to learn a lower level language, and get some real power!

So I've been working my way through "The Rust Book", and now I feel it's time to take on a challenging project to really learn the ins and outs of developing in Rust.

And that's why I have this project, the Sudoku solver. It's got enough technical aspects to it to make it challenging, and yet is simple enough that I won't give up.

I wrote a Sudoku solver some 15 years ago in C#, so I have a fair idea about the mechanics of solving the puzzles by code. However, from memory, I think my C# solver tried to use all kinds of logical approaches to solving the puzzle, but if it couldn't work it out would resolve to a recursive brute force attempt at every number for a cell when it got stuck.

I'll try to keep the wiki going at the same time as writing the code so there's something to go with it.

Clone this wiki locally