Interesting project to learn C? [closed]

Implement a programming language. This doesn’t have to be terribly hard – I did the language that must not be named – but it will force you to learn a lot of the important parts of C. If you don’t want to write a lexer and/or parser yourself, you can use lex/flex and yacc/bison, but if you plan on that you might want to start with a somewhat smaller project.

Take some program you have in a higher-level language and rewrite it. If you have a Perl/Python/Ruby/Bash script that you use a lot, and you notice a lag time while it runs, rewrite it in C with a focus on performance.

It’s my opinion, however, that if you’re writing a program to learn C, it’s better to reinvent the wheel. Programming in C is all about making and adjusting the wheel, and if you only learn C by using libraries that abstract away the wheel for you, well, you’re really not learning C. It may be faster – and when you’re working on a real project in C, by all means, don’t reinvent the wheel – but if you’re doing this to learn, then by all means, learn how the wheel works.

Leave a Comment