So, you want to learn how to code...

Me too! Where does one start? The number of programming languages, libraries, and frameworks are enough to discourage anyone from getting going! It's certainly intimidating. How does one choose which way to go? I'll share some advice from an excellent career-management book that I'm reading - Soft Skills: The software developer's life manual(review coming soon!) (paraphrased): Just get started. Decide what you want to make, and go google. If you start out going in the wrong direction, that's a lot better than sitting in the garage. Once a car is moving, it's much easier to steer in the correct direction, even if you start out going the wrong way.

Just today, my son(12) wanted to start learning this 'web' stuff I've been working on of late. After running through a couple of hours of code, he was off to the races. If you have children interested in getting started, give this site a visit. The first lesson is for ages 4-104, and a great introduction for people of any skill level. A few hours later, I sent him to codepen.io since he just wanted to 'mess around'. Before I knew it, he'd made a header, a few paragraghs, line breaks, inserted a few images, and even put a nice 10px black border on his images with CSS!

Anyone can program. The first big hurdle is deciding on a language and subsequent frameworks. I'm guilty of language-hopping. In the beginning, language-hopping is a good way to get the basic tenets of programming down and get your feet wet. Some syntax(put a semicolon here, open and close brackets around these things) will seem more intuitive to you in one language than in other languages. Python is a great place to start. Concepts such as for, while and do, if/then/else, and other methods of iterating through arrays and objects are all basic building blocks of programming. No matter which language you setlle on, these precepts will stay with you forever. Once you have the basics down, then it's time to quit hopping around and focus on the language that will do the most for what you want - and when you do, STICK with it!

Stick with it. Easier said than done. Once you learn the basics and can make a "Hello World" site, programming starts to get a little tough. The hand-holding tutorials start to get more sparse, and you'll be relegated to stackoverflow and a lot of googling, oftentimes feeling like you're just not smart enough. You are. We all go through it, believe me. Erik Trautman wrote an excellent blog post about Quincy Larson of Free Code Camp, outlining the several stages of learning to code - the post succinctly confirms what all aspiring developers will face as they embark on their journey. It certainly resonated with me, and it's somehow comforting that I'm not alone and there is a very bright light at the end of the tunnel. I wouldn't know yet, because I'm currently in between the cliff of confusion and the desert of despair!

It's going to be worth it. My current path is running through Free Code Camp, learning Javascript full stack development. The program just started around October 2014, so real data on people going through the program isn't available as of yet. It's all free, whereas paid code camps can be in the $12k range. The biggest draw to the program for me is that after you do your 100 hours of learning to code, you help nonprofits build their site for 900 hours(not all at once!). By the end, you have a portfolio of sites, as well as connections to nonprofits. Unlike many paid code camps, you now have real world experience that you can show to a potential client or employer, which is the ultimate measure of your skill as a developer. One other reason I eventually settled on Javascript(Python was my first kiss with code, and will always be my baby) was career scalability. In addition to full-stack development, I'm working on some 3d applications for Google cardboard, PC, and Android using a 3d engine called Unity. I'll give you 3 guesses as to which language I can use for all of that as well(ok, not exactly Javascript, the tl;dr is that Unityscript has classes, Javascript does not, and a few other differences )!

My 'getting started' path lasted me longer than I had anticipated. For a couple of years, I only dabbled in programming, jumping from Django to Twisted, Tornado to the MEAN stack. Hopefully this post will shorten that time for you. Figure out what you want to do, dabble with different languages enough to get your feet wet with programming, then SPECIALIZE and stay on track with your technology of choice! I'll see you in the desert of despair!

Written on February 18, 2015