Ask HN: Has your company ever hired a self-taught programmer?
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 ] threadSo 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.
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.
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.
I started in SQA at company 1 and was hired as an engineer after about a year.
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).
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.
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.
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
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.
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.
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.
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.
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.
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?
(Not counting me & Dave, two of our three founders, neither of whom have any college CS).
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.