[12]coding home-projects #less effective than cod`IV

Over the years I have put together about 10 programming projects. A couple of them have become fairly useful to self-learning (and interview preparation). If my c++ coding skill has grown from 2 to 6 (10 being highest) over recent years, then one of the projects alone was responsible for a half-point improvement.

I now feel this kind of challenge projects are instrumental to learning a programming language. Without them there’s no way to develop self-confidence. A programmer without this much hands-on experience is no match. Real hands-on coding and hands-on bug-fixing is a long but necessary journey when learning a new language. No pain no gain. My manager calls it “mileage”.

Such coding projects are an essential and effective learning tool. In contrast, there are no such tools when learning SQL, MOM, Unix, XML, backup, clustering …

Here are some of my code projects —

1) a FIX client/server
** http://bigblog.tanbin.com/2012/03/design-considerations-my-first-homemade.html
** developed in 48 hours
** I can still add features to it and have fun with experiments
** It let’s me learn more about FIX protocol
** It let’s me learn more about java socket programming

2) a limit order book
** developed in a week
** I can still add features to it
** It let’s me learn more about order book internals
** It let’s me learn more about STL

2b) another limit order book

3) Tetris

5) a swing real time database-monitoring tool. This is a 1.5-month personal project developed on office computer but I can’t really run it at home.
6) a spreadsheet concretization project (http://bigblog.tanbin.com/2012/07/spreadsheet-concretization-algorithm.html)
** Written in Java, over half a day. It’s possible to rewrite it in STL.
7) an island rainfall problem
** good practice in C, array/ptr manipulation
8) a circular buffer, for a special requirement, not a general-purpose
9) simple regex engine
10) a few Boost sample programs
** I can still add features to it