A few weeks ago, I had an existential crisis. For some reason, I just wasn't having fun writing code. To put this in proper context, I absolutely LOVE writing code and this caused me to question everything. I've had this feeling before but not for a prolonged amount of time. This time it was different and I wasn't sure how I'd get myself to snap out of it. Both 2016 and 2017 were very busy years for my development team as we took a lot of blood, sweat, and tears to deliver two major projects for a client. Accompanying these two major projects was a normal dose of development work for other clients, mentoring, and trying to keep a semblance of a work/life balance. It's my belief that this contributed to my internal crisis. The interesting thing was how long the crisis went on and how quickly it disappeared.
Flash back to a few weeks ago. We were working on another set of major projects for our clients. One project is an API for one of the applications we delivered last year. This API is accessed from a new pair of mobile applications constructed for the Android and IOS operating systems. When building APIs, I like to spend time consuming those APIs from actual application code versus merely testing them in unit-testing frameworks or API development tools like Postman. It was during this development process that my breakthrough occurred.
I'd decided that I'd take time to investigate how our API would be consumed in Swift (the language for the IOS app). I updated my version of XCODE to the latest and did what all good developers do when learning a new technology. I Googled it. I searched for content on consuming REST services using the Swift programming language. I found many interesting posts that met my needs and set forth to communicate with my API. This process was very frustrating and yet I LOVED every minute of it. It was at this point that I realized why I was in such a malaise.
I hadn't had spent time doing what I really LOVE and the one thing that's essential to my career: learning new things. The opportunity to learn new things is what gets me out of bed in the morning and is probably the most fulfilling aspect of my job. It's funny how a frustrating development session can turn into something so rewarding.
Many years ago, I wrote an editorial about “Sharpening Your Ax.” In that editorial, I talked about taking time away from working to refresh the batteries. Sometimes refreshing the batteries doesn't mean taking time away from work but adding new tools/ideas to your knowledge set.
This issue of CODE Magazine has some new directions from some of our more seasoned authors. Paul Sheriff writes about HTML grids instead of Angular, Sahil Malik writes about BOTS instead of SharePoint, and Wei-Meng Lee writes about the R programming language. Each of these authors either consciously or sub-consciously decided to extend their writing in new directions. What a great way to prevent fatigue and malaise.
I ran an early version of this editorial by my rock-star editor Melanie to see what she thought, and she pointed out that some people use the arts as a way to get out of a slump. This was a big DUH moment for me. Figure 1 shows two recent purchases I made just before I made my breakthrough. It looks like I already had the potential solution to my problem but didn't even know it. To further expound on what Melanie said: This is part of the process of life-long learning. I love that concept. We as developers have chosen a path that requires us to be life-long learners and part of this process is learning new things. That's pretty Zen if you ask me.
You might be asking yourself at this point if my malaise/crisis returned. The answer is no. After recognizing the source of the malaise, I continued to challenge myself with new tools. I spent time doing nerdy stuff like manipulating SOAP headers with a SoapExtension
class, did a little more work learning Swift, and looked into Python as another programming tool to add to my repertoire.