Tuesday, December 16, 2014

(Dev) Life is Hard

I've never been the type of person who can just take any kind of job I can find and be happy. I've tried and it just isn't happening for me. I'm too much of a dreamer and way too ambitious to do anything less than something that thoroughly excites me and motivates me to get out of bed every day. This is how we all should be. I truly believe the world would be a much better place if we all would actively pursue our wildest dreams with 100% total zealous passion.

For me, the last few years have been interesting, to say the least. In early 2011, I landed what was then my dream job of working as a Graphic Designer for a small ministry. I loved that job. I especially loved all of the people that I worked with there. My ambition, however, eventually got in the way of my happiness and ultimately lead me away. You see, while working there, I taught myself how to write JavaScript and PHP so that I could better support some of the web-based applications we used as well as design and implement more interactive websites and WordPress plugins. Learning how to code has been a long-time dream of mine. At least since I was a wide-eyed, eager kid who explored and learned everything I could about the Commodore 64 PC that my parents bought one year for Christmas. I was on top of the world, having accomplished two things that I had dreamed about since I was a kid: how to program and working as a professional graphic designer.

Shortly after I taught myself how to code and built a couple of side-projects, coupled with the big project I did at work, my best friend offered me a position as a web developer at the University of Texas at Arlington. Without thinking I immediately accepted and, after enduring a three-month interview and hiring process, I left my beloved position as a designer at the ministry, just shy of my two-year anniversary, and became an ASP.NET web developer at UTA. This would prove to be one of the biggest mistakes I have ever made. A little over a year after I began working at UTA my friend left due to bullying and general bad behavior from our boss. Once my friend left, I received the brunt of the "hate" from the same boss and my work-performance and job-happiness deteriorated quickly from that point forward. It was safe to say that I definitely hated my job.

Thankfully, while working at UTA, I managed to learn the very basic concepts of working with relational databases, as well as writing basic to intermediate SQL, in addition to learning the C# programming language. I was also responsible for maintaining the Graduate Studies PHP websites and internal tools, thus strengthening my knowledge of procedural PHP.

In the summer of 2014, after stomaching as much as I possibly could from my boss, I discovered that he had recently submitted retirement papers. He planned to leave in August, at which point our department would be disbanded and all web development duties would shift to another department entirely. I knew what this meant; I wouldn't lose my job, but I would not be doing any more web development, either, since the powers that be did not want to continue to maintain our current ASP.NET sites and tools and the Graduate Studies portal had recently been moved to the proprietary CMS that was maintained by another department, which happened to not be hiring any new developers. I had been attempting to work with headhunters in my area for 6 months, but had had no luck at all. My luck would soon change.

In late June, I was visiting a very close friend who worked at SoftLayer, in Dallas, which is owned by IBM, and shared with him the drama and suffering I had endured thus far. He encouraged me to put in an application and resume with IBM for a position as a Software Engineer working at SoftLayer. I did so and, a little over a month later I started my new job as a Software Engineer at SoftLayer, an IBM Company, doing back-end engineering for their ordering system, which utilizes a custom MVC, object-oriented PHP framework connected to an Oracle database. So far, I've learned a lot at SoftLayer. I've learned how to use and work with Git, and my knowledge of PHP, especially in working with its object-oriented features, and MVC has grown exponentially. Alas, things are not what they seem and I am far from happy or content.

After teaching myself to write code I realized that I could leverage my newly acquired skills to make more money than I ever had before. Ultimately, I have accomplished that. While I do enjoy writing code and am thrilled that I get to do it for a living, I feel as though I am not very good at it. It is taking me a good long while to be at a level that I can contribute new features and true bug fixes to our ordering system at work and it is putting me in a bad light. I finally realized that I need to ask some of the other devs on my team for help in getting my head around the general concepts and code-flow in our system. Programming is hard, make no mistake. Learning how a complex application works is just as hard. You can't learn on your own. Period.

My frustration was leading me on a very dark path filled with negativity, self-doubt, and would have ultimately lead to failure, as I would have eventually just given up and quit trying. The absolute difference between failure and success is knowing when to utilize the resources at your disposal, such as co-workers, online forums, and social media. You have to decide whether you really want to achieve success and, if you really want it, you have to decide that you are not going to give up, no matter what. If you make the decision to keep going you will eventually persevere, you'll demonstrate that you're willing to tackle a problem and see it through to completion, and you'll gain confidence to use in tackling bigger, more complex problems down the road.

I've shared my story in the hopes that it will inspire anyone out there, not only to chase their dream, but to not give up on it when the first major test of will and faith shows up. And make no mistake about it, that test will show up, eventually. Nothing worth achieving is devoid of massive challenges and frustrations.