This Github repo is a guide to becoming a self-taught software engineer. I have listed all the essential topics that one needs to know, with their respected resources. All resources are free in the public domain. Feel free to submit a pull request and help the community further.
This repo is still in early development, more topics will be added with time.
The best place you can refer to is no other than GeeksForGeeks.
Analysis of Algorithms(Asymptotic Analysis)
You need to know how to analyze time and space complexity. It is not required to get into its math just yet. But you should have a jist of it, especially Big O Notation. One should deeply understand this concept before approaching for an interview. You can read further on this topic here. I advise you to first do basic dsa and then read about Asymptotic Analysis.
Data Structures
- Array
- Stack
- Queue
- Linked List
- HashMap (Dictionaries in python, Map or Objects in JS)
- HashSet
- Tree
- Advance Tree
- Graph Theory
For both Tree and Graph, you need to know their traversal techniques.
In-Order, Pre-Order, Post-Order for trees
Breadth and Depth First Traversal, for Tree and Graph
Algorithms