Why you should work on large projects while you are in college?

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.

I’ve solved all problems on HakerRank. I’m surely ready for that awesome dev job, am I?

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.

I will create new amazing software first thing tomorrow.

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?

Ahhhhmmm, need to read some code first…

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.

So this is why GitHub is so damn awesome!

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.

Forget about fanatically practicing algorithms on whiteboard and start contributing to a large projects and skip the waiting line.

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.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.