The last year has been an interesting one. My career has hit several speedbumps, and I find myself trying to figure out exactly what it is I want to do with the next 20-odd years. I'm broke, but I'm finding out that's not so bad :-)
Most importantly, I've been taking stock of myself, asking myself more and more challenging questions about who I am, about my habits and the choices I make, about why I seem to have hit a wall, because I suspect that I won't make it over or through until I understand what I'm doing wrong.
- I have skated by on "talent", mistaking the good fortune I have enjoyed, and which has given me opportunity to acquire marketable skills, for innate ability;
- I have failed to develop a sufficient habit of hard work and persistence, a curious regression from my teens when I would stick with vexing problems for weeks at a time;
- I have failed to discipline numerous areas of my life, allowing them to spill over into my ability to meet my commitments on schedule; and, most importantly
- I have failed to unambiguously identify a career goal and pursue it resolutely.
In a sense, number 4 is the root of numbers 1 through 3: without a clear goal and steady pursuit, I have been content to float along a stream of steadily rising salaries until I reached a point where the demands of the position expose my poor productivity habits. Software development and programming are not intrinsic passions of mine, per se, but means to more interesting ends. I will likely always code, but more so to complement other types of creative effort.
My first order of business in 2014, then, is to clarify exactly what I am passionate about, what I love, and how I can create a career around that. I thought I had figured it out over the past two years, but it seems there are depths still to plumb.
In talking about this issue I've characterized my disaffectation with programming as exhausting the set of interesting problems-in-the-small. Growing up, learning to program, early in my career, problems of implementation were challenging and interesting: how to design a database schema; how to distribute responsibility among components in a system; how to overcome an environment- or platform-specific issue, etc. I've been doing this for long enough now that the solutions to the majority of tasks I get at an agency-type job are immediately clear to me, and it becomes a matter of massaging inputs and outputs and coercing the compiler and linker to behave.
(One amusing side-effect is that I shy away from complex architectures and hierarchies because I don't want to write the code! I've become a "structurally lazy" programmer, plus I recognize that the majority of situations simply require aggregations of lists and dictionaries, anyway.)
I require problems-in-the-large for motivation, but this is where my failure to pursue a career and climb out of the "implementation ghetto" has hurt me: I haven't earned the currency (through credentials and tenure) to participate at the strategy level in agency jobs, and so I end up assigned to build a component of yet another financial management app, bored, unmotivated and unproductive.
I deserve better. My employers deserve better. Their clients deserve better.
2014 is a crucial year for me. I have to break out of the rut of reflex, and lay the groundwork for the next phase of my professional life. I'm going to have to change my physical habits, and identify and break into new fields. I'm going to have to figure out what I want to do, and then get to the doing.
I honestly don't know the answer, but I plan to have way more fun finding out!