views:

208

answers:

8

We have a university pretty close by and I'm thinking of trying to hire a student for a small and quite well defined coding project.

I know that there will be some drawbacks (level of education, experience and time), but I'm hoping to find someone who is not quite fully set in his/her way of doing things and also might give me a new idea or two.

What should I be looking for?

Note: I realize that there is a more general question, so I'm looking for ideas that are specific to my "hiring a student" idea.

+6  A: 
  1. Make sure you give them a programming test. Doesn't have to be very hard. Just something really really simple. Let them do it in whatever language they want. If my experience of uni is anything to go by, at least 75% don't have a clue about programming. Make sure you get one who can actually program and wants to.
  2. Look for projects in their spare time. Any open source involvement, personal websites, blogs, etc. Anything that shows they do more than just attend lectures, take exams and get drunk.
Simon P Stevens
+1  A: 

Ideally you'd like to look for

(1) someone who is enthusiastic about learning

and

(2) can prove themselves capable of thinking for themselves

(also)

(3) they can pass a skill test

For (2): someone who can think up a solution to a problem, even if it's not the best solution, is infinitely more valuable than someone who either copies stuff off the web without understanding or someone who keeps bothering you for everything. At the same time, be careful they're not some arrogant prick (some students, may fall into this category: be careful that they are open to suggestions and don't scorn every idea that's not their own... I've seen this happen and it's not pleasant)

For (3): they will mostly have language knowledge if they're still studying and not much else; the test results will give you an idea about point (1): those who do well are enthusiastic about learning and understanding.. I'd do a test with difficult questions as well as easy/medium ones (stuff like trick C-pointers, function pointers), as that will tell you how they've learned what has been taught at school.

laura
+1  A: 

For interns / year out students one of the key things we ask is what they have been doing outside of University coursework to learn their trade, to get an idea of how seriously they take it. Whether their chosen development ecosystem is .Net / Java etc there are free tools, free tutorials and plenty of material for them to work on without the need for the Universiy to be involved.

If they 'love' their chosen subject and are enthusiastic, they will of downloaded the free IDE's and be hacking away, those are the people we choose. The ones that only do the coursework and nothing else we avoid.

Andrew
A: 

Look for someone who:

  1. gets good grades (in CS/programming)
  2. has worked on projects outside college
  3. is enthusiastic about programming
Galwegian
+2  A: 

You may be better either waiting to hire until after their finals, if they are local, or not going anywhere for Christmas, or wait until after Christmas, as midterms are coming up, then they will start to stress for finals.

Students tend to have more time and can-do attitude when the semester is first starting.

You may want to talk with a professor or two in the comp sci department, and see if they have any suggestions, as they will know which students are working on projects outside of their class.

James Black
This is a very good idea, professors can usually point out the students who are good, who are interested in programming, who are interested in theoretical aspects, etc... basically, they can point out who is worth working with
laura
Another solution would be to see whom is preparing for the ACM programming contest, as they will be learning how to develop algorithms quickly, and so have some ability for programming.
James Black
A: 

Student have not yet their attitude smoothed by professional experience.

There will be a bunch of them that think they know best and are hostile to change or challenge to their design.

I suggest, for your programming test that

  1. you change the requirement halfway through. ( better if it break the student proposed design )
  2. you suggest a (bad) improvement and reject his solution.
  3. ask for another change that require to rollback your bad improvement.

Beside ego-issue, look for the following clues:

  • A good candidate should ideally adapt his design or express desire to: he cares about the code. Average candidate will just hack the new requirement without thinking twice.
  • A good candidate will try to convince you how bad your change is, but should comply.

Be careful that due to lack of experience the 'care' a student put in his code is not necessarily what you expect. But if he cares and listen, you have good material there.

Typical stuff for student is sorting problem ( done by hand, not using libraries ). They probably have their head filled with all the possible algorithms so they won't lack arguments by lack of experience.

vdr
A: 

Contact the local college, if you have one close by. Most Computer Science, CS&E, Software Engineering, etc have required internships / co-ops they have to complete. This is real work experience and you can probably easily pick somebody up from one of those programs. They usually start their Co-Ops just before the start of their Junior year.

I had to do three sessions for my degree and it landed me a job after college. Cheap training, preview the employee actually in the office, and they get some work done. The student gets to see the company, gets on the job training, and real world experience working on real projects (don't make them change toner, that is annoying for a CS&E! :) ).

bdwakefield
A: 

Ask questions specific to the job you have. Get a time commitment. Have them show you examples of classwork. Breakout your laptop and watch them work on a task.

Jeff O