To me, this industry is a race that has no finish line. Everyone has a different pace in which they learn and do their job, but it's still a race. This field is ever-changing. New tools are being created and new ways to develop applications are being imagined.
When I decided I wanted to be a programmer and develop solutions for my clients, I have accepted the fact that being in this field it is important... no, required, to never stop learning. After 10 years in this industry, I realize I have forgotten that.
Let me explain
I make no excuses. I am where I am due to my own accord. It wasn't intentional though. At first, most of the projects I had been assigned to have required me to learn something new. At the time Angular was born, I was required to learn it because I was assigned projects that were written with Angular. This happened with multiple tools and concepts out there from Angular, to unit testing, ES6, TypeScript and React.
This kept me motivated to learn. Even though I was required to learn said framework or concept, I was having a lot of fun because it was always something new. It kept me on my feet and allowed my brain to find different ways of organizing code and architect solutions.
Working for a consultant company, I never really had a choice of what I wanted to work on. I was always moving onto the next project that either used the same tools as the previous project, or none of them at all.
The event of realization
For the past year or so, I've been on a project with a client that involved converting multiple children's educational Flash games to the Cocos2D platform in TypeScript. There was a catch though. The client we were working with wanted to use a framework they developed in-house that hid all of the Cocos2D implementation and brought in a tool called Flax to work with it. Flax allows you to convert Flash assets in a SWF to a PNG sprite sheet with a plist file.
Utilizing a framework built on top of another framework has its ups and downs. I did not like the fact that it hid Cocos2D from us. But on the flip side, it allowed us to focus on game logic. The framework didn't let Cocos2D get in our way and it was much simpler than learning Cocos2D. At times though, the client's proprietary framework got in the way.
At first, this project had me as the solo developer on the first game conversion. 120% of my time was spent on this project. Yes, 120% because that's how challenging this project was – and still is. After the first conversion, I was made technical lead on the project and we pulled in 4 other developers that sped up development. It also relieved some stress and workload that would have been on my lap without the extra help. With all the help I had from my colleagues, I didn't need to work after hours on this project anymore. This left me with actual time to do what I wanted to do.
To be honest, I felt a little burnt out. I was a little irritated that I spent all this time learning a framework that I couldn't use in future projects. In the past, I would learn a framework or a set of tools and since they were open source, I'd have the opportunity to use them in future projects. Since the current framework I'm coding in is proprietary, as soon as I roll off this project, that's it. Fin.
The burnt out feeling never went away after a week or two so I did what geeks do. I played video games. Every night I stepped onto the Summoner's Rift in a game called League of Legends. I was hooked. There is something about this game that drives me to get better at it. But my appreciation of this game is set for another blog post. I caught up on all the shows that I couldn't watch because of this demanding project.
I got comfortable.
This is by far the worst thing that could happen to a programmer's mindset and I didn't realize this until recently. You can't be a successful programmer and not have the drive and motivation to learn and keep up with the changes in front end development. I felt like I was getting left behind.
My mind was going in a million different directions at the time of realization. Did I need a change? Do I look for other opportunities that other companies are offering? Am I getting bored?
My renewed motivation
I signed into Twitter for the first time in months to see what the people I follow are up to. It sparked a fire inside me. I see how motivated these other developers are and what they're working on and I wanted that. But is that it? Is that enough for me to get back into it? Did I need to look for a new job?
The answer is "NO". It's all in my head. I did some research on other companies in the area to see what they're up to. I actually interviewed with a couple of these companies. Offers were made but never accepted, as well as the "We decided to go with another candidate" messages you get when you get denied the job. Oh well. This research reminded me how much I hated the interview process and that I'm happy where I am for the most part.
Stagnation is something I should've never let happen. I own that mistake and it will never happen again. Now that I have free time, I need to do what other developers are doing. Learn. Write. Stay hungry.
Now I'm going to start where I left off with React and for the first time in months, I'm excited.
I am renewed.