Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: I'm an 18 year old programmer; How do I get a job?
47 points by crgwbr on Aug 11, 2010 | hide | past | web | favorite | 65 comments
When I was 14, I started working at my Dad's workplace (he a mechanical engineer) doing embedded electronics design & 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 & programming (Python). Unfortunately, because of my lack of connections, I can't really find enough work.

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.

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.

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.

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

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

The way this is phrased seems to imply that the person doing the work is doing something illegal. I believe that only the employer is violating the law in this case.

It's an important distinction: if you feel the arrangement is in your interest, the illegality is the employer's problem, not yours. That said, if you can actually produce working code, your time is valuable and you should not work for a for-profit business without appropriate compensation.

Interning for free is usually really hard on people, it became really hard on me. I also understand the whole legal gray area. That being said, the fact that I interned with the company I'm with before taking a job with them was incredibly advantageous to me in the hiring process. If you can do freelance work (maybe 2 or 3 days a week) while interning for a company that you think may hire you (when you're not freelancing), I would recommend it.

Actually, I think it's worth considering the other side of the coin. Either work for free or ask for a wage that is comparable to your skillset (i.e. well beyond minimum wage).

Working for free is a great way to build your portfolio of projects and get some "experience" to put on your resume. Go find a startup or small business and basically tell them you can build stuff for them for free for a month. After that period, if they like you then they need to hire you full-time.

However, I do agree there is a fine line between doing this for portfolio/resume building and being used for bitch work.

My point is to get experience with a solid company then use that. I think working for free is ok, obviously far from ideal, but the ends justify the means if it gets you where you need to go.

I can't say enough great things about blogging.

I earned my new job directly as a result of my new employer discovering me through my blog and I won a lot of contract work to help pay bills in college as a result of the projects I posted on my blog.

Think of it as a way to differentiate yourself from everybody else by showcasing your unique experiences and learnings in a way that's expressly you.

1 & 2) http://crgwbr.com/blog/

3) http://www.linkedin.com/in/crgwbr

Thanks! I'll try going around HR to get to the top. As far as unpaid interning, its not really possible since there is absolutely no work where I live (middle of no-where, western PA). I'm not opposed to relocating, but relocating for unpaid work is tough.

Most internships in Software Engineering are paid these days anyway (I wouldn't ever accept an unpaid one). It's probably a good area in which to look.

It is just as hard anywhere you go. I moved to Silicon Valley 3 years ago with no college degree (I was still in school) and it took me 1 and 1/2 years to find a job.

Obviously being here helps but it is just as hard anywhere you go. Going to college is going to be your best option.

Moving to a major city won't hurt either.

If there is no work, then why are you worried about getting a job? It's impossible. You might as well give up now.

Just put yourself up on elance / rent-a-coder, use that to build a portfolio.

I wouldn't do elance or rent-a-coder for a few reasons:

Firstly, you might not be creating stuff that you will want to put on your resume/portfolio (my experience from that world is clients who want hacks and weird specs).

You will also find that going rates are pretty low because you are competing with off-shore labour (this is not a rant against off-shore, just an observation that this is how common markets work)

I have done freelance work through oDesk and the longer projects were quite valuable. Rates are low but not that low. According to oDesk's stats, the average rate for a web developer is about $16/hr.

$16/hr for a developer is super low.

I guess you can't compare remote to local SF, but $100-$125/hr is a good rate for devs here.

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/

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.

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

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.

if you can code, and you can show it, you should never make so little

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.

I got my first job at 18 as a developer, I never went to college and it hasn't done me any harm.

Granted, I don't know much about compiler design and the like -- but all of that would be theoretic for me in web development. Instead everything I know is more practically orientated - real skills directly related to web development etc.

Whenever I've needed to learn something, a few days reading has quickly groked most stuff for me.

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

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.

I recommend against studying CS in college unless you think the school has a really stellar program. Since the OP is self-taught already, he can keep his software development hobby+job, while officially studying math or econ in school. That will give him a broader POV. YMMV of course :-)

You probably can't get into the more important and interesting classes without taking or testing out of data structures and algorithms. I refer to, e.g., Programming Languages, Artificial Intelligence, Distributed Systems, Robotics, etc. Looking back, I would put Compilers in there too.

Make sure you know enough to get into the cool CS stuff. Don't assume that SW development gives you a CS background. One informs the other.

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.

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.

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

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

Thanks. Too late to edit now...

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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

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.

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.

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

because 70K in DC will go futher than 70K in the Bay Area. While DC is not cheap, it's not the Bay Area.

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.

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.

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.

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.

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.

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.

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.

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

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.

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

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.

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.

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.

Hey I'm 18 too :)

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

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact