Hi as you can understand from the title, I'm an non CS Engineering graduate, and I would like to hear some thoughts about how to go ahead about trying to get into a Software Developer role in the future, I understand I will need some time before I'm ready to apply and start getting selected for such roles, as I don't know a lot of things that are just trivial basic knowledge to CS students.
Background:
I've recently passed from college ~8 months ago (Electronics & Instrumentation Engineer, I missed Electronics and Computer in our college my mere 2 marks and was rather dejected throughout college for being stuck in something I have no interest, I should have worked on my CS skills but didn't and well that's the past, so I've moved on), I'm from a Tier II college from India, we had a lot of good companies come for offers on campus (Microsoft, Mu Sigma, Adobe, Walmart, Amazon, D.E. Shaw, JP Morgan, VMWare, Texas Instrumentation and such, but I was not at all prepared at that point) and I've been working on DS + Algorithms for the past 4-5 months seriously, I'm able to solve easy question most of the time, and can attempt the mediums with some effort and can solve the easier of hard problems, in a month or two I will be able to start attempting the weekly contests by my own estimation.
Now that I feel like I've covered ground in this aspect of Software Development (I know this part mostly just covers the basics and being comfortable with working on code and not actually any development, but it is necessary, so gotta do it), I want to know what steps I should take now.
The things of primary importance I should do by my own research are:
1.) I should do at least one small project that makes use of a database, such as MySQL, or PostgreSQL or maybe a non relational, but I'm most comfortable in c++ currently so I'd probably go with Relational Database, is this part required? and some idea will be appreciated.
2.) I think I should also do one small project based on JavaScript (not sure if I should go Angular/ React way or just a simple JS with CSS + HTML(maybe with bootstrap) should be enough), again some thoughts and ideas on this would be appreciated.
3.) How much do I need to work on networking and OS? And some good resources on these topics would be welcome.
4.) I'm also not very good at OOPS and System Designs aspect of programming, I guess the first three points will help with this, but again some important things to know in these paradigms and help with resources would be appreciated.
5.) Also get some experience with git/ version control maybe? I know the basics, have a profile on GitHub but have only pushed code with Eclipse integrated plugin and never otherwise, again first two should compliment this step.
Also, should I try for internships first or aim straight for Full Time?
Currently I'm thinking it will take me 6 months to a year for the things above, is that a good estimate?
I'm hoping there must be a few people on this site, who have taken a path similar to mine would be able to help, otherwise a CS person or someone who didn't even take the college route entirely will surely be able to chip in some things on how to go about trying to get my first good Software Developer job.
Thank you for your time.
Update: I doubt many people have seen this or will be seeing it in future as new content keeps getting added all the time, I managed to get a job as a senior software engineer at Oracle last year in March, 2022. I had to first get my foot in the door by working part time (while doing my full time job) for a startup where I was doing web site, mobile and backend developement ([angularjs, backbone, jQuery], [python, flask, Postgres, celery], [flutter/ dart]). I was criminally underpaid (I chose to lowball myself because I really wanted the experience, plus I already had another job so it didn't matter so much and it was remote and we had lock down so I was at home and still am to this day lol), but learned a lot and was able to leverage that experience to jump directly to senior engineer in roughly a year's time.
This update is just to validate it for others that if you want to do it, it can be done, you're just missing the right abstraction or indirection ;).