I’ve been through a lot of interviews right after finishing university. Phone screens, screen sharing coding exercises, whiteboard problem solving (my favorite), day long tasks, 4 hour challenges, you name it I’ve done it. Eventually I got the job, but what followed really struck me as strange.
So I’ve been studying algorithms and how to upload things to the database and calculus with discrete math and other stuff. Also solving problems at the HackerRank. I know how to solve problems!!! Great, now the interview time is here and I am so excited because I love it. It goes well and I get the job. Great, I showed a few people that I know a syntax and know how to put it together to do prime factorization. Now I’m all fired up to write some awesome piece of code.
This is where it starts to get somewhat strange. Remember all the algorithmic problems that you know how to solve? All that is fine, but does not really matter. The majority of junior development jobs (at least at relatively established companies) are maintenance related. What it means is that I don’t get to write new things according to well defined specifications. That would be truly a dream come true. Instead, I get to beat the old code to be compatible with new versions of everything and fix bugs that inevitably get surfaced. And the code base that I need to work with contains 13 THOUSAND files totaling 75 MILLIONS lines of code. And it takes you 5 MONTH to get somewhat familiar with the code. Ouch… that sounds painful. How exactly do you do that? What book do you get?
So now you understand why that professor with industry experience kept telling you to get used to read a ton of code. But where do I get a large code bases to practice my code reading skills and learn how to get familiar with projects in a timely manner? The holy grale of OpenSource community.
Added benefit is that contributions to open source projects looks VERY nice on resume and the whole whiteboard mambo jumbo suddenly gets thrown away because you actually showed that you can do what you will be doing at work.
In all seriousness, I do believe that the amount of successful pull requests should be the main brag factor in hiring process. It automatically shows that you can handle a dev work.