This short post is written for recent graduates / current students looking for a job as a Software Engineer, containing a list of resources to help them in their preparation.
This list is by no means comprehensive and is only supposed to provide a starting point to freshers who are beginning their job search and preparation.
Note: I will keep adding resources to the list. Please contact me, if you have some links to add.
Every major tech company these days, judges their candidate’s problem solving skills through competitive coding based assessments and interviews. All the websites mentioned below are popular among coders and you can find almost all the coding questions asked by major tech companies here:
- LeetCode : This website covers all the aspects of tech job preparation. It’s famous for it’s vast pile of questions but also has separate sections for discussing design questions, offer details etc.
- Hackerrank : Good for a 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.
- 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.
Some of the best online MOOCs available on Data Structures and Algorithms:
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 focussing on of all areas of System Design.
- Educative Grokking System Design : 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 Design
OOP concepts are asked from both freshers and experienced developers. Good knowledge of OOP helps in designing large systems and hence most of the Top tech companies include one round of interviews focussing on OOP. Below mentioned resources are tried by me and proved to be very helpful.
- Educative Grokking OOP Concepts : Different types of OOP questions and answers with complete architecture explained.
- Object Oriented Design (Book)
Job Search can become very stressful especially in Tech 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 aspect of job search such as coding, interview preparation, resume review, ML focussed jobs etc.
There are tons of resources available online for the fields mentioned below. The resources added below are focussed towards a fresher entering any of these 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
- Coursera : Many MOOCS available for learning web development.
- 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
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
- NPTL AI Course : Another great (and free!) resource for learning about AI and ML.
Big Data and Distributed Computing
Hope these resources help you in landing your dream job.
Thank you for reading this post!