So much to learn...
[]
After being in the industry for almost 20 years (yes, I'm getting old). I have realized that in the past 5 years, the pace of technology is moving at a ridiculous rate. I have always asked during interviews, "How do you keep up with the latest technologies?". I always hope that someone has an amazing answer to that question. The answer is usually, "I don't, I like what I know and I'm comfortable". Sad but true. The other responses I have received are, "I read blogs every morning to see what is out there", or "I go to meetups and listen to podcasts". What is shocking to me is that I rarely (can't think of time that I have heard it in the past few years) is this response:
I go through tutorials and then write my own code to see if I can.
Well, that is something that I have gotten away from for the past few months, and now, I'm back in it and LOVE IT. My job provides developers with pluralsight subscriptions, honestly one of the best perks I could think of for developer. So I started going through the John Papa tutorial for SPA kickstart. Wow, I know a LOT of JavaScript, BUT... I don't know EVERY framework out there. It was so much fun (ok, frustrating too) to go through that. I'm only halfway done but I am amazed at what I don't know. Now, that being said, if you saw me at 11pm last night, I was at my wits end trying to get the darn thing to work.
Here is what the problem was: The tutorial was taught on Durandal 1.x, Bootstrap 2.x, and jQuery 1.9. Durandal is now up to 2.0, Bootstrap is on 3.0 and jQuery is on 2.0. Those are some significant changes (especially durandal). Now, most people would be frustrated and think the course needs to be updated, and just wait until that happens or find another course to take. However, I was frustrated, I thought those things, but I also thought... I know how to code, I can figure this out! It was a game for me... a challenge to upgrade John Papa's course to Durandal 2.0 and Bootstrap 3.0. Yes, he put together a helpful migration guide, but it was still missing a few key pieces (like binding to routes using knockout has changed significantly). Regardless, I realized that coding is the easy part. It is troubleshooting/debugging that is a piece that makes a good developer. I am actually grateful today that it was not updated. I would type step by step and it would work and I wouldn't dig much deeper. But it didn't work, so I had to research, learn knockout debugging techniques, figure out how routes have changed, how configuration of plugins can happen before app start now, how you don't need to return an active route if a promise is returned, how the default route is simply identified by '', how compose is no longer needed and only a data-bind="router: {transition: 'entrance'}". It was so exciting to accomplish that whole step. I so want to teach it when I feel even stronger about it.
SPA (single page applications) are really the direction the internet is headed. Mobile is taking over, so design for mobile first, not as an after thought. Don't listen to a bunch of podcasts about coding, WRITE CODE. You will never get better at football by watching it every Sunday, so why do you think by listening to other's experience coding will make you a better coder? You may pick up on some buzz words, but until you DO IT, you won't get better. I am on vacation now which has been amazing. I wrote code, new code, from scratch. Ok, I used nuget packages and frameworks, but I am writing new code. That is the passion I have. That is why I am a developer. I know as long as I am alive, I will have more to learn. I have learned how to learn though. It is not by reading a manual, talking about concepts, or listening to podcasts. It is by writing actual code... and watching it not work... and debugging it... and getting frustrated... and then that moment...when you compile, you refresh your browser, and YOU SEE REAL DATA! Ahh, that smile I have for that moment.
So yes, I'm a geek, and yes I love to code, and yes, I don't know a lot. What I do know is that I have a thirst for knowledge that is awesome. I have an amazing wife who has the same passion for creative pursuits. The thing I realized in this recent endeavor was that the frustration and obstacles are the most important part. I feel so much more accomplished and happy when I have an obstacle to get over. Running a 5k is easy... running a tough-mudder, that is another story. Typing in a tutorial is one thing, but having it not work and then debugging and fixing it... that is where the reward is.
My point for this blog is this. When you have an obstacle/hurdle, realize it is there for a reason... and it will make you better. It will provide a greater reward after you get past it. We will all have hurdles over the years, but what is key is to not quit when it gets frustrating, that is when the real work begins. Today I feel accomplished, but I know very little compared to others. However, I am willing to keep learning and writing code to become better. Status Quo is not a goal! Our director said, "Mediocrity is not acceptable!" I love that. It has never been acceptable and never should be.
So much to learn... thanks for stopping by.