Hunt in the Wild
At peak times of recruitment, we interview 40-50 candidates per month. Visit our Careers site to know more about open positions.
The best way to boost your CV by a factor of 300 to 500% is to participate in a real-world project. That doesn’t mean University projects. I mean a real-world project, that allows you the possibility of writing real software to solve real-world problems.
How to Choose a Project?
There is a tendency among career starting developers, however, to sample a few projects, like lick on them to “taste“ them. That’s not useful. You need to get your hands deep and dirty in software need to see it.
Good examples of such projects would be open source projects. Open source projects are an immense self-effort. You work within a community of experts, and sometimes amateurs/learners, but at the end of the day there is a huge learning curve to understand full-fledged systems, and contribute useful code to solve specific problems. This is, by the way, the path that great software developers like Linus Torvalds – the inventor of GNU/Linux, Guido van Rossum – the creator of the Python language, and Rasmus Lerdorf the creator of the PHP language, trained themselves as formidable software developers.
Some will tell you to go get an internship if you want to learn to write something. Nothing could be farther from the truth. You cannot train yourselves into being an ace programmer by being an assistant to a so-called senior developer. Great software happens in open source communities. LINUX, BSD, Perl, Python and Ruby are open source. Some good software also comes from closed source companies, but those are not available as a learning platform. So take what’s already free and available!
Find a Programmer Community
So pick a language you want to master, and languages are overrated and find a community that will suit you as an opportunity to learn to programme to meet mutual expectations. Observe how that community works, who the most active developers contributing are, who is answering most community questions. The larger the community, the better. So make sure to not pick a project with 1-2-3 developers, rather one that has something like 8 to 10 active contributors and a community of users/member that is 10 to 100 times the number of active developers.
Find a point of entry for yourselves. This could be documenting the software for users, which is a great place because you get acquainted with the workings of the software intimately. Or pick a small feature and start to write code for it. Or pick a bug, in fact, a few bugs, and start fixing them.
What to Expect from Your First Project
Once you have committed any code, commit to it, or submitted it to the code maintainer of the project, expect the code to be rejected. Initial rejections are good because you will get feedback. Take it at face value, nothing personal. You have nothing to lose at this point. You’re gaining, no matter what happens. This way get into the game.
This should likely take you anywhere between 1 to 4 weeks, but that is a very small price to pay for the rewards that you gain in form of new technical and non-technical learnings.
As you start to achieve the first success in terms of having your code accepted into the project, try slowly to increase the difficulty of the problems you select. Keep in mind that you are operating within the community and for the most part the hierarchies in such a community are not officially detailed. But you should honor the implicit hierarchies. Do not hesitate to be led by others who have served the community for longer. At some point, if you want, you can also lead initiatives in the project when such time comes.
Make sure that your code bears your name because you are going to present it in interviews and with your job applications in future. Make sure it is available, readable and well documented on a public platform like GitHub. Keep it presentable.
Building depth in one project is better than sampling multiple projects. Consistency is always a winner. Make sure to stay committed to one project for as long as possible, and I mean no less than 6 months, if possible a year.
Where to Go Next?
If you really feel the need for it you can pick your next project after that. But if you do that make sure that you pick something really really different. For example, if your first project was a piece of application software for example like a CRM system, then make sure for the next one to pick something radically different, like a USB driver for an audio device, or an enhancement to an open source desktop application. The advantages are obvious. You will get to work on totally different kind of problems. You will probably, most likely, be using low-level languages C/C++, or even Assembly, which by the way are the Gods’ gifts to programmers. And you will be working within a different frame of requirements/resources compared to application software where resource economy is not the primary goal, rather just delivering user value is.
You might be asking aren’t university projects sufficient to train you to be approved. The answer is no. University projects are designed by your professors to train a baseline of, apologies to them for using the word, average programmers. There is a sound reason why the University aspires to train the average, thus fulfilling its social responsibility, but if you want to be among the best, you need to look beyond into the wild-west of open source projects. That will fast forward you into the future as a programmer at warp-speed, compared to what you taught at university.
Wish you great luck in starting your career, and make sure to check out our Careers Starter Programs.