

Ask HN: Is a completed course on codeacademy enough to get  a programming job? - kevbam

Hi,
I am currently doing the Javascript course on codeacademy. I am about 40% of the way through the course and I am moving fast. I really enjoy the challenges and feel I am learning a lot. I have also signed up to the codeschool objective C course.<p>However, I was wondering if having completed the Javascript course really means anything to a potential employer? Would a potential employer hire me on the back of completing a codeacademy course? Of course it would help with other tech jobs and with my own projects, but would it get me a job as a programmer?Any feedback you could give me on this would be greatly appreciated.
======
ColinWright
I've been helping someone recently who says he's completed the Python course
on codecademy. I have no reason to doubt him, but he is confused on important
issues, and cannot write code.

The evidence I have is meagre, but suggests that a codecademy course is not
necessarily worth anything.

Of course, it may be that you have aptitude, and the Codecademy course is
exactly what you needed to get you started, and that you can (or soon will be
able to) program, but I wouldn't hire you based on completing a Codecademy
course. I probably wouldn't even telephone interview you on that basis.

I'd want to see something you've written, then I'd want to write something
with you. Then I'd want to see you think about an appropriate problem.

~~~
kevbam
Thanks Colin, appreciate the advice!

------
gexla
An American friend of mine living in the Philippines with nothing much to do
landed a gig for $100 to build a landing page using a WYSIWYG HTML editor. He
had only ever built a few sites using this editor and knew next to nothing
otherwise. I think he was even able to complete it within a few hours. So,
yes, as long as you are willing to spend time to do something for somebody
else who doesn't have that time, then you can get paid.

If you are looking for an actual full time job, then this is highly unlikely.

Web development shops don't do training. They are looking for people who can
hit the ground running with little or no help. Making a web development shop
work is difficult, and someone with little experience will only cost the shop
money, which creates a burden for the business. They also need people who are
well rounded, so that one person can do most of what they require, what's left
over can be outsourced.

Startups are much the same as web development shops. They don't have the
resources to train people and they need for their developers to be well
rounded.

As a JS developer you would be a specialist, and specialists can really only
get freelance work from development teams who don't have enough free resources
in that area to finish that part of a project but don't have enough work in
that area to justify hiring someone full time.

Large established businesses which have a lot of resources (or startups which
are very well funded) are in a better position to train people. They may also
be more open to doing so if they have to quickly ramp up their development
staff. But you probably won't get into a Facebook or a Google without
excellent credentials (graduating from a big name school if you don't already
have experience) and getting through a daunting interview process.

There are exceptions out there. See hungryacademy.com (for LivingSocial) as an
example, but this is not the norm.

The easiest way to land work right away is to go the freelance route.
Unfortunately, this can also be the most difficult route to make a living as
you would be running a business and managing cashflow as opposed to receiving
a regular paycheck. With an employer, you can get paid through your learning
curve, but with freelancing your learning curve may result in being late on
rent (and figuring out how to make freelancing really work can take years for
some people.) This is also a bit of a backwards route because ideally you
would first become an expert by learning from a successful web development
shop before striking out on your own.

However, at the end of the day, we are all hustling. We need to somehow get
from point A to point B and by sheer willpower we will figure it out (or get
replaced by someone who will.) You need to also be hustling and eventually you
also will find a way.

My suggestion.

The next logical step from JS is to make sure that you are functional in
HTML/CSS, as that gives you a solid foundation for front-end web development
work. At this point, you would still be a specialist, so you would need to go
further. The HTML/CSS is often done by designers or can easily be outsourced
because there are a lot of solid people in this area. So this alone won't land
you a job unless you are a solid designer. Again, the details vary depending
on the employer.

Because you have mentioned objective-c, I'm assuming that you are not a
designer and would need to go the coder route. So, you will need to augment
your front-end skills with some back-end skills. As a coder, you don't need to
be a wizard with HTML/CSS because of the already mentioned reasons. Just be
good enough that you can put together those elements if you need to. You now
need to select a general direction for the back-end. PHP, Ruby or Python are
the most likely choices here.

You need to consider potential markets before making a decision on your first
back-end platform. The market for PHP developers is huge, but there is also a
ton of competion. The market for Clojure developers is relatively small, but
you also have less competition. Additionally, you could further drill down
into specializing on specific content management systems, such as Wordpress,
or frameworks, such as Rails. Take a look through available jobs (as well as
the budgets and the competition for these jobs) at Elance and Odesk to get a
feel for this.

Once you have started to learn your chosen platform, you need practice every
day until you find that you are able to take care of the basics without having
to look through documentation at every step of the way. At this point you are
functional and you need to start publishing some code to Github as potential
clients or employers will ask to see samples of what you have done.

Your next task is to come up with a project where you take care of everything
from A to Z. If you have followed the above advice, then this is probably a
web application. Make sure that you finish the application and get it shipped.
Do some light promotion to get a little traffic. This will give you an idea of
what the entire process of creating a web application requires and will help
fill in some of the gaps that the above advice didn't cover.

Congrats, you are now functional enough that you can start considering your
options for building an income. You now need to start networking (actually,
start this process as early as you can.) Find the communities for your chosen
platforms / markets and start participating. In particular, look for places
where paying clients are part of the community.

Notice that I haven't touched on Objective-C. You could probably take the same
route with Objective-C but I don't have the same experience to make
suggestions in that area. Javascript is a scripting language for web
applications, so I would suggest that since you put in that time that you
continue following the web side of development. Go through my suggestions and
then make the decision of continuing with web development or making the move
to native mobile apps. Personally, I wouldn't want to get started with mobile
apps without having web development experience under my belt.

~~~
thoughtpalette
Excellent and informative response.

------
bulltale
You can compare finishing the course on codeacademy with finishing any school
or course; the one hiring you will ask two questions: 1) What is the quality
of this course? 2) How can I judge the applicant's performance against the
quality of the course?

For 1) you have an issue: Codeacademy is so new, that the quality of the
course cannot be determined by the quality of previous "alumni". The one
hiring you has to make an educated guess. He can look at the courses and
estimate the quality himself.

This makes 2) hard too, since he will not know if finishing this course in
say, two weeks, is excellent or subpar.

It will probably convince the one hiring you that you have a basic command of
javascript, but you really need to develop something that shows how this
command is rated outside the course.

    
    
      - Submit patches to open source js projects and get them accepted
      - Answer questions on http://stackoverflow.com/questions/tagged/javascript
      - Build a js library
    

This will help validate your codeacedemy skills.

~~~
kevbam
Thanks bulltale, very good advice there. Appreciate the help!

------
robinwarren
As a manager who hires developers I'd say no. Mainly because any single thing
isn't going to be enough to get you a job, or possibly even an interview.

My suggestions:

1\. Put up as much of your course work as possible on GitHub. This gives an
employer the chance to look at your code, and shows you can use Git.

2\. Take on a project to build something. Possibly your course work covers
this, I don't know. I'd suggest some simple app/website/gizmo which actually
does something. It doesn't have to be unique but should show you can build a
larger project without creating a confusing mess.

3\. Rinse and repeat. The above would be enough to land you a junior developer
job assuming you're actually good enough at the coding. You can always learn
more and more, ie security, scalability, design etc. I'd look into any of
those if they interest you. Otherwise wait until you need them.

I run a developer jobsite btw, the link is in my profile.

~~~
kevbam
Thanks Robin, I will check out your job board and I am going to start posting
to GitHub.

~~~
genwin
I concur with Robin. Best bet is a working website with publicly viewable
code. You could show others online the code first, to get ideas on how to
improve it. Every good developer continuously learns, to improve.

------
j2bax
This is from a small 18 man shop... Generally we hire based on potential as
judged by our lead developers. Most of our best talent has been nurtured right
in house. We find that this is generally less expensive and it fosters much
better loyalty. We have developers going on 7+ years with us. Some of our
worst experiences have come from hiring seasoned rock stars that feel entirely
too entitled. This isn't to say there aren't many seasoned pros that are still
humble enough to work with, we just havent had a ton of luck with them.

That said, it would depend on our current work load and how much promise we
saw in you based on what you've done so far. your pay would most definitely
start low (probably around $16.00/hr) but based on progress we'd advance you
pretty quickly.

To answer the question... I doubt I would hire you solely based on your
codecademy course work. I'd be looking for a website that you've applied your
learnings to.

------
yields
I wouldn't hire someone that complete a course on codeacademy, and doesn't
have anything to show me, if he has open source projects and i like what i
see, i would hire him.

~~~
kevbam
Thanks for the feedback, so you think adding code to github or building a
websites is essential?

~~~
billswift
Evidence that you can actually do the work is what is essential, those are
only examples. Generally, the broader and more interesting the work at the job
you're applying for, the broader the examples of your work, and other
evidence, like working an example problem(s) in the interview, will be
required.

The important thing for the company is that you provide more value than you
cost, so they try to weed out people that either can't do enough work quickly
enough or will require too much hand-holding to be practical in their work
environment.

