Assuming you get to this place a year or at least 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.codecademy.com/catalog/language/python [Recommended]
- https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU
- 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://futurecoder.io/
- https://www.fullstackpython.com/
- https://automatetheboringstuff.com/
- https://youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_
- https://techdevguide.withgoogle.com/
- https://python-course.eu/advanced-python/
- https://www.youtube.com/watch?v=eXBD2bB9-RA&list=PLQVvvaa0QuDeAams7fkdcwOGBpGdHpXln&index=1
- http://www.pythonchallenge.com/
- https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513
- https://github.com/donnemartin/interactive-coding-challenges
- https://www.youtube.com/watch?v=pkYVOmU3MgA&ab_channel=freeCodeCamp.org | https://jovian.ai/learn/data-structures-and-algorithms-in-python [recommended]
- 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=0IAPZzGSbME&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O&ab_channel=AbdulBari [Abdul Bari] [Algorithms in-depth-concise]
-
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb [Rigorous & Formal]
-
https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY [Rigorous & Formal]
-
https://algs4.cs.princeton.edu/home/ [Rigorous & 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://jeffe.cs.illinois.edu/teaching/algorithms/ [rigorous]
- 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
-Websites
- https://www.educative.io/courses/grokking-the-coding-interview [rather buy design gurus for 75 USD for lifetime access]
- https://gist.github.com/tykurtz/3548a31f673588c05c89f9ca42067bc4
- https://algo.monster
- https://www.techinterviewhandbook.org/
- https://medium.com/interviewnoodle/grokking-leetcode-a-smarter-way-to-prepare-for-coding-interviews-e86d5c9fe4e1
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
Recursion
- https://www.youtube.com/watch?v=yVdKa8dnKiE&list=PLgUwDviBIf0rGlzIn_7rsaR2FQ5e6ZOL9&index=2&ab_channel=takeUforward
- https://www.youtube.com/watch?v=kHi1DUhp9kM&list=PL_z_8CaSLPWeT1ffjiImo0sYTcnLzo-wY
- https://www.youtube.com/watch?v=cHMr5-0SDAA&list=PLN4aKSfpk8TR-A59O9qR2VL0wqt3LrrnK&ab_channel=CodeBeyond
- https://www.youtube.com/watch?v=5Q5ed7PWJ8I&list=PL-Jc9J83PIiFxaBahjslhBD1LiJAV7nKs
- https://www.youtube.com/watch?v=LliQjLnbhx8&list=PL-Jc9J83PIiHO9SQ6lxGuDsZNt2mkHEn0
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
- https://www.youtube.com/c/MichaelSambol/videos
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://www.techinterviewhandbook.org/
Important Pattern Forming Questions
- https://www.techinterviewhandbook.org/grind75 [ GRIND 75 ] ----------------------------- MUST REFER
- https://github.com/SeanPrashad/leetcode-patterns
- https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed [Must- Read]
- https://takeuforward.org/strivers-a2z-dsa-course/strivers-a2z-dsa-course-sheet-2/
- https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/
- https://www.pepcoding.com/most-important-interview-questions-list-for-product-based-companies
- https://medium.com/coders-mojo/mega-post-tech-interview-the-only-list-of-questions-you-need-to-practice-ee349ea197bb
- https://www.reddit.com/r/cscareerquestions/comments/sgktuv/the_definitive_way_on_how_to_leetcode_properly/
- https://chivagarg.medium.com/be-agile-not-prolific-f0f88b86aace
- 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/ [MUST READ]
- https://www.reddit.com/r/cscareerquestions/comments/sgktuv/the_definitive_way_on_how_to_leetcode_properly/ [MUST READ]
- https://www.pepcoding.com/faangList2.0
- https://techinterviewhandbook.org/best-practice-questions/
- https://github.com/kamyu104/LeetCode-Solutions
- https://www.youtube.com/watch?v=QT0dS9C9uwo&ab_channel=W.IanDouglas [must watch]
- https://codeforces.com/blog/entry/20548
- https://codeforces.com/blog/entry/99291
- https://www.teamblind.com/post/Giving-back---how-I-cleared-L6-coding---Part-1---Google-ikvVrRXa
- https://leetcode.com/list/9gwk3xfh/
- https://github.com/khanhnamle1994/technical-interview-prep/blob/master/Technical-Interview-Study-Guide.pdf
- https://www.reddit.com/r/leetcode/comments/ul64vv/comment/i7ulsq4/?utm_source=share&utm_medium=web2x&context=3
- https://www.reddit.com/r/IAmA/comments/ui98mg/im_michael_i_was_a_principal_engineer_at_facebook/
- https://www.reddit.com/r/leetcode/comments/uy7moq/leetcode_tips_by_author_or_blind_75/
- https://www.reddit.com/r/leetcode/comments/v577ju/comment/ib8c66i/?utm_source=share&utm_medium=web2x&context=3
- https://www.reddit.com/r/leetcode/comments/vw696l/from_complete_beginner_to_solving_500_questions/
SOLUTIONS TO ALL 2300 LEETCODE PROBLEMS
- https://practice.geeksforgeeks.org/home/ [extensive]
- https://leetcode.com/problemset/all/ [recommended/prescribed]
- https://binarysearch.com/ [interactive]
- https://www.codewars.com/dashboard [interactive]
- https://exercism.org/tracks/javascript [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://codeforces.com/blog/entry/95106
- https://blog.shahjalalshohag.com/topic-list/
- https://github.com/ShahjalalShohag/Competitive-Programming-A-Complete-Guideline
- https://codeforces.com/blog/entry/99660
- https://codeforces.com/blog/entry/98621
- https://www.youtube.com/c/Errichto/playlists
- https://www.youtube.com/c/SecondThread/playlists
- https://www.youtube.com/user/MrHulasingh25/playlists
- https://www.youtube.com/watch?v=4KAQ6UViDoE [recommended]
- https://cp-algorithms.com/
- https://cses.fi/problemset/
- https://a2oj.com/
- https://projecteuler.net/
- https://blog.shahjalalshohag.com/topic-list/ [must-read]
- 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
- https://www.scaler.com/topics/dbms/
-
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://refactoring.guru/design-patterns/book]
- https://github.com/donnemartin/system-design-primer [MUST]
- https://github.com/binhnguyennus/awesome-scalability [MUST]
- https://github.com/prasadgujar/low-level-design-primer [LLD]
- https://akshay-iyangar.github.io/system-design/ [OOAD/LLD + Sys Des]
- https://github.com/tssovi/grokking-the-object-oriented-design-interview [LLD/OOAD]
- https://medium.com/grokking-the-tech-interview/the-complete-guide-to-the-system-design-interview-in-2022-e2d30fe22448
- https://www.educative.io/blog/complete-guide-to-system-design?eid=5082902844932096
- https://www.educative.io/blog/how-to-prepare-system-design-interview?eid=5082902844932096
- 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
- https://gist.github.com/vasanthk/485d1c25737e8e72759f
- https://drive.google.com/file/d/16wtG6ZsThlu_YkloeyX8pp2OEjVebure/view [comprehensive]
- https://github.com/madd86/awesome-system-design
- https://github.com/shashank88/system_design
- https://github.com/karanpratapsingh/system-design
- https://medium.com/coders-mojo/complete-system-design-series-part-1-45bf9c8654bc
- Prompts: https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP
- Reverse Interview: https://github.com/viraptor/reverse-interview || https://github.com/Twipped/InterviewThis
- Tips: https://www.indeed.com/career-advice/interviewing/most-common-behavioral-interview-questions-and-answers?utm_source=podia&utm_medium=broadcast&utm_campaign=741478
- Tips: https://www.educative.io/blog/behavioral-interviews-how-to-prepare-and-ace-interview-questions
- Comprehensive guide to equity compensation: https://github.com/jlevy/og-equity-compensation
- https://www.techinterviewhandbook.org/negotiation-rules