Beginner friendly Programming projects

There is a relatively new programming language called Rust, which I would like to learn. And learning is always easiest if you have fun while doing so. This is why I need some ideas what my first few programs could be, so they are easy enough to get to work as a beginner, but also useful enough to make me actually want to write them.

#1: A file renaming utility that can replace certain parts of filenames, or enumerate them, and similar stuff. Yes there are already solutions for this, but that doesn’t matter 🙂

#2: A (very simple) web server. Not to actually use it, but to learn how a webserver works while learning Rust. So it’s not the final program that has to be useful, it might also be the process of writing it that has more benefit than just learning the programming language.

#3: Example implementations of interesting/important algorithms, for example different ways to store/sort/search tree structures.

#4: Try to answer the problems of “The Art of Computer Programming” in Rust. Not sure how applicable Rust will be for the problems in there, but might be worth a look.

#5: A tool to create thumbnail pictures from full-size ones. I could use that for my ever-growing library of photos. It could save them in a way that an online gallery script can use them, and doesn’t have to invoke its own thumbnail function.

#6: An online gallery web application. To get started in web programming 🙂 This might involve more javascript than I’d like, though.

#7: A data analysis tool, i.e. to show some statistics of my runs that I have logged in gpx format.

#8: A lisp interpreter. Lisp is quite easy to parse and to process, which makes it the first choice for an exercise of that kind. Oh, and I think Forth could also be a good one, maybe even better.

#9: Parsers for some simple file formats. I really like the whole field of parsing. One format I could start with is the plain-text file format of the accounting software beancount.

#10: Software for the plant-watering system I thought of yesterday.

Whoohoo! One week of daily blogging/idea-hunting finished!