Building your own tools makes you a better programmer. Seriously. There is nothing more satisfying than the feeling of pressing a single button instead of doing some annoying job that you used to do before by hand and YOUR program or script runs off to do all your work for you and then it says:
All done, task took 35 milliseconds
I’ve just had this feeling by building a little glossary generator, that takes a couple of markdown files and turns them into an inter-linked html file, that basically is like a one-page glossary, but each term has a separate file, so I can easily administer it.
I needed / wanted this, because I started blogging about a topic that would really benefit from this and it would really benefit from a vocabulary that the readers can refer to at all times if in doubt. A wiki would have been overkill, a long page that lives on the WordPress installation would have annoyed me when I had to add / edit existing points, because I want to do the work anywhere, even when I’m offline.
Make your life a little less annoying
Lots of manual tasks and copy&paste and conversion work is something nobody wants to do. We all know the Bill Gates quote about lazy people being the best programmers,
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.
– Bill Gates
that’s kind of true in the terms of:
Programmers fucking hate doing things over.
– Jonathan M. Hethey
Building tools, writing configs, grunt/gulp tasks are valuable exercises that make your everyday life a little better. They spare you from the incredible annoyance of having to sort things alphabetically by hand, copy->pasting or just doing something again and again.
It’s not always easy to implement, especially in teaching. Often in the beginning getting a good grasp on a programming language or just meeting the minimum requirements for a project can be a challenge for your students. If you manage to sneak something in that makes their life less annoying, they will have a lot bigger motivator to learn that thing.