If I want to learn to code, what should I learn and how?
June 12, 2017 10:31 AM   Subscribe

I am currently in an IT-ish position (database manager for a non-profit, all front end stuff) and I would like to take the ubiquitous "learn to code" advice because I think I would be good at it and I would like to do a job that is more interesting and earns more money. I am looking for suggestions (as concrete as possible) about the best way to do this, but I have no idea what to learn or how to learn it and would be super, super appreciative of any advice you could give me.

Assume I am pretty smart and, if relevant, excellent at puzzles but lack much real background in this -- I know HTML and some VERY basic SQL and have automated a couple of my current job's more tedious tasks using iMacro which was much more fun than actually doing them (seriously, the most enjoyable work thing I've done in months).

Here are my priorities:
-As close as possible to a guaranteed job
-As fast as possible from starting to employment
-As inexpensive as possible to get started
-Long-term growth potential (like I don't need to earn a ton of money now but in ten years I would like to be making a very solid salary)

If it matters, I'm a woman in my early/mid thirties with a degree in English and a Master's in Elementary Education. I have a kid in daycare so I'm not really in a position to take a bunch of time off to start something new and I need to invest my energy in something that is as little of a risk as possible (like, if I could take a class with a guaranteed job at the end making what I make now I'd do it). I live in Washington DC and I've done some basic googling but I don't know where to start or how to tell which programs are scams (or just won't actually equip me with the skills I'll want later).

My questions are:

1) What should I try to learn? What is the right combination of low cost/time barriers to entry and in high demand?
2) How should I learn it? I would really appreciate answers here to be as specific as possible e.g. "This in person course in the DC area" or "By joining this group and doing their online training" rather than "Just find a course" or "They're all okay".
3) How do I get a job once I do this work? Websites? Which ones? How do I convince people to hire me?
4) Alternatively, are there companies that actually train people on this stuff? If so which ones and what is the best way to get them to hire me?

I am aware that any career change will take time and effort and money and be hard so I would really appreciate it if you could be considerate of my feelings and give me good, realistic but hopeful advice and encouragement and provide me with specific suggestions that are understandable to someone who is just starting out. Thank you!
posted by Mrs. Pterodactyl to Computers & Internet (18 answers total) 58 users marked this as a favorite
Before investing a lot of money and precious time, why not take Harvard's CS50 online for free? The point would not be credentialing so much as getting your feet wet and getting a better-informed sense of whether your brain works in suitably programmerly ways.
posted by praemunire at 11:20 AM on June 12, 2017 [1 favorite]

I actually have an email that I share with friends for exactly this type of thing. I forwarded it over to your Mrs. Pterodactyl email address.

To your questions:
> 1) What should I try to learn? What is the right combination of low cost/time barriers to entry and in high demand?
Javascript, since it's the language of web development and, with node js, also gets used on the backend. A lot of places have stacks that are majority JS these days.

> 2) How should I learn it? I would really appreciate answers here to be as specific as possible e.g. "This in person course in the DC area" or "By joining this group and doing their online training" rather than "Just find a course" or "They're all okay".
I learned it at a place called Hack Reactor, that is run by soulless capitalists but none-the-less gives you probably the best education of all the bootcamps. If you want to be introduced to any of the people over there I'd be happy to arrange it. The price is high these days (much higher than it was for me), but is worth it since your earning potential changes so drastically. They have campuses all over but they also have (from all reports) an excellent remote program. I took a loan to pay for mine, if you want I can email you the info on how I set that up.

They also offer a free prep course to get ready that I highly recommend. Maybe even do that before anything in the email I sent.

Two years out of the program, I am a product engineer at a ~500 person startup (company now, I suppose) in New York City and I really enjoy the work. Salary is life changing money (less so in New York, but still).

> 3) How do I get a job once I do this work? Websites? Which ones? How do I convince people to hire me?
https://angel.co/ and Indeed are go-tos. I also have heard very good things about this site. Also, as with all jobs, personal social network.

> 4) Alternatively, are there companies that actually train people on this stuff? If so which ones and what is the best way to get them to hire me?
No, there aren't really. You'd have to be doing it first before a company considers continuing education in the field.

Some caveats: In all the prepwork I've outlined, if you find that you don't enjoy programming, I wouldn't pursue the career change. You've got to like it (though not love it) to get good at it. It's not for everyone.

Also, there's a lot more bootcamps and bootcamp grads out there now, so I don't know how that affects perception in the job market. For me, being more at the beginning of this movement, there was little impact on my job prospects, either positive or negative (besides that people wanted to know that I could actually do what I claimed).
posted by durandal at 11:28 AM on June 12, 2017 [12 favorites]

Also to those who find this question and would like me to forward the email I mention feel free to reach out and I'll send it along.
posted by durandal at 11:29 AM on June 12, 2017 [3 favorites]

I don't have a lot of specific DC-area advice for things like code schools, but I'd recommend getting involved with some local meetup groups or online communities. There's a lot of women-specific groups, which tend to be very welcoming and supportive of career-changers. Here in Portland, I know Women Who Code hosts lots of meetups and networking events, and it looks like the DC chapter has a lot of events geared towards beginners. It's a good way to get your feet wet and also start doing some local networking.

There's also a pretty good Women in Tech Slack channel that might be a good way to find local resources. There's channels for lots of major cities, a job board, and a lot of social channels about various topics and technologies. It's also a really useful back-channel for finding out what different code schools or companies are really like as an under-represented person.
posted by duien at 11:33 AM on June 12, 2017 [1 favorite]

For lowish barrier to entry and high probability of work, maybe try learning how to design and build websites in Wordpress? Good HTML + CSS, basic PHP and a couple of months of building practice sites could get you pretty close to employability in theory, and while Wordpress jobs don't pay super well compared to other types of front end development, I'm pretty sure there's a sizable demand. This would also minimize the actual "programming" you'd have to learn before you had hirable skills.

Alternatively if you like SQL, maybe training for a junior database admin role could be up your alley.

I would shy away from trying to become a general web dev unless you're really willing to put in the time learning -- the technology is changing rapidly right now and good front end devs have to spend a lot of time on continuing education, which is a recipe for frustration for anyone who doesn't truly enjoy the work.
posted by loquacious crouton at 11:46 AM on June 12, 2017

Response by poster: Thank you so much for the advice so far! To clarify, I am looking for skills that will get me a job with an employer, not the ability to do freelance work or start my own business which I do NOT want.

I really appreciate durandal's posts (and email!) although wow, that's a LOT of money and a lot of time (approximately twelve weeks of eleven hour days not including preparatory coursework) -- if anyone could give me a sense of whether this is standard and/or what other options I have that would be great. Again, I have a baby, I can't really drop everything for three months of long days.
posted by Mrs. Pterodactyl at 12:01 PM on June 12, 2017

Oh, man, they really upped the price my god (it is at 17k now? souless capitalists indeed). I have no love for the people who run the place, but the program is what it says it is and the students and instructors were exceptional people. And, even at the price they now charge, it would be worth it. The outcomes for students there are really incredible.

Anyway, I mistakenly linked to the immersive course - the part time course would be much more your speed. From the site:

> For the first four and a half months, the program takes place on Wednesday nights (6-9 PM Pacific Time) and Saturdays (9am-6pm Pacific Time). The second half of the program is centered around project work, and there is more flexibility in terms of how students manage time.

So, to attach some hard numbers to all of this- I took out a 20k loan to do all this (tuition was much less back then, want to say around ~10k), and did it in Austin, Texas, though I wasn't looking for work there. Of my cohort, 100% of people found jobs within 3 months, and the average starting salary was around ~85k, some a little less, some a little more (depending on market they entered). Today most of those in the cohort are making low 6 figures (100 -120k) a year. I just finished paying off the loan I took out, and can say it was 100% worth it even though it filled me with terror at the beginning (though that subsided quickly once the course started).

As to the immersion, no, it varies from school to school. Some are 9-5, some are 11 hours a day, it really depends. I spent 3 month prepping before the pre-course work started, which I think is the minimum. I've emailed a friend who I have been helping through this process to get his thoughts, since he was in the same situation as you are ~6 months ago. I'll post his email here when I receive it.
posted by durandal at 12:25 PM on June 12, 2017 [2 favorites]

I am a professional coder. I've been programming for most of my life (I started back when PCs were only just starting to become a thing). I have worked in DC. I have also done hiring for work in DC. I can take a stab at answering some of your questions, and some will, of course, depend.

In the DC area, if you want to be certain of being able to find work doing coding, Java seems to be the best bet. Most government jobs, especially government contractor jobs, focus on Java as the programming language of choice. More "trendy" companies in the DC area also bring a focus on Python and/or Javascript/NodeJS. Another large pool of jobs revolves around the "Microsoft stack" meaning C# or VB.net languages.

The web development/programming world, in many ways, is a different kind of beast. Some folks are able to start up very quickly in that world... but you end up having to be a kind of jack-of-all-trades in some pretty deep and complicated arenas to really get ahead in it (in my experience). In the long run, I think you'll find it harder to get hired quickly if you focus only on one discipline (Javascript, for example). It's much easier if you are an actual expert at Javascript AND css AND html AND flash/html5 AND a bunch of frameworks, if you get my drift.

I'd recommend focusing on Java, because it's the most used, but also because the skills you learn while picking up Java will transfer with relatively low pain to the Microsoft .NET platform.

I cannot recommend a specific Java training regimen, because I have no direct experience with schools/courses/classes in that area, but I can recommend checking out Java classes on Coursera because in general the quality is high, and also you can do it from home and it's free.

If you pursue a Java route, you will also want to learn about Maven, which is the primary Java build tool. It's difficult to pick up at first, but once you figure out what it's driving at, you will instantly add significant appeal to your resume for entry-level Java jobs.

Other things that will help you stand out in the entry-level developer crowd are SQL skills, so I recommend you pursue developing those further as well (government and contractor devs use oracle, microsoft sql server, and mysql the most, with postgres starting to make major in-roads). There are also some decent free Coursera courses SQL. Any experience in any of the web development disciplines are a help too. The Spring framework (for Java) right now is pretty popular in a lot of DC development shops.

I wish there were some way to pick "the best" path, but it's all judgement calls and what kind of work you're looking for that will drive your decisions.

You're welcome to memail me if you want to ask more detailed questions on any of these topics.
posted by Lafe at 12:40 PM on June 12, 2017 [10 favorites]

have automated a couple of my current job's more tedious tasks using iMacro which was much more fun than actually doing them (seriously, the most enjoyable work thing I've done in months)

This is extremely promising, coding-wise.

I am old enough that no-one learned to code from classes when I was a baby programmer. Mostly people found a piece of code that was doing *part* of what they wanted and committed midnight trial-and-error on it with thirty pages of language documentation. You sound like you are already at that stage, and StackOverflow plus a friendly-enough meetup would help enormously. You could automate everything in reach at your job, and then maybe your job would make a new more skilled job for you, or maybe you'd have to jump ship with the achievements on your resume.

BUT although that still works sometimes, I am told a lot of jobs need a certificate. You could probably teach yourself and then get whatever cert is easiest/cheapest. I have heard good things about Western Governers' University for bookkeeping and management, in that you can test out of everything you've already learned, and it's pretty definitely not a scam, but I have no knowledge of its IT and programming degrees (though, looking it up, you get standard certifications which might be all you need).
posted by clew at 1:30 PM on June 12, 2017

Code for DC! They're super beginner-friendly and will allow you to work on actual community projects while learning stuff. Also an excellent networking opportunity because lots of the project heads work in the industry locally. (I've been on and off involved with this group and really need to pick that back up.)
posted by capricorn at 2:06 PM on June 12, 2017 [1 favorite]

I am almost 35, have a BFA and slightly nerdy office job, know HTML/CSS well and am teaching myself JS, and have a 2.5 yr old in daycare. Here are some things I've found:

I joined the DevChix list group which has been informative; I've also listened to a lot of the Code Newbie podcast, and reached out to people and asked questions. Like you, I have a "baby" at home and for now am definitely the bedtime parent - this makes Meetups and the like difficult so I've been doing what I can via social media. I recently went to a Rails Girls day, which was a Saturday and was great to go to - if you can't make evening meet-ups try looking for Rails Girls or similar.

Most of the mentors at the RailsGirls day I went to had gone to General Assembly so I emailed them about the schedule - they were very responsive and quite open to my leaving at 5, doing the homework at home after bedtime w/support via slack (or similar), and coming in a little early for my one-on-one coaching. They also have an optional program during lunchtime for job hunting that supposedly has a very good success rate. (Caveat: I'm in Sydney, so YMMV?)

FlatIron school has quite a bit of prep work involved on the application side, BUT their distance program guarantees a job and all the research I've done it seems like a solid school. It is the only distance program (I've found) to do so, and since my options here are limited and I'm unlikely to move, it's a top contender for me. They also have some scholarships, both merit and diversity (women).

If you want to DIY it, I'd go with FreeCodeCamp - which I've also heard a lot of good things about.

Frankly, I think I need the structure of paying for it. My spouse and I both work and goals we set that are free (let's join the community garden!) don't stick at all. However "sh*t swim class is today and we *paid for it*" or "I am going to yoga - I have a pre-paid pass" - that stuff always gets done. ymmv, of course.

One of the appealing things about this, for me, is the possibility of remote work - I have a long list of sites specifically for looking for remote work. If you're interested, please memail me and I'll send it along. Personally, I'm only looking at bootcamps that have some sort of job guarantee or hire program, which I intend to really push.

One of the mentors at the RailsGirls day had convinced her work (a major university) to send her to General Assembly and pay for it. I'm baffled. No one in my department seems to know what coding is or how the internet works or why my job might be related (totally is!), although I might approach learning & development once we're done restructuring.

Lastly, I have a few emails from people like durandal - MeMail me if you'd like me to forward them. And of course, email me any time or if you want a coding buddy or to do some pair programming at any point!
posted by jrobin276 at 7:34 PM on June 12, 2017 [1 favorite]

Please don't learn Java. The companies that hire Java programmers in DC largely treat those Java programmers as expendable and interchangeable. Companies that do that (with any language) are mostly racing to the bottom, so the salaries are terrible and the code you'd have to work on is awful because it's written by the people who'd take those jobs. This is not to malign the language or the developers who actually use it well, just to say that DC's job market for Java developers is not one I'd recommend. I would not waste time or energy on that.

Since you have some HTML and SQL, my first bit of advice would be to burnish those. What would happen if you told your employer you wanted some official SQL training since you already manage the database? Do they have a training budget, or is it so small of a nonprofit that's out of the question? Do they like you? Do they know you want to move on? (I ask because some friends in the nonprofit world have been helped along in their careers by managers who got it, but I don't know if that would apply to you).

Do you know anybody who does Meetups? My schedule more or less prevents me from attending any regularly, but I'd recommend tagging along with a friend (or going cold to a Meetup and then making a friend) and feeling out the waters that way. Javascript is everywhere so that might be the first language to look at learning.
posted by fedward at 9:38 PM on June 12, 2017 [1 favorite]

Hm. I wonder if you'd be interested in being a Salesforce Developer? You can get yourself a free developer license and then teach yourself a lot in Trailhead. Much depends on how self motivated you are and how much time you have to dedicate. Good on both counts and you can teach yourself a ton for free. For hands on, after you've developed skills, you could possibly volunteer for a nonprofit. Good low-stress chance to flex your muscles, and also get the discounted rates for the exams, and the Dreamforce conference.
posted by AnOrigamiLife at 12:12 AM on June 13, 2017

AnOrigamiLife's comment about salesforce got me thinking about CiviCRM administration as a similar first step for you. There are a lot of tech consultancies that set up customized CiviCRM installations for non-profits, so that might be a good bridge between managing the front end of a database, learning the back end (customizing reports with SQL and such), and then eventually learning to code to really customize it (it's open source). If you like the non-profit world, that might be a satisfying career transition.
posted by snaw at 12:55 PM on June 13, 2017 [1 favorite]

I'd avoid Java and C++, as those tend to benefit from more theory work than you've got time for (unless you went back for a undergraduate minor in this, which would be enough.)

Javascript/HTML/CSS, or Python/Data Science would be two possible routes.

If you were near Seattle, as you've said you're a woman; there's a free training course for this that's pretty damn solid.

posted by talldean at 3:30 PM on June 13, 2017 [1 favorite]

This question was linked to in the Women Who Code newsletter - an excellent resource! If anyone wants a copy PM me and I can forward it to you.
posted by jrobin276 at 3:56 PM on June 14, 2017

From my friend:

Things to know about getting into coding from someone six months into coding:

People will tell you coding is difficult to learn and they are correct. Get used to messing up and running around in circles. As long as you keep working at it you'll find the frustration and anxiety turning into the answers you needed.

Coding is just another language where you learn ways to talk to computers and the other people talking to computers. You can only learn so much from books. Once you have a basic understanding (doing the CodeAcademy intro exercises) the best way to excel quickly is to dive in and start trying to write toy code.

Don't get overly invested in any one learning resource- there are many more out there than you think. There are a lot of different ways to write one piece of code and using different learning sources will help make that more apparent.

You are trying to learn a real skill and learn it well. There is no easy-hack to learning this stuff. Focus more on making sure you understand the solutions you come up with as well as the alternative solutions that others have found. Make sure to exhaust every option you can think of on your own before copy/pasting your problems into google. If you embrace the fact that learning is supposed to be hard it will make your successes so much more enjoyable.

Learn basic terms: https://www.codecademy.com/learn/learn-javascript

Once done with CodeAcademy basics start visiting sites for bootcamps that interest you and start doing the prep work there.

Eloquent Javascript - good book on Javascript and principles, also has exercises with every chapter. Get a big picture view of code

Codingame - Learn coding with games
posted by durandal at 6:03 PM on June 14, 2017 [2 favorites]

Oh hey, I'm gonna send you an email because I'm not sure you're gonna see this answer on an old question, but I've hired a bunch of developers most of them early in their software careers. And I have thoughts!

- First, if you're writing HTML, simple SQL queries, and macros you already are a coder. The question is how to become a better and more marketable one.

- Almost any job in this field has long-term growth potential so long as you're committed to keeping up with changing technology.

- I think CiviCRM and Salesforce are interesting suggestions because it's probably not too hard to get started just clicking around but there's still a path to where you're doing fancy custom integrations and development. (Of the two, I'd pick Salesforce.)

- My usual advice for learning programming is to try to build something useful/fun that you yourself would use. Maybe your own blog from scratch or a simple iPhone game. This may influence your choice of language/platform. Salesforce is great and I personally know people who enjoy working with it... but not a ton of people implement CRM solutions for fun in their free time.

- Javascript is a fine choice. It's a popular language and easy to get started. Technically you cna do anything with Javascript, but realistically it probably puts you on a path to doing front-end web development. Implementing designs in HTML and using Javascript to make them interactive.

- Speaking of web development, Wordpress (which uses the PHP language under the hood) is another good option. As with Salesforce, you can get started by kinda just pointing and clicking around, but you can also go super deep into it as you get more experienced. And it's super popular everywhere. Drupal is also pretty big in DC in particular because lots of nonprofits and campaigns use it.

- In terms of guaranteeing a job, I don't think these classes and code academies and bootcamps are worth the cost. The good ones help you learn the subject matter quickly, but I don't think they add a ton to your resume.

- Tons of good meetups in DC. You could sample a few and see if you find a crowd you like.

- The main qualities I look for in a coder are smarts, good communication skills, and self-motivated.

- For me, experience counts much more to me than any credentials. But it doesn't have to necessarily be paid-for job experience. If you build something neat on your own or with a group or contribute to an open source project, that all counts.
posted by meta_eli at 8:31 PM on July 26, 2017 [2 favorites]

« Older First-time Maui trip, seeking advice on Hana and...   |   Kicthen Update - as cheap as possible! Newer »
This thread is closed to new comments.