META: This essay is accompanied by a GitHub Repo , containing a sample Xcode project. We will link to tags in that repo, to denote various steps in our discussion.
I don’t know about anyone else, but I have no intentions of spending the rest of my life, working on a jalopy. I want to learn new stuff, and get myself into trouble, exploring new horizons.
If I deliberately make it difficult for others; especially those with less experience than I, to take over and understand my code, I can look forward to unclogging carburetors, when the world has moved on to fuel injection or electric cars.
Also, I feel a certain amount of pride in my work. I think I do a fairly good job, and I WANT people to see what I do, and understand how I do it.
I didn’t start off as a software developer. My first experiences with computers were first, as an electronic technician, then, as an electronic engineer.
Because of this, I was pretty insecure, starting off with this new-fangled “software” stuff. I spent a lot of time, looking around, and seeing how other people did it.