Teaching yourself to code is basically the new black, but don't jump into the project before considering these basic questions.
By Jennifer McFadenn (Contributing Writer, Women 2.0)
You can’t go to a cocktail party or tech event in any major city right now without bumping into someone who is trying to, or thinking about trying to, learn how to code. Learning to code is basically the new black. However, before you spend all of your spare moments trying to figure out the difference between a markup language and a programming language, or a string and a variable, it is worth coming up with a plan of action.
I recently decided that I was going to take my tech skills to the next level. I have spent the past few years on the business side of the tech industry and am interested in taking on a more technical role. I have a part-time consulting contract that gives me the time and flexibility to construct a fairly rigorous program of study over the next six months. I have an idea for a web application that I’ve spent some of my spare time scoping out and I plan to use this project as the capstone for a course of study that will enable me to build up my front end development skills, while also spending some time learning basic Ruby and Ruby on Rails. I’m creating a formal course of study, which I’ll share in a future post. In the meantime, I thought that I’d share some thoughts on how you can get started down the path to learning to code.
Take the Time to Figure Out Why
Before you begin, take the time to figure out why you actually want to learn to code. Are you facing a wall at work and need to acquire new skills to move up the ladder? Do you hate your job and want to switch to a new industry? Do you want to build a viable, scalable web application that you hope to turn into a business? Or, do you simply want to know enough about the process, logic and capabilities of Ruby (or any other programming language, for that matter) to be able to work better with your technical team or the developer that you found on Craigslist? Are you willing to put in the time and mental energy to learn a new skill or are you just looking for an escape from your current job or for something to talk about at cocktail parties? Be honest with yourself. The approach that you take in creating a game plan is going to be dependent upon your overall goals.
Find a Project
This is a corollary to point #1. The easiest way to start and stick to a study program is to have a project that you are madly, passionately, totally in love with and that you simply have to launch. If there is a problem that is keeping you up at night, nagging at your conscience during your afternoon meetings, and distracting you when you’re supposed to be sitting and enjoying a lovely dinner with friends, that’s usually a good place to start.
If not, find something that you think would be fun and useful. And, stick with it. When you’re creating your curriculum, you need to have a clear sense of what you are hoping to build. Once you start moving down the path toward learning a new skill, it is important to understand how close you are to achieving your end goal. And, equally important, when you’ve achieved this goal and need to move onto something else.
Prioritize Your Time
Part of prioritizing your time is figuring out what you know already and what you need to know to make sure that the project gets completed. In my case, I have a very specific project that I want to work on. I have taken the time to consider the basic product requirements for the initial launch and have thought a lot about how to maximize my time and contribution to the product. It is a sports application with social elements, so the overall success of the project is going to be more dependent on the design, branding and user experience, than on the back end—at least at launch. In other words, we’re not developing any new technology that would require me to know how to create a highly complex, scalable back-end built using technology that doesn’t even exist today.
Do a Skills Assessment
Select your Tools
I used Lynda when first dabbling in HTML/CSS, than moved onto Treehouse and Skillcrush*. There are benefits to each of these and I recommend them all. If you can afford it, sign up for as many coding tutorials as you can and see which suits you best. Each has it’s own personality and you will want to be sure that you’re using tools that fit with your learning style. If you live in a city, look for offline classes that might be offered either via the tech community or at a local college. Organizations like GirlDevelopIt and GeneralAssembly offer many in-person introductory courses. There are also more intensive programs such as Flatiron School, Hacker School, The Starter League, and Hackbright Academy, which provide residency-based programs spanning anywhere from three to nine months. These programs usually offer placement opportunities to some or all of their graduates and can be a good option for career-switchers.
Advice for True Beginners
So what should you do if you’ve never even peeked at the source code behind your favorite website or drafted a stylesheet? Begin with HTML and CSS, which are the building blocks of the web. They are relatively easy to learn and there are a number of free or cheap resources online to help you get started. The only tools that you need to write and render HTML and CSS are the Notepad or TextEdit apps on your computer and a browser. More importantly, you will get some serious instant gratification from seeing a page that you just built rendered on the screen. It’s a little bit like getting past your first five mile run when you’re training for a marathon—it will give you the confidence to move forward because you can see the results of your hard work!
From there, find a path and stick to it. Scope out your idea, including all of the relevant functionality. Then talk to developer friends to see which languages are most relevant to your particular interests and needs. Find a friend who is willing to jump in with you and schedule a time each week to get together and review your code—heck, you could even add some wine and turn it into the next generation book club! Most importantly, just get started!
*Disclosure: I’m one of the co-founders of Skillcrush, which teaches technical skills to women. I’ve tried to be as balanced as possible when discussing tools and to provide you with the same advice that I would give a friend. Clearly, I think that Skillcrush is a great product. But there are also other amazing products out there that I’ve used to learn along the way. The best thing to do is to try a number of products and then decide which is best for you.
Have you taught yourself to code? What tips would you pass along?
Jennifer (@jen_mcfadden) is founder of HappyMade*, a strategy and innovation consultancy. She is also a co-founder and advisor at Skillcrush. She served as an adjunct professor at the Tow-Knight Center for Entrepreneurial Journalism and is currently working on building FlipFly, an online community to connect people around sports. Photo credit: Alaina Percival via Flickr.