Where Do I Start?
The first thing I did was tackle HTML and CSS. I want to be very clear on this point, this is NOT programming. Coding is a mindset, you need to be able to problem solve and think logically. There is very little (if any) of this with HTML and CSS. Now, that is not to say these aren’t valuable skills to have, but don’t fall into the trap of “learning to code” by writing some basic HTML. Some experienced programmers may roll their eyes at you and tell you that you’ve still got a long way to go.
Choosing A Language
With the exception of HTML and CSS, the language you choose to learn doesn’t matter! I spent more time learning what a “for” loop was when I first started programming than I did learning Ruby after I had 2 years of experience under my belt.
The most important thing with programming is to start making progress and begin learning.
One of the biggest mistakes I see in people trying to teach themselves programming is that they get too caught up in which language they want to learn. Don’t do that. Trust me, it doesn’t matter. To make sure you don’t fall into this trap, I’m going to tell you exactly what to do.
Picking a Project
First, find out what kind of applications you want to build. If you have a PC and want to make Windows applications, learn C#. If you have a Mac, learn Python. If you want to make web apps, Ruby is a good choice, but you can also use Python. If all else fails, learn Python. It’s an excellent language that teaches you how to structure programs correctly and just generally program the “right” way.
Avoiding the Cliff
I consider my first real “language” to be C#, a C-based language developed by Microsoft used in a vast number of Windows applications and websites. The best thing that ever happened in my journey to learn programming was finding a book called Head First C#. Most programming books start with helpful, guided tutorials in chapter 1, and then drop you off a cliff and expect you to just know everything. The Head First series makes it a point to do the opposite. They make it a point to translate programming concepts into something that “normal” people can understand, and deliberately avoid the aforementioned “cliff” problem. I can’t say enough good things about these books, they’re simply awesome.
Setting Achievable Goals
Painters never sit down and decide to paint, they always have an idea of what they want to paint when they get started. Programming is the same way. As a full-time programmer, I never sit down in front a computer and just say “I’m gonna program!” They have a goal in mind, something they want to accomplish. You should always endeavor to do the same.
Becoming a Pro
I started learning C# my senior year of college, and spent about 8 months with it before I graduated. As graduation came closer, I was trying to find a job. This was at the height of the recession, and there just weren’t that many opportunities out there, especially for people with marketing degrees. Lucky for me, I had spent the past year honing my coding skills!
I went in for my interview with a newfound confidence in my programming abilities. I was able to breeze through the questions they asked, and got an offer later that day. I had successfully taught myself enough programming to get a job as a full-time, professional software developer. Mission accomplished!
Now that you’ve heard about my journey to become a full-time programmer, in Part 3 of this series, I will give you a set of rules, tips, and tricks that I’ve picked up along the way. Hopefully they’ll be as helpful for you as they have been for me.How I Taught Myself to Code: Avoiding the Cliff by Jon Mattingly