I can't tell you a site, but I would implement common algorithms and data structures. That gives you a good understanding of how they work (of course, you don't use the self-implemented stuff if there is a library version avilable, but you learn when to use which ds). Depending on your "level", that could be
- Linked list
- Binary tree
- Balanced binary (or even n-ary) tree (e.g. avl-tree)
- Persistent balanced binary tree (well, that would be beyond the scope of what you usually learn in the first 4 semesters at university, so don't start with it...)
- Merge Sort, Quick Sort
- The Convex Hull - as Divide&Comquer and Plane Sweep for a geometric algorithm as a change...
- Quick Sort - iterative (good luck)
How do i know if i have the proper programming skills for such a job?
It is not uncommon to give you a test before you are hired, so don't worry... It is not like that they would never take you if you don't pass it the first time.