How long should I study web development before looking for a job?
January 8, 2015 12:13 PM   Subscribe

Due to unforeseen housing circumstances, I didn't get to spend last summer studying web development on my own time like I wanted to. How many hours a day should I study, and how many months will it be before I can apply for an entry-level job?

I want nothing more than a career in web development. I live on a monthly disability pension, so I have all the free time in the world. I plan to study through a combination of free online courses and workbooks. I also want to join a couple of online communities for beginners like me and eventually network with local folks. If it matters, I expect to focus on Python, JavaScript, HTML5 and CSS (refreshing my knowledge on those two), jQuery, PHP, and MySQL. Maybe some Ruby on Rails.

How many hours a day should I reasonably expect to spend studying and for how many months in order to secure an entry-level job and finally escape the poverty of living on disability? Would six months of study at six to eight hours a day, five days a week be a reasonable timeframe? I'm also in my late twenties; how likely am I to face ageism during the hiring process? Any advice is welcome.
posted by quiet earth to Work & Money (12 answers total) 33 users marked this as a favorite
 
focus less on time and more on portfolio building.

Create a project for yourself, learn all the skills necessary to finish that project. Continue to do new projects until you aren't learning anything new anymore. At the end if it you'll have a nice portfolio that will help you land a job.

How much time it takes you to do this depends on how quickly you pick up the languages.

Web design, in my experience, is not committing syntax to heart, but knowing when and where to use a table vs a div. What the difference between javascript and jquery is, things such as that. Google will help you find the actual syntax.
posted by royalsong at 12:40 PM on January 8, 2015 [9 favorites]


I'm going to be honest and say it's going to be hard getting your foot in the door being self-taught, but it's not impossible. I think your best bet is to study like mad and create an online portfolio/github account of the cool things you've created. This, combined with some degree of social networking with developers in your area, will at least get you some visibility. I'd also concentrate sending your resume/portfolio to smaller shops that will less likely to have an HR gatekeeper between you and the hiring manager.

I personally know a guy who was hired at my company with zero experience and zero education because he was able to take an SDK we produce and come up with a nice demo application with minimal hand-holding - he was 32 at the time.
posted by Fidel Cashflow at 12:45 PM on January 8, 2015 [3 favorites]


Actual time doesn't matter. Build 10 to 20 different websites, each one encompassing one or more new concepts. When you've got a nice set of things, you can show it off to people and use it as a portfolio.
posted by doctor tough love at 1:04 PM on January 8, 2015 [2 favorites]


Once you have some skills under your belt, you might also consider investing in a few certifications for the languages / applications that are most important for jobs you would want. This could be anything from the W3Schools certifications to those offered by Adobe and Microsoft. Most exams cost money but they would give you substantive entries on your resume in place of a formal education.

Also, don't discount the possibility you could make a living doing freelance web design - either permanently or until you find a 9-5 you want and can get.
posted by aught at 1:08 PM on January 8, 2015 [1 favorite]


Best answer: First, I don't think ageism is a thing in web development. It may exist in design but even then I think you'd have to be quite old before people would question your suitability for the job (probably 50s or older at least?). Remember that web development has been around for over 20 years now (yes, really). I'm going to assume that you're not concerned that you're too young to be in web design!

More likely, depending on the form of disability you have, you may experience ableism. For example, many development firms are small and so not bound (in the US at least) by requirements to accommodate the physically disabled (it's not clear from this question at least the nature of your disability).

Honestly I do not think you can make any statement whatsoever about how long you should study programming, and *especially* in terms of being able to get a job. To begin with, I don't know of many positions where you will tell them you spent a certain amount of time studying something on your own time and that will be sufficient to get you the job.

For web development, anyone hiring you will want proof that you can do what you say you can do. This means setting up an online portfolio that demonstrates your abilities.

My recommendation, in terms of skills that will be appealing for a general, entry-level web development job:
  • If you have a background in HTML that is a few years old, definitely look at new developments in HTML. If you want to really be a jack-of-all-trades go ahead and learn all the technologies if you feel up to it, but otherwise I would recommend you choose either the data track or the visual track. If you choose the data track, your focus will be on learning the semantic components of HTML5 and creating visually comfortable websites, and integrating those websites into technologies that move, organize, transmit, and store data. Technologies will include offline/local storage, AJAX, maybe WebSockets. You'll want to pay attention to metadata standards as they emerge; they will help your website work really really well with search engines and social media. I'm less familiar with the visual track myself but it would probably include comprehensive practice in design (including on-paper drawing practice if you're not already good at sketching), creating responsive and engaging pages, and keeping up on the latest trends in design. Technologies would include in-depth CSS3 (and learning one or more CSS preprocessors would be recommended as well) and maybe Canvas. For either track, take advantage of HTML5's much richer selection of tags and attributes. For example, don't both using <input type='text'> for a phone number when <input type='tel'> is much more specific. Don't use a bunch of <div>s for the navigation section, make use of the <nav> tags.
  • For learning Python web development I'd recommend Django. There are other interesting frameworks out there but it's by far the best and has the most users. Also in general I find the quality of code-writing for Django libraries is relatively high. Avoid paste at all costs; it is awful
  • For JavaScript, become familiar with jQuery. There are positive things to say about writing vanilla JavaScript but the truth is most jobs you will get will expect you to be able to use it and it will save you a lot of time. If you don't know how to use jQuery to pull data from a server, manipulate it, and post it back you shouldn't even bother putting JavaScript on your resume as that will probably constitute 90% of what you will be using JavaScript for. Become very familiar with AJAX (really should be called AJAJ since the last letter stood for XML but everyone uses JSON as the data container these days).
  • I would recommend against learning "MySQL". You want to learn SQL, period, and learn to write it cross-platform so that it doesn't really matter which database server the company who hires you uses (it may be SQL Server!). Many people frown on MySQL these days actually and prefer PostgreSQL (I've had good and bad times with both). You should know how to set up both MySQL and PostgreSQL as servers, how to connect to them, and how to query them via a web app but beyond that shouldn't focus too much on them. You are not planning on becoming a database administrator, so your focus should be on the language all main relational databases use, which is SQL. I remember Learn SQL in 10 minutes (really longer than that; it's just that each chapter should take around 10 minutes to read or less, so you can really zoom through it) as being quite good for this, not sure if it is still in print. Unless it's been updated it is very old but that is fine as there have not been many innovations in plain SQL (although there have been features added to various databases — as a web developer you should generally try to ignore them; your goal should be platform-agnostic code).
  • For PHP, I would skip full-on development all together and instead do a WordPress install and play with it heavily. I am sure there are still plenty of PHP shops out there and if you find you love PHP you can always move ahead with that, but I think you will get more traction out of being able to be very handle with a WordPress install instead, since nearly *every* company eventually sets up a blog, and a vast majority use WordPress. Being able to create or customize plugins (for example, to integrate the company's existing user system into WP's authentication) will be a really useful skill, as well as an ability to make or modify themes. PHP may have changed since the last time I worked with it extensively, but I remember it seems to be designed to always give you more than enough rope to hang yourself.
Things you don't mention that you must learn:
  • Get familiar with writing code in a plain-ish text editor as well as remotely via ssh and using an IDE (integrated development environment). I won't suggest an IDE as this is practically a religious thing. I will just say that if you are not very tech savvy now, I would steer you away from vim or emacs as you will spend a long time just figuring out how to type your code out and get it to save to a file. Whereas a less efficient but visual, GUI-based IDE will at least make it easier to hit the ground running.
  • Source control. If I was responsible for hiring I wouldn't accept anyone who didn't have some familiarity with it. git is the one everyone will expect you to know. You should have passing familiarity with mercurial since it's used a bit with Python. Both git and mercurial have similar but not identical commands. You should be able to create a remote repository, clone it, make changes, commit those changes, push them to the remote repository, and you should be able to create a new branch, check it out, and merge it back into the main code.
  • Integration with major online players. You should be able to create code that posts content to Facebook and Twitter (this is probably enough; the other sites will be similar in the process). You should be able to create code that allows login via Facebook, Twitter, and Google (I think each uses a different technology so it's worth setting this up for each one). You should be able to pull content from Facebook and Twitter as well.
  • Testing. Start out on the right foot — always write tests for your code, ideally before you write the actual code . If you do this it will set you apart from many programmers.
Set up an account on GitHub (companies will actually look for you there). Unless money is very tight I would invest in one of the private plans. This will allow you to keep your code base private while you are learning (so that they don't see your goof-ups). Then once each project is in a more stable state, make it available as a public project on GitHub. Each project should correspond to a site you are hosting.

For hosting, get a single Amazon EC2 T2.micro instance. Unless one of the sites you make for practice becomes popular, a T2.micro is more than enough hosting power for a few small websites. I would recommend running them off of Apache, not nginx, because it's easier to configure (you generally don't have to set up proxies which is more complicated). Actually a lot of Amazon's offerings are free below a certain amount of usage. So you can also set up a very small database server for free too I think. Check with the pricing carefully; although each cost is very tiny (e.g. $0.017/hr), those costs can add up.

So you have your GitHub set up with 4-5 projects with well-written code, with 4-5 corresponding websites for each project. Each project showcases different skillsets: one is just a well-designed page, another is a Django-based web-app with a robust JavaScript front-end, another is a modified WordPress install with custom-written plugins and a customized theme, and so on. If you can point a prospective employer to these and they are of good quality, you will be in good shape to be hired.

Good luck!
posted by Deathalicious at 1:24 PM on January 8, 2015 [43 favorites]


Three months of study and practice, but possibly quite a bit less so please be out talking to people before you think you're ready.
posted by michaelh at 1:42 PM on January 8, 2015 [1 favorite]


Response by poster: Thank you all for your excellent answers so far! I'm very glad I posted this question. I should add that I have several disabilities, but the most debilitating in terms of working 9-5 is delayed sleep phase syndrome/disorder. I am an extreme night owl and mornings are impossible for me, but I can work well later in the day and even late into the night. I'm not sure how well I'll fit into a team environment if I'm only awake at eleven (at the earliest). Perhaps I'll find some way around it. I suppose we'll see.
posted by quiet earth at 1:57 PM on January 8, 2015


I run a web development company. I would hire you into an entry-level/intern-ish position if you could demonstrate:

0) Familiarity with terminology/technology in broad terms.
1) Ability to teach yourself
2) Ability to contribute productively to teams (e.g. contributing to projects over github)
3) Ability to direct yourself - ie to see the most useful thing you can do and to spontaneously offer to do it
4) Ability to ask clarifying questions, and for help when you need it, but only when 1) has failed.

You'll learn 10x-100x faster from working in a team than on your own, so perhaps consider unpaid internships as a way of accelerating the process?
posted by cogat at 2:09 PM on January 8, 2015 [3 favorites]


Also re. your last answer, companies that value developers will find a way to support those who work best outside of 9-5 hours. But perhaps also look for an employer in a different timezone?
posted by cogat at 2:12 PM on January 8, 2015 [1 favorite]


Depending on where you live, you may be able to hook up with a local Women Who Code or Girl Develop It chapter, along with language-specific groups like RailsGirls or PyLadies. You'll meet wonderful, welcoming folks who love helping newbies out and will be more than happy to mentor you throughout the learning process.
posted by evoque at 4:32 PM on January 8, 2015 [1 favorite]


you should start looking for contract/project based work after a few months of study to get references and add to your portfolio - it will be easier to secure than a full time job right away and an easier way to accommodate your sleep schedule.
posted by slow graffiti at 6:02 PM on January 8, 2015 [1 favorite]


...delayed sleep phase syndrome/disorder

I also have DSPD, but I find it's not a huge issue working in tech. For example, today I went to the office at 1PM, left around 7:30 to continue working from home, and am finishing up my work day around 12AM. I'm not the only one, and there are people in the company working all the time at all hours as it suits them.

It depends a lot on company culture, but many teams are globally distributed with many people working from many timezones, so it doesn't matter anyway. Also even if everyone works in the same place, flex time is a fairly common benefit, especially in startups. I'm always super upfront about it when I interview, and it's never been a problem beyond "oh, okay, we can just schedule meetings for later".

Big companies like Github, Mozilla or Canonical really push this type of workflow, but there are tons of smaller companies that embrace asynchronous working. There's lots of jobs and if you are passionate, motivated, able to learn fast, and most importantly are not a jerk, you'll find one.

Your profile says Canada. Are you close to Toronto? If so I would recommend taking a look at Bitmaker Labs (when you're ready) and Ladies Learning Code (right now). There's a large tech community here, so if you can network while you learn a thing, this will help greatly with finding a job.
posted by tracert at 7:02 PM on January 8, 2015 [2 favorites]


« Older Looking for book recommendations on coaching and...   |   Can I financially divorce my husband? Newer »
This thread is closed to new comments.