Skip to content

ToDo: Learn to Think Small…

Everyone says “it will take longer than you think it will” and I certainly would not argue this. However, in my case, I’d swear this problem has super-sized itself. I just never seem to have goals with due dates like “next Friday.” To wit:

After a decade or more of what might be termed a “Professional Walk-About,” I decided it was time to return to my primary career as a Software Developer. However, in the time during my meanderings, the industry changed; or more precisely, the hiring process changed. You see, once upon a time, programmers learned new things by taking a job involving things they did not know and were not qualified for. You learned on the job. One did not become a PERL Programmer by going to PERL Programming School. When presented with a task requiring PERL knowledge, you learned PERL. Likewise, one did not go to Financial Programming School to become a Financial Programmer. You got a job with a financial company and learned.

Because of this, nearly anyone in the IT field, programmer or not, will tell you, embarking on a career in IT is to embark on a lifelong journey of learning. So imagine my surprise when dusting off my resume and being advised to remove or summarize the early part of my career to downplay my age. Imagine my surprise when applying for a job and receiving an automated email with a link to a skills test before ever talking to a human.

Not seeing the connection? I’ll elaborate. If “lifelong learning” is considered not only a hallmark of the industry, but a requirement to be successful, would not the fact I have been successful in the field for 35 years bear some sort of positive significance? Should that not be a major attention grabber on my resume? Why should I be playing this fact down?

And what is with the skills test? All that shows is what I have already learned, not what I am capable of learning. It shows nothing about my learning process and how adaptable I am to the changing environment known as your Business Requirements and the constant pull of Moore’s Law. In fact, I am inclined to believe such a hiring process is heavily biased towards inexperienced, “one-trick-ponies” rather than “real” programmers. However, that assessment may be tainted by a dash of Old-Fartness, sour grapes and more than a bit of “Who Moved My Cheese.”

The end result is I need to skill up BEFORE the interview, rather than after. This also means I need to wag a wicked guess at what skills to develop as opposed to the old way of simply responding to the current need. So now I also need to become part prognosticator and soothsayer. Considering I once uttered the words “…Java doesn’t do anything not already done by several other languages and what it does, it mostly does poorly. I doubt very much it will last…” and “…no one with any sense would trust their critical infrastructure and data to some nebulous ‘cloud’ controlled by someone else…” you can see how needing to predict the future of IT might make me nervous.

Faced with this dilemma, I did what I do with most problems, I turned it on its head. Rather than trying to guess what the next hot trend would be, I spent time trying to decide what “I” was interested in and hope to figure out how to get paid for that. I realized for a great long time, Game Programming was of interest to me; not because I play video games, but because the programmatic needs are fascinating. It also takes very little imagination to realize the same skills and needs of Game Programming apply to Big Data, Simulation, AI/ML, AR/VR, and so much more. So:

ToDo Train myself in the most commonly used programming language in the game industry, learn entirely new programming paradigms and development tools, develop a deep understanding of an industry I’ve never worked in and present myself as functional at a level capable of a salary that at least meets my family’s minimal needs.

No problem…

Okay, a little problematic. This is obviously not a short term plan and needs to be relegated to a side task while I find a quicker way to go back to work. The most obvious track, based on my resume is DevOps. DevOps actually has a special interest for me. First of all, my IT career started in Operations, so I understand the field and the need. As someone with Development experience, DevOps was a natural merge for me. In fact, I was already headed that way before DevOps even became a word (remember, I’m old). After all, there were reasons I preferred Development over Operations. The best way to avoid being dragged back into Operational and Deployment needs, was to do my very best to automate the transition between me and them.

Unfortunately, times, they do change. The Cloud is where it is at, making my experience “old school.” No matter how much experience one has in DevOps, regardless of how long said experience is, it apparently means something close to zero if it is not in the Cloud.

Fortunately, I already resolved myself to gaining the needed skills sans job, so I could do this also. I renewed an old membership to A Cloud Guru (https://acloudguru.com/), ripped through the introductory videos and exercises finally getting to their “road map” video and made the not terribly surprising discovery this was probably a five month path. So:

ToDo: While redirecting my career on the side back to my “First Best Destiny,” spend the next five months primarily focused on translating my old school DevOps skills to the Cloud.

Now, I do not actually begrudge this. I really don’t have anything against the Cloud, in fact it strengthens the arguments to permit remote work. Furthermore, I strongly suspect I will never stray too far from DevOps. To be honest, there are few things more satisfying than a smoothly automated process. So this is still good.

That being said, I learn through a mix of study, and doing. I am not totally about learning through hard knocks. I love books and rarely need to work hard for an excuse to buy one. But I can only read so much, or watch so many hours of video before I feel a need to do something either significant, or at least perplexing.

Don’t get me wrong, A Cloud Guru does a WONDERFUL job of mixing in hands on tasks and labs. Furthermore, my membership at Game Dev HQ (https://gamedevhq.com/) walks you through the entire process of building an actual game, leaving me to work out details before giving you the answers. These are both great. My wife still rolls her eyes over me proudly showing her my moving, pill shooting box.

However, both lack a certain sense of accomplishment. No matter how cleverly presented, the answers are already known. The path is predictable. In order for the training to progress, they must eventually offer up the answer so I can move on. To keep my motivation up over the long haul, I knew I needed something more.

It turns out, I have an entire library full of opportunities. Long on my short list was The Art of Computer Programming (https://www-cs-faculty.stanford.edu/~knuth/taocp.html) by Dr. Donald E. Knuth. Why not take this time to finally break them out and start reading, I thought? This would be useful for multiple reasons. It would increase my education, always a good thing. There was also a more than passing chance it would help me with the interview skills test, since they mostly appear to take the form of classical Computer Science problems and algorithms. Finally, it would also move them off my ToDo list. So:

ToDo: Read all four of The Art of Programming books, working out the exercises, etc.

If you have read this far, and if you have ever read or even glanced at these books before, you are likely now giggling uncontrollably. See, each book has only two chapters. Of course, each chapter has 20+ sub-sections. More importantly, reading through the Preface, I find not only the statement about these books being valuable resources for self or classroom study (expected) but Dr. Knuth’s statement about each individual chapter containing “…more than enough material for a one-semester college course…” So:

ToDo: Take out garbage. Mow lawn…

Be sure to join us for our next exciting episode, where we discuss Euclid’s algorithm for determining the greatest common divisor of two positive integers…

Published inWorkLife

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

ToDo: Learn to Think Small…

by Robert time to read: 6 min
1