Before we start, you must understand the difference between a software engineer and a software developer. A developer generally starts his job by speaking to the customers, understanding their needs and then designing and developing the different components of applications meeting the customer’s needs. He manages the complete project from start to finish.
A software engineer does all the things that a developer does but considering a bigger picture or view than developers. They are responsible to take care of the complete architecture.
So, as you can see, there is quite a lot of ambiguousness here, and that is also the case with jobs in India. Some companies use these terms interchangeably, while others treat them as separate things. For the purposes of this article, we will be considering the same thing. Because after all, whether you call yourself a software engineer or a software developer, your job would be essentially the same – Building Software.
When it comes to salaries, there are two clear separations in this field.
The college where you do your undergrad matter a LOT here. If you do it from a top college (IITs, NITs, IIITs, etc.), your average starting salary would be ~ 1,10,000 rupees per month roughly.
If you do your undergrad from most other colleges, your average salary would be ~ 55,000 rupees per month, roughly speaking. But no matter what your college is, growth prospects are great monetarily speaking. Expect your income to double within 3-5 years.
Job Profile (A Day in the life of a Software Engineer)
Software is a very big space in itself. So, a lot of your daily work will depend upon the nature of the organization as well as you individual specialty in the field of software engineering. Your daily work can involve, but is not limited to – building distributed databases, customizing an application to sending push notifications to users, testing code written by other developers, overseeing build pipelines, and about a hundred different things.
But it all essentially comes down to coding. It is how you use that knowledge of coding and programming, to do all the different things mentioned above, that really matters. So please, if you are coming in this industry, know that a lot of your day would be spent messing with code.
Technical skills required are knowledge of programming principles, computing theory, and the ability to break down bigger problems into smaller ones. Other skills that you may need to acquire would largely depend on what kind of a software engineer you are. For example, if you are a Release engineer, knowledge of Kubernetes and Docker is a must for you.
Most of the work is done as part of a small team. The team comprises of junior developers, senior developers, super senior developers (3 levels of software engineers), Quality Engineers (who test), Product/Project Managers (who are the link between you and management) and a manager who overlooks all of the team members. Work-life balance is largely dependent on you, and an average workday would be of 6-8 hours if you are not doing overtime.
Growth opportunities are immense. Getting a promotion is a fairly balanced task (neither very easy nor very difficult). A promotion guarantees a 50% salary increase.
You should go for a degree (BTech in Computer Science). While some companies don’t look at degrees and just look at a candidate’s skills, most of them still require that wretched piece of paper. So, if you can, then definitely go for a degree. But if you can’t for some reason (age or financial), you will still be able to find a job. Just keep working on your skills.
One thing to love about being a Software Engineer
“Flexibility and earning potential. Working with the latest technologies and creating new things from scratch.”
One thing to hate about being a Software Engineer
“As you mature/master your work explaining yourself becomes harder in this field. Imposter syndrome due to fast paced nature of things. ”
IITs, NITs, IIITs, VIT, and DTU are some of the top colleges for engineering in this country.
Resources and Tips
- Before you do anything else, get familiar with GitHub. You will be using it everyday. Also, get good at reading Documentation; it is a skill on its own.
- MyCodeSchool on YouTube will provide you with a good foundational knowledge.
- After you get to an intermediate level, get familiar with the HackerRank website and the CodeChef website.
- University courses are a great resource for learning programming and computer science. There are many courses available for every thing you may want to learn. Bookmark this GitHub page. It has compiled and categorized all the best university courses that are available for free.
Step-by-step guide to become a Software Engineer
- Take science (PCM) stream in 11th grade. Make sure that you also take CS as a subject.
- Score at least 60% aggregate in class 12th as most colleges have this criteria.
- Give JEE and other equivalent exams (Many colleges conduct their own entrance tests. You can find more information about this on the college websites).
- Try to do as many internships as you can in college, and put a lot of emphasis on building a network.
- Also try to maintain an above average GPA, as some companies put an emphasis on that. Also try to be up-to-date with the latest technological developments in your field.
- Besides your studies, start working on personal projects to develop your portfolio. Companies love that!
- Get certificates in your specialty or topic of interest by completing the online courses of reputed universities.
- Sit for campus placements, and if it doesn’t work out, LinkedIn is your best friend.
Thanks a lot to Manpreet Kaur Gill for helping us with this article