From 8d572ad4c7e316b9c9a9daa6a65d016fb0f27172 Mon Sep 17 00:00:00 2001 From: Sofwan Aldi Rikhaldi <156644449+sofwanaldirikhaldi@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:08:05 +0700 Subject: [PATCH] Add back to top --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/README.md b/README.md index 135102c949..15901b768c 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,8 @@ thousands of associative arrays, but I never created data structures from scratc It's a long plan. It may take you months. If you are familiar with a lot of this already it will take you a lot less time. +**[⬆ back to top](#table-of-contents)** + ## How to use it Everything below is an outline, and you should tackle the items in order from top to bottom. @@ -262,6 +264,8 @@ Create a new branch so you can check items like this, just put an x in the brack git push # just pushes to your fork ``` +**[⬆ back to top](#table-of-contents)** + ## Don't feel you aren't smart enough - Successful software engineers are smart, but many have an insecurity that they aren't smart enough. @@ -269,6 +273,8 @@ Create a new branch so you can check items like this, just put an x in the brack - [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ) - [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY) +**[⬆ back to top](#table-of-contents)** + ## A Note About Video Resources Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs. @@ -278,6 +284,8 @@ It would be great to replace the online course resources with free and always-av such as YouTube videos (preferably university lectures), so that you people can study these anytime, not just when a specific online course is in session. +**[⬆ back to top](#table-of-contents)** + ## Choose a Programming Language You'll need to choose a programming language for the coding interviews you do, @@ -332,6 +340,8 @@ Read more about choices: [See language-specific resources here](programming-language-resources.md) +**[⬆ back to top](#table-of-contents)** + ## Books for Data Structures and Algorithms This book will form your foundation for computer science. @@ -373,6 +383,8 @@ Your choice: - [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/) - [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/) +**[⬆ back to top](#table-of-contents)** + ## Interview Prep Books You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough, @@ -396,6 +408,8 @@ Choose one: - [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) - [Companion Project - Method Stub and Test Cases for Every Problem in the Book](https://github.com/gardncl/elements-of-programming-interviews) +**[⬆ back to top](#table-of-contents)** + ## Don't Make My Mistakes This list grew over many months, and yes, it got out of hand. @@ -467,6 +481,8 @@ There are many resources for this, listed below. Keep going. There are a lot of distractions that can take up valuable time. Focus and concentration are hard. Turn on some music without lyrics and you'll be able to focus pretty well. +**[⬆ back to top](#table-of-contents)** + ## What you won't see covered These are prevalent technologies but not part of this study plan: @@ -475,6 +491,8 @@ These are prevalent technologies but not part of this study plan: - HTML, CSS, and other front-end technologies - SQL +**[⬆ back to top](#table-of-contents)** + ## The Daily Plan This course goes over a lot of subjects. Each will probably take you a few days, or maybe even a week or more. It depends on your schedule. @@ -489,6 +507,8 @@ You can see my code here: You don't need to memorize every algorithm. You just need to be able to understand it enough to be able to write your own implementation. +**[⬆ back to top](#table-of-contents)** + ## Coding Question Practice Why is this here? I'm not ready to interview. @@ -517,6 +537,8 @@ Gets messy quickly. **I use a pencil and eraser.** **Coding question practice is not about memorizing answers to programming problems.** +**[⬆ back to top](#table-of-contents)** + ## Coding Problems Don't forget your key coding interview books [here](#interview-prep-books). @@ -548,6 +570,8 @@ Challenge/Practice sites: - [Project Euler](https://projecteuler.net/) - very math-focused, and not really suited for coding interviews +**[⬆ back to top](#table-of-contents)** + ## Let's Get Started Alright, enough talk, let's learn! @@ -577,6 +601,8 @@ Well, that's about enough of that. When you go through "Cracking the Coding Interview", there is a chapter on this, and at the end there is a quiz to see if you can identify the runtime complexity of different algorithms. It's a super review and test. +**[⬆ back to top](#table-of-contents)** + ## Data Structures - ### Arrays @@ -699,6 +725,8 @@ if you can identify the runtime complexity of different algorithms. It's a super - get(key) - remove(key) +**[⬆ back to top](#table-of-contents)** + ## More Knowledge - ### Binary search @@ -739,6 +767,8 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] Absolute value: - [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html) +**[⬆ back to top](#table-of-contents)** + ## Trees - ### Trees - Intro @@ -817,6 +847,8 @@ if you can identify the runtime complexity of different algorithms. It's a super - [ ] heapify - create a heap from an array of elements, needed for heap_sort - [ ] heap_sort() - take an unsorted array and turn it into a sorted array in place using a max heap or min heap +**[⬆ back to top](#table-of-contents)** + ## Sorting - [ ] Notes: @@ -901,6 +933,8 @@ if you can identify the runtime complexity of different algorithms. It's a super As a summary, here is a visual representation of [15 sorting algorithms](https://www.youtube.com/watch?v=kPRA0W1kECg). If you need more detail on this subject, see the "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) +**[⬆ back to top](#table-of-contents)** + ## Graphs Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting. @@ -962,6 +996,8 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] list strongly connected components - [ ] check for bipartite graph +**[⬆ back to top](#table-of-contents)** + ## Even More Knowledge - ### Recursion @@ -1193,6 +1229,8 @@ Graphs can be used to represent many problems in computer science, so this secti --- +**[⬆ back to top](#table-of-contents)** + ## Final Review This section will have shorter videos that you can watch pretty quickly to review most of the important concepts. @@ -1208,6 +1246,8 @@ Graphs can be used to represent many problems in computer science, so this secti --- +**[⬆ back to top](#table-of-contents)** + ## Update Your Resume - See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed" @@ -1216,6 +1256,8 @@ Graphs can be used to represent many problems in computer science, so this secti - ["Step-by-step resume guide" by Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide) - Detailed guide on how to set up your resume from scratch, write effective resume content, optimize it, and test your resume +**[⬆ back to top](#table-of-contents)** + ## Interview Process & General Interview Prep - [ ] [How to Pass the Engineering Interview in 2021](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1) @@ -1249,6 +1291,8 @@ Mock Interviews: - [Hello Interview: Mock Interviews with Expert Coaches and AI](https://www.hellointerview.com/?utm_source=ciu) - interview directly with AI or with FAANG staff engineers and managers. - [Codemia: Practice system design problems with AI or community solutions and feedback](https://codemia.io/?utm_source=ciu) - Practice system design problems via AI practice tool. Share your solution with the community to get human feedback as well. +**[⬆ back to top](#table-of-contents)** + ## Be thinking of for when the interview comes Think of about 20 interview questions you'll get, along with the lines of the items below. Have at least one answer for each. @@ -1267,6 +1311,8 @@ Have a story, not just data, about something you accomplished. - What did you learn at [job x / project y]? - What would you have done better at [job x / project y]? +**[⬆ back to top](#table-of-contents)** + ## Have questions for the interviewer Some of mine (I already may know the answers, but want their opinion or team perspective): @@ -1282,6 +1328,8 @@ Some of mine (I already may know the answers, but want their opinion or team per - What is the work life like? - How is the work/life balance? +**[⬆ back to top](#table-of-contents)** + ## Once You've Got The Job Congratulations! @@ -1304,6 +1352,8 @@ You're never really done. --- +**[⬆ back to top](#table-of-contents)** + ## Additional Books These are here so you can dive into a topic you find interesting. @@ -1358,6 +1408,8 @@ You're never really done. - [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) - For a richer, more up-to-date (2017), but longer treatment +**[⬆ back to top](#table-of-contents)** + ## System Design, Scalability, Data Handling **You can expect system design questions if you have 4+ years of experience.** @@ -1470,6 +1522,8 @@ You're never really done. - [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/) - [Design a cache system](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/) +**[⬆ back to top](#table-of-contents)** + ## Additional Learning I added them to help you become a well-rounded software engineer and to be aware of certain @@ -1778,6 +1832,8 @@ You're never really done. --- +**[⬆ back to top](#table-of-contents)** + ## Additional Detail on Some Subjects I added these to reinforce some ideas already presented above, but didn't want to include them @@ -1864,6 +1920,8 @@ You're never really done. - NAND To Tetris: [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer) +**[⬆ back to top](#table-of-contents)** + ## Video Series Sit back and enjoy. @@ -1919,15 +1977,20 @@ Sit back and enjoy. - [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd) +**[⬆ back to top](#table-of-contents)** + ## Computer Science Courses - [Directory of Online CS Courses](https://github.com/open-source-society/computer-science) - [Directory of CS Courses (many with online lectures)](https://github.com/prakhar1989/awesome-courses) +**[⬆ back to top](#table-of-contents)** + ## Algorithms implementation - [Multiple Algorithms implementation by Princeton University](https://algs4.cs.princeton.edu/code) +**[⬆ back to top](#table-of-contents)** ## Papers @@ -1954,6 +2017,8 @@ Sit back and enjoy. - [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) - More papers: [1,000 papers](https://github.com/0voice/computer_expert_paper) +**[⬆ back to top](#table-of-contents)** + ## LICENSE [CC-BY-SA-4.0](./LICENSE.txt)