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.

We have a small team in our department and typically employ 1-3 students/interns. The problem we have is retention. We like to hire a student that will stick around as part of the team for more than just a summer quarter. The problem is though the last 4 students we hired, up front we discussed this with them and they all ended up leaving earlier than we would have liked.

The relationships all ended in a good fashion, the students either obtained teaching assistant or research positions within the university, or went on to bigger and better things. This is all understandable and we do not hold it against them for doing what is best for them.

But my perspective is different as I worked within our department for 2 years during undergraduate at which point I was brought on full time upon graduation.

How can we retain students? We give them hardware they need/want, we provide them with problems to solve in anyway they see fit (within reason). All in all to me this type of job for a student programmer is so flexible and awesome I cannot see how anyone would want to leave.

Thoughts ?

share|improve this question
12  
Is there cake... ? –  dannywartnaby Oct 7 '10 at 13:03
1  
Added as a comment as I rarely interview students and this isn't a great answer, but i'd probably ask them about their aspirations in software development. Ask them where they want to be in a year or two, and what they want to be doing. If you like them, try to align their goals with the role. –  dannywartnaby Oct 7 '10 at 13:05
1  
And by 'cake' he actually means... cakephp! :P –  chiurox Oct 22 '10 at 16:48
3  
THE CAKE IS A LIE!!! –  Mehrdad Jun 10 '11 at 2:15
1  
Please Assume the Party Escort Submission Position –  BlackICE Dec 21 '11 at 19:00
show 12 more comments

13 Answers

I worked as a student programmer as an intern at two different jobs while in school. I am now graduated and work with another company full time. (a third).

The main reason I didn't stick with those companies while as a student was because I didn't see an opportunity to move forward/up in the company. Also, they use one technology and didn't show any signs of expanding out.

As a student about to graduate you feel that you shouldn't make a commitment that easily because you don't want thousands of dollars and 4 years of school to go to one job where you will sit and get stale (even though that's the case a lot of times.) Security isn't in the minds of those kids yet, but it's not their fault.

Show them the company can grow, and they can grow with it in their careers, and show them you guys are open to new technologies and learning.

share|improve this answer
    
I understand your stance, the difference here though is the Ohio State University is not going to shut down anytime soon. And I feel that me now being full time and part of the team is a perfect example of potential career advancement down the road. I started as a student, was brought on a temporary full time (because of budget constraints) and next week will move to a FTE position with a nice salary and benefits that most companies would dream of giving to their employees. –  Chris Oct 7 '10 at 13:09
2  
Yeah the main issue here is...they can't see that yet. All they see is themselves, until they are in the real world and are forced to live a working lifestyle. Some students realize this in school, others dont. –  Scott Oct 7 '10 at 13:13
2  
+1 for "All they see is themselves..." This can be attributable to their age or to what they have been "taught." I have lost count of the number of recent grads I have interviewed who thought that their experiences with toy programs in school meant something in a serious production environment. –  Peter Rowell Jun 10 '11 at 2:13
add comment

Maybe you don't have enough great developers to inspire/motivate them to stay

I've had 2 internships at 2 different companies. I just finished the 2nd one a week ago and I realized that I prefer the 1st over the 2nd. The reason is because even though I'm practically doing the same thing at the 2nd company (Web development), most of the developers there are almost as young as I am. Which leads me to think that they don't have enough experience as programmers yet. The best way I can think of for my career to grow and to learn more as a developer is to surround myself with the best programmers that's in my reach. They have those kind of developers over the 1st company that I've been in. That's why I prefer the 1st one over the 2nd one.

Maybe that's one of the reasons why they don't stick around at your company.

share|improve this answer
add comment

I interned at a smallish company in school and ended up staying for two years. One of the things that kept me there, I think, was when I started they had a small (about a month long) project for me to work through that let me learn about the company and let my manager learn my strengths. I was then able to take on a couple of more substantial project that were more rewarding and interesting to me, and more helpful to the company.

Overall, I think the most important thing with interns is to have one off projects lined up that would be helpful. If you don't really feel like you made a difference with your time, there are plenty of better ways to spend it.

You'll always get some amount of turnover with interns however. There's a pretty big incentive to see what different companies are like so you can have an idea of what to look for when you graduate.

share|improve this answer
add comment

I'm currently working at a web development company part time while going to university.
Although I enjoy that it keeps me afloat while paying for school I don't think I would stick around for long after graduating. The main reason is that with a CIS Degree under my belt I would suddenly be worth a fair bit more than just a 'student'. So changing jobs is a good way to get a signifigant pay raise, likely more than what I would get if I just ask for a raise. Plus I kind of tired of maintaining code from other past students who sometimes do wierd things.

I want try new things and see what interesting things I can do. Doing the same thing after university that you were doing before kind of defies the point of university, which is to change who you are.

share|improve this answer
    
My transition from a student to a full time employee merited a substantial pay increase. We have a cap on rates for students and when I transitioned to full time they researched market rate and I was compensated accordingly. Although in university the pay is slightly less than in the business world but the benefits outweigh the negligibly less salary. Additionally, my job as a student helped me make the transition to full time. I was given real world projects and told to solve them in the best way I see fit. The disparity between academic and real world development is substantial. –  Chris Oct 7 '10 at 14:36
4  
I pity those who graduate with a degree but no practical experience. An internship of some kind should be a requirement at most universities. –  WalterJ89 Oct 7 '10 at 15:09
add comment

Hire people that want to do the kind of work you do.

share|improve this answer
    
How best to elicit this information during the interview? The job is posted explicitly stating we want web programmers in more or less words with the languages we focus on listed. Without directly asking "do you want to be a web developer?" for example, how can you elicit during the interview that this student wants to goto the web world? We do not interview students without real web experience. –  Chris Oct 7 '10 at 16:27
    
@Chris: There are more aspects than just the coding duties. There's also the office culture, the level of process involved, the campus culture. There's also the technology aspect - if you aren't doing some cutting-edge work, it simply might not be exciting enough. e.g., are you working in Classic ASP? :) –  Paul Nathan Oct 7 '10 at 16:37
    
We are an open source shop spending our coding time in php, javascript (jquery at times), python and on the side we manage some servers (physical hardware and recently deployed esxi boxes. –  Chris Oct 7 '10 at 16:43
    
@Chris: I'm not trying to cast aspersions on what you're doing, I'm trying to put ideas up as for why your shop might be less attractive. Sounds like you're right on top with the current hot tech. I don't know. :-/ –  Paul Nathan Oct 7 '10 at 16:50
    
I appreciate your comments, I really do. Since I am new as a full time employee, I am looking for ways to improve retention. As it is obvious people here do not quite have this down yet. :-) –  Chris Oct 7 '10 at 17:09
add comment

I would say go easy with technical questions in the interview. I interviewed at a company straight out of university, with zero commercial experience. I didn't handle the technical interview well, but they gave me the role anyway. A year later I was a technical lead at the company.

Spotting motivation to learn, and passion for the industry will be keen.

share|improve this answer
    
I understand your sentiments, but in the same regard how do you determine a programmers qualifications if you go easy on technical questions. We usually give more weight to experience and portfolio of work to show and like to discuss projects they have worked on before. So in that context they are usually very familiar with the project or they are not and you realize they are claiming to be something they are not. –  Chris Oct 7 '10 at 14:49
    
@Chris - are you having a problem finding quality students or retaining them. I can't imagine technical ability is preventing them from leaving unless they feel overwhelmed and won't admit it. –  JeffO Oct 7 '10 at 15:17
    
We are having trouble retaining the solid students. The first student left to pursue his PHD and take on a research position. This I understand. Another student left for summer internship back at his hometown and held out until 2 weeks before start of fall quarter to tell us he was not returning. He was a gem too. We just hate hiring a new student every 10-30 weeks. We pay top rate, we encourage students to take off if they have academic responsibilities, and give students the freedom/flexibility to work. –  Chris Oct 7 '10 at 15:23
add comment

You have to cover some basic programming concepts to make sure they stayed awake during classes - algorithms, data structures, etc. I'd also want to hear IN DETAIL about some of the programming assignments they have done. I always find it interesting when a potetial employee can not tell me much about the programming assignment that was a major part of their grade.

Next would be trying to figure out if they had reasoning skills. Can they break a problem down into manageable pieces? I really don't care if they get a logic question correct as long as they can tell me the approach they would use (and of course the approach seems appropriate.)

share|improve this answer
add comment

We retain about 50% of our interns. What we do is keep giving them more challanging and interesting work pushing them to their limits. For half it's too much and they leave (generally on good terms). For the other half, they love it because this is why they got into programming, to create really cool code.

You need to aim the job for the type of interns you want to hang on to.

share|improve this answer
add comment

Why are they taking university positions over yours? They leave on good terms, so just ask them during the exit interview? Are they looking for careers in academe? Do they get 'brownie points' for working with a professor? Is spending time in these positions required to keep scholarship money?

Often on a big campus having a job there is a big benefit to having to commute to a job. Students also need flexible time. Let them work remotely some times. Give them a great laptop to use for the time they are employed.

Make them explain why they want to work for your company in the first place and maybe you'll find out what will make them stay. The short internship may be the minimum entry on their resume they need to go work somewhere else or complete their degree.

share|improve this answer
    
In one situation, the student left because while pursuing his phd he was offered a GTA position which offered better compensation along with school funding. Another student we had, left for a summer internship and then instead of returning here they offered him a remote position to continue working for them while in school and was pursuing a Microsoft internship. It seems everyone that leaves, leaves for a good reason it just makes me sad to see them go because we have had some great developers. Ashame we cannot get more funding to pay them a better rate. –  Chris Oct 7 '10 at 17:12
1  
@Chris "Ashame we cannot get more funding to pay them a better rate." Seems like you already know the biggest reason. –  WernerCD Oct 13 '10 at 3:12
add comment

Technical questions in an interview are necessary, but try not to ask about things that the person could answer if they looked up in the documentation in under a minute. Even things that you think would be necessary (How do you take all commas out of a string) to be half decent. That kind of stuff they can figure out as they go if they are smart problem solvers. Look to see how they answer subjective technical questions rather than objective. Quite literally, you could ask some questions off of this site. Try to avoid Stackoverflow questions. It does not matter. If they can understand the higher level in a nuanced way and sound smart but humble while doing it, They will be able to tackle that language/technology stuff better in a couple months than their peers who have a lot more experience with it.

share|improve this answer
add comment

What kind of tools are you using? IMO I wouldn't care if I was writing code on the bleeding edge, if I had to write it using notepad I wouldn't hang around long. I wouldn't give up my IDE for a 10k salary increase, all the cake you could throw at me, or working on coding for the LHC.

share|improve this answer
add comment

some things you can do to get students to stay.

  1. Make it known that interns get dibs on a full time position.
  2. Make full time employment seem significantly better than internship.
  3. Don't make an internship feel like an internship, treat them like they are a real employee
  4. offer competitive pay, at least high enough that its not a significant cut in potential earnings compared to other jobs even one not related to degrees your interns are pursuing.
  5. if you can't offer pay (or even if you can) offer minor benefits/perks, looks like you can't do this but maybe you can get creative and make it not be considered a benefit. A company that I applied for an internship offered interns one paid vacation day and access to company gym.
  6. if you have multiple intern roles help them find a good fit if what they were hired for isn't a good fit.
share|improve this answer
add comment

Think about retention before the person even walks in the door for the first day of their internship. I've seen people try this in the last 2 weeks of an internship, when those overtures should have been made at the beginning.

Also, keep in touch with the former interns you liked. Coming out of college it is natural to try and get varied experiences, it is even arguable that one should work someplace else. However, when the second job comes around and they've scratched their itch, you'll be in a good position to hire them for their second job. Don't do anything crazy, just maybe a call once or twice a year, or maybe do lunch if you're both in the same area.

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.