Getting started is tough. There are loads of resources out there to learn how to code but the most difficult part is figuring out what to do, when. I'll be periodically posting my advice on the best path... this isn't the path that I took necessarily, but the one I wish I had looking back on all the tutorials I accomplished, things I did, and meetups I went to. First, a few pieces of advice.
1. If you really want to learn to code, you need to do something almost every day.
I started to learn to code not because I thought I would want to do it as a career, but because I was founding a startup and knew I could make better business decisions if I had a basic understanding of the technology being used. As a founder, I had to weigh what I spent my time on and simply couldn't be coding every day. As a result, I set aside Rails Girls Tuesdays and Thursdays to code and make all tech-related decisions. My progress was very very slow during this time. I would lose momentum, forget where I was at in a tutorial, and it just took longer for things to sink in. For the last few months, I have been coding every day and every night. I've tripled my amount of knowledge in a very short period of time.
2. Set goals.
Setting goals is important in anything.... learning how to cook, changing careers, advancing in a current career, etc. Setting goals keeps you accountable and motivated because you are constantly checking in on if you're accomplishing what you set out to do. I'm a list-maker and a goal setter so I'm very comfortable with this. My advice is to set small goals. For example, if I was using Thursdays to code, I would sit down on Wednesday and say tomorrow, these are the things I want to accomplish. Now that I am coding full-time, I set new goals every 4 weeks and have them written in a place I look often so that I am always reminded about what I set for myself.
3. Get involved in the community.
No one can learn to code completely on their own. There are points when you'll get stuck. There will be times where you need someone to explain something in a way a book or tutorial can't quite get you to understand. If you're not careful, you'll go through the motions of a tutorial "do this. Next do that." without fully understanding what is going on. When I first started attending meetups, I hardly understood anything. I was lucky if I wasn't lost after the first five minutes of whatever 45 minute presentation was going on. Sometimes I was fascinated, sometimes I was really bored, but I was there. I was listening to words and phrases. I wrote down phrases or names of things that seemed important to look up later, and I got to know people who would help me out a lot as I learned more. Going to meetups can be intimidating... people make jokes you pretend to understand, there are usually very few women in attendance, and most of the time is spent with you thinking silently "geez, I really wish I knew what the heck they are talking about!" but the best thing to do is to keep going because gradually, I started to understand more and more, was less shy about asking questions, and understood the jokes being made.
Now, for step 1. I LOVED the way I started... I started by attending a Rails Girls workshop in DC. If you can, start by attending longer workshop (a day if possible). There are a lot of different opportunities and they are all great. Check out Rails Girls, Rails Bridge, and if one of those isn't happening in your area, try to find a women's tech meetup... they might know the resources available. There was a lot I didn't understand, but I think attending a workshop makes other steps a lot less scary.
I think all three points are fantastic advice. As someone who made a career change to being a developer, I can say that you're absolutely on the right path.
ReplyDeleteOne thing that has become vital to helping me learn is the old fashioned timer. Some days it's tough to come home from a long day of work and concentrate on code. I created a time goal of 20 hours a week of pure concentration on code. No checking the news or Twitter or whatever, just head down on learning with the timer on. This goal setting device has kept me on task and accountable.
The other key for me, just as you found, is the community. Humans a pretty social animals and it's amazing to see the change in the amount you learn on your own vs. with other like-minded people. Meetups and pair programming are absolutely vital to the learning process. I can only learn so much sitting in a quiet room alone.
One thing that I would add to your list, for a developer with a little experience under her belt, is to teach. I've found teaching to be really important in my own path to learning a subject. There's something about having to explain something out loud to someone else that really makes a subject sink into your mind in a different way. If you haven't had the opportunity to teach yet, I absolutely recommend it.
Although I'm not a Ruby developer, I completely understand where you're at on your journey and wish you the best of luck. You're certainly on the right path and it sounds like you have a thriving community in DC to learn from. The first day you get paid to write code is quite an amazing feeling.