
Ask HN: Has your company ever hired a self-taught programmer? - nsheth17
Like one from Coursera, or from some complete no-brand school. Did they work out?<p>Also a follow-up. How did they&#x2F;you get your foot in the door? (I&#x27;m trying to get my first job as a programmer after teaching myself and building things over the last year to year and a half.)
======
mindcrime
I'm more self-taught than formally educated, although my background includes a
mix of the two. So, in a sense, I hired myself at Fogbeam.

As for how you might go about getting that first job... I think one of the
keys is "build stuff". I mean, it's cliche to talk about "Github is your new
resume" but there is a lot of truth to the idea that "code talks, bullshit
walks". Pick a project of some sort that interests you, and start building it.
So much the better if it's something you don't feel totally qualified to build
yet.

When you go in to talk to a prospective employer, if they're smart, they'll
dig into your project and use that to help get a good feel for what you are
capable of. It's OK if it's not perfect, as a smart employer will understand
that you're green, and if you show the ability to actually ship something, you
will be in good shape.

Beyond that, I'd say one top hint is this: Be ready to defend the decisions
you made building your app, with reasons beyond "Because I heard X was cool on
Hacker News". If somebody asks "why are you using Angular on the front-end and
a REST backend built using Sling" then have some meat to talk about. If
somebody asks "how could module FOO be implemented in a functional language?"
(assuming it's not currently) be ready to talk about that. Better yet, be
proactive... a conversation like this is very valuable:

Interviewer: Why did you _X_?

You: Well, I thought about _X_ , _Y_ and _Z_ , and each has it's pros and
cons. I would have gone with _Z_ if this app were meant to scale to millions
of users, but since it was mainly a learning project, I went with _Y_ because
$WHATEVER. I kinda ruled out _X_ early on because $SOMETHING.

Letting passion show is good too. If somebody asks "Why did you build a
machine learning library?" it's good if you make it clear that you did it
because you are genuinely enthusiastic about machine learning and wanted to
get some hands-on experience implementing the algorithms, etc., etc. It's not
so good if your answer is "Well, it seemed like the kind of thing you could
make a lot of money from". Not that wanting to make money is bad, mind you.
But a genuine passion for a topic / interest area is much more interesting
that strictly financial interest, IMO.

Anyway, build stuff, explore your interests, read and learn as much as you
can, build more stuff, and you'll find something.

~~~
notduncansmith
+1 for building stuff. As a fellow autodidact, I cannot stress enough the
importance of proving that you can actually build maintainable software.

To put this in perspective: typically, a degree is seen as proof of some basic
level of knowledge. XYZ University wouldn't have signed this piece of paper
unless you had demonstrated the ability to pick up and apply (at least some
of) the programming/CS concepts required to be effective in a professional
development environment. As a self-taught developer, until you build
something, you lack this proof. Once you ship some code, though, you have
concrete evidence that you can point to and say "See? I know what I'm talking
about!".

By the way, the big secret is that this is actually _much more powerful_ than
a degree; take advantage of it! If you can show employers that you can
actually write good code, you'll have a huge leg up over the guys and girls
that think they can just rest on their shiny CS degree (at most companies
worth working at, that is).

Hacking on open source projects is great as well, because it demonstrates the
ability to work well with others - something I found a lot of concern about
during my latest job search.

------
jmathai
Landing your first job is the toughest but afterwards your portfolio should be
sufficient for many jobs.

I suggest working on your portfolio as much as possible. It's the closest
you'll get to having real life work experience. Hack together some projects
you can link to from your resume. Then market yourself online using a personal
site you can reference when job hunting.

------
tptacek
Yes. Yes.

(Not counting me & Dave, two of our three founders, neither of whom have any
college CS).

------
smileysteve
Yes.

For the most part it's going to be about as successful as any other candidate.

What I've recommended / done before is have this person serve more of enhanced
technical support role, while also taking part in code reviews and ideation.

The biggest threat is that they have very little knowledge of what's happening
under the hood, or that based on their course don't truly understand core CS
concepts like inheritance, abstraction. This can be really dangerous with PHP
developers (whether educated traditionally, by a business, or on Coursera /
CodeAcademy) where people teach various levels of frameworks.

------
gumballhead
I have an economics and accounting degree, and taught myself to program at my
first job as a Business Analyst. We were using some terrible off the shelf
vendor product for business intelligence. I knew I could do better, so I built
one.

They never retitled my job, so I went looking for a real programming job and
got one at a YC company. In my interview over Google hangouts I screen shared
a demo of what I'd built.

As long as you can prove that you can build software, you don't need a degree.

------
heynk
I have 2 years of a BA in Economics. I started teaching myself programming
when I was 18, starting the summer before undergrad. I got an internship at a
startup as a "Biz Dev/Marketing intern" and mostly produced content, but I did
a lot of data-driven blog posts (like pricenomics posts), which allowed me to
get into their codebase and database and sort of integrate myself at a very
slow pace. I would 'fill in' for baby programming tasks like adding Google
Analytics event tracking to a button. I kept creeping away from Marketing and
towards Code and after 6 months I was 100% a "programming intern". At that
point I was still a beginner but I definitely provided value to the team.
After another 4 months my boss once said "If you want to work here full time,
you can". 2 weeks later I was bored and annoyed in class so I dropped out and
took him up on the offer.

After that, it's smooth sailing. Once you have just one job as a "software
engineer" people don't pay much attention to the education part of your
resume. At this point, your perceived quality is based pretty much entirely on
past projects - this means both open source projects and your past employment
history.

During interviews, employers will be hesitant to believe that you have strong
fundamentals (which is usually true), and they may push a little more than a
CS student. Even though employers readily admit that 'implement a sort
function' isn't real life, they will ask you to do it because they just want
to know that you have a grip on things like O Notation (this comes up pretty
much every time) just so that you know how to actually 'think' about a program
and give a thought to performance, as most self-taught programmers don't. I've
only been rejected by one company that interviewed me, and during those coding
interviews I admitted to having no idea what I was doing while writing a sort
function (even though I did write a bubble sort) and had pretty much no
knowledge of O Notation. They said they were 'looking for someone more senior'
and they were right at the time. So basically, just know that even if you are
a very pragmatic programmer who can build anything, you will still be tested
on fundamentals and it is important.

I should mention that I got my first internship through HN's "Who's Hiring"
thread. Those are the type of companies you should shoot for.

------
cik
No only have we - I'm self-taught. That being the case, I found it extremely
useful getting my university degree online, whilst already working. I just
found that without the years of experience - the degree opened more doors.

So even if you're self taught, even if you have that first job, the rest of
the paperwork can only help open doors in the future.

------
dlhavema
yes, my last job hired a developer that was very successful (million dollar
plus business) in the early days of personal computing selling educational
software, disk duplication services and other mid-80's software stuff. bad
financial management/planning later made him look for work :(

He was a stand up guy, and was very thorough about all he did, and read every
bit of documentation you gave him, since the job was an online school, they
made him get a degree eventually...

interesting bit, he said he got into programming because he wanted to get out
of the navy. the base had just bought a big expensive computer but didn't have
anyone to work on it. he said he could do it and learned enough over the
weekend to get started.

great guy to work with too.

------
lifeisstillgood
All the time - I doubt half the things I do today were even covered by my CS
course. I had to teach myself documentation, agility, politics, testing and if
I am honest functional programming, parsing, and stuff I should have learnt
but did not pay attention.

------
EpicEng
Yes, me. This is my second company, seven years experience with the first, two
years with the current. I have a GED, that's it. I'm now the lead for our IVD
development project.

I started in SQA at company 1 and was hired as an engineer after about a year.

------
b_t_s
Yup. He had no CS education/work experience but he'd just finished a fairly
solid side project(cocos2d ios game) so we hired him as a junior dev. That was
about a year ago and he's still with us and doing fine.

------
nsheth17
And a follow-up. How did you get your foot in the door? (I'm trying to get my
first job as a programmer after teaching myself and building things over the
last year to year and a half.)

~~~
Someone1234
It is all about a portfolio. If you have a proven track record of work, that
is good enough for a lot of companies.

So I'd go set up a GitHub or similar, and start getting your code available to
Google. When people type in your name (or read your CV/resume) they should be
able to find your work (either code or web-sites you've developed).

This same advice applies to college grads too. You can have a degree but be
totally unemployable as what you learned at college isn't really 1:1
applicable to the real world. So upcoming grads should also have a portfolio
that shows off their talents.

Honestly a really good portfolio where they can go to your sites and play with
them, or even read your code is almost better than a great employment track
record for lower level jobs (since there ARE people who were employed as a
"programmer" previously who simply cannot code).

------
krapp
Yes. That would be me.

I'm assuming that "writing a ton of code despite being an intern" counts as a
hire and "technical school you've probably never heard of" counts as no-brand.

So far, so good.

------
canterburry
They hired me, so yes, they did. I have a B.A. in econ and fine arts (drawing
and sculpture) with a masters in Software Engineering from a no name school in
Minnesota.

~~~
nsheth17
How did you get your foot in the door? (I'm trying to get my first job as a
programmer after teaching myself and building things over the last year to
year and a half.)

------
aoakenfo
take any job you can. once you have a job, it's easier to get another one.

and of course, portfolio, portfolio, portfolio. i find a blog is better than
github -> if that blog has pictures of your projects, and teaches the reader
with clear code examples. it's much easier to get past HR with beautiful
images/videos of your app/side projects in action. if i were to apply for a
new job, i would send links demonstrating my work, not a resume

------
joshdance
Both my companies hired me, so yes and yes.

