Like many other's I began programming at an early age. I started when I was 11 and I learned C when I was 14 (now 26). While most of what I did were games just to entertain myself I did everything from low level 2D graphics, and binary I/O, to interfacing with free API's, custom file systems, audio, 3D animations, OpenGL, web sites, etc. I worked on a wide variety of things trying to make various games. Because of this experience I have tested out of every college level C/C++ programming course I have ever been offered. In the classes I took, my classmates would need a week to do what I finished in class with an hour or two of work.

I now have my degree now and I have 2 years of experience working full time as a web developer however I would like to get back into C++ and hopefully do simulation programming. Unfortunately I have yet to do C++ as a job, I have only done it for testing out of classes and doing my senior project in college. So most of what I have in C++ is still hobby experience and I don't know how to best convey that so that I don't end up stuck doing something too low level for me.

Right now I see a job offer that requires 2 years of C++ experience, but I have at least 9 (I didn't do C++ everyday for the last 14 years). How do I convey my experience? How much is it truly worth? and How do I get it's full value?

The best thing that I can think of is a demo and a portfolio, however that only comes into play after an interview has been secured. I used a portfolio to land my current job.

All answers and advice are appreciated.

9 accepted

If you have the portfolio, tell them you have 5+ years of c++ experience. You can prove it with your portfolio. Put it in your resume.

Nowadays everyone knows that programmers do side work, especially on open-source projects.


As someone who has sorted through a lot of resumes and interviewed a lot of job candidates, I can tell you what catches my eye. And I can tell you that hobby experience is a very good thing.

The Resume

The whole goal of reading a resume is to decide whether asking you in for an interview would be a waste of time.

  • Start with a purpose statement that looks directly relevant to the position, but not one that looks like you took it right off the job posting. "Simulation programming in C++" is both too generic (simulation programming is pretty broad) and too specific (is C++ all you'll consider, all you can do?). Take a look at the job posting to see how you can honestly state your employment goal in the context of what the job is looking for, but don't do it in a way that makes me think you're feeding me a load of crap just to get in the door.

  • Your list of skills should ABSOLUTELY include those skills you got from messing around on your own. Tell me how skilled you are, either in terms of equivalent years of experience or just a stated skill level. Give me an honest feel for what you can do; at this point I don't care how you got those skills.

  • If a lot of your relevant experience was on hobby/volunteer projects, include a section describing projects you've worked on. Only include those details that tell me you've got skills and experience I care about. I would consider mixing for-pay and not-for-pay projects together, and then make the employment history less detailed.

  • In the past employment section, highlight any jobs that were directly relevant, but otherwise try not to take up more than a line or two per job. The only reason I care that you worked at a supermarket is so I don't feel like that you're hiding something. I don't care that you bagged groceries, stocked shelves, and cleaned the back room.

Pretend you are the one picking who to interview and read your resume. Would you want to talk to this person? Do you believe it's a good fit?

The Interview

When I interview someone, I want to know that:

  • you have at least the minimum skills needed to get your feet on the ground
  • you can learn what you don't know
  • you will fit into the team
  • you're not going to hate the job

I consider hobby experience a huge plus because it tells me you can learn and you actually enjoy doing this kind of stuff. Don't apologize for learning more than some boss asked you to! Out-of-office learners are more likely to be able to fill gaps in project needs and more likely to make a tangible difference in a project. Highlight your hobbying and your community involvement. Talk about cool projects you've worked on and what skills they taught you. It lets me know you'll do more than just fill an opening.

Also, most interviews are actually several interviews with different people. Use the first interview to get a better feel for the culture of the group and the technologies they use. Ask questions. Use their answers to tailor what you talk about with the next guy.

Not sure I said anything you couldn't find on just about any advice site, but everything I said is based on real experience. Good luck.

And by the way, I make my living writing simulation software in C++...


Start participating in open source development. That's the only real way to shortcut the "need experience to get experience" problem.

Open source participation is referencable, and it means a lot more to me as a hiring decision maker than "hobbyist" programming because it means that you're able to develop and support applications that other people will use, and code that other people might see.

You can get a jump on this by mining your portfolo for applications other people might want and publishing them as open source projects right away. Then your resume can potentially reference open source applications which were started x years ago.


I was in a similar position when I went from a support role into my first .Net position. I was honest about what I wanted to achieve. I showed them that in my spare time I was dedicated enough to work towards where I wanted to be.

One of the best tips I can recommend is to not be shy, apply to as much as you can, even if it is for a little bit more experience than you have so you at least get chance to talk to someone and at that point you can talk about why you would be good for the role even though you don't meet their experience requirements yet.


I guess my question is:

Are you not applying because of the "requirements"?

Depending on the situation, there's a good chance that the job description comes from some recruiter that is just posting a laundry list of needs from the company he/she is representing. Chances are if you are even close to what the recruiter needs, you'll get pushed through. (Depending on the area you are in. High need areas like Chicago you basically need a pulse.)

Like Mirage said in this thread (Is "thread" the word kids use these days), worse case is you just don't get the job. Don't fall into the "I don't want to waste their time" mind set. To hell with that. They made the choice to bring you in. Let them decide if you're wasting their time. If you do, so be it. You won't be the first one to do it and you won't be the last. However, it sounds like you'll be fine.

If nothing else, get some code or some demo apps to show them. Chances are they won't get to that until much later in the process, but it doesn't hurt to be prepared.


In the technology area, often the first thing a headhunter asks for is a skills matrix.

I would keep to a 1-page resume format, but create an additional skills/project matrix that can be as long as you want. Since it is in matrix form, the idea is that the employer will only be looking at the relevant sections.

The general format of my matrix is:

skill Experience Projects

Here, you might list C++, 5 yeas, Game1 Game2 etc.

The second matrix is the project matrix. This allows you to include references to your projects from your skills matrix without repeating details

Project Name Details

e.g. Game1 adventure game in C++ ....


Here is the only thing you need to do; apply for the job, get the interview, explain your position, show them what you are capable of (Software Engineers of the World; GET A PORTFOLIO! it's not just something designers do) and .. get the job!

It really is that easy. People respect you for having balls or.. you end up with what you had anyway. There is no downside. Awesome.


Have you written any C/C++ apps for your web development job, perhaps small utilities? Those could be used as part of your portfolio, and could demonstrate your coding ability.

Senior project should count for some professional experience.

Your'e also not that removed from school. I suspect companies should still look at your resume with things like that on it and weigh it highly.


Even though language experience is important, it comes second to "general" programming experience. I would rather interview a Python programmer with 10 years experience than a C++ programmer with one year experience for a C++ position. Languages are learned and skilled programmers learn them pretty fast (The Pragmatic Programmer suggests that you should learn a new one regularly). Generally I think that employers focus more on general programming skills than on skills within a language. This may vary between cultures for all I know though...

A portfolio seems like a very good idea. Sprinkle it properly with screenshots etc. Employers are not (always) cold-hearted bastards, make them remember you. Make sure to have code examples ready. Don't let it be your most pro, hardcore, amazingly 1337 code you have written - stick to clear code that shows that you are familiar with using libraries, that your sticking to a code standard and that gives some insight to the design.