In 2008 I wound up in a situation where I had to learn to code in Python very quickly. I had wandered into the last days of a startup I’ll call Yawning Pit Software. YPS was operated by a big fat lunatic, a short fat lunatic and a muscular bastard. The short fat lunatic was left scurrying around the sinking ship while the other two retreated to day jobs. I was dusting myself off after a business crash and in dire straits. Our desperation levels were pretty close and the short fat lunatic still had some cash so YPS hired me as the software guy under the delusion I would code them out from under. Me, I was just hoping I could pick up enough for an apartment before the inevitable occurred. In the event it took three months for YPS to sink and during that time I learned Python.
I didn’t intend to learn Python, the short fat lunatic’s idea was that I would use a framework called Django to produce a hefty piece of large scale data analysis software. Frameworks reduce coding by using templates for common tasks and allowing you to customize them. It’s a good idea when it works. When it doesn’t work, that is, when the problem doesn’t fit an existing template or needs resources beyond the built in assumptions you are, as they say, fucked. I wound up coding all the data analysis parts in Python and using Django for building the result display.
I’ve coded in several languages but learning Python was the first time I was forced to use object oriented programming. Python is completely object oriented and you simply can’t avoid it. Alternating between the code editor, the Python debugger and several open books and websites while working on the first chunk of data search and retrieval code I found myself absorbing more and more of the object-oriented point of view. As each component serpent was nailed, glued and knotted together I became more and more aware of the possibilities and limitations of classes, methods and inheritance. Finally, I had a piece of software that would accept parameters, do its thing and produce results.
The client however, took one look at it, blew his stack and fired us. Shortly thereafter, just before YPS closed I retreated under a torrent of abuse back to the real world, such as it is.