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:
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!
Comments
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:
- 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: 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:
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!