I'm an inexperienced student (having learned up to data structures and algorithms through various online resources) of computer science, and I'm hoping to get a job as a developer some time after I've gotten a few independent projects done.

My question is, how should I choose which projects to work on? I've been looking around stackoverflow-- people usually say to pick whatever you're interested in, but I don't have enough experience to even know what specifically I'm interested in, and possibly more importantly, I don't know what some common beginner project types are.

Essentially, I'm at the gap between course work (and the projects entailed in those classes) and real programming, and I don't quite know how to start. If any of you have any ideas, I'd really appreciate it.

  • 1
    "I don't have enough experience to even know what specifically I'm interested in" What?! You don't need any specific experience to be interested in something. Are you really interested in nothing specifically? Not even an example or two? Dolls? Geometry? Puzzles?
    – Jean-François Corbett
    Jun 21 '11 at 19:46
  • Browse github.com. You may find there interesting project.
    – Denys
    Jun 21 '11 at 19:49
  • It's not that I have no interests, it's more that I have no clue how to start a real project, and because of that I can't accurately gauge what sort of project I should do. Maybe I'll just start small and go from there.
    – tufcat
    Jun 21 '11 at 19:54
  • Doesn't matter. Start by listing out your interests. Once you have a vision of something you want to build, even if it's a little fuzzy, you'll be able to start moving in some direction. Jun 21 '11 at 20:00

A great project would be to write your own blog or website. You could use C# and ASP.NET and do a web project. I see more and more job opportunities that are asking for web application developers.

You should ask one of your professors, or your Computer Science department if they have any programming jobs/research positions open. That will get you started somewhere and might help you find what interest you.

  • Once you have some experience (work on your own page or with your department) you should have no trouble finding an internship with a company for next summer. I have to look for them during the school year, but once you get one you don't have to worry about it till summer! Jun 21 '11 at 20:45

I would suggest starting off with something simple. The language and platform are not important.

Try to think about which topics you find interesting, ever wanted some program that does something for you? build it, even if it exists. once it is built try to think about what is the next step and how to improve it.

By going through a full development cycle: requirement->design->implementation->test->deploy you will teach yourself how to be effective in writing code and possibly find what topics you feel a stronger connection to.

Some concrete suggestions:
Build a Mashup - use an API of some popular site you use or like and build your own application on top of that API. Some suggestions:

See the ProgrammableWeb for many many more APIs and mashup ideas.

Build an Android (mobile) app - build something simple in java that allows you to do one function you think is cool, it doesn't matter if someone else already built it, try building it yourself. see this is as an example

Build a simple desktop application - build something that does some sort of data processing, perhaps it will read data feeds from some online source and store them in a database. later it can use that information to display something interesting.

For example: when I was at the university I had the same question you have, I decided to build an application that predicts the outcome of sports games. I first stated by scraping sports gambling sites to get the betting ratio, later on I added the ability to read league / tournament score tables and store the history of the teams. Once I had that I started adding features to the prediction engine, streak length, home strength, rank difference, venue type... I built a roadmap for my application and tried to visualize how it will look next month and next year.

Eventually I stopped working on my own project when I started working, but I can certainly say that my job interviews got progressively easier (and more interesting to the interviewer) the further along I was in my project.


Write a web-based address book. All kinds of apps, including social networks, have to deal with collections of person and address.


I'd suggest start looking for industry rather than project of interest. Will it be gaming, enterprise, educational etc... You will be overwhelmed with details of implementation anyway, so if the field is of interest, this will drive you further.

You also might try freelancing web sites, not for money, but for super small and simple (maybe even free) projects to communicate with people and escalate project mngmt process.


I think you should wait and see how it's going. You tagged Java and C++ so you seem to choose the OOP direction, but I think you're yet to open a whole world of definitions to "programming" or "computer science".
Like some said, web is a good start, but maybe you'll also like security, mobile...

  • I do like OOP, and I really like algorithms. I'm not sure where that would point me, though..
    – tufcat
    Jun 21 '11 at 19:52

Get an internship. They'll give you projects to work on, you'll get experience, and you'll learn a lot.

Maybe some $$$ too.


Write a few small, challenge based "programs". Then decide on some lofty, incomprehensible monstrosity that includes 20 different versions of Kitchen Sink. Fail hard. Get back up and do something more reasonable.

Pretty much what everyone does.


The interest don't need to be in programming. If you have other interests than computer-development activities, then look there and try to find something that you could do in this field.

Personnaly I like to make video games, but I'm also building an (open source) tool for my friends making digital comics.

So, to find your interest, don't look at computing communities : look elsewhere.

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