Why Internationalization Puzzles?
Hi, my name is Martijn van Iersel, and I teach a workshop about internationalization for programmers.
Internationalization (abbreviated as i18n), is what software developers do to make software work for an international audience. This includes foreign characters, dates and currencies, paper sizes, time zones, daylight savings time, and all the other little things that may be different from country to country.
To help teach these concepts, I created a series of programming puzzles, which you can do too!
How to solve a puzzle
For each puzzle, you must write a program that analyzes the input
file, and produces a result. Submit the result and get immediate feedback to see if you solved it. Each puzzle introduces a new concept that has to do with internationalization. You will learn more and more as you go.
Each puzzle also includes a test-input
, that is fully worked out with the answer given. If your program can give the correct answer on the test input, then it will usually work for the real input as well.
You may use any programming language you like. You are encouraged to use libraries as much as possible (in fact, most challenges are hard to solve without some library). Each puzzle comes with a list of reading materials and online tools that can help you to understand the problem. You may use Google or Wikipedia to find more information - this is not an exam!
I discourage the use of AI chat programs for these puzzles. I have nothing against AI, but in this case: If you let AI solve the puzzle, then you will learn nothing new, and the AI will learn nothing new either. That all seems rather futile to me.
The puzzles should not be too hard. Most take less than 30 minutes for an experienced programmer. If it takes you more than 1 hour to solve, then let it go for a while and continue with the next puzzle.
You find the list of puzzles on the main page. Track your progress on the scoreboard.
Good luck!
Acknowledgements
Thanks to Martin Tichem, Mart Hagenaars, Jesse van Assen, Barni Szabo, Dániel Urbán, Aliki Georgakaki and Joep Weijers for code, testing and feedback. Thanks to the advent of code project for inspiration.