Retooling & searching for the joy of coding again (part 2).

In the last part, I mentioned that I had to do some soul searching….

Sigh… Last summer, I was doing a lot of sighing. I was in a comfortable job, but was feeling underpaid & a little disrespected. See I was doing a lot on my team. Some said I was holding my team together. I was working nights & weekends as well as a multitude of other things. Such as building utilities, creating documentation for processes as well as mentoring other team mates. I liked my job. I even liked doing all the other things. I just wanted to be recognized for it. However, the company was having none of it.

I put my resume out there like I always had. I got a ton of phone calls. There were a lot of interesting jobs. But the market had changed in Denver. The job interviews were very technical & very cold. I was questioned by recruiters about what I knew & didn’t know. They questioned my pay scale & made me question if I was worth that pay. There was something different about this job search than the others in the past.

There was also a question in my mind of whether I really wanted to find another job. There is a significant mental difference between wanting to find a new job because “I’m looking for X”, verses “I’m looking for a job, but I really don’t want to, but I have to because I feel disrespected…”. I might write about that eventually, but for now, those interviews that I went on, didn’t go all that well…

I went on 5 interviews. I failed them all. I knew I needed to step back when one of the interviewers asked me: “Do you still code?” Game Over… I was done interviewing, & I was totally devastated.

What the hell am I going to do? – is all I kept asking myself. I thought about going into management. Maybe the company I was with would have an opportunity later, but someone would have to retire or die to move up the food chain, & I wasn’t sure if I would even be in the running. I thought about doing another round of interviewing as a management candidate, but I have no experience! How was that going to work?

When I was a kid, I played instruments. I played the trumpet starting in elementary school all the way through High School. In fact, I was going to go to college for music. I also played the piano for about 6 years. I enjoyed marching band in school, but I HATED playing the piano. I remember my Dad telling me I should just start playing music by ear. That was such a foreign concept for me. For me, the ONLY way to play music was by sheet music. Learning the notes, the rhythms & practice. Lots & lots of practice.

During my Junior & Senior year in High School, I got a new piano tutor. I think she was a college student. She could tell, I was not enjoying playing. I remember her asking me why. I told her that none of the music was interesting for me. She took me into the adjoining music store & we picked out a movie & TV themes music book. I remember learning & playing the theme songs to many TV shows with my final piece that I have ever played being the theme from the Peanuts (Linus & Lucy). This piece of music was probably the most complicated piece I have ever learned, but I loved learning it & mastering it. I had found enjoyment in the music finally.

I remembered that time period when I was asking myself, what I was going to do. It was just too easy for me to say, “I’ll just find something fun!”. If it were that easy, wouldn’t I have done that already? Plus, I wasn’t sure if I could find the joy in coding any more. This thought, really scared me. I’ve always had joy in coding. I always told people that I got lucky in my career because my job is my hobby. If there was no joy left, then there was no hobby. I was totally screwed if that were true…

During the early summer, I told my boss that there was something called vue.js that looked really interesting. I remember the next day we had a meeting with other colleagues & they happened to say that they were just starting to use vue as well. That day my boss told me to look into it more.

Vue was very easy to learn, as well as it being the gateway for concepts like: templates, components, state management, cli, webpack etc.

All of the above concepts are what the other frameworks & libraries were using (Angular & React.js). Thankfully this was the case for me, as I had no idea what a CLI was, or templating or State Management was & I didn’t know GIT. All I knew was jQuery.

I decided to rewrite a MVC 5 page that didn’t use ANY JavaScript. This was an Admin page, so very little people use it. This page had an index, edit, & a delete page associated to it. It took me 2 days to make that page into its on Single Page Application in vue. I remember being flabbergasted at how easy that was to do. I also remember this feeling of joy. So much so, that I re-wrote another 5 pages into vue over the next month (which I worked on nights & weekends). I was having fun again.

Once I realized what was happening, I told my buddy that I was going to rewrite my abandoned applications from my Windows Phone days into all the new JavaScript frameworks. I knew I still had a ton to learn, but for some reason, this seemed like a good idea & oddly a fun one.

So I got started that next weekend. However, being 40+ now, there were no more late nights until 2AM or multiple nights in a row coding. I figured if I could do 2ish hours a week that eventually it would add up. Also life also interrupted my plans. My youngest went to college so family priorities prevented me from sitting at the computer as there was no extra free time. That didn’t deter me though. I coded when I could, & didn’t stress when I couldn’t. Pretty soon, I was investigating & using the newest version of the vue CLI. Then I hooked up Visual Studio Code to my GitHub repository. I found a couple of examples of what templates were & started to use them. I even found vuex (state management) after a few months of working on my application (which I now have to refactor my application to use fully).

Unfortunately, I’m not quiet done yet with my application, as I had forgotten how hard it actually is to deploy a web app. There is so much testing to do. I’m also fighting to incredible urge to refactor everything! The point though, is that I’m all of a sudden a lot more knowledgeable about this new JavaScript landscape then I was during the summer. Vue made it fun to code again.

I think it is safe to say that I’m back as far as being a coder again! It is almost like vue threw a bunch of new wood on the fire that burns for me with coding. I’ve found the joy again, & I’ve recommitted to my passion! I’m more motivated than ever to try to understand JavaScript & coding in general. It is becoming more important to me now to understand the concepts that I don’t necessarily use all the time. I find myself going back to the basics & making sure I understand everything (or as much as I can). Even though I’ve decided not to get off of the technology bullet train, I realize I have a TON of work yet to do. Angular & React is my next target.

I feel like I should fill you in on what happened with my job since the early summer of last year.  Eventually, my company gave me a small compensation package.  I never thought I was that underpaid.  I really just wanted them to show a little gratitude for the job I was doing.  So this small token did just that.  Then later in the summer they sent me to Germany to train users on the application that I was maintaining and supporting.  That was a great honor for me.  That trip was great.  It was one that I will remember for a long time.  Plus, I got to experience Oktoberfest while I was there.  Just before I left for Germany in September, an opportunity opened up on a new team.  I applied for that position & I got that position!  The new team was working on a new application that is more of an internal application using Angular & .NET Core.  I started on my new team this year!  I’m good right now with the company I’m at.  I’m hopeful that my relationship with this company lasts several more years in the future.  

Retooling & searching for the joy of coding again.

I did not graduate with a CS major. I graduated with a
Business Administration with an emphasis in Computer Information Systems. Programming is my passion & I love the field that I’m in. However, I did not know back in my college days what I was going to do. In speaking with my family now, they all have said it was obvious that I was going to do something with computers. Although my major didn’t surprise them at all, but none of us (including myself) knew exactly where it would lead.

College was not great for me. I was a lousy student & I really didn’t like my major. I found most of my courses extremely boring which explains why I was always distracted & quiet frankly hated being there.  There were only a handful of courses in college that actually kept my attention. 

My favorite course was American History, which included a ton of reading.  I’m guessing I enjoyed history because I knew of the events already & I was diving deeper into those very interesting events.  

My next favorite course was Business Finance.  I just happened to be working at a call center that supported the HP Business Calculators about a semester before I took my Business Finance course.  At this job, I had to learn a lot of different financial based calculations that the calculator supported.   I spent a lot of time with lawyers & financial advisors that relied on these calculators to calculate ROI, Amortization, Interest etc.  By the time I took the finance class, I knew how to do all of those calculations already, so it was really easy for me.  

My other favorite course was Business Management.  It was an entry level course.  I think this was a case of just having a really good professor.  He made the topic interesting, straight forward & logical.  It probably defines how I think of management & why I think most managers over complicate everything (but I digress, as this isn’t the topic of this post). 

If I would have known then what I know now…  I probably would have majored in Finance with a minor in History (or vice versa).  But that would have altered my life greatly & probably not for the better.

Since I really didn’t like my college courses (or learning in general), I thought when I graduated I would be done with learning.  Boy was I in for a rude awakening…

As a developer you are locked into a life time of learning. There is no escaping it. If you want to be good at this craft, then you have to learn. You can’t rest on your laurels, things are always changing. So you always need to keep up by learning & exploring.

I find it VERY ironic, that for someone that does not enjoy learning to be in a career where one HAS TO constantly learn… Maybe it says something about me, that I’ve stuck with it for as long as I have (but this post isn’t about that either).

RETOOLING:

So far, there have been two times in my career when I’ve had to retool. The first time happened when I was a new user to StackOverflow & jQuery was version 1.5ish (about 9 years ago). I was shocked by what was going on with this JavaScript framework & in awe of what JavaScript could make the browsers do!

I started out as a classic ASP developer (technically I was 1st a VB5/6 developer, but that is a minor detail just to highlight how long I’ve been doing this), then I switched to a .NET WinForms developer (VB.Net). But jQuery changed all the rules & I loved what could be done now in the browsers without having to use super verbose code (document.getElementById) & the EVAL statement – YUCK!.

So I retooled, I had started working on GodSurfer which was a new site that I had developed using php & jQuery. GodSurfer was my proving grounds, it was very important for me with this retooling.

I eventually changed jobs to become a web developer using .NET WebForms (C#) & jQuery. I felt fairly proficient at it and because of my personal website that I was doing on my own, which gave me a feeling of being satisfied (which in hindsight a very dangerous feeling). Due to that bit of retooling, (because I was fairly early in the adoption) I could find any job I wanted using jQuery. C#, & SQL for the next 5-8 years.

The second time I realized I had to retool was last spring/summer (2018). I found myself possibly looking for a new gig, & I found myself not knowing any of the new JavaScript frameworks, toolsets, & verbiage! I was now an antiquated developer that only had skills in C# and SQL. I could no longer call myself a full stack developer because the landscape had changed so drastically. I was devastated! I couldn’t believe that it had happened to me again.

Just like when jQuery was new, I needed to retool again. Except now I’m over 40 years old, I had no personal website & I was beginning to wonder if I even wanted to continue learning yet another language, toolsets & style.

In the next part, I’ll discuss some of the soul searching I have & continue to do, to figure out what my path will be & how I’m currently retooling. You can see part 2 of my journey here.

A fractured community

If you follow my twitter feed, you have probably guessed that I have been looking for a job.  I’ve noticed this time around that there are a lot of jobs out there, but many I’m not qualified to do because the web development community has fractured into many different segments:

  • .NET Core
  • Angular
  • React
  • Vue
  • And lowly ASP.Net and/or MVC

These are the ones that I’ve seen in my search.  I have admitted in the past that I’m trying to learn vue.js which is a new .js framework.  I know Angular devs and React.js devs.  I know these people work really hard at staying current.  I also know that they only know one framework really well.  The above list also all require C# & SQL, so this is frustrating when you don’t have the 3rd part of the job requirement.  Thankfully, it appears that some companies are willing to train on the front-end.  It won’t be long when that ends though, and it will go from a “nice to have” to a “must have”.

Some might say that this is the golden era of web development.  I don’t see it like that, quite frankly to me it looks like a night-mare scenario.  IT management is being directed to pick a side (by whatever conference they went to, or consultant selling them their services), this to me is a huge risk, as no one knows who is going to come out on top.  Angular is backed by Google and React is backed by Facebook, so each have a driving force behind them.  But I don’t think physical products are being sold for those frameworks.  Right now, it looks like there is enough room for every framework to co-exist, but those that don’t know their history is doomed to repeat it.  If a contraction or a consolidation of the economy happens, many developers could find themselves on the losing side.  Microsoft has a whole suite of servers and cloud services that they charge for.  That means that the businesses that have the money and consequently the backing usually invest in Microsoft (or Oracle) products.  So when the economy crashes, all of these front-end frameworks are going to come crashing down with it.  My guess is MSFT will still be there when the dust settles.  I realize that there is an anti-Microsoft bent, this has been around for years.  I’ve been burned my Microsoft before, but the fact is, I am a MSFT developer and will be until I get to retire (or find something totally different to do).

But this is just my opinion.  Angular and React are very different from each other.  I don’t see a lot of cross-interaction between the two.  So that tells me that devs really only have time to learn one or the other (especially since they are upgrading and changing at a lightening pace).  These JavaScript frameworks are the flavors of the month.  Lots of lines of code is being written right now and EVERYONE wants to be deemed “current”.  I will always remind people of Ruby on Rails, yes it is still in existence, but for a while it looked like it was going to take over the world.  Now, Ruby isn’t talked about that much any more.

I was talking to my buddy and we both agreed that we would be foolish not to learn .NET Core.  We are both MSFT devs and it would be silly for us not to learn it and know it.  I don’t know what the learning curve is, hopefully it isn’t too bad.  For me, I’m going to continue to learn Vue.js but I’m also going to get up to speed on .NET Core as I think it is the safe bet for the future of my career.

 

I’m back!

Some hackers had gotten a hold of my site and my host shut everything down.  Apparently the site was being used to wreck shop for other sites.  WinHost.com is a quality organization & I worked with them to resolve the issue & I’m now in the process of getting everything back up to speed.

Updating myself:

I entered a funk for last few years, where I didn’t have a lot of time that I wanted to devote to coding anymore.  I went to my job and then I came home and watched a bunch of Netflix!  Meanwhile AngularJS 1.x, React, ASP.Net Core 1 & 2 and countless CSS frameworks have passed me by.  I still don’t know what SASS or LESS is </smh> –  Maybe being a early adopter of the Windows Phone and Windows 8 debacle wore me out.  I had no desire to learn this new stuff.  I seriously wondered if I was going to continue to be a developer in the future &  I had started to think about what my exit plan would be.

However, in fall of this year I decided that I wasn’t done yet!  I started to look through my app note books to see what ideas might be interesting still.  What is feasible?  What is relevant?  What is interesting?  I looked at my projects that I had locally & found one that was 100% functional, yet it wasn’t deployed since it was written in AngularJS 1.x.  I’m a long way from learning the newer frameworks, so I made the decision in November that I’m going to publish my apps in the wild for all to see.  Regardless of the technology stack that I use (I’m currently comfortable in jQuery and webapi), but then upgrade the site/app as needed.  To be honest, I’m not 100% sure that Angular or ReactJS is going to make the site any better then what it is now.  However, now that my app is live, I can learn the new stuff with a meaningful example in mind.  Hello World is great, but I want to know how to do the bindings & call web services!

This BLOGs future:

In my last blog it was ALL OVER THE PLACE!!!  You name it, I wrote about it.  There are too many opinions out there for mine to make a difference.  Most of the time though I wrote because it was something to do.  I’m not a great writer, but I do like doing it.  The reboot of this blog is going to be development in nature.  Sorry, I’m not going to do the book or movie/TV reviews or politics or religion.  Just coding/programming/development – Maybe some life experience about those things, but it won’t stray too far from the core idea.