Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The only formal education I received is 2.5 years as a major in pure maths with computer applications (sounds like an oxymoron, but basically it's pure maths with some courses on algorithms, discrete maths with some CS applications, and a little cryptography with number theory).

I dropped out (due to personal, not academic reasons). I'm not even sure if an incomplete BS. Degree is worth mentioning in a resume.

Since leaving school this year, I've been focusing on learning back-end web development (PHP, MySQL, CSS/HTML; I've only played with js). I spend all day waiting for the moment I can sit back at my computer and do what I love... whatever the pay, I'd jump at the opportunity of leaving my job and doing something related to web programming.

My only concern is that, lacking a formal education / advisor, I've no idea what is expected of an intern.

I've worked through all your basic "standard" tutorials (forms, building a MySQL database, queries, etc.). I'm now reading Code Complete, relational algebra, Wordpress code, learning the essentials of a low-level language (C, understanding pointers, memory, and so forth). I'm building my own WP theme framework from scratch (with reuse and readability in mind)... but watching the people here at SE, it's clear that I know very little. It's pretty intimidating.

Just how much is one supposed to know before considering a first internship? At what level should I be and how will I know when I'm there?

For what it's worth, judging by the "Programmers' Competency Matrix", this is where I'm at in the following categories:

  • Computer Science: I know all level 0's and one level 1.
  • Software Engineering: two level ones and one zero (well, sort of: I only know git, and not a whole lot).
  • Programming: five level 1's, four level 2's, three level 3's, three 0's.
  • Experience: three 0's, one level 1.
  • Knowledge: five level 1's, one 0, one 3.

So basically mostly 1's and 0's... low level indeed.

share|improve this question
1  
You learned a lot of diverse stuff (and probably pretty fast). I study computer science and most of my classmates don't even know about the books you mentioned or the famous Competency Matrix (or even what agile programming is). As long as you have something to show to a potential employer (website, small programs you wrote etc.), you'll do just fine. –  Radu Murzea Jul 26 '12 at 6:46
    
Your local situation may be different, but in the US, many internship programs require that you be an enrolled student or a recent graduate. Your school may have a career center that tracks and manages internship programs. Have you been in contact with them? –  Charles E. Grant Jul 26 '12 at 19:14
add comment

5 Answers 5

up vote 5 down vote accepted

Internships are about learning. So a basic, low level of computing science and programming competence isn't a problem. What you really need is the desire to learn and an open mind for the new things you will be taught during the internships.

Of course, there are internships program that ask for a lot of experience, but they state they are for nearly-graduates and graduates. But for internships that are focused on students in the first of second year in studying computing science, the fact that you started to learn something on your own, that you are willing to learn is very important.

In my company there are during the summer interns that just finished the first year of university; they have vague notions of C and Java and a little general knowledge of computting science. Most of the times we start with them almost from scratch. But this is not a problem, because they are here to learn, not to do the job of a full-time engineer/programmer.

share|improve this answer
    
Thanks! These answers are certainly more encouraging than I'd expected. I'll start looking at what options are available around here. For projects to showcase, aside from my own site / github repos, I've a few friends in semi-pro bands whose websites could definitely use a push into the 21's century. –  iDontKnowBetter Jul 26 '12 at 15:42
add comment

The fact that you understand why "So basically mostly 1's and 0's... low level indeed." is funny means you might have enough for an internship at a lot of places. It really has way more to do with what a company needs and willing to work with than what you know.

The company I worked for would have hired you at your skill level and I would have been the one to train you for 6 weeks (super steep learning curve). In all honesty, I think they hired people that they liked more than they thought were good at their job...

share|improve this answer
    
Not really part of the answer, but an after thought: If you have web sites that YOU created that are up and running, that will get you a job way faster than someone with the same skill set as you with nothing but a piece of paper to show for it. I have a few web sites that I did for tattoo shops and a photographer. Being able to walk in and say "Look at www.[website].com, that is all my work" is how I was able to get my last job and skip ahead in some required classes when I decided to finish my degree. –  BillyNair Jul 26 '12 at 5:30
add comment

If you ask me, you know a lot more than people who were liked for their outstanding skills in small companies. I started in such a small place, with barely anything to prove my knowledge. But a few days later I found myself hacking through lots and lots of spaghetti-code, created by my predecessor - that was highly praised.

It certainly helps, if you have some work to present, e.g. a website you created. Or a little program you can show off. Here in Switzerland there are always less candidates than jobs, so it is not really hard to find a place where you can snatch a trial day. I found it to be pretty easy to get a contract from that point.

After all, you learn the most by doing things, by being a web developer.

share|improve this answer
add comment

I think you know more than enough for some internship. (But not enough for any internship, necessarily.) I probably had a similar amount of knowledge in my first internship the summer after freshman year (admittedly I had been programming on my own for a while back then).

The most important thing would be to make sure that the people you talk to about an internship have a good idea of what your experience is. In my experience, people are happy to teach you on the job as an intern. On the other hand, some internships require certain minimal knowledge. For example, my current one needed functional programming and basic language/compiler knowledge. I can learn the particulars (e.g. OCaml) on the job, but I would be horridly lost without the requisite background.

As long as you're clear about what you know and people have the right expectations, you should be more than fine as is.

share|improve this answer
add comment

You will understand most of the concepts in timely manner. Just keep learning and improving yourself, that is the way to succeed.

Yes, being an intern in first month is going to be tough and challenging. However, it also offers opportunity to learn and practice enterprise/real world applications.

It seems you are in a good shape to get internship. Try to show your passion and problem solving skills during the interview and you are good to GO !

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.