Table of contents
- Starting Early and Finding Domain
- Picking Up Programming Language
- Resources To Learn
- Building Projects
- Building web presence and portfolio
- Building Killer ATS Proof Resume
- Say No To Unpaid Internships
- Data Structure And Algorithms
- Contributing To Open Source
- Soft Skill
- Building Linkedin Optimized Profile
- Network Network Network
- Resources
India is still a developing country and there is huge competition for single jobs and only the IT industry is becoming the saviour for engineers. In India, mostly 3/4 tier engineering college graduates either leave India for better life or do masters in computer science, MBA . even after masters, MBA, most graduates either do some other job or remain jobless, underpaid.
But nowadays this is not true that only 1/2 tier grads get lucrative jobs. I am a 2020 graduate from 3 tier engineering college then also I am getting offers from 10 LPA-12 LPA with WFH. even USA recruiters are reaching me for job. getting 10 LPA — 12 LPA job offers right out from the college is a dream for many 3/4 tier comp sci graduates. The target audience of this blog is 3/4 tier Indian grads. so, if you are not from India or you are from 1/2 tier Indian grad let me know in the comments if I am missing anything in this blog.
Starting Early and Finding Domain
Most Indian college grads in the last year join some programming classes or start preparing for competitive exams. I advise you to start exploring every domain of computer science from the 2nd year.
When i was in college i spent 1 week to learn and understand every domain of computer science. In just 2 or 3 months i found my love web development. i was frustrated when i was learning javascript but at same time i was curious that's how i found my interest in web development
Make schedule of 1-2 month and every week spend 1/2 hour to learn about domain.
Picking Up Programming Language
You will find hundreds of online resources, blogs for this topic. let me make it easy for you — pick a language that is of your domain and you like working with. I was interested in web development and at my time, javascript was not a popular language it was just client-side language but now javascript is getting used for building APIs, App development, and even for machine learning.
There is no programming language in this world which don’t have conditions, operators, variables, loops, function. so, once you learn one language it will become easy for you to learn any other language.
Still, confused? check out the article Stack overflow survey of programming languages
Resources To Learn
In this era you should not spend so much money to learn programming. everything is freely available on internet even if you join communities, meetup they will also guide you to learn programming. There is nothing wrong buying course or bootcamp. but if you spending heavily money then i think you are doing something wrong. There are so many scams and frauds is going on in edtech industry. Everyday there is new controversy and scam. Read this article to understand
Before you buy any course or bootcamp. first research properly about that course or bootcamp don't throw your money directly. However, you will find whole section of resources to learn at end of the blog.
Building Projects
Building projects are not that hard all you have to do is apply what you learned from courses or books. Start building very small projects and gradually increase the complexity of the projects and deploy projects on GitHub.
if you want to stand out from crowd build libraries, frameworks and make it open source. don’t forget to write documentation of the project.
My first project was simple photography portfolio using bootstrap which i deployed in freenom server. here is the github repo
Then after i created
- Weather Scrapper - Simple php app
- Frontend playground - Simple frontend playground using iframe
- MetalBoy music album site - Lamp stack web app
- Basic swiggy clone - Lamp stack web app
- Expense App - React and redux app
- Perfect Rhymes - Chrome extension
- Devblog - Full mern stack web app
- Node Chat - Chat application using node and socket.io
if you observe here i gradually increased complexity of the project and all projects are real world. if you don't have any ideas build clone of website or app but don't build tic toe or sudoko.
Building web presence and portfolio
As you know coronavirus changed the whole industry. Now, people are getting remote jobs in other countries. now your opportunities are not just limited to your city, country. you can get remote jobs abroad.
The portfolio shows that how much you are serious about your work and it also shows passion, professionalism. There is plenty of portfolio design is available on the internet and you don’t need fancy domain names like .com, .dev, .code you can easily host your portfolio on Github Pages. In your portfolio list out only quality projects don’t list out every project.
if you did any freelancer works don’t forget to show a case study of that project show objectives, outcomes of the project. check out this blog for inspiration 30 developer portfolios to inspire you, 15 Web Developer Portfolios to Inspire You.
Use blogging system like hasnode, dev.to. honestly, never self host your blog because for a successful blog you need to invest money in SEO, marketing and these platforms are doing everything for you without any cost. you can start writing blogs on interview questions, programming concepts, trending technologies, tutorials. blogging improves your skills in writing documentation, technical blogs and blogging also shows how much you are passionate.
Building Killer ATS Proof Resume
Making a Resume for every job application is time consuming process sadly there is no way to tackle this issue. try to make a resume relevant to the job description. I already wrote a blog on this topic check out here No BS Guide To Make Killer ATS Proof Resume
Say No To Unpaid Internships
Instead of finding unpaid internships give priority to paid internships. unpaid internships show that you don’t respect yourself and it not contribute to your branding and as you know most unpaid internship is exploitation. if you are getting paid before graduating you can project these internships as your strength in your job interviews and negotiate for salary and that’s what I did in my first job interview. there is a common culture in the Indian IT industry that you have to show salary slips to employers for hikes, proof of employment and I had all salary slips of my internship so, it was not hard to prove the companies.
After, doing my 2 paid internships. in 3rd year of college I directly got a job as a javascript consultant with work from home before COVID-19 getting a WFH job was big deal.
I highly encouraged to not fall into the trap of unpaid internships. if you are not getting paid internships it means you lack skills in either programming, communication. work on skills and re-apply. use Reddit, social media, LinkedIn, and other job portals to find paid internships
Data Structure And Algorithms
In one of the project codebase, I found horrible code full of nested loops, unnecessary filtering arrays, and horrible logic. after analyzing the code I found the solution using hashmap I reduced loops, removed nested loops. that horrible code was working code because the company had few users if there were so many users it will take more than 1+ minutes to complete 1 request and after seniors reviewed my code and they appreciated me. see this is how DSA helps you become a good developer.
In an interview, I failed to write the right solution of the N-queen problem which is a very common problem of backtracking but then also I got the job. In DSA interviews, most interviewers want to see your approach to solve a problem they don’t want the right answer or solution. Just start grinding leetcode and try to become an analytical person and honestly, competitive programming helps you to become a 10x problem solver but it is not needed to crack interviews.
Contributing To Open Source
Contributing to open source looks harder but it is not and it will be good for personal branding and jobs.I contributed to a very small project and my contribution was pretty little after this contribution I think after 1 or 2 weeks recruiter of a USA remote startup reached to me for the job position I passed the first interview but after that interview, I got the job in Indian startup and pay was same. so, I accepted that offer and canceled interviews with a USA startup.
Open source contribution can get you in tech companies if you genuinely contribute and don’t spam PR requests also open source contribution increase your personal branding and make you visible in the community it means your network will increase and a big network means more job opportunities. check out the video of GitHub star.
Soft Skill
Soft Skill is the second key to getting any job. empathy, listening is much more important than politeness. communication not just helps you to clear interviews but also helps in a job if you are a software engineer then your responsibility is not just developing features/projects but also collaborating with project manager/backend teams/frontend teams/other software engineers. I highly encourage you if you do not understand the codebase try to communicate with other engineers. watch a video which I have given below
Building Linkedin Optimized Profile
If you want to attract high-paying job offers make an optimized profile on every job portal most important is linkedin . I got a message from recruiters of Ola, USA remote startups, and other companies for an interview. you have to follow the steps which I listed
- Upload a professional picture that clearly shows your face. don’t upload selfies and don’t upload scanned passport size photo
Write a good headline for your profile. instead of writing “Software engineer”,” Frontend Developer”, etc write “Software Engineer @ company name”
Explain your work experience in detail. instead of writing” worked on React project” write “Created reusable, optimized components and integrated with redux and APIs”.
Write a post, comment on the post, give your opinions. but don’t spam it. try to network. If you think you are fit for a job ask referral for a job
Network Network Network
Meetups are a much more efficient, faster way to build your professional network. just install the meetup app and find communities. also, check Facebook, discord sometimes some meetups are not listed on the meetup app. In meetups, you will not find only developers but also CXOs. also, you can give tech talks in meetups. So far, I have only gone for Vadodara WordPress Meetup and OWASP Ahmedabad Chapter
Resources
- Programming
- DSA
- System Design
Courses and Books Which i used
- The Web Developer Bootcamp [udemy]
- The Advanced Web Developer Bootcamp [udemy]
- The Complete Node.js Developer 1st edition [udemy]
- The Complete React Developer 1st edition [udemy]
- HTML and CSS: Design and Build Web [Book]
- JavaScript and JQuery: Interactive FrontEnd Development [Book]
- Cracking the coding interview [Book]