When I wrote this post, it has been 3 years since I got into software engineering world. I never imagined that I will end up here when I was in college. FYI, I studied physics during my college (in physics we learned a bit about C++, but it is not as deep as CS student).
Getting the first software engineering job for non CS degree can be overwhelming since you don't know the roadmap.
In this article I will share the roadmap to all of you out there based on what I experienced before.
Learn Algorithm and Data Structure
As a nonCS that just get bachelor degree, DSA is biggest obstacle that make me get rejected when applying the job. I do not even know what is hashmap, linkedlist, or time complexity when I graduated since I didn't study CS degree. I got several rejection from few companies those days due to lack of DSA. I need around 3 months overcame that by practicing leetcode and watch tutorial video from youtube.
There are 2 platform to practice DSA that I recommend for beginner : Hackerrank & LeetCode. For a completely beginner who has not learn console input output, I would recommend go to hackerrank. If you already have that basic I recommend just go to leetcode because many problems there are coding interview question. I recommend beginner to just stick on one language. There are also weekly contest at leetcode and it can train you to handle pressure when you are doing the company online coding test.
If you need to grasp the basic of DSA, here is one of the youtube channel that I recommend for learning DSA https://www.youtube.com/channel/UCZCFT11CWBi3MHNlGf019nw
I learned everything from zero mostly from that channel. Every time you learn a new topic from this video, apply it at leetcode. It will make you learn faster.
If you can afford to pay more and you don't have much time to research the basics, may be you can consider platform such as algoexpert since they already gather all information there.
Learn OOP (Object Oriented Programming) skill
I would say most of nonCS degree do not know OOP even though they have programming course during college (for example physics, math, electrical engineering use procedural programming). Most of software engineering project will use OOP thus if you can understand OOP it will make you easier to grasp what is going on in the projects code.
Create software engineering project
This part will depends on whether you are aiming for front end or back end position. For beginner I would recommend just choose 1 as starting point. You can the find the basic tutorial at youtube or other online course. If you already grasp the basic, do some modification to online course code and then post them at your github repository. Do not hesitate to view other people code to learn the good practice (If you steal from 1 source it is plagiarism, but if you steal from many it is called research).
For the backend position, beside coding you also need to know how database work and how to query it. I recommend to stick on MySQL database for beginner, you can learn it from https://www.w3schools.com/ for the basic and https://www.hackerrank.com/domains/sql for practicing query the data from tables.
Here is some of the example project that I would recommend for beginner that is aiming for front end or backend position.
Frontend project keyword : todo list page, login page, attendance management page
Backend project keyword : todo list API, login API, attendance management API
Do the mock interview
If you want to prepare mentally for doing mock interview, you can ask your friend to conduct mock interview. If you do not have any friend who knows how to mock interview, you can try https://www.pramp.com. That platform can connect you to someone out there who also want mock interview.
Apply the job
Do not hesitate to apply. Based on my experience, you will never feel 100% ready for job interview so just give it a shot. You will not die or losing money by getting rejected.
Top comments (0)