Data Structures & Algorithms and CS Fundamentals
Everything I collected from the how to the where in one article.
Photo by Fotis Fotopoulos on Unsplash
The aim of this write-up is NOT to replace roadmaps or other guides available out there. I was getting many messages asking about similar things and it was a mess to reply to each and every one. That is why I thought of compiling everything and present in a better format.
Computer Science Fundamentals
It does not matter if you are a university graduate, BootCamp student, or self-taught developer you should know the following subjects in order to build a fine base for your software engineering journey.
Database Management System
- Get familiar with what exactly is DBMS on Wikipedia
- Types and Paradigms: Fireship
- MySQL Crash Course or Revision: Fireship
- Database University Course with SQL, NoSQL: FCC
- SQL/DBMS Playlist by Mike Dane
- NoSQL Tutorial: FCC
- Practice SQL
Operating System
- Wikipedia
- Revision and Questions (do not refer to the embedded video on their website): InterviewBit
- GFG
Computer Networking
- Wikipedia
- Revision in 100 seconds: Fireship
- CN Full Course: Kunal Kushwaha
Object-Oriented Programming
- Java: Kunal Kushwaha
- Python: FCC
- C++: FCC
Problem Solving and Languages
If you are already familiar with any language of your choice, you can skip to this section.
Java
- Basics: Mike Dane
- Revision: Mike Dane
- Core + DSA: Kunal Kushwaha
Python
- Basics: Mike Dane
- Revision: Mike Dane
- Another beginner-friendly course from FCC
- For Data Science: FCC
- Begineer projects: FCC
- APIs in Py: FCC
- Django from FCC
- Another awesome source for Python-related content: Dennis Ivy
C++
- Basics: Mike Dane
- Revision: Mike Dane
- Data Structures: FCC
- Pointers: FCC
- OpenGL
Which language to use for LeetCode/practice and why?
I will mention my favorite (no clickbait) perspectives from which you can develop your own: - Pirate King
- Clément Mihailescu
- NeetCode
Secret Weapon for Problem Solving
There is no such thing :)
- Start by learning basic DSA
- Solve the 100 most liked list from LeetCode
- Start solving topic-wise and level-wise questions
- Once you feel like you have leveled up (you will know it), solve LeetCode cards
- Take notes about what DS/Algo is useful for a particular situation and notice patterns, do not spend too much time taking notes
- Try multiple solutions for each problem and use the discuss section
- Refer to NeetCode, Kevin Naughton Jr., Nick White
Some advice to keep in mind
Thanks for reading, the next resource article would be related to development ONLY. If I missed any good resources then hit me up on Twitter. I cannot mention everything in one article so these are the ones I have personally studied from. There is a lot of reading material like notes and documentation which I will not share. That is for you to figure out.
Did you find this article valuable?
Support Amay Jain by becoming a sponsor. Any amount is appreciated!