
Ask HN: I'm an 18 year old programmer; How do I get a job? - crgwbr
When I was 14, I started working at my Dad's workplace (he a mechanical engineer) doing embedded electronics design &#38; programming.  I did that until early 2009.  I had to quit that job since Dad retired and we moved away, but since then I've been doing freelance web dev &#38; programming (Python).  Unfortunately, because of my lack of connections, I can't really find enough work.<p>I realize that I'm no where near as good a programmer as most of you guys, but I think I'm a reasonably good Python dev w/ a lot more experience than someone fresh out of school.  So, how do I get a job?  How can I convince HR to look past my lack of college and to my actual programming skills? Right now it seems that any job I apply to doesn't even reply to my email. Any help would be greatly appreciated.
======
donohoe
Some minor points that I hope are helpful:

\- Blog on your work, what you do, problems solved, lessons learned.

\- Build a online resume or portfolio. Languages uses, screenshots, code
samples

\- Get a LinkedIn profile, and get people that you've worked for (or with) to
write up a Recommendation.

When job hunting, ignore HR. Research the hell out of the company and find out
who the manager/director is who'd have the main say in hiring you or not.
Reach out to them directly and introduce yourself. Provide direct links to
blog/online resume/portfolio and why you'd be a great fit.

In addition, if you are in a position to do so, offer to intern for free at a
known company/design-shop/etc for a few months for experience. Insist on real
work and not just making coffee.

Best of luck.

~~~
someone_here
Don't intern for free. Your time is worth at least minimum wage.

Plus, it's illegal is most places to work on "real work" if you're not getting
paid.

~~~
joshuacc
"Don't intern for free. Your time is worth at least minimum wage."

I second this. Part of my assignments the final semester of college was to
intern in an IT related business. With no previous contact, I was able to get
an internship paying a bit more than minimum wage.

It was invaluable experience. Not to mention that once the internship was over
I had a great job just waiting for me to say yes. :-)

------
jackowayed
If you have good experience, it should be doable. I got my first coding summer
job at 16 working for a small startup.

Some tips:

* If you don't have quality code on GitHub, change that. Fork something that interests you, hack together your own small-but-cool project, etc.

* If you're not in a tech hotspot (the Valley would be best), consider moving. Most companies want full-time workers to be on-site. It's probably better if you can move now, that's probably better, but you should definitely be willing to apply to jobs in the Bay Area and move if you get one.

* Startups that are pretty early in their lifespan are usually pretty open to hiring people without degrees. Apply to a bunch of them. Do the YCommonApp[1]. Apply to every python job at on HN's jobs page[2]. Look at other job boards that are heavy on startup jobs--Github[3], Startuply[4], etc. We're in a field with a huge demand for labor. If you're capable and apply to enough places, you will find something.

* Network--a lot of people get jobs through acquaintances. Even if you live somewhere lame, networking is still quite possible. If you fork a project and provide a string of quality patches, you can easily build a rapport with the maintainer. If the maintainer knows a lot of other people in the Python community, he probably always knows at least one person who's looking for a good Python hacker.

* Put your email in your HN profile. There are probably several people who will see this thread and want to shoot you an email with opportunities.

1: <http://ycommonapp.com/>

2: <http://news.ycombinator.com/jobs>

3: <http://jobs.github.com>

4: <http://startuply.com/>

------
jshen
I taught myself to program and got my first programming job during the dot com
bust. I've since become a manager and have done a lot of hiring so I can speak
to both sides.

First, don't worry about not being as good as "us". Most likely we're not
applying to the same job as you, and most likely we're not looking for a job
at all. Most resumes I get, and interviewees I interview are absolutely awful.
The bar really isn't very high, you just have to get to the phone screen.

So how do you do that? Build something real and be able to talk about it. You
need to be able to point to something and say "I made that". It can be open
source or it can be your own website, a free mac app, iphone game, whatever.
Then, focus your applications to job postings that align with your skills and
background, and write a cover letter about the thing you built. The cover
letter will help the reviewer overcome the lack of experience on your resume.
Most job postings ask for someone with n years of experience. Ignore that,
just ensure that they are looking for a junior person so you don't apply when
they are really looking for a senior person.

Focus on smaller companies. Big companies have HR departments that review
resumes and they primarily look for x years of experience with J2EE blah blah
blah.

Be willing to take less money than someone with experience if all else fails.
There are a ton of people out there that want to hire a programmer, but don't
want to pay $70k for a junior developer. If all else fails, go to one of these
places and make 40k or whatever, and within a year you'll have job experience
on your resume and you can easily get a new job for more money.

~~~
crgwbr
40k? heh- after being a struggling freelancer for the past ~18 months I'd be
happy with 25-30k.

~~~
heresy
It's a lot easier to do freelancing when you've got colleagues you've worked
with before who remember your work ethic and output.

And make friends at those places, don't be the unapproachable guy coding away
in the corner. It matters. A lot.

I'm effectively earning 2-3 salaries right now because of contract side gigs
for former colleagues.

------
dmillar
I might be old fashioned, but if you want a career as a software engineer, why
not attend college for a degree in computer science? When you are done, you'll
likely be heavily recruited and face a much less hostile employment
environment.

Despite what some say, college is good for most people and will help round you
out as a contributing member of society. I put myself through college as a
part time developer and had more fun than I can remember.

~~~
tricky
Seconded... Unless your situation requires it, don't be in such a rush to grow
up.

~~~
Locke1689
I don't know about you guys, but if I were interviewing a candidate, most of
my technical questions would be data structures and algorithms. Knowledge of
frameworks and languages is good and all, but it doesn't really test how a
programmer thinks about a problem. I don't think many people would be able to
write a hash table in C without having at least some background from college.

------
jey
You need to do two important things:

\- Have projects you can list on your resume. There's no rule that says only
_jobs_ can be listed on a resume!

\- Have someone who works at the company submit your resume directly to the
hiring manager or internal HR system. This is _especially_ important for big
companies, since they have armies of HR people who are completely non-
technical but just scan the incoming flood of resumes based on simple
filtering criteria like having a degree and the having the right buzzwords
listed.

Also, apply to many jobs. Don't just spam listings where you clearly are
unqualified, but just don't put your eggs all in one or a few baskets. You can
also apply for jobs that don't exist if you think you have a skillset that
fits a particular company and/or have an interest in their product.

FWIW, I quit college during my sophomore year and got several programming job
offers using the above strategy.

~~~
gamache
_Have projects you can list on your resume. There's no rule that says only
jobs can be listed on a resume!_

Seconded heartily.

My resume's Projects section includes unpaid and paid creations. The
Employment section then became mostly concerned with the roles and tasks I
performed rather than the systems I created.

Once I reorganized my resume in this way, the whole thing suddenly made much
more sense. I think it really works for you to have the recruiter/employer see
so clearly that you actually Make Shit.

------
bajsejohannes
I would definitely try to get more education. If you can't afford it or it is
impractical, you should at least read some books on your own. I used to think
I was fully educated at 18, but I learned a lot at the university. Even the
stuff I already knew, I learned in a new and better way.

While it may still be difficult to get that interview without a formal
education, this will at least make it easier once you get there.

(Two places to start: _Introduction to Algorithms_ by Cormen et al and _SCIP_
(available for free online))

~~~
chc
For the sake of anyone trying to search: That should be "SICP," short for "The
Structure & Interpretation of Computer Programs." (There are several
organizations that actually have the acronym "SCIP," so Googling that leads
nowhere.)

~~~
bajsejohannes
Thanks. Too late to edit now...

------
eli
Where are you located? I'm trying to hire a junior-level web developer in DC.
Send me a message if you're interested. Seriously.

Anyway, a few things:

\- You're not going to get a reply from many/most jobs you apply for. This
isn't necessarily you. It's just the way it is.

\- This is just a hunch, but I think you're going to have more luck with
smaller companies and startups than with big companies that filter all
applicants through an HR department first.

\- Don't sell yourself short. I got tons of applicants with Comp Sci degrees
who are totally clueless. I would consider someone who is smart but lacks a
college degree without any hesitation. Apply for jobs even if the requirements
say "BS Degree."

\- Send a letter/resume to companies you'd really, really like to work for

~~~
crgwbr
Email sent. Look for crgwbr [at] gmail [dot] com

------
wccrawford
It's already been said, but it bears repeating: Contribute to open source
projects. Of the last 8 or so developers we've hired, half had open source
contributions and it was definitely a plus. It says that you're willing to
work to make things work, you're interested in coding for coding sake, and you
actually do have experience you can point to.

Something that will help a little quicker is to have a portfolio. Show GOOD
code that shows you know how to handle security vulnerabilities and have good
design, as well as have coding standards that you adhere to. Ideally, the code
should be the same as the job you are applying for, but good code speaks for
itself no matter the job.

Ace the interview. Know what they're talking about when they ask about design
patterns and be able to name and recognize them, etc etc. The more questions
you answer quickly and confidently, the better.

------
stonemetal
Think small, any place that is to small to have an HR department is too small
to have a getting past HR department problem.

2nd have you actually had a getting past HR problem? Most job ads I have seen
would consider 4 years professional programming experience the equivalent of a
degree and should give you a shot at an entry level position. On the other
hand they may be trying to type cast you as an embedded programmer and passing
over you for that reason.

------
risotto
Just keep coding, it'll work out.

Your resume is all about experience. Some people care very much about what
companies you work for, but as you're getting started, what projects you work
on is the best you have.

Build a simple product and launch it. Find an itch to scratch, to the
HTML/CSS, user signups, backend code. It's unlikely anyone will use it but
it's great experience and it's something tangible that interviewers can look
at.

Contribute to open source. What does your Github profile look like? How
networked with other developers are you? The best job is the opening at your
friend's company, where he can put in a good word for you.

Move to a tech hub. In Los Angeles both software companies I worked for hired
18 year olds at one point or another. (The last 18 year old I worked with was
also quickly fired because he couldn't maturely handle the work, but that's a
different discussion.)

Apply _everywhere_. Whether you are over-qualified, under-qualified, would
need to relocate, etc. This phase of your career is largely a numbers game.
Get your name out there, get good at writing a cover letter, interviewing,
etc.

------
qeorge
You can't win the paper resume game, so skip it. Make a portfolio, list your
prices and services upfront, blog actively, and respond to gigs postings on
Craigslist.

You'll get work if you keep at it. Like all sales, its a numbers game.

------
artlogic
You've already got some experience which will help a lot. What I've found (and
what worked for me about 10 years ago when I was almost in your exact
position) was that the easiest way to get a gig programming is to find a good
company that employs programmers and get a job doing something computer
related there. I started in tech support which is as good a place as any. Work
your ass off. Be as good at your job as you possibly can be. You may notice
some opportunities for automation (they almost always exist). Use whatever
tools you have available to fill the need you see - a lot of my early work was
excel macros. Often times the programmers are too busy to fix one-off and
niche problems. The idea is to develop a reputation as someone who can solve
problems. Once you're hired, moving around inside of a company is much easier.
Be your own evangelist. Make it clear you are good at programming and you want
to do more of it. If management has a clue, they'll let you program, at least
part time - but likely won't give you a raise... if you really love it - stick
with it and get the experience, which is what really matters. You can always
job hop once you've got experience.

Oh - and go to school - getting a CS degree will help you in ways you can't
even understand. It took me 8 years to get mine because I worked full time (as
a programmer) the entire time I was in school - still worth it - and since I
was making money I was left with very little debt when it was all said and
done.

~~~
fleitz
Bingo! Thats how I got started in programming as well. I did programming as
tech support for almost 5 years. Oddly enough, it was PHP and Excel macros.
Once mgmt found out I was taken off the phones.

------
agentultra
I dropped out at 18 to work at a startup. I got the gig through a co-op
placement via my high-school. It was pretty sweet.

I did eventually finish high-school, but I never went on to university or
college for computer science. Things have been good without it: I'm a firm
believer that anything you want to know you can learn on your own (the
compiler is a good TA and the Internet a great teacher). However, in todays
rat-race I'm kicking myself in the ass. Five years of experience and no one
will believe that I can actually program anything. Even the most mundane
programming jobs building PHP websites will probably ask for a CS degree.

It's an uphill battle if you want to go against the mainstream. It can build
character if you're up for it, but be prepared to lose a number of battles. I
only recommend it if you're comfortable being independent.

But I also know now that you have no idea what you want when you're 18. You'll
change your mind in a few years no doubt. I recommend just doing what you want
and getting on with life. Maybe even forget the career thing and just focus on
partying or travelling or something.

------
icco
Apply to work at smaller companies.Most big companies have to follow "hiring
guidlines" and the like, but if you apply to startups and companies with
sub-100 people, they will often over look things like a college degree for
prior work experience and general bad-assery.

Also, get active in open-source projects. Submitting patches to projects you
love on github is a really easy way to get yourself noticed.

------
TallGuyShort
I'm going to second all the advice to keep applying and show yourself off.
Programmers are a dime a dozen, but good ones aren't. In fact, good ones are
pretty scarce. If you're as skilled as you say you are, you just need some
persistence and a few of the tricks discussed here, and I'm sure you'll get
hired.

------
jasonneal
I got my first "real" full time coding job at the age of 21 (4 years ago). I
landed it without any education. Unfortunately, I got crap for pay compared to
others...I started at $28,000 a year. The good thing was, I was living with my
mom in SC with a very low cost-of-living so it was a lot of money at the time.

Enough about me...for you, all I can tell you is how I personally did it. I
created a nice portfolio of all the work I had done over the previous years. I
then applied to so many jobs that I became a pro at writing resumes and cover
letters custom-tailored to the companies I was applying to. The one's that I
heard back from were the small companies, with 5 or less employees on average.
The company that hired me was 3 people before I got there. Start small.

------
charlesdm
It depends on a lot of things, like for example -- in what kind of company do
you want to work and on what kind of things do you want to work.

I'm a dropout and I believe a portfolio is really helpful. Get a showcase
together of some of the stuff that you've built and show that you're
passionate about what you do. Especially because it's your first job you're
going to have to be creative to get past HR if you're targeting a bigger
company. Another thing you can try is to see if you can get an internship in a
company. This way you can check whether you actually are good enough and there
is a high possibility that you'll be hired if you do a good job.

Also, get a LinkedIn profile up with accurate information.

------
mburns
Make a contribution to an open source project. Post code on github.

------
lukev
Sigh. When will employers (even good ones?) realize that the value of a
developer is primarily in their approach and talent rather than years of
experience?

If you're not opposed to relocating to the DC area and working primarily on
the JVM, send your resume my way (gmail, luke dot vanderhart). We're a
consulting company hiring junior developers. You'll have the chance to work on
some pretty high-end government projects, and if you're worth it you _will_
advance nicely in the company.

~~~
djb_hackernews
What do consultants with 5 years experience on the JVM in dc working on high-
end government projects make? Just curious.

~~~
lukev
It varies _widely_ depending on the company, education and other factors, but
I've heard of anywhere between 70 and 100k for that experience level.

edit - That's salary, by the way, for salaried positions. Billing rate is an
entirely different kettle of fish.

~~~
dotBen
If you were 18, fresh to the industry and able to relocate, why wouldn't you
relocate to the Bay Area - where _anyone_ that can code will probably be able
to pull $70k straight out the door.

~~~
crgwbr
I would honestly love to do that, but with my current savings ($), I simply
can't without a job lined up.

------
fdiotalevi
The best self promotion you can do is to talk at user groups. Find a
Python/Django/whatever user group in the nearby and propose to present a
speech. You don't need anything particularly sophisticated, any
technology/framework you have used is just fine.

Often user groups are struggling to find people willing to do presentations,
and they'll glad to give you the opportunity to speak. And they are the best
place to network and find new jobs or contracts.

------
kno
Unless you are in a great need of cash, I will strongly advise you to go to
college. Few years of college will do you better that just get you a degree.

When you are 18yo school is really important, not to be paternalistic here,
you have all the time to really figure out what you want to be in life. If you
were founding a startup with friends I would say go for it; if you parents
support you I will say go to college please.

------
x0ner
Try networking with people more. I started off in my career as a security
engineer at 19 with a very good company. The main reason I got this was
because I just made friend with people who happened to work there. It is
always about who you know and not necessarily about what you know. That at
least tends to be the case when you are starting out. Find someone to give you
the chance and you are golden.

------
moby_duck
I have an idea. Apply for some job that you are totally unqualified for (most
will seem this way). When you finally get the email from the hiring manager
telling you that you're not qualified, start an email dialogue with her about
how you applied to the job in order to meet the hiring manager. If she is
impressed with your motivation and ingenuity, you may just wind up with an
internship somewhere.

------
AmberShah
Without a college degree, you need to target places who don't really have an
HR department or where the technical folks are so revered that they can
overrule HR (not easy). I would look for small software shops. Alternatively
you can brand yourself as the wiz kid and freelance for small businesses.
Either way, aim for small companies until you're older than the new-hire
college grads.

------
oscarduignan
If you've not got much experience within an industry, it's really easy to
overestimate the average skill level of others in that industry.

It sounds like your problem isn't your lack of qualifications or your lack of
connections; but the fact that while you have identified that connections can
be a good way to get work, you (appear) to have decided not to make the effort
to start building them.

------
nailer
Make one.

* Create a portfolio of your work (some of which may have been created just to show off your skills)

* Establish your own personal brand online, under your real name, with a video of yourself talking about your services (this sets you apart from the Indian and Hungarian chop shops).

* Get incorporated.

------
joshu
Where are you? What are you looking for? Do you have code samples somewhere?

------
Mesmoria
Apply to smaller companies they are probably have more flexible hiring
practices. Optimally they should also get you to do a programming test. That
might help benchmark your actual skill as well.

------
maccman
Do an internship at a startup & read/write loads of open source code. Worked
for me (I'm 20, without a degree).

------
zaidf
Intern at a funded startup.

1\. They'll be more responsive.

2\. If you do well, they'll keep you full time in most cases.

------
shedd
I wrote this advice for one of my departing development interns this summer
regarding how to demonstrate your skills to get a full-time job. The bottom
line - no one will know your skillset unless you demonstrate the skills plus
show that you can communicate about the subject matter to the people you'd be
potentially working with. \---

Rather than showing off isolated snippets of code from coursework or
contracting work (where you can't show off the entire application), I’d
recommend there’s a better path. My advice would that it would be a great
investment of time to take a few weekend, create a sample application using
the best practices and skills you’ve learned this summer (proper MVC
structuring of code, agile development, DB design and migrations, etc.). It
should be a pretty straightforward app that doesn’t require a ton of
explanation. Host it for free on Heroku or comparable. Place the code in a
public repo on GitHub. Create a readme that explains 2 things: (1) how to
download and run the application, including all dependencies and commands. (2)
what the application shows about your development experience and how you
followed best practices. In the readme, include a link to the app running on
Heroku.

Then, put a page on your personal site that links to GitHub and explains what
it shows at a high level. Link to this page from your resume and LinkedIn.

This will go much farther towards demonstrating your programming background
than snippets of code. Why? (1) it shows a fully functional app that people
can look at, understand, and even run if they so choose. (2) it shows that not
only can you write code, it shows that you can document it and explain why you
wrote the code. Finally, it shows that you respect an employer’s intellectual
property and won’t go around showing off their confidential code (even if you
are cleared to release code / demo the app – potential employers are going to
wonder if you had really gotten clearance and if you’d be running around
showing off their code and IP assets. Don’t take the chance and put even the
hint of that in their heads.)

Most corporate HR departments won’t look at your sample app. It won’t mean
anything to the recruiters. However, if you’re really going to go after
startups and small companies where the person you’re talking to is almost
always the hiring manager, where they don’t have recruiters in the middle,
where the hiring manager writes code – which sounds like the kind of position
you’re interested in?? – if you can demonstrate all of the above with one
prepared link to your personal site > GitHub, you will really, really stand
out. I can’t tell you how many "professional" software developers I’ve
interviewed who can’t show me the same thing. Do all of the above well and
you’re easily in the running for the position.

If you put a few weekends into that – won’t even take that much time to do
well – you will be heads and shoulders above 90% of the other students you’re
graduating with who could do the work, but won’t bother. They’ll be out
drinking the weekends away. If you want to get a really solid programming job,
take it from me – staying in a few weekends to do the above would be well
worth the investment.

------
gcb
get a suit, try to look a little older, and apply to any 'contractor' or temp
position in a big company.

i will tell you. it doesn't even matter if you can read.

some 3 people show up to interviews, one get hired regardless of anything.

oh and it also doesn't matter if the contract is for some 2 or 3 months. you
will be there for at least 2 years if you want to.

------
tkahn6
Hey I'm 18 too :)

Don't you want to learn things like theory of computation, graph theory, or
compiler design/implementation?

