So you want to program for a living?

I love coding for a living. I’ve done a lot in the job market since I started working. I’ve worked at a video game store, a paintball field, several small business, several grocery stores and other random jobs. Nothing can compare to coding. I get to build really cool stuff and it’s never boring.

I’ve really wanted to be involved in this part of the computer industry for as long as I could remember. I’ve always loved video games. In 3rd grade I wanted to be a video game tester. I got a VHS tape from Nintendo Power that showed the testing process of Donkey Kong Country. I thought this would be the coolest job in the world. This is essentially called “QA” for Quality Assurance. I didn’t know that this has very little to do with making games and I didn’t really want to do this. I eventually realized I wanted to actually program the video games. It’s been a real long journey that had taken many delays, but ultimately led to the greatest career I could ever dream of.

I get shadowed by a lot of high school students who are interested in the programming industry. The number one question I get asked is “How do I get started?” This is a very loaded question that doesn’t have an easy answer.

The first and most important question you need to ask yourself is: “Do I have the right personality to be a programmer?” Wanting to make a video game or making the next big iPhone application isn’t enough. This breaks down into several smaller questions.

  • Do you have good problem solving skills? You’ll spend a lot of time looking at a blocks of code that don’t work and you will be expected to fix them in a timely manner.
  • Are you good at working behind the scenes with other people? Programmers are more like roadies than rockstars. We make sure everything is working and setup correctly. The rockstars are the ones who sell what you work on to clients and present your projects at conferences.
  • Are you wanting to do this for the fun and excitement of the industry? A programmer’s compensation varies severely due to many different factors. What region of the country do you work in, what is the demand of your technology, what is the quality of your work?
  • How do you handle pressure? There is no room for procrastinators here. Deadlines are very important. Pushing them back isn’t always an option.

You have the personality? Great! The next step is to learn to code. My recommendation is to start early. I took Visual Basic in the 11th grade and C++ in 12th (this may not be early by today’s standards, but it was for 2000). I had picked up a little HTML along the way too. I learned about project planning and databases in college. I had a small amount of knowledge in a large number of fields. I see this as really the best way to go. You will have professionally trained instructors who are available to help you out. This may not always be an option for everyone. You can get similar instruction now a days from online courses. Code Academy and Microsoft Virtual Academy offer great courses to get you started.

You need to have an idea of what you want to program before trying to get into the job market. Coding a video game isn’t always a direct hire situation. It’s frequently a hobby thing that turns into a real job if you are really good and lucky. iPhone and Android programming is very targeted and you may have difficulty finding a good job in it right off the back. Most iOS and Android devs that I know got started in server or web development. Learning a flexible language like Java or C# will make you versatile enough to be able to apply for many different types of programming jobs.

I think getting hired at your first job is the hardest part of wanting to be a programmer. Most places want several years experience. How can you get experience when no one wants to risk hiring a greed developer? The easiest answer is to find an internship when you are in college. The second is to freelance. A lot of developers I know love to freelance. It’s not for me.

The type of environment you work in is very important. I like to work with a lot of other developers in a relaxed environment. Not all jobs are like this. You may have to wear a suit and you are the only developer in the company. You may have to work in a cramped cubicle farm with fifty other developers. Make sure it’s in a environment you are happy with. You wont produce quality work if you aren’t happy where you are working.

Your resume and interview are extremely important too. Don’t bloat your skills on your resume. I read a lot of resumes and it’s pretty easy to spot. You can’t have 9 years of relative experience in a programming language if you just got out of high school. Separate out your academic experience and what you feel is truly professional experience. I outlined my academic programming languages in my interview with my current company (COBOL FTW). They greatly appreciated the modesty and asked a lot of questions about the work I did in the classes. These turned into discussions about my passion to code and build applications. Modesty goes a long way in interviews. Focus on your passion for code and don’t boast about being a code “rockstar” or “ninja”.

Ok, so lets say you scored that awesome first job. Welcome to the club, now it’s time to keep the ball rolling. This industry never stops and you can be kicked out quicker than you got in. You don’t want to go from coding to sacking groceries because you spent 15 years coding a legacy language and not ever learning anything new. You need to build a reputation for yourself and prove your long term worth. You can do this by expanding your knowledge in new programming languages, networking with other developers and most importantly, learn how to do your job the absolute best way possible.

My journey to this point in my career has been pretty amazing. I’ve gotten very lucky with the opportunities put in front of me and I’ve been very fortunate to work with some very inspiring and talented people. I wouldn’t say it was perfect, but I tried to fail forward the best I could. Your career is ultimately what you make it.

So, do you think you have what it takes to be a code monkey?

I’m a Technology Architect for Rockfish Digital. I’ve been there since 2007. I love coding and spend most of my time in C# and JavaScript. I’m a firm believer in the Full Stack Developer.

Microsoft Build Conference Day 2

Busy, but awesome day in tech at Build. Going to be short but sweet.

Keynote

Lots of good stuff shown off for VS2013, Azure and Office 365.

What’s New in ASP.NET and Visual Studio 2013

I wont lie. Scott Hanselman is one of the reason I love coming to dev conferences. I find him extremely inspirational and he does such a great job at making his sessions fun. I’ve watched a lot of his sessions twice.
Scott dove into all the great new features coming to VS 2013. Showed off how asp.net is moving to “one” asp.net with seamless integration between MVC and .net forms. Developers will be empowered to build their own templates a lot easier.
This was the session of the event for me. Due to some long demos, these sessions were shifted back a little bit. Scott entertained us with Ascii street view, http://letmebingthatforyou.com/, youtube videos and tons of other fun stuff. He actually favorited my tweet.

This was absolute nervana for me. My coworker and I saw him in the dev area. We wanted to go talk to him but we both felt like we would be this Chris Farley character.
I really didn’t feel up to embarrassing myself like that. Go watch his session, even if you don’t code. You’ll get a good laugh.

Scaling the Real-time Web with ASP.NET SignalR

This was a very informative session that answered just about all of my questions about scaling SignalR. Damian did a really great job demoing all the scaling tools.

Fast Apps and Sites with JavaScript

This was a great session. It put me in my place that I’m not nearly as good at javascript as I thought I was. I normally focus on maintainability and best practices in code. This session was kinda like, to heck with all that! Lets make everything run SUPER FAST! It was pretty mind blowing for me.

Create Fast and Fluid Interfaces with HTML and JavaScript

This was an extension of the what’s new for WinJS from yesterday. Paul went over a lot of the new features, why they decided to improve them and went over code for them.

Today was full of tons of great info. I’m really ready to be home though. I miss my family a great deal. I hid in a corner and tried to face time with Amanda and Lily. The wifi wasn’t so great and it ended shortly. I found several other people doing the same thing a couple hours later. It was good to know I wasn’t the only one missing my family.

Here is where I’m planning on being tomorrow:
9:00AM to 10:00AM
Developing High Performance Websites and Modern Apps with JavaScript Performance Tools
Jonathan Carter

10:30AM to 11:30AM
Visual Studio 2013 for Web Developers: Deep Dive
Mads Kristensen

12:00PM to 1:00PM Sessions
Reusing Your Web Development Skills in Windows Store Apps
Jonathon Sampson , Ralph Whitbeck

2:00PM to 3:00PM
Building REST Services with JavaScript
Nathan Totten

I’m a Technology Architect for Rockfish Digital. I’ve been there since 2007. I love coding and spend most of my time in C# and JavaScript. I’m a firm believer in the Full Stack Developer.

A Couple Tips to Type Code Faster

I’m not too embarrassed to say it, but I was looking at my fingers when I was typing until I was a senior in highschool. I was sneaky with the keyboarding teacher. Over the past year or so, I’ve really been trying hard to learn to type faster and more efficiently.
Continue reading “A Couple Tips to Type Code Faster”

I’m a Technology Architect for Rockfish Digital. I’ve been there since 2007. I love coding and spend most of my time in C# and JavaScript. I’m a firm believer in the Full Stack Developer.