An imperfect blog
I have trouble finishing projects, my Projects/
directory is filled
with half-finished parsers, barely working game engines, three slightly different
versions of a web server and more than a dozen other side projects I started
but never finished. This blog is no exception; I started considering having
my own website two years ago, and in the meantime, the only things I built towards
that goal are:
- A web server written in C that I gave up on while trying to handle multiple connections per thread
- A few CGI scripts to learn how CGI works (
- And a barely functioning templating system built around the C preprocessor
As you can see, I made zero progress on actually writing a blog. I thought about it and decided I should start finishing projects more often.
The average life cycle of a project
Get a project idea
¦ <---------------.
v \
Try and build the "hard" part \
/ \ ¦
[success] [failure] ¦
v v /
Get bored and move learn more /
to another project on the subject
??? -> Finished project
Whenever I start a new project, I tend to try to build what I consider the "hardest" part first. This means that when I made a 2.5D "engine" à la Wolfenstein, I only wrote the bare minimum to get to the code that renders a maze. This meant that I learned a lot about how to write a raycaster, and I even got it to "pan" the camera up and down. But once I got that working, I completely lost interest and started a new project to learn about some other concept I thought was interesting at the time.
Chasing perfection
Usually, when I work on a project, it is to learn about some concept I heard of recently. 99% of my projects are never indented to be shared, but it did not use to be the case. I used to put whatever I was working on, finished or not, in a public repo on my GitHub. As I learned more, I became critical of my code. It allowed me to improve my craft considerably, but it came at a cost: rereading a piece of code a few months after having written, makes me ashamed.
Getting myself to finish something
I don't want to push myself to finish every project I start; otherwise I'll end up not starting any new projects. I think I should prioritise certain projects, such as this blog, and get them released.
If you can read this, I managed to get something imperfect out the door.