Old dog. Not so new tricks?

It was a fairly crappy week at work. I won’t go into details but by yesterday afternoon, I was in need of a change of pace…

I’ve been telling myself for a long time that I need to learn some new programming skills (Alright, I’ve really just been whining about it.). You see, I’ve been developing products using many of the same tools and techniques for more years than I care to admit. That’s worked fine for where I am, but it’s not been the most intellectually stimulating approach…and not exactly a career-building approach. So, with my ugly week wrapping up, and a bit of a break in the action as I was nearing the holiday, I decided to return to my well-worn theme of “Man, I’m getting old and I really need to learn something new.”

Fine. Now, what should I do?

Well, I’ve been a sidelines fan of Python for a number of years. I even went so far as to experimentally embed it into one of our products, as a means of building in powerful scripting. At the time, it wasn’t really ready for that kind of environment, so I pretty much dropped it. In the intervening years, I made some half-hearted attempts to learn the language, but “real life” always seemed to get in the way.

Yesterday, things were gonna be different.

At work, we’ve been needing a way to automatically create the release package for our latest product. It includes a number of executable images, configuration files, scripts, and whatnot, and all of that needs to be packaged into a ZIP file with a name format that our host system recognizes.

Up ’til yesterday, that was all done by hand… I had my “learn something new” project.
The order levitra online major ingredient of Night Fire capsule is safed musli, the nature’s solution for your sexual health. To begin viagra super with, it has shorter response time on the grounds that the dynamic add-in of the medication gets ingested into the blood stream quicker. Kamagra It has been the very first buy tadalafil online generic version of genuine sildenafil citrate. Everyone is aware of the fact that viagra 50mg is available online with exactly the same composition therefore these have identical strengths.
I wrote a Python script (and an associated Windows batch file) to build the release package. Since I already had Python 2 & 3 installed, I started by taking to the ‘Net to get ideas about how to do simple things like file manipulation, directory and file compression, exception handling, etc. In the end, I had a nice little geegaw that lets me do what I described. It took a few hours (mostly spent searching the Internet) but in the end I had what I wanted, and I learned a good bit while doing it.

“Big deal” you might say, and I totally get it. I mean, developers everywhere do that kind of thing daily as a diversion, requiring almost zero cycles, right? Still for me, it was a tiny re-affirmation that I could actually pick up something fairly new and make it do useful work. All in a scant few hours.

Then it got me thinking…

Once it was working, I started worrying that I probably hadn’t done things the “Python way”, using all the cool object-oriented features and other what-not’s that make so many Python guru’s tingle. In fact, I can pretty much guarantee any competent Python developer would take one look at my code and could give me 30 different & better ways to do what I did.

But does that really matter? I mean, I suspect that customers will generally not care whether a product was developed using the latest software framework, or the most recent vintage of micro controller or FPGA, or whatever. Obviously, people want the latest and greatest, but the “how” doesn’t usually matter. So of course, I want to use good technique and I want to be conversant in the latest approach, but when I’m working on a product, I’m not concerned that the customer will have a problem with the fact that I wrote their code in “C” and didn’t (gasp!) use the factory pattern when instantiating one of their runtime objects. Obviously, I want to be up to date and I want to understand better ways to do things, but I don’t want those matters to get in the way of doing a good product. That stuff is all good and I’ll continue to learn new languages and practices, but I need to keep my perspective pointed at developing quality products, using the best techniques I have while I’m doing it.

( Full disclosure: I’ve taken a few Java & PHP classes, and done some Javascript, Objective-C, Swift, etc. in the last few years. I’m just always worried about my age and marketability as time progresses. So, it’s not so much that I never go out and learn things, it’s really more that I don’t often get a good reason to apply them, given my circumstances. )