Going Paid Professional
When going professional as a developer it’s important to gain valuable work experience and build programs. Most commonly we think we need senior skills and to gain traditional full time work but in modern times there are many ways to gain experience. Learning the language fundamentals, essential skills and building some simple programs is enough to continue growing and developing your skills through experience.
When starting out with paid work and your career often the experience is more valuable than the money. In the beginning of my career I worked on many projects for a fraction of what I earn today as a developer. In 1999-2000ish I was building complete education and training platforms for very little money but the work was rewarding, interesting, I was gaining valuable experience and building relationships. If you follow your passion in life and think of outcome first the money will follow. Experience when starting out is more valuable than the money but that’s my opinion and what’s important to you may be different and is your choice.
Let’s explore some options for going from beginner to paid professional as a developer but please keep in mind that all the options in this list are not for everyone and each person is unique and has their own preferences therefore some options may seem undesirable to some and that’s ok. There may even be some options not listed that you thought of that would work for you to gain experience. Great!
Developers in some languages will have an easier time finding volunteer development work than others because of demand but searching online and in your local community for volunteer projects may be a good option to gain experience. Maybe you even have a friend that works for “xxx” that would find a “xxx” calculator, project, etc. useful. It will likely lead to some practical experience and a reference.
Micro Job Sites
These sites run on the business model that people will do small jobs including programming jobs for small amounts of money. These are great avenues for developers to use and post their services. The companies advertise their platform and in essence your skills in their marketplace and you have the potential to do small jobs, earn experience, gain clients and references.
The jobs may be as simple as troubleshooting a simple program. I did a few quick searches on some popular micro job websites and seen jobs that included “C++ programming work”, “tutoring in C++”, etc. In all cases be genuine and honest in representing your skills and specify in your post description that you’re looking for simple programming work and jobs and even ask for the details to be discussed before you accept the work. Some people on micro job websites request this so that they can assess the work first before accepting it. You can also post and offer your services on many different micro job sites and each one provides you access to a new market of buyers.
Freelancing is when you do work on a per project or task basis usually under a flat fee “fixed” or hourly rate pricing model. Most buyers want flat fee “fixed” pricing but that may be dangerous if you’re not good at estimating work because you’re committing on your word, honor and success of the project that you will do the work for “xxx” dollars.
These sites allow you to respond to buyers looking for freelancers for a project. You can search the database of listed projects and choose which are well suited to you and then respond with a quote and an advertising pitch (why the buyer should select you). If you’re new to the freelancing community then you may need to work for lower rates to build a portfolio that’s usually linked to your profile on the site so that potential clients and buyers can see what you’ve done and what projects you’re involved in doing.
Buyers are interested in making sure you deliver because they care about the success of the project. A lower price may put you in front of the competition, gives buyers value and opportunity to save money, and perhaps leaves them with more contingency budget if anything goes wrong. If a buyer is going to take more risk on an unknown developer looking for experience then more reward may help them assume more risk.
A beneficial aspect of freelancing sites is that you can pick and choose which jobs are well suited to your skill set at the time. If you’re a beginner search for beginner work. New projects and freelance opportunities are listed all the time therefore keep checking back with the site. Some freelance sites will also email you new opportunities matching your skills and all have different features, perks, policies, commission rates, etc. Like micro job websites you’re not exclusively locked into only one freelance site and can be a part of many marketplaces. Also remember you will have a profile that you can use to advertise and market your skills. In all cases be honest and genuine when describing your skill level.
Thinking outside the Box
Classified boards like Kijiji offer developers an opportunity to post services and also search for clients that are looking for development work. To some this may seem laughable but I’ve picked up good clients (medium sized companies) and contracts from Kijiji without intent from simply browsing the classifieds for items I don’t really need and stumbling across posts from companies needing a developer for a project. It’s a low cost way for companies to advertise contract work. I also see people offering tutoring services for all sorts of topics and advertising their other services including development.
You could try and find opportunities in the job market through a search or recruiter but you would need to look for a junior position and represent your skills honestly even if all you have to offer is that you took a course and built some simple apps. Taking a course is a smart move to learn fast but it’s likely not enough in itself for a strictly C++ programmers role but if you apply those skills for 6-12 months or so and write some programs moving into more advanced ones then you have something to show portfolio wise and have more to discuss.
If you’re proficient in other languages and your new learned skills could be complementary in a position then you may have enough knowledge only knowing the basics. For example I see many C# .Net positions seeking developers with C++ as an asset. Any knowledge of C++ gives you an edge against other developers seeking that position and the job will likely allow you to gain on the job experience in C++ thus building your skills. You may be hired to maintain or convert a legacy program perhaps as part of a team rather than building a new program or working in isolation. The key is seeking the opportunities that best match your skill-set at the time and are the best fit.
After taking a course you could tutor other beginners on the basics. If advanced questions are asked that you don’t know you can always do some research, find the answer, learn it and explain it. No one knows everything and there will always be something you don’t know but you do know something and that’s valuable knowledge to people learning. I’ve taken many courses where the instructor didn’t know the answer but the best instructors admit they don’t know the answer, seek to find it and then explain it.
These are a few options to gain C++ experience and obtain professional paid work but not all options are the right fit for everyone. Only explore options that you feel comfortable and are well suited for you and always honestly and genuinely represent your skills.
This is an excerpt from the course “How to Program in C++ from Beginner to Paid Professional“. Discount applied for those interested in taking this course and learning more about C++ from beginner to paid professional.