I have an EE background. Have worked mostly on embedded firmware in the past along with certain automation and scripting stints. I've been considering a move to software for sometime now. I am proficient in C, learnt a little bit of python for my automation tasks. Fairly familiar with C++ from some self study. I've never done a DS and Algos class in my undergrad or grad school so leet code is too daunting to start with (even the easy ones) I plan to go through some basic DS and Algos book (looking at elements of programming interview since it's C++ which is closest to C but more advanced than C or could consider python since it's a higher level language). Also looking at website geeksforgeeks but there seem to be an infinite number of algos for every DS and it starts getting too intimidating (and confusing when they solve the same problem using a different DS) Any recommendations/guidance/tips to get started will be super helpful. Any bootcamp options (need to be part time) and if you think they're worth it as compared to self study TLDR; What would you recommend for someone trying to move to SWE from an EE background (highly proficient in C), who has never had a DS and Algos class
Start with CTCI. Gentler and more structured than leetcode. A pass through basics in Skiena was helpful for me. Some universities have courses on intro to algos and DS. Skim through those. Then leetcode or hacker rank and try to find patterns in the solutions.
I was in the same boat as you a year ago when i decided to start studying for SWE roles. I had background in C++/python programming but no prior algorithms experience. I learnt ds and algo using the coursera algorithms from Stanford TimR. I worked through the assignments and while it took a month of serious study i felt it provided a solid foundation to tackle leetcode style problems. I spent most of the next 6-7 months grinding through leetcode problems + EPI book before i started interviewing. I also spent a fair amount of time on system design as that was an unfamiliar area by looking at grokking the system design course, blogs and videos. While the EE resume is a bit of a handicap, i was able to convert calls from Linkedin/Uber/Amazon.
Congrats and thanks for the info. Were you able to pick your language of preference at these companies? Would you recommend C++ or Python to get started? I'm fairly new to both so want to make sure I pick the more popular choice. I did get calls from Google (they asked me if I wanted to do Embedded or SWE interview) and Amazon (this was AWS as SDE) with my EE resume. I did the initial recruiter call with both and told them I wasn't looking right now and said I'll reach out in about 6 months when I'm ready to make a move. Hopefully, I can get more calls when I am ready to interview/open my linked profile. Thanks for the heads up though
I used c++ since I was most comfortable using it. Python might lend better towards the white boarding style owing to conciseness, but I think it’s mainly a matter of preference. I would recommend elements of programming interviews book- it is available in both c++ and python versions. Probably want to stick to a language for practicing to get familiar with language libraries etc.
I made the transition doing a Masters in SE. I was able to do graduate internships and after I graduated I didn't have any trouble with the transition
Did you do a part time or full time masters? Also, were you able to meet the pre-requisites for a Masters in SE (without having a CE/CS/SE undergrad degree)
I did full time. It allowed me to focus and use the time to catch up. About the prequisites, it depends on the schools and the program. Usually Ms CS has more requirements than Ms SE
If you are on h1b don't do it ! If your field of study is different from degree it is waste of time ! If you are motivated only by money don't do it. Software programming sucks you soul ! You will be willing to get low paid as you will be starting like a newbie wating all the ee skills you have sofar !
How does being on H1B affect my decision? Are the transfers being rejected? From what I've seen around, even starting as a newbie is giving much higher pay than what I would make with all the experience in EE. New grads are making double the TC as compared to what I make after 5 years Also, pay is not the only thing. The demand for SWE is way more. Being in other domains restricts you to where you can relocate (don't think Bay Area is where I would want to stay 5 years down the line).
Exact same situation as me. You will need a lot of fundamental and geeksforgeeks is better at explanation. If you must do leetcode, start looking online for the solution first, because they only tell you the fundamental after you solved those initial questions, which is kind of pointless. The geeksforgeeks solutions seems messy and sometimes down right buggy, IMO. I recommend after reading through geeksforgeeks, use wikipedia or google image search to visualize it prior to trying to leetcode.
How many years of experience you have? I did it successfully after 6 years of embedded experience..ds also is minimum needed theb it's luck to get a call
~5 (1 in testing, 1 in automation and remaining in embedded)
Ya i was from cs and embedded pure drivers ,.. only c programming... real problem is getting an interview call without specific domain experience but you will get few and u need to crack them.. it's little difficult but not impossible...