I am an undergraduate computer science student heading into my last year of my bachelor's degree. Lately, I have been weighing the difference between committing to a research project with one of my professors versus picking up a few pet development projects instead.

I see the merit in both of these options, but I am curious what is more important to employers when they look at a resume: collaborating with a professor and seeing a research project all the way through, or showing drive through a handful of side projects on my own schedule?

I think it may be relevant to note that I do not have any immediate plans for graduate school, but rather to jump into software development/engineering straight out of school.

  • Thanks everyone for your responses. I have decided to commit to the research and have already contacted my professor - I think I just needed a kick in the pants. Thanks again! Commented Aug 5, 2014 at 13:27

4 Answers 4


Unless the research is greatly outside of your interest I would go that route. Not only will you likely achieve more through your research due to funding and your professor overseeing, your professor can provde you with an invaluable reference if you do a good job.

Also, he/she might open doors for you (through contacts, hearing about openings, etc...) for after you graduate regardless of which route you take (job or grad school).

Your side projects, while perhaps more fun, may not be as fruitful as the research experience. Though without more info on what yours would be versus what the research is about, I can't really be more specific.

  • 2
    Yes, a reference that can vouch for your work is very valuable. Commented Aug 4, 2014 at 20:29

It depends on what your goal is, and how much self motivation you have.

If your goals are something like :

  • Write more business oriented software, databases, or user interfaces
  • Learn design (GUIs, logos, etc)
  • Learn a new language well

Then I suggest writing your own software provided that you are self-motivated.

If your goals are something like :

  • Learn algorithms or mathematics
  • Learn underlying physical or scientific mechanisms
  • Discover how a specific phenomena works or learn more about it

Then I suggest taking the research position.

The caveat with the research position is that you will be unlikely to do the following :

  • Learn a programming language well (researchers do the bare minimum necessary to achieve a result)
  • Learn business use or potential application of whatever research you are doing (but you could do this yourself later)
  • Use the latest and "coolest" languages or tools
  • Learn how to do end to end application design and implementation (this can rarely occur however)

Your choice depends on what your end goal is...


It depends. Isn't that a fun answer?

I was an undergraduate in CS who went the research route(even over traditional internships). I ended up in a great environment where I had a ton of freedom, guidance and ended up with some excellent references and citations. I had two papers published as first author, my name on the acknowledgements of a couple other papers and, even as I move beyond school and into industry work, I am involved in several other follow-up papers on my research.

For me research was invaluable. It is expected, in the US, for almost all CS students to have internships. So much so that unless you get into a very competitive internship it's hard to stand out. Having research experience makes you stand out. Being able to say, in an interview, "In the paper for conference XXX I wrote YYY" definitely makes companies take notice. It is important, of course, that you take care with research.

Doing grunt work, while part of any research and something you will not avoid, isn't very impressive. You'll have to do some and quite a few PIs will give you grunt work to gauge whether or not you will have the gumption and tenacity to stick around. Plus, as mentioned, grunt work is part of research sometimes. Take the time and talk about the project(s) you would be involved in, see what your place in the research would be. A project where you run tons of experiments but do not make changes, steer the research, evaluate the results is not going to be as impressive or as valuable as a research experience in which you see all aspects of research.

Additionally, no one ever says this, but research papers are a bane on the existence of mankind. Ok, well... maybe just the ones I've been involved in. As a first author in a small research team you will be writing most of the paper. As a lower level contributor to a larger project your writing duties will probably be minimal. Find this out early. There's more glory in being one of the first authors/coauthors but there is a lot more work. With a heavy course load, a research paper is not a lot of fun. My first research paper had me getting fewer than 3 hours a night of sleep for two weeks AND pulling all-nighters for the days leading up to the submission. Academic writing is challenging and has a learning curve. Be upfront with what you can do and be aware of your commitment to the project.

Other answers have said that you don't learn a language well/deeply or use the newest and latest tools/toys in research and that really depends on the field in which you study. In Artificial Intelligence and Robotics(the field I was involved in) I ended up with a fantastic functional understanding of the languages we used. Good research code not only has to work but it has to work reliably and quickly. There's no guarantee that the code you write on a personal project will be great. The greatness of your code(cleanliness etc) depends on your internal standards - both in research and in a personal project. Additionally, in my case, I was able to learn to write code for and run code on one of the biggest super computers in the US. That is a shiny toy. I got to propose new technologies to use and often the code I was using was in the 'bleeding edge' branches of the git repositories because I needed untested functionality. So, to that, I say "eh, it depends". I know some groups that are stuck in the stone ages when it comes to code, tools and work but I know just as many who are on the bleeding edge and, in my experience, it was pretty darn cool.


I was in your exact same position 4 months ago.

TLDR; Do the research!

I had the opportunity to be part of a research project with a professor I enjoyed along with a few of my peers. We all researched the same general topic, but we worked with the professor to define research tasks & goals individually, each approaching the topic from a different angle.

Skills you'll get from research and not from personal projects

  • Collaboration:

    You will get to work with peers (even if it is just the professor) on the research project. You'll develop team collaboration skills since most academic research projects involve reading/listening to other peoples and writing/sharing about your own. Everyone you worked with can be a professional reference.

  • Methodology:

    You get to attempt answer questions with no known answer. How you approach problems which you don't know the answer to, is one of the most analyzed traits in interviews for knowledge workers (programmers, engineers, lawyers, etc). Real opportunities to develop the skills of methodically defining a problem space and deriving an answer are rare. These skills noticeable and will differentiate from other job applicants.

  • Expertise:

    The main goal of most undergraduate research experiences is for the student to be to become deeply familiar with some sub-discipline of your field. Say you do undergraduate research on X. Odds are if your not at a university, you're the resident expert on X . Expertise at something is another differentiating factor.

Apart from the expected skills you will likely receive from the research experience that you won't get from personal projects I would like to point out the following life decision:

You can always work on personal projects, you may never have another research opportunity.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .