Freshers’ guide to becoming a Software Engineer when you are not a Computer Science Engineer
In this article, I am going to talk about how can a non-CS Engineer prepare for a Software Engineering role. Also going to mention the must do CS topics for interviews.
Why become a Software Engineer?
You have an interest in problem-solving, logical thinking, and coding
You want to contribute to a software that’s used by millions
More prospect than any other field, if you are doing it right— While there are still amazing opportunities in other fields, the software industry is booming (accounts for 8% of India’s GDP) and with homegrown tech startups coming to the market comes more opportunities for engineers
What it takes to become a Software Engineer?
While many want to become a good software engineer, but only a few succeed. Because:
Software Engineering is all about upskilling yourself and learning new tech
One also need to develop logical thinking and problem solving attitude
While the first two points are the most important to sustain in the industry, having good DS/Algo knowledge is a must to crack interviews, the gateway to the industry.
That being said, let’s jump to the how can a non-CS Engineer prepare for a Software Engineering interview as a fresher.
Which CS subjects and topics to cover?
Attaching resources I used for each topic
Data Structures and Algorithm
Arrays, Maps, Sets, Trees, Graphs
Book:
Dynamic Programming
Resources:
Dynamic Programming - GeeksforGeeks
Practice Problems on Dynamic Programming Topics: Basic Concepts : Advanced Concepts : Basic Problems : Intermediate…
Top 20 Dynamic Programming Interview Questions - GeeksforGeeks
Dynamic Programming is an algorithmic paradigm that solves a given complex problem by breaking it into subproblems and…
Dynamic Programming - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared…
Database Management Systems
I learnt writing SQL queries on the job :P but you are expected to know the DBMS concepts like joins, SQL queries, indexing. Practice writing SQL queries using leetcode database problems.
Resources:
Operating Systems
Concurrency, Threads and Processes, Race condition, deadlock, semaphores, scheduling algorithms
Resources:
Bedtime Stories on Operating Systems.pdf
Edit description
High Level Design
Resources:
Note: There’s no shortcut to interview preparation. If you are a non-CS engineer, you will have to bring yourself at par with other CS engineers applying for the same role. And hence you will have to invest time in learning these topics because CS engineers already know or have at least come across these in their 4 year curriculum.
Must do coding questions/interviewers’ favorites
https://www.geeksforgeeks.org/detect-and-remove-loop-in-a-linked-list/
https://www.geeksforgeeks.org/find-a-triplet-that-sum-to-a-given-value/
https://leetcode.com/problems/search-in-rotated-sorted-array/
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
Note: This being the must do list. Apart from this, you will have to solve a lot many questions to be able to find optimized solution to any unseen question during interviews. Leetcode problems helped me practice.
My intro
To give a peek into my background. I am an Electronics Engineer from VIT Vellore. I switched field to become a software engineer and currently have around two years experience working as a Software Engineer.
Readers,
I may have missed certain topics important to interview preparation, feel free to suggest such resources/topics. I will be happy to edit the story.I am still a newbie at tech blogging and am looking forward to receiving feedback on the story.
For any queries, reach me at chayanikamisra1997@gmail.com
Thank you!!
Recent Posts
See AllWhat is Couch DB? Couch DB is a Document DB. Documents DBs are a class of NoSQL databases built around JSON-like documents which are...
Design a News Feed service to quickly generate and fetch the news feed and profile feed for each user present in the social network....
Comentários