This short post is written for recent graduates, current students and code newbies looking for a job as a Software Engineer in the Big N companies like Google, Facebook, Amazon, Netflix etc.
I have personally tried most of the resources mentioned here (free and paid) during my job search. These have helped me to land offers from companies like Samsung, Myntra, Walmart Labs and most recently Amazon.
Hopefully, this list helps you prepare for your dream job too!
Note: This list is by no means comprehensive and is only supposed to provide a starting point in your job prep. I will keep adding resources here. Please contact me, if you have some.
Every major tech company, judge a candidate’s problem solving skills through Data Structure and Algorithms based assessments and interviews. All the websites mentioned below are popular resources which can used for practicing interview questions. Almost all the coding questions asked by major tech companies can be found here:
- LeetCode (Freemium): This website covers most of the aspects of software engineering related job preparation. It’s famous for its vast pile of questions but also has separate sections for discussing design questions, offer details etc.
- Hackerrank : Good for beginners, this portal has a clean interface and is not very daunting for freshers.
- TopCoder : This is the most popular online judge for competitive coding and regularly holds contests.
- InterviewBit : Have heard great things about this platform. One great feature is that a question needs to be solved in a fixed time — just like in an interview.
- CodeSignal (Haven’t used personally)
Books and Platforms:
- CTCI : Cracking the Coding Interviews provides a very good base for freshers. This books contains questions from all the Top tech companies and is a must have.
- EPI : Elements of Programming Interviews is a good book for coders experienced with competitive coding. I’ll recommend using this after completing CTCI.
- GeeksForGeeks : GFG is the one of the best free resources for preparing for tech interviews. From Data Structures, Algorithms to Networking and DBMS, always refer to GFG before referring any other options.
Though this topic is more expected to come up during experienced developer interviews, a basic knowledge of System Design not only helps in tech interviews but is a requirement for becoming a good Software Developer. These resources are some of the best available in the market as of now. These are helpful to beginners and experienced alike:
- System Design Primer : A comprehensive post focusing on all areas of System Design.
- Educative Grokking System Design (Paid): Different system design questions and posts with answers and explanations.
- High Scalability : System Architectures of large companies.
- LeetCode System Design : A place to discuss different System Design Interview questions.
Object Oriented Programming / Design
OOP concepts are asked from both freshers and experienced developers. Good knowledge of OOP helps in designing maintainable and robust software and hence most of the tech companies include one round of interviews focusing on these. Generally studying the basic principles should give you a good idea about them but try the below resources if your want to go deeper.
- GeeksForGeeks OOP : Just like other topics, GeeksForGeeks is a good resources for learning OOP as well.
- Educative Grokking OOP Concepts (Paid): Different types of OOP questions and answers with complete architecture explained.
There are tons of websites online for finding jobs in tech, so there’s no point in repeating them. Instead, I’m going to list the platforms which are a bit different but helps tremendously in landing a great job.
- Tech Twitter : Tech-Twitter is the best Twitter. Engineers, Designers, Entrepreneurs share knowledge as well as have meaningful conversations about tech, startups, frameworks etc. But it is also great for job search! Check out this and this example of someone asking for a job and being helped by the Twitter community.
- 3rd party sources : There has been a surge of startups who are helping Engineers to get hired at the Top tech firms. I’m not talking consultancies but companies which are known to do this job well. Most famous are Triplebyte and Pathrise.
- SDE Openings : This Github list and this website are some good resources to find jobs in 2020. Also Y Combinator’s own job portal.
- Women in Tech : Numerous platforms are helping women in technology to get great offers. Not only are there specific communities on Twitter, Reddit etc there are some amazing platforms out there too. Most notable are Hire Tech Ladies by Allison Esposito Medina and Women In Technology
Job search can become very stressful especially in software engineering where you face a lot of competition. These communities are meant to support each other in job search and preparation. These are discord groups where you can find sub-groups focussed on different aspects of job search such as coding, interview preparation, resume review, ML focused jobs etc.
- Taleo : Focused only on 2020 New grads.
- CS Career Hackers : For both freshers and experienced devs.
- DEV : Another great community of developers helping each other out and sharing knowledge.
- CS Career Questions : Insanely active Reddit community for beginners. Tip: Search Reddit for communities focused on specific technologies (Data/Android/ML etc).
- Blind and Rooftop Slushie: An anonymous network of professionals that helps in getting referrals, information of teams, career advice etc. Though the anonymity makes it a little bit toxic sometimes, overall it’s a great help for finding and preparing for jobs.
There are tons of resources available online for the fields mentioned below. The ones mentioned here are focused towards a fresher entering any of these specific fields:
Android Application Development
- Google Android Developers : Google’s original documentation is by far the best way to learn about Android application development.
- Mindorks : Android publication containing tutorials and blogs.
- Android Weekly
- Ray WenderLich Android : This tutorial website is very popular for it’s Android and IOS tutorials. They are very well explained but are paid. Highly recommend!
Full Stack Web Development
- Free Moocs : Many Moocs available for learning web development for free.
- FreeCodeCamp : A free online library providing certificates on completion of courses. Very famous and very useful for people who want to start a career in Software Development.
- Khan Academy (Haven’t used personally)
Data Science / Machine Learning
- Fast AI : One of the best free resources available to learn about Deep Learning.
- Kaggle : Platform for showing your DS and ML skills a.k.a LeetCode for Machine Learning.
- Berkeley AI Course : Good for beginners interested in going towards the Robotics route.
- NPTL AI Course : Another great (and free!) resource for learning about AI and ML.
- Blogs – All Things Distributed, Big Data Tutorial, High Scalability, Distributed Database Systems (DDS)
Hopefully you learned about a new resource to aid you in your job search.
PS: If you need any additional help regarding Software Engineering interviews, feel free to reach out to me on Twitter. All the very best 🙂