Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I know I'm ready for an internship?
8 points by jamesbrewer on Sept 2, 2011 | hide | past | favorite | 13 comments
I want to get an internship for next summer but I'm not sure that I'll be ready by December (which is when I'll start applying). The last thing I want to do is show up for an interview and make a complete fool of myself. I don't have any projects and I haven't contributed to anything open-source. How do I know I'm ready to get a real programming job/internship?



Just apply and find out. Honestly, you may well end up making a fool of yourself -- but at least you'll have an answer. Fear/ego is a pretty poor excuse for not trying. I'm saying this as someone who has bombed a couple of coding interviews recently. It's frustrating and embarrassing, but you just pick yourself up, learn from your mistakes, and move on. If nothing else, coding interviews are great learning experiences.


Here's how to not make a fool of yourself on the day of your interview: Don't have the first contact with the company be the day of your interview.

What I mean is, make sure that you've talked to people in the company. Like others have suggested, talk to people outside of the HR department. If you need a suggestion for how to go about contacting them, I've had a lot of success with finding someone who works there, sending them an email with a subject "What's happening at <company name> this summer?" Inside the email, include a sentence about why their company is cool, a sentence about why you'd like to work/intern for them, and then ask them if they might have a place for you.

Not only have emails like this been well received, they give you the chance to craft your initial conversation with a company, and talk to many more companies than going through HR would allow.

In my experience I had a much higher response rate than I expected, and while many weren't looking for anyone, a follow up email asking if they knew anyone who was hiring often produced another lead or two. Best of luck.


I'll give this a shot. I have a couple of companies in mind and I'm looking for my things that interest me, so that should lead to a few more ideas as well.


You don't need any projects or open-source commitments to get a job, let alone an internship. Just find a company that you think is interesting, and ask around. If it's a small company, they might not have a formal internship program, and you might get a job just by having the initiative to ask. Companies are always in a war for talent.

Be aware, companies are not monolithic entities. There's the "functional departments" (HR, accounting), and they are easy to find. But they are useless for making contacts. If the core business is IT (and you really want to be in an IT shop, not just plugging in people's network cards) then you need to get onto the project managers (or just project workers) in the company. HR is a waste of time, unless you must talk to them. Google, LinkedIn, the companies website, email, and a phone are your friends. Find someone who looks like a developer, email, then follow up with a call. It never hurts to ask.

If you want to do a demo project (and while you might not need it, but it won't hurt), tell us your skills, and I'm sure someone will suggest a reasonable "Hello world"y project you could do. It doesn't have to be revolutionary, or even good. Just enough to show you know how to get stuff working.


My experience is with Java and Python mainly. I have done a little with C, C++, and JavaScript, but not enough that I would even consider including them on my resume.

I'll be taking 4 CS courses this year (2 in the Fall, 2 in the Winter), they are: Object-Oriented Programming II (Java), Data Analysis with Scripting Languages (Python), Introduction to Algorithms and Data Structures (Java), and Logic for Computer Science.

I don't consider myself incompetent by any means, but I still have a lot to learn. I find problem solving fun, but unfortunately I get fed up if I get stuck and can't make in progress towards finding a solution.


If you are into python web programming, just a simple blog engine thingy would show you know a bit.

Steps (you can cut out anything that ends up being difficult - it's just a demo thingy from a student):

- hello world, using a web framework. Go for a minimal one, like flask / bottle / web.py.

- hello world, with a list of <a href="/1">Aricle 1</a> links. (hand written html mock-up). Something like:

    def GET(self):
        return '''
    <body>
    <ol>
    <li><a href="/0/">Article 0</a></li>
    <li><a href="/1/">Article 1</a></li>
    <li><a href="/2/">Article 2</a></li>
    <li><a href="/3/">Article 3</a></li>
    </ol>
    </body>''') # does this need a head?

- generate the html links in python, from a list ['my first article', 'my second article', '<b>Escape html injections?</b>',u'\u4f60\u597d does unicode work?']. The html should now be:

    (head)
    <body>
    <ol>
    <li><a href="/0/">Article 0</a></li>
    ...
    <li><a href="/3/">Article 3</a></li>
    </ol>
    </body>
Note, don't worry about titles. Titles are a pain (you convert them to url-safe "slugs", but the slugs might clash ... you could spend hours on it and it's just not fun).

- write the "article" pages. They should look like:

    <body>my first article</body>
For bonus points, make sure you can't inject html (the <b> post should not be bold), and that unicode works OK.

- Add a page where you can post. You will need a text box to post in.

- Use a sqlite3 db instead of a list.

- User authentication? Cookies? For a toy project, don't use passwords, just log anyone on with whatever name they input. Use cookies to keep them logged on. Password handling and secure HMAC cookies - (ask the interview how this should be done - give them a chance to show you how smart they are, or why they just use a solid tested framework that does it all for them)

- Finally, pimp the site a little. Eye candy always impress. Just don't waste time on it.

- Check it into github.

That's about it. It's just a toy project, but gives them something to look at.


Such as wisty said, you certainly don't need any projects or open-source commits for an internship. Finding a developer is very good advice as you will find that most are eager to share their knowledge, so feeling like you may not have enough experience should be of little concern. We were all there at one point in time; sharing the knowledge is a gem to developers. Just get ready to move at a fast pace!


1. Just do it and ignore your fear. Fear is what holds us back.

2. It takes less than a day to come up with a project. For example, I built a facebook tab CMS in about 5 hours, and it's a pretty cool little demo. Is it a big deal? No. It's not even enough to compete with the plethora of $5/month offerings already on the market. But does it demonstrate some basic skills? Absolutely. Take a saturday and write something simple. Make it work well (FINISH IT), and you'll be surprised at how much credibility it gets you. In fact, make your own facebook tab CMS. It doesn't have to be clever - it just has to be real.


The last thing I want to do is show up for an interview and make a complete fool of myself.

Do this now so you know where you are, instead of finding it years from now when being interviewed for a real job. The sooner the better.


Fair advice I suppose. Ideally I'd like to never have it happen though. :P


Think that depends heavily on your age (pre-college, during, after?). If you're already getting that higher education, you'll want to get the ball rolling on just crushing it and learning as much as you can, maybe even release something small on github. At the stage you're at, the only thing you can be doing is shipping.


As others said, don't be afraid, just try it.

Also, internships are there to learn, nobody expects you being a guru, they expect someone with passion and a hard worker.

Good luck!


Let them decide. Go for it young man. If they are smart, they will "hire for attitude, train for skills".




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: