views:

150

answers:

8

I'm a Senior student in the process of building my portfolio by the time I graduate.

I'm already building a grading system for my University and I think this will look great and allow me to make some contacts within my city, but I'm looking for project ideas that prove to potential employers that I have a passion for programming.

What type of projects make students look good to potential employers? If you are a student share any projects that made you score some cool point in your peer group.

Thanks!

+6  A: 

Off the top of my head.

Write a C compiler (or something like that). Maybe just part of the syntax, but something to show that you tried. (Post the code so they can look at it).

I would start looking at contributing to open source projects. Find one that interests you and start there.

If it interests you, build a web site and write "articles" or blurbs you about programming stuff that you find interesting, or want to try and explain to others.

Really it is just about anything that shows employers, that you're not just doing it for the money.

Kevin
How about a Befunge (or possibly Trefunge) compiler? http://quadium.net/funge/spec98.html
JAB
Building a compiler is a bit out of my league because I have zero experience with lower level languages.
Sergio Tapia
It's really not about succeeding (it kinda is), it's about trying. You can always get the Dragon book (for about a dollar, no joke that's how much I paid), read through part of it and try. There is a huge difference between trying to write a compiler and making mistakes, and writing a simple app that pulls data from a database. They are both ok, to do, but writing the compiler says, "I'm trying to do something that is beyond what I know, but I'm trying to figure it out." Doing that makes people take a second look, and say yeah he's really trying to expand his abilities.
Kevin
Now learning how to get information from a db isn't bad, I'm not trying to say that. In my experience, its something that a lot of people learn, and they do because they need to, and that is fine. If you want to separate yourself from others, sometimes you have to pick things that are outside of your comfort zone. Something that will take some time to learn, but at the end you can say, "yeah, I didn't know if I could do it, but it was a challenge and I tried."
Kevin
+2  A: 

When I've been in the position as an employer I look for enthusiasm first and then skills.

Today, any person who created a project on Windows Azure, which displayed skills in multi tier applications and client/server technology would grab my interest. And you should make a project about something you like, because it makes it that much easier to talk about the project to a potential employer.

Show that you know what happens out there with .Net, TDD, and general application knowledge. That you know about caching and scaling issues.

The advantage with a web based project imo is that it's easy to show off, nothing to install.

Mikael Svenson
A: 

You should try to contribute to a project that interests you. If you would like to do mobile programming, contribute to a mobile development project, if you want to get into game development find a game project to work on. Find an area that you think you would be interested in getting into after you graduate and work on a project in that area.

I'm always impressed when a new programmer comes in having contributed to an open source project. It shows that they have good initiative, and I'm also able to look at the code that the've created. If they have made significant contributions to a project of their code has been rolled into the main branch, it looks even better.

Macdiesel
A: 

I'm actually in the same boat right now. Perhaps you should create your own startup company? If I were an employer, a potential candidate who had the ambition to plan and develop their own business would really stand out.

Mike
That would do well if the candidate is interested in business development type positions with an employer, but it doesn't provide any insight into the candidate's passion or aptitude for programming.
dthorpe
I disagree. What would stop him from basing a business around something that he spent time programming? case and point any software company...
Mike
A: 

Build a product (mobile app, web app, web site, desktop app) and offer it for free. Consider something like the Plenty of Fish Web site story, which was built just to help teach himself a new programming language, ASP.NET. C.f. Coding Horror Reference

Lucas B
+1  A: 

I will agree with Kevin, my list to identify a good programmer...

  1. Must atleast know difference between Stack/Queue, I can bet, 50% of multitier crude web app programmers dont know the difference.
  2. Solving/Parsing/Evaluating language and expressions
  3. Threads !! Multitasking, Locking
  4. Continuous update on latest technologies like Azure, if its new, then whats new in it
  5. Games, even as small as X and 0, tetris, or simple shooting game, because good programming skills is about mixing logic, science, maths and creating "WOW" reaction by the users.
Akash Kava
+1  A: 

One indicator for passion for coding I've found reliable is whether the job candidate has written anything for themselves - not for money, not for homework, but just writing a program to address a problem or goal they identified for themselves. It's often very telling how a candidate talks about such projects - do they become animated / excited / enthusiastic to tell you about their little creation? Did the project evolve over time (most do)? When did they find time to work on this project? How sophisticated did the solution become? And most importantly, what did they learn from doing this project? What would they do differently?

For example: a high school student that wrote their own livestock pedigree tracking program. Did it use a database or home-grown storage (why/what tradeoffs/lessons learned)? Bonus points for figuring out how to generate and print a 4 generation pedigree printout. Etc.

Another example: Writing a program to compute and display fractal images is ok. Supporting user interaction to navigate through fractal space (click to zoom, click to render related fractals (Mandelbrot vs Julia)) is better. Distributing the fractal computation across multiple networked computers using basic TCP/IP: outstanding.

It doesn't really matter what the project is about. It simply provides a platform for conversation, so that the employer can get some insight into how the candidate thinks and feels, what motivates them, and how they make decisions.

dthorpe
A: 

Start with a game programming making use of threads, data structures and thinking about the possible solutions to a single problem

Devil Jin