I guess there is no question about Software Engineers getting a “decent salary”. The question is whether it is an easy job or not. Having studied Computer Science and Engineering myself, I think I am well qualified to talk about that.
Let’s first understand the (wrong) perception that most people carry:
When it comes to Software Engineering, most people only know about IT Services firms. People talk about Infosys, Wipro, TCS, CTS, etc. These companies hire Software Engineers at a certain price and staff them with clients at a higher price. That’s how they make money. To make more money, they can’t randomly increase the prices for the end clients. So, the only way for these companies to make more money is to pay less to the Software Engineer that they hire.
Most people have faced a terrible Computer Teacher in school and so, they fear Programming. It is sad and unfortunate that Computer Science is seen as an inferior subject in schools. It is taught as a memorization subject where you cram the full form of CPU and ALU and get marks. In the name of Object-Oriented Programming, people are made to learn the definition of Abstraction, Encapsulation, and Polymorphism. That’s not how programming is.
Most people think that programming is taught rather than learned. This is an extension of my point above - people think that their teacher will teach them to write code and because their teacher is bad, they never learn the right approach to learning Computer Science and Programming.
Most people fear maths and so, they think that they cannot be Software Engineers. Definitely, some portion of Computer Science involves mathematics, but the maths that maths requires and the maths that Computer Science requires is not the same.
Because of all of this, people think that Software Engineering is difficult and is not meant for them. The reality is quite different though.
There are amazing product-based companies that pay quite well. These companies do not staff you at the client site. Product-based companies have a Product and Engineering team that works on building a scalable Software Product that can be sold to multiple end customers. Selling an extra copy of the Software Product involves almost negligible Engineering costs and so, the gross margins of these product-based companies are high. Accordingly, these companies are able to pay quite well to Software Engineers. The starting salaries at Product companies are quite high as compared to IT Services firms.
Because of the gazillions of educational resources available online, it has become extremely easy to learn programming on your own. One can spend literally ZERO money and learn programming as per industry standards. There are so many online courses on Web Development, Android App Development, Machine Learning & Artificial Intelligence, Augmented Reality, Crypto, Web3, Blockchain, and whatnot. To learn to program, one simply doesn’t have to rely on teachers or even college professors.
There are so many domains of Programming that do not require a deep knowledge of mathematics. A high-level understanding of some of the basic concepts along with skill in problem-solving is sufficient. These things can be developed with practice. If one simply picks up an online judge like CodeChef, SPOJ, Codeforces, etc., and solves the first 100 or so problems, they would be 70% there. If one isn’t able to solve a specific problem, there are 100s of tutorials, explanations, and solutions available online. All it requires is a sincere effort of 3 - 4 months.
The best part of all? Most Software companies, especially product-based companies, do not care about your educational background. You crack their interviews and they will hire you. They don’t care whether you are a male or a female or a CS grad or an Electronics grad - you crack their interviews and they will hire you!
So, getting into Computer Science and becoming a Software Engineer has become easier than ever before. All you need is a laptop and an internet connection and sincere efforts and you can change your life forever. It is arguably the best time to be a Software Engineer. The demand is high, the resources to learn programming are infinite, and the pay scale is excellent. On top of that, most companies today are offering work-from-home to Software Engineers so, you can travel the world and keep earning money and doing something you love.
Before I conclude, I am putting some resources that might be helpful in learning programming. By no means are these the best resources. Definitely, these are not exhaustive resources. However, these resources would serve as a good starting point for someone who wants to explore a career in Software Engineering: