Greetings,
My name is Micah, I live in the US and I am a recent graduate in the field of Computer Science. I have experience in C++, C# and Java but only basic console programs and minor OOP. I have a little database administration experience. I currently work in the electromechanical field but I want to get a career started in programming and software development. The economy is pretty terrible nearly everywhere and most employers are looking for 3-5 years experience for "entry-level" jobs. This leaves me with little choice and opportunity of on the job training. I am looking for a project that I can work on part time after work and a mentor to review my work and give me direction. It can be open an open source project or an unpaid project for the company you work for, so long as it helps me learn and I can add it to my resume. I am self motivated and I ask a lot of questions so that I can always improve. If you are interested or know of any similar opportunities, please respond here or PM me.

Thank you for your time.

The best thing that you can do is to think of your own project. You can do basically anything in C++, so you have a wide range of areas that you can choose from. Some things are easier in C++ that others.

I work in mathematical modelling, so I find it easier to build things like simulation and data analysis software than interesting GUI projects. However, for you it might be different. Anyway, you should basically think of something that you think would be useful and then just get going on it. As you said, you have no experience. So at first you will make a whole bunch of mistakes and the thing that you write probably won't be world-beating.

I don't know if your request for a personal mentor will generate much interest here, but I'm not sure that it's the best way to use this site anyway. There are loads of talented and experienced people on Daniweb and by asking for the time of just one, you're chucking out all the rest. If I were you (and I was once) I would just start writing something and when you have a question, post it here. If it's a genuine question, you'll get the benefit of everyone giving you their opinion on it. I started out in C++ trying to implement a new method for fitting multi-component exponential decays to some data that I had from the lab and it took me all the way to a job in C++ development (although it took about 7 years to get there! However, it wasn't my original aim to move into software development, so you could probably do it more quickly :) ).

I will give you two pieces of information that will help you out in the long-run:

  1. Use source control (git, svn, bazaar, etc.)
  2. Use automated testing (e.g. CPPUNIT)
  3. Read books

If you don't know what these are then look them up. If you already know how to use them, then make sure you do so. Some good books to read are

  1. The pragmatic progammer
  2. Effective C++

Have fun and post often :)

ravenous raises some good points; building your own portfolio and making it publically accessible (github, etc) is very important. However, I would suggest that you can get everything you are looking for and more by choosing an open-source project and jumping in to the bug tracker.

Some benefits of an open-source project (that has substantial user base) are: there is often some sort of core group maintaining the project and making core decisions; there is usually a set of standards that need to be followed; the community is looking for (and therefore receptive to) people trying to contribute; almost always there is revision control to maintain order.

So, while there will be a learning curve to begin, you will be forced to read code which is probably the single most beneficial thing to do to become a better developer. Once you are comfortable with a small portion of the code base you will then need to write code (aka practice). This code will be submitted to a team of your peers for review before being incorporated in the project and you will be provided direct feedback about your contribution.

What you get is the ability to list your contributions on your resume, work with a professional product and team, learn from an existing system, have valuable feedback regarding your work and, above all else, get familiar with reading and writing code.

This allows you to speak intelligently during an interview about details you've encountered with hard problems, or personality conflicts, or other things you would not necessarily experience by creating your own project.

I'll also add that you will find a wealth of programs in the open source world built from myriad programming languages and platforms. You can choose one based on your experience and comfort level and expand from there at any time. For instance, suppose there is a position you'd really like to go after but you dont have any experience in that domain. You go out, find a project that is currently working that domain, learn it, contribute (or not) and walk in with working experience directly relevant to the position you seek.

Comments
The point about reading other people's code is an excellent one
I like your advice, useful for me too ;)

Thanks for the advice and information.

Are there any good websites for browsing open source projects?

This article has been dead for over six months. Start a new discussion instead.