I looked at the previous answers, and couldn’t help to jump in to add something that nobody said.
To become a software engineer you need to know some basic stuffs–
- At least one programming language using which you can code proficiently and feel comfortable with; it can be python, C or Java or anything you like! Language doesn’t matter, but your sense of building blocks of logic does!
- Object Oriented Programming – You need to know the basics of object oriented programming and how to use/implement them in real life projects/problems. You should have at least one project where you have worked with these concepts.
- A few basic algorithms on sorting, searching and string manipulation will be of great help. And also knowledge about space and time complexities.
- Some basic data structures like Queue, Stack, List etc.
- Few widely used software design patterns like Singleton, Factory Method, Adapter etc. and when and how to apply them.
This is pretty much it, if you know these things well, even if you don’t have a good GPA you should be able to get a job- but I don’t guarantee that it will be a great job! To get a great job you will have to try to become better. It’s like iterative development, you get better, you get better job and you get more better, you get another better than before job and so on!
Lastly, GPA doesn’t have much to do with getting a job as software engineer or becoming a software engineer. If you are passionate about programming and you love solving problems and of course you have the 5 things I mentioned before- don’t wait, just go there and start applying and see how things roll out for you! Best of luck!