How to Become World Class in Programming and Get a Job in Tech?

You are in the final year and the placement scene in your college is pretty bleak. It is late in the night, you should have slept by now. But you are still up, doing what we all spent our college days (and nights) doing.

You love coding, but all the fresher jobs you have been eyeing either require a high percentage of marks or only accept students from Tier 1 and 2 colleges.

It might not seem fair right now, but that’s how it is. And the sooner you accept this the sooner you can move past this and focus on the things you can change.

But why do a lot of companies go for students with a high percentage, or for students from good colleges even though there is little correlation between coding skills and academic performance?

Primarily, because it is a proven record of industriousness. These companies know that they will be able to train people and help them build decent programming skills if they are willing to work for it. And they also know that it is very difficult to change someone’s attitude towards life. So basically what most companies are looking for are people who are fast learners and who are willing to put it in the effort.

This is all good, but where does this leave our friendly neighbourhood programmer.

It leaves you with a way out. But first you need to get into the mindset of the person who is going to hire you.

There are tons of companies - startups, MNCs and everything in between that are looking for a developer like you. But hiring is hard, it’s difficult to consistently hire good people without spending a lot of resources on the process. And it is costly, companies spend about 30 to 40% of your annual CTC on the hiring process. No wonder they don’t want to get it wrong. Every mishire would potentially cost them lacs of rupees. So, to minimize the risks they focus on proven and known metrics. That’s why they focus on marks. That’s why they focus on algorithms in their interviews.

I am hoping that probably by now you have an idea of what you need to do. It is relatively straight forward. You just need a way to showcase what you are capable of. And not by words, but by actions. This is why no one really looks at resumes. They are just words.

Okay, so the actions points. Let’s break it down. Here is what you can do,

1- Start working on your programming skills today

In the present times the choices are endless. And that’s not always a good thing. You can look up “the choice paradox” for more on this. If you are just starting out, pick a language and go deep. Instead of building CRUD applications in 10 different languages, choose one language and get to a good level with it. Choose what you want to specialize in. Is it

  • Frontend
  • or Backend
  • Android
  • or iOS?

After that pick a language. For backend you could go with Node.JS, Python or .Net. If you want to start with the frontend you could choose a framework like React or Angular or maybe even vanilla JS. This would need a separate article to cover it entirely, but I hope you get the idea.

Action item #1 - Pick a language

It really doesn’t matter which language you choose to get started, as long as it is not Brainfuck. And anyways once you get good at learning you would pick up other languages in no time.

How to learn is another choice that you’ll have to make. Your options are Youtube videos, free courses, tutorials, books and playground platforms like freecodecamp.

What should you choose? All of them. Start with a youtube video of maybe 1 to 2 hours to get a sense of the language. After that you can start with a hands on course from youtube or coursera that has some good reviews and is preferably free. The most important thing here would be to build whatever the instructor is building. Another way to optimize your learning would be to watch a section, pause the video and then implement it.

2 - Start building something impressive

Once you have a grip on the basics start building something. Create a better version of your favorite app or website. Build up a portfolio, and focus on quality over quantity. Building two or even one great project is much better than building a calculator in all the languages known to mankind. Choose something that you would want to use. Think about it as a product that would be used by actual users and you would have an edge over drones of applicants with boring resumes.

Action item #2 - Build something impressive.

3 - Get involved with open source communities

This is the era of open source. Imagine that you are an interviewer. Most probably you would also be a developer and conducting interviews would just be a small part of your job. You are interviewing a candidate who contributes regularly to the open source project your company relies on. Can you imagine how the conversation would shift completely from where you have studied and how much marks you got, to what you are doing in that project?

Open source is great. Everyone wants to contribute, but not a lot of people do. But people who do, get a lot of respect. Getting into open source might seem daunting at first. So let’s break this down even further.

3.1 - Start reading open source code

Again, focus on one or two projects. Check out the recent commits, pull requests, walk through the codebase, read some of the recently fixed issues and discussions happening around those issues.

Worry you must not - even if it doesn’t make a lot of sense right now. You are just beginning your journey. It will start making sense soon.

3.2 - Find beginner friendly issues

After you have been reading for some time, maybe a few weeks, start looking for ways to contribute. Read some guides on how to contribute. Github has a good one. Search for beginner friendly issues first. They are usually tagged as such. Don’t worry about the kind of issue it is. Even if it is just to change a string. You gotta start somewhere.

Action item #3 - Get involved with open source projects.

4. Solve algo based problems on Leetcode, Hackerrank or Hackerearth.

I don’t think performance in solving these problems really correlates with actual real world programming performance, but these problems are kind of a norm in tech hiring. Many companies are trying to change that and figure out new ways to judge candidates, but we can not wait for that to happen. Working on them would at the very least improve your thinking and problem solving abilities.

Also I have seen a lot of people go crazy on this. Solving challenges for 8 hours a day, every day. You probably should stay away from that kind of craziness. Have a balance, maybe solve just a few problems each day or set aside one day in the week for this.

Timeline

I am not going to lie. Learning to code is easy. But learning it well, that takes time, it takes practice and it takes patience. If you are in the final year of your college and you start now, you would have developed a lot of skills by the time you graduate. But nothing is gonna happen overnight. It would take a few months of full time effort at the very least.

In the next article, we will discuss the best process for creating a presentable front and applying to jobs that would be suitable for you. But for now, focus on improving, focus on learning, and the world will be your oyster.

HashJar

HashJar