Assuming you get to this place an year or atleast 6 months before you start your job search, the resources below will help you get a job regardless of your location/familiarity with computer science.
Disclaimer: This doesn't make you a brilliant computer scientist but an excellent bread winner.
Many people avoid learning Python because the availibility of libraries make it difficult to test your ability manipulate data structures, but regardless I am only including the 3 prominent languages here with short links to other 2 which are getting popular.
Languages for DSA covered here
- Python
- C++
- Java
You can look up the pros and cons of learning each with a quick google search of "Language 1" Vs "Language 2"
- https://www.youtube.com/watch?v=rfscVS0vtbw
- https://www.youtube.com/watch?v=rfscVS0vtbw&list=PLWKjhJtqVAbnqBxcdjVGgT3uVR10bzTEB
- https://www.youtube.com/watch?v=8ext9G7xspg
- https://www.youtube.com/watch?v=8DvywoWv6fI
- https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513?irclickid=T4iyYGz1BxyLRoUwUx0Mo3EFUkEwt01MDzuOQA0&irgwc=1&utm_source=affiliate&utm_medium=&aff=259799&utm_term=&utm_campaign=__&utm_content=&adid=788805
- https://www.coursera.org/projects/introduction-to-python
- https://runestone.academy/runestone/books/published/pythonds/index.html
- https://www.geeksforgeeks.org/python-programming-language/
- https://www.learncpp.com/
- https://practice.geeksforgeeks.org/batch/fork-cpp
- https://www.edx.org/learn/c-plus-plus
- https://www.youtube.com/watch?v=A3VQKXBLstw&list=PLEbnTDJUr_Ie_XH-FZN7zCdU7z_EvUmEg [comprehensive]
- https://www.udacity.com/course/c-for-programmers--ud210
- https://www.youtube.com/playlist?list=PLLYz8uHU480j37APNXBdPz7YzAi4XlQUF
- https://www.youtube.com/watch?v=z9bZufPHFLU&list=PLfqMhTWNBTe0b2nM6JHVCnAkhQRGiZMSJ&ab_channel=ApnaCollege [Language Barrier, but the syllabus is almost exhaustive so definitely worth it to just refer is as curriculum]
- https://www.udacity.com/course/java-programming-basics--ud282
- https://www.udacity.com/course/object-oriented-programming-in-java--ud283
- https://beginnersbook.com/java-tutorial-for-beginners-with-examples/
- https://www.coursera.org/learn/object-oriented-java?ranMID=40328&ranEAID=SAyYsTvLiGQ&ranSiteID=SAyYsTvLiGQ-29tDkJq_MFdgmJDSiq2LNw&siteID=SAyYsTvLiGQ-29tDkJq_MFdgmJDSiq2LNw&utm_content=10&utm_medium=partners&utm_source=linkshare&utm_campaign=SAyYsTvLiGQ
- https://www.edx.org/course/learn-to-program-in-java-2?source=aw&awc=6798_1606627150_a3df9ef86729a1413ed1f654d1e3b203&utm_source=aw&utm_medium=affiliate_partner&utm_content=text-link&utm_term=301045_https%3A%2F%2Fwww.class-central.com%2F
- https://www.geeksforgeeks.org/java-how-to-start-learning-java/
Now you have understood the syntax of your preferred language and need to hon your problem solving skills. Personal suggestion is to read up on Space & Time Complexity before you go on this adventure so you can learn to think on those lines from the very start itself.
Resources
- https://www.educative.io/blog/a-big-o-primer-for-beginning-devs
- https://www.educative.io/blog/big-o-notation-cheat-sheet
- https://www.educative.io/blog/data-structures-algorithms
- https://cooervo.github.io/Algorithms-DataStructures-BigONotation/
- https://www.youtube.com/watch?v=9TlHvipP5yA
- https://www.youtube.com/watch?v=Ee0HzlnIYWQ
- https://www.youtube.com/watch?v=Mo4vesaut8g
- https://www.youtube.com/watch?v=J56ggSnbyKY&list=PLiQ766zSC5jOuk-QnjvTv7E8wqOTQ-Ic9
I am going to split the resources according to Video Based Learning & Text Based Learning.
Video Based Learning
-
https://www.youtube.com/watch?v=RBSGKlAvoiM [Quick Overview of DSA]
-
https://www.youtube.com/watch?v=8hly31xKli0&ab_channel=freeCodeCamp.org [Quick Overview of DSA]
-
https://www.youtube.com/watch?v=zg9ih6SVACc&ab_channel=freeCodeCamp.org [Quick Overview of DSA]
-
https://www.youtube.com/watch?v=Qmt0QwzEmh0&list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu [Quick Overview of DSA]
-
https://www.youtube.com/watch?v=bum_19loj9A&list=PLBZBJbE_rGRV8D7XZ08LK6z-4zPoWzu5H [Quick Overview of DSA]
-
https://www.youtube.com/watch?v=0IAPZzGSbME&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O [In Depth]
-
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb [Rigorous & Formal]
-
https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY [Rogorous & Formal]
MOOCS
- https://www.coursera.org/specializations/data-structures-algorithms
- https://www.edx.org/course/data-structures-an-active-learning-approach?source=aw&awc=6798_1606628063_f8163bd46d1c3185f7a7d0d0296d89d3&utm_source=aw&utm_medium=affiliate_partner&utm_content=text-link&utm_term=301045_https%3A%2F%2Fwww.class-central.com%2F
- https://www.coursera.org/learn/algorithms-part1?ranMID=40328&ranEAID=SAyYsTvLiGQ&ranSiteID=SAyYsTvLiGQ-fUX0gqi8qiCPyQxn1juM5g&siteID=SAyYsTvLiGQ-fUX0gqi8qiCPyQxn1juM5g&utm_content=10&utm_medium=partners&utm_source=linkshare&utm_campaign=SAyYsTvLiGQ
- https://www.udacity.com/course/intro-to-algorithms--cs215?irclickid=T4iyYGz1BxyLRoUwUx0Mo3EFUkEwt01YDzuOQA0&irgwc=1&utm_source=affiliate&utm_medium=&aff=259799&utm_term=&utm_campaign=__&utm_content=&adid=788805
- https://www.khanacademy.org/computing/computer-science/algorithms
- https://www.coursera.org/specializations/algorithms#courses
- https://www.coursera.org/learn/algorithms-part1?ranMID=40328&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-oTlhZjHnLdGgvt2yfo3pzQ&siteID=JVFxdTr9V80-oTlhZjHnLdGgvt2yfo3pzQ&utm_content=10&utm_medium=partners&utm_source=linkshare&utm_campaign=JVFxdTr9V80
- https://www.udemy.com/course/dynamic-programming-i/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-oWU5LIlIjVnh5nu21LTTJg&utm_medium=udemyads&utm_source=aff-campaign
- https://www.edx.org/course/algorithm-design-and-analysis
Text Based Learning
- https://www.codechef.com/LEARNDSA/?itm_medium=navmenu&itm_campaign=learndsa
- https://www.hackerearth.com/practice/data-structures/arrays/1-d/tutorial/
- https://www.hackerearth.com/practice/algorithms/searching/linear-search/practice-problems/
- https://www.geeksforgeeks.org/fundamentals-of-algorithms/?ref=shm
- https://www.geeksforgeeks.org/data-structures/?ref=shm
- https://github.com/TheAlgorithms [Algo implementation in 6 languages!]
Books
- Cracking the Coding Interview
- Elements of Programming Interviews
- Algorithm Design
- Introduction to Algorithms, Cormen
P.S If you can't afford to Buy Books then google "Library Genesis" :)
RECOMMENDED FOR PATTERN RECOGNITION
LINK: https://www.educative.io/courses/grokking-the-coding-interview
P.S If you can't afford to pay for this subscription then google "Library Genesis" :)
Language Specific
-
https://www.pepcoding.com/resources/data-structures-and-algorithms-in-java-levelup/
-
https://www.youtube.com/watch?v=F8xQ5joLlD0&list=PL-Jc9J83PIiFj7YSPl2ulcpwy-mwj1SSk [ALL 3 HAVE LANGUAGE BARRIER BUT THE BEST THERE IS FOR JAVA OUT THERE] [JAVA]
-
https://www.youtube.com/watch?v=c0_1QnyVYQY&list=PLgUwDviBIf0p4ozDR_kJJkONnb1wdx2Ma [BEST THERE IS FOR CPP OUT THERE][C++]
-
https://www.youtube.com/watch?v=B31LgI4Y4DQ&ab_channel=freeCodeCamp.org [C++]
P.S : The first two channels have picked very important problems and you can even find a downloadable list in the description of the cpp video series. regardless of the language you pick , definitely check out the problems and implement them in your choice of language
Dynamic Programming
- https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns
- https://leetcode.com/problems/longest-increasing-subsequence/ [major concept forming question]
- https://www.youtube.com/watch?v=gQszF5qdZ-0&list=PLDV1Zeh2NRsAsbafOroUBnNV8fhZa7P4u
- https://www.youtube.com/watch?v=oBt53YbR9Kk
- https://www.youtube.com/watch?v=nqowUJzG-iM&list=PL_z_8CaSLPWekqhdCPmFohncHwz8TY2Go [Language Barrier]
- https://www.youtube.com/watch?v=f19e_ofbydc&list=PLEJXowNB4kPxBwaXtRO1qFLpCzF75DYrS
- https://www.youtube.com/watch?v=8LusJS5-AGo&list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr
Graph Algorithms
- https://www.youtube.com/watch?v=tWVWeAqZ0WU&ab_channel=freeCodeCamp.org
- https://www.youtube.com/watch?v=ddTC4Zovtbc&list=PLrmLmBdmIlpu2f2g8ltqaaCZiq6GJvl1j
- https://www.youtube.com/watch?v=DgXR2OWQnLc&list=PLDV1Zeh2NRsDGO4--qE8yH72HFL1Km93P
- https://www.youtube.com/watch?v=-dfsxsiGoC8&list=PLiQ766zSC5jNlilqsJSiVcvIMxTdMlJbl
Trees
- https://www.youtube.com/watch?v=suj1ro8TIVY&list=PLiQ766zSC5jND9vxch5-zT7GuMigiWaV_
- https://www.youtube.com/watch?v=fAAZixBzIAI
- https://www.youtube.com/watch?v=1XC3p2zBK34&list=PLDV1Zeh2NRsDfGc8rbQ0_58oEZQVtvoIc
- https://www.youtube.com/watch?v=JfSdGQdAzq8&list=PLDV1Zeh2NRsCYY48kOkeLQ-cg9-eqInzs
Strategy
- https://www.reddit.com/r/cscareerquestions/comments/6luszf/a_leetcode_grinding_guide/
- https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
- https://github.com/SeanPrashad/leetcode-patterns
- https://medium.com/algorithms-and-leetcode/want-to-crack-leetcode-problems-easily-dc825e27e423
- https://drive.google.com/file/d/1qqwdlcMISXp3pU90fYcjDEERl-jqGVVB/view?usp=sharing
- https://www.educative.io/courses/coderust-hacking-the-coding-interview
- https://www.reddit.com/r/cscareerquestions/comments/eb1e2b/my_leetcode_study_guide/
- https://www.pepcoding.com/most-important-interview-questions-list-for-product-based-companies
- https://www.pepcoding.com/faangList2.0
- https://www.hackerrank.com/domains/algorithms [basic/easy]
- https://practice.geeksforgeeks.org/home/ [extensive]
- https://leetcode.com/problemset/all/ [recommended/prescribed]
- https://binarysearch.com/ [interactive]
Advanced
- https://codeforces.com/problemset
- https://www.codechef.com/problems/school/?itm_medium=navmenu&itm_campaign=problems
- https://www.spoj.com/
- http://topcoder.com/
- https://whimsical.com/codeforces-candidate-master-roadmap-by-love-babbar-CiXPPD3CnwoXPr2d8Ajx1h
- https://www.youtube.com/c/Errichto/playlists
- https://www.youtube.com/c/SecondThread/playlists
- https://www.youtube.com/watch?v=4KAQ6UViDoE [recommended]
- https://cp-algorithms.com/
- https://cses.fi/problemset/
- https://a2oj.com/
- https://projecteuler.net/
- Book: Competitive Programming Handbook, Springer
You can search on Youtube to learn these subjects mentioned below, for example Cornell University's course on YT is apt for Database management systems.
I just accumulated all things you can revise 10 days before your interview with respect to the following subjects:
-
Operating Systems
- https://www.youtube.com/watch?v=z3Nw5o9dS7Q&list=PLsylUObW5M3CAGT6OdubyH6FztKfJCcFB
- https://www.geeksforgeeks.org/operating-systems/
- https://www.youtube.com/watch?v=bkSWJJZNgf8&list=PLxCzCOWd7aiGz9donHRrE9I3Mwn6XdP8p
- https://www.udacity.com/course/introduction-to-operating-systems--ud923?irclickid=T4iyYGz1BxyLRoUwUx0Mo3EFUkEwtgTsDzuOQA0&irgwc=1&utm_source=affiliate&utm_medium=&aff=259799&utm_term=&utm_campaign=__&utm_content=&adid=788805
- https://onlinecourses.nptel.ac.in/noc20_cs75/preview
- https://whimsical.com/operating-system-cheatsheet-by-love-babbar-S9tuWBCSQfzoBRF5EDNinQ
- https://www.youtube.com/watch?v=vBURTt97EkA&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O
- https://www.youtube.com/watch?v=8xUESrjyj1c&list=PLEbnTDJUr_IfenRWZ73RPWNFTeGaqYQ8T
-
Database Management Systems
- https://www.youtube.com/watch?v=HXV3zeQKqGY
- https://www.youtube.com/watch?v=IoL9Ve2SRwQ&list=PL3pGy4HtqwD3Ov1J2UBTfsLgxUzUktTAM
- https://www.edx.org/course/modeling-and-theory
- https://www.edx.org/course/advanced-topics-in-sql
- https://www.edx.org/course/databases-5-sql
- https://www.udacity.com/course/intro-to-relational-databases--ud197
- https://www.geeksforgeeks.org/dbms/
- https://www.youtube.com/watch?v=h0j0QN2b57M&list=PL_c9BZzLwBRK0Pc28IdvPQizD2mJlgoID
-
Computer Networks
- https://www.udacity.com/course/computer-networking--ud436
- https://online.stanford.edu/courses/cs144-introduction-computer-networking
- https://online.stanford.edu/courses/ee284-introduction-computer-networks
- https://www.coursera.org/projects/ccna-introduction-networks-cisco-devices
- https://www.youtube.com/watch?v=qiQR5rTSshw
- https://www.youtube.com/watch?v=QKfk7YFILws
- https://www.udacity.com/course/networking-for-web-developers--ud256
-
Object Oriented Programming + Analysis & Design
Link: https://github.com/antariksh17/Subjective-studies_OS-CN-DBMS
P.S :For OOAD I would definitely recommend the book "Diving into Design Patterns"
- https://github.com/donnemartin/system-design-primer
- https://www.youtube.com/watch?v=ztHopE5Wnpc
- https://www.udacity.com/course/database-systems-concepts-design--ud150?irclickid=T4iyYGz1BxyLRoUwUx0Mo3EFUkEwtBQQDzuOQA0&irgwc=1&utm_source=affiliate&utm_medium=&aff=259799&utm_term=&utm_campaign=__&utm_content=&adid=788805
- https://www.youtube.com/watch?v=ZgdS0EUmn70&list=PL73KFetZlkJSZ9vTDSJ1swZhe6CIYkqTL
- https://www.udacity.com/course/design-of-computer-programs--cs212
- https://www.udacity.com/course/database-systems-concepts-design--ud150
- https://www.geeksforgeeks.org/getting-started-with-system-design/
- https://www.youtube.com/watch?v=DSGsa0pu8-k
- https://www.youtube.com/playlist?list=PL564gOx0bCLqTolRIHIsR2JPv11w8LESW
- https://get.interviewready.io/course-preview#video
- https://www.reddit.com/r/ExperiencedDevs/comments/q4xj42/best_way_to_learnpracticeprepare_for_system/
- http://highscalability.com/
- https://www.youtube.com/watch?v=fH5LPt-4Xi0&list=PLEbnTDJUr_IdcgKNBcPzgK4zC1zapZqGs
This is meant for those who really want to learn JS.
-
https://www.khanacademy.org/computing/computer-programming/html-js-jquery#jquery-dom-access
-
https://www.freecodecamp.org/news/javascript-projects-for-beginners/
-
https://docs.microsoft.com/en-us/learn/paths/build-javascript-applications-nodejs/
-
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet
Books
- Eloquent Javascript
- You Don't Know JS(Series)