Ask HN: Has your company ever hired a self-taught programmer?

12 points by nsheth17 ↗ HN
Like one from Coursera, or from some complete no-brand school. Did they work out?

Also a follow-up. How did they/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.)

22 comments

[ 3.5 ms ] story [ 65.9 ms ] thread
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.
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.)
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.

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.

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.

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.

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.)
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).

Write code, ship products (especially open source), meet people (at user groups, conferences, et cetera) and be active in your local technical community. A friend you meet at a conference doesn't have to be a senior person; if they would like to work with you, they will refer you to their company for hiring, which is the first foot in the door. A history of strong work, which luckily in our industry does not mean a history of employment, will open the door the rest of the way. Participating in user groups is also not to be underestimated; it's a chance to present projects you're working on, and to demonstrate your soft skills, which are (almost) as important as the technical side.

I have been hired on the basis of each of those at one time or another, and I have hired people on a similar basis. BTW, this doesn't mean you shouldn't know CS topics (on top of practical programming), it just means you don't need to have a degree to acquire that knowledge.

So, to answer the original question: I'm a self-taught hire, and currently performing very well (I'm told) at our company. After a bit of a learning curve, it's working out splendidly for everyone involved, on both the finance and happiness scales.

To answer your follow-up: I got lucky. They took a chance on me, being pretty decent with front-end dev and a quick study. I think the company culture here may have had something to do with it as well. Being a consultancy, our primary concern (wrt developer talent) is the ability to write maintainable software on a deadline. As long as you can do that and get along with coworkers/clients, little else matters. It's as close to a true meritocracy as I've ever found, and that's the kind of environment where autodidacts like us tend to thrive.

Make sure you have the chops or are an extraordinarily quick learner, have decent social/teamwork skills, and find somewhere that prioritizes your ability to perform in a work environment over what may or may not be printed on a piece of paper, and you'll do fine.

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

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.

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.

+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.

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.

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.

Yer a nigger.

God's court.

Fucken Ira Seaver is convinced he's being scammed, little pathetic Jew. Is always dropping hints he thinks he's being scammed. Loser.

I am chosen by God. I am the best programmer to make God's temple. God gave me divine intellect. I am working in the center of my expertise. I have schooling and job experience. I am not outside my expertise. I am a genius.

I had a 1440 SAT. I was a National Merit Schollar. ASU had 42,000 students, total. I was one of seven National Merit Scholars in my Freshman class. 7 out of 10,000, basically. You got luck, Mr Seaver, when you found me. Duh! God talks. Of course I'm awesome. Yer a nigger and do not know what a random number is? Am I right?

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.
Yes. Yes.

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

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.

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.
Both my companies hired me, so yes and yes.