in reply to Do your homework!
When I mentioned that I had done something similar to this before at work, I got a lot of blank stares. I do think that going through the various problems in multiple languages is always a good idea. I actually keep track of the tough ones that I think I have a good answer for in one language, and make sure I try it out with the next language I have to learn.
I have to agree, however, that once your done, you need some small projects to work on. I also have my share of small projects that I use to make sure I know what's going on in a language. Some of the projects I do are:
- Reading and processing binary data files, like the wtmp log file in POSIX systems.
- Modules for processing CSV data. It seems trivial at first, but can be tricky depending on the language.
- Reimplementing several UNIX commands in the language. Not just the simple ones like env, but even ones like ps.
- A simple 'blog system.
- A simple HTTP Client module like LWP::Simple.
Like footpad, this list is not complete, but include some of the projects I've worked on recently to try some new things out in various languages. Like footpad, I'd be interested in hearing the projects that others use to learn or deepen knowledge in new languages.