Turning a corner
Thu, Dec 25, 2014Feels like I’m turning a corner! I think that I’m starting to feel the possibility of putting projects together now.
I think a large part of this is simply volume of code. I finished 50 problems on Project Euler (Yay!), which involved a lot of good repetition. I especially became comfortable with the use of higher-order functions. And from the repetition, I’m beginning to see how I would want to organize bigger programs. As usual, not something that I can really understand by reading a book, but it grows organically out of the process of learning. I’m beginning to see my own preferences for how to break up functions, when to use algebraic data types.
The other part was finally getting motivated to do some real-world programming for the MGA ladder. I wrote a small program for computing ladder standings, and for updating files to the ftp server. I mucked around in the plumbing of doing IO and ftp stuff, and found that it wasn’t really that hard. Then, today I re-found some old tutorials on building an IRC bot and an interpreter (Write Yourself A Scheme). Suddenly, not so imposing! Two months ago they would have seemed really imposing!
Of course, this doesn’t mean that I’m comfortable with things like functors and applicatives yet. I understand them theoretically, but I see now that I will need to apply them in practial contexts to really get it. So, I just need to code more! Judging from how I feel after Project Euler, I don’t need to code much bigger projects. In fact, that might be counter-productive. Instead, lots of smaller projects that feel good to finish, and now more variety might be nice.