From 60c12d03df8a2dc71cc5447a1622da98c8e09aaa Mon Sep 17 00:00:00 2001
From: Alibek Datbayev
Date: Tue, 15 Feb 2022 17:34:43 +0100
Subject: [PATCH 001/173] Create README-kk.md
Initial readme for Kazakh translation
---
translations/README-kk.md | 1991 +++++++++++++++++++++++++++++++++++++
1 file changed, 1991 insertions(+)
create mode 100644 translations/README-kk.md
diff --git a/translations/README-kk.md b/translations/README-kk.md
new file mode 100644
index 0000000000..655d241c92
--- /dev/null
+++ b/translations/README-kk.md
@@ -0,0 +1,1991 @@
+# Coding Interview University
+
+> I originally created this as a short to-do list of study topics for becoming a software engineer,
+> but it grew to the large list you see today. After going through this study plan, [I got hired
+> as a Software Development Engineer at Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> You probably won't have to study as much as I did. Anyway, everything you need is here.
+>
+> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+>
+> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that below. I'll help you get there without wasting your precious time.
+>
+> The items listed here will prepare you well for a technical interview at just about any software company,
+> including the giants: Amazon, Facebook, Google, and Microsoft.
+>
+> *Best of luck to you!*
+
+
+Translations:
+
+- [中文版本](translations/README-cn.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Español](translations/README-es.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Polish](translations/README-pl.md)
+- [繁體中文](translations/README-tw.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Russian](translations/README-ru.md)
+- [German](translations/README-de.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Uzbek](translations/README-uz.md)
+- [Bulgarian](translations/README-bg.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+
+
+
+
+Translations in progress:
+
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+
+
+
+
+
+## What is it?
+
+
+
+This is my multi-month study plan for becoming a software engineer for a large company.
+
+**Required:**
+* A little experience with coding (variables, loops, methods/functions, etc)
+* Patience
+* Time
+
+Note this is a study plan for **software engineering**, not web development. Large software companies like Google, Amazon,
+Facebook and Microsoft view software engineering as different from web development. For example, Amazon has
+Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 separate roles and the interviews for
+them will not be the same, as each has its own competencies. These companies require computer science knowledge for
+software development/engineering roles.
+
+---
+
+## Table of Contents
+
+### The Study Plan
+
+- [What is it?](#what-is-it)
+- [Why use it?](#why-use-it)
+- [How to use it](#how-to-use-it)
+- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
+- [A Note About Video Resources](#a-note-about-video-resources)
+- [Choose a Programming Language](#choose-a-programming-language)
+- [Books for Data Structures and Algorithms](#books-for-data-structures-and-algorithms)
+- [Interview Prep Books](#interview-prep-books)
+- [Don't Make My Mistakes](#dont-make-my-mistakes)
+- [What you Won't See Covered](#what-you-wont-see-covered)
+- [The Daily Plan](#the-daily-plan)
+- [Coding Question Practice](#coding-question-practice)
+- [Coding Problems](#coding-problems)
+
+### Topics of Study
+
+- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
+- [Data Structures](#data-structures)
+ - [Arrays](#arrays)
+ - [Linked Lists](#linked-lists)
+ - [Stack](#stack)
+ - [Queue](#queue)
+ - [Hash table](#hash-table)
+- [More Knowledge](#more-knowledge)
+ - [Binary search](#binary-search)
+ - [Bitwise operations](#bitwise-operations)
+- [Trees](#trees)
+ - [Trees - Notes & Background](#trees---notes--background)
+ - [Binary search trees: BSTs](#binary-search-trees-bsts)
+ - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
+ - balanced search trees (general concept, not details)
+ - traversals: preorder, inorder, postorder, BFS, DFS
+- [Sorting](#sorting)
+ - selection
+ - insertion
+ - heapsort
+ - quicksort
+ - merge sort
+- [Graphs](#graphs)
+ - directed
+ - undirected
+ - adjacency matrix
+ - adjacency list
+ - traversals: BFS, DFS
+- [Even More Knowledge](#even-more-knowledge)
+ - [Recursion](#recursion)
+ - [Dynamic Programming](#dynamic-programming)
+ - [Design Patterns](#design-patterns)
+ - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
+ - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
+ - [How computers process a program](#how-computers-process-a-program)
+ - [Caches](#caches)
+ - [Processes and Threads](#processes-and-threads)
+ - [Testing](#testing)
+ - [String searching & manipulations](#string-searching--manipulations)
+ - [Tries](#tries)
+ - [Floating Point Numbers](#floating-point-numbers)
+ - [Unicode](#unicode)
+ - [Endianness](#endianness)
+ - [Networking](#networking)
+- [Final Review](#final-review)
+
+### Getting the Job
+
+- [Update Your Resume](#update-your-resume)
+- [Find a Job](#find-a-job)
+- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
+- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
+- [Have questions for the interviewer](#have-questions-for-the-interviewer)
+- [Once You've Got The Job](#once-youve-got-the-job)
+
+**---------------- Everything below this point is optional ----------------**
+
+### Optional Extra Topics & Resources
+
+- [Additional Books](#additional-books)
+- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
+- [Additional Learning](#additional-learning)
+ - [Compilers](#compilers)
+ - [Emacs and vi(m)](#emacs-and-vim)
+ - [Unix command line tools](#unix-command-line-tools)
+ - [Information theory](#information-theory-videos)
+ - [Parity & Hamming Code](#parity--hamming-code-videos)
+ - [Entropy](#entropy)
+ - [Cryptography](#cryptography)
+ - [Compression](#compression)
+ - [Computer Security](#computer-security)
+ - [Garbage collection](#garbage-collection)
+ - [Parallel Programming](#parallel-programming)
+ - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
+ - [A*](#a)
+ - [Fast Fourier Transform](#fast-fourier-transform)
+ - [Bloom Filter](#bloom-filter)
+ - [HyperLogLog](#hyperloglog)
+ - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
+ - [van Emde Boas Trees](#van-emde-boas-trees)
+ - [Augmented Data Structures](#augmented-data-structures)
+ - [Balanced search trees](#balanced-search-trees)
+ - AVL trees
+ - Splay trees
+ - Red/black trees
+ - 2-3 search trees
+ - 2-3-4 Trees (aka 2-4 trees)
+ - N-ary (K-ary, M-ary) trees
+ - B-Trees
+ - [k-D Trees](#k-d-trees)
+ - [Skip lists](#skip-lists)
+ - [Network Flows](#network-flows)
+ - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
+ - [Math for Fast Processing](#math-for-fast-processing)
+ - [Treap](#treap)
+ - [Linear Programming](#linear-programming-videos)
+ - [Geometry, Convex hull](#geometry-convex-hull-videos)
+ - [Discrete math](#discrete-math)
+ - [Machine Learning](#machine-learning)
+- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
+- [Video Series](#video-series)
+- [Computer Science Courses](#computer-science-courses)
+- [Papers](#papers)
+
+---
+
+## Why use it?
+
+If you want to work as a software engineer for a large company, these are the things you have to know.
+
+If you missed out on getting a degree in computer science, like I did, this will catch you up and save four years of your life.
+
+When I started this project, I didn't know a stack from a heap, didn't know Big-O anything, or anything about trees, or how to
+traverse a graph. If I had to code a sorting algorithm, I can tell ya it would have been terrible.
+Every data structure I had ever used was built into the language, and I didn't know how they worked
+under the hood at all. I never had to manage memory unless a process I was running would give an "out of
+memory" error, and then I'd have to find a workaround. I used a few multidimensional arrays in my life and
+thousands of associative arrays, but I never created data structures from scratch.
+
+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.
+
+## How to use it
+
+Everything below is an outline, and you should tackle the items in order from top to bottom.
+
+I'm using GitHub's special markdown flavor, including tasks lists to track progress.
+
+**Create a new branch so you can check items like this, just put an x in the brackets: [x]**
+
+ Fork a branch and follow the commands below
+
+Fork the GitHub repo https://github.com/jwasham/coding-interview-university by clicking on the Fork button.
+
+Clone to your local repo:
+
+ git clone git@github.com:/coding-interview-university.git
+ git checkout -b progress
+ git remote add jwasham https://github.com/jwasham/coding-interview-university
+ git fetch --all
+
+Mark all boxes with X after you completed your changes:
+
+ git add .
+ git commit -m "Marked x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
+
+[More about GitHub-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+## Don't feel you aren't smart enough
+
+- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
+- [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)
+
+## A Note About Video Resources
+
+Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
+Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
+
+It would be great to replace the online course resources with free and always-available public sources,
+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.
+
+## Choose a Programming Language
+
+You'll need to choose a programming language for the coding interviews you do,
+but you'll also need to find a language that you can use to study computer science concepts.
+
+Preferably the language would be the same, so that you only need to be proficient in one.
+
+### For this Study Plan
+
+When I did the study plan, I used 2 languages for most of it: C and Python
+
+* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
+ and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
+ but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
+ - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
+ - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - This is a short book, but it will give you a great handle on the C language and if you practice it a little
+ you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
+ - You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
+ - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
+* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
+
+This is my preference. You do what you like, of course.
+
+You may not need it, but here are some sites for learning a new language:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Codeforces](https://codeforces.com/)
+
+### For your Coding Interview
+
+You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
+
+- C++
+- Java
+- Python
+
+You could also use these, but read around first. There may be caveats:
+
+- JavaScript
+- Ruby
+
+Here is an article I wrote about choosing a language for the interview:
+[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+This is the original article my post was based on: http://blog.codingforinterviews.com/best-programming-language-jobs/
+
+You need to be very comfortable in the language and be knowledgeable.
+
+Read more about choices:
+- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[See language-specific resources here](programming-language-resources.md)
+
+## Books for Data Structures and Algorithms
+
+This book will form your foundation for computer science.
+
+Just choose one, in a language that you will be comfortable with. You'll be doing a lot of reading and coding.
+
+### C
+
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
+
+### Python
+
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - by Goodrich, Tamassia, Goldwasser
+ - I loved this book. It covered everything and more.
+ - Pythonic code
+ - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### Java
+
+Your choice:
+
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Free Coursera course that covers the book (taught by the authors!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+### C++
+
+Your choice:
+
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [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/)
+
+## Interview Prep Books
+
+You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
+but I bought more to give myself more practice. But I always do too much.
+
+I bought both of these. They gave me plenty of practice.
+
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - Answers in C++ and Java
+ - This is a good warm-up for Cracking the Coding Interview
+ - Not too difficult. Most problems may be easier than what you'll see in an interview (from what I've read)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - answers in Java
+
+### If you have tons of extra time:
+
+Choose one:
+
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [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)
+
+## Don't Make My Mistakes
+
+This list grew over many months, and yes, it got out of hand.
+
+Here are some mistakes I made so you'll have a better experience. And you'll save months of time.
+
+### 1. You Won't Remember it All
+
+I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
+through my notes and making flashcards, so I could review. I didn't need all of that knowledge.
+
+Please, read so you won't make my mistakes:
+
+[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+
+### 2. Use Flashcards
+
+To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
+Each card has different formatting. I made a mobile-first website, so I could review on my phone or tablet, wherever I am.
+
+Make your own for free:
+
+- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
+
+**I DON'T RECOMMEND using my flashcards.** There are too many and many of them are trivia that you don't need.
+
+But if you don't want to listen to me, here you go:
+- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics.
+It's way too much for what's required.
+
+**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
+same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
+your brain.
+
+An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
+It uses a repetition system to help you remember. It's user-friendly, available on all platforms and has a cloud sync system.
+It costs $25 on iOS but is free on other platforms.
+
+My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
+
+Some students have mentioned formatting issues with white space that can be fixed by doing the following: open deck, edit card, click cards, select the "styling" radio button, add the member "white-space: pre;" to the card class.
+
+### 3. Do Coding Interview Questions While You're Learning
+
+THIS IS VERY IMPORTANT.
+
+Start doing coding interview questions while you're learning data structures and algorithms.
+
+You need to apply what you're learning to solving problems, or you'll forget. I made this mistake.
+
+Once you've learned a topic, and feel somewhat comfortable with it, for example, **linked lists**:
+1. Open one of the [coding interview books](#interview-prep-books) (or coding problem websites, listed below)
+1. Do 2 or 3 questions regarding linked lists.
+1. Move on to the next learning topic.
+1. Later, go back and do another 2 or 3 linked list problems.
+1. Do this with each new topic you learn.
+
+**Keep doing problems while you're learning all this stuff, not after.**
+
+You're not being hired for knowledge, but how you apply the knowledge.
+
+There are many resources for this, listed below. Keep going.
+
+### 4. Focus
+
+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.
+
+## What you won't see covered
+
+These are prevalent technologies but not part of this study plan:
+
+- SQL
+- Javascript
+- HTML, CSS, and other front-end technologies
+
+## 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.
+
+Each day, take the next subject in the list, watch some videos about that subject, and then write an implementation
+of that data structure or algorithm in the language you chose for this course.
+
+You can see my code here:
+ - [C](https://github.com/jwasham/practice-c)
+ - [C++](https://github.com/jwasham/practice-cpp)
+ - [Python](https://github.com/jwasham/practice-python)
+
+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.
+
+## Coding Question Practice
+
+ Why is this here? I'm not ready to interview.
+
+[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
+
+Why you need to practice doing programming problems:
+- Problem recognition, and where the right data structures and algorithms fit in
+- Gathering requirements for the problem
+- Talking your way through the problem like you will in the interview
+- Coding on a whiteboard or paper, not a computer
+- Coming up with time and space complexity for your solutions (see Big-O below)
+- Testing your solutions
+
+There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
+interview books, too, but I found this outstanding:
+[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
+
+Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then type it and test it out on a computer.
+
+If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
+This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
+Gets messy quick. **I use a pencil and eraser.**
+
+
+
+**Coding question practice is not about memorizing answers to programming problems.**
+
+## Coding Problems
+
+Don't forget your key coding interview books [here](#interview-prep-books).
+
+Solving Problems:
+- [How to Find a Solution](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
+- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
+
+Coding Interview Question Videos:
+- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - Super for walkthroughs of problem solutions
+- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Good explanations of solution and the code
+ - You can watch several in a short time
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+
+Challenge sites:
+- [LeetCode](https://leetcode.com/)
+ - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing.
+ - See Nick White and FisherCoder Videos above for code walk-throughs.
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [InterviewBit](https://www.interviewbit.com/)
+- [Project Euler](https://projecteuler.net/)
+
+## Let's Get Started
+
+Alright, enough talk, let's learn!
+
+But don't forget to do coding problems from above while you learn!
+
+## Algorithmic complexity / Big-O / Asymptotic analysis
+
+- Nothing to implement here, you're just watching videos and taking notes! Yay!
+- There are a lot of videos here. Just watch enough until you understand it. You can always come back and review.
+- Don't worry if you don't understand all the math behind it.
+- You just need to understand how to express the complexity of an algorithm in terms of Big-O.
+- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] Skiena:
+ - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [slides](https://archive.org/details/lecture2_202008)
+- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (includes recurrence relations and master theorem):
+ - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
+ - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
+- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+
+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.
+
+## Data Structures
+
+- ### Arrays
+ - [ ] About Arrays:
+ - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] Implement a vector (mutable array with automatic resizing):
+ - [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
+ - [ ] New raw data array with allocated memory
+ - can allocate int array under the hood, just not use its features
+ - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
+ - [ ] size() - number of items
+ - [ ] capacity() - number of items it can hold
+ - [ ] is_empty()
+ - [ ] at(index) - returns item at given index, blows up if index out of bounds
+ - [ ] push(item)
+ - [ ] insert(index, item) - inserts item at index, shifts that index's value and trailing elements to the right
+ - [ ] prepend(item) - can use insert above at index 0
+ - [ ] pop() - remove from end, return value
+ - [ ] delete(index) - delete item at index, shifting all trailing elements left
+ - [ ] remove(item) - looks for value and removes index holding it (even if in multiple places)
+ - [ ] find(item) - looks for value and returns first index with that value, -1 if not found
+ - [ ] resize(new_capacity) // private function
+ - when you reach capacity, resize to double the size
+ - when popping an item, if size is 1/4 of capacity, resize to half
+ - [ ] Time
+ - O(1) to add/remove at end (amortized for allocations for more space), index, or update
+ - O(n) to insert/remove elsewhere
+ - [ ] Space
+ - contiguous in memory, so proximity helps performance
+ - space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
+
+- ### Linked Lists
+ - [ ] Description:
+ - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
+ - not the whole video, just portions about Node struct and memory allocation
+ - [ ] Linked List vs Arrays:
+ - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+ - [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [ ] Gotcha: you need pointer to pointer knowledge:
+ (for when you pass a pointer to a function that may change the address where that pointer points)
+ This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
+ - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
+ - [ ] Implement (I did with tail pointer & without):
+ - [ ] size() - returns number of data elements in list
+ - [ ] empty() - bool returns true if empty
+ - [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
+ - [ ] push_front(value) - adds an item to the front of the list
+ - [ ] pop_front() - remove front item and return its value
+ - [ ] push_back(value) - adds an item at the end
+ - [ ] pop_back() - removes end item and returns its value
+ - [ ] front() - get value of front item
+ - [ ] back() - get value of end item
+ - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index
+ - [ ] erase(index) - removes node at given index
+ - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
+ - [ ] reverse() - reverses the list
+ - [ ] remove_value(value) - removes the first item in the list with this value
+ - [ ] Doubly-linked List
+ - [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
+ - No need to implement
+
+- ### Stack
+ - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] Will not implement. Implementing with array is trivial
+
+- ### Queue
+ - [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
+ - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] Implement using linked-list, with tail pointer:
+ - enqueue(value) - adds value at position at tail
+ - dequeue() - returns value and removes least recently added element (front)
+ - empty()
+ - [ ] Implement using fixed-sized array:
+ - enqueue(value) - adds item at end of available storage
+ - dequeue() - returns value and removes least recently added element
+ - empty()
+ - full()
+ - [ ] Cost:
+ - a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n)
+ because you'd need the next to last element, causing a full traversal each dequeue
+ - enqueue: O(1) (amortized, linked list and array [probing])
+ - dequeue: O(1) (linked list and array)
+ - empty: O(1) (linked list and array)
+
+- ### Hash table
+ - [ ] Videos:
+ - [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Online Courses:
+ - [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Phone Book Problem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] distributed hash tables:
+ - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Implement with array using linear probing
+ - hash(k, m) - m is size of hash table
+ - add(key, value) - if key already exists, update value
+ - exists(key)
+ - get(key)
+ - remove(key)
+
+## More Knowledge
+
+- ### Binary search
+ - [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
+ - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] Implement:
+ - binary search (on sorted array of integers)
+ - binary search using recursion
+
+- ### Bitwise operations
+ - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
+ - [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
+ - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
+ - [ ] Good intro:
+ [Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)
+ - [ ] [C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
+ - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
+ - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
+ - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
+ - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
+ - [ ] [Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
+ - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
+ - [ ] 2s and 1s complement
+ - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
+ - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
+ - [ ] Count set bits
+ - [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
+ - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
+ - [ ] Swap values:
+ - [Swap](https://bits.stephan-brumme.com/swap.html)
+ - [ ] Absolute value:
+ - [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
+
+## Trees
+
+- ### Trees - Notes & Background
+ - [ ] [Series: Trees (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - basic tree construction
+ - traversal
+ - manipulation algorithms
+ - [ ] [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - BFS notes:
+ - level order (BFS, using queue)
+ - time complexity: O(n)
+ - space complexity: best: O(1), worst: O(n/2)=O(n)
+ - DFS notes:
+ - time complexity: O(n)
+ - space complexity:
+ best: O(log n) - avg. height of tree
+ worst: O(n)
+ - inorder (DFS: left, self, right)
+ - postorder (DFS: left, right, self)
+ - preorder (DFS: self, left, right)
+
+- ### Binary search trees: BSTs
+ - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [MIT (video)](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - C/C++:
+ - [ ] [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] [Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Find height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] [Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Check if a binary tree is binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Implement:
+ - [ ] insert // insert value into tree
+ - [ ] get_node_count // get count of values stored
+ - [ ] print_values // prints the values in the tree, from min to max
+ - [ ] delete_tree
+ - [ ] is_in_tree // returns true if given value exists in the tree
+ - [ ] get_height // returns the height in nodes (single node's height is 1)
+ - [ ] get_min // returns the minimum value stored in the tree
+ - [ ] get_max // returns the maximum value stored in the tree
+ - [ ] is_binary_search_tree
+ - [ ] delete_value
+ - [ ] get_successor // returns next-highest value in tree after given value, -1 if none
+
+- ### Heap / Priority Queue / Binary Heap
+ - visualized as a tree, but is usually linear in storage (array, linked list)
+ - [ ] [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
+ - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
+ - [ ] [Naive Implementations (video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+ - [ ] [Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+ - [ ] [Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] [Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+ - [ ] [Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+ - [ ] [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+ - [ ] [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
+ - [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
+ - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
+ - [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] Implement a max-heap:
+ - [ ] insert
+ - [ ] sift_up - needed for insert
+ - [ ] get_max - returns the max item, without removing it
+ - [ ] get_size() - return number of elements stored
+ - [ ] is_empty() - returns true if heap contains no elements
+ - [ ] extract_max - returns the max item, removing it
+ - [ ] sift_down - needed for extract_max
+ - [ ] remove(x) - removes item at index x
+ - [ ] 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
+
+## Sorting
+
+- [ ] Notes:
+ - Implement sorts & know best case/worst case, average complexity of each:
+ - no bubble sort - it's terrible - O(n^2), except when n <= 16
+ - [ ] Stability in sorting algorithms ("Is Quicksort stable?")
+ - [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
+ - [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+ - [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+ - [Sorting Algorithms - Stability](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+ - [ ] Which algorithms can be used on linked lists? Which on arrays? Which on both?
+ - I wouldn't recommend sorting a linked list, but merge sort is doable.
+ - [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
+
+- For heapsort, see Heap data structure above. Heap sort is great, but not stable
+
+- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
+ - [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. Sorting Complexity](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity)
+ - [ ] [4. Comparators](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators)
+ - [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
+ - [ ] [2. Selection](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection)
+ - [ ] [3. Duplicate Keys](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys)
+ - [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts)
+
+- [ ] UC Berkeley:
+ - [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+
+- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
+- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
+- [ ] [Insertion Sort, Merge Sort (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+- [ ] [Insertion Sort (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
+- [ ] [Merge Sort (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
+- [ ] [Quicksort (video)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
+- [ ] [Selection Sort (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
+
+- [ ] Merge sort code:
+ - [ ] [Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+ - [ ] [Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+ - [ ] [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+- [ ] Quick sort code:
+ - [ ] [Implementation (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+ - [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+ - [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+- [ ] Implement:
+ - [ ] Mergesort: O(n log n) average and worst case
+ - [ ] Quicksort O(n log n) average case
+ - Selection sort and insertion sort are both O(n^2) average and worst case
+ - For heapsort, see Heap data structure above
+
+- [ ] Not required, but I recommended them:
+ - [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
+ - [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort)
+ - [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+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 "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
+
+## Graphs
+
+Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
+
+- Notes:
+ - There are 4 basic ways to represent a graph in memory:
+ - objects and pointers
+ - adjacency matrix
+ - adjacency list
+ - adjacency map
+ - Familiarize yourself with each representation and its pros & cons
+ - BFS and DFS - know their computational complexity, their trade offs, and how to implement them in real code
+ - When asked a question, look for a graph-based solution first, then move on if none
+
+- [ ] MIT(videos):
+ - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
+ - [ ] [Depth-First Search](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
+
+- [ ] Skiena Lectures - great intro:
+ - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
+ - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
+ - [ ] [CSE373 2012 - Lecture 13 - Graph Algorithms (video)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
+ - [ ] [CSE373 2012 - Lecture 14 - Graph Algorithms (con't) (video)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+
+- [ ] Graphs (review and more):
+
+ - [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
+ - [ ] [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
+ - [ ] [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] ~~[CS 61B 2014 (starting at 58:09) (video)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)~~
+ - [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+
+- Full Coursera Course:
+ - [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
+
+- I'll implement:
+ - [ ] DFS with adjacency list (recursive)
+ - [ ] DFS with adjacency list (iterative with stack)
+ - [ ] DFS with adjacency matrix (recursive)
+ - [ ] DFS with adjacency matrix (iterative with stack)
+ - [ ] BFS with adjacency list
+ - [ ] BFS with adjacency matrix
+ - [ ] single-source shortest path (Dijkstra)
+ - [ ] minimum spanning tree
+ - DFS-based algorithms (see Aduni videos above):
+ - [ ] check for cycle (needed for topological sort, since we'll check for cycle before starting)
+ - [ ] topological sort
+ - [ ] count connected components in a graph
+ - [ ] list strongly connected components
+ - [ ] check for bipartite graph
+
+## Even More Knowledge
+
+- ### Recursion
+ - [ ] Stanford lectures on recursion & backtracking:
+ - [ ] [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - When it is appropriate to use it?
+ - How is tail recursion better than not?
+ - [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
+ - [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+
+- ### Dynamic Programming
+ - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
+ problem as being a candidate for dynamic programming.
+ - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
+ - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
+ - [ ] Videos:
+ - the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
+ - [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
+ - [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
+ - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
+ - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
+ - [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] List of individual DP problems (each is short):
+ [Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] Yale Lecture notes:
+ - [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
+ - [ ] Coursera:
+ - [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
+ - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
+ - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
+ - [ ] [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
+ - [ ] [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
+ - [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
+
+- ### Design patterns
+ - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] Learn these patterns:
+ - [ ] strategy
+ - [ ] singleton
+ - [ ] adapter
+ - [ ] prototype
+ - [ ] decorator
+ - [ ] visitor
+ - [ ] factory, abstract factory
+ - [ ] facade
+ - [ ] observer
+ - [ ] proxy
+ - [ ] delegate
+ - [ ] command
+ - [ ] state
+ - [ ] memento
+ - [ ] iterator
+ - [ ] composite
+ - [ ] flyweight
+ - [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
+ - [ ] [Book: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
+ - [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
+
+- ### Combinatorics (n choose k) & Probability
+ - [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] Khan Academy:
+ - Course layout:
+ - [ ] [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
+ - Just the videos - 41 (each are simple and each are short):
+ - [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+
+- ### NP, NP-Complete and Approximation Algorithms
+ - Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
+ and be able to recognize them when an interviewer asks you them in disguise.
+ - Know what NP-complete means.
+ - [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] Simonson:
+ - [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] Skiena:
+ - [ ] [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
+ - [ ] [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - Peter Norvig discusses near-optimal solutions to traveling salesman problem:
+ - [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
+ - Pages 1048 - 1140 in CLRS if you have it.
+
+- ### How computers process a program
+
+ - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
+ - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
+
+- ### Caches
+ - [ ] LRU cache:
+ - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] [Implementing LRU (video)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] [LeetCode - 146 LRU Cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
+ - [ ] CPU cache:
+ - [ ] [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+
+- ### Processes and Threads
+ - [ ] Computer Science 162 - Operating Systems (25 videos):
+ - for processes and threads see videos 1-11
+ - [Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
+ - Covers:
+ - Processes, Threads, Concurrency issues
+ - Difference between processes and threads
+ - Processes
+ - Threads
+ - Locks
+ - Mutexes
+ - Semaphores
+ - Monitors
+ - How they work?
+ - Deadlock
+ - Livelock
+ - CPU activity, interrupts, context switching
+ - Modern concurrency constructs with multicore processors
+ - [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
+ - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
+ - Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
+ - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
+ - Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
+ - Context switching
+ - How context switching is initiated by the operating system and underlying hardware?
+ - [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
+ - [ ] concurrency in Python (videos):
+ - [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
+ - [reference](http://www.dabeaz.com/GIL)
+ - [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
+ - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
+
+- ### Testing
+ - To cover:
+ - how unit testing works
+ - what are mock objects
+ - what is integration testing
+ - what is dependency injection
+ - [ ] [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
+ - [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
+ - [ ] Dependency injection:
+ - [ ] [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
+ - [ ] [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
+ - [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
+
+- ### String searching & manipulations
+ - [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
+ - [ ] [2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
+ - [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
+ - [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
+ - [ ] [5. Rabin-Karp](https://www.coursera.org/learn/algorithms-part2/lecture/3KiqT/rabin-karp)
+ - [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+
+ If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects).
+
+- ### Tries
+ - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
+ to track the path
+ - I read through code, but will not implement
+ - [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
+ - [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
+ - [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
+ - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
+ - [ ] Short course videos:
+ - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
+ - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
+ - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/competitive-programming/tutorials/using-tries/)
+ - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+
+- ### Floating Point Numbers
+ - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
+ - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
+
+- ### Unicode
+ - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
+ - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
+
+- ### Endianness
+ - [ ] [Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
+ - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - Very technical talk for kernel devs. Don't worry if most is over your head.
+ - The first half is enough.
+
+- ### Networking
+ - **if you have networking experience or want to be a reliability engineer or operations engineer, expect questions**
+ - Otherwise, this is just good to know
+ - [ ] [Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] [SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] [Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
+ - [ ] [Subnetting Demystified - Part 5 CIDR Notation (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] Sockets:
+ - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+
+---
+
+## Final Review
+
+ This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
+ It's nice if you want a refresher often.
+
+- [ ] Series of 2-3 minutes short subject videos (23 videos)
+ - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (18 videos):
+ - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+---
+
+## Update Your Resume
+
+- See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed"
+- I don't know how important this is (you can do your own research) but here is an article on making your resume ATS Compliant:
+ - [How to Create or Check if your Resume is ATS Compliant](https://ayedot.com/97/MiniBlog/Meaning-of-ATS-compliant-resume-and-How-to-create-ATS-Resume-for-Free)
+- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
+ - Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
+
+
+## Find a Job
+
+- [Sites for Finding Jobs](https://ayedot.com/151/MiniBlog/Top-10-Best-Websites-for-Careers--Jobs)
+
+## 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)
+- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] How to Get a Job at the Big 4:
+ - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [How to Get a Job at the Big 4.1 (Follow-up video)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] Cracking The Coding Interview Set 1:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Cracking the Facebook Coding Interview:
+ - [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- Prep Courses:
+ - [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
+ - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
+ - [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
+ - [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - A free Python centric data structures and algorithms course.
+ - [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
+ - [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview.
+
+Mock Interviews:
+- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
+- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
+- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
+
+## 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.
+Have a story, not just data, about something you accomplished.
+
+- Why do you want this job?
+- What's a tough problem you've solved?
+- Biggest challenges faced?
+- Best/worst designs seen?
+- Ideas for improving an existing product
+- How do you work best, as an individual and as part of a team?
+- Which of your skills or experiences would be assets in the role and why?
+- What did you most enjoy at [job x / project y]?
+- What was the biggest challenge you faced at [job x / project y]?
+- What was the hardest bug you faced at [job x / project y]?
+- What did you learn at [job x / project y]?
+- What would you have done better at [job x / project y]?
+
+- If you find it hard to come up with good answers of these types of interview questions, here are some ideas:
+ - [General Interview Questions and their Answers](https://ayedot.com/119/MiniBlog/General-Interview-Questions-and-their-Answers-for-Tech-Jobs)
+
+## Have questions for the interviewer
+
+Some of mine (I already may know the answers, but want their opinion or team perspective):
+
+- How large is your team?
+- What does your dev cycle look like? Do you do waterfall/sprints/agile?
+- Are rushes to deadlines common? Or is there flexibility?
+- How are decisions made in your team?
+- How many meetings do you have per week?
+- Do you feel your work environment helps you concentrate?
+- What are you working on?
+- What do you like about it?
+- What is the work life like?
+- How is the work/life balance?
+
+## Once You've Got The Job
+
+Congratulations!
+
+Keep learning.
+
+You're never really done.
+
+---
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+ Everything below this point is optional. It is NOT needed for an entry-level interview.
+ However, by studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
+ any software engineering job. You'll be a much more well-rounded software engineer.
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+---
+
+## Additional Books
+
+ These are here so you can dive into a topic you find interesting.
+
+- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
+ - An oldie but a goodie
+- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
+ - A modern option
+- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
+- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
+ - A gentle introduction to design patterns
+- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - AKA the "Gang Of Four" book, or GOF
+ - The canonical design patterns book
+- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - As a review and problem recognition
+ - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
+ - This book has 2 parts:
+ - Class textbook on data structures and algorithms
+ - Pros:
+ - Is a good review as any algorithms textbook would be
+ - Nice stories from his experiences solving problems in industry and academia
+ - Code examples in C
+ - Cons:
+ - Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
+ - Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
+ - Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
+ - Algorithm catalog:
+ - This is the real reason you buy this book.
+ - This book is better as an algorithm reference, and not something you read cover to cover.
+ - Can rent it on Kindle
+ - Answers:
+ - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
+ - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
+ - The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
+ - These chapters are worth the read to give you a nice foundation:
+ - Chapter 2 - Numeric Representation
+ - Chapter 3 - Binary Arithmetic and Bit Operations
+ - Chapter 4 - Floating-Point Representation
+ - Chapter 5 - Character Representation
+ - Chapter 6 - Memory Organization and Access
+ - Chapter 7 - Composite Data Types and Memory Objects
+ - Chapter 9 - CPU Architecture
+ - Chapter 10 - Instruction Set Architecture
+ - Chapter 11 - Memory Architecture and Organization
+- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
+ - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently
+ - AKA CLR, sometimes CLRS, because Stein was late to the game
+- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
+ - For a richer, more up-to-date (2017), but longer treatment
+
+## System Design, Scalability, Data Handling
+
+**You can expect system design questions if you have 4+ years of experience.**
+
+- Scalability and System Design are very large topics with many topics and resources, since
+ there is a lot to consider when designing a software/hardware system that can scale.
+ Expect to spend quite a bit of time on this
+- Considerations:
+ - Scalability
+ - Distill large data sets to single values
+ - Transform one data set to another
+ - Handling obscenely large amounts of data
+ - System design
+ - features sets
+ - interfaces
+ - class hierarchies
+ - designing a system under certain constraints
+ - simplicity and robustness
+ - tradeoffs
+ - performance analysis and optimization
+- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
+- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
+- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
+- [ ] [How to ace a systems design interview](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] Consensus Algorithms:
+ - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [Easy-to-read paper](https://raft.github.io/)
+ - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
+- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] Scalability:
+ - You don't need all of these. Just pick a few that interest you.
+ - [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] Short series:
+ - [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
+ - [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/)
+ - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [How to Remove Duplicates in Large Datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
+ - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
+ - [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
+ - [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
+ - [ ] [Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] See "Messaging, Serialization, and Queueing Systems" way below for info on some of the technologies that can glue services together
+ - [ ] Twitter:
+ - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section
+- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
+ - review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
+ - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - flow:
+ 1. Understand the problem and scope:
+ - Define the use cases, with interviewer's help
+ - Suggest additional features
+ - Remove items that interviewer deems out of scope
+ - Assume high availability is required, add as a use case
+ 2. Think about constraints:
+ - Ask how many requests per month
+ - Ask how many requests per second (they may volunteer it or make you do the math)
+ - Estimate reads vs. writes percentage
+ - Keep 80/20 rule in mind when estimating
+ - How much data written per second
+ - Total storage required over 5 years
+ - How much data read per second
+ 3. Abstract design:
+ - Layers (service, data, caching)
+ - Infrastructure: load balancing, messaging
+ - Rough overview of any key algorithm that drives the service
+ - Consider bottlenecks and determine solutions
+ - Exercises:
+ - [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
+ - [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [Design a cache system](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
+
+## Additional Learning
+
+ I added them to help you become a well-rounded software engineer, and to be aware of certain
+ technologies and algorithms, so you'll have a bigger toolbox.
+
+- ### Compilers
+ - [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
+ - [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+
+- ### Emacs and vi(m)
+ - Familiarize yourself with a unix-based code editor
+ - vi(m):
+ - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [VIM Adventures](http://vim-adventures.com/)
+ - set of 4 videos:
+ - [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
+ - [The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
+ - [The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
+ - [The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
+ - [Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
+ - emacs:
+ - [Basics Emacs Tutorial (video)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - set of 3 (videos):
+ - [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
+ - [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
+ - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
+ - [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+ - [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
+
+- ### Unix command line tools
+ - I filled in the list below from good tools.
+ - bash
+ - cat
+ - grep
+ - sed
+ - awk
+ - curl or wget
+ - sort
+ - tr
+ - uniq
+ - [strace](https://en.wikipedia.org/wiki/Strace)
+ - [tcpdump](https://danielmiessler.com/study/tcpdump/)
+
+- ### Information theory (videos)
+ - [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
+ - More about Markov processes:
+ - [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
+ - [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
+ - [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
+ - See more in MIT 6.050J Information and Entropy series below
+
+- ### Parity & Hamming Code (videos)
+ - [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
+ - [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
+ - Hamming Code:
+ - [Error detection](https://www.youtube.com/watch?v=1A_NcXxdoCc)
+ - [Error correction](https://www.youtube.com/watch?v=JAMLuxdHH8o)
+ - [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
+
+- ### Entropy
+ - Also see videos below
+ - Make sure to watch information theory videos first
+ - [Information Theory, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
+
+- ### Cryptography
+ - Also see videos below
+ - Make sure to watch information theory videos first
+ - [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
+ - [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
+ - [Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- ### Compression
+ - Make sure to watch information theory videos first
+ - Computerphile (videos):
+ - [Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
+ - [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
+ - [Upside Down Trees (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
+ - [EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
+ - [Elegant Compression in Text (The LZ 77 Method)](https://www.youtube.com/watch?v=goOa3DGezUA)
+ - [Text Compression Meets Probabilities](https://www.youtube.com/watch?v=cCDCfoHTsaU)
+ - [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
+ - [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
+
+- ### Computer Security
+ - [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
+ - [Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
+ - [Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
+ - [Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- ### Garbage collection
+ - [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
+ - [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
+ - [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+
+- ### Parallel Programming
+ - [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
+ - [Efficient Python for High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+
+- ### Messaging, Serialization, and Queueing Systems
+ - [Thrift](https://thrift.apache.org/)
+ - [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Protocol Buffers](https://developers.google.com/protocol-buffers/)
+ - [Tutorials](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [gRPC 101 for Java Developers (video)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Tutorial](http://try.redis.io/)
+ - [Amazon SQS (queue)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Get Started](https://www.rabbitmq.com/getstarted.html)
+ - [Celery](http://www.celeryproject.org/)
+ - [First Steps With Celery](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Intro - Read The Manual](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### A*
+ - [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
+ - [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Fast Fourier Transform
+ - [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [What is the Fourier Transform? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Divide & Conquer: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [Understanding The FFT](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Bloom Filter
+ - Given a Bloom filter with m bits and k hashing functions, both insertion and membership testing are O(k)
+ - [Bloom Filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Bloom Filters | Mining of Massive Datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Tutorial](http://billmill.org/bloomfilter-tutorial/)
+ - [How To Write A Bloom Filter App](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+
+- ### HyperLogLog
+ - [How To Count A Billion Distinct Objects Using Only 1.5KB Of Memory](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
+
+- ### Locality-Sensitive Hashing
+ - Used to determine the similarity of documents
+ - The opposite of MD5 or SHA which are used to determine if 2 documents/strings are exactly the same
+ - [Simhashing (hopefully) made simple](http://ferd.ca/simhashing-hopefully-made-simple.html)
+
+- ### van Emde Boas Trees
+ - [Divide & Conquer: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
+
+- ### Augmented Data Structures
+ - [CS 61B Lecture 39: Augmenting Data Structures](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
+
+- ### Balanced search trees
+ - Know at least one type of balanced binary tree (and know how it's implemented):
+ - "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
+ A particularly interesting self-organizing data structure is the splay tree, which uses rotations
+ to move any accessed key to the root." - Skiena
+ - Of these, I chose to implement a splay tree. From what I've read, you won't implement a
+ balanced search tree in your interview. But I wanted exposure to coding one up
+ and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code
+ - Splay tree: insert, search, delete functions
+ If you end up implementing red/black tree try just these:
+ - Search and insertion functions, skipping delete
+ - I want to learn more about B-Tree since it's used so widely with very large data sets
+ - [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
+
+ - **AVL trees**
+ - In practice:
+ From what I can tell, these aren't used much in practice, but I could see where they would be:
+ The AVL tree is another structure supporting O(log n) search, insertion, and removal. It is more rigidly
+ balanced than red–black trees, leading to slower insertion and removal but faster retrieval. This makes it
+ attractive for data structures that may be built once and loaded without reconstruction, such as language
+ dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter)
+ - [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ - [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+
+ - **Splay trees**
+ - In practice:
+ Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors,
+ data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory,
+ networking and file system code) etc
+ - [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
+ - MIT Lecture: Splay Trees:
+ - Gets very mathy, but watch the last 10 minutes for sure.
+ - [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
+
+ - **Red/black trees**
+ - These are a translation of a 2-3 tree (see below).
+ - In practice:
+ Red–black trees offer worst-case guarantees for insertion time, deletion time, and search time.
+ Not only does this make them valuable in time-sensitive applications such as real-time applications,
+ but it makes them valuable building blocks in other data structures which provide worst-case guarantees;
+ for example, many data structures used in computational geometry can be based on red–black trees, and
+ the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In the version 8 of Java,
+ the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor
+ hashcodes, a Red-Black tree is used
+ - [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
+ - [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+
+ - **2-3 search trees**
+ - In practice:
+ 2-3 trees have faster inserts at the expense of slower searches (since height is more compared to AVL trees).
+ - You would use 2-3 tree very rarely because its implementation involves different types of nodes. Instead, people use Red Black trees.
+ - [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+ - **2-3-4 Trees (aka 2-4 trees)**
+ - In practice:
+ For every 2-4 tree, there are corresponding red–black trees with data elements in the same order. The insertion and deletion
+ operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an
+ important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce
+ 2-4 trees just before red–black trees, even though **2-4 trees are not often used in practice**.
+ - [CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
+ - [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
+
+ - **N-ary (K-ary, M-ary) trees**
+ - note: the N or K is the branching factor (max branches)
+ - binary trees are a 2-ary tree, with branching factor = 2
+ - 2-3 trees are 3-ary
+ - [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
+
+ - **B-Trees**
+ - Fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor).
+ - In Practice:
+ B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to
+ its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary
+ block in a particular file. The basic problem is turning the file block i address into a disk block
+ (or perhaps to a cylinder-head-sector) address
+ - [B-Tree](https://en.wikipedia.org/wiki/B-tree)
+ - [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html)
+ - [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - covers cache-oblivious B-Trees, very interesting data structures
+ - the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+
+
+- ### k-D Trees
+ - Great for finding number of points in a rectangle or higher dimension object
+ - A good fit for k-nearest neighbors
+ - [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk)
+ - [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+
+- ### Skip lists
+ - "These are somewhat of a cult data structure" - Skiena
+ - [Randomization: Skip Lists (video)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
+
+- ### Network Flows
+ - [Ford-Fulkerson in 5 minutes — Step by step example (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
+ - [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+
+- ### Disjoint Sets & Union Find
+ - [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
+ - [Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
+
+- ### Math for Fast Processing
+ - [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+
+- ### Treap
+ - Combination of a binary search tree and a heap
+ - [Treap](https://en.wikipedia.org/wiki/Treap)
+ - [Data Structures: Treaps explained (video)](https://www.youtube.com/watch?v=6podLUYinH8)
+ - [Applications in set operations](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
+
+- ### Linear Programming (videos)
+ - [Linear Programming](https://www.youtube.com/watch?v=M4K6HYLHREQ)
+ - [Finding minimum cost](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
+ - [Finding maximum value](https://www.youtube.com/watch?v=8AA_81xI3ik)
+ - [Solve Linear Equations with Python - Simplex Algorithm](https://www.youtube.com/watch?v=44pAWI7v5Zk)
+
+- ### Geometry, Convex hull (videos)
+ - [Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
+ - [Geometric Algorithms: Graham & Jarvis - Lecture 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
+
+- ### Discrete math
+ - [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
+
+- ### Machine Learning
+ - Why ML?
+ - [How Google Is Remaking Itself As A Machine Learning First Company](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
+ - [Large-Scale Deep Learning for Intelligent Computer Systems (video)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
+ - [Deep Learning and Understandability versus Software Engineering and Verification by Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
+ - [Google's Cloud Machine learning tools (video)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
+ - [Google Developers' Machine Learning Recipes (Scikit Learn & Tensorflow) (video)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
+ - [Tensorflow (video)](https://www.youtube.com/watch?v=oZikw5k_2FM)
+ - [Tensorflow Tutorials](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
+ - [Practical Guide to implementing Neural Networks in Python (using Theano)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
+ - Courses:
+ - [Great starter course: Machine Learning](https://www.coursera.org/learn/machine-learning)
+ - [videos only](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
+ - see videos 12-18 for a review of linear algebra (14 and 15 are duplicates)
+ - [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks)
+ - [Google's Deep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730)
+ - [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
+ - [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive)
+ - [Metis Online Course ($99 for 2 months)](http://www.thisismetis.com/explore-data-science)
+ - Resources:
+ - Books:
+ - [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
+ - [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
+ - [Introduction to Machine Learning with Python](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
+ - [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
+ - Data School: http://www.dataschool.io/
+
+---
+
+## Additional Detail on Some Subjects
+
+ I added these to reinforce some ideas already presented above, but didn't want to include them
+ above because it's just too much. It's easy to overdo it on a subject.
+ You want to get hired in this century, right?
+
+- **SOLID**
+ - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [Open/Closed Principle](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
+ - [ ] L - [Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ Principle](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
+ - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
+ - [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
+ - [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
+ - [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+
+
+- **Union-Find**
+ - [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
+ - [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
+ - [Trees](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
+ - [Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
+ - [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
+ - [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
+
+- **More Dynamic Programming** (videos)
+ - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
+ - [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
+ - [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
+ - [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=tp4_UXaVyx8&index=22&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
+ - [6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+
+- **Advanced Graph Processing** (videos)
+ - [Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
+ - [Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+
+- MIT **Probability** (mathy, and go slowly, which is good for mathy things) (videos):
+ - [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
+ - [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+
+- [Simonson: Approximation Algorithms (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+
+- **String Matching**
+ - Rabin-Karp (videos):
+ - [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
+ - [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
+ - [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
+ - [Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
+ - [Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
+ - Knuth-Morris-Pratt (KMP):
+ - [TThe Knuth-Morris-Pratt (KMP) String Matching Algorithm](https://www.youtube.com/watch?v=5i7oKodCRJo)
+ - Boyer–Moore string search algorithm
+ - [Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
+ - [Advanced String Searching Boyer-Moore-Horspool Algorithms (video)](https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
+ - starts off great, but by the time it gets past KMP it gets more complicated than it needs to be
+ - nice explanation of tries
+ - can be skipped
+
+- **Sorting**
+
+ - Stanford lectures on sorting:
+ - [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - Shai Simonson, [Aduni.org](http://www.aduni.org/):
+ - [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - Steven Skiena lectures on sorting:
+ - [lecture begins at 26:46 (video)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
+ - [lecture begins at 27:40 (video)](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [lecture begins at 35:00 (video)](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [lecture begins at 23:50 (video)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+
+## Video Series
+
+Sit back and enjoy.
+
+- [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+
+- [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
+
+- [MIT 18.06 Linear Algebra, Spring 2005 (35 videos)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+
+- [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+
+- CSE373 - Analysis of Algorithms (25 videos)
+ - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+
+- [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+
+- [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
+
+- [UC Berkeley 61C: Machine Structures (26 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+
+- [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+
+- ~~[UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)~~
+
+- [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
+
+- [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+
+- [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+
+- [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+
+- [MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+
+- [MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+
+- [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- [MIT 6.050J: Information and Entropy, Spring 2008 (19 videos)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7)
+
+- [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+
+- [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+
+- [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+
+- [Harvard COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+
+- [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+
+- [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
+ - [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/)
+
+- [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+
+- [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## 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)
+
+## Algorithms implementation
+
+- [Multiple Algorithms implementation by Princeton University](https://algs4.cs.princeton.edu/code)
+
+
+## Papers
+
+- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [implemented in Go](https://godoc.org/github.com/thomas11/csp)
+- [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - replaced by Colossus in 2012
+- [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - mostly replaced by Cloud Dataflow?
+- [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - The Dynamo paper kicked off the NoSQL revolution
+- [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: A Fast Address Sanity Checker:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google’s Globally-Distributed Database:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [video](https://www.usenix.org/node/170855)
+- [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
+- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf )
+- [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)
+
+## LICENSE
+
+[CC-BY-SA-4.0](./LICENSE.txt)
From 66e524b30b5a1f2a559a45fe498b33b5827eb607 Mon Sep 17 00:00:00 2001
From: Sumit Kumar Kar
Date: Wed, 23 Feb 2022 03:28:48 +0600
Subject: [PATCH 002/173] Fixed md syntax,wrong translation till Table
---
translations/README-bn.md | 415 +++++++++++++++++++-------------------
1 file changed, 210 insertions(+), 205 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 501581a555..cda7be5c1b 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -1,16 +1,17 @@
-#কোডিং সাক্ষাত্কার বিশ্ববিদ্যালয়
+# কোডিং সাক্ষাত্কার বিশ্ববিদ্যালয়
-> আমি এটি প্রথমে একটি সফটওয়্যার ইঞ্জিনিয়ার হওয়ার জন্য অধ্যয়নের বিষয়গুলির একটি স্বল্প-করণীয় তালিকা হিসাবে তৈরি করেছি,
-> তবে এটি আজ আপনি যে বৃহত তালিকায় দেখতে পেলেন grew এই অধ্যয়নের পরিকল্পনাটি পেরিয়ে যাওয়ার পরে, [আমি নিয়োগ পেয়েছি
-> [অ্যামাজনে সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার হিসাবে](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> আপনাকে সম্ভবত আমার মতো পড়াশোনা করতে হবে না। যাইহোক, আপনার যা কিছু প্রয়োজন তা এখানেই।
+> আমি এটি প্রথমে একটি সফটওয়্যার ইঞ্জিনিয়ার হওয়ার জন্য অধ্যয়নের বিষয়গুলির একটি স্বল্প-করণীয় তালিকা হিসাবে তৈরি করেছিলাম,
+> তবে এটি আজ আপনি যে বৃহত তালিকা দেখতে পাচ্ছেন তাতে রুপ নিয়েছে এই শিক্ষা পরিকল্পনাটি পেরিয়ে যাওয়ার পরে, [আমি নিয়োগ পেয়েছি
+> অ্যামাজনে সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার হিসাবে](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+>
+> **খেয়াল করুন** আপনাকে সম্ভবত আমার মতো পড়াশোনা করতে হবে না। যাইহোক, আপনার যা কিছু প্রয়োজন তা এখানেই।
>
> আমি বেশ কয়েক মাস ধরে প্রতিদিন প্রায় ৮-১২ ঘন্টা অধ্যয়ন করেছি। এটি আমার গল্প: [গুগল সাক্ষাত্কারের জন্য আমি কেন ৮ মাস পূর্ণ-সময় অধ্যয়ন করেছি](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> এখানে তালিকাভুক্ত আইটেমগুলি কোনও সফ্টওয়্যার সংস্থার সম্পর্কে আপনাকে একটি সাক্ষাত্কারের জন্য ভালভাবে প্রস্তুত করবে,
-> জায়ান্ট সহ: অ্যামাজন, ফেসবুক, গুগল বা মাইক্রোসফ্ট।
+> এখানে তালিকাভুক্ত আইটেমগুলি যেকোনো সফ্টওয়্যার সংস্থার সম্পর্কে আপনাকে একটি সাক্ষাত্কারের জন্য ভালভাবে প্রস্তুত করবে,
+> যার মধ্যে থাকবে বৃহৎ প্রযুক্তি কোম্পানি যেমন: অ্যামাজন, ফেসবুক, গুগল বা মাইক্রোসফ্ট।
>
-> * আপনার জন্য শুভকামনা! *
+> *আপনার জন্য শুভকামনা!*
অনুবাদ:
@@ -87,148 +88,155 @@
-##এটা কি?
+## এটা কি?

-কোনও বড় প্রতিষ্ঠানের সফটওয়্যার ইঞ্জিনিয়ারের কাছে ওয়েব বিকাশকারী (স্ব-শিক্ষিত, কোনও সিএস ডিগ্রি) থেকে যাওয়ার জন্য এটি আমার বহু মাসের অধ্যয়ন পরিকল্পনা।
-
-এটি
-* নতুন সফটওয়্যার ইঞ্জিনিয়ার
-* বা যাঁরা স্যুইচ করছেন তাদের জন্য
-* সফ্টওয়্যার / ওয়েব ডেভলপমেন্ট সফটওয়্যার ইঞ্জিনিয়ারিং (যেখানে কম্পিউটার বিজ্ঞানের জ্ঞান প্রয়োজন)। যদি তোমার থাকে
-বহু বছরের অভিজ্ঞতা রয়েছে এবং সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বহু বছরের অভিজ্ঞতা দাবি করছেন, আরও একটি কঠিন সাক্ষাত্কারের প্রত্যাশা করুন।
-
-আপনার যদি অনেক বছরের সফ্টওয়্যার / ওয়েব বিকাশের অভিজ্ঞতা থাকে তবে নোট করুন যে গুগল, অ্যামাজন,
-ফেসবুক এবং মাইক্রোসফ্ট সফ্টওয়্যার ইঞ্জিনিয়ারিং সফ্টওয়্যার / ওয়েব বিকাশ থেকে আলাদা হিসাবে দেখে এবং তাদের কম্পিউটার বিজ্ঞানের জ্ঞান প্রয়োজন।
-
-আপনি যদি নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে listচ্ছিক তালিকা (নেটওয়ার্কিং, সুরক্ষা) থেকে আরও অধ্যয়ন করুন।
+এটি আমার বহু মাসের অধ্যয়ন পরিকল্পনা যার মাধ্যমে কোনো বড় প্রতিষ্ঠানের সফটওয়্যার ইঞ্জিনিয়ারের কাজে (স্ব-শিক্ষিত, কোনও সিএস ডিগ্রি ছাড়া) যোগ দেওয়া সম্ভব।
+
+
+**গুরুত্বপূর্নঃ**
+
+* প্রোগ্রামিং এ সামান্য অভিজ্ঞতা (ভ্যারিয়েবলস,লুপ্স,মেথড/ফাংশন,ইত্যাদি)
+* ধৈর্য
+* সময়
+
+
+ বিজ্ঞপ্তি এটি সফ্টওয়্যার ইঞ্জিনিয়ারিং এর অধ্যয়ন পরিকল্পনা, ওয়েব ডেভলপমেন্ট এর নয়। বড় বড় সফ্টওয়্যার কোম্পানি যেমন গুগল, অ্যামাজন,ফেসবুক এবং মাইক্রোসফ্ট সফ্টওয়্যার ইঞ্জিনিয়ারিং কে ওয়েব ডেভলপমেন্ট থেকে আলাদা হিসাবে দেখে। যেমন অ্যামাজন এর ফ্রন্ট এন্ড ইঞ্জিনিয়ার (এফইই) এবং সফ্টওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার (এফডিই) দুই ধরনের ইঞ্জিনিয়ার আছে। এই দুইটি আলাদা চাকরি এবং এদের ইন্টারভিউ ও আলাদা ধরনের হবে। কারন এই দুই ধরনের পেশার জন্য আলাদা দক্ষতা প্রয়োজন। এই প্রতিষ্ঠান গুলো সফ্টওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার এর চাকরির জন্য কম্পিউটার সাইন্স এর জ্ঞান হাকা আবশ্যক মনে করে।
---
-##সুচিপত্র
+## সুচিপত্র
+### পাঠ পরিকল্পনা
+
- [এটি কী?](#এটি-কী)
- [কেন এটি ব্যবহার করবেন?](#এটি-কেন-ব্যবহার-করুন)
- [এটি কীভাবে ব্যবহার করবেন](#এটি-কীভাবে-ব্যবহার-করবেন)
-- [মনে হয় আপনি যথেষ্ট স্মার্ট নন](#মনে-করেন-না-আপনি-স্মার্ট-যথেষ্ট)
-- [ভিডিও সংস্থান সম্পর্কে](#ভিডিও-সংস্থান-সম্পর্কে)
-- [সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি](#সাক্ষাত্কার-প্রক্রিয়া-সাধারণ-সাক্ষাত্কার-প্রস্তুতি)
-- [সাক্ষাত্কারের জন্য একটি ভাষা বাছুন](#সাক্ষাত্কারের-জন্য-ভাষা-বেছে-নিন)
-- [বইয়ের তালিকা](#বুক-তালিকা)
-- [আপনি শুরু করার আগে](#আপনি-আগে-শুরু-করার-আগে)
-- [যা আপনি আবৃত দেখবেন না](#কী-আপনি-দেখতে-পাবেন-না)
-- [পূর্বশর্ত জ্ঞান](#পূর্বশর্ত-জ্ঞান)
+- [আপনি কি নিজেকে যথেষ্ট স্মার্ট ভাবেন নাহ](#মনে-করেন-না-আপনি-স্মার্ট-যথেষ্ট)
+- [ভিডিও রিসোর্স সম্পর্কে কিছু কথা](#ভিডিও-সংস্থান-সম্পর্কে)
+- [একটি প্রোগ্রামিং ভাষা বেছে নিন](#সাক্ষাত্কারের-জন্য-ভাষা-বেছে-নিন)
+- [ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ](#বুক-তালিকা)
+- [ইন্টারভিউ এর প্রস্তুতি এর বইসমুহ](#সাক্ষাত্কার-প্রক্রিয়া-সাধারণ-সাক্ষাত্কার-প্রস্তুতি)
+- [আমার ভুল গুলো করবেন নাহ](ভুল)
+- [এখানে যা শেখানো হবে না](#কী-আপনি-দেখতে-পাবেন-না)
- [দৈনিক পরিকল্পনা](#দৈনিক-পরিকল্পনা)
-- [অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপটোটিক বিশ্লেষণ](#অ্যালগোরিদমিক-জটিলতা-বিগ-ও-অ্যাসিপোটোটিক-বিশ্লেষণ)
+- [কোডিং প্রশ্ন অনুশীলন](#কোডিং-প্রশ্ন-অনুশীলন)
+- [কোডিং অনুশীলন / চ্যালেঞ্জ](#কোডিং-এক্সারসাইজেশনগুলি)
+
+
+### অধ্যয়নের বিষয়সমূহ
+
+- [অ্যালগোরিদমিক জটিলতা / বিগ-ও / অ্যাসিম্পটোটিক বিশ্লেষণ](#অ্যালগোরিদমিক-জটিলতা-বিগ-ও-অ্যাসিপোটোটিক-বিশ্লেষণ)
- [ডেটা স্ট্রাকচার](#ডেটা-স্ট্রাকচার)
-[অ্যারে](#অ্যারে)
- -[লিঙ্কযুক্ত তালিকা](#লিঙ্কযুক্ত-তালিকাগুলি)
+ -[লিঙ্কলিস্ট](#লিঙ্কযুক্ত-তালিকাগুলি)
-[স্ট্যাক](#স্ট্যাক)
- -[সারি](#সারি)
+ -[কিউ](#সারি)
-[হ্যাশ টেবিল](#হ্যাশ-টেবিল)
- [আরও জ্ঞান](#আরও-জ্ঞান)
- -[বাইনারি অনুসন্ধান](#বাইনারি-অনুসন্ধান)
+ -[বাইনারি সার্চ](#বাইনারি-অনুসন্ধান)
-[বিটওয়াইজ অপারেশন](#বিটওয়াইস-অপারেশন)
-- [গাছ](#গাছ)
- -[গাছ-নোট ও পটভূমি](#গাছ-নোট-পটভূমি)
- -[বাইনারি অনুসন্ধান গাছ: বিএসটিএস](#বাইনারি-অনুসন্ধান-গাছ-বুস্ট)
- -[গাদা / অগ্রাধিকার সারি / বাইনারি হিপ](#হিপ-অগ্রাধিকার-সারি-বাইনারি-হিপ)
- -সুষম অনুসন্ধান গাছ (সাধারণ ধারণা, বিশদ নয়)
- -ট্র্যাভারসাল: প্রির্ডার, ইনর্ডার, পোস্টর্ডার, বিএফএস, ডিএফএস
-- [বাছাই করা](#বাছাই-করা)
- -নির্বাচন
- -সন্নিবেশ
- -হিপসোর্ট
- -দ্রুত বাছাই
- -মার্জ সাজান
+- [ট্রি](#গাছ)
+ - [ট্রি-নোট এবং পটভূমি](#গাছ-নোট-পটভূমি)
+ - [বাইনারি সার্চ গাছ: বিএসটি](#বাইনারি-অনুসন্ধান-গাছ-বুস্ট)
+ - [হিপ / প্রায়োরিটি কিউ / বাইনারি হিপ](#হিপ-অগ্রাধিকার-সারি-বাইনারি-হিপ)
+ - ব্যালান্সড সার্চ ট্রি (সাধারণ ধারণা, বিশদ নয়)
+ - ট্র্যাভারসালস: প্রিওর্ডার, ইনওর্ডার, পোস্টওর্ডার, বিএফএস, ডিএফএস
+- [সোর্টিং](#বাছাই-করা)
+ - সিলেকশন
+ - ইন্সার্শন
+ - হিপসোর্ট
+ - কুইক সোর্ট
+ - মার্জ সোর্টি
- [গ্রাফ](#গ্রাফ)
- -পরিচালিত
- -পুনর্নির্দেশ
- -অন্তিক ম্যাট্রিক্স
- -সংলগ্ন তালিকা
+ - ডিরেক্টেড
+ - আনডিরেক্টেড
+ - সংলগ্ন ম্যাট্রিক্স (adjacency matrix)
+ - সংলগ্ন লিস্ট (adjacency list)
-ট্র্যাভারসাল: বিএফএস, ডিএফএস
- [আরও বেশি জ্ঞান](#আরও-বেশি-জ্ঞান)
- -[পুনরাবৃত্তি](#পুনরাবৃত্তি)
- -[ডায়নামিক প্রোগ্রামিং](#ডায়নামিক-প্রোগ্রামিং)
- -[অবজেক্ট-ওরিয়েন্টড প্রোগ্রামিং](#অবজেক্ট-ওরিয়েন্টেড-প্রোগ্রামিং)
- -[নকশার ধরণগুলি](#ডিজাইন-নিদর্শন)
- -[সংযুক্তি (এন কে নির্বাচন করুন) এবং সম্ভাবনা](#সংযুক্তি-এন-পছন্দ-কে-সম্ভাবনা)
- -[এনপি, এনপি-সম্পূর্ণ এবং আনুমানিক অ্যালগরিদম](#এনপি-এনপি-সম্পূর্ণ-এবং-আনুমানিক-অ্যালগোরিদম)
- -[ক্যাশে](#ক্যাশে)
- -[প্রক্রিয়া এবং থ্রেড](#প্রক্রিয়া-এবং-থ্রেড)
- -[পরীক্ষা](#পরীক্ষা)
- -[সময়সূচী](#সময়সূচী)
- -[স্ট্রিং সন্ধান এবং ম্যানিপুলেশনস](#স্ট্রিং-সন্ধান-ম্যানিপুলেশনস)
- -[চেষ্টা](#চেষ্টা)
- -[ভাসমান পয়েন্ট নম্বর](#ভাসমান-পয়েন্ট নম্বর)
- -[ইউনিকোড](#ইউনিকোড)
- -[অন্তিমারতা](#শেষতা)
- -[নেটওয়ার্কিং](#নেটওয়ার্কিং)
-- [সিস্টেম ডিজাইন, স্কেলাবিলিটি, ডেটা হ্যান্ডলিং](#সিস্টেম-ডিজাইন-স্কেলাবিলিটি-ডেটা-হ্যান্ডলিং) (যদি আপনার 4+ বছরের অভিজ্ঞতা থাকে)
-- [চূড়ান্ত পর্যালোচনা](#চূড়ান্ত-পর্যালোচনা)
-- [কোডিং প্রশ্ন অনুশীলন](#কোডিং-প্রশ্ন-অনুশীলন)
-- [কোডিং অনুশীলন / চ্যালেঞ্জ](#কোডিং-এক্সারসাইজেশনগুলি)
-- [একবার আপনি সাক্ষাত্কারের কাছাকাছি এসেছেন](#একবার-আপনি-সাক্ষাত্কারের-কাছাকাছি-এসেছেন)
-- [আপনার জীবনবৃত্তান্ত](#আপনার-জীবনবৃত্তান্ত)
+ - [রিকার্শন](#পুনরাবৃত্তি)
+ - [ডায়নামিক প্রোগ্রামিং](#ডায়নামিক-প্রোগ্রামিং)
+ - [অবজেক্ট-ওরিয়েন্টড প্রোগ্রামিং](#অবজেক্ট-ওরিয়েন্টেড-প্রোগ্রামিং)
+ - [ডিজাইন প্যাটার্ন্স](#ডিজাইন-নিদর্শন)
+ - [সমাবেশ (এন থেকে কে নির্বাচন করুন) এবং সম্ভাবনা (Combinatorics (n choose k) & Probability)](#সংযুক্তি-এন-পছন্দ-কে-সম্ভাবনা)
+ - [এনপি, এনপি-সম্পূর্ণ এবং আনুমানিক অ্যালগরিদম](#এনপি-এনপি-সম্পূর্ণ-এবং-আনুমানিক-অ্যালগোরিদম)
+ - [কম্পিউটার কিভাবে প্রোগ্রাম প্রসেস করে](কম্পিউটার-কিভাবে-প্রোগ্রাম-প্রসেস-করে)
+ - [ক্যাশ](#ক্যাশে)
+ - [প্রসেস এবং থ্রেড](#প্রক্রিয়া-এবং-থ্রেড)
+ - [টেস্টিং](#পরীক্ষা)
+ - [স্ট্রিং সন্ধান এবং ম্যানিপুলেশনস](#স্ট্রিং-সন্ধান-ম্যানিপুলেশনস)
+ - [ট্রাইস](#চেষ্টা)
+ - [ফ্লোটিং পয়েন্ট নম্বর](#ভাসমান-পয়েন্ট-নম্বর)
+ - [ইউনিকোড](#ইউনিকোড)
+ - [এন্ডিয়ান্স](#শেষতা)
+ - [নেটওয়ার্কিং](#নেটওয়ার্কিং)
+ - [সময়সূচী](#সময়সূচী)
+- [চূড়ান্ত পর্যালোচনা](#চূড়ান্ত-পর্যালোচনা)
+
+ ### চাকরি পাওয়ার জন্য
+
+- [আপনার জীবনবৃত্তান্ত আপডেট করুন](#আপনার-জীবনবৃত্তান্ত)
+- [চাকরি খোজা](চাকরি-খোজা)
+- [সাক্ষাত্কারের প্রক্রিয়া এবং সাক্ষাত্কার প্রস্তুতি](#একবার-আপনি-সাক্ষাত্কারের-কাছাকাছি-এসেছেন)
- [সাক্ষাত্কারটি আসার জন্য চিন্তাভাবনা করুন](#সাক্ষাত্কারটি-কখন-আসবে-এর-জন্য-চিন্তাভাবনা-করুন)
-- [সাক্ষাত্কারকারীর জন্য প্রশ্ন রয়েছে](#সাক্ষাত্কারকারীর-জন্য-প্রশ্ন-রয়েছে)
-- [একবার আপনি কাজটি পেয়ে যাবেন](#একবার-আপনি-কাজটি-পেয়েছেন)
+- [সাক্ষাত্কারকারীর জন্য প্রশ্ন রাখুন](#সাক্ষাত্কারকারীর-জন্য-প্রশ্ন-রয়েছে)
+- [চাকরি পাবার পর](#একবার-আপনি-কাজটি-পেয়েছেন)
-----------------এই পয়েন্টের নীচে থাকা সমস্ত কিছুই ঐচ্ছিক----------------
+**----------------এই পয়েন্টের নীচে থাকা সমস্ত কিছুই ঐচ্ছিক----------------**
-
-অতিরিক্ত সংস্থান
-
--[অতিরিক্ত বই](#অতিরিক্ত-বই)
--[অতিরিক্ত শিক্ষা](#অতিরিক্ত-শিক্ষণ)
- -[সংকলক](#সংকলক)
- -[ইম্যাকস এবং ভিআই (এম)](#ইম্যাকস-এবং-ভিএম)
- -[ইউনিক্স কমান্ড লাইন সরঞ্জাম](#ইউনিক্স-কমান্ড-লাইন-সরঞ্জাম)
- -[তথ্য তত্ত্ব](#তথ্য-তত্ত্ব-ভিডিও)
- -[সমতা এবং হামিং কোড](#সমতা-হামিং-কোড-ভিডিও)
- -[এন্ট্রপি](#এনট্রপি)
- -[ক্রিপ্টোগ্রাফি](#ক্রিপ্টোগ্রাফি)
- -[সংক্ষেপণ](#সংক্ষেপণ)
- -[কম্পিউটার সুরক্ষা](#কম্পিউটার-সুরক্ষা)
- -[আবর্জনা সংগ্রহ](#জঞ্জাল-সংগ্রহ)
- -[সমান্তরাল প্রোগ্রামিং](#সমান্তরাল-প্রোগ্রামিং)
- -[মেসেজিং, সিরিয়ালাইজেশন, এবং কুইউিং সিস্টেম](#মেসেজিং-সিরিয়ালাইজেশন-এবং-কুইউং-সিস্টেম)
- -[এ *](#ক)
- -[ফাস্ট ফুরিয়ার ট্রান্সফর্ম](#ফাস্ট-ফুরিয়ার-ট্রান্সফর্ম)
- -[ব্লুম ফিল্টার](#ব্লুম-ফিল্টার)
- -[হাইপারলগলগ](#হাইপারলগলগ)
- -[স্থানীয়তা-সংবেদনশীল হ্যাশিং](#লোকাল-সংবেদনশীল-হ্যাশিং)
- -[ভ্যান এমডে বোস ট্রি](#ভ্যান-এমডি-বোস-ট্রি)
- -[অগমেন্টেড ডেটা স্ট্রাকচার](#সংযুক্ত-ডেটা-কাঠামো)
- -[ভারসাম্যযুক্ত অনুসন্ধান গাছ](#সুষম-অনুসন্ধান-গাছ)
- -এভিএল গাছ
- -গাছ স্প্লে
- -লাল / কালো গাছ
- -2-3 অনুসন্ধান গাছ
- -২-৩-৪ টি গাছ (ওরফ ২-৪ টি গাছ)
- -এন-আরি (কে-আরি, এম-আরি) গাছ
- -বি-ট্রি
- -[কেডি গাছ](#কেডি-ট্রি)
- -[তালিকাগুলি বাদ দিন](#এড়িয়ে-যাওয়া-তালিকাগুলি)
- -[নেটওয়ার্ক প্রবাহ](#নেটওয়ার্ক-প্রবাহ)
- -[বিচ্ছিন্ন সেট এবং ইউনিয়ন সন্ধান করুন](#বিভেদ-সেট-ইউনিয়ন-অনুসন্ধান)
- -[দ্রুত প্রক্রিয়াকরণের জন্য গণিত](#দ্রুত-প্রক্রিয়াজাতকরণের-জন্য-গণিত)
- -[ট্রিপ](#ট্রাপ)
- -[লিনিয়ার প্রোগ্রামিং](#লিনিয়ার-প্রোগ্রামিং-ভিডিও)
- -[জ্যামিতি, উত্তল হাল](#জ্যামিতি-উত্তল-হাল-ভিডিও)
- -[স্বতন্ত্র গণিত](#স্বতন্ত্র-গণিত)
- -[মেশিন লার্নিং](#মেশিন-লার্নিং)
--[কয়েকটি বিষয়ে অতিরিক্ত বিশদ বিবরণ](#কিছু-বিষয়ে-কিছু-অতিরিক্ত-বিশদ-বিবরণ)
--[ভিডিও সিরিজ](#ভিডিও-সিরিজ)
--[কম্পিউটার বিজ্ঞান কোর্স](#কম্পিউটার-বিজ্ঞান-কোর্স)
--[কাগজপত্র](#কাগজপত্র)
+### ঐচ্ছিক অতিরিক্ত বিষয় ও রিসোর্স
+
+-[অধিক বই](#অতিরিক্ত-বই)
+- [সিস্টেম ডিজাইন, স্কেলাবিলিটি, ডেটা হ্যান্ডলিং](#সিস্টেম-ডিজাইন-স্কেলাবিলিটি-ডেটা-হ্যান্ডলিং) (যদি আপনার 4+ বছরের অভিজ্ঞতা থাকে)
+- [অধিক শিক্ষা](#অতিরিক্ত-শিক্ষণ)
+ - [কম্পাইলার্স](#সংকলক)
+ - [ইম্যাকস এবং ভিআই (এম)](#ইম্যাকস-এবং-ভিএম)
+ - [ইউনিক্স কমান্ড লাইন তুলস](#ইউনিক্স-কমান্ড-লাইন-সরঞ্জাম)
+ - [ইনফরমেশন থিয়োরি](#তথ্য-তত্ত্ব-ভিডিও)
+ - [প্যারিটি এবং হামিং কোড](#সমতা-হামিং-কোড-ভিডিও)
+ - [এন্ট্রপি](#এনট্রপি)
+ - [ক্রিপ্টোগ্রাফি](#ক্রিপ্টোগ্রাফি)
+ - [কম্প্রেশন](#সংক্ষেপণ)
+ - [কম্পিউটার সুরক্ষা](#কম্পিউটার-সুরক্ষা)
+ - [গারবেজ কালেকশন](#জঞ্জাল-সংগ্রহ)
+ - [প্যারালাল প্রোগ্রামিং](#সমান্তরাল-প্রোগ্রামিং)
+ - [মেসেজিং, সিরিয়ালাইজেশন, এবং কিউইং সিস্টেম](#মেসেজিং-সিরিয়ালাইজেশন-এবং-কুইউং-সিস্টেম)
+ - [এ *](#ক)
+ - [ফাস্ট ফুরিয়ার ট্রান্সফর্ম](#ফাস্ট-ফুরিয়ার-ট্রান্সফর্ম)
+ - [ব্লুম ফিল্টার](#ব্লুম-ফিল্টার)
+ - [হাইপারলগলগ](#হাইপারলগলগ)
+ - [লোকালিটি-সেনসিটিভ হ্যাশিং](#লোকাল-সংবেদনশীল-হ্যাশিং)
+ - [ভ্যান এমডে বোস ট্রি](#ভ্যান-এমডি-বোস-ট্রি)
+ - [অগমেন্টেড ডেটা স্ট্রাকচার](#সংযুক্ত-ডেটা-কাঠামো)
+ - [ব্যালান্সড সার্চ ট্রি](#সুষম-অনুসন্ধান-গাছ)
+ - এভিএল ট্রি
+ - স্প্লে ট্রি
+ - লাল / কালো গাছ
+ - 2-3 সার্চ ট্রি
+ - ২-৩-৪ ট্রি (ওরফ ২-৪ ট্রি)
+ - এন-আরি (কে-আরি, এম-আরি) ট্রি
+ - বি-ট্রি
+ - [কেডি ট্রি](#কেডি-ট্রি)
+ - [স্কিপ লিস্ট](#এড়িয়ে-যাওয়া-তালিকাগুলি)
+ - [নেটওয়ার্ক ফ্লো](#নেটওয়ার্ক-প্রবাহ)
+ - [বিচ্ছিন্ন সেট এবং ইউনিয়ন ফাইন্ড](#বিভেদ-সেট-ইউনিয়ন-অনুসন্ধান)
+ - [দ্রুত প্রক্রিয়াকরণের জন্য গণিত](#দ্রুত-প্রক্রিয়াজাতকরণের-জন্য-গণিত)
+ - [ট্রিপ](#ট্রাপ)
+ - [লিনিয়ার প্রোগ্রামিং](#লিনিয়ার-প্রোগ্রামিং-ভিডিও)
+ - [জ্যামিতি, উত্তল হাল](#জ্যামিতি-উত্তল-হাল-ভিডিও)
+ - [ডিসক্রিট ম্যাথ](#স্বতন্ত্র-গণিত)
+ - [মেশিন লার্নিং](#মেশিন-লার্নিং)
+- [কয়েকটি বিষয়ে বিশদ বিবরণ](#কিছু-বিষয়ে-কিছু-অতিরিক্ত-বিশদ-বিবরণ)
+- [ভিডিও সিরিজ](#ভিডিও-সিরিজ)
+- [কম্পিউটার বিজ্ঞান কোর্স](#কম্পিউটার-বিজ্ঞান-কোর্স)
+- [কাগজপত্র](#কাগজপত্র)
-
---
-##কেন এটি ব্যবহার করবেন?
+## কেন এটি ব্যবহার করবেন?
আমি যখন এই প্রকল্পটি শুরু করেছি, তখন আমি একটি স্তূপ থেকে একটি স্ট্যাক জানি না, বিগ-ও কিছুই জানতাম না, গাছ সম্পর্কে কিছুই বা কীভাবে করব
একটি গ্রাফ অতিক্রম করুন। যদি আমাকে কোনও বাছাই করা অ্যালগরিদম কোড করতে হয়, আমি তোমাকে বলতে পারি এটি খুব ভাল হত না।
@@ -239,7 +247,7 @@
এটি একটি দীর্ঘ পরিকল্পনা। এটি আপনার কয়েক মাস সময় নিতে পারে। আপনি যদি ইতিমধ্যে এর অনেকের সাথে পরিচিত হন তবে আপনাকে অনেক কম সময় লাগবে।
-##এটি কিভাবে ব্যবহার করতে
+## এটি কিভাবে ব্যবহার করতে
এটি কীভাবে ব্যবহার করবেন
@@ -248,7 +256,7 @@
অগ্রগতি পরীক্ষা করার জন্য কার্য তালিকা সহ আমি গিথুবের বিশেষ মার্কডাউন গন্ধ ব্যবহার করছি।
-** একটি নতুন শাখা তৈরি করুন যাতে আপনি এর মতো আইটেমগুলি পরীক্ষা করতে পারেন, বন্ধনীগুলিতে কেবল একটি এক্স রাখুন: [x] **
+**একটি নতুন শাখা তৈরি করুন যাতে আপনি এর মতো আইটেমগুলি পরীক্ষা করতে পারেন, বন্ধনীগুলিতে কেবল একটি এক্স রাখুন: [x]**
একটি শাখা কাঁটাচামচ করুন এবং নীচের আদেশগুলি অনুসরণ করুন
@@ -271,14 +279,14 @@
-##মনে হয় না আপনি যথেষ্ট স্মার্ট নন
--সফল সফ্টওয়্যার ইঞ্জিনিয়াররা স্মার্ট, তবে অনেকেরই এমন নিরাপত্তাহীনতা রয়েছে যে তারা যথেষ্ট স্মার্ট নয়।
--[জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
--[একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই][https://www.youtube.com/watch?v=1i8ylq4j_EY)
--[বিশ্বাস আপনি পরিবর্তন করতে পারেন](http://www.aaronsw.com/weblog/dweck)
--[ভাবেন আপনি গুগলে কাজ করার মতো স্মার্ট নন? ঠিক আছে, আবার চিন্তা করুন](https://www.youtube.com/watch?v=uPOJ1PR50ag)
+## মনে হয় না আপনি যথেষ্ট স্মার্ট নন
+- সফল সফ্টওয়্যার ইঞ্জিনিয়াররা স্মার্ট, তবে অনেকেরই এমন নিরাপত্তাহীনতা রয়েছে যে তারা যথেষ্ট স্মার্ট নয়।
+- [জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
+- [একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+- [বিশ্বাস আপনি পরিবর্তন করতে পারেন](http://www.aaronsw.com/weblog/dweck)
+- [ভাবেন আপনি গুগলে কাজ করার মতো স্মার্ট নন? ঠিক আছে, আবার চিন্তা করুন](https://www.youtube.com/watch?v=uPOJ1PR50ag)
-##ভিডিও সংস্থান সম্পর্কে
+## ভিডিও সংস্থান সম্পর্কে
কিছু ভিডিও কেবল কোর্সেরা বা এডএক্স ক্লাসে ভর্তি হয়ে পাওয়া যায়। এগুলিকে এমওওসি বলা হয়।
কখনও কখনও ক্লাসগুলি সেশনে হয় না তাই আপনাকে কয়েক মাস অপেক্ষা করতে হবে, যাতে আপনার অ্যাক্সেস নেই।
@@ -287,7 +295,7 @@
আমি বিশ্ববিদ্যালয়ের বক্তৃতা ব্যবহার করতে পছন্দ করি।
-##সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
+## সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
<সুমারী> সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কারের প্রস্তুতি
@@ -314,18 +322,18 @@
-##সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করুন
+## সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করুন
সাক্ষাত্কারের কোডিং অংশটি করতে আপনি স্বাচ্ছন্দ্যযুক্ত একটি ভাষা ব্যবহার করতে পারেন তবে বড় সংস্থাগুলির জন্য এগুলি কঠোর পছন্দ:
--সি ++
--জাভা
--পাইথন
+- সি++
+- জাভা
+- পাইথন
আপনি এগুলি ব্যবহার করতে পারেন তবে প্রথমে পড়তে পারেন। সতর্কতা থাকতে পারে:
--জাভাস্ক্রিপ্ট
--রুবি
+- জাভাস্ক্রিপ্ট
+- রুবি
এখানে একটি নিবন্ধটি আমি সাক্ষাত্কারের জন্য একটি ভাষা বেছে নেওয়ার বিষয়ে লিখেছি: [কোডিং সাক্ষাত্কারের জন্য একটি ভাষা বেছে নিন](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
@@ -337,22 +345,22 @@
-http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-http://blog.codingforinterviews.com/best-programming-language-jobs/
-[ভাষার সংস্থানগুলি এখানে দেখুন] (প্রোগ্রামিং-ভাষা-সংস্করণ.এমডি)
+[ভাষার সংস্থানগুলি এখানে দেখুন](প্রোগ্রামিং-ভাষা-সংস্করণ.এমডি)
আপনি নীচে অন্তর্ভুক্ত কিছু সি, সি ++ এবং পাইথন শিখতে দেখবেন, কারণ আমি শিখছি। কয়েকটি বই জড়িত রয়েছে, নীচে দেখুন।
-##বইএর তালিকা
+## বইএর তালিকা
আমি যা ব্যবহার করেছি তার চেয়ে এটি একটি সংক্ষিপ্ত তালিকা। এটি আপনার সময় বাঁচাতে সংক্ষেপে বর্ণিত।
-###সাক্ষাত্কার প্রস্তুতি
+### সাক্ষাত্কার প্রস্তুতি
- [প্রোগ্রামিং সাক্ষাত্কারগুলি উদ্ভাসিত হয়েছে: সাক্ষাত্কারের মাধ্যমে আপনার কোডের কোডিং, ৪ র্থ সংস্করণ](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- -সি ++ এবং জাভাতে উত্তর
- -কোডিং সাক্ষাত্কার ক্র্যাক করার জন্য এটি একটি ভাল প্রস্তুতি
- -খুব বেশি কঠিন নয়, বেশিরভাগ সমস্যাগুলি আপনি একটি সাক্ষাত্কারে যা দেখবেন তার চেয়ে সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
+ - সি ++ এবং জাভাতে উত্তর
+ - কোডিং সাক্ষাত্কার ক্র্যাক করার জন্য এটি একটি ভাল প্রস্তুতি
+ - খুব বেশি কঠিন নয়, বেশিরভাগ সমস্যাগুলি আপনি একটি সাক্ষাত্কারে যা দেখবেন তার চেয়ে সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
- [কোডিং সাক্ষাত্কার ক্র্যাকিং, 6th ষ্ঠ সংস্করণ](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- -জাভা উত্তর
+ - জাভা উত্তর
আপনার যদি অতিরিক্ত পরিমাণে সময় থাকে তবে
@@ -360,13 +368,11 @@
একটি নির্বাচন করুন:
- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানগুলি (সি ++ সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- প্রোগ্রামিং সাক্ষাত্কারের উপাদানসমূহ (জাভা সংস্করণ)
- -[বই](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
- -[কোম্পানির প্রকল্প-বইয়ের প্রতিটি সমস্যার জন্য পদ্ধতি স্টাব এবং টেস্ট কেস](https://github.com/gardncl/elements-of-programming-interviews)
+- প্রোগ্রামিং সাক্ষাত্কারের উপাদানসমূহ (জাভা সংস্করণ)-[বই](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)-[কোম্পানির প্রকল্প-বইয়ের প্রতিটি সমস্যার জন্য পদ্ধতি স্টাব এবং টেস্ট কেস](https://github.com/gardncl/elements-of-programming-interviews)
-###কম্পিউটার আর্কিটেকচার
+### কম্পিউটার আর্কিটেকচার
- [গ্রেট কোড লিখুন: খণ্ড ১: মেশিনটি বোঝা] (https://www.amazon.com/Write-Great-Code-Unders સમજ-ম্যাচাইন / ডিপি / 1593270038)
-বইটি 2004 সালে প্রকাশিত হয়েছিল এবং এটি কিছুটা পুরানো হলেও সংক্ষেপে কম্পিউটার বোঝার জন্য এটি এক ভয়ঙ্কর উত্স।
@@ -399,14 +405,14 @@
[অতিরিক্ত ভাষা-নির্দিষ্ট সংস্থানগুলি এখানে]] (প্রোগ্রামিং-ভাষাভাষা-উত্স.এমডি)
-###সি ++
+### সি++
-সি ++
+সি++
আমি এই দুটি পড়িনি, তবে সেডজেউইক দ্বারা তারা উচ্চ মানের এবং রচিত। সে দুর্দান্ত।
-- [সি ++ এ অ্যালগরিদম, অংশ 1-4: মূলসূত্র, ডেটা স্ট্রাকচার, বাছাই, অনুসন্ধান করা] (https://www.amazon.com/Algorithms-Partts-1-4-Fundamentals-কাঠামো / dp/0201350882/)
+- [সি++ এ অ্যালগরিদম, অংশ 1-4: মূলসূত্র, ডেটা স্ট্রাকচার, বাছাই, অনুসন্ধান করা] (https://www.amazon.com/Algorithms-Partts-1-4-Fundamentals-কাঠামো / dp/0201350882/)
- [সি ++ পার্ট 5 এ অ্যালগরিদম: গ্রাফ অ্যালগরিদম] (https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
আপনার যদি সি ++ এর জন্য আরও ভাল প্রস্তাবনা থাকে তবে দয়া করে আমাকে জানান। একটি বিস্তৃত রিসোর্স খুঁজছি।
@@ -426,42 +432,42 @@
বা:
- [জাভাতে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Data-Structures-Algorithms-Michael-গুডরিচ/dp/1118771338/)
- -গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- -ইউসি বার্কলে সিএস ইন্ট্রো কোর্সের জন্য textচ্ছিক পাঠ্য হিসাবে ব্যবহৃত
- -নীচে পাইথন সংস্করণে আমার বইয়ের প্রতিবেদনটি দেখুন। এই বইটিতে একই বিষয় রয়েছে।
+ - গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
+ - ইউসি বার্কলে সিএস ইন্ট্রো কোর্সের জন্য textচ্ছিক পাঠ্য হিসাবে ব্যবহৃত
+ - নীচে পাইথন সংস্করণে আমার বইয়ের প্রতিবেদনটি দেখুন। এই বইটিতে একই বিষয় রয়েছে।
-###পাইথন
+### পাইথন
পাইথন
- [পাইথনে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Structures-অ্যালগোরিদমস-পাইথন-মিশেল-গুডরিচ / ডিপি / 1118290275/)
- -গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- -আমি এই বই পছন্দ। এটি সব কিছুর আওতায় পড়ে।
- -পাইথোনিক কোড
- -আমার জ্বলজ্বল বইয়ের প্রতিবেদন: https://startupnextdoor.com/book-report-data-structures-এবং-algorithms-in-python/
+ - গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
+ - আমি এই বই পছন্দ। এটি সব কিছুর আওতায় পড়ে।
+ - পাইথোনিক কোড
+ - আমার জ্বলজ্বল বইয়ের প্রতিবেদন: https://startupnextdoor.com/book-report-data-structures-এবং-algorithms-in-python/
-##আপনি শুরু করার আগে
+## আপনি শুরু করার আগে
এই তালিকাটি কয়েক মাস ধরে বেড়েছে, এবং হ্যাঁ, এটি একধরণের হাতছাড়া হয়ে যায়।
এখানে আমি কিছু ভুল করেছি যাতে আপনার আরও ভাল অভিজ্ঞতা হয়।
-###1. আপনি সব মনে রাখবেন না
+### 1. আপনি সব মনে রাখবেন না
আমি কয়েক ঘন্টা ভিডিও দেখেছি এবং প্রচুর নোট নিয়েছি এবং কয়েক মাস পরে এমন অনেক কিছুই ছিল যা আমি মনে করি না। আমি যেতে 3 দিন কাটিয়েছি
আমার নোটগুলি এবং ফ্ল্যাশকার্ডগুলি তৈরি করে যাতে আমি পর্যালোচনা করতে পারি।
দয়া করে পড়ুন যাতে আপনি আমার ভুল করবেন না:
-[কম্পিউটার বিজ্ঞান জ্ঞান পুনরুদ্ধার করা] (https://startupnextdoor.com/retaining-computer-s विज्ञान-জ্ঞান /)
+[কম্পিউটার বিজ্ঞান জ্ঞান পুনরুদ্ধার করা](https://startupnextdoor.com/retaining-computer-s विज्ञान-জ্ঞান)
-###2. ফ্ল্যাশকার্ড ব্যবহার করুন
+### 2. ফ্ল্যাশকার্ড ব্যবহার করুন
সমস্যা সমাধানের জন্য, আমি একটি সামান্য ফ্ল্যাশকার্ডস সাইট তৈরি করেছি যেখানে আমি 2 ধরণের ফ্ল্যাশকার্ড যুক্ত করতে পারি: সাধারণ এবং কোড।
প্রতিটি কার্ডের আলাদা বিন্যাস রয়েছে।
@@ -470,50 +476,50 @@
বিনামূল্যে নিজের তৈরি করুন:
--[ফ্ল্যাশকার্ডস সাইটের রেপো] (https://github.com/jwasham/computer-science-flash-cards)
--[আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)] (https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
--[আমার ফ্ল্যাশ কার্ডের ডাটাবেস (নতুন-1800 কার্ড)] (https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+- [ফ্ল্যাশকার্ডস সাইটের রেপো](https://github.com/jwasham/computer-science-flash-cards)
+- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (নতুন-1800 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং সমাবেশগুলির ভাষা এবং পাইথন ট্রিভিয়া থেকে শুরু করে মেশিন লার্নিং এবং পরিসংখ্যানের সমস্ত কিছুর জন্য কার্ড রয়েছে। যা প্রয়োজন তার জন্য এটি অনেক বেশি।
-** ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য: ** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
+**ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য:** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
একই কার্ড এবং এটি জেনে রাখার আগে বেশ কয়েকবার সঠিক উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীর করে দেবে
আপনার মস্তিষ্ক.
-আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার বিকল্প হ'ল [আনকি] (http://ankisrs.net/), যা আমার কাছে বহুবার প্রস্তাবিত হয়েছিল। এটি আপনাকে মনে রাখতে সহায়তা করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে।
+আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার বিকল্প হ'ল [আনকি](http://ankisrs.net/), যা আমার কাছে বহুবার প্রস্তাবিত হয়েছিল। এটি আপনাকে মনে রাখতে সহায়তা করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে।
এটি ব্যবহারকারী-বান্ধব, সমস্ত প্ল্যাটফর্মে উপলব্ধ এবং একটি ক্লাউড সিঙ্ক সিস্টেম রয়েছে। আইওএসে এটির দাম 25 ডলার তবে অন্যান্য প্ল্যাটফর্মগুলিতে বিনামূল্যে।
-আনকি ফর্ম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেস: https://ankiweb.net/shared/info/25173560 (ধন্যবাদ [@ এক্সভিউনিয়া] (https://github.com/xiewenya))
+আনকি ফর্ম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেস: https://ankiweb.net/shared/info/25173560 (ধন্যবাদ [@ এক্সভিউনিয়া](https://github.com/xiewenya))
-###3. পর্যালোচনা, পর্যালোচনা, পর্যালোচনা
+### 3. পর্যালোচনা, পর্যালোচনা, পর্যালোচনা
আমি ASCII, ওএসআই স্ট্যাক, বিগ-ও স্বরলিপিগুলি এবং আরও অনেক কিছুতে চিট শীটের একটি সেট রাখি। আমার কিছুটা বাজে সময় পেলে আমি সেগুলি অধ্যয়ন করি।
আধা ঘন্টার জন্য প্রোগ্রামিং সমস্যা থেকে বিরতি নিন এবং আপনার ফ্ল্যাশকার্ডগুলি দিয়ে যান।
-###4. ফোকাস করুন
+### 4. ফোকাস করুন
অনেকগুলি বিভ্রান্তি রয়েছে যা মূল্যবান সময় নিতে পারে। ফোকাস এবং ঘনত্ব শক্ত।
-##আপনি কি কভার দেখতে পাবেন না
+## আপনি কি কভার দেখতে পাবেন না
এগুলি প্রচলিত প্রযুক্তি তবে এই অধ্যয়ন পরিকল্পনার অংশ নয়:
--এসকিউএল
--জাভাস্ক্রিপ্ট
--এইচটিএমএল, সিএসএস এবং অন্যান্য ফ্রন্ট-এন্ড প্রযুক্তি
+- এসকিউএল
+- জাভাস্ক্রিপ্ট
+- এইচটিএমএল, সিএসএস এবং অন্যান্য ফ্রন্ট-এন্ড প্রযুক্তি
-##দৈনিক পরিকল্পনা
+## দৈনিক পরিকল্পনা
কিছু বিষয় একদিন নেয়, এবং কিছুতে একাধিক দিন সময় লাগবে। কিছু বাস্তবায়নের কিছুই না দিয়ে কেবল শিখছে।
প্রতিদিন আমি নীচের তালিকা থেকে একটি বিষয় নিয়ে যাই, সেই বিষয় সম্পর্কে ভিডিও দেখি এবং একটি বাস্তবায়ন এখানে লিখি:
--সি-স্ট্রাকস এবং ফাংশনগুলি ব্যবহার করে যা স্ট্রাক * এবং আরজ হিসাবে অন্য কোনও কিছু নেয়।
--সি ++-অন্তর্নির্মিত প্রকারগুলি ব্যবহার না করে
--সি ++-অন্তর্নির্মিত প্রকারগুলি যেমন STL এর std :: লিঙ্কযুক্ত তালিকার জন্য তালিকা ব্যবহার করে
--পাইথন-অন্তর্নির্মিত প্রকারগুলি (পাইথনের অনুশীলন চালিয়ে যেতে) ব্যবহার করে
--এবং আমি এটি সঠিকভাবে করছি তা নিশ্চিত করার জন্য পরীক্ষাগুলি লিখুন, কখনও কখনও কেবল সাধারণ দাবী () বিবৃতি ব্যবহার করে
--আপনি জাভা বা অন্য কিছু করতে পারেন, এটি কেবল আমার জিনিস।
+- সি-স্ট্রাকস এবং ফাংশনগুলি ব্যবহার করে যা স্ট্রাক * এবং আরজ হিসাবে অন্য কোনও কিছু নেয়।
+- সি ++-অন্তর্নির্মিত প্রকারগুলি ব্যবহার না করে
+- সি ++-অন্তর্নির্মিত প্রকারগুলি যেমন STL এর std :: লিঙ্কযুক্ত তালিকার জন্য তালিকা ব্যবহার করে
+- পাইথন-অন্তর্নির্মিত প্রকারগুলি (পাইথনের অনুশীলন চালিয়ে যেতে) ব্যবহার করে
+- এবং আমি এটি সঠিকভাবে করছি তা নিশ্চিত করার জন্য পরীক্ষাগুলি লিখুন, কখনও কখনও কেবল সাধারণ দাবী () বিবৃতি ব্যবহার করে
+- আপনি জাভা বা অন্য কিছু করতে পারেন, এটি কেবল আমার জিনিস।
আপনার এসবের দরকার নেই। আপনার কেবলমাত্র [সাক্ষাত্কারের জন্য একটি ভাষা] প্রয়োজন (#সাক্ষাত্কারের জন্য এক-ভাষা বেছে নিন)।
@@ -533,7 +539,7 @@
হোয়াইটবোর্ড বা কাগজে কোড লিখুন, কম্পিউটার নয়। কিছু নমুনা ইনপুট দিয়ে পরীক্ষা করুন। তারপরে এটি কম্পিউটারে পরীক্ষা করে দেখুন।
-##পূর্বশর্ত জ্ঞান
+## পূর্বশর্ত জ্ঞান
<সংশ্লেষ> পূর্বশর্ত জ্ঞান << সংক্ষিপ্ত>
@@ -554,31 +560,30 @@
-##অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপোটিক বিশ্লেষণ
+## অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপোটিক বিশ্লেষণ
-
-<স্যুমারী> অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপটোটিক বিশ্লেষণ সংশ্লেষ>
-
--বাস্তবায়নের কিছুই নেই
--এখানে প্রচুর ভিডিও রয়েছে। যতক্ষণ না আপনি এটি বুঝতে পারছেন ঠিক ততক্ষণ দেখুন। আপনি সর্বদা ফিরে এসে পর্যালোচনা করতে পারেন।
--কিছু বক্তৃতা যদি খুব ম্যাথিক হয় তবে আপনি ব্যাকগ্রাউন্ডের জ্ঞান পেতে নীচে নেমে গিয়ে আলাদা গণিতের ভিডিওগুলি দেখতে পারেন।
-- [হার্ভার্ড সিএস 50-অ্যাসিপটোটিক নোটেশন (ভিডিও)] (https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [বিগ হে নোটেশনস (সাধারণ দ্রুত টিউটোরিয়াল) (ভিডিও)] (https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [বিগ ও স্বরলিপি (এবং ওমেগা এবং থিতা)-সর্বোত্তম গাণিতিক ব্যাখ্যা (ভিডিও)] (https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- স্কিয়েনা:
- -[ভিডিও] (https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- -[স্লাইডস] (http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
+---
+
+- বাস্তবায়নের কিছুই নেই
+- এখানে প্রচুর ভিডিও রয়েছে। যতক্ষণ না আপনি এটি বুঝতে পারছেন ঠিক ততক্ষণ দেখুন। আপনি সর্বদা ফিরে এসে পর্যালোচনা করতে পারেন।
+- কিছু বক্তৃতা যদি খুব ম্যাথিক হয় তবে আপনি ব্যাকগ্রাউন্ডের জ্ঞান পেতে নীচে নেমে গিয়ে আলাদা গণিতের ভিডিওগুলি দেখতে পারেন।
+- [ ] [হার্ভার্ড সিএস 50-অ্যাসিপটোটিক নোটেশন (ভিডিও)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [বিগ হে নোটেশনস (সাধারণ দ্রুত টিউটোরিয়াল) (ভিডিও)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [বিগ ও স্বরলিপি (এবং ওমেগা এবং থিতা)-সর্বোত্তম গাণিতিক ব্যাখ্যা (ভিডিও)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] স্কিয়েনা:
+ - [ভিডিও](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [স্লাইডস](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
- [অ্যালগরিদম জটিলতা বিশ্লেষণের একটি নম্র ভূমিকা] (http://discrete.gr/complexity/)
- [বৃদ্ধির অর্ডার (ভিডিও)] (https://www.coursera.org/lecture/algorithmic-thinking-1/orders-of-growth-6PKkX)
- [অ্যাসিপটোটিকস (ভিডিও)] (https://www.coursera.org/lecture/algorithmic-চিন্তাধারার-1/asyptics-bXAtM)
-- [ইউসি বার্কলে বিগ ও (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
-- [ইউসি বার্কলে বিগ ওমেগা (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc)
-- [ইমোরটাইজড অ্যানালাইসিস (ভিডিও)] (https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [ইউসি বার্কলে বিগ ও (ভিডিও)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [ইউসি বার্কলে বিগ ওমেগা (ভিডিও)](https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc)
+- [ ] [ইমোরটাইজড অ্যানালাইসিস (ভিডিও)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
- [চিত্রিত "বিগ ও" (ভিডিও)] (https://www.coursera.org/lecture/algorithmic-thinking-1/illustrating-big-o-YVqzv)
-- টপকোডার (পুনরাবৃত্ত সম্পর্ক এবং মাস্টার উপপাদ্য অন্তর্ভুক্ত):
- -[গণনামূলক জটিলতা: বিভাগ 1] (https://www.topcoder.com/commune/competitive-pramramming/tutorials/computational-complexity-section-1/)
- -[গণনামূলক জটিলতা: বিভাগ 2] (https://www.topcoder.com / সম্প্রদায় / কমপিটিটিভ-প্রোগ্রামিং / টিউটোরিয়ালস / কমপিটেশনাল-কমপ্লিকটি-সেকশন ২/২)
-- [চিট শিট] (http://bigocheatsheet.com/)
+- [ ] টপকোডার (পুনরাবৃত্ত সম্পর্ক এবং মাস্টার উপপাদ্য অন্তর্ভুক্ত):
+ - [গণনামূলক জটিলতা: বিভাগ 1] (https://www.topcoder.com/commune/competitive-pramramming/tutorials/computational-complexity-section-1/)
+ - [গণনামূলক জটিলতা: বিভাগ 2] (https://www.topcoder.com / সম্প্রদায় / কমপিটিটিভ-প্রোগ্রামিং / টিউটোরিয়ালস / কমপিটেশনাল-কমপ্লিকটি-সেকশন ২/২)
+- [ ] [চিট শিট](http://bigocheatsheet.com/)
From 45001114cad63bc86fe15c219e54f8c8900dc193 Mon Sep 17 00:00:00 2001
From: Sumit Kumar Kar
Date: Wed, 23 Feb 2022 12:54:48 +0600
Subject: [PATCH 003/173] Fixed literal Translation and added missing info
---
translations/README-bn.md | 407 ++++++++++++++++++++------------------
1 file changed, 212 insertions(+), 195 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index cda7be5c1b..01338e97a1 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -88,7 +88,7 @@
-## এটা কি?
+## এটি কি?

@@ -110,15 +110,15 @@
### পাঠ পরিকল্পনা
-- [এটি কী?](#এটি-কী)
+- [এটি কি?](#এটি-কি?)
- [কেন এটি ব্যবহার করবেন?](#এটি-কেন-ব্যবহার-করুন)
- [এটি কীভাবে ব্যবহার করবেন](#এটি-কীভাবে-ব্যবহার-করবেন)
-- [আপনি কি নিজেকে যথেষ্ট স্মার্ট ভাবেন নাহ](#মনে-করেন-না-আপনি-স্মার্ট-যথেষ্ট)
-- [ভিডিও রিসোর্স সম্পর্কে কিছু কথা](#ভিডিও-সংস্থান-সম্পর্কে)
-- [একটি প্রোগ্রামিং ভাষা বেছে নিন](#সাক্ষাত্কারের-জন্য-ভাষা-বেছে-নিন)
-- [ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ](#বুক-তালিকা)
-- [ইন্টারভিউ এর প্রস্তুতি এর বইসমুহ](#সাক্ষাত্কার-প্রক্রিয়া-সাধারণ-সাক্ষাত্কার-প্রস্তুতি)
-- [আমার ভুল গুলো করবেন নাহ](ভুল)
+- [আপনি কি নিজেকে যথেষ্ট স্মার্ট ভাবেন নাহ](#আপনি-কি-নিজেকে-যথেষ্ট-স্মার্ট-ভাবেন-নাহ)
+- [ভিডিও রিসোর্স সম্পর্কে কিছু কথা](#ভিডিও-রিসোর্স-সম্পর্কে-কিছু-কথা)
+- [একটি প্রোগ্রামিং ভাষা বেছে নিন](#একটি-প্রোগ্রামিং-ভাষা-বেছে-নিন)
+- [ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ](#ডাটা-স্ট্রাকচারএবং-এ্যালগোরিদম-এর-বইসমুহ)
+- [ইন্টারভিউ এর প্রস্তুতি এর বইসমুহ](#ইন্টারভিউ-এর-প্রস্তুতি-এর-বইসমুহ)
+- [আমার ভুল গুলো করবেন নাহ](আমার-ভুল-গুলো-করবেন-নাহ)
- [এখানে যা শেখানো হবে না](#কী-আপনি-দেখতে-পাবেন-না)
- [দৈনিক পরিকল্পনা](#দৈনিক-পরিকল্পনা)
- [কোডিং প্রশ্ন অনুশীলন](#কোডিং-প্রশ্ন-অনুশীলন)
@@ -237,68 +237,232 @@
---
## কেন এটি ব্যবহার করবেন?
+
+আপনি যদি সফটওয়্যার ইঞ্জিনিয়ার হিসেভে বড় কোম্পানি তে কাজ করতে চান তাহলে এই বিষয় গুলো আপনার জানা থাকা প্রয়োজন।
+
+আপনি যদি আমার মতো কম্পিউটার সাইন্স এর ডিগ্রি মা মিয়ে থাকেন তাহলে এটি আপনাকে কম্পিউটার সাইন্স এর চার বছরের কোর্স শিখতে সাহায্য করবে।
+
+আমি যখন এই প্রকল্পটি শুরু করেছি, তখন আমি একটি হিপ স্ট্যাক কিছুই জানতাম না, বিগ-ও জানতাম না, ট্রি সম্পর্কে কিছুই বা কীভাবে একটি গ্রাফ ট্রাভার্স করব কিছি জানতাম নাহ। যদি আমাকে কোনও সর্টিং অ্যালগরিদম কোড করতে বলা হতো, আমি তোমাকে বলতে পারি এটি খুব ভাল হত না।
+আমি যে ডেটা স্ট্রাকচার ব্যবহার করেছি সেগুলি ভাষাতে বিল্ট ইন ছিল এবং তারা কীভাবে কাজ করেছিল তা আমি জানতাম না। আমি যে প্রোগ্রামটি চালাচ্ছিলাম তা যদি আমাকে "মেমোরি আউট অফ বাউন্ড" ইরোর না দেখাতো তাহলে আমি মেমরি ম্যানেজ করতাম নাহ। এবং এই ইরোর দিলে তখন আমি অন্য কোনো পথ বেছে নিতাম। আমি আমার জীবনে বহু বহুমাত্রিক অ্যারে ব্যবহার করেছি এবং সহস্রাধিক অ্যাসোসিয়েটিভ অ্যারে ব্যাবহার করেছি, তবে আমি স্ক্র্যাচ থেকে কখনও ডেটা স্ট্রাকচার তৈরি করি নি।
-আমি যখন এই প্রকল্পটি শুরু করেছি, তখন আমি একটি স্তূপ থেকে একটি স্ট্যাক জানি না, বিগ-ও কিছুই জানতাম না, গাছ সম্পর্কে কিছুই বা কীভাবে করব
-একটি গ্রাফ অতিক্রম করুন। যদি আমাকে কোনও বাছাই করা অ্যালগরিদম কোড করতে হয়, আমি তোমাকে বলতে পারি এটি খুব ভাল হত না।
-আমি যে ডেটা কাঠামোটি ব্যবহার করেছি সেগুলি ভাষাতে নির্মিত হয়েছিল এবং তারা কীভাবে কাজ করেছিল তা আমি জানতাম না
-আদৌ হুডের নিচে। আমি যে প্রক্রিয়াটি চালিয়ে যাচ্ছিলাম তা যদি না হয় তবে আমার কখনই মেমোরি পরিচালনা করতে হয়নি
-স্মৃতিশক্তি "ত্রুটি, এবং তারপরে আমাকে একটি কাজের সন্ধান করতে হবে I've আমি আমার জীবনে কয়েকটি বহুমাত্রিক অ্যারে ব্যবহার করেছি এবং
-সহস্রাধিক সংঘবদ্ধ অ্যারে, তবে আমি স্ক্র্যাচ থেকে কখনও ডেটা স্ট্রাকচার তৈরি করি নি।
-
-এটি একটি দীর্ঘ পরিকল্পনা। এটি আপনার কয়েক মাস সময় নিতে পারে। আপনি যদি ইতিমধ্যে এর অনেকের সাথে পরিচিত হন তবে আপনাকে অনেক কম সময় লাগবে।
+এটি একটি দীর্ঘ পরিকল্পনা। এটি আপনার কয়েক মাস সময় নিতে পারে। আপনি যদি ইতিমধ্যে এর অনেক বিষয়ের সাথে পরিচিত হন তবে আপনাকে অনেক কম সময় লাগবে।
## এটি কিভাবে ব্যবহার করতে
-
-এটি কীভাবে ব্যবহার করবেন
-
-নীচের সমস্ত কিছুই একটি রূপরেখা এবং আপনার আইটেমগুলি উপরের থেকে নীচে পর্যন্ত সামলানো উচিত।
-
-অগ্রগতি পরীক্ষা করার জন্য কার্য তালিকা সহ আমি গিথুবের বিশেষ মার্কডাউন গন্ধ ব্যবহার করছি।
+নীচের সমস্ত কিছুই একটি রূপরেখা এবং আপনার আইটেমগুলি উপরের থেকে নীচে পর্যন্ত অনুসরন করা উচিত।
-**একটি নতুন শাখা তৈরি করুন যাতে আপনি এর মতো আইটেমগুলি পরীক্ষা করতে পারেন, বন্ধনীগুলিতে কেবল একটি এক্স রাখুন: [x]**
+আমি নিজের অগ্রগতি নোট করার জন্য আমি গিট-হাবের বিশেষ মার্কডাউন ফ্লেভার এর টাস্ক লিস্ট ব্যবহার করছি।
+**একটি নতুন ব্রাঞ্চ তৈরি করুন যাতে আপনি এভাবে আইটেমগুলিতে টিক চিহ্ন ব্যাবহার করতে পারেন, বন্ধনীগুলিতে কেবল একটি এক্স রাখুন: [x]**
- একটি শাখা কাঁটাচামচ করুন এবং নীচের আদেশগুলি অনুসরণ করুন
+ একটি ব্রাঞ্চ ফর্ক করুন এবং নীচের কমান্ডগুলি অনুসরণ করুন
-`git checkout-b progress`
+এই গিট-হাব রিপো টি ফর্ক করুন
+https://github.com/jwasham/coding-interview-university
+ফর্ক বাটনে চাপ দিয়ে
-`git remote add jwasham https://github.com/jwasham/coding-interview-university`
+আপনার লোকাল রিপো তে ক্লোন করুন
-`git fetch--all`
- আপনার পরিবর্তনগুলি শেষ করার পরে এক্স সহ সমস্ত বাক্স চিহ্নিত করুন
-
-`git add .`
-
-`git commit-m "Marked x"`
+ git clone git@github.com:/coding-interview-university.git
+ git checkout -b progress
+ git remote add jwasham https://github.com/jwasham/coding-interview-university
+ git fetch --all
-`git rebase jwasham/main`
+আপনার পরিবর্তনগুলি শেষ করার পরে এক্স "X" চিহ্ন দিয়ে সমস্ত বাক্স চিহ্নিত করুন
+
+ git add .
+ git commit -m "Marked x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
-`git push--force`
-[গিথুব-স্বাদযুক্ত মার্কডাউন সম্পর্কে আরও](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+[গিট-হাব-ফ্লেভার্ড মার্কডাউন সম্পর্কে আরও জানুন](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
-
-## মনে হয় না আপনি যথেষ্ট স্মার্ট নন
+## আপনি কি নিজেকে যথেষ্ট স্মার্ট ভাবেন নাহ
+
- সফল সফ্টওয়্যার ইঞ্জিনিয়াররা স্মার্ট, তবে অনেকেরই এমন নিরাপত্তাহীনতা রয়েছে যে তারা যথেষ্ট স্মার্ট নয়।
-- [জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
-- [একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+- [জিনিয়াস প্রোগ্রামার নিয়ে মিথ](https://www.youtube.com/watch?v=0SARbwvhupQ)
+- [একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টার লড়াই করা](https://www.youtube.com/watch?v=1i8ylq4j_EY)
- [বিশ্বাস আপনি পরিবর্তন করতে পারেন](http://www.aaronsw.com/weblog/dweck)
- [ভাবেন আপনি গুগলে কাজ করার মতো স্মার্ট নন? ঠিক আছে, আবার চিন্তা করুন](https://www.youtube.com/watch?v=uPOJ1PR50ag)
-## ভিডিও সংস্থান সম্পর্কে
+## ভিডিও রিসোর্স সম্পর্কে কিছু কথা
-কিছু ভিডিও কেবল কোর্সেরা বা এডএক্স ক্লাসে ভর্তি হয়ে পাওয়া যায়। এগুলিকে এমওওসি বলা হয়।
+কিছু ভিডিও কেবল কোর্সেরা (Coursera) বা এডএক্স (EdX) ক্লাসে ভর্তি হয়ে পাওয়া যায়। এগুলিকে এমওওসি বলা হয়।
কখনও কখনও ক্লাসগুলি সেশনে হয় না তাই আপনাকে কয়েক মাস অপেক্ষা করতে হবে, যাতে আপনার অ্যাক্সেস নেই।
- আমি অনলাইনে কোর্স ভিডিও সহ ইউটিউব ভিডিও হিসাবে সর্বদা উপলব্ধ এবং সর্বদা উপলভ্য পাবলিক উত্স যোগ করতে আপনার সাহায্যের প্রশংসা করব।
- আমি বিশ্ববিদ্যালয়ের বক্তৃতা ব্যবহার করতে পছন্দ করি।
+অনলাইন কোর্স এর পরিবর্তে ফ্রি এবং সর্বদা পাওয়া যায় এমন পাব্লিক রিসোর্স যেমন ইউটিউব ভিডিও (আমি বিশ্ববিদ্যালয়ের বক্তৃতা ব্যবহার করতে পছন্দ করি।) ব্যাভয়ার করা ভালো হবে। যেন আপনারা যেকোনো সময় যেকোনো বিষয়ে পড়তে পারেন কোনো বিশেষ সময় কোনো কোর্স এর জন্য অপেক্ষা করতে নাহ হয়।
+
+## একটি প্রোগ্রামিং ভাষা বেছে নিন
+
+আপনি যে কোডিং সাক্ষাত্কারগুলি করবেন তার জন্য আপনাকে একটি প্রোগ্রামিং ভাষা পছন্দ করতে হবে, তবে আপনাকে এমন একটি ভাষাও খুঁজে বের করতে হবে যা আপনি কম্পিউটার সাইন্সের ধারণাগুলি অধ্যয়ন করতে ব্যবহার করতে পারবেন।
+
+ভালো হয় যদি এই দুইটি কাজে একই ভাষা ব্যাবহার করেন তাহলে আপনাকে একটি ভাষাতেই দক্ষ হতে হবে।
+
+### এই শিক্ষা পরিকল্পনার জন্য
+
+আমি যখন এই শিক্ষা পরিকল্পনা অনুসরন করেছিলাম তখন আমি সি ও পাইথন এই দুইটি ব্যাবহার করেছিলাম।
+
+- সি: এটি খুব ই লো লেভেল ল্যাংগুয়েজ। এটি আপনাকে পয়েন্টার এবং মেমরি অ্যালোকেশন / ডি-অ্যালোকেশন নিয়ে কাজ করতে দিবে। যার মাধ্যমে আপনি ভালো ভাবে অ্যালগোরিদম ও ডাটা স্ট্রাকচার শিখতে পারবেন। পাইথন ও জাভা হলো হাই লেভেল ল্যাংগুয়েজ এই ল্যাংগুয়েজ গুলোতে আপনার থেকে এই বিষয় গুলো লুকানো থাকে। দৈনিক কাজের ক্ষেত্রে যাহ খুব ই সুবিধা জনক কিন্ত শেখার ক্ষেত্রে যখন আপনি লো লেভেল ডাটা স্ট্রাকচার কিভাবে বানানো হয় শিখছেন তখন যতো লো লেভেল অর্থাৎ হার্ডওয়্যার এর কাছাকাছি এক্সহেখাই ভালো।
+ - সি এর ব্যাবহার সর্বত্র। এর উদারন আপনি বই, ভিডিও, লেকচার, যেখানেই পড়বেন সেখানেই দেখতে পাবেন।
+ - [দি সি প্রোগ্রামিং ল্যাংগুয়েজ, ভলিউম ২](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষার উপর একটি দুর্দান্ত দক্ষতা দেবে এবং আপনি যদি এটি একটু অনুশীলন করেন তবে আপনি দ্রুত দক্ষ হয়ে উঠবেন। সি বুঝতে পারলে আপনি প্রোগ্রাম এবং মেমরি কিভাবে কাজ করে তা বুঝতে পারবেন।
+ - আপনাকে বইটির গভীরে যেতে হবে না (বা এমনকি এটি শেষ করতে হবে না)। শুধু যেটুকু পড়লে আপনি সি-তে পড়তে এবং লিখতে স্বাচ্ছন্দ্য বোধ করেন সেটুকু পড়ুন।
+ - [বইটির প্রশ্নের উত্তর](https://github.com/lekkas/c-algorithms)
+- পাইথন: আধুনিক এবং খুব অভিব্যক্তিপূর্ণ, আমি এটি শিখেছি কারণ এটি খুব দরকারী এবং আমাকে একটি সাক্ষাত্কারে কম কোড লিখতে সাহায্য করে।
+
+এগুলো আমার পছন্দ। কিন্ত আপনার পছন্দ অনুযায়ী আপনি শিখবেন।
+
+আপানার হয়তো লাগবে নাহ কিন্ত এখানে নতুন কিছু ল্যাংগুয়েজ শেখার কিছু ওয়েবসাইট দেওয়া হলো:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Codeforces](https://codeforces.com/)
+
+### আপনার কোডিং সাক্ষাত্কার এর জন্য
+
+সাক্ষাত্কারের কোডিং অংশটি করতে আপনি যে ভাষাতে স্বাচ্ছন্দ্য বোধ করেন তা ব্যবহার করতে পারেন, তবে বড় কোম্পানিগুলির জন্য, এইগুলি ভালো পছন্দ:
+- সি++
+- জাভা
+- পাইথন
+
+আপনি এগুলি ও ব্যাবহার করতে পারেন তবে আগে থেকে জেনে নিবেন কারন নানা রকম সমস্যায় ভুগতে পারেন:
+- জাভা স্ক্রিপ্ট
+- রুবি
+
+এখানে আমার লেখা একটি আর্টিকেল আছে যেখানে সাক্ষাত্কারের জন্য ল্যাংগুয়েজ নিয়ে আমি বলেছি।
+[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
+এই আর্টিকেল এর উপর ভিত্তি করী আমি আমার আর্টিকেলটি লিখেছিলাম: http://blog.codingforinterviews.com/best-programming-language-jobs/
+
+আপনাকে ওই ল্যাংগুয়েজ এ খুব ই দক্ষ ও সাচ্ছন্দবোধ করতে হবে।
+
+ভাষা পছন্দ সম্পর্কে আরো জানুন:
+
+- [আপনার কোডিং সাক্ষাত্কারের জন্য সঠিক ল্যাংগুয়েজ সম্পর্কে জানুন](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[ভাষা অনুসারে রিসোর্স এখানে পাবেন](programming-language-resources.md)
+
+## ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ
+
+এই বইটি কম্পিউটার সাইন্সের জন্য আপনার ভিত্তি তৈরি করবে।
+
+আপনি স্বাচ্ছন্দ্য বোধ করবেন শুধুমাত্র এমন একটি ভাষা বেছে নিন। আপনি অনেক পড়তে এবং কোডিং করতে হবে।
+
+### সি
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - বেসিক, ডাটা স্ট্রাকচার, সোর্টিং, সার্চিং, গ্রাফ এবং অ্যালগোরিদম
+
+### পাইথন
+
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - লেখক Goodrich, Tamassia, Goldwasser
+ - আমি এই বইটি খুব পছন্দ করেছি। আমি এটার সব পড়েছি
+ - Pythonic code
+ - এই বই এর উপর লেখা আমার বুক রিপোর্ট: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### জাভা
+
+আপনার পছন্দ:
+
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - ফ্রি কোর্সেরা (Coursera) কোর্স যা এই বইতে পড়ানো হয় তা নিয়ে (বই এর লেখকেরা শেখান!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+### সি++
+
+আপনার পছন্দ:
+
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [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/)
+
+
+
+## ইন্টারভিউ এর প্রস্তুতি এর বইসমুহ
+
+আপনি এতগুলো কিনতে হবে না। সত্যি বলতে "ক্রাকিং দ্য কোডিং ইন্টারভিউ" সম্ভবত যথেষ্ট, তবে আমি নিজে আরও অনুশীলন এর জন্য আরও কিছু কিনেছি। কিন্তু আমি সবসময় খুব বেশি করি।
+
+আমি এই দুটি কিনেছিলাম। এগুলো থেকে আমার প্রচুর প্রাক্টিস হয়েছে
+
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - সি ++ এবং জাভাতে উত্তর
+ - কোডিং সাক্ষাত্কার ক্র্যাক করার জন্য এটি একটি ভাল প্রস্তুতি
+ - খুব বেশি কঠিন নয়, বেশিরভাগ সমস্যাগুলি আপনি একটি সাক্ষাত্কারে যা দেখবেন তার চেয়ে সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - জাভাতে উত্তর
+
+### আপনার যদি অতিরিক্ত পরিমাণে সময় থাকে তবে
+
+একটি পছন্দ করুন:
+- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানগুলি (সি ++ সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানগুলি (পাইথন সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানসমূহ (জাভা সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)- [সহায়ক প্রোজেক্ট-বইয়ের প্রতিটি সমস্যার জন্য মেথড স্টাব এবং টেস্ট কেস](https://github.com/gardncl/elements-of-programming-interviews)
-## সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
+## আমার ভুল গুলো করবেন নাহ
-
-<সুমারী> সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কারের প্রস্তুতি
+এই তালিকাটি কয়েক মাস ধরে বেড়েছে, এবং হ্যাঁ, এটি একধরণের হাতছাড়া হয়ে যায়।
+
+এখানে আমি কিছু ভুল করেছি যাতে আপনার আরও ভাল অভিজ্ঞতা হয়। এবং আপান্র অনেক সময় ও বাঁচবে।
+
+### 1. আপনি সব মনে রাখতে পারবেন না
+
+আমি কয়েক ঘন্টা ভিডিও দেখেছি এবং প্রচুর নোট নিয়েছি এবং কয়েক মাস পরে এমন অনেক কিছুই ছিল যা আমি মনে রাখতে পারিনি। আমি যেতে ৩ দিন কাটিয়েছি আমার নোটগুলি এবং ফ্ল্যাশকার্ডগুলি তৈরি করে যাতে আমি পর্যালোচনা করতে পারি। কিন্ত আমার এগুলোর দরকার ছিলো নাহ।
+
+দয়া করে পড়ুন যাতে আপনি আমার ভুল না করেন:
+
+[কম্পিউটার বিজ্ঞান এর জ্ঞান মনে রাখা](https://startupnextdoor.com/retaining-computer-science-knowledge/)
+
+### 2. ফ্ল্যাশকার্ড ব্যবহার করুন
+
+সমস্যা সমাধানের জন্য, আমি একটি সামান্য ফ্ল্যাশকার্ডস সাইট তৈরি করেছি যেখানে আমি ২ ধরণের ফ্ল্যাশকার্ড যুক্ত করতে পারি: সাধারণ এবং কোড।
+প্রতিটি কার্ডের আলাদা বিন্যাস রয়েছে।
+
+আমি একটি মোবাইল প্রথম ওয়েবসাইট তৈরি করেছি যাতে আমি যেখানেই থাকি না কেন আমার ফোন এবং ট্যাবলেটে পর্যালোচনা করতে পারি।
+
+বিনামূল্যে নিজের তৈরি করুন:
+
+- [ফ্ল্যাশকার্ডস সাইটের রিপো](https://github.com/jwasham/computer-science-flash-cards)
+
+**আমি আমার ফ্ল্যাশকার্ডগুলি ব্যবহার করার পরামর্শ দিই না।** অনেকগুলি আছে এবং তাদের মধ্যে অনেকগুলি তুচ্ছ বিষয় যা আপনার প্রয়োজন নেই.
+
+তবু যদি আপনি আপনি আমার কথা শুনতে নাহ চান। এখানে ফ্ল্যাশ কার্ড গুলি পাবেন:
+- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (নতুন-1800 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং সমাবেশগুলির ভাষা এবং পাইথন ট্রিভিয়া থেকে শুরু করে মেশিন লার্নিং এবং পরিসংখ্যানের সমস্ত কিছুর জন্য কার্ড রয়েছে। যা প্রয়োজন তার জন্য এটি অনেক বেশি।
+
+**ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য:** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
+একই কার্ড এবং এটি জেনে রাখার আগে বেশ কয়েকবার সঠিক উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীর করে দেবে
+আপনার মস্তিষ্ক.
+
+আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার বিকল্প হ'ল [আনকি](http://ankisrs.net/), যা আমার কাছে বহুবার প্রস্তাবিত হয়েছিল। এটি আপনাকে মনে রাখতে সহায়তা করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে।
+এটি ব্যবহারকারী-বান্ধব, সমস্ত প্ল্যাটফর্মে উপলব্ধ এবং একটি ক্লাউড সিঙ্ক সিস্টেম রয়েছে। আইওএসে এটির দাম 25 ডলার তবে অন্যান্য প্ল্যাটফর্মগুলিতে বিনামূল্যে।
+
+আনকি ফর্ম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেস: https://ankiweb.net/shared/info/25173560 (ধন্যবাদ [@ এক্সভিউনিয়া](https://github.com/xiewenya))
+
+### 3. পর্যালোচনা, পর্যালোচনা, পর্যালোচনা
+
+আমি ASCII, ওএসআই স্ট্যাক, বিগ-ও স্বরলিপিগুলি এবং আরও অনেক কিছুতে চিট শীটের একটি সেট রাখি। আমার কিছুটা বাজে সময় পেলে আমি সেগুলি অধ্যয়ন করি।
+
+আধা ঘন্টার জন্য প্রোগ্রামিং সমস্যা থেকে বিরতি নিন এবং আপনার ফ্ল্যাশকার্ডগুলি দিয়ে যান।
+
+### 4. ফোকাস করুন
+
+অনেকগুলি বিভ্রান্তি রয়েছে যা মূল্যবান সময় নিতে পারে। ফোকাস এবং ঘনত্ব শক্ত।
+
+
+
- [এ বি সি: সর্বদা কোডিং থাকুন](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [হোয়াইটবোর্ডিং](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
@@ -320,57 +484,13 @@
- [ডেটা স্ট্রাকচার এবং অ্যালগোরিদম ন্যানোডগ্রি! (উদাস্তিটি ন্যানোডগ্রি প্রদান করেছে)](https://www.udacity.com/course/data-structures-এবং-algorithms-nanodegree--nd256):
-100 টিরও বেশি ডেটা স্ট্রাকচার এবং অ্যালগরিদম অনুশীলন এবং আপনাকে একটি সাক্ষাত্কারের জন্য এবং কাজের সুযোগে দৃশ্যের জন্য আপনাকে প্রস্তুত করতে ডেডিকেটেড পরামর্শদাতার দিকনির্দেশ দিয়ে অনুশীলন পান।
-
-
-## সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করুন
-
-সাক্ষাত্কারের কোডিং অংশটি করতে আপনি স্বাচ্ছন্দ্যযুক্ত একটি ভাষা ব্যবহার করতে পারেন তবে বড় সংস্থাগুলির জন্য এগুলি কঠোর পছন্দ:
-
-- সি++
-- জাভা
-- পাইথন
-
-আপনি এগুলি ব্যবহার করতে পারেন তবে প্রথমে পড়তে পারেন। সতর্কতা থাকতে পারে:
-
-- জাভাস্ক্রিপ্ট
-- রুবি
-
-এখানে একটি নিবন্ধটি আমি সাক্ষাত্কারের জন্য একটি ভাষা বেছে নেওয়ার বিষয়ে লিখেছি: [কোডিং সাক্ষাত্কারের জন্য একটি ভাষা বেছে নিন](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
-
-এই মূল নিবন্ধটি আমার পোস্টের উপর ভিত্তি করে ছিল: http://blog.codingforinterviews.com/best-programming-language-jobs/
-
-আপনার ভাষায় খুব স্বাচ্ছন্দ্য বোধ করা এবং বুদ্ধিমান হওয়া দরকার।
-
-পছন্দ সম্পর্কে আরও পড়ুন:
--http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
--http://blog.codingforinterviews.com/best-programming-language-jobs/
-
-[ভাষার সংস্থানগুলি এখানে দেখুন](প্রোগ্রামিং-ভাষা-সংস্করণ.এমডি)
+### সাক্ষাত্কার প্রস্তুতি
-আপনি নীচে অন্তর্ভুক্ত কিছু সি, সি ++ এবং পাইথন শিখতে দেখবেন, কারণ আমি শিখছি। কয়েকটি বই জড়িত রয়েছে, নীচে দেখুন।
## বইএর তালিকা
আমি যা ব্যবহার করেছি তার চেয়ে এটি একটি সংক্ষিপ্ত তালিকা। এটি আপনার সময় বাঁচাতে সংক্ষেপে বর্ণিত।
-### সাক্ষাত্কার প্রস্তুতি
-
-- [প্রোগ্রামিং সাক্ষাত্কারগুলি উদ্ভাসিত হয়েছে: সাক্ষাত্কারের মাধ্যমে আপনার কোডের কোডিং, ৪ র্থ সংস্করণ](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - সি ++ এবং জাভাতে উত্তর
- - কোডিং সাক্ষাত্কার ক্র্যাক করার জন্য এটি একটি ভাল প্রস্তুতি
- - খুব বেশি কঠিন নয়, বেশিরভাগ সমস্যাগুলি আপনি একটি সাক্ষাত্কারে যা দেখবেন তার চেয়ে সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
-- [কোডিং সাক্ষাত্কার ক্র্যাকিং, 6th ষ্ঠ সংস্করণ](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - জাভা উত্তর
-
-
-আপনার যদি অতিরিক্ত পরিমাণে সময় থাকে তবে
-
-একটি নির্বাচন করুন:
-
-- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানগুলি (সি ++ সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- প্রোগ্রামিং সাক্ষাত্কারের উপাদানসমূহ (জাভা সংস্করণ)-[বই](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)-[কোম্পানির প্রকল্প-বইয়ের প্রতিটি সমস্যার জন্য পদ্ধতি স্টাব এবং টেস্ট কেস](https://github.com/gardncl/elements-of-programming-interviews)
-
-
### কম্পিউটার আর্কিটেকচার
@@ -394,112 +514,9 @@
-###ভাষা নির্দিষ্ট
-
-** আপনাকে সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করতে হবে (উপরে দেখুন) * **
-
-ভাষা অনুসারে আমার প্রস্তাবনা এখানে রইল। আমার কাছে সমস্ত ভাষার জন্য সংস্থান নেই। আমি সংযোজন স্বাগত জানাই।
-
-আপনি যদি এর মধ্যে একটির মাধ্যমে পড়ে থাকেন তবে আপনার কোডিং সমস্যাগুলি শুরু করতে হবে এমন সমস্ত ডেটা স্ট্রাকচার এবং অ্যালগরিদম জ্ঞান থাকা উচিত।
-** আপনি যদি কোনও পর্যালোচনা না চান তবে আপনি এই প্রকল্পের সমস্ত ভিডিও বক্তৃতা ** এড়িয়ে যেতে পারেন।
-
-[অতিরিক্ত ভাষা-নির্দিষ্ট সংস্থানগুলি এখানে]] (প্রোগ্রামিং-ভাষাভাষা-উত্স.এমডি)
-
-### সি++
-
-
-সি++
-
-আমি এই দুটি পড়িনি, তবে সেডজেউইক দ্বারা তারা উচ্চ মানের এবং রচিত। সে দুর্দান্ত।
-
-- [সি++ এ অ্যালগরিদম, অংশ 1-4: মূলসূত্র, ডেটা স্ট্রাকচার, বাছাই, অনুসন্ধান করা] (https://www.amazon.com/Algorithms-Partts-1-4-Fundamentals-কাঠামো / dp/0201350882/)
-- [সি ++ পার্ট 5 এ অ্যালগরিদম: গ্রাফ অ্যালগরিদম] (https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-
-আপনার যদি সি ++ এর জন্য আরও ভাল প্রস্তাবনা থাকে তবে দয়া করে আমাকে জানান। একটি বিস্তৃত রিসোর্স খুঁজছি।
-
-
-
-###জাভা
-
-
-জাভা
-
-- [অ্যালগোরিদম (সেডজউইক এবং ওয়েইন)] (https://www.amazon.com/Algorithms-4th-রবার্ট-সেজজউইক / dp/032157351X/)
- -পাঠ্যক্রমের বইয়ের সামগ্রী (এবং সেডজউইক!) সহ ভিডিও:
- -[অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
- -[অ্যালগোরিদম II] (https://www.coursera.org/learn/algorithms-part2)
-
-বা:
-
-- [জাভাতে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Data-Structures-Algorithms-Michael-গুডরিচ/dp/1118771338/)
- - গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- - ইউসি বার্কলে সিএস ইন্ট্রো কোর্সের জন্য textচ্ছিক পাঠ্য হিসাবে ব্যবহৃত
- - নীচে পাইথন সংস্করণে আমার বইয়ের প্রতিবেদনটি দেখুন। এই বইটিতে একই বিষয় রয়েছে।
-
-
-
-### পাইথন
-
-
-পাইথন
-
-- [পাইথনে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Structures-অ্যালগোরিদমস-পাইথন-মিশেল-গুডরিচ / ডিপি / 1118290275/)
- - গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- - আমি এই বই পছন্দ। এটি সব কিছুর আওতায় পড়ে।
- - পাইথোনিক কোড
- - আমার জ্বলজ্বল বইয়ের প্রতিবেদন: https://startupnextdoor.com/book-report-data-structures-এবং-algorithms-in-python/
-
-
-
-
-## আপনি শুরু করার আগে
-
-এই তালিকাটি কয়েক মাস ধরে বেড়েছে, এবং হ্যাঁ, এটি একধরণের হাতছাড়া হয়ে যায়।
-
-এখানে আমি কিছু ভুল করেছি যাতে আপনার আরও ভাল অভিজ্ঞতা হয়।
-
-### 1. আপনি সব মনে রাখবেন না
-
-আমি কয়েক ঘন্টা ভিডিও দেখেছি এবং প্রচুর নোট নিয়েছি এবং কয়েক মাস পরে এমন অনেক কিছুই ছিল যা আমি মনে করি না। আমি যেতে 3 দিন কাটিয়েছি
-আমার নোটগুলি এবং ফ্ল্যাশকার্ডগুলি তৈরি করে যাতে আমি পর্যালোচনা করতে পারি।
-
-দয়া করে পড়ুন যাতে আপনি আমার ভুল করবেন না:
-
-[কম্পিউটার বিজ্ঞান জ্ঞান পুনরুদ্ধার করা](https://startupnextdoor.com/retaining-computer-s विज्ञान-জ্ঞান)
-
-### 2. ফ্ল্যাশকার্ড ব্যবহার করুন
-
-সমস্যা সমাধানের জন্য, আমি একটি সামান্য ফ্ল্যাশকার্ডস সাইট তৈরি করেছি যেখানে আমি 2 ধরণের ফ্ল্যাশকার্ড যুক্ত করতে পারি: সাধারণ এবং কোড।
-প্রতিটি কার্ডের আলাদা বিন্যাস রয়েছে।
-
-আমি একটি মোবাইল প্রথম ওয়েবসাইট তৈরি করেছি যাতে আমি যেখানেই থাকি না কেন আমার ফোন এবং ট্যাবলেটে পর্যালোচনা করতে পারি।
-
-বিনামূল্যে নিজের তৈরি করুন:
-
-- [ফ্ল্যাশকার্ডস সাইটের রেপো](https://github.com/jwasham/computer-science-flash-cards)
-- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (নতুন-1800 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-
-মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং সমাবেশগুলির ভাষা এবং পাইথন ট্রিভিয়া থেকে শুরু করে মেশিন লার্নিং এবং পরিসংখ্যানের সমস্ত কিছুর জন্য কার্ড রয়েছে। যা প্রয়োজন তার জন্য এটি অনেক বেশি।
-
-**ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য:** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
-একই কার্ড এবং এটি জেনে রাখার আগে বেশ কয়েকবার সঠিক উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীর করে দেবে
-আপনার মস্তিষ্ক.
-
-আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার বিকল্প হ'ল [আনকি](http://ankisrs.net/), যা আমার কাছে বহুবার প্রস্তাবিত হয়েছিল। এটি আপনাকে মনে রাখতে সহায়তা করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে।
-এটি ব্যবহারকারী-বান্ধব, সমস্ত প্ল্যাটফর্মে উপলব্ধ এবং একটি ক্লাউড সিঙ্ক সিস্টেম রয়েছে। আইওএসে এটির দাম 25 ডলার তবে অন্যান্য প্ল্যাটফর্মগুলিতে বিনামূল্যে।
-
-আনকি ফর্ম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেস: https://ankiweb.net/shared/info/25173560 (ধন্যবাদ [@ এক্সভিউনিয়া](https://github.com/xiewenya))
-
-### 3. পর্যালোচনা, পর্যালোচনা, পর্যালোচনা
-
-আমি ASCII, ওএসআই স্ট্যাক, বিগ-ও স্বরলিপিগুলি এবং আরও অনেক কিছুতে চিট শীটের একটি সেট রাখি। আমার কিছুটা বাজে সময় পেলে আমি সেগুলি অধ্যয়ন করি।
-
-আধা ঘন্টার জন্য প্রোগ্রামিং সমস্যা থেকে বিরতি নিন এবং আপনার ফ্ল্যাশকার্ডগুলি দিয়ে যান।
+
-### 4. ফোকাস করুন
-অনেকগুলি বিভ্রান্তি রয়েছে যা মূল্যবান সময় নিতে পারে। ফোকাস এবং ঘনত্ব শক্ত।
## আপনি কি কভার দেখতে পাবেন না
From 9ec5acf77db43b50303168ef5cac03e025625344 Mon Sep 17 00:00:00 2001
From: Sumit Kumar Kar
Date: Wed, 23 Feb 2022 13:04:03 +0600
Subject: [PATCH 004/173] Fixed broken section linking
---
translations/README-bn.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 01338e97a1..ef9e27fb4c 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -88,7 +88,7 @@
-## এটি কি?
+## এটি কি

@@ -110,15 +110,15 @@
### পাঠ পরিকল্পনা
-- [এটি কি?](#এটি-কি?)
-- [কেন এটি ব্যবহার করবেন?](#এটি-কেন-ব্যবহার-করুন)
+- [এটি কি](#এটি-কি)
+- [কেন এটি ব্যবহার করবেন](#কেন-এটি-ব্যবহার-করবেন)
- [এটি কীভাবে ব্যবহার করবেন](#এটি-কীভাবে-ব্যবহার-করবেন)
- [আপনি কি নিজেকে যথেষ্ট স্মার্ট ভাবেন নাহ](#আপনি-কি-নিজেকে-যথেষ্ট-স্মার্ট-ভাবেন-নাহ)
- [ভিডিও রিসোর্স সম্পর্কে কিছু কথা](#ভিডিও-রিসোর্স-সম্পর্কে-কিছু-কথা)
- [একটি প্রোগ্রামিং ভাষা বেছে নিন](#একটি-প্রোগ্রামিং-ভাষা-বেছে-নিন)
-- [ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ](#ডাটা-স্ট্রাকচারএবং-এ্যালগোরিদম-এর-বইসমুহ)
+- [ডাটা স্ট্রাকচার এবং এ্যালগোরিদম এর বইসমুহ](#ডাটা-স্ট্রাকচার-এবং-এ্যালগোরিদম-এর-বইসমুহ)
- [ইন্টারভিউ এর প্রস্তুতি এর বইসমুহ](#ইন্টারভিউ-এর-প্রস্তুতি-এর-বইসমুহ)
-- [আমার ভুল গুলো করবেন নাহ](আমার-ভুল-গুলো-করবেন-নাহ)
+- [আমার ভুল গুলো করবেন নাহ](#আমার-ভুল-গুলো-করবেন-নাহ)
- [এখানে যা শেখানো হবে না](#কী-আপনি-দেখতে-পাবেন-না)
- [দৈনিক পরিকল্পনা](#দৈনিক-পরিকল্পনা)
- [কোডিং প্রশ্ন অনুশীলন](#কোডিং-প্রশ্ন-অনুশীলন)
@@ -236,7 +236,7 @@
---
-## কেন এটি ব্যবহার করবেন?
+## কেন এটি ব্যবহার করবেন
আপনি যদি সফটওয়্যার ইঞ্জিনিয়ার হিসেভে বড় কোম্পানি তে কাজ করতে চান তাহলে এই বিষয় গুলো আপনার জানা থাকা প্রয়োজন।
@@ -247,7 +247,7 @@
এটি একটি দীর্ঘ পরিকল্পনা। এটি আপনার কয়েক মাস সময় নিতে পারে। আপনি যদি ইতিমধ্যে এর অনেক বিষয়ের সাথে পরিচিত হন তবে আপনাকে অনেক কম সময় লাগবে।
-## এটি কিভাবে ব্যবহার করতে
+## এটি কীভাবে ব্যবহার করবেন
নীচের সমস্ত কিছুই একটি রূপরেখা এবং আপনার আইটেমগুলি উপরের থেকে নীচে পর্যন্ত অনুসরন করা উচিত।
From d7befb76d77ae220ad4551dd41e778c7f5e72cc9 Mon Sep 17 00:00:00 2001
From: Marco Marrelli <76500649+volpoh@users.noreply.github.com>
Date: Mon, 16 May 2022 11:29:07 +0200
Subject: [PATCH 005/173] Added Italian to Translations In Progress
Added the Italian Translation to Translations In Progress list
You can find it here: https://github.com/jwasham/coding-interview-university/issues/1030
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c8daa731b9..9189f94a4c 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,8 @@
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+
From 9f133d324f13ebec81635e61ff9b22397084f6cb Mon Sep 17 00:00:00 2001
From: name
Date: Tue, 6 Sep 2022 22:31:13 -0700
Subject: [PATCH 006/173] deploy
---
translations/README-bu.md | 106 ++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
create mode 100644 translations/README-bu.md
diff --git a/translations/README-bu.md b/translations/README-bu.md
new file mode 100644
index 0000000000..63f499b8af
--- /dev/null
+++ b/translations/README-bu.md
@@ -0,0 +1,106 @@
+# Кодиране Интервю университет
+
+> Първоначално създадох това като кратък списък с учебни теми за ставане на софтуерен инженер,
+> но той се разрасна до големия списък, който виждате днес. След като преминах през този учебен план, [ме наеха на работа
+> като инженер по разработка на софтуер в Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Вероятно няма да ви се наложи да учите толкова много, колкото на мен. Така или иначе, всичко, от което се нуждаете, е тук.
+>
+> Учех по около 8-12 часа на ден в продължение на няколко месеца. Това е моята история: [Защо учих 8 месеца на пълен работен ден за интервю в Google](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+>
+> **Забележете:** Няма да ви се наложи да учите толкова много, колкото на мен. Изгубих много време за неща, които не трябваше да знам. Повече информация за това ще намерите по-долу. Ще ви помогна да стигнете дотам, без да губите ценното си време.
+>
+> Изброените тук елементи ще ви подготвят добре за техническо интервю в почти всяка софтуерна компания,
+> включително гигантите: Amazon, Facebook, Google и Microsoft.
+>
+> *Най-добър късмет за вас!*
+
+
+Преводи:
+
+- [中文版本](translations/README-cn.md)
+- [Tiếng Việt - Виетнамски](translations/README-vi.md)
+- [Español](translations/README-es.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Полски](translations/README-pl.md)
+- [繁體中文](translations/README-tw.md)
+- [Японски (日本語)](translations/README-ja.md)
+- [Руски](translations/README-ru.md)
+- [Немски](translations/README-de.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [ខ្មែរ - Кхмер](translations/README-kh.md)
+- [узбекски](translations/README-uz.md)
+- [Български](translations/README-bg.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+
+
+
+
+Преводите в процес на изпълнение:
+
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [арабски](https://github.com/jwasham/coding-interview-university/issues/98)
+- [турски](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Френски](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Корейски(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Телугу](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Урду](https://github.com/jwasham/coding-interview-university/issues/519)
+- [Тайландски](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Гръцки](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Малаялам](https://github.com/jwasham/coding-interview-university/issues/239)
+- [персийски - фарси](https://github.com/jwasham/coding-interview-university/issues/186)
+- [африканс](https://github.com/jwasham/coding-interview-university/issues/1164)
+
+
+
+
+
+## What is it?
+
+
+
+This is my multi-month study plan for becoming a software engineer for a large company.
+
+**Required:**
+* A little experience with coding (variables, loops, methods/functions, etc)
+* Patience
+* Time
+
+Note this is a study plan for **software engineering**, not web development. Large software companies like Google, Amazon,
+Facebook and Microsoft view software engineering as different from web development. For example, Amazon has
+Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 separate roles and the interviews for
+them will not be the same, as each has its own competencies. These companies require computer science knowledge for
+software development/engineering roles.
+
+---
+
+## Table of Contents
+
+### The Study Plan
+
+- [Какво е това?] (#what-is
\ No newline at end of file
From fe99254e2031d4257f35927c12f3c2bdf288c6a7 Mon Sep 17 00:00:00 2001
From: name
Date: Fri, 30 Sep 2022 16:17:45 -0700
Subject: [PATCH 007/173] kazakh-translation
---
README_KAZAKH.md | 1171 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1171 insertions(+)
create mode 100644 README_KAZAKH.md
diff --git a/README_KAZAKH.md b/README_KAZAKH.md
new file mode 100644
index 0000000000..b857da2ae5
--- /dev/null
+++ b/README_KAZAKH.md
@@ -0,0 +1,1171 @@
+# Кодтау сұхбат университеті
+
+> Мен мұны бастапқыда бағдарламалық жасақтама инженері болу үшін оқу тақырыптарының қысқаша тізімі ретінде жасадым,
+> бірақ ол бүгін көріп отырған үлкен тізімге дейін өсті. Осы оқу жоспарын орындағаннан кейін [мен жұмысқа қабылдандым
+> Amazon-да бағдарламалық жасақтаманы әзірлеу инженері ретінде](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Мен сияқты көп оқудың қажеті жоқ шығар. Қалай болғанда да, сізге қажет нәрсенің бәрі осында.
+>
+> Мен бірнеше ай бойы күніне 8-12 сағат оқыдым. Бұл менің оқиғам: [Google сұхбаты үшін неліктен мен 8 ай бойы толық уақытты оқыдым](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
+>
+> **Назар аударыңыз:** Сізге мен сияқты көп оқудың қажеті жоқ. Мен көп уақытымды қажет емес нәрселерге жұмсадым. Бұл туралы қосымша ақпарат төменде. Мен сізге қымбат уақытыңызды жоғалтпай жетуге көмектесемін.
+>
+> Мұнда келтірілген элементтер сізді кез келген бағдарламалық жасақтама компаниясында техникалық сұхбатқа жақсы дайындайды,
+> алыптарды қоса алғанда: Amazon, Facebook, Google және Microsoft.
+# Kodtaw suxbat wnïversïteti
+
+> Men munı bastapqıda bağdarlamalıq jasaqtama ïnjeneri bolw üşin oqw taqırıptarınıñ qısqaşa tizimi retinde jasadım,
+> biraq ol bügin körip otırğan ülken tizimge deyin östi. Osı oqw josparın orındağannan keyin [men jumısqa qabıldandım
+> Amazon-da bağdarlamalıq jasaqtamanı äzirlew ïnjeneri retinde](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Men sïyaqtı köp oqwdıñ qajeti joq şığar. Qalay bolğanda da, sizge qajet närseniñ bäri osında.
+>
+> Men birneşe ay boyı künine 8-12 sağat oqıdım. Bul meniñ oqïğam: [Google suxbatı üşin nelikten men 8 ay boyı tolıq waqıttı oqıdım](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
+>
+> **Nazar awdarıñız:** Sizge men sïyaqtı köp oqwdıñ qajeti joq. Men köp waqıtımdı qajet emes närselerge jumsadım. Bul twralı qosımşa aqparat tömende. Men sizge qımbat waqıtıñızdı joğaltpay jetwge kömektesemin.
+>
+> Munda keltirilgen élementter sizdi kez kelgen bağdarlamalıq jasaqtama kompanïyasında texnïkalıq suxbatqa jaqsı dayındaydı,
+> alıptardı qosa alğanda: Amazon, Facebook, Google jäne Microsoft.
+
+
+>
+> *Сәттілік сізге!*
+
+<толығырақ>
+Аудармалар:
+
+- [中文版本](аудармалар/README-cn.md)
+- [Tiếng Việt - вьетнамша](аудармалар/README-vi.md)
+- [Español](аудармалар/README-es.md)
+- [Português Brasileiro](аудармалар/README-ptbr.md)
+- [Польша](аудармалар/README-pl.md)
+- [繁體中文](аудармалар/README-tw.md)
+- [Жапондық (日本語)](аудармалар/README-ja.md)
+- [Орыс](аудармалар/README-ru.md)
+- [Неміс](аудармалар/README-de.md)
+- [Бахаса Индонезия](аудармалар/README-id.md)
+- [ខ្មែរ - кхмер](аудармалар/README-kh.md)
+- [Өзбек](аудармалар/README-uz.md)
+- [Болгар](аудармалар/README-bg.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+
+
+>
+> *Sättilik sizge!*
+
+
+Awdarmalar:
+
+- [zhōng wén bǎn běn](awdarmalar/README-cn.md)
+- [Tiếng Việt - vetnamşa](awdarmalar/README-vi.md)
+- [Español](awdarmalar/README-es.md)
+- [Português Brasileiro](awdarmalar/README-ptbr.md)
+- [Polşa](awdarmalar/README-pl.md)
+- [fán tǐ zhōng wén](awdarmalar/README-tw.md)
+- [Japondıq (rì běn yǔ)](awdarmalar/README-ja.md)
+- [Orıs](awdarmalar/README-ru.md)
+- [Nemis](awdarmalar/README-de.md)
+- [Baxasa Ïndonezïya](awdarmalar/README-id.md)
+- [ខ្មែរ - kxmer](awdarmalar/README-kh.md)
+- [Özbek](awdarmalar/README-uz.md)
+- [Bolgar](awdarmalar/README-bg.md)
+- [bānlā - Bangla](translations/README-bn.md)
+
+
+
+
+Translations in progress:
+
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+
+
+
+
+
+## Бұл не?
+
+
+
+Бұл менің ірі компанияда бағдарламалық жасақтама инженері болу үшін көп айлық оқу жоспарым.
+
+**Міндетті:**
+* Кодтау бойынша аз тәжірибе (айнымалылар, циклдар, әдістер/функциялар және т.б.)
+* Сабыр
+* Уақыт
+
+Бұл веб-әзірлеуге емес, **бағдарламалық қамтамасыз ету инженериясына** арналған оқу жоспары екенін ескеріңіз. Google, Amazon сияқты ірі бағдарламалық қамтамасыз ету компаниялары,
+Facebook және Microsoft бағдарламалық жасақтаманы веб-әзірлеуден өзгеше деп санайды. Мысалы, Amazon бар
+Frontend инженерлері (FEE) және бағдарламалық жасақтаманы әзірлеу инженерлері (SDE). Бұл 2 бөлек рөл және сұхбат
+олар бірдей болмайды, өйткені әрқайсысының өз құзыреті бар. Бұл компаниялар үшін информатика білімі қажет
+бағдарламалық қамтамасыз етуді әзірлеу/инженерлік рөлдер.
+
+---
+
+## Мазмұны
+
+### Оқу жоспары
+
+- [Бұл не?](#не-ол)
+- [Неге оны пайдалану керек?](#why-use-it)
+- [Қалай пайдалану керек](#қалай-пайдалану керек)
+- [Өзіңізді жеткілікті ақылды емес деп санамаңыз](#сізді жеткілікті түрде ақылды-сезінбеңіз)
+- [Бейне ресурстары туралы ескертпе](#a-note-about-video-resources)
+- [Бағдарламалау тілін таңдау](#choose-a-programming-language)
+- [Дерек құрылымдары мен алгоритмдеріне арналған кітаптар](#деректер құрылымдары мен алгоритмдеріне арналған кітаптар)
+- [Интервьюге дайындық кітаптары](#interview-prep-books)
+- [Менің қателіктерімді жасамаңыз](#қателіктерімді-жасамаңыз)
+- [Жабықпен сіз көрмейсіз](#сіз-көрмейтін-қамтылған)
+- [Күнделікті жоспар](#күнделікті-жоспар)
+- [Сұрақтарды кодтау тәжірибесі](#coding-question-practice)
+- [Кодтау мәселелері](#coding-problems)
+## Bul ne?
+
+
+
+Bul meniñ iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolw üşin köp aylıq oqw josparım.
+
+**Mindetti:**
+* Kodtaw boyınşa az täjirïbe (aynımalılar, cïkldar, ädister/fwnkcïyalar jäne t.b.)
+* Sabır
+* Waqıt
+
+Bul veb-äzirlewge emes, **bağdarlamalıq qamtamasız etw ïnjenerïyasına** arnalğan oqw josparı ekenin eskeriñiz. Google, Amazon sïyaqtı iri bağdarlamalıq qamtamasız etw kompanïyaları,
+Facebook jäne Microsoft bağdarlamalıq jasaqtamanı veb-äzirlewden özgeşe dep sanaydı. Mısalı, Amazon bar
+Frontend ïnjenerleri (FEE) jäne bağdarlamalıq jasaqtamanı äzirlew ïnjenerleri (SDE). Bul 2 bölek röl jäne suxbat
+olar birdey bolmaydı, öytkeni ärqaysısınıñ öz quzıreti bar. Bul kompanïyalar üşin ïnformatïka bilimi qajet
+bağdarlamalıq qamtamasız etwdi äzirlew/ïnjenerlik rölder.
+
+---
+
+## Mazmunı
+
+### Oqw josparı
+
+- [Bul ne?](#ne-ol)
+- [Nege onı paydalanw kerek?](#why-use-it)
+- [Qalay paydalanw kerek](#qalay-paydalanw kerek)
+- [Öziñizdi jetkilikti aqıldı emes dep sanamañız](#sizdi jetkilikti türde aqıldı-sezinbeñiz)
+- [Beyne reswrstarı twralı eskertpe](#a-note-about-video-resources)
+- [Bağdarlamalaw tilin tañdaw](#choose-a-programming-language)
+- [Derek qurılımdarı men algorïtmderine arnalğan kitaptar](#derekter qurılımdarı men algorïtmderine arnalğan kitaptar)
+- [Ïntervyuge dayındıq kitaptarı](#interview-prep-books)
+- [Meniñ qatelikterimdi jasamañız](#qatelikterimdi-jasamañız)
+- [Jabıqpen siz körmeysiz](#siz-körmeytin-qamtılğan)
+- [Kündelikti jospar](#kündelikti-jospar)
+- [Suraqtardı kodtaw täjirïbesi](#coding-question-practice)
+- [Kodtaw mäseleleri](#coding-problems)
+
+### Оқу тақырыптары
+
+- [Алгоритмдік күрделілік / Үлкен-О / Асимптотикалық талдау](#алгоритмдік-күрделілік--үлкен-о--ассимптотикалық-анализ)
+- [Дерек құрылымдары](#деректер құрылымдары)
+ - [Массивтер](#массив)
+ - [Байланыстырылған тізімдер](#linked-lists)
+ - [Стек](#стек)
+ - [Кезек](#кезек)
+ - [Хэш кестесі](#хэш-кесте)
+- [Қосымша білім](#көп-білім)
+ - [Екілік іздеу](#екілік іздеу)
+ - [биттік операциялар](#биттік операциялар)
+- [Ағаштар](#ағаштар)
+ - [Ағаштар - Жазбалар және фон](#ағаштар---жазбалар--фон)
+ - [Екілік іздеу ағаштары: BSTs](#binary-search-trees-bsts)
+ - [Үйме / Басымдық кезек / Екілік үйме](#үйме--басымдылық-кезегі--екілік-үйме)
+ - теңдестірілген іздеу ағаштары (детальдар емес, жалпы түсінік)
+ - өтулер: алдын ала тапсырыс, тапсырыс, кейінгі тапсырыс, BFS, DFS
+- [Сұрыптау](#сұрыптау)
+ - таңдау
+ - кірістіру
+ - үйінді сұрыптау
+ - жылдам сұрыптау
+ - біріктіру сұрыптауы
+- [Графиктер](#график)
+ - бағыттады
+ - бағытталмаған
+ - көршілестік матрицасы
+ - іргелес тізім
+ - өтулер: BFS, DFS
+- [Одан да көп білім](#ven-more-bilgi)
+ - [Рекурсия](#рекурсия)
+ - [Динамикалық бағдарламалау](#динамикалық-бағдарламалау)
+ - [Дизайн үлгілері](#design-patterns)
+ - [Комбинаторика (n таңдау k) & Ықтималдық](#комбинаторика-n-таңдау-k--ықтималдық)
+ - [NP, NP-Толық және жуықтау алгоритмдері](#np-np-толық-және жуықтау-алгоритмдері)
+ - [Компьютерлер бағдарламаны қалай өңдейді](#қалай-компьютерлер-бағдарламаны өңдейді)
+ - [Кэштер](#кэштер)
+ - [Процестер мен ағындар](#processes-and-threads)
+ - [Тестілеу](#тестілеу)
+ - [Жолды іздеу және манипуляциялар](#string-searching--манипуляциялар)
+ - [Әрекет](# тырысады)
+ - [Жылжымалы нүкте сандары](#жылжымалы нүкте сандары)
+ - [Юникод](#уникод)
+ - [Endianness](#endianness)
+ - [Networking](#networking)
+- [Қорытынды шолу](#соңғы шолу)
+
+### Жұмысқа орналасу
+
+- [Түйіндемеңізді жаңарту](#жаңарту-өз түйіндемеңіз)
+- [Жұмыс табу](#жұмыс табу)
+- [Интервью процесі және жалпы сұхбатқа дайындық](#interview-process--жалпы-интервью-дайындық)
+- [Сұхбат қашан келетінін ойлаңыз](#сұхбат келгенде-ойланыңыз)
+- [Сұхбат алушыға сұрақтарыңыз бар](#сұхбат алушыға-сұрақтарыңыз бар)
+- [Жұмысқа қол жеткізгеннен кейін](#бір рет-жұмысқа-алғаннан кейін)
+
+**---------------- Осы тармақтың астындағылардың барлығы міндетті емес ----------------**
+### Oqw taqırıptarı
+
+- [Algorïtmdik kürdelilik / Ülken-O / Asïmptotïkalıq taldaw](#algorïtmdik-kürdelilik--ülken-o--assïmptotïkalıq-analïz)
+- [Derek qurılımdarı](#derekter qurılımdarı)
+ - [Massïvter](#massïv)
+ - [Baylanıstırılğan tizimder](#linked-lists)
+ - [Stek](#stek)
+ - [Kezek](#kezek)
+ - [Xéş kestesi](#xéş-keste)
+- [Qosımşa bilim](#köp-bilim)
+ - [Ekilik izdew](#ekilik izdew)
+ - [bïttik operacïyalar](#bïttik operacïyalar)
+- [Ağaştar](#ağaştar)
+ - [Ağaştar - Jazbalar jäne fon](#ağaştar---jazbalar--fon)
+ - [Ekilik izdew ağaştarı: BSTs](#binary-search-trees-bsts)
+ - [Üyme / Basımdıq kezek / Ekilik üyme](#üyme--basımdılıq-kezegi--ekilik-üyme)
+ - teñdestirilgen izdew ağaştarı (detaldar emes, jalpı tüsinik)
+ - ötwler: aldın ala tapsırıs, tapsırıs, keyingi tapsırıs, BFS, DFS
+- [Surıptaw](#surıptaw)
+ - tañdaw
+ - kiristirw
+ - üyindi surıptaw
+ - jıldam surıptaw
+ - biriktirw surıptawı
+- [Grafïkter](#grafïk)
+ - bağıttadı
+ - bağıttalmağan
+ - körşilestik matrïcası
+ - irgeles tizim
+ - ötwler: BFS, DFS
+- [Odan da köp bilim](#ven-more-bilgi)
+ - [Rekwrsïya](#rekwrsïya)
+ - [Dïnamïkalıq bağdarlamalaw](#dïnamïkalıq-bağdarlamalaw)
+ - [Dïzayn ülgileri](#design-patterns)
+ - [Kombïnatorïka (n tañdaw k) & Iqtïmaldıq](#kombïnatorïka-n-tañdaw-k--ıqtïmaldıq)
+ - [NP, NP-Tolıq jäne jwıqtaw algorïtmderi](#np-np-tolıq-jäne jwıqtaw-algorïtmderi)
+ - [Kompyuterler bağdarlamanı qalay öñdeydi](#qalay-kompyuterler-bağdarlamanı öñdeydi)
+ - [Kéşter](#kéşter)
+ - [Procester men ağındar](#processes-and-threads)
+ - [Testilew](#testilew)
+ - [Joldı izdew jäne manïpwlyacïyalar](#string-searching--manïpwlyacïyalar)
+ - [Äreket](# tırısadı)
+ - [Jıljımalı nükte sandarı](#jıljımalı nükte sandarı)
+ - [Yunïkod](#wnïkod)
+ - [Endianness](#endianness)
+ - [Networking](#networking)
+- [Qorıtındı şolw](#soñğı şolw)
+
+### Jumısqa ornalasw
+
+- [Tüyindemeñizdi jañartw](#jañartw-öz tüyindemeñiz)
+- [Jumıs tabw](#jumıs tabw)
+- [Ïntervyu procesi jäne jalpı suxbatqa dayındıq](#interview-process--jalpı-ïntervyu-dayındıq)
+- [Suxbat qaşan keletinin oylañız](#suxbat kelgende-oylanıñız)
+- [Suxbat alwşığa suraqtarıñız bar](#suxbat alwşığa-suraqtarıñız bar)
+- [Jumısqa qol jetkizgennen keyin](#bir ret-jumısqa-alğannan keyin)
+
+**---------------- Osı tarmaqtıñ astındağılardıñ barlığı mindetti emes ----------------**
+
+### Қосымша қосымша тақырыптар мен ресурстар
+
+- [Қосымша кітаптар](#қосымша кітаптар)
+- [Жүйені жобалау, масштабтау, деректерді өңдеу](#жүйе дизайны-масштабтау-деректерді өңдеу) (4 жылдан астам тәжірибеңіз болса)
+- [Қосымша оқыту](#қосымша-оқыту)
+ - [Құрастырушылар](#компиляторлар)
+ - [Emacs және vi(m)](#emacs-and-vim)
+ - [Unix пәрмен жолы құралдары](#unix-командалық жол құралдары)
+ - [Ақпарат теориясы](#ақпарат-теория-бейнелер)
+ - [Паритет және Хамминг коды](#parity--hamming-code-videos)
+ - [Энтропия](#энтропия)
+ - [Криптография](#криптография)
+ - [Сығу](#қысу)
+ - [Компьютер қауіпсіздігі](#компьютер қауіпсіздігі)
+ - [Қоқыс жинау](#қоқыс жинау)
+ - [Параллельді бағдарламалау](#параллельді бағдарламалау)
+ - [Хабар алмасу, сериялау және кезекке қою жүйелері](#хабарлама-серияландыру-және-кезектеу-жүйелері)
+ - [A*](#a)
+ - [Fast Furier Transform](#fast-fourier-transform)
+ - [Блум сүзгісі](#блум-сүзгісі)
+ - [HyperLogLog](#hyperloglog)
+ - [Жергілікті-сезімтал хэштеу](#жергілікті-сезімтал-хэшинг)
+ - [ван Эмде Боас ағаштары](#ван-емде-боас-ағаштар)
+ - [Толықтырылған деректер құрылымдары](#augmented-data-structures)
+ - [Балансталған іздеу ағаштары](#балансталған іздеу ағаштары)
+ - AVL ағаштары
+ - Ағаштар
+ - қызыл/қара ағаштар
+ - 2-3 іздеу ағаштары
+ - 2-3-4 ағаш (2-4 ағаш)
+ - N-ары (Қ-ары, М-ары) ағаштары
+ - В-ағаштар
+ - [k-D ағаштары](#k-d-ағаштар)
+ - [Тізімдерді өткізіп жіберу](#өткізу тізімдері)
+ - [Желі ағындары](#желі ағындары)
+ - [Ажыратылған жиындар және одақтарды табу](#disjoint-жинақтар--одақ-табу)
+ - [Жылдам өңдеуге арналған математика](#жылдам өңдеуге арналған математика)
+ - [Треап](#treap)
+ - [Сызықтық бағдарламалау](#linear-бағдарламалау-бейнелер)
+ - [Геометрия, дөңес корпус](#геометрия-дөңес-корпус-бейнелері)
+ - [Дискретті математика](#дискретті-математика)
+- [Кейбір тақырыптар бойынша қосымша мәліметтер](кейбір тақырыптар бойынша #қосымша-деталь)
+- [Бейне сериясы](#бейне сериясы)
+- [Информатика курстары](#компьютер-ғылым-курстары)
+- [Қағаздар](#қағаз)
+### Qosımşa qosımşa taqırıptar men reswrstar
+
+- [Qosımşa kitaptar](#qosımşa kitaptar)
+- [Jüyeni jobalaw, masştabtaw, derekterdi öñdew](#jüye dïzaynı-masştabtaw-derekterdi öñdew) (4 jıldan astam täjirïbeñiz bolsa)
+- [Qosımşa oqıtw](#qosımşa-oqıtw)
+ - [Qurastırwşılar](#kompïlyatorlar)
+ - [Emacs jäne vi(m)](#emacs-and-vim)
+ - [Unix pärmen jolı quraldarı](#unix-komandalıq jol quraldarı)
+ - [Aqparat teorïyası](#aqparat-teorïya-beyneler)
+ - [Parïtet jäne Xammïng kodı](#parity--hamming-code-videos)
+ - [Éntropïya](#éntropïya)
+ - [Krïptografïya](#krïptografïya)
+ - [Sığw](#qısw)
+ - [Kompyuter qawipsizdigi](#kompyuter qawipsizdigi)
+ - [Qoqıs jïnaw](#qoqıs jïnaw)
+ - [Paralleldi bağdarlamalaw](#paralleldi bağdarlamalaw)
+ - [Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri](#xabarlama-serïyalandırw-jäne-kezektew-jüyeleri)
+ - [A*](#a)
+ - [Fast Furier Transform](#fast-fourier-transform)
+ - [Blwm süzgisi](#blwm-süzgisi)
+ - [HyperLogLog](#hyperloglog)
+ - [Jergilikti-sezimtal xéştew](#jergilikti-sezimtal-xéşïng)
+ - [van Émde Boas ağaştarı](#van-emde-boas-ağaştar)
+ - [Tolıqtırılğan derekter qurılımdarı](#augmented-data-structures)
+ - [Balanstalğan izdew ağaştarı](#balanstalğan izdew ağaştarı)
+ - AVL ağaştarı
+ - Ağaştar
+ - qızıl/qara ağaştar
+ - 2-3 izdew ağaştarı
+ - 2-3-4 ağaş (2-4 ağaş)
+ - N-arı (Q-arı, M-arı) ağaştarı
+ - V-ağaştar
+ - [k-D ağaştarı](#k-d-ağaştar)
+ - [Tizimderdi ötkizip jiberw](#ötkizw tizimderi)
+ - [Jeli ağındarı](#jeli ağındarı)
+ - [Ajıratılğan jïındar jäne odaqtardı tabw](#disjoint-jïnaqtar--odaq-tabw)
+ - [Jıldam öñdewge arnalğan matematïka](#jıldam öñdewge arnalğan matematïka)
+ - [Treap](#treap)
+ - [Sızıqtıq bağdarlamalaw](#linear-bağdarlamalaw-beyneler)
+ - [Geometrïya, döñes korpws](#geometrïya-döñes-korpws-beyneleri)
+ - [Dïskretti matematïka](#dïskretti-matematïka)
+- [Keybir taqırıptar boyınşa qosımşa mälimetter](keybir taqırıptar boyınşa #qosımşa-detal)
+- [Beyne serïyası](#beyne serïyası)
+- [Ïnformatïka kwrstarı](#kompyuter-ğılım-kwrstarı)
+- [Qağazdar](#qağaz)
+
+## Оны не үшін қолдану керек?
+
+Егер сіз ірі компанияда бағдарламалық жасақтама инженері болып жұмыс істегіңіз келсе, бұл сізге білу керек нәрселер.
+
+Егер сіз мен сияқты информатика бойынша ғылыми дәреже алуды жіберіп алсаңыз, бұл сізді қуып жетіп, өміріңіздің төрт жылын сақтайды.
+
+Мен бұл жобаны бастаған кезде, мен үйіндіден стекті білмедім, Big-O ештеңе білмедім, ағаштар туралы ештеңе білмедім немесе қалай істеу керектігін білмедім.
+графикті айналып өту. Егер мен сұрыптау алгоритмін кодтауым керек болса, бұл қорқынышты болар еді деп айта аламын.
+Мен пайдаланған әрбір деректер құрылымы тілге салынған және мен олардың қалай жұмыс істейтінін білмедім
+мүлде капюшонның астында. Мен іске қосып жатқан процесс «шығын» бермейінше, жадты ешқашан басқаруға тура келмеді
+жад» қатесі пайда болды, содан кейін уақытша шешім табуым керек еді. Мен өмірімде бірнеше көп өлшемді массивтерді қолдандым және
+мыңдаған ассоциативті массивтер, бірақ мен ешқашан деректер құрылымдарын нөлден жасаған емеспін.
+
+Бұл ұзақ жоспар. Бұл сізге айлар алуы мүмкін. Егер сіз мұның көп бөлігімен таныс болсаңыз, бұл сізге әлдеқайда аз уақыт алады.
+
+## Оны қалай пайдалануға болады
+
+Төмендегілердің бәрі контур, сондықтан элементтерді жоғарыдан төменге қарай ретімен шешу керек.
+
+Мен GitHub-тың арнайы белгілеу дәмін, соның ішінде орындалу барысын бақылау үшін тапсырмалар тізімдерін пайдаланамын.
+ - [GitHub-flavored markdown туралы толығырақ](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### Егер сіз git қолданбасын пайдаланғыңыз келмесе
+
+Бұл бетте жоғарғы жағындағы Код түймесін басыңыз, содан кейін «ZIP жүктеп алу» түймесін басыңыз. Файлды ашыңыз және мәтіндік файлдармен жұмыс істей аласыз.
+
+Белгілеуді түсінетін код өңдегішінде ашық болсаңыз, барлығы жақсы пішімделгенін көресіз.
+
+
+
+### Егер сіз gitпен ыңғайлы болсаңыз
+
+Мынадай элементтерді тексеру үшін жаңа тармақ жасаңыз, жақшаға x белгісін қойыңыз: [x]
+
+1. ***GitHub репосын ашыңыз:*** `https://github.com/jwasham/coding-interview-university` Fork түймесін басу арқылы.
+## Onı ne üşin qoldanw kerek?
+
+Eger siz iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolıp jumıs istegiñiz kelse, bul sizge bilw kerek närseler.
+
+Eger siz men sïyaqtı ïnformatïka boyınşa ğılımï däreje alwdı jiberip alsañız, bul sizdi qwıp jetip, ömiriñizdiñ tört jılın saqtaydı.
+
+Men bul jobanı bastağan kezde, men üyindiden stekti bilmedim, Big-O eşteñe bilmedim, ağaştar twralı eşteñe bilmedim nemese qalay istew kerektigin bilmedim.
+grafïkti aynalıp ötw. Eger men surıptaw algorïtmin kodtawım kerek bolsa, bul qorqınıştı bolar edi dep ayta alamın.
+Men paydalanğan ärbir derekter qurılımı tilge salınğan jäne men olardıñ qalay jumıs isteytinin bilmedim
+mülde kapyuşonnıñ astında. Men iske qosıp jatqan process «şığın» bermeyinşe, jadtı eşqaşan basqarwğa twra kelmedi
+jad» qatesi payda boldı, sodan keyin waqıtşa şeşim tabwım kerek edi. Men ömirimde birneşe köp ölşemdi massïvterdi qoldandım jäne
+mıñdağan assocïatïvti massïvter, biraq men eşqaşan derekter qurılımdarın nölden jasağan emespin.
+
+Bul uzaq jospar. Bul sizge aylar alwı mümkin. Eger siz munıñ köp böligimen tanıs bolsañız, bul sizge äldeqayda az waqıt aladı.
+
+## Onı qalay paydalanwğa boladı
+
+Tömendegilerdiñ bäri kontwr, sondıqtan élementterdi joğarıdan tömenge qaray retimen şeşw kerek.
+
+Men GitHub-tıñ arnayı belgilew dämin, sonıñ işinde orındalw barısın baqılaw üşin tapsırmalar tizimderin paydalanamın.
+ - [GitHub-flavored markdown twralı tolığıraq](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### Eger siz git qoldanbasın paydalanğıñız kelmese
+
+Bul bette joğarğı jağındağı Kod tüymesin basıñız, sodan keyin «ZIP jüktep alw» tüymesin basıñız. Fayldı aşıñız jäne mätindik fayldarmen jumıs istey alasız.
+
+Belgilewdi tüsinetin kod öñdegişinde aşıq bolsañız, barlığı jaqsı pişimdelgenin köresiz.
+
+
+
+### Eger siz gitpen ıñğaylı bolsañız
+
+Mınaday élementterdi tekserw üşin jaña tarmaq jasañız, jaqşağa x belgisin qoyıñız: [x]
+
+1. ***GitHub reposın aşıñız:*** `https://github.com/jwasham/coding-interview-university` Fork tüymesin basw arqılı.
+
+
+
+
+1. Жергілікті репоға клондау:
+
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ CD кодтау-сұхбат-университет
+ git checkout -b прогресс
+ git қашықтан jwasham қосу https://github.com/jwasham/coding-interview-university
+ git fetch --барлығы
+ ```
+
+1. Өзгерістерді аяқтағаннан кейін барлық ұяшықтарды X белгісімен белгілеңіз:
+
+ ```
+ git қосу.
+ git commit -m «X белгіленген»
+ git rebase jwasham/main
+ git push --set-upstream бастапқы прогресті
+ git push --force
+ ```
+
+## Өзіңді жеткілікті ақылды емес деп санама
+
+- Табысты бағдарламалық жасақтама инженерлері ақылды, бірақ олардың көпшілігі жеткілікті ақылды емес деген сенімсіздікке ие.
+- Келесі бейнелер осы сенімсіздікті жеңуге көмектесуі мүмкін:
+ - [Данышпан программист туралы миф](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [Жалғыз жүру қауіпті: технологиядағы көрінбейтін құбыжықтармен күресу](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+
+## Бейне ресурстар туралы ескертпе
+
+Кейбір бейнелер Coursera немесе EdX сыныбына тіркелу арқылы ғана қолжетімді. Бұлар MOOC деп аталады.
+Кейде сабақтар сессияда болмайды, сондықтан сізге бірнеше ай күтуге тура келеді, сондықтан сізде кіру мүмкіндігі болмайды.
+
+Онлайн курс ресурстарын тегін және әрқашан қолжетімді жалпыға қолжетімді көздермен алмастыру тамаша болар еді,
+мысалы, YouTube бейнелері (жақсырақ университет лекциялары), сондықтан сіз кез келген уақытта оларды оқи аласыз,
+белгілі бір онлайн курс сессияда болғанда ғана емес.
+
+## Бағдарламалау тілін таңдаңыз
+
+Сізге кодтау сұхбаттары үшін бағдарламалау тілін таңдау керек,
+бірақ сізге информатика ұғымдарын зерттеу үшін қолдануға болатын тілді табу қажет болады.
+
+Тіл бірдей болғаны дұрыс, сондықтан сізге тек біреуін білу керек.
+
+### Осы оқу жоспары үшін
+
+Мен оқу жоспарын жасаған кезде оның көп бөлігінде 2 тілді қолдандым: C және Python
+
+* C: Өте төмен деңгей. Көрсеткіштермен және жадты бөлу/бөлумен жұмыс істеуге мүмкіндік береді, осылайша деректер құрылымдарын сезінесіз
+ және сүйектеріңіздегі алгоритмдер. Python немесе Java сияқты жоғары деңгейлі тілдерде олар сізден жасырылады. Күнделікті жұмыста бұл керемет,
+ бірақ сіз осы төмен деңгейлі деректер құрылымдарының қалай салынғанын үйреніп жатқанда, металға жақын сезіну өте жақсы.
+ - C барлық жерде бар. Сіз оқу кезінде мысалдарды кітаптардан, лекциялардан, бейнелерден, *барлық жерде* көресіз.
+ - [The C бағдарламалау тілі, 2-том](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+
+
+1. Jergilikti repoğa klondaw:
+
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ CD kodtaw-suxbat-wnïversïtet
+ git checkout -b progress
+ git qaşıqtan jwasham qosw https://github.com/jwasham/coding-interview-university
+ git fetch --barlığı
+ ```
+
+1. Özgeristerdi ayaqtağannan keyin barlıq uyaşıqtardı X belgisimen belgileñiz:
+
+ ```
+ git qosw.
+ git commit -m «X belgilengen»
+ git rebase jwasham/main
+ git push --set-upstream bastapqı progresti
+ git push --force
+ ```
+
+## Öziñdi jetkilikti aqıldı emes dep sanama
+
+- Tabıstı bağdarlamalıq jasaqtama ïnjenerleri aqıldı, biraq olardıñ köpşiligi jetkilikti aqıldı emes degen senimsizdikke ïe.
+- Kelesi beyneler osı senimsizdikti jeñwge kömekteswi mümkin:
+ - [Danışpan programmïst twralı mïf](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [Jalğız jürw qawipti: texnologïyadağı körinbeytin qubıjıqtarmen küresw](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+
+## Beyne reswrstar twralı eskertpe
+
+Keybir beyneler Coursera nemese EdX sınıbına tirkelw arqılı ğana qoljetimdi. Bular MOOC dep ataladı.
+Keyde sabaqtar sessïyada bolmaydı, sondıqtan sizge birneşe ay kütwge twra keledi, sondıqtan sizde kirw mümkindigi bolmaydı.
+
+Onlayn kwrs reswrstarın tegin jäne ärqaşan qoljetimdi jalpığa qoljetimdi közdermen almastırw tamaşa bolar edi,
+mısalı, YouTube beyneleri (jaqsıraq wnïversïtet lekcïyaları), sondıqtan siz kez kelgen waqıtta olardı oqï alasız,
+belgili bir onlayn kwrs sessïyada bolğanda ğana emes.
+
+## Bağdarlamalaw tilin tañdañız
+
+Sizge kodtaw suxbattarı üşin bağdarlamalaw tilin tañdaw kerek,
+biraq sizge ïnformatïka uğımdarın zerttew üşin qoldanwğa bolatın tildi tabw qajet boladı.
+
+Til birdey bolğanı durıs, sondıqtan sizge tek birewin bilw kerek.
+
+### Osı oqw josparı üşin
+
+Men oqw josparın jasağan kezde onıñ köp böliginde 2 tildi qoldandım: C jäne Python
+
+* C: Öte tömen deñgey. Körsetkiştermen jäne jadtı bölw/bölwmen jumıs istewge mümkindik beredi, osılayşa derekter qurılımdarın sezinesiz
+ jäne süyekteriñizdegi algorïtmder. Python nemese Java sïyaqtı joğarı deñgeyli tilderde olar sizden jasırıladı. Kündelikti jumısta bul keremet,
+ biraq siz osı tömen deñgeyli derekter qurılımdarınıñ qalay salınğanın üyrenip jatqanda, metalğa jaqın sezinw öte jaqsı.
+ - C barlıq jerde bar. Siz oqw kezinde mısaldardı kitaptardan, lekcïyalardan, beynelerden, *barlıq jerde* köresiz.
+ - [The C bağdarlamalaw tili, 2-tom](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+
+ - Бұл қысқа кітап, бірақ ол сізге Си тілін жақсы меңгеруге мүмкіндік береді және егер сіз оны аздап үйренсеңіз
+ тез шеберлікке ие боласыз. Си түсіну бағдарламалар мен жадтың қалай жұмыс істейтінін түсінуге көмектеседі.
+ - Кітаптың тереңіне барудың (тіпті оны аяқтаудың) қажеті жоқ. Си тілінде оқуға және жазуға ыңғайлы жерге жетіңіз.
+ - [Кітаптағы сұрақтарға жауаптар](https://github.com/lekkas/c-algorithms)
+* Python: Заманауи және өте мәнерлі, мен оны білдім, себебі бұл өте пайдалы және сұхбатта азырақ код жазуға мүмкіндік береді.
+
+Бұл менің басымдылығым. Сіз өзіңізге ұнайтын нәрсені жасайсыз, әрине.
+
+Бұл сізге қажет болмауы мүмкін, бірақ жаңа тілді үйренуге арналған бірнеше сайттар:
+- [Жаттығу](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Код күштері](https://codeforces.com/)
+- [Scaler тақырыптары](https://www.scaler.com/topics/)
+
+### Кодтау сұхбаты үшін
+
+Сұхбаттың кодтау бөлігін орындау үшін өзіңізге ыңғайлы тілді пайдалануға болады, бірақ ірі компаниялар үшін бұл дұрыс таңдау:
+
+- C++
+- Java
+- Python
+
+Сіз оларды да пайдалана аласыз, бірақ алдымен оқып шығыңыз. Ескертулер болуы мүмкін:
+
+- JavaScript
+- Рубин
+
+Сұхбат үшін тілді таңдау туралы жазған мақалам:
+[Кодтау сұхбаты үшін бір тілді таңдаңыз](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+Бұл менің постыма негізделген түпнұсқа мақала: [Сұхбаттар үшін бағдарламалау тілін таңдау](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- жұмыс/)
+
+Сіз тілде өте ыңғайлы және білімді болуыңыз керек.
+- Bul qısqa kitap, biraq ol sizge Sï tilin jaqsı meñgerwge mümkindik beredi jäne eger siz onı azdap üyrenseñiz
+ tez şeberlikke ïe bolasız. Sï tüsinw bağdarlamalar men jadtıñ qalay jumıs isteytinin tüsinwge kömektesedi.
+ - Kitaptıñ tereñine barwdıñ (tipti onı ayaqtawdıñ) qajeti joq. Sï tilinde oqwğa jäne jazwğa ıñğaylı jerge jetiñiz.
+ - [Kitaptağı suraqtarğa jawaptar](https://github.com/lekkas/c-algorithms)
+* Python: Zamanawï jäne öte mänerli, men onı bildim, sebebi bul öte paydalı jäne suxbatta azıraq kod jazwğa mümkindik beredi.
+
+Bul meniñ basımdılığım. Siz öziñizge unaytın närseni jasaysız, ärïne.
+
+Bul sizge qajet bolmawı mümkin, biraq jaña tildi üyrenwge arnalğan birneşe sayttar:
+- [Jattığw](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Kod küşteri](https://codeforces.com/)
+- [Scaler taqırıptarı](https://www.scaler.com/topics/)
+
+### Kodtaw suxbatı üşin
+
+Suxbattıñ kodtaw böligin orındaw üşin öziñizge ıñğaylı tildi paydalanwğa boladı, biraq iri kompanïyalar üşin bul durıs tañdaw:
+
+- C++
+- Java
+- Python
+
+Siz olardı da paydalana alasız, biraq aldımen oqıp şığıñız. Eskertwler bolwı mümkin:
+
+- JavaScript
+- Rwbïn
+
+Suxbat üşin tildi tañdaw twralı jazğan maqalam:
+[Kodtaw suxbatı üşin bir tildi tañdañız](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+Bul meniñ postıma negizdelgen tüpnusqa maqala: [Suxbattar üşin bağdarlamalaw tilin tañdaw](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- jumıs/)
+
+Siz tilde öte ıñğaylı jäne bilimdi bolwıñız kerek.
+
+
+Таңдау туралы толығырақ оқыңыз:
+- [Кодтау сұхбаты үшін дұрыс тілді таңдаңыз](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[Тілге қатысты ресурстарды осы жерден қараңыз](programming-language-resources.md)
+
+## Деректер құрылымдары мен алгоритмдерге арналған кітаптар
+
+Бұл кітап сіздің информатика ғылымының негізін қалады.
+
+Сізге ыңғайлы тілде біреуін ғана таңдаңыз. Сіз көп оқумен және кодтаумен айналысатын боласыз.
+
+### C
+
+- [C тіліндегі алгоритмдер, 1-5 бөліктері (бума), 3-ші басылым](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Негіздер, деректер құрылымдары, сұрыптау, іздеу және графикалық алгоритмдер
+
+### Python
+
+- [Python тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - Гудрих, Тамассия, Голдвассер
+ - Маған бұл кітап ұнады. Ол барлығын және т.б. қамтыды.
+ - Питоникалық код
+ - менің жарқыраған кітабым туралы есеп: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### Java
+
+Сенің таңдауың:
+
+- Гудрих, Тамассия, Голдвассер
+ - [Java тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Седжвик пен Уэйн:
+ - [Алгоритмдер](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Кітапты қамтитын тегін Coursera курсы (авторлар үйретеді!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Алгоритмдер II](https://www.coursera.org/learn/algorithms-part2)
+
+### C++
+Tañdaw twralı tolığıraq oqıñız:
+- [Kodtaw suxbatı üşin durıs tildi tañdañız](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[Tilge qatıstı reswrstardı osı jerden qarañız](programming-language-resources.md)
+
+## Derekter qurılımdarı men algorïtmderge arnalğan kitaptar
+
+Bul kitap sizdiñ ïnformatïka ğılımınıñ negizin qaladı.
+
+Sizge ıñğaylı tilde birewin ğana tañdañız. Siz köp oqwmen jäne kodtawmen aynalısatın bolasız.
+
+### C
+
+- [C tilindegi algorïtmder, 1-5 bölikteri (bwma), 3-şi basılım](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Negizder, derekter qurılımdarı, surıptaw, izdew jäne grafïkalıq algorïtmder
+
+### Python
+
+- [Python tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - Gwdrïx, Tamassïya, Goldvasser
+ - Mağan bul kitap unadı. Ol barlığın jäne t.b. qamtıdı.
+ - Pïtonïkalıq kod
+ - meniñ jarqırağan kitabım twralı esep: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### Java
+
+Seniñ tañdawıñ:
+
+- Gwdrïx, Tamassïya, Goldvasser
+ - [Java tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedjvïk pen Wéyn:
+ - [Algorïtmder](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Kitaptı qamtïtın tegin Coursera kwrsı (avtorlar üyretedi!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorïtmder II](https://www.coursera.org/learn/algorithms-part2)
+
+### C++
+
+Сенің таңдауың:
+
+- Гудрих, Тамассия және тау
+ - [C++ тіліндегі деректер құрылымдары мен алгоритмдері, 2-ші басылым](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Седжвик пен Уэйн
+ - [C++ тіліндегі алгоритмдер, 1-4 бөлімдер: негіздері, деректер құрылымы, сұрыптау, іздеу](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - [C++ тіліндегі алгоритмдер 5-бөлім: Графикалық алгоритмдер](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
+
+## Сұхбатқа дайындық кітаптары
+
+Сізге бұлардың жиынтығын сатып алудың қажеті жоқ. Шынымды айтсам, «кодтау сұхбатын бұзу» жеткілікті шығар,
+бірақ мен өзіме көбірек тәжірибе беру үшін көбірек сатып алдым. Бірақ мен әрқашан тым көп істеймін.
+
+Мен бұл екеуін де сатып алдым. Олар маған көп тәжірибе берді.
+
+- [Ашық болған сұхбаттарды бағдарламалау: сұхбат арқылы жолыңызды кодтау, 4-ші басылым](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - C++ және Java тілінде жауаптар
+ - Бұл кодтау сұхбатын бұзу үшін жақсы қыздыру
+ - Өте қиын емес. Көптеген мәселелер сұхбатта көретіннен оңай болуы мүмкін (мен оқығанымнан)
+- [Кодтау сұхбатын бұзу, 6-шы басылым](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Java тілінде жауаптар
+
+### Егер сізде қосымша уақыт болса:
+
+Біреуін таңдаңыз:
+
+- [Бағдарламалау сұхбаттарының элементтері (C++ нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Python тіліндегі сұхбаттарды бағдарламалау элементтері](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [Бағдарламалау сұхбаттарының элементтері (Java нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+Seniñ tañdawıñ:
+
+- Gwdrïx, Tamassïya jäne taw
+ - [C++ tilindegi derekter qurılımdarı men algorïtmderi, 2-şi basılım](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedjvïk pen Wéyn
+ - [C++ tilindegi algorïtmder, 1-4 bölimder: negizderi, derekter qurılımı, surıptaw, izdew](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - [C++ tilindegi algorïtmder 5-bölim: Grafïkalıq algorïtmder](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
+
+## Suxbatqa dayındıq kitaptarı
+
+Sizge bulardıñ jïıntığın satıp alwdıñ qajeti joq. Şınımdı aytsam, «kodtaw suxbatın buzw» jetkilikti şığar,
+biraq men özime köbirek täjirïbe berw üşin köbirek satıp aldım. Biraq men ärqaşan tım köp isteymin.
+
+Men bul ekewin de satıp aldım. Olar mağan köp täjirïbe berdi.
+
+- [Aşıq bolğan suxbattardı bağdarlamalaw: suxbat arqılı jolıñızdı kodtaw, 4-şi basılım](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - C++ jäne Java tilinde jawaptar
+ - Bul kodtaw suxbatın buzw üşin jaqsı qızdırw
+ - Öte qïın emes. Köptegen mäseleler suxbatta köretinnen oñay bolwı mümkin (men oqığanımnan)
+- [Kodtaw suxbatın buzw, 6-şı basılım](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Java tilinde jawaptar
+
+### Eger sizde qosımşa waqıt bolsa:
+
+Birewin tañdañız:
+
+- [Bağdarlamalaw suxbattarınıñ élementteri (C++ nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Python tilindegi suxbattardı bağdarlamalaw élementteri](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [Bağdarlamalaw suxbattarınıñ élementteri (Java nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+
+- [Компаньон жобасы - Кітаптағы әрбір мәселеге арналған әдістемелер мен сынақ жағдайлары](https://github.com/gardncl/elements-of-programming-interviews)
+
+## Менің қателіктерімді жасама
+
+Бұл тізім бірнеше ай бойы өсті және иә, ол бақылаудан шықты.
+
+Сізге жақсырақ тәжірибе алу үшін мен бірнеше қателіктер жібердім. Ал сіз айлар уақытыңызды үнемдейсіз.
+
+### 1. Сіз мұның бәрін есте сақтамайсыз
+
+Мен бірнеше сағат бейнелерді көрдім және көптеген жазбалар алдым, ал бірнеше ай өткен соң есімде жоқ көп нәрсе болды. Мен 3 күн жүрдім
+Жазбаларым арқылы және флешкарталар жасау арқылы, мен қарап шығу үшін. Маған бұл білімнің бәрі қажет емес еді.
+
+Менің қателіктерімді жібермеу үшін оқыңыз:
+
+[Информатика білімін сақтау](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+
+### 2. Flashcards пайдаланыңыз
+
+Мәселені шешу үшін мен шағын флэшкарталар сайтын жасадым, онда мен 2 түрдегі флэшкарталарды қоса аламын: жалпы және код.
+Әр картаның пішімі әртүрлі. Мен қай жерде болсам да, телефонда немесе планшетте қарап шығу үшін мобильді веб-сайт жасадым.
+
+Өзіңізді тегін жасаңыз:
+
+- [Flashcards сайтының репосы](https://github.com/jwasham/computer-science-flash-cards)
+
+**Флешкарталарымды пайдалануды ұсынбаймын.** Олардың саны тым көп және олардың көпшілігі сізге қажет емес ұсақ-түйектер.
+
+Бірақ мені тыңдағың келмесе, мынаны айтасың:
+- [Менің флэш карталарымның дерекқорым (1200 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Менің флэш карталарымның дерекқорым (экстремалды - 1800 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+- [Kompanon jobası - Kitaptağı ärbir mäselege arnalğan ädistemeler men sınaq jağdayları](https://github.com/gardncl/elements-of-programming-interviews)
+
+## Meniñ qatelikterimdi jasama
+
+Bul tizim birneşe ay boyı östi jäne ïä, ol baqılawdan şıqtı.
+
+Sizge jaqsıraq täjirïbe alw üşin men birneşe qatelikter jiberdim. Al siz aylar waqıtıñızdı ünemdeysiz.
+
+### 1. Siz munıñ bärin este saqtamaysız
+
+Men birneşe sağat beynelerdi kördim jäne köptegen jazbalar aldım, al birneşe ay ötken soñ esimde joq köp närse boldı. Men 3 kün jürdim
+Jazbalarım arqılı jäne fleşkartalar jasaw arqılı, men qarap şığw üşin. Mağan bul bilimniñ bäri qajet emes edi.
+
+Meniñ qatelikterimdi jibermew üşin oqıñız:
+
+[Ïnformatïka bilimin saqtaw](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+
+### 2. Flashcards paydalanıñız
+
+Mäseleni şeşw üşin men şağın fléşkartalar saytın jasadım, onda men 2 türdegi fléşkartalardı qosa alamın: jalpı jäne kod.
+Är kartanıñ pişimi ärtürli. Men qay jerde bolsam da, telefonda nemese planşette qarap şığw üşin mobïldi veb-sayt jasadım.
+
+Öziñizdi tegin jasañız:
+
+- [Flashcards saytınıñ reposı](https://github.com/jwasham/computer-science-flash-cards)
+
+**Fleşkartalarımdı paydalanwdı usınbaymın.** Olardıñ sanı tım köp jäne olardıñ köpşiligi sizge qajet emes usaq-tüyekter.
+
+Biraq meni tıñdağıñ kelmese, mınanı aytasıñ:
+- [Meniñ fléş kartalarımnıñ derekqorım (1200 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Meniñ fléş kartalarımnıñ derekqorım (ékstremaldı - 1800 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+Есіңізде болсын, мен шектен шығып кеттім және ассемблер тілі мен Python тривиасынан бастап машиналық оқыту мен статистикаға дейін барлығын қамтитын карталарым бар.
+Бұл талап етілетін нәрсе үшін тым көп.
+
+**Флешкарталар туралы ескертпе:** Жауапты білетіндігіңізді бірінші рет танысаңыз, оны белгілі деп белгілемеңіз. Сіз көруіңіз керек
+сол картаны және оны шынымен білмей тұрып, оған бірнеше рет дұрыс жауап беріңіз. Қайталау бұл білімді тереңдетеді
+сіздің миыңыз.
+
+Менің флэшкарта сайтымды пайдаланудың баламасы [Anki](http://ankisrs.net/), ол маған бірнеше рет ұсынылды.
+Ол есте сақтауға көмектесу үшін қайталау жүйесін пайдаланады. Бұл пайдаланушыға ыңғайлы, барлық платформаларда қол жетімді және бұлтты синхрондау жүйесі бар.
+Оның құны iOS жүйесінде $25, бірақ басқа платформаларда тегін.
+
+Anki пішіміндегі флэшкарта дерекқорым: https://ankiweb.net/shared/info/25173560 (рахмет [@xiewenya](https://github.com/xiewenya)).
+
+Кейбір студенттер бос орынмен пішімдеу мәселелерін атап өтті, оларды келесі әрекеттерді орындау арқылы шешуге болады: палубаны ашу, картаны өңдеу, карталарды басу, «стильдеу» радио түймешігін таңдау, «ақ кеңістік: pre;» мүшесін қосу. карта класына.
+
+### 3. Оқу барысында сұхбат сұрақтарын кодтаңыз
+
+БҰЛ ӨТЕ МАҢЫЗДЫ.
+
+Деректер құрылымдары мен алгоритмдерін үйрену кезінде сұхбат сұрақтарын кодтауды бастаңыз.
+
+Сіз үйреніп жатқан нәрсені мәселелерді шешуге қолдануыңыз керек, әйтпесе ұмытып кетесіз. Мен бұл қателік жасадым.
+
+Тақырыпты біліп болғаннан кейін және онымен өзіңізді біршама ыңғайлы сезінесіз, мысалы, **байланысты тізімдер**:
+1. [кодтау сұхбат кітаптарының] (#interview-prep-books) бірін ашыңыз (немесе төменде берілген кодтау мәселесіне арналған веб-сайттар)
+1. Байланыстырылған тізімдерге қатысты 2 немесе 3 сұрақ қойыңыз.
+1. Келесі оқу тақырыбына көшу.
+1. Кейінірек кері оралып, басқа 2 немесе 3 байланыстырылған тізім мәселесін орындаңыз.
+1. Мұны әрбір жаңа тақырыпты үйренген сайын орындаңыз.
+
+**Мәселелерді кейін емес, осының бәрін үйреніп жатқанда жасай беріңіз.**
+
+Сіз білім үшін емес, білімді қалай қолданасыз.
+
+Бұл үшін төменде келтірілген көптеген ресурстар бар. Жалғастыру.
+
+### 4. Фокус
+
+Қымбат уақытты алатын көптеген алаңдаушылықтар бар. Фокус пен шоғырлану қиын. Музыканы қосыңыз
+мәтінсіз және сіз өте жақсы назар аудара аласыз.
+
+## Нені көрмейсіз
+
+Бұл кең таралған технологиялар, бірақ осы зерттеу жоспарының бөлігі емес:
+
+- SQL
+- Javascript
+- HTML, CSS және басқа интерфейстік технологиялар
+
+## Күнделікті жоспар
+
+Бұл курс көптеген тақырыптарды қамтиды. Олардың әрқайсысы сізге бірнеше күн немесе тіпті бір апта немесе одан да көп уақытты алады. Бұл сіздің кестеңізге байланысты.
+
+Күн сайын тізімдегі келесі тақырыпты алыңыз, сол тақырып бойынша бірнеше бейнелерді қараңыз, содан кейін іске асыруды жазыңыз
+осы курс үшін таңдаған тілдегі деректер құрылымы немесе алгоритм.
+Esiñizde bolsın, men şekten şığıp kettim jäne assembler tili men Python trïvïasınan bastap maşïnalıq oqıtw men statïstïkağa deyin barlığın qamtïtın kartalarım bar.
+Bul talap etiletin närse üşin tım köp.
+
+**Fleşkartalar twralı eskertpe:** Jawaptı biletindigiñizdi birinşi ret tanısañız, onı belgili dep belgilemeñiz. Siz körwiñiz kerek
+sol kartanı jäne onı şınımen bilmey turıp, oğan birneşe ret durıs jawap beriñiz. Qaytalaw bul bilimdi tereñdetedi
+sizdiñ mïıñız.
+
+Meniñ fléşkarta saytımdı paydalanwdıñ balaması [Anki](http://ankisrs.net/), ol mağan birneşe ret usınıldı.
+Ol este saqtawğa kömektesw üşin qaytalaw jüyesin paydalanadı. Bul paydalanwşığa ıñğaylı, barlıq platformalarda qol jetimdi jäne bulttı sïnxrondaw jüyesi bar.
+Onıñ qunı iOS jüyesinde $25, biraq basqa platformalarda tegin.
+
+Anki pişimindegi fléşkarta derekqorım: https://ankiweb.net/shared/info/25173560 (raxmet [@xiewenya](https://github.com/xiewenya)).
+
+Keybir stwdentter bos orınmen pişimdew mäselelerin atap ötti, olardı kelesi äreketterdi orındaw arqılı şeşwge boladı: palwbanı aşw, kartanı öñdew, kartalardı basw, «stïldew» radïo tüymeşigin tañdaw, «aq keñistik: pre;» müşesin qosw. karta klasına.
+
+### 3. Oqw barısında suxbat suraqtarın kodtañız
+
+BUL ÖTE MAÑIZDI.
+
+Derekter qurılımdarı men algorïtmderin üyrenw kezinde suxbat suraqtarın kodtawdı bastañız.
+
+Siz üyrenip jatqan närseni mäselelerdi şeşwge qoldanwıñız kerek, äytpese umıtıp ketesiz. Men bul qatelik jasadım.
+
+Taqırıptı bilip bolğannan keyin jäne onımen öziñizdi birşama ıñğaylı sezinesiz, mısalı, **baylanıstı tizimder**:
+1. [kodtaw suxbat kitaptarınıñ] (#interview-prep-books) birin aşıñız (nemese tömende berilgen kodtaw mäselesine arnalğan veb-sayttar)
+1. Baylanıstırılğan tizimderge qatıstı 2 nemese 3 suraq qoyıñız.
+1. Kelesi oqw taqırıbına köşw.
+1. Keyinirek keri oralıp, basqa 2 nemese 3 baylanıstırılğan tizim mäselesin orındañız.
+1. Munı ärbir jaña taqırıptı üyrengen sayın orındañız.
+
+**Mäselelerdi keyin emes, osınıñ bärin üyrenip jatqanda jasay beriñiz.**
+
+Siz bilim üşin emes, bilimdi qalay qoldanasız.
+
+Bul üşin tömende keltirilgen köptegen reswrstar bar. Jalğastırw.
+
+### 4. Fokws
+
+Qımbat waqıttı alatın köptegen alañdawşılıqtar bar. Fokws pen şoğırlanw qïın. Mwzıkanı qosıñız
+mätinsiz jäne siz öte jaqsı nazar awdara alasız.
+
+## Neni körmeysiz
+
+Bul keñ taralğan texnologïyalar, biraq osı zerttew josparınıñ böligi emes:
+
+- SQL
+- Javascript
+- HTML, CSS jäne basqa ïnterfeystik texnologïyalar
+
+## Kündelikti jospar
+
+Bul kwrs köptegen taqırıptardı qamtïdı. Olardıñ ärqaysısı sizge birneşe kün nemese tipti bir apta nemese odan da köp waqıttı aladı. Bul sizdiñ kesteñizge baylanıstı.
+
+Kün sayın tizimdegi kelesi taqırıptı alıñız, sol taqırıp boyınşa birneşe beynelerdi qarañız, sodan keyin iske asırwdı jazıñız
+osı kwrs üşin tañdağan tildegi derekter qurılımı nemese algorïtm.
+
+- ### Хэш кестесі
+ - [ ] Бейнелер:
+ - [ ] [Тізбекпен хэштеу (бейне)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Кестені еселеу, Карп-Рабин (бейне)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Ашық адрестеу, криптографиялық хэштеу (бейне)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: Құдіретті сөздік (бейне)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (бейне)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Жетілдірілген) рандомизация: әмбебап және тамаша хэштеу (бейне)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Жетілдірілген) Керемет хэштеу (бейне)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Онлайн курстар:
+ - [ ] [Негізгі хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Дерек құрылымдары (бейне)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Телефон кітапшасының мәселесі (бейне)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] таратылған хэш кестелері:
+ - [Dropbox жүйесінде жылдам жүктеп салулар және жадты оңтайландыру (бейне)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Таратылған хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Сызықтық зондтау арқылы массивпен орындаңыз
+ - хэш(k, m) - m хэш кестесінің өлшемі
+ - қосу(кілт, мән) - кілт бұрыннан бар болса, мәнді жаңартыңыз
+ - бар (кілт)
+ - алу (кілт)
+ - жою (кілт)
+- ### Xéş kestesi
+ - [ ] Beyneler:
+ - [ ] [Tizbekpen xéştew (beyne)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Kesteni eselew, Karp-Rabïn (beyne)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Aşıq adrestew, krïptografïyalıq xéştew (beyne)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: Qudiretti sözdik (beyne)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (beyne)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Jetildirilgen) randomïzacïya: ämbebap jäne tamaşa xéştew (beyne)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Jetildirilgen) Keremet xéştew (beyne)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Onlayn kwrstar:
+ - [ ] [Negizgi xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Derek qurılımdarı (beyne)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Telefon kitapşasınıñ mäselesi (beyne)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] taratılğan xéş kesteleri:
+ - [Dropbox jüyesinde jıldam jüktep salwlar jäne jadtı oñtaylandırw (beyne)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Taratılğan xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Sızıqtıq zondtaw arqılı massïvpen orındañız
+ - xéş(k, m) - m xéş kestesiniñ ölşemi
+ - qosw(kilt, män) - kilt burınnan bar bolsa, mändi jañartıñız
+ - bar (kilt)
+ - alw (kilt)
+ - joyu (kilt)
+
+- ### Хабар алмасу, сериялау және кезекке қою жүйелері
+ - [Үнемдеу](https://thrift.apache.org/)
+ - [Оқулық](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Протокол буферлері](https://developers.google.com/protocol-buffers/)
+ - [Оқулықтар](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [Java әзірлеушілеріне арналған gRPC 101 (бейне)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Оқулық](http://try.redis.io/)
+ - [Amazon SQS (кезек)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Бастау](https://www.rabbitmq.com/getstarted.html)
+ - [Сельдерей](http://www.celeryproject.org/)
+ - [Сельдереймен алғашқы қадамдар](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Кіріспе - Нұсқаулықты оқу](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Кафка](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### A*
+ - [Іздеу алгоритмі](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Жолды табу (E01: алгоритмді түсіндіру) (бейне)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Жылдам Фурье түрлендіруі
+ - [Фурье түрлендіруіне арналған интерактивті нұсқаулық](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [Фурье түрлендіруі дегеніміз не? Ол не үшін қолданылады?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [Фурье түрлендіруі дегеніміз не? (бейне)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Бөліңіз және жеңіңіз: FFT (бейне)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [ФФТ-ны түсіну](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Блум сүзгісі
+ - m бит және k хэштеу функциялары бар Блум сүзгісін ескере отырып, кірістіру және мүшелік сынағы O(k) болып табылады.
+ - [Блум сүзгілері (бейне)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Блум сүзгілері | Жаппай деректер жиынын өндіру | Стэнфорд университеті (бейне)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Оқулық](http://billmill.org/bloomfilter-tutorial/)
+ - [Блум сүзгісі қолданбасын қалай жазуға болады](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+- ### Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri
+ - [Ünemdew](https://thrift.apache.org/)
+ - [Oqwlıq](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Protokol bwferleri](https://developers.google.com/protocol-buffers/)
+ - [Oqwlıqtar](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [Java äzirlewşilerine arnalğan gRPC 101 (beyne)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Oqwlıq](http://try.redis.io/)
+ - [Amazon SQS (kezek)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Bastaw](https://www.rabbitmq.com/getstarted.html)
+ - [Selderey](http://www.celeryproject.org/)
+ - [Seldereymen alğaşqı qadamdar](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Kirispe - Nusqawlıqtı oqw](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### A*
+ - [Izdew algorïtmi](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Joldı tabw (E01: algorïtmdi tüsindirw) (beyne)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Jıldam Fwre türlendirwi
+ - [Fwre türlendirwine arnalğan ïnteraktïvti nusqawlıq](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [Fwre türlendirwi degenimiz ne? Ol ne üşin qoldanıladı?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [Fwre türlendirwi degenimiz ne? (beyne)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Böliñiz jäne jeñiñiz: FFT (beyne)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [FFT-nı tüsinw](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Blwm süzgisi
+ - m bït jäne k xéştew fwnkcïyaları bar Blwm süzgisin eskere otırıp, kiristirw jäne müşelik sınağı O(k) bolıp tabıladı.
+ - [Blwm süzgileri (beyne)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Blwm süzgileri | Jappay derekter jïının öndirw | Sténford wnïversïteti (beyne)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Oqwlıq](http://billmill.org/bloomfilter-tutorial/)
+ - [Blwm süzgisi qoldanbasın qalay jazwğa boladı](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+
+- [Сарада Херкенің графикалық теориясы (67 бейне)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## Информатика курстары
+
+- [Онлайн CS курстары каталогы](https://github.com/open-source-society/computer-science)
+- [CS курстарының каталогы (көптеген онлайн дәрістер бар)](https://github.com/prakhar1989/awesome-courses)
+
+## Алгоритмдерді енгізу
+
+- [Принстон университетінің бірнеше алгоритмдерді енгізуі](https://algs4.cs.princeton.edu/code)
+
+
+## Қағаздар
+
+- [Классикалық қағаздарды ұнатасыз ба?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Тізбекті процестермен байланысу](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Go жүйесінде жүзеге асырылды](https://godoc.org/github.com/thomas11/csp)
+- [2003: Google файлдық жүйесі](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 жылы Колосспен ауыстырылды
+- [2004: MapReduce: Үлкен кластерлерде оңайлатылған деректерді өңдеу]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - негізінен Cloud Dataflow ауыстырылды ма?
+- [2006: Bigtable: құрылымдық деректерге арналған таратылған сақтау жүйесі](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: Біріктірілген таратылған жүйелерге арналған Chubby Lock қызметі](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Динамо: Amazon-ның жоғары қолжетімді кілттер дүкені](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Динамо қағазы NoSQL революциясын бастады
+- [2007: Әрбір бағдарламашы жад туралы не білуі керек (өте ұзақ және автор кейбір бөлімдерді өткізіп жіберуді ұсынады)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: жылдам мекенжай санитарлық тексерушісі:
+ - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [бейне](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google-дың ғаламдық таралған дерекқоры:
+ - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [бейне](https://www.usenix.org/node/170855)
+- [2015: Google-дағы үздіксіз құбырлар](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: Жаппай ауқымда жоғары қолжетімділік: Google-дың жарнамалар үшін деректер инфрақұрылымын құру](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Әзірлеушілер кодты қалай іздейді: жағдайды зерттеу](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- Қосымша қағаздар: [1000 қағаз](https://github.com/0voice/computer_expert_paper)
+
+## ЛИЦЕНЗИЯ
+
+[CC-BY-SA-4.0](./LICENSE.txt)
+- [Sarada Xerkeniñ grafïkalıq teorïyası (67 beyne)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## Ïnformatïka kwrstarı
+
+- [Onlayn CS kwrstarı katalogı](https://github.com/open-source-society/computer-science)
+- [CS kwrstarınıñ katalogı (köptegen onlayn därister bar)](https://github.com/prakhar1989/awesome-courses)
+
+## Algorïtmderdi engizw
+
+- [Prïnston wnïversïtetiniñ birneşe algorïtmderdi engizwi](https://algs4.cs.princeton.edu/code)
+
+
+## Qağazdar
+
+- [Klassïkalıq qağazdardı unatasız ba?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Tizbekti procestermen baylanısw](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Go jüyesinde jüzege asırıldı](https://godoc.org/github.com/thomas11/csp)
+- [2003: Google fayldıq jüyesi](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 jılı Kolosspen awıstırıldı
+- [2004: MapReduce: Ülken klasterlerde oñaylatılğan derekterdi öñdew]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - negizinen Cloud Dataflow awıstırıldı ma?
+- [2006: Bigtable: qurılımdıq derekterge arnalğan taratılğan saqtaw jüyesi](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: Biriktirilgen taratılğan jüyelerge arnalğan Chubby Lock qızmeti](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dïnamo: Amazon-nıñ joğarı qoljetimdi kiltter dükeni](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Dïnamo qağazı NoSQL revolyucïyasın bastadı
+- [2007: Ärbir bağdarlamaşı jad twralı ne bilwi kerek (öte uzaq jäne avtor keybir bölimderdi ötkizip jiberwdi usınadı)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: jıldam mekenjay sanïtarlıq tekserwşisi:
+ - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [beyne](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google-dıñ ğalamdıq taralğan derekqorı:
+ - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [beyne](https://www.usenix.org/node/170855)
+- [2015: Google-dağı üzdiksiz qubırlar](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: Jappay awqımda joğarı qoljetimdilik: Google-dıñ jarnamalar üşin derekter ïnfraqurılımın qurw](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Äzirlewşiler kodtı qalay izdeydi: jağdaydı zerttew](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- Qosımşa qağazdar: [1000 qağaz](https://github.com/0voice/computer_expert_paper)
+
+## LÏCENZÏYa
+
+[CC-BY-SA-4.0](./LICENSE.txt)
From 1c6b6d9eda56b45d192091119ae3491e10410395 Mon Sep 17 00:00:00 2001
From: name
Date: Tue, 18 Oct 2022 09:04:11 -0700
Subject: [PATCH 008/173] dutch-translation
---
README_DUTCH.md | 1907 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1907 insertions(+)
create mode 100644 README_DUTCH.md
diff --git a/README_DUTCH.md b/README_DUTCH.md
new file mode 100644
index 0000000000..5b07b61f7e
--- /dev/null
+++ b/README_DUTCH.md
@@ -0,0 +1,1907 @@
+# Codering Interview Universiteit
+
+> Ik heb dit oorspronkelijk gemaakt als een korte takenlijst met studieonderwerpen om een software-ingenieur te worden,
+> maar het groeide uit tot de grote lijst die je vandaag ziet. Nadat ik dit studieplan had doorlopen, [werd ik aangenomen
+> als Software Development Engineer bij Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Je hoeft waarschijnlijk niet zo veel te studeren als ik. Hoe dan ook, alles wat je nodig hebt is hier.
+>
+> Ik studeerde ongeveer 8-12 uur per dag, gedurende enkele maanden. Dit is mijn verhaal: [Waarom ik 8 maanden fulltime heb gestudeerd voor een Google-interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
+>
+> **Let op:** Je hoeft niet zoveel te studeren als ik. Ik verspilde veel tijd aan dingen die ik niet hoefde te weten. Hieronder meer info daarover. Ik help je daar te komen zonder je kostbare tijd te verspillen.
+>
+> De items die hier worden vermeld, zullen je goed voorbereiden op een technisch interview bij zowat elk softwarebedrijf,
+> inclusief de reuzen: Amazon, Facebook, Google en Microsoft.
+>
+> *Veel succes voor jou!*
+
+
+Vertalingen:
+
+- [中文版本](vertalingen/README-cn.md)
+- [Tiếng Việt - Vietnamees](translations/README-vi.md)
+- [Español](vertalingen/README-es.md)
+- [Português Brasileiro](vertalingen/README-ptbr.md)
+- [Pools](vertalingen/README-pl.md)
+- [繁體中文](vertalingen/README-tw.md)
+- [Japans (日本語)](vertalingen/README-ja.md)
+- [Russisch](vertalingen/README-ru.md)
+- [Duits](vertalingen/README-de.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [ខ្មែរ - Khmer](vertalingen/README-kh.md)
+- [Oezbeeks](vertalingen/README-uz.md)
+- [Bulgaars](vertalingen/README-bg.md)
+- [বাংলা - Bangla](vertalingen/README-bn.md)
+
+
+
+
+Bezig met vertalingen:
+
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Arabisch](https://github.com/jwasham/coding-interview-university/issues/98)
+- [Turks](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Frans](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Koreaans(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
+- [Thais](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Grieks](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Perzisch - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+
+
+
+
+
+## Wat is het?
+
+
+
+Dit is mijn meermaandelijkse studieplan om software-engineer te worden voor een groot bedrijf.
+
+**Verplicht:**
+* Een beetje ervaring met coderen (variabelen, loops, methoden/functies, enz.)
+* Geduld
+* Tijd
+
+Let op: dit is een studieplan voor **software-engineering**, niet voor webontwikkeling. Grote softwarebedrijven zoals Google, Amazon,
+Facebook en Microsoft zien software-engineering als iets anders dan webontwikkeling. Amazon heeft bijvoorbeeld:
+Frontend Engineers (FEE) en Software Development Engineers (SDE). Dit zijn 2 aparte rollen en de interviews voor
+ze zullen niet hetzelfde zijn, omdat ze elk hun eigen competenties hebben. Deze bedrijven hebben informaticakennis nodig voor:
+softwareontwikkeling / engineering rollen.
+
+---
+
+## Inhoudsopgave
+
+### Het studieplan
+
+- [Wat is het?](#wat-is
+
+-het)
+- [Waarom het gebruiken?](#why-use-it)
+- [Hoe het te gebruiken](#hoe-te-gebruiken)
+- [Heb niet het gevoel dat je niet slim genoeg bent](#dont-feel-you-aret-snot-slim-genoeg)
+- [Een opmerking over videobronnen](#a-note-about-video-resources)
+- [Kies een programmeertaal](#kies-een-programmeertaal)
+- [Boeken voor gegevensstructuren en algoritmen](#boeken-voor-gegevensstructuren-en-algoritmen)
+- [Interview Prep Books](#interview-prep-books)
+- [Maak mijn fouten niet](#maak mijn fouten niet)
+- [Wat u niet zult zien gedekt](#wat-u-niet-gedekt)
+- [Het dagelijkse plan](#het-dagplan)
+- [Codering Question Practice] (#coding-question-practice)
+- [Codeerproblemen](#coderingsproblemen)
+
+### Onderwerpen van studie
+
+- [Algoritmische complexiteit / Big-O / Asymptotische analyse](#algoritmische complexiteit--big-o--asymptotische-analyse)
+- [Datastructuren](#datastructuren)
+ - [Arrays](#arrays)
+ - [Gelinkte lijsten](#linked-lijsten)
+ - [Stapel](#stapel)
+ - [Wachtrij](#wachtrij)
+ - [Hash-tabel](#hash-tabel)
+- [Meer kennis](#meer-kennis)
+ - [Binair zoeken](#binair zoeken)
+ - [Bitwise-bewerkingen](#bitsgewijze-bewerkingen)
+- [Bomen](#bomen)
+ - [Bomen - Notities & Achtergrond](#bomen---notes--achtergrond)
+ - [Binaire zoekbomen: BST's](#binaire-zoekbomen-bsts)
+ - [Heap / Priority Queue / Binary Heap] (#heap--priority-queue--binary-heap)
+ - evenwichtige zoekbomen (algemeen concept, geen details)
+ - traversals: preorder, inorder, postorder, BFS, DFS
+- [Sorteren](#sorteren)
+ - selectie
+ - invoeging
+ - hoopje
+ - Snel sorteren
+ - sorteer samenvoegen
+- [Grafieken](#grafieken)
+ - geregisseerd
+ - ongericht
+ - aangrenzende matrix
+ - aangrenzende lijst
+ - traversals: BFS, DFS
+- [Nog meer kennis](#even-meer-kennis)
+ - [Recursie](#recursie)
+ - [Dynamisch programmeren](#dynamisch programmeren)
+ - [Ontwerppatronen](#ontwerppatronen)
+ - [Combinatoriek (n kies k) & Waarschijnlijkheid](#combinatoriek-n-kies-k--kans)
+ - [NP, NP-compleet en benaderingsalgoritmen](#np-np-complete-en-benadering-algoritmen)
+ - [Hoe computers een programma verwerken](#hoe-computers-een-programma verwerken)
+ - [Caches](#caches)
+ - [Processen en threads](#processes-and-threads)
+ - [Testen](#testen)
+ - [String zoeken & manipulaties](#string-zoeken--manipulaties)
+ - [Probeert](#pogingen)
+ - [Drijvende-kommagetallen](#zwevende-kommagetallen)
+ - [Unicode](#unicode)
+ - [Endianness](#endianness)
+ - [Netwerken](#netwerken)
+- [Eindbeoordeling](#laatste beoordeling)
+
+### De baan krijgen
+
+- [Update uw cv](#update-uw-cv)
+- [Vind een baan](#zoek een baan)
+- [Interviewproces en algemene interviewvoorbereiding](#interview-proces--general-interview-prep)
+- [Denk aan voor wanneer het interview komt](#be-denk-aan-voor-wanneer-het-interview-komt)
+- [Heeft vragen voor de interviewer](#have-questions-for-the-interviewer)
+- [Zodra je de baan hebt](#once-you-ve-got-the-job)
+
+**---------------- Alles onder dit punt is optioneel ----------------**
+
+### Optionele extra onderwerpen en bronnen
+
+- [Extra boeken](#additional-books)
+- [Systeemontwerp, schaalbaarheid, gegevensverwerking](#system-design-scalability-data-handling) (als je meer dan 4 jaar ervaring hebt)
+- [Aanvullend leren](#aanvullend leren)
+ - [Compilers](#compilers)
+ - [Emacs en vi(m)](#emacs-en-vim)
+ - [Unix-opdrachtregeltools](#unix-command-line-tools)
+ - [Informatietheorie](#informatietheorie-video's)
+ - [Pariteits- en Hamming-code] (#pariteit--hamming-code-video's)
+ - [Entropie](#entropie)
+ - [Cryptografie](#cryptografie)
+ - [Compressie](#compressie)
+ - [Computerbeveiliging](#computerbeveiliging)
+ - [Vuilnisophaling](#vuilnisophaling)
+ - [Parallel programmeren](#parallel programmeren)
+ - [Messaging-, serialisatie- en wachtrijsystemen](#messaging-serialisatie-en-wachtrij-systemen)
+ - [A*](#a)
+ - [Fast Fourier Transform](#fast-fourier-transform)
+ - [Bloom Filter](#bloom-filter)
+ - [HyperLogLog](#hyperloglog)
+ - [Lokaliteitsgevoelige hashing](#lokaliteitsgevoelige-hashing)
+ - [van Emde Boas-bomen](#van-emde-boas-bomen)
+ - [Augmented Data Structures](#augmented-data-structures)
+ - [Gebalanceerde zoekbomen](#balanced-zoekbomen)
+ - AVL-bomen
+ - Spreid bomen
+ - Rood/zwarte bomen
+ - 2-3 zoekbomen
+ - 2-3-4 bomen (ook bekend als 2-4 bomen)
+ - N-ary (K-ary, M-ary) bomen
+ -B-bomen
+ - [k-D Bomen](#k-d-bomen)
+ - [Skip-lijsten](#skip-lijsten)
+ - [Netwerkstromen](#netwerkstromen)
+ - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
+ - [Wiskunde voor snelle verwerking](#math-voor-snelle verwerking)
+ - [Treap](#treap)
+ - [Lineaire programmering](#lineaire-programmeervideo's)
+ - [Geometrie, bolle romp](#geometry-convex-hull-video's)
+ - [Discrete wiskunde](#discrete-wiskunde)
+- [Extra details over sommige onderwerpen](#additional-detail-on-sommige-onderwerpen)
+- [Video-serie](#video-serie)
+- [Informatica-cursussen](#informatica-cursussen)
+- [Papieren](#papieren)
+
+---
+
+## Waarom gebruiken?
+
+Als je als software engineer voor een groot bedrijf wilt werken, is de
+
+dit zijn de dingen die je moet weten.
+
+Als je een graad in computerwetenschappen hebt gemist, zoals ik, zal dit je inhalen en vier jaar van je leven redden.
+
+Toen ik aan dit project begon, kende ik geen stapel van een hoop, ik wist niets van Big-O of iets over bomen, of hoe ik
+een grafiek doorkruisen. Als ik een sorteeralgoritme moest coderen, kan ik je vertellen dat het verschrikkelijk zou zijn geweest.
+Elke gegevensstructuur die ik ooit had gebruikt, was in de taal ingebouwd en ik wist niet hoe ze werkten
+helemaal onder de motorkap. Ik hoefde nooit het geheugen te beheren, tenzij een proces dat ik aan het uitvoeren was een "out of" zou geven
+memory"-fout, en dan zou ik een tijdelijke oplossing moeten vinden. Ik gebruikte een paar multidimensionale arrays in mijn leven en
+duizenden associatieve arrays, maar ik heb nooit helemaal opnieuw gegevensstructuren gemaakt.
+
+Het is een lang plan. Het kan maanden duren. Als je hier al veel van kent, kost het je veel minder tijd.
+
+## Hoe te gebruiken
+
+Alles hieronder is een overzicht en je moet de items van boven naar beneden in volgorde aanpakken.
+
+Ik gebruik de speciale markdown-smaak van GitHub, inclusief takenlijsten om de voortgang bij te houden.
+ - [Meer over GitHub-gearomatiseerde markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### Als je git . niet wilt gebruiken
+
+Klik op deze pagina op de codeknop bovenaan en klik vervolgens op "Download ZIP". Pak het bestand uit en u kunt met de tekstbestanden werken.
+
+Als je open bent in een code-editor die markdown begrijpt, zie je alles netjes opgemaakt.
+
+
+
+### Als je vertrouwd bent met git
+
+Maak een nieuwe branch zodat je dit soort items kunt aanvinken, zet gewoon een x tussen de haakjes: [x]
+
+1. ***Fork de GitHub-repo:*** `https://github.com/jwasham/coding-interview-university` door op de Fork-knop te klikken.
+
+ 
+
+1. Kloon naar uw lokale repo:
+
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ cd codering-interview-universiteit
+ git checkout -b voortgang
+ git remote jwasham toevoegen https://github.com/jwasham/coding-interview-university
+ git fetch --all
+ ```
+
+1. Markeer alle vakjes met X nadat u uw wijzigingen hebt voltooid:
+
+ ```
+ git toevoegen.
+ git commit -m "Gemarkeerd met x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
+ ```
+
+## Heb niet het gevoel dat je niet slim genoeg bent
+
+- Succesvolle software-engineers zijn slim, maar velen hebben de onzekerheid dat ze niet slim genoeg zijn.
+- De volgende video's kunnen u helpen deze onzekerheid te overwinnen:
+ - [De mythe van de Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [Het is gevaarlijk om alleen te gaan: vechten tegen de onzichtbare monsters in technologie](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+
+## Een opmerking over videobronnen
+
+Sommige video's zijn alleen beschikbaar door je in te schrijven voor een Coursera- of EdX-les. Dit worden MOOC's genoemd.
+Soms zijn de lessen niet in sessie, dus je moet een paar maanden wachten, dus je hebt geen toegang.
+
+Het zou geweldig zijn om de online cursusbronnen te vervangen door gratis en altijd beschikbare openbare bronnen,
+zoals YouTube-video's (bij voorkeur universitaire colleges), zodat jullie deze op elk moment kunnen bestuderen,
+niet alleen wanneer een specifieke online cursus in sessie is.
+
+## Kies een programmeertaal
+
+Je moet een programmeertaal kiezen voor de coderingsinterviews die je doet,
+maar je zult ook een taal moeten vinden die je kunt gebruiken om computerwetenschappelijke concepten te bestuderen.
+
+Bij voorkeur is de taal hetzelfde, zodat je er maar één machtig hoeft te zijn.
+
+### Voor dit studieplan
+
+Toen ik het studieplan maakte, gebruikte ik voor het grootste deel 2 talen: C en Python
+
+* C: Zeer laag niveau. Hiermee kunt u omgaan met pointers en geheugentoewijzing/deallocatie, zodat u de gegevensstructuren voelt
+ en algoritmen in je botten. In hogere talen zoals Python of Java zijn deze voor u verborgen. In het dagelijkse werk is dat geweldig,
+ maar als je leert hoe deze low-level datastructuren worden gebouwd, is het geweldig om je dicht bij het metaal te voelen.
+ - C is overal. Je ziet voorbeelden in boeken, lezingen, video's, *overal* terwijl je studeert.
+ - [De programmeertaal C, deel 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - Dit is een kort boek, maar het geeft je een goede greep op de C-taal en als je het een beetje oefent
+ je bent snel onder de knie. Inzicht in C helpt u te begrijpen hoe programma's en geheugen werken.
+ - Je hoeft niet super diep in het boek te gaan (of het zelfs maar af te maken). Ga gewoon naar waar u zich prettig voelt bij het lezen en schrijven in C.
+ - [Antwoorden op vragen in het boek](https://github.com/lekkas/c-algorithms)
+* Python: modern en zeer expressief, ik heb het geleerd omdat het gewoon super handig is en me ook in staat stelt minder code te schrijven in een interview.
+
+Dit heeft mijn voorkeur. Je doet wat je leuk vindt, of co
+
+Ik herinnerde het me niet. Ik heb 3 dagen doorgebracht
+door mijn aantekeningen en het maken van flashcards, zodat ik kon beoordelen. Ik had al die kennis niet nodig.
+
+Lees alsjeblieft zodat je mijn fouten niet maakt:
+
+[Informaticakennis behouden](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+
+### 2. Gebruik Flashcards
+
+Om het probleem op te lossen, heb ik een kleine flashcards-site gemaakt waar ik flashcards van 2 soorten kon toevoegen: algemeen en code.
+Elke kaart heeft een andere opmaak. Ik heb een mobile-first website gemaakt, zodat ik op mijn telefoon of tablet kan reviewen, waar ik ook ben.
+
+Maak je eigen gratis:
+
+- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
+
+**IK RAAD NIET AAN om mijn flashcards te gebruiken.** Er zijn er teveel en de meeste zijn trivia die je niet nodig hebt.
+
+Maar als je niet naar me wilt luisteren, hier ga je:
+- [Mijn flash-kaartendatabase (1200 kaarten)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Mijn flash-kaartendatabase (extreme - 1800 kaarten)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+Houd in gedachten dat ik overboord ging en kaarten heb die alles omvatten, van assembler en Python-trivia tot machine learning en statistieken.
+Het is veel te veel voor wat nodig is.
+
+**Opmerking over flashcards:** De eerste keer dat u herkent dat u het antwoord weet, markeer het dan niet als bekend. Je moet de zien
+dezelfde kaart en beantwoord deze meerdere keren goed voordat je het echt weet. Herhaling zal die kennis dieper in
+je brein.
+
+Een alternatief voor het gebruik van mijn flashcard-site is [Anki](http://ankisrs.net/), dat mij al meerdere keren is aanbevolen.
+Het gebruikt een herhalingssysteem om u te helpen herinneren. Het is gebruiksvriendelijk, beschikbaar op alle platforms en heeft een cloudsynchronisatiesysteem.
+Het kost $ 25 op iOS, maar is gratis op andere platforms.
+
+Mijn flashcard-database in Anki-formaat: https://ankiweb.net/shared/info/25173560 (bedankt [@xiewenya](https://github.com/xiewenya)).
+
+Sommige studenten hebben opmaakproblemen met witruimte genoemd die kunnen worden opgelost door het volgende te doen: open dek, bewerk kaart, klik op kaarten, selecteer het keuzerondje "styling", voeg het lid "witruimte: pre;" toe naar de kaartklas.
+
+### 3. Stel sollicitatievragen in terwijl je aan het leren bent
+
+DIT IS ERG BELANGRIJK.
+
+Begin met het coderen van interviewvragen terwijl je datastructuren en algoritmen leert.
+
+Je moet wat je leert toepassen om problemen op te lossen, anders vergeet je het. Ik heb deze fout gemaakt.
+
+Als je eenmaal een onderwerp hebt geleerd en je er enigszins op je gemak bij voelt, bijvoorbeeld **gekoppelde lijsten**:
+1. Open een van de [interviewboeken voor coderen](#interview-prep-books) (of websites met codeerproblemen, hieronder vermeld)
+1. Stel 2 of 3 vragen over gekoppelde lijsten.
+1. Ga verder met het volgende leeronderwerp.
+1. Ga later terug en doe nog eens 2 of 3 problemen met gekoppelde lijsten.
+1. Doe dit bij elk nieuw onderwerp dat je leert.
+
+**Blijf problemen doen terwijl je al deze dingen leert, niet daarna.**
+
+Je wordt niet aangenomen voor kennis, maar hoe je de kennis toepast.
+
+Hier zijn veel bronnen voor, hieronder opgesomd. Ga zo door.
+
+### 4. Focus
+
+Er zijn veel afleidingen die kostbare tijd in beslag kunnen nemen. Focus en concentratie zijn moeilijk. Zet wat muziek aan
+zonder tekst en je kunt je goed concentreren.
+
+## Wat je niet gedekt ziet
+
+Dit zijn veelvoorkomende technologieën, maar maken geen deel uit van dit studieplan:
+
+-SQL
+- Javascript
+- HTML, CSS en andere front-end-technologieën
+
+## Het dagelijkse plan
+
+Deze cursus gaat over veel onderwerpen. Elk zal je waarschijnlijk een paar dagen kosten, of misschien zelfs een week of langer. Het hangt af van je schema.
+
+Neem elke dag het volgende onderwerp in de lijst, bekijk enkele video's over dat onderwerp en schrijf vervolgens een implementatie
+van die datastructuur of dat algoritme in de taal die je voor deze cursus hebt gekozen.
+
+Je kunt mijn code hier zien:
+ - [C](https://github.com/jwasham/practice-c)
+ - [C++](https://github.com/jwasham/practice-cpp)
+ - [Python](https://github.com/jwasham/practice-python)
+
+U hoeft niet elk algoritme te onthouden. Je moet het alleen voldoende kunnen begrijpen om je eigen implementatie te kunnen schrijven.
+
+## Oefenen met codeervragen
+
+ Waarom is dit hier? Ik ben niet klaar om te interviewen.
+
+[Ga dan terug en lees dit.](#3-do-coding-interview-questions-while-youre-learning)
+
+Waarom je moet oefenen met programmeerproblemen:
+- Probleemherkenning, en waar de juiste datastructuren en algoritmen in passen
+- Het verzamelen van vereisten voor het probleem
+- Praat je een weg door het probleem zoals je zult doen in het interview
+- Coderen op een whiteboard of papier, niet op een computer
+- Tijd- en ruimtecomplexiteit bedenken voor uw oplossingen (zie Big-O hieronder)
+- Uw oplossingen testen
+
+Er is een geweldige introductie voor methodische, communicatieve probleemoplossing in een interview. Dit haal je uit de programmering
+interviewboeken ook, maar ik vond dit opmerkelijk:
+[Algoritme ontwerp canvas](http://www.hiredintech.com/algorithm-design/)
+
+Schrijf code op een whiteboard of papier, niet op een computer. Test met een steekproef
+
+e ingangen. Typ het vervolgens en test het op een computer.
+
+Als je thuis geen whiteboard hebt, pak dan een groot tekenblok bij een kunstwinkel. Je kunt op de bank zitten en oefenen.
+Dit is mijn "bank whiteboard". Ik heb de pen op de foto toegevoegd alleen voor schaal. Als je een pen gebruikt, zou je willen dat je kon wissen.
+Wordt snel rommelig. **Ik gebruik een potlood en gum.**
+
+
+
+**Het oefenen van codeervragen gaat niet over het onthouden van antwoorden op programmeerproblemen.**
+
+## Codeerproblemen
+
+Vergeet uw belangrijkste coderingsinterviewboeken niet [hier] (#interview-prep-books).
+
+Problemen oplossen:
+- [Een oplossing vinden](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [Hoe een Topcoder-probleemverklaring te ontleden](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+Video's met sollicitatievragen over coderen:
+- [IDeserve (88 video's)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 afspeellijsten)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - Super voor walkthroughs van probleemoplossingen
+- [Nick White - LeetCode Solutions (187 video's)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Goede uitleg van de oplossing en de code
+ - Je kunt er in korte tijd meerdere bekijken
+- [FisherCoder - LeetCode-oplossingen](https://youtube.com/FisherCoder)
+- [Neetcode - BLIND 75 LeetCode-oplossingen](https://www.youtube.com/watch?v=KLlXCFG5TnA&list=PLot-Xpze53ldVwtstag2TL4HQhAnC8ATf)
+ - Goede uitleg van de oplossing en de python-code
+ - Bekijk ook [excel sheet](https://docs.google.com/spreadsheets/d/1A2PaQKcdwO_lwxz9bAnxXnIQayCouZP6d-ENrBz_NXc/edit#gid=0) voor alle vragenlijst
+ - [Github-links](https://github.com/neetcode-gh/leetcode) voor alle oplossingencode
+ - [Neetcode 150](https://neetcode.io/)
+
+Uitdagingssites:
+- [LeetCode](https://leetcode.com/)
+ - Mijn favoriete codeerprobleemsite. Het is het abonnementsgeld waard voor de 1-2 maanden die je waarschijnlijk gaat voorbereiden.
+ - Zie Nick White en FisherCoder-video's hierboven voor uitleg over de code.
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Geeks voor Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [InterviewBit](https://www.interviewbit.com/)
+- [Project Euler](https://projecteuler.net/)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - Gemaakt door Google-ingenieurs, dit is ook een uitstekende bron om uw vaardigheden aan te scherpen.
+
+## Laten we beginnen
+
+Oké, genoeg gepraat, laten we leren!
+
+Maar vergeet niet om codeerproblemen van bovenaf op te lossen terwijl je leert!
+
+## Algoritmische complexiteit / Big-O / Asymptotische analyse
+
+- Hier hoef je niets te implementeren, je kijkt alleen maar video's en maakt aantekeningen! Hoera!
+- Er zijn hier veel video's. Kijk net genoeg tot je het begrijpt. U kunt altijd terugkomen en beoordelen.
+- Maak je geen zorgen als je niet alle wiskunde erachter begrijpt.
+- Je hoeft alleen maar te begrijpen hoe je de complexiteit van een algoritme kunt uitdrukken in termen van Big-O.
+- [ ] [Harvard CS50 - Asymptotische notatie (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [Big O Notations (algemene korte handleiding) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [Big O Notation (en Omega en Theta) - beste wiskundige uitleg (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [Skiena (video)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [Analyse afgeschreven (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (inclusief recursierelaties en hoofdstelling):
+ - [Computational Complexity: Sectie 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [Computational Complexity: Sectie 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
+- [ ] [Cheatsheet](http://bigocheatsheet.com/)
+
+Nou, dat is ongeveer genoeg van dat.
+
+Als je "Cracking the Coding Interview" doorloopt, is er een hoofdstuk hierover en aan het einde is er een quiz om te zien
+als u de runtime-complexiteit van verschillende algoritmen kunt identificeren. Het is een super review en test.
+
+## Data structuren
+
+- ### Arrays
+ - [ ] Over arrays:
+ - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Lineaire en multi-dim arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Begin met kijken vanaf 15m 32s)
+ - [Dynamische arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] Implementeer een vector (veranderlijke array met automatisch formaat wijzigen):
+ - [ ] Oefen met coderen met ar
+
+ stralen en aanwijzers, en aanwijzer wiskunde om naar een index te springen in plaats van indexering te gebruiken.
+ - [ ] Nieuwe array met onbewerkte gegevens met toegewezen geheugen
+ - kan int-array onder de motorkap toewijzen, alleen de functies ervan niet gebruiken
+ - begin met 16, of als het startnummer groter is, gebruik dan de macht 2 - 16, 32, 64, 128
+ - [ ] maat() - aantal items
+ - [ ] capacity() - aantal items dat het kan bevatten
+ - [ ] is leeg()
+ - [ ] at(index) - retourneert item bij gegeven index, wordt opgeblazen als index buiten de grenzen valt
+ - [ ] duwen (item)
+ - [ ] insert (index, item) - voegt item toe aan index, verschuift de waarde van die index en volgende elementen naar rechts
+ - [ ] prepend(item) - kan invoegen hierboven gebruiken bij index 0
+ - [ ] pop() - verwijder van einde, retourneer waarde
+ - [ ] delete(index) - verwijder item bij index, waarbij alle achterliggende elementen naar links worden verschoven
+ - [ ] remove(item) - zoekt naar waarde en verwijdert index die deze vasthoudt (zelfs als op meerdere plaatsen)
+ - [ ] find(item) - zoekt naar waarde en retourneert eerste index met die waarde, -1 indien niet gevonden
+ - [ ] formaat wijzigen (nieuwe_capaciteit) // privéfunctie
+ - wanneer u de capaciteit bereikt, verkleint u het formaat om de grootte te verdubbelen
+ - wanneer u een item laat vallen, als de grootte 1/4 van de capaciteit is, verklein dan de grootte naar de helft
+ - [ ] Tijd
+ - O(1) om aan het einde toe te voegen/te verwijderen (afgeschreven voor toewijzingen voor meer ruimte), indexeren of bijwerken
+ - O(n) om ergens anders in te voegen/te verwijderen
+ - [ ] Ruimte
+ - aaneengesloten in het geheugen, dus nabijheid helpt de prestaties
+ - benodigde ruimte = (matrixcapaciteit, dat is >= n) * grootte van item, maar zelfs als 2n, nog steeds O(n)
+
+- ### Gelinkte lijsten
+ - [ ] Beschrijving:
+ - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - Gelinkte lijsten 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - Gelinkte lijsten 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [C-code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
+ - niet de hele video, alleen delen over Node struct en geheugentoewijzing
+ - [ ] Gelinkte lijst versus arrays:
+ - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [In de echte wereld gekoppelde lijsten versus arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd )
+ - [ ] [Waarom je gelinkte lijsten (video) moet vermijden](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [ ] Gotcha: je hebt pointer to pointer kennis nodig:
+ (voor wanneer u een aanwijzer doorgeeft aan een functie die het adres kan wijzigen waar die aanwijzer wijst)
+ Deze pagina is alleen bedoeld om een idee te krijgen van ptr tot ptr. Ik raad deze lijst-traversal-stijl niet aan. De leesbaarheid en onderhoudbaarheid lijden onder slimheid.
+ - [Aanwijzingen naar aanwijzers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
+ - [ ] Implementeren (ik deed met staartaanwijzer en zonder):
+ - [ ] size() - retourneert aantal gegevenselementen in lijst
+ - [ ] leeg() - bool geeft waar terug als het leeg is
+ - [ ] value_at(index) - retourneert de waarde van het n-de item (beginnend bij 0 voor de eerste)
+ - [ ] push_front(value) - voegt een item toe aan de voorkant van de lijst
+ - [ ] pop_front() - verwijder front item en retourneer de waarde
+ - [ ] push_back(value) - voegt een item toe aan het einde
+ - [ ] pop_back() - verwijdert het einditem en geeft zijn waarde terug
+ - [ ] front() - waarde van frontitem ophalen
+ - [ ] back() - waarde van het eindproduct ophalen
+ - [ ] insert (index, value) - voeg waarde in bij index, dus naar huidig item in die index wordt verwezen door nieuw item in index
+ - [ ] erase(index) - verwijdert node bij gegeven index
+ - [ ] value_n_from_end(n) - retourneert de waarde van het knooppunt op de n-de positie vanaf het einde van de lijst
+ - [ ] reverse() - keert de lijst om
+ - [ ] remove_value(value) - verwijdert het eerste item in de lijst met deze waarde
+ - [ ] Dubbel gelinkte lijst
+ - [Beschrijving (video)](https://www.coursera.org/lecture/data-structures/double-linked-lists-jpGKD)
+ - Niet nodig om te implementeren
+
+- ### Stapel
+ - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] Wordt niet geïmplementeerd. Implementeren met array is triviaal
+
+- ### Rij
+ - [ ] [Wachtrij (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
+ - [ ] [Circulaire buffer/FIFO](https://en.wikipedia.org/wiki/Circulaire_buffer)
+ - [ ] Implementeer met behulp van gekoppelde lijst, met staartaanwijzer:
+ - in de wachtrij plaatsen (waarde) - voegt waarde toe op positie aan de staart
+ - dequeue() - retourneert waarde en verwijdert het minst recent toegevoegde element (voorkant)
+ - leeg()
+ - [ ] Implementeer met array van vaste grootte:
+ - in de wachtrij plaatsen (waarde) - voegt item toe aan het einde van de beschikbare opslag
+ - dequeue() - geeft waarde terug en verwijdert het minst recent toegevoegde element
+ - leeg()
+ - vol
+
+ ()
+ - [ ] Kosten:
+ - een slechte implementatie met behulp van een gelinkte lijst waarbij u aan het hoofd in de wachtrij staat en aan de staart in de wachtrij staat, zou O (n) zijn
+ omdat je het voorlaatste element nodig hebt, waardoor elke dequeue een volledige doorgang veroorzaakt
+ - wachtrij: O(1) (afgeschreven, gekoppelde lijst en array [probing])
+ - wachtrij: O(1) (gekoppelde lijst en array)
+ - leeg: O(1) (gekoppelde lijst en array)
+
+- ### Hash-tabel
+ - [ ] Videos:
+ - [ ] [Hashing met Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Tabelverdubbeling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Open adressering, cryptografische hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: het woordenboek nog machtiger (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Geavanceerd) Randomisatie: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Geavanceerd) Perfect hashen (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Online cursussen:
+ - [ ] [Core Hash-tabellen (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Datastructuren (video)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Telefoonboekprobleem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] gedistribueerde hashtabellen:
+ - [Directe uploads en opslagoptimalisatie in Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Gedistribueerde hashtabellen (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Implementeren met array met lineair tasten
+ - hash(k, m) - m is de grootte van de hashtabel
+ - toevoegen (sleutel, waarde) - als de sleutel al bestaat, waarde bijwerken
+ - bestaat (sleutel)
+ - haal (sleutel)
+ - verwijderen (sleutel)
+
+## Meer kennis
+
+- ### Binaire zoekopdracht
+ - [ ] [Binair zoeken (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
+ - [ ] [Binair zoeken (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] [detail](https://www.topcoder.com/thrive/articles/Binary%20Search)
+ - [ ] [blauwdruk](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] Implementeren:
+ - binair zoeken (op gesorteerde reeks gehele getallen)
+ - binair zoeken met recursie
+
+- ### Bitsgewijze bewerkingen
+ - [ ] [Bits spiekbriefje](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - je zou veel van de machten van 2 van (2^1 tot 2^16 en 2^32)
+ - [ ] Krijg een goed begrip van het manipuleren van bits met: &, |, ^, ~, >>, <<
+ - [ ] [woorden](https://en.wikipedia.org/wiki/Word_(computer_architecture))
+ - [ ] Goede inleiding:
+ [Bitmanipulatie (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)
+ - [ ] [C Programmeerhandleiding 2-10: Bitsgewijze operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [Bitmanipulatie](https://en.wikipedia.org/wiki/Bit_manipulatie)
+ - [ ] [Bitwise operatie](https://en.wikipedia.org/wiki/Bitwise_operation)
+ - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
+ - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
+ - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
+ - [ ] [Bit-hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
+- [ ] [Oefeningen](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
+ - [ ] 2s en 1s complement
+ - [Binair: plussen en minnen (waarom we het complement van twee gebruiken) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [1s aanvulling](https://en.wikipedia.org/wiki/Ones%27_complement)
+ - [2s-complement](https://en.wikipedia.org/wiki/Two%27s_complement)
+ - [ ] Aantal ingestelde bits
+ - [4 manieren om bits in een byte te tellen (video)](https://youtu.be/Hzuzo9NJrlc)
+ - [Bits tellen](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - [Hoe het aantal ingestelde bits in een 32-bits geheel getal te tellen](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32 -bit-geheel getal)
+ - [ ] Waarden wisselen:
+ - [Swap](https://bits.stephan-brumme.com/swap.html)
+ - [ ] Absolute waarde:
+ - [Absoluut geheel getal](https://bits.stephan-brumme.com/absInteger.
+
+ html)
+
+## Bomen
+
+- ### Bomen - Notities & Achtergrond
+ - [ ] [Serie: Bomen (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - basis boomconstructie
+ - doorkruising
+ - manipulatie-algoritmen
+ - [ ] [BFS(breedte-eerst zoeken) en DFS(diepte-eerst zoeken) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - BFS-opmerkingen:
+ - niveauvolgorde (BFS, met wachtrij)
+ - tijdscomplexiteit: O(n)
+ - ruimtecomplexiteit: beste: O(1), slechtste: O(n/2)=O(n)
+ - DFS-opmerkingen:
+ - tijdscomplexiteit: O(n)
+ - complexiteit van de ruimte:
+ beste: O(log n) - gem. hoogte van de boom
+ slechtste: O(n)
+ - inorder (DFS: links, zelf, rechts)
+ - nabestelling (DFS: links, rechts, zelf)
+ - pre-order (DFS: zelf, links, rechts)
+
+- ### Binaire zoekbomen: BST's
+ - [ ] [Binaire zoekstructuurbeoordeling (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [Inleiding (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
+ - C/C++:
+ - [ ] [Binaire zoekboom - Implementatie in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] [BST-implementatie - geheugentoewijzing in stapel en heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] [Vind min en max element in een binaire zoekboom (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Zoek hoogte van een binaire boom (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [Binaire boomtraversal - breedte-eerst en diepte-eerst strategieën (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] [Binaire boom: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Binaire boomtraversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Controleer of een binaire boom een binaire zoekboom is of niet (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Een knooppunt verwijderen uit de binaire zoekstructuur (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] [Opvolger in een binaire zoekboom (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Implementeren:
+ - [ ] voeg // waarde in boom in
+ - [ ] get_node_count // haal het aantal opgeslagen waarden op
+ - [ ] print_values // print de waarden in de boom, van min tot max
+ - [ ] delete_tree
+ - [ ] is_in_tree // geeft true terug als de gegeven waarde in de boom voorkomt
+ - [ ] get_height // retourneert de hoogte in knooppunten (de hoogte van één knooppunt is 1)
+ - [ ] get_min // retourneert de minimale waarde die is opgeslagen in de boom
+ - [ ] get_max // retourneert de maximale waarde die is opgeslagen in de boom
+ - [ ] is_binary_search_tree
+ - [ ] delete_value
+ - [ ] get_successor // retourneert de op één na hoogste waarde in de boom na de gegeven waarde, -1 als er geen is
+
+- ### Heap / Prioriteitswachtrij / Binaire Heap
+ - gevisualiseerd als een boom, maar is meestal lineair in opslag (array, gekoppelde lijst)
+ - [ ] [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
+ - [ ] [Inleiding (video)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
+ - [ ] [Naïeve implementaties (video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+ - [ ] [Binaire bomen (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+ - [ ] [Opmerking boomhoogte (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] [Basisbewerkingen (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+ - [ ] [Complete binaire bomen (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+ - [ ] [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+ - [ ] [Heap Sort - springt om te starten (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] [Een hoop bouwen (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
+ - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWY
+
+ p6V_F-5jb5L2iHb)
+ - [ ] [CS 61B Lezing 24: Prioriteitswachtrijen (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
+ - [ ] [Lineaire tijd BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] Implementeer een max-heap:
+ - [ ] invoegen
+ - [ ] sift_up - nodig voor invoegen
+ - [ ] get_max - geeft het max item terug, zonder het te verwijderen
+ - [ ] get_size() - retourneer het aantal opgeslagen elementen
+ - [ ] is_empty() - geeft true terug als heap geen elementen bevat
+ - [ ] extract_max - geeft het max item terug en verwijdert het
+ - [ ] sift_down - nodig voor extract_max
+ - [ ] remove(x) - verwijdert item op index x
+ - [ ] heapify - maak een heap van een reeks elementen, nodig voor heap_sort
+ - [ ] heap_sort() - neem een ongesorteerde array en verander het in een gesorteerde array op zijn plaats met behulp van een max heap of min heap
+
+## Sorteren
+
+- [ ] Opmerkingen:
+ - Implementeer sorteringen en ken de beste/slechtste, gemiddelde complexiteit van elk:
+ - geen bellensoort - het is verschrikkelijk - O(n^2), behalve wanneer n <= 16
+ - [ ] Stabiliteit in sorteeralgoritmen ("Is Quicksort stabiel?")
+ - [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
+ - [Stabiliteit in sorteeralgoritmen](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+ - [Stabiliteit in sorteeralgoritmen](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+ - [Sorteeralgoritmen - Stabiliteit](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+ - [ ] Welke algoritmen kunnen worden gebruikt op gekoppelde lijsten? Welke op arrays? Welke op beide?
+ - Ik zou niet aanraden om een gekoppelde lijst te sorteren, maar samenvoegen is mogelijk.
+ - [Samenvoegen sorteren voor gekoppelde lijst](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
+
+- Voor heapsort, zie Heap-gegevensstructuur hierboven. Heap sort is geweldig, maar niet stabiel
+
+- [ ] [Sedgewick - Mergesort (5 video's)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Mergesort](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] [2. Bottom-up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. Sorteercomplexiteit](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. Vergelijkers](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] [5. Stabiliteit](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] [Sedgewick - Quicksort (4 video's)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
+ - [ ] [2. Selectie](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. Dubbele sleutels](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. Systeemsorteringen](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] UC Berkeley:
+ - [ ] [CS 61B Lezing 29: Sorteren I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B Lezing 30: Sorteren II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B Lezing 32: Sorteren III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B Lezing 33: Sorteren V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+
+- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
+- [ ] [Bellen sorteren analyseren (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
+- [ ] [Invoegen sorteren, samenvoegen sorteren (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+- [ ] [Invoegsortering (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
+- [ ] [Samenvoegen Sorteren (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
+- [ ] [Quicksort (video)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
+- [ ] [Selectie sorteren (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
+
+- [ ] Sorteercode samenvoegen:
+ - [ ] [Uitvoerarray (C) gebruiken](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+ - [ ] [Uitvoerarray gebruiken (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+ - [ ] [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+- [ ] Snelle sorteercode:
+ - [ ] [Implementatie (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+ - [ ] [Implementatie (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+ - [ ] [Implementatie (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+- [ ] Implementeren:
+
+- [ ] Samenvoegen: O(n log n) gemiddelde en slechtste geval
+ - [ ] Quicksort O(n log n) gemiddeld geval
+ - Selectiesortering en invoegsortering zijn zowel O (n ^ 2) gemiddeld als in het slechtste geval
+ - Zie Heap-gegevensstructuur hierboven voor heapsort
+
+- [ ] Niet verplicht, maar ik heb ze aanbevolen:
+ - [ ] [Sedgewick - Radix Sorts (6 video's)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] [2. Key Indexed Counting](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
+ - [ ] [3. Minst significante cijfer eerste string Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] [4. Meest significante cijfer eerste string Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
+ - [ ] [6. Suffix-arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Radix Sorteren](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] [Radix sorteren (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] [Radix Sort, Counting Sort (lineaire tijd gegeven beperkingen) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Randomisatie: Matrix Multiply, Quicksort, Freivalds' algoritme (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [Sorteren in lineaire tijd (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+Als samenvatting is hier een visuele weergave van [15 sorteeralgoritmen](https://www.youtube.com/watch?v=kPRA0W1kECg).
+Als u meer details over dit onderwerp nodig hebt, raadpleegt u het gedeelte "Sorteren" in [Aanvullende details over sommige onderwerpen](#additional-detail-on-sommige-onderwerpen)
+
+## Grafieken
+
+Grafieken kunnen worden gebruikt om veel problemen in de informatica weer te geven, dus deze sectie is lang, net als bomen en sorteren.
+
+- Opmerkingen:
+ - Er zijn 4 basismanieren om een grafiek in het geheugen weer te geven:
+ - objecten en wijzers
+ - aangrenzende matrix
+ - aangrenzende lijst
+ - aangrenzende kaart
+ - Maak uzelf vertrouwd met elke voorstelling en zijn voor- en nadelen
+ - BFS en DFS - ken hun computationele complexiteit, hun afwegingen en hoe ze in echte code kunnen worden geïmplementeerd
+ - Als je een vraag wordt gesteld, zoek dan eerst naar een op grafieken gebaseerde oplossing en ga dan verder als er geen is
+
+- [ ] MIT (video's):
+ - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] [Diepte-eerst zoeken](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
+
+- [ ] Skiena Lezingen - geweldige intro:
+ - [ ] [CSE373 2020 - Lezing 10 - Grafiekgegevensstructuren (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] [CSE373 2020 - Lezing 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] [CSE373 2020 - Lezing 12 - Diepte eerste zoekopdracht (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] [CSE373 2020 - Lezing 13 - Minimale spanwijdte bomen (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] [CSE373 2020 - Lezing 14 - Minimale spanwijdte bomen (vervolg) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] [CSE373 2020 - Lezing 15 - Grafiekalgoritmen (vervolg 2) (video)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
+
+- [ ] Grafieken (review en meer):
+
+ - [ ] [6.006 Single-Source Shortest Paths-probleem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 Dijkstra versnellen (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [Aduni: grafiekalgoritmen I - topologische sortering, minimale overspanningsbomen, algoritme van Prim - lezing 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7Sm)
+ - [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t. )
+ - [ ] [Aduni: Grafiekalgoritmen III: Kortste pad - Lezing 8 (video)](https://www.youtube.com/watch?v=Die
+
+ dsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [Aduni: Grafiek Alg. IV: Inleiding tot geometrische algoritmen - Lezing 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] [CS 61B 2014: gewogen grafieken (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] [Greedy Algoritmes: Minimale Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [Sterk verbonden componenten Kosaraju's algoritme Grafiekalgoritme (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+
+- Volledige Coursera-cursus:
+ - [ ] [Algoritmen op grafieken (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
+
+- Ik zal implementeren:
+ - [ ] DFS met aangrenzende lijst (recursief)
+ - [ ] DFS met aangrenzende lijst (iteratief met stapel)
+ - [ ] DFS met aangrenzende matrix (recursief)
+ - [ ] DFS met aangrenzende matrix (iteratief met stapel)
+ - [ ] BFS met aangrenzende lijst
+ - [ ] BFS met aangrenzende matrix
+ - [ ] single-source kortste pad (Dijkstra)
+ - [ ] minimale opspannende boom
+ - Op DFS gebaseerde algoritmen (zie Aduni-video's hierboven):
+ - [ ] controleren op cyclus (nodig voor topologische sortering, aangezien we zullen controleren op cyclus voordat we beginnen)
+ - [ ] topologische sortering
+ - [ ] tel aangesloten componenten in een grafiek
+ - [ ] lijst sterk verbonden componenten
+ - [ ] controleer op bipartiete grafiek
+
+## Nog meer kennis
+
+- ### Herhaling
+ - [ ] Stanford-lezingen over recursie & backtracking:
+ - [ ] [Lezing 8 | Programmeringsabstracties (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] [Lezing 9 | Programmeringsabstracties (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] [Lezing 10 | Abstracties programmeren (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] [Lezing 11 | Programmeringsabstracties (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - Wanneer is het aangewezen om het te gebruiken?
+ - Hoe is staartrecursie beter dan niet?
+ - [ ] [Wat is staartrecursie, waarom is het zo erg?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
+ - [ ] [Staartrecursie (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] [5 eenvoudige stappen voor het oplossen van recursieve problemen (video)](https://youtu.be/ngCos392W4w)
+
+Backtracking-blauwdruk: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum- Palindroom-partitionering))
+[Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
+- ### Dynamisch programmeren
+ - U zult waarschijnlijk geen dynamische programmeerproblemen zien in uw interview, maar het is de moeite waard om een te kunnen herkennen
+ probleem als kandidaat voor dynamisch programmeren.
+ - Dit onderwerp kan behoorlijk moeilijk zijn, aangezien elk DP-oplosbaar probleem moet worden gedefinieerd als een recursierelatie, en het bedenken ervan kan lastig zijn.
+ - Ik stel voor om naar veel voorbeelden van DP-problemen te kijken totdat je een goed begrip hebt van het betreffende patroon.
+ - [ ] Videos:
+ - [ ] [Skiena: CSE373 2020 - Lezing 19 - Inleiding tot dynamisch programmeren (video)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [Skiena: CSE373 2020 - Lezing 20 - Afstand bewerken (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [Skiena: CSE373 2020 - Lezing 20 - Afstand bewerken (vervolg) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [Skiena: CSE373 2020 - Lezing 21 - Dynamisch programmeren (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - Lezing 21 - Dynamisch programmeren en beoordelen (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Simonson: Dynamic Programming 0 (start om 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [Simonson: Dynamic Programming I - Lezing 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Simonson: Dynamic programming II - Lezing 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] Lijst van individuele DP-problemen (elk is kort):
+ [Dynamisch programmeren (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] Yale Aantekeningen bij de lezing:
+ - [ ] [Dynamische programma's
+
+ ng](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
+ - [ ] Coursera:
+ - [ ] [Het RNA secundaire structuurprobleem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
+ - [ ] [Een dynamisch programmeeralgoritme (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
+ - [ ] [Illustratie van het DP-algoritme (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
+ - [ ] [Duurtijd van het DP-algoritme (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
+ - [ ] [DP vs. recursieve implementatie (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] [Globale paarsgewijze sequentie-uitlijning (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
+ - [ ] [Lokale paarsgewijze sequentie-uitlijning (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
+
+- ### Ontwerp patronen
+ - [ ] [Snelle UML-beoordeling (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] Leer deze patronen:
+ - [ ] strategie
+ - [ ] eenling
+ - [ ] adapter
+ - [ ] voorlopig ontwerp
+ - [ ] decorateur
+ - [ ] bezoeker
+ - [ ] fabriek, abstracte fabriek
+ - [ ] gevel
+ - [ ] waarnemer
+ - [ ] volmacht
+ - [ ] afgevaardigde
+ - [ ] commando
+ - [ ] staat
+ - [ ] aandenken
+ - [ ] iterator
+ - [ ] composiet
+ - [ ] vlieggewicht
+ - [ ] [Serie video's (27 video's)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
+ - [ ] [Boek: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - Ik weet dat het canonieke boek "Design Patterns: Elements of Reusable Object-Oriented Software" is, maar Head First is geweldig voor beginners tot OO.
+ - [Handige referentie: 101 ontwerppatronen en tips voor ontwikkelaars](https://sourcemaking.com/design-patterns-and-tips)
+
+- ### Combinatoriek (n kies k) & Waarschijnlijkheid
+ - [ ] [Math Skills: Factorial, Permutatie en Combination vinden (Kies) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [Maak School: Waarschijnlijkheid (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] Khan Academie:
+ - Cursusindeling:
+ - [ ] [Basis theoretische waarschijnlijkheid](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
+ - Alleen de video's - 41 (elk eenvoudig en elk kort):
+ - [ ] [Waarschijnlijkheid verklaard (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+
+- ### NP, NP-compleet en benaderingsalgoritmen
+ - Ken de meest bekende klassen van NP-complete problemen, zoals handelsreiziger en het knapzakprobleem,
+ en in staat zijn om ze te herkennen wanneer een interviewer je ze in vermomming vraagt.
+ - Weet wat NP-compleet betekent.
+ - [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] Simonson:
+ - [ ] [Gulzige Algen. II & Inleiding tot NP-volledigheid (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [NP Volledigheid II & Reducties (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP Volledigheid III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP Volledigheid IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] Skiena:
+ - [ ] [CSE373 2020 - Lezing 23 - NP-Completeness (video)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23)
+ - [ ] [CSE373 2020 - Lezing 24 - Tevredenheid (video)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24)
+ - [ ] [CSE373 2020 - Lezing 25 - Meer NP-Completeness (video)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25)
+ - [ ] [CSE373 2020 - Lezing 26 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
+ - [ ] [Complexiteit: P, NP, NP-volledigheid, Reducties (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] [Complexiteit: benaderingsalgoritmen (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNG
+
+ P6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] [Complexiteit: algoritmen met vaste parameters (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - Peter Norvig bespreekt bijna optimale oplossingen voor het probleem van handelsreizigers:
+ - [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
+ - Pagina's 1048 - 1140 in CLRS als je die hebt.
+
+- ### Hoe computers een programma verwerken
+
+ - [ ] [Hoe CPU een programma uitvoert (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [Hoe computers berekenen - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [Registraties en RAM (video)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [De centrale verwerkingseenheid (CPU) (video)](https://youtu.be/FZGugFqdr60)
+ - [ ] [Instructies en programma's (video)](https://youtu.be/zltgXvg6r3k)
+
+- ### Caches
+ - [ ] LRU-cache:
+ - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] [LRU (video) implementeren](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] [LeetCode - 146 LRU-cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
+ - [ ] CPU-cache:
+ - [ ] [MIT 6.004 L15: de geheugenhiërarchie (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] [MIT 6.004 L16: cacheproblemen (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+
+- ### Processen en threads
+ - [ ] Computerwetenschappen 162 - Besturingssystemen (25 video's):
+ - voor processen en threads zie video's 1-11
+ - [Besturingssystemen en systeemprogrammering (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [Wat is het verschil tussen een proces en een thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
+ - Hoezen:
+ - Processen, threads, gelijktijdigheidsproblemen
+ - Verschil tussen processen en threads
+ - Processen
+ - Draden
+ - Sloten
+ - Mutexen
+ - semaforen
+ - Monitoren
+ - Hoe ze werken?
+ - Impasse
+ - Livelock
+ - CPU-activiteit, interrupts, contextwisseling
+ - Moderne concurrency-constructies met multicore-processors
+ - [Paging, segmentatie en virtueel geheugen (video)](https://youtu.be/O4nwUqQodAg)
+ - [Interrupts (video)](https://youtu.be/iKlAWIKEyuw)
+ - Behoefte aan procesresources (geheugen: code, statische opslag, stapel, heap en ook bestandsdescriptors, i/o)
+ - Thread-resourcebehoeften (shares hierboven (minus stack) met andere threads in hetzelfde proces, maar elk heeft zijn eigen pc, stackteller, registers en stack)
+ - Forking is echt kopiëren bij schrijven (alleen-lezen) totdat het nieuwe proces naar het geheugen schrijft, waarna het een volledige kopie maakt.
+ - Contextomschakeling
+ - Hoe context-switching wordt geïnitieerd door het besturingssysteem en de onderliggende hardware?
+ - [ ] [threads in C++ (serie - 10 video's)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 Spring '14: besturingssystemen van de Universiteit van Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
+ - [ ] gelijktijdigheid in Python (video's):
+ - [ ] [Korte serie over discussies](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] [Python-threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] [De Python GIL (2010) begrijpen](https://www.youtube.com/watch?v=Obt-vMVdM8s)
+ - [referentie](http://www.dabeaz.com/GIL)
+ - [ ] [David Beazley - Python Gelijktijdigheid van de grond af: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] [Keynote David Beazley - Interessante onderwerpen (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
+ - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
+
+- ### Testen
+ - Bedekken:
+ - hoe unit-testen werkt
+ - wat zijn nepobjecten?
+ - wat is integratietesten?
+ - wat is afhankelijkheidsinjectie?
+ - [ ] [Agile software testen met James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] [Open lezing door James Bach over softwaretesten (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] [Steve Freeman - Test-Driven Development (dat is niet wat we bedoelden) (video)](https://vimeo.com/83960706)
+ - [dia's](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
+ - [ ] Afhankelijkheidsinjectie:
+ - [ ] [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
+ - [ ] [Tao van testen](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
+ - [ ] [Hoe tests te schrijven](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
+
+- ### String zoeken en manipulaties
+ -
+
+ [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Sedgewick - Substring zoeken (video's)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. Inleiding tot het zoeken naar substrings](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
+ - [ ] [2. Brute-Force substring zoeken](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
+ - [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
+ - [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
+ - [ ] [5. Rabin-Karp](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
+ - [ ] [Zoekpatroon in tekst (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+
+ Als je meer details over dit onderwerp nodig hebt, raadpleeg dan de sectie "String Matching" in [Extra details over sommige onderwerpen](#additional-detail-on-some-subjects).
+
+- ### Probeert
+ - Merk op dat er verschillende soorten pogingen zijn. Sommige hebben voorvoegsels, andere niet, en sommige gebruiken string in plaats van bits
+ om het pad te volgen
+ - Ik lees code door, maar zal niet implementeren
+ - [ ] [Sedgewick - Probeert (3 video's)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. R Way probeert](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
+ - [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
+ - [ ] [3. Op tekens gebaseerde bewerkingen](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
+ - [ ] [Opmerkingen over datastructuren en programmeertechnieken](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
+ - [ ] Korte cursusvideo's:
+ - [ ] [Inleiding tot pogingen (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] [Een poging implementeren (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
+ - [ ] [The Trie: een verwaarloosde datastructuur](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
+ - [ ] [TopCoder - Tries gebruiken](https://www.topcoder.com/thrive/articles/Using%20Tries)
+ - [ ] [Stanford Lecture (gebruiksvoorbeeld in de echte wereld) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [MIT, Advanced Data Structures, Strings (kan halverwege behoorlijk onduidelijk worden) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+
+- ### Drijvende Punt Nummers
+ - [ ] eenvoudig 8-bit: [Representatie van drijvende-kommagetallen - 1 (video - er is een fout in berekeningen - zie videobeschrijving)](https://www.youtube.com/watch?v=ji3SfClm8TU)
+
+- ### Unicode
+ - [ ] [Het absolute minimum dat elke softwareontwikkelaar absoluut, positief moet weten over Unicode en tekensets]( http://www.joelonsoftware.com/articles/Unicode.html)
+ - [ ] [Wat elke programmeur absoluut moet weten over coderingen en tekensets om met tekst te werken](http://kunststube.net/encoding/)
+
+- ### Endianheid
+ - [ ] [Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian. html)
+ - [ ] [Big Endian versus Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - Zeer technisch gepraat voor kernelontwikkelaars. Maak je geen zorgen als het meeste je te boven gaat.
+ - De eerste helft is genoeg.
+
+- ### Netwerken
+ - **Als u netwerkervaring hebt of een betrouwbaarheidsingenieur of operationeel ingenieur wilt worden, kunt u vragen verwachten**
+ - Anders is dit gewoon goed om te weten
+ - [ ] [Khan Academie](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] [UDP en TCP: vergelijking van transportprotocollen (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] [TCP/IP en het OSI-model uitgelegd! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] [Pakketverzending via internet. Netwerken en TCP/IP-zelfstudie. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] [SSL en HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] [Videoserie (21 video's) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4i
+
+ PnPYQui46QqT0j)
+ - [ ] [Subnetting gedemystificeerd - Deel 5 CIDR-notatie (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] Aansluitingen:
+ - [ ] [Java - Sockets - Introductie (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] [Socket-programmering (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+
+---
+
+## Eindevaluatie
+
+ Dit gedeelte bevat kortere video's die je vrij snel kunt bekijken om de meeste belangrijke concepten te bekijken.
+ Het is fijn als je vaak een opfrisbeurt wilt.
+
+- [ ] Serie van 2-3 minuten korte onderwerpvideo's (23 video's)
+ - [Video's](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] Serie van 2-5 minuten korte onderwerpvideo's - Michael Sambol (18 video's):
+ - [Video's](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] [Sedgewick-video's - Algoritmen I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [Sedgewick-video's - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+---
+
+## Werk je CV bij
+
+- Zie voorbereidingsinformatie CV in de boeken: "Cracking The Coding Interview" en "Programming Interviews Exposed"
+- Ik weet niet hoe belangrijk dit is (je kunt je eigen onderzoek doen) maar hier is een artikel over het ATS-compatibel maken van je cv:
+ - [Hoe maak je een CV aan of controleer je of je CV ATS-compatibel is](https://ayedot.com/97/MiniBlog/Meaning-of-ATS-compliant-resume-and-How-to-create-ATS-Resume-for -Vrij)
+- ["Dit is hoe een GOED CV eruit zou moeten zien" door Gayle McDowell (auteur van Cracking the Coding Interview)](https://www.careercup.com/resume),
+ - Opmerking van de auteur: "Dit is voor een op de VS gericht cv. CV's voor India en andere landen hebben andere verwachtingen, hoewel veel van de punten hetzelfde zullen zijn."
+- ["Stap-voor-stap cv-gids" door Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
+ - Gedetailleerde gids over hoe u uw cv helemaal opnieuw kunt opzetten, effectieve cv-inhoud kunt schrijven, optimaliseren en uw cv kunt testen
+
+
+## Vind een baan
+
+- [Sites voor het vinden van banen](https://ayedot.com/151/MiniBlog/Top-10-Best-Websites-for-Careers--Jobs)
+
+## Interviewproces en algemene sollicitatievoorbereiding
+
+- [ ] [Hoe slaagt u voor het technische interview in 2021](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [Demystificerende technische werving](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] Hoe krijg je een baan bij de Big 4:
+ - [ ] [Een baan krijgen bij de Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [Hoe krijg je een baan bij de Big 4.1 (vervolgvideo)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] De coderingsinterviewset 1 kraken:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [Het coderingsinterview kraken met auteur Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Het Facebook-coderingsinterview kraken:
+ - [ ] [De aanpak](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [Probleemdoorloop](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- Voorbereidende cursussen:
+ - [Software Engineer Interview Unleashed (betaalde cursus)](https://www.udemy.com/software-engineer-interview-unleashed):
+ - Leer hoe u zich kunt voorbereiden op interviews met software-engineers van een voormalige Google-interviewer.
+ - [Python voor datastructuren, algoritmen en interviews (betaalde cursus)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - Een Python-gerichte voorbereidingscursus voor interviews die gegevensstructuren, algoritmen, schijninterviews en nog veel meer behandelt.
+ - [Inleiding tot datastructuren en algoritmen met Python (gratis Udacity-cursus)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - Een gratis cursus over Python-centrische datastructuren en algoritmen.
+ - [Datastructuren en algoritmen Nanodegree! (Udacity betaalde Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - Oefen hands-on met meer dan 100 datastructuren en algoritme-oefeningen en begeleiding van een toegewijde mentor om je voor te bereiden op interviews en on-the-job scenario's.
+ - [Grokking the Behavioral Interview (Educatieve gratis cursus)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - Vaak is het niet je technische competentie die je ervan weerhoudt om je droombaan te vinden, het is hoe je presteert tijdens het gedragsinterview.
+
+Mock-interviews:
+- [Gainlo.co: nep-interviewers van grote bedrijven](http://www.gainlo.co/#!/) - Ik gebruikte dit en het hielp me te ontspannen voor het telefoonscherm en het interview op locatie
+- [Pramp: schijninterviews van/met leeftijdsgenoten](https://www.pramp.com/) - peer-to-peer model van oefeninterviews
+- [interviewing.io: oefeninterview met senior engineers](https://interviewing.io) - anoniem algoritmisch/systeemontwerp inter
+
+anonieme meningen met senior engineers van FAANG
+
+## Denk aan voor als het interview komt
+
+Bedenk ongeveer 20 sollicitatievragen die u zult krijgen, samen met de regels van de onderstaande items. Zorg voor ten minste één antwoord voor elk.
+Heb een verhaal, niet alleen gegevens, over iets dat je hebt bereikt.
+
+- Waarom wil je deze baan?
+- Wat is een moeilijk probleem dat je hebt opgelost?
+- Grootste uitdagingen voor?
+- Beste/slechtste ontwerpen gezien?
+- Ideeën voor het verbeteren van een bestaand product
+- Hoe werk je het beste, als individu en als onderdeel van een team?
+- Welke van uw vaardigheden of ervaringen zouden een troef zijn in de rol en waarom?
+- Wat vond je het leukst bij [job x / project y]?
+- Wat was de grootste uitdaging die je tegenkwam bij [job x / project y]?
+- Wat was de moeilijkste bug die je tegenkwam bij [job x / project y]?
+- Wat heb je geleerd bij [job x / project y]?
+- Wat zou je beter hebben gedaan bij [baan x / project y]?
+
+- Als u het moeilijk vindt om goede antwoorden te vinden op dit soort interviewvragen, volgen hier enkele ideeën:
+ - [Algemene sollicitatievragen en hun antwoorden](https://ayedot.com/119/MiniBlog/General-Interview-Questions-and-their-Answers-for-Tech-Jobs)
+
+## Heb vragen voor de interviewer
+
+Sommigen van mij (misschien weet ik de antwoorden al, maar wil hun mening of teamperspectief):
+
+- Hoe groot is uw team?
+- Hoe ziet je ontwikkelcyclus eruit? Doe je aan waterval/sprints/agile?
+- Zijn haasten naar deadlines gebruikelijk? Of is er flexibiliteit?
+- Hoe worden beslissingen genomen in uw team?
+- Hoeveel vergaderingen heeft u per week?
+- Heb je het gevoel dat je werkomgeving je helpt om je te concentreren?
+- Waar werk je aan?
+- Wat vind je er leuk aan?
+- Hoe is het werkleven?
+- Hoe is de werk/privé balans?
+
+## Zodra je de baan hebt
+
+Gefeliciteerd!
+
+Blijf leren.
+
+Je bent nooit echt klaar.
+
+---
+
+ ************************************************** ************************************************** *
+ ************************************************** ************************************************** *
+
+ Alles onder dit punt is optioneel. Het is NIET nodig voor een instapgesprek.
+ Door deze te bestuderen, krijgt u echter meer kennis van meer CS-concepten en bent u beter voorbereid op
+ elke software-engineering baan. Je zult een veel completere software-engineer zijn.
+
+ ************************************************** ************************************************** *
+ ************************************************** ************************************************** *
+
+---
+
+## Extra boeken
+
+ Deze zijn hier zodat u zich kunt verdiepen in een onderwerp dat u interessant vindt.
+
+- [De Unix-programmeeromgeving](https://www.amazon.com/dp/013937681X)
+ - Een oudje maar een goodie
+- [De Linux-opdrachtregel: een complete introductie](https://www.amazon.com/dp/1593273894/)
+ - Een moderne optie
+- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
+- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
+ - Een zachte introductie tot ontwerppatronen
+- [Ontwerppatronen: elementen van herbruikbare objectgeoriënteerde software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - AKA het boek "Bende van vier", of GOF
+ - Het canonieke ontwerppatronenboek
+- [Handleiding voor algoritmeontwerp](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - Als beoordeling en probleemherkenning
+ - Het gedeelte van de algoritmecatalogus valt ver buiten de moeilijkheidsgraad die je in een interview krijgt
+ - Dit boek heeft 2 delen:
+ - Klasboek over datastructuren en algoritmen
+ - Voordelen:
+ - Is een goede recensie zoals elk leerboek over algoritmen zou zijn?
+ - Leuke verhalen uit zijn ervaringen met het oplossen van problemen in de industrie en de academische wereld
+ - Codevoorbeelden in C
+ - Nadelen:
+ - Kan net zo dicht of ondoordringbaar zijn als CLRS, en in sommige gevallen kan CLRS een beter alternatief zijn voor sommige onderwerpen
+ - Hoofdstukken 7, 8, 9 kunnen pijnlijk zijn om te proberen te volgen, omdat sommige items niet goed worden uitgelegd of meer hersens nodig hebben dan ik heb
+ - Begrijp me niet verkeerd: ik hou van Skiena, zijn manier van lesgeven en maniertjes, maar ik ben misschien geen materiaal van Stony Brook
+ - Algoritme catalogus:
+ - Dit is de echte reden waarom je dit boek koopt.
+ - Dit boek is beter als algoritme-referentie, en niet als iets dat je van kaft tot kaft leest.
+ - Kan het huren op Kindle
+ - Antwoorden:
+ - [Oplossingen](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - Het boek is gepubliceerd in 2004 en is enigszins verouderd, maar het is een geweldige bron om een computer in het kort te begrijpen
+ - De auteur nodigt uit
+
+ ented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), dus neem vermeldingen en voorbeelden in HLA met een korreltje zout. Niet veel gebruikt, maar goede voorbeelden van hoe montage eruit ziet
+ - Deze hoofdstukken zijn het lezen waard om je een mooie basis te geven:
+ - Hoofdstuk 2 - Numerieke weergave
+ - Hoofdstuk 3 - Binaire rekenkunde en bitbewerkingen
+ - Hoofdstuk 4 - Representatie met drijvende komma
+ - Hoofdstuk 5 - Karakterweergave
+ - Hoofdstuk 6 - Geheugenorganisatie en toegang
+ - Hoofdstuk 7 - Samengestelde gegevenstypen en geheugenobjecten
+ - Hoofdstuk 9 - CPU-architectuur
+ - Hoofdstuk 10 - Architectuur van instructieset
+ - Hoofdstuk 11 - Geheugenarchitectuur en -organisatie
+- [Inleiding tot algoritmen](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - **Belangrijk:** Het lezen van dit boek heeft maar een beperkte waarde. Dit boek is een geweldige recensie van algoritmen en datastructuren, maar zal je niet leren hoe je goede code schrijft. Je moet een fatsoenlijke oplossing efficiënt kunnen coderen
+ - AKA CLR, soms CLRS, omdat Stein te laat bij de wedstrijd was
+- [Computerarchitectuur, zesde editie: een kwantitatieve benadering](https://www.amazon.com/dp/0128119055)
+ - Voor een rijkere, meer up-to-date (2017), maar langere behandeling
+
+## Systeemontwerp, schaalbaarheid, gegevensverwerking
+
+**Je kunt systeemontwerpvragen verwachten als je meer dan 4 jaar ervaring hebt.**
+
+- Schaalbaarheid en systeemontwerp zijn zeer grote onderwerpen met veel onderwerpen en bronnen, sinds
+ er komt veel kijken bij het ontwerpen van een software/hardwaresysteem dat kan worden geschaald.
+ Verwacht hier behoorlijk wat tijd aan te besteden
+- Overwegingen:
+ - Schaalbaarheid
+ - Distilleer grote datasets naar enkele waarden
+ - Transformeer de ene dataset naar de andere
+ - Omgaan met obsceen grote hoeveelheden gegevens
+ - Systeem ontwerp
+ - functiesets
+ - interfaces
+ - klassenhiërarchieën
+ - een systeem ontwerpen onder bepaalde beperkingen
+ - eenvoud en robuustheid
+ - afwegingen
+ - prestatieanalyse en optimalisatie
+- [ ] **START HIER**: [De System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [Systeemontwerp van HiredInTech](http://www.hiredintech.com/system-design/)
+- [ ] [Hoe bereid ik me voor op het beantwoorden van ontwerpvragen in een technisch interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical -interview?redirected_qid=1500023)
+- [ ] [8 dingen die u moet weten voordat u een systeemontwerpgesprek voert](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before -systeem-ontwerp-interviews/)
+- [ ] [Databasenormalisatie - 1NF, 2NF, 3NF en 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - Er zijn veel bronnen in deze. Bekijk de artikelen en voorbeelden. Ik heb er een paar hieronder gezet
+- [ ] [Hoe een systeemontwerpgesprek te halen](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems -ontwerp-interview/)
+- [ ] [Nummers die iedereen moet weten](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [Hoe lang duurt het om van context te wisselen?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [Transacties in datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [Een eenvoudige Engelse inleiding tot de CAP-stelling](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: gedistribueerde systemen, lente 2020 (20 video's)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] Consensusalgoritmen:
+ - [ ] Paxos - [Overeenkomst van Paxos - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [Gemakkelijk te lezen papier](https://raft.github.io/)
+ - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
+- [ ] [Consistent hashen](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL-patronen](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] Schaalbaarheid:
+ - Je hebt deze niet allemaal nodig. Kies er gewoon een paar uit die je interesseren.
+ - [ ] [Geweldig overzicht (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] Korte reeks:
+ - [Klonen](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [Asynchronisme](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [Schaalbare webarchitectuur en gedistribueerde systemen](http://www.aosabook.org/en/dissys.html)
+ - [ ] [Fallacie
+
+ s van Distributed Computing uitgelegd](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [Jeff Dean - Softwaresystemen bouwen bij Google en geleerde lessen (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [Inleiding tot Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [Mobiele games schalen naar een wereldwijd publiek met App Engine en Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [Hoe Google Planet-Scale Engineering doet voor Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [Het belang van algoritmen](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
+ - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [7 jaar schaalbaarheidslessen op YouTube in 30 minuten](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html )
+ - [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [Hoe PayPal opschaalde naar miljarden transacties per dag met slechts 8 VM's](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using -ju.html)
+ - [ ] [Duplicaten verwijderen in grote datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [Een kijkje in Etsy's schaal en technische cultuur met Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [Wat leidde Amazon tot zijn eigen microservices-architectuur](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [Comprimeren of niet comprimeren, dat was de vraag van Uber](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [Wanneer moet geschatte queryverwerking worden gebruikt?](http://highscalability.com/blog/2016/2/25/when-should- approximate-query-processing-be-used.html)
+ - [ ] [Google's transitie van één datacenter, naar failover, naar een native multihomed-architectuur]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover- naar-een-n.html)
+ - [ ] [De beeldoptimalisatietechnologie die miljoenen verzoeken per dag bedient](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re .html)
+ - [ ] [Een korte Patreon-architectuur](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [Tinder: hoe bepaalt een van de grootste aanbevelingsengines wie u hierna zult zien?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of- de-grootste-aanbeveling-engines-de.html)
+ - [ ] [Ontwerp van een moderne cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [Live videostreaming op Facebook-schaal](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [Een beginnershandleiding voor het schalen naar 11 miljoen+ gebruikers op Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million- gebruikers-op-amazons.html)
+ - [ ] [Een 360 graden beeld van de hele Netflix-stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html )
+ - [ ] [Latency is overal en het kost je omzet - Hoe het te verpletteren](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [What Powers Instagram: honderden instanties, tientallen technologieën](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
+ - [ ] [Salesforce-architectuur - hoe ze 1,3 miljard transacties per dag verwerken](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html )
+ - [ ] [ESPN's architectuur op schaal - werkend met 100.000 Duh Nuh Nuhs per seconde](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh -nuh-nuhs.html)
+ - [ ] Zie "Messaging, Seriization en Queuing Systems" hieronder voor informatie over enkele van de technologieën die services aan elkaar kunnen lijmen
+ - [ ] Twitter:
+ - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [Tijdlijnen op schaal](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - Zie voor meer informatie de videoserie "Massive datasets ontginnen" in de sectie [Video Series](#video-series)
+- [ ] Het systeemontwerpproces oefenen: hier zijn enkele ideeën om op papier uit te werken, elk met wat documentatie over hoe het in de echte wereld werd behandeld:
+ - recensie: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [Systeemontwerp van HiredInTech](http://www.hiredintech.com/syste
+
+ m-ontwerp/)
+ - [spiekbriefje](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - stromen:
+ 1. Begrijp het probleem en de reikwijdte:
+ - Definieer de gebruiksscenario's, met de hulp van de interviewer
+ - Stel extra functies voor
+ - Verwijder items die de interviewer buiten het bereik acht
+ - Ga ervan uit dat hoge beschikbaarheid vereist is, voeg dit toe als een use case
+ 2. Denk na over beperkingen:
+ - Vraag hoeveel verzoeken per maand
+ - Vraag hoeveel verzoeken per seconde (ze kunnen het vrijwillig doen of je laten rekenen)
+ - Schatting lees- versus schrijfpercentage
+ - Houd rekening met de 80/20-regel bij het schatten
+ - Hoeveel gegevens per seconde geschreven
+ - Totale opslag vereist over 5 jaar
+ - Hoeveel gegevens per seconde worden gelezen
+ 3. Abstract ontwerp:
+ - Lagen (service, data, caching)
+ - Infrastructuur: load balancing, messaging
+ - Ruw overzicht van elk belangrijk algoritme dat de service aanstuurt
+ - Overweeg knelpunten en bepaal oplossingen
+ - Opdrachten:
+ - [Ontwerp een willekeurig uniek ID-generatiesysteem](https://blog.twitter.com/2010/announcing-snowflake)
+ - [Ontwerp een sleutelwaardedatabase](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [Ontwerp een systeem voor het delen van foto's](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [Ontwerp een aanbevelingssysteem](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [Ontwerp een URL-verkortingssysteem: van bovenaf gekopieerd](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [Ontwerp een cachesysteem](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
+
+## Extra leren
+
+ Ik heb ze toegevoegd om je te helpen een goed afgeronde software-engineer te worden, en om je bewust te zijn van bepaalde
+ technologieën en algoritmen, zodat je een grotere gereedschapskist hebt.
+
+- ### Compilers
+ - [Hoe een compiler werkt in ongeveer 1 minuut (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
+ - [Inzicht in Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+
+- ### Emacs en vi(m)
+ - Maak uzelf vertrouwd met een op Unix gebaseerde code-editor
+ -vi(m):
+ - [Bewerken met vim 01 - Installatie, configuratie en de modi (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [VIM-avonturen](http://vim-adventures.com/)
+ - set van 4 video's:
+ - [De vi/vim-editor - Les 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
+ - [De vi/vim-editor - Les 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
+ - [De vi/vim-editor - Les 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
+ - [De vi/vim-editor - Les 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
+ - [Vi gebruiken in plaats van Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
+ - emacs:
+ - [Basis Emacs-zelfstudie (video)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - set van 3 (video's):
+ - [Emacs-zelfstudie (beginners) - Deel 1- Bestandsopdrachten, knippen/kopiëren/plakken, cursoropdrachten](https://www.youtube.com/watch?v=ujODL7MD04Q)
+ - [Emacs-zelfstudie (beginners) - Deel 2- Bufferbeheer, zoeken, M-x grep- en rgrep-modi](https://www.youtube.com/watch?v=XWpsRupJ4II)
+ - [Emacs-zelfstudie (beginners) - Deel 3- Uitdrukkingen, verklaringen, ~/.emacs-bestand en pakketten](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [Evil Mode: Of, hoe ik heb geleerd te stoppen met piekeren en van Emacs te houden (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
+ - [C-programma's schrijven met Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+- [De absolute beginnershandleiding voor Emacs (video door David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+- [De absolute beginnersgids voor Emacs (aantekeningen door David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
+
+- ### Unix-opdrachtregelprogramma's
+ - Onderstaande lijst heb ik ingevuld vanuit goede tools.
+ - bash
+ - kat
+ - grep
+ - sed
+ - awk
+ - krul of wget
+ - sorteren
+ - tr
+ - uniek
+ - [strace](https://en.wikipedia.org/wiki/Strace)
+ - [tcpdump](https://danielmiessler.com/study/tcpdump/)
+
+- ### Informatietheorie (video's)
+ - [Khan Academie](https://www.khanacademy.org/computing/computer-science/informationtheory)
+ - Meer over Markov-processen:
+ - [Core Markov-tekstgeneratie](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
+ - [Kernimplementatie Markov-tekstgeneratie](https://
+
+ www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
+ - [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
+ - Zie hieronder meer in de MIT 6.050J Informatie- en Entropy-serie:
+
+- ### Pariteit & Hamming-code (video's)
+ - [Inleiding](https://www.youtube.com/watch?v=q-3BctoUpHE)
+ - [Pariteit](https://www.youtube.com/watch?v=DdMcAUlxh1M)
+ - Hamming-code:
+ - [Foutdetectie](https://www.youtube.com/watch?v=1A_NcXxdoCc)
+ - [Foutcorrectie](https://www.youtube.com/watch?v=JAMLuxdHH8o)
+ - [Foutcontrole](https://www.youtube.com/watch?v=wbH2VxzmoZk)
+
+- ### Entropie
+ - Zie ook onderstaande video's
+ - Zorg ervoor dat je eerst informatietheorie-video's bekijkt
+ - [Informatietheorie, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
+
+- ### Cryptografie
+ - Zie ook onderstaande video's
+ - Zorg ervoor dat je eerst informatietheorie-video's bekijkt
+ - [Khan Academy-serie](https://www.khanacademy.org/computing/computer-science/cryptography)
+ - [Cryptografie: hashfuncties](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
+ - [Cryptografie: versleuteling](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- ### Compressie
+ - Zorg ervoor dat je eerst informatietheorie-video's bekijkt
+ - Computerfiel (video's):
+ - [Compressie](https://www.youtube.com/watch?v=Lto-ajuqW3w)
+ - [Entropie in compressie](https://www.youtube.com/watch?v=M5c_RFKVkko)
+ - [Ondersteboven Bomen (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
+ - [EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
+ - [Elegante compressie in tekst (de LZ 77-methode)](https://www.youtube.com/watch?v=goOa3DGezUA)
+ - [Tekstcompressie voldoet aan waarschijnlijkheden](https://www.youtube.com/watch?v=cCDCfoHTsaU)
+ - [Video's van de compressorkop](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
+ - [(optioneel) Google Developers Live: GZIP is niet genoeg!](https://www.youtube.com/watch?v=whGwm0Lky2s)
+
+- ### Computer beveiliging
+ - [MIT (23 video's)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Inleiding, bedreigingsmodellen](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Controleer kapingaanvallen](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
+ - [Uitbuiting en verdediging tegen bufferoverloop](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
+ - [Privilege scheiding](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Mogelijkheden](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Sandboxing-native code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
+ - [Webbeveiligingsmodel](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Webapplicaties beveiligen](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Symbolische uitvoering](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Netwerkbeveiliging](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Netwerkprotocollen](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- ### Afvalinzameling
+ - [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
+ - [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
+ - [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+
+- ### Parallel programmeren
+ - [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
+ - [Efficiënte Python voor High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+
+- ### Messaging-, serialisatie- en wachtrijsystemen
+ - [Zuurzaamheid](https://zuinigheid.apache.org/)
+ - [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Protocolbuffers](https://developers.google.com/protocol-buffers/)
+ - [Tutorials](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [gRPC 101 voor Java-ontwikkelaars (video)](https://www.youtube.com/
+
+ kijken?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Tutorial](http://try.redis.io/)
+ - [Amazon SQS (wachtrij)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Aan de slag](https://www.rabbitmq.com/getstarted.html)
+ - [Selderij](http://www.celeryproject.org/)
+ - [Eerste stappen met selderij](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Intro - Lees de handleiding](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### EEN*
+ - [Een zoekalgoritme](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Pathfinding (E01: uitleg algoritme) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Snelle Fourier-transformatie
+ - [Een interactieve gids voor de Fourier-transformatie](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [Wat is een Fourier-transformatie? Waar wordt het voor gebruikt?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [Wat is de Fourier-transformatie? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Verdeel en heers: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [De FFT begrijpen](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Bloeifilter
+ - Gegeven een Bloom-filter met m-bits en k hashing-functies, zijn zowel insertie- als lidmaatschapstesten O(k)
+ - [Bloom-filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Bloom-filters | Mijnbouw van enorme datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Tutorial](http://billmill.org/bloomfilter-tutorial/)
+ - [Hoe een Bloom-filter-app te schrijven](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+
+- ### HyperLogLog
+ - [Hoe een miljard verschillende objecten te tellen met slechts 1,5 KB geheugen](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct -objecten-us.html)
+
+- ### Plaatsgevoelige hashing
+ - Gebruikt om de gelijkenis van documenten te bepalen
+ - Het tegenovergestelde van MD5 of SHA die worden gebruikt om te bepalen of 2 documenten/strings precies hetzelfde zijn
+ - [Simhashing (hopelijk) eenvoudig gemaakt](http://ferd.ca/simhashing-hopefully-made-simple.html)
+
+- ### van Emde Boas Trees
+ - [Verdeel en heers: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes /MIT6_046JS12_lec15.pdf)
+
+- ### Augmented Data Structures
+ - [CS 61B Lezing 39: Gegevensstructuren vergroten](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
+
+- ### Evenwichtige zoekbomen
+ - Ken ten minste één type gebalanceerde binaire boom (en weet hoe deze wordt geïmplementeerd):
+ - "Onder evenwichtige zoekbomen zijn AVL- en 2/3-bomen nu passé en lijken rood-zwarte bomen populairder.
+ Een bijzonder interessante zelforganiserende datastructuur is de splay tree, die gebruik maakt van rotaties
+ om elke geopende sleutel naar de root te verplaatsen." - Skiena
+ - Hiervan heb ik ervoor gekozen om een splay tree te implementeren. Van wat ik heb gelezen, implementeer je geen
+ evenwichtige zoekboom in uw interview. Maar ik wilde blootstelling aan het coderen van een up
+ en laten we eerlijk zijn, spreidende bomen zijn de knieën van de bij. Ik heb veel rood-zwarte boomcode gelezen
+ - Splay tree: functies invoegen, zoeken, verwijderen
+ Als je uiteindelijk een rode / zwarte boom implementeert, probeer dan deze:
+ - Zoek- en invoegfuncties, verwijderen overslaan
+ - Ik wil meer weten over B-Tree omdat het zo veel wordt gebruikt met zeer grote datasets
+ - [Zelfbalancerende binaire zoekboom](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
+
+ - **AVL-bomen**
+ - In praktijk:
+ Voor zover ik kan zien, worden deze in de praktijk niet veel gebruikt, maar ik kon zien waar ze zouden zijn:
+ De AVL-boom is een andere structuur die het zoeken, invoegen en verwijderen van O(log n) ondersteunt. Het is meer rigide
+ evenwichtiger dan rood-zwarte bomen, wat leidt tot langzamer inbrengen en verwijderen, maar sneller ophalen. Dit maakt het
+ aantrekkelijk voor datastructuren die eenmalig kunnen worden gebouwd en zonder reconstructie kunnen worden geladen, zoals taal
+ woordenboeken (of programmawoordenboeken, zoals de opcodes van een assembler of interpreter)
+ - [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ -
+
+ [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [AVL Tree-implementatie (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [Splitsen en samenvoegen](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+
+ - **Splay bomen**
+ - In praktijk:
+ Splay-bomen worden meestal gebruikt bij de implementatie van caches, geheugentoewijzers, routers, afvalverzamelaars,
+ datacompressie, ropes (vervanging van string gebruikt voor lange tekststrings), in Windows NT (in het virtuele geheugen,
+ netwerk- en bestandssysteemcode) enz
+ - [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
+ - MIT Lezing: Splay Trees:
+ - Wordt heel wiskundig, maar kijk zeker de laatste 10 minuten.
+ - [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
+
+ - **Rood/zwarte bomen**
+ - Dit is een vertaling van een 2-3 boom (zie hieronder).
+ - In praktijk:
+ Rood-zwarte bomen bieden in het slechtste geval garanties voor invoegtijd, verwijderingstijd en zoektijd.
+ Dit maakt ze niet alleen waardevol in tijdgevoelige toepassingen zoals real-time toepassingen,
+ maar het maakt ze waardevolle bouwstenen in andere datastructuren die in het slechtste geval garanties bieden;
+ veel datastructuren die in computationele geometrie worden gebruikt, kunnen bijvoorbeeld gebaseerd zijn op rood-zwarte bomen, en
+ de volledig eerlijke planner die in de huidige Linux-kernels wordt gebruikt, gebruikt rood-zwarte bomen. In versie 8 van Java,
+ de Collection HashMap is zodanig aangepast dat in plaats van een LinkedList te gebruiken om identieke elementen op te slaan met een slechte
+ hashcodes, wordt een rood-zwarte boom gebruikt
+ - [Aduni - Algoritmen - Lezing 4 (link springt naar startpunt) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - Algoritmen - Lezing 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [Rood-Zwarte Boom](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
+ - [Een inleiding tot binair zoeken en Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+
+ - **2-3 zoekbomen**
+ - In praktijk:
+ 2-3 bomen hebben snellere invoegingen ten koste van langzamere zoekopdrachten (omdat de hoogte meer is in vergelijking met AVL-bomen).
+ - U zou 2-3 tree zeer zelden gebruiken omdat de implementatie verschillende soorten knooppunten omvat. In plaats daarvan gebruiken mensen roodzwarte bomen.
+ - [23-Tree Intuïtie en Definitie (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [Binaire weergave van 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [2-3 Trees (recitatie van studenten) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+ - **2-3-4 bomen (ook bekend als 2-4 bomen)**
+ - In praktijk:
+ Voor elke 2-4 boom zijn er corresponderende rood-zwarte bomen met data-elementen in dezelfde volgorde. Het invoegen en verwijderen
+ bewerkingen op 2-4 bomen zijn ook gelijk aan kleuromkering en rotaties in rood-zwarte bomen. Dit maakt 2-4 bomen een
+ belangrijk hulpmiddel om de logica achter rood-zwarte bomen te begrijpen, en dit is de reden waarom veel inleidende algoritmeteksten introduceren:
+ 2-4 bomen net voor roodzwarte bomen, hoewel **2-4 bomen in de praktijk niet vaak worden gebruikt**.
+ - [CS 61B Lezing 26: Evenwichtige zoekbomen (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
+ - [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
+
+ - **N-ary (K-ary, M-ary) bomen**
+ - let op: de N of K is de vertakkingsfactor (max. vertakkingen)
+ - binaire bomen zijn een 2-voudige boom, met vertakkingsfactor = 2
+ - 2-3 bomen zijn 3-ary
+ - [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
+
+ - **B-bomen**
+ - Leuk weetje: het is een mysterie, maar de B zou kunnen staan voor Boeing, Balanced of Bayer (mede-uitvinder).
+ - In praktijk:
+ B-Trees worden veel gebruikt in databases. De meeste moderne bestandssystemen gebruiken B-trees (of varianten). In aanvulling op
+ het gebruik in databases, wordt de B-tree ook gebruikt in bestandssystemen om snelle willekeurige toegang tot een willekeurige
+ blok in een bepaald bestand. Het basisprobleem is om het bestandsblok i-adres in een schijfblok te veranderen
+ (of misschien naar een cilinderkop-sector) adres
+ - [B-Tree](https://en.wikipedia.org/wiki/B-Tree)
+ - [B-Tree gegevensstructuur](http://btechsmartclass.com/
+
+ data_structures/b-trees.html)
+ - [Inleiding tot B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [B-Tree definitie en invoeging (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [B-Tree verwijdering (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [MIT 6.851 - Geheugenhiërarchiemodellen (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - omvat cache-onwetende B-Trees, zeer interessante datastructuren
+ - de eerste 37 minuten zijn erg technisch, kunnen worden overgeslagen (B is blokgrootte, cacheregelgrootte)
+
+
+- ### k-D Bomen
+ - Geweldig voor het vinden van het aantal punten in een rechthoek of object met een hogere dimensie
+ - Een goede pasvorm voor k-dichtstbijzijnde buren
+ - [kNN K-d tree-algoritme (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+
+- ### Sla lijsten over
+ - "Dit is een beetje een cultgegevensstructuur" - Skiena
+ - [Randomisatie: lijsten overslaan (video)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [Voor animaties en wat meer details](https://en.wikipedia.org/wiki/Skip_list)
+
+- ### Netwerkstromen
+ - [Ford-Fulkerson in 5 minuten — Stap voor stap voorbeeld (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
+ - [Ford-Fulkerson-algoritme (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [Netwerkstromen (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+
+- ### Disjuncte Sets & Union Find
+ - [UCB 61B - onsamenhangende sets; Sorteren & selecteren (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
+ - [Sedgewick-algoritmen - Union-Find (6 video's)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
+
+- ### Wiskunde voor snelle verwerking
+ - [Rekenen met geheel getal, Karatsuba-vermenigvuldiging (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [De Chinese Reststelling (gebruikt in cryptografie) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+
+- ### Treap
+ - Combinatie van een binaire zoekboom en een heap
+ - [Treap](https://en.wikipedia.org/wiki/Treap)
+ - [Datastructuren: Treaps uitgelegd (video)](https://www.youtube.com/watch?v=6podLUYinH8)
+ - [Toepassingen in vaste bewerkingen](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
+
+- ### Lineaire programmering (video's)
+ - [Lineaire programmering](https://www.youtube.com/watch?v=M4K6HYLHREQ)
+ - [Minimale kosten zoeken](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
+ - [Maximale waarde zoeken](https://www.youtube.com/watch?v=8AA_81xI3ik)
+ - [Los lineaire vergelijkingen op met Python - Simplex-algoritme](https://www.youtube.com/watch?v=44pAWI7v5Zk)
+
+- ### Geometrie, bolle romp (video's)
+ - [Grafiek Alg. IV: Inleiding tot geometrische algoritmen - Lezing 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
+ - [Geometrische algoritmen: Graham & Jarvis - Lezing 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [Verdeel en heers: bolle romp, mediane bevinding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
+
+- ### Discrete wiskunde
+ - [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [Discrete wiskunde door Shai Simonson (19 video's)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [Discrete wiskunde door IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
+
+---
+
+## Aanvullende details over sommige onderwerpen
+
+ Ik heb deze toegevoegd om enkele ideeën die hierboven al zijn gepresenteerd te versterken, maar wilde ze niet opnemen
+ hierboven omdat het gewoon te veel is. Het is gemakkelijk om het over een onderwerp te overdrijven.
+ Je wilt toch aangenomen worden in deze eeuw?
+
+- **STEVIG**
+ - [ ] [Bob Martin SOLID-principes van objectgeoriënteerd en agile ontwerpen (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [Principe van één verantwoordelijkheid](http://www.oodesign.com/single-responsibility-principle.html) | [Eén verantwoordelijkheid voor elk object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [meer smaak](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [Open/Gesloten Principe](http://www.oodesign.com/open-close-principle.html) | [Op productieniveau zijn objecten klaar voor uitbreiding, maar niet voor wijziging](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [meer smaak](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&
+ - [ ] L - [Liskov-substitutieprincipe](http://www.oodesign.com/liskov-s-substitution-p
+
+ rinciple.html) | [Basisklasse en afgeleide klasse volgen het 'IS A'-principe](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [meer smaak](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5hl=en)
+ - [ ] I - [Interface-segregatieprincipe](http://www.oodesign.com/interface-segregation-principle.html) | klanten mogen niet worden gedwongen om interfaces te implementeren die ze niet gebruiken
+ - [Interface Segregation Principle in 5 minuten (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [meer smaak](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYm)
+ - [ ] D -[Dependency Inversion-principe](http://www.oodesign.com/dependency-inversion-principle.html) | Verminder de afhankelijkheid in samenstelling van objecten.
+ - [Waarom is het afhankelijkheidsinversieprincipe en waarom is het belangrijk](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [meer smaak](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&)
+
+
+- **Union-Find**
+ - [Overzicht](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
+ - [Naïeve implementatie](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naïeve-implementations)
+ - [Bomen](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
+ - [Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
+ - [Padcompressie](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
+ - [Analyse-opties](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optioneel)
+
+- **Meer dynamische programmering** (video's)
+ - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=r4-cftqTcdI&ab_channel=MITOpenCourseWare)
+ - [6.006: Dynamic Programming II: Tekstrechtvaardiging, Blackjack](https://www.youtube.com/watch?v=KLBCUx1is2c&ab_channel=MITOpenCourseWare)
+ - [6.006: DP III: Haakjes, Bewerk Afstand, Knapzak](https://www.youtube.com/watch?v=TDo3r5M1LNo&ab_channel=MITOpenCourseWare)
+ - [6.006: DP IV: Gitaarvingeren, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=i9OAOk0CUQE&ab_channel=MITOpenCourseWare)
+ - [6.046: dynamisch programmeren en geavanceerde DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [6.046: dynamische programmering: alle paren kortste paden](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
+ - [6.046: dynamisch programmeren (recitatie van leerlingen)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+
+- **Geavanceerde grafiekverwerking** (video's)
+ - [Synchroon gedistribueerde algoritmen: symmetriebreking. Kortste paden over bomen](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
+ - [Asynchrone gedistribueerde algoritmen: kortste paden die bomen overspannen](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+
+- MIT **Waarschijnlijkheid** (wiskunde, en ga langzaam, wat goed is voor wiskundige dingen) (video's):
+ - [MIT 6.042J - Waarschijnlijkheidsintroductie](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Voorwaardelijke waarschijnlijkheid](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Onafhankelijkheid](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Willekeurige variabelen](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
+ - [MIT 6.042J - Verwachting I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Verwachting II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Grote afwijkingen](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Willekeurige wandelingen](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+
+- [Simonson: benaderingsalgoritmen (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+
+- **String Matching**
+ - Rabin-Karp (video's):
+ - [Rabin Karps-algoritme](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw)
+ - [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
+ - [Optimalisatie: implementatie en analyse](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
+ - [Tafelverdubbeling, Karp-Ra
+
+ bin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
+ - [Rolling hashes, afgeschreven analyse](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
+ - Knuth-Morris-Pratt (KMP):
+ - [THe Knuth-Morris-Pratt (KMP) String Matching Algoritme](https://www.youtube.com/watch?v=5i7oKodCRJo)
+ - Boyer-Moore string zoekalgoritme
+ - [Boyer-Moore String zoekalgoritme](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
+ - [Advanced String Searching Boyer-Moore-Horspool Algorithms (video)](https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
+ - begint geweldig, maar tegen de tijd dat het voorbij KMP komt, wordt het ingewikkelder dan het moet zijn
+ - mooie uitleg van pogingen
+ - kan worden overgeslagen
+
+- **Sorteren**
+
+ - Stanford-lezingen over sorteren:
+ - [Lezing 15 | Abstracties programmeren (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [Lezing 16 | Abstracties programmeren (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - Shai Simonson, [Aduni.org](http://www.aduni.org/):
+ - [Algoritmen - Sorteren - Lezing 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [Algoritmen - Sorteren II - Lezing 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - Steven Skiena geeft een lezing over sorteren:
+ - [CSE373 2020 - Mergesort/Quicksort (video)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - Lineair sorteren (video)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
+
+## Videoserie
+
+Leun achterover en geniet.
+
+- [Lijst met individuele problemen met dynamisch programmeren (elk is kort)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+
+- [x86 Architectuur, Assemblage, Toepassingen (11 video's)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
+
+- [MIT 18.06 lineaire algebra, lente 2005 (35 video's)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+
+- [Uitstekend - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+
+- [Skiena-lezingen uit Algorithm Design Manual - CSE373 2020 - Analyse van algoritmen (26 video's)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
+
+- [UC Berkeley 61B (lente 2014): datastructuren (25 video's)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+
+- [UC Berkeley 61B (najaar 2006): gegevensstructuren (39 video's)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
+
+- [UC Berkeley 61C: Machinestructuren (26 video's)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+
+- [OOSE: Software Dev Met UML en Java (21 video's)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+
+- [MIT 6.004: Computation Structures (49 video's)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
+
+- [Carnegie Mellon - Lezingen over computerarchitectuur (39 video's)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+
+- [MIT 6.006: Inleiding tot algoritmen (47 video's)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+
+- [MIT 6.033: Computersysteemtechniek (22 video's)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+
+- [MIT 6.034 kunstmatige intelligentie, herfst 2010 (30 video's)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+
+- [MIT 6.042J: Mathematics for Computer Science, herfst 2010 (25 video's)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+
+- [MIT 6.046: ontwerp en analyse van algoritmen (34 video's)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- [MIT 6.824: gedistribueerde systemen, lente 2020 (20 video's)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+
+- [MIT 6.851: geavanceerde datastructuren (22 video's)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+
+- [MIT 6.854: geavanceerde algoritmen, lente 2016 (24 video's)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+
+- [Harvard COMPSCI 224: geavanceerde algoritmen (25 video's)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+
+- [MIT 6.858 Beveiliging computersystemen, herfst 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- [Stanford: programmeerparadigma's (27 video's)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+
+- [Int
+
+roductie naar cryptografie door Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
+ - [Cursuswebsite samen met dia's en probleemsets](http://www.crypto-textbook.com/)
+
+- [Mening van enorme datasets - Stanford University (94 video's)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+
+- [Grafiektheorie door Sarada Herke (67 video's)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## Cursussen informatica
+
+- [Directory of Online CS-cursussen](https://github.com/open-source-society/computer-science)
+- [Directory of CS Courses (veel met online lezingen)](https://github.com/prakhar1989/awesome-courses)
+
+## Implementatie van algoritmen
+
+- [Meerdere algoritmen implementatie door Princeton University](https://algs4.cs.princeton.edu/code)
+
+
+## Papieren
+
+- [Hou je van klassieke papieren?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Opeenvolgende processen communiceren](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [geïmplementeerd in Go](https://godoc.org/github.com/thomas11/csp)
+- [2003: het Google-bestandssysteem](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - vervangen door Colossus in 2012
+- [2004: MapReduce: vereenvoudigde gegevensverwerking op grote clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - grotendeels vervangen door Cloud Dataflow?
+- [2006: Bigtable: een gedistribueerd opslagsysteem voor gestructureerde gegevens](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: de Chubby Lock-service voor los gekoppelde gedistribueerde systemen](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dynamo: Amazon's hoogst beschikbare sleutelwaardewinkel](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Het Dynamo-papier begon de NoSQL-revolutie
+- [2007: wat elke programmeur moet weten over geheugen (erg lang, en de auteur moedigt het overslaan van sommige secties aan)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: een snelle adressanity checker:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: de wereldwijd gedistribueerde database van Google:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [video](https://www.usenix.org/node/170855)
+- [2015: continue pijplijnen bij Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: hoge beschikbaarheid op enorme schaal: bouwen aan Google's data-infrastructuur voor advertenties](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Hoe ontwikkelaars naar code zoeken: een casestudy](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- Meer papers: [1.000 papers](https://github.com/0voice/computer_expert_paper)
+
+## LICENTIE
+
+[CC-BY-SA-4.0](./LICENSE.txt)
\ No newline at end of file
From 70de5364117c7374600bf85d9263607fd504b115 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Wed, 26 Oct 2022 22:59:54 +0600
Subject: [PATCH 009/173] revise and rewrite first 5 section
---
translations/README-bn.md | 114 ++++++++++++++++++++++----------------
1 file changed, 67 insertions(+), 47 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 07c5ed4def..d2c4143ab9 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -7,6 +7,8 @@
>
> আমি বেশ কয়েক মাস ধরে প্রতিদিন প্রায় ৮-১২ ঘন্টা অধ্যয়ন করেছি। এটি আমার গল্প: [গুগল সাক্ষাত্কারের জন্যি কেন আমি ৮ মাস পূর্ণ-সময় অধ্যয়ন করেছি?](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
+> **দয়া করে মনে রাখবেন:** আপনাকে আমার মত পড়াশুনা করতে হবে না। আমার জানার প্রয়োজন নেই এমন জিনিসগুলিতে আমি অনেক সময় নষ্ট করেছি। নিচে যে সম্পর্কে আরও তথ্য আছে। আপনার মূল্যবান সময় নষ্ট না করে আমি আপনাকে সেখানে যেতে সাহায্য করব।
+
> এখানে তালিকাভুক্ত আইটেমগুলি আপনাকে, অ্যামাজন, ফেসবুক, গুগল বা মাইক্রোসফ্ট - এর মতো টেক জায়ান্টস সহ যে কোনও সফ্টওয়্যার সংস্থার সম্পর্কে একটি সাক্ষাত্কারের জন্য ভালভাবে প্রস্তুত করবে ।
>
> *আপনার জন্য শুভকামনা!*
@@ -52,10 +54,10 @@
- Become a sponsor and support Coding Interview University!
+ পৃষ্ঠপোষক হয়ে যান এবং কোডিং ইন্টারভিউ বিশ্ববিদ্যালয় সমর্থন করুন!
- Special thanks to:
+ বিশেষ ধন্যবাদঃ
@@ -83,17 +85,17 @@

কোনও বড় প্রতিষ্ঠানের সফটওয়্যার ইঞ্জিনিয়ারের কাছে ওয়েব বিকাশকারী (স্ব-শিক্ষিত, কোনও সিএস ডিগ্রি) থেকে যাওয়ার জন্য এটি আমার বহু মাসের অধ্যয়ন পরিকল্পনা।
+
+**অপরিহার্যঃ**
+* কোডিং নিয়ে একটু অভিজ্ঞতা (variables, loops, methods/functions, etc)
+* ধৈর্য
+* সময়
-এটি
-* নতুন সফটওয়্যার ইঞ্জিনিয়ার
-* বা যাঁরা স্যুইচ করছেন তাদের জন্য
-* সফ্টওয়্যার / ওয়েব ডেভলপমেন্ট সফটওয়্যার ইঞ্জিনিয়ারিং (যেখানে কম্পিউটার বিজ্ঞানের জ্ঞান প্রয়োজন)। যদি তোমার থাকে
-বহু বছরের অভিজ্ঞতা রয়েছে এবং সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বহু বছরের অভিজ্ঞতা দাবি করছেন, আরও একটি কঠিন সাক্ষাত্কারের প্রত্যাশা করুন।
-
-আপনার যদি অনেক বছরের সফ্টওয়্যার / ওয়েব বিকাশের অভিজ্ঞতা থাকে তবে নোট করুন যে গুগল, অ্যামাজন,
-ফেসবুক এবং মাইক্রোসফ্ট সফ্টওয়্যার ইঞ্জিনিয়ারিং সফ্টওয়্যার / ওয়েব বিকাশ থেকে আলাদা হিসাবে দেখে এবং তাদের কম্পিউটার বিজ্ঞানের জ্ঞান প্রয়োজন।
-
-আপনি যদি নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে listচ্ছিক তালিকা (নেটওয়ার্কিং, সুরক্ষা) থেকে আরও অধ্যয়ন করুন।
+এটা **সফ্টওয়্যার ইঞ্জিনিয়ারিং** এর জন্য অধ্যয়ন পরিকল্পনা, ওয়েব ডেভেলপমেন্টের জন্য নয়। বড় সফটওয়্যার কোম্পানি যেমন গুগল, অ্যামাজন,
+ফেসবুক এবং মাইক্রোসফট সফটওয়্যার ইঞ্জিনিয়ারিংকে ওয়েব ডেভেলপমেন্ট থেকে আলাদা বলে মনে করে। উদাহরণস্বরূপ, অ্যামাজন আছে
+ফ্রন্টেন্ড ইঞ্জিনিয়ার্স (FEE) এবং সফটওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার্স (SDE)। এই দুটি পৃথক পদ এবং তার জন্য সাক্ষাৎকার
+তারা একই হবে না, প্রত্যেকের নিজস্ব দক্ষতা আছে। এই কোম্পানিগুলো চায় কম্পিউটার বিজ্ঞান জ্ঞান
+সফ্টওয়্যার ডেভেলপমেন্ট/ইঞ্জিনিয়ারিং পদের জন্য।
---
@@ -106,13 +108,17 @@
- [এটি কীভাবে ব্যবহার করবেন](#এটি-কীভাবে-ব্যবহার-করবেন)
- [মনে হয় আপনি যথেষ্ট স্মার্ট নন](#মনে-করেন-না-আপনি-স্মার্ট-যথেষ্ট)
- [ভিডিও সংস্থান সম্পর্কে](#ভিডিও-সংস্থান-সম্পর্কে)
-- [সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি](#সাক্ষাত্কার-প্রক্রিয়া-সাধারণ-সাক্ষাত্কার-প্রস্তুতি)
- [একটি প্রোগ্রামিং ভাষা নির্বাচন করুন](#একটি-প্রোগ্রামিং-ভাষা-নির্বাচন-করুন)
-- [বইয়ের তালিকা](#বুক-তালিকা)
-- [আপনি শুরু করার আগে](#আপনি-আগে-শুরু-করার-আগে)
-- [যা আপনি আবৃত দেখবেন না](#কী-আপনি-দেখতে-পাবেন-না)
-- [পূর্বশর্ত জ্ঞান](#পূর্বশর্ত-জ্ঞান)
+- [ডেটা স্ট্রাকচার এবং অ্যালগরিদমের জন্য বই](#ডেটা-স্ট্রাকচার-এবং-অ্যালগরিদমের-জন্য-বই)
+- [ইন্টারভিউ প্রস্তুতি বই](#ইন্টারভিউ-প্রস্তুতি-বই)
+- [আমার মত ভুল করবেন না](#আমার-মত-ভুল-করবেন-না)
+- [এখানে যে বিষয়গুলো থাকবে না](#এখানে-যে-বিষয়গুলো-থাকবে-না)
- [দৈনিক পরিকল্পনা](#দৈনিক-পরিকল্পনা)
+- [কোডিং প্রশ্ন অনুশীলন](#কোডিং-প্রশ্ন-অনুশীলন)
+- [কোডিং চ্যালেঞ্জ](#কোডিং-চ্যালেঞ্জ)
+
+### অধ্যয়নের বিষয়
+
- [অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপটোটিক বিশ্লেষণ](#অ্যালগোরিদমিক-জটিলতা-বিগ-ও-অ্যাসিপোটোটিক-বিশ্লেষণ)
- [ডেটা স্ট্রাকচার](#ডেটা-স্ট্রাকচার)
-[অ্যারে](#অ্যারে)
@@ -221,46 +227,60 @@
---
-##কেন এটি ব্যবহার করবেন?
-
-আমি যখন এই প্রকল্পটি শুরু করেছি, তখন আমি একটি স্তূপ থেকে একটি স্ট্যাক জানি না, বিগ-ও কিছুই জানতাম না, গাছ সম্পর্কে কিছুই বা কীভাবে করব
-একটি গ্রাফ অতিক্রম করুন। যদি আমাকে কোনও বাছাই করা অ্যালগরিদম কোড করতে হয়, আমি তোমাকে বলতে পারি এটি খুব ভাল হত না।
-আমি যে ডেটা কাঠামোটি ব্যবহার করেছি সেগুলি ভাষাতে নির্মিত হয়েছিল এবং তারা কীভাবে কাজ করেছিল তা আমি জানতাম না
-আদৌ হুডের নিচে। আমি যে প্রক্রিয়াটি চালিয়ে যাচ্ছিলাম তা যদি না হয় তবে আমার কখনই মেমোরি পরিচালনা করতে হয়নি
-স্মৃতিশক্তি "ত্রুটি, এবং তারপরে আমাকে একটি কাজের সন্ধান করতে হবে I've আমি আমার জীবনে কয়েকটি বহুমাত্রিক অ্যারে ব্যবহার করেছি এবং
-সহস্রাধিক সংঘবদ্ধ অ্যারে, তবে আমি স্ক্র্যাচ থেকে কখনও ডেটা স্ট্রাকচার তৈরি করি নি।
-
-এটি একটি দীর্ঘ পরিকল্পনা। এটি আপনার কয়েক মাস সময় নিতে পারে। আপনি যদি ইতিমধ্যে এর অনেকের সাথে পরিচিত হন তবে আপনাকে অনেক কম সময় লাগবে।
-
-##এটি কিভাবে ব্যবহার করতে
-
-
-এটি কীভাবে ব্যবহার করবেন
+## কেন এটি ব্যবহার করবেন?
-নীচের সমস্ত কিছুই একটি রূপরেখা এবং আপনার আইটেমগুলি উপরের থেকে নীচে পর্যন্ত সামলানো উচিত।
-
-অগ্রগতি পরীক্ষা করার জন্য কার্য তালিকা সহ আমি গিথুবের বিশেষ মার্কডাউন গন্ধ ব্যবহার করছি।
-
-** একটি নতুন শাখা তৈরি করুন যাতে আপনি এর মতো আইটেমগুলি পরীক্ষা করতে পারেন, বন্ধনীগুলিতে কেবল একটি এক্স রাখুন: [x] **
+আপনি যদি একটি বড় কোম্পানির সফটওয়্যার ইঞ্জিনিয়ার হিসেবে কাজ করতে চান, তাহলে এই বিষয়গুলো আপনাকে জানতে হবে।
+
+আপনি যদি কম্পিউটার সায়েন্সে ডিগ্রী পেতে মিস করেন, যেমন আমি করেছি, এটি আপনাকে ধরবে এবং আপনার জীবনের চার বছর বাঁচাবে।
+
+যখন আমি এই প্রকল্পটি শুরু করি, তখন আমি একটি স্তূপ থেকে একটি স্ট্যাক জানতাম না, বিগ-ও কিছুই জানতাম না, বা গাছ সম্পর্কে কিছু জানতাম না, বা কীভাবে
+একটি গ্রাফ অতিক্রম. যদি আমাকে একটি সাজানোর অ্যালগরিদম কোড করতে হয়, আমি আপনাকে বলতে পারি এটি ভয়ানক হত।
+আমার ব্যবহৃত প্রতিটি ডেটা স্ট্রাকচার ভাষাতে তৈরি করা হয়েছিল এবংআমাকে কখনই মেমরি ম্যানেজ করতে হয়নি যদি না আমি যে প্রক্রিয়াটি চালাচ্ছি তা একটি "আউট অফ মেমরি" ইরর দেয়, এবং তারপর আমাকে একটি সমাধান খুঁজে বের করতে হবে। আমি আমার জীবনে কয়েকটি বহুমাত্রিক অ্যারে ব্যবহার করেছি এবং
+হাজার হাজার সহযোগী অ্যারে, কিন্তু আমি স্ক্র্যাচ থেকে ডেটা স্ট্রাকচার তৈরি করিনি।
+
+এটা একটা দীর্ঘ পরিকল্পনা। এটা আপনার মাস লাগতে পারে. আপনি যদি ইতিমধ্যে এটির অনেক কিছুর সাথে পরিচিত হন তবে এটি আপনার অনেক কম সময় লাগবে।
+## এটি কিভাবে ব্যবহার করতে
- একটি শাখা কাঁটাচামচ করুন এবং নীচের আদেশগুলি অনুসরণ করুন
+নীচের সমস্ত কিছুই একটি রূপরেখা এবং আপনার আইটেমগুলি উপরের থেকে নীচে পর্যন্ত অধ্যবসায় করা উচিত।
-`git checkout-b progress`
-`git remote add jwasham https://github.com/jwasham/coding-interview-university`
+অগ্রগতি পরীক্ষা করার জন্য কার্য তালিকা সহ আমি গিটহাবের বিশেষ মার্কডাউন ব্যবহার করছি।
+ - [গিটহাব মার্কডাউন সম্পর্কে আরও](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### যদি আপনি গিট ব্যবহার করতে না চান
-`git fetch--all`
- আপনার পরিবর্তনগুলি শেষ করার পরে এক্স সহ সমস্ত বাক্স চিহ্নিত করুন
+এই পৃষ্ঠায়, উপরের দিকের কোড বোতামে ক্লিক করুন, তারপর "Download ZIP" এ ক্লিক করুন। ফাইলটি আনজিপ করুন এবং আপনি পাঠ্য ফাইলগুলির সাথে কাজ করতে পারেন।
+
+আপনি যদি মার্কডাউন বোঝে এমন একটি কোড এডিটরে খোলা থাকেন, তাহলে আপনি সবকিছু সুন্দরভাবে ফরম্যাট করা দেখতে পাবেন।
+
+
+
+### যদি আপনি গিট ব্যবহার করতে চান
-`git add .`
+1. ***গিটহাব রেপো ফোর্ক করুনঃ*** `https://github.com/jwasham/coding-interview-university` by clicking on the Fork button.
+
+ 
+
+1. আপনার লোকাল রেপোতে ক্লোন করুনঃ
-`git commit-m "Marked x"`
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ cd coding-interview-university
+ git checkout -b progress
+ git remote add jwasham https://github.com/jwasham/coding-interview-university
+ git fetch --all
+ ```
-`git rebase jwasham/main`
+1. আপনি আপনার পরিবর্তনগুলি সম্পূর্ণ করার পরে X দিয়ে সমস্ত বাক্স চিহ্নিত করুনঃ
-`git push--force`
-[গিথুব-স্বাদযুক্ত মার্কডাউন সম্পর্কে আরও](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+ ```
+ git add .
+ git commit -m "Marked x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
+ ```
From 1ca3e2b468fc942dc5c07ff936d2f32e630216d0 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Wed, 26 Oct 2022 23:07:41 +0600
Subject: [PATCH 010/173] revise and rewrite first 5 section
---
translations/README-bn.md | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index d2c4143ab9..dd991a3b8d 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -282,25 +282,24 @@
git push --force
```
-
-##মনে হয় না আপনি যথেষ্ট স্মার্ট নন
+## মনে হয় না আপনি যথেষ্ট স্মার্ট নন
+
-সফল সফ্টওয়্যার ইঞ্জিনিয়াররা স্মার্ট, তবে অনেকেরই এমন নিরাপত্তাহীনতা রয়েছে যে তারা যথেষ্ট স্মার্ট নয়।
--[জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
--[একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই][https://www.youtube.com/watch?v=1i8ylq4j_EY)
--[বিশ্বাস আপনি পরিবর্তন করতে পারেন](http://www.aaronsw.com/weblog/dweck)
--[ভাবেন আপনি গুগলে কাজ করার মতো স্মার্ট নন? ঠিক আছে, আবার চিন্তা করুন](https://www.youtube.com/watch?v=uPOJ1PR50ag)
-
-##ভিডিও সংস্থান সম্পর্কে
+- নিম্নলিখিত ভিডিওগুলি আপনাকে এই নিরাপত্তাহীনতা কাটিয়ে উঠতে সাহায্য করতে পারে:
+ -[জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ -[একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই][https://www.youtube.com/watch?v=1i8ylq4j_EY)
-কিছু ভিডিও কেবল কোর্সেরা বা এডএক্স ক্লাসে ভর্তি হয়ে পাওয়া যায়। এগুলিকে এমওওসি বলা হয়।
-কখনও কখনও ক্লাসগুলি সেশনে হয় না তাই আপনাকে কয়েক মাস অপেক্ষা করতে হবে, যাতে আপনার অ্যাক্সেস নেই।
-
- আমি অনলাইনে কোর্স ভিডিও সহ ইউটিউব ভিডিও হিসাবে সর্বদা উপলব্ধ এবং সর্বদা উপলভ্য পাবলিক উত্স যোগ করতে আপনার সাহায্যের প্রশংসা করব।
- আমি বিশ্ববিদ্যালয়ের বক্তৃতা ব্যবহার করতে পছন্দ করি।
+## ভিডিও সংস্থান সম্পর্কে
+কিছু ভিডিও শুধুমাত্র একটি Coursera বা EdX ক্লাসে ভর্তির মাধ্যমে পাওয়া যায়। এগুলোকে MOOC বলা হয়।
+কখনও কখনও ক্লাস সেশনে থাকে না তাই আপনাকে কয়েক মাস অপেক্ষা করতে হবে, তাই আপনার অ্যাক্সেস নেই।
+
+বিনামূল্যে এবং সর্বদা উপলব্ধ পাবলিক সোর্স দিয়ে অনলাইন কোর্সের সংস্থানগুলি প্রতিস্থাপন করা দুর্দান্ত হবে,
+যেমন ইউটিউব ভিডিও (বিশেষত ইউনিভার্সিটির বক্তৃতা), যাতে আপনি যেকোন সময় এগুলি অধ্যয়ন করতে পারেন,
+শুধুমাত্র যখন একটি নির্দিষ্ট অনলাইন কোর্স সেশনে থাকে তখন নয়।
-##সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
+## সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
<সুমারী> সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কারের প্রস্তুতি
From 7eff46ec4b2e0a38e3e9f52a6a4bf3f3add0b944 Mon Sep 17 00:00:00 2001
From: Vishal Kumar <112061222+Vish1161@users.noreply.github.com>
Date: Thu, 27 Oct 2022 16:39:36 +0530
Subject: [PATCH 011/173] Added a useful resource
Hey, I have added a helpful reference link for SQL that I think will best add to your content and give your readers a more diverse understanding of the topic. I hope you will like this. Thank you.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3e33562625..020e4c786d 100644
--- a/README.md
+++ b/README.md
@@ -494,7 +494,7 @@ without lyrics and you'll be able to focus pretty well.
These are prevalent technologies but not part of this study plan:
-- SQL
+- [SQL](https://www.scaler.com/topics/sql/)
- Javascript
- HTML, CSS, and other front-end technologies
From ba9e9cb45dc20e2fb63b1a7e3eb1bfc22c1fc791 Mon Sep 17 00:00:00 2001
From: Vishal Kumar <112061222+Vish1161@users.noreply.github.com>
Date: Wed, 2 Nov 2022 16:03:13 +0530
Subject: [PATCH 012/173] Added a useful resource
Hey, I have added a helpful reference link for SQL that I think will best add to your content and give your readers a more diverse understanding of the topic. I hope you will like this. Thank you.
---
translations/README-ja.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index b3b7c8a69c..a6400b6f7c 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -376,7 +376,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
これらは一般的な技術ですが、この調査計画の一部ではありません:
-- SQL
+- [SQL](https://www.scaler.com/topics/sql/)
- Javascript
- HTML、CSS、およびその他のフロントエンド技術
@@ -1893,4 +1893,4 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
## コンピュータサイエンスコース
- [オンラインCSコースのディレクトリ](https://github.com/open-source-society/computer-science)
-- [CSコースのディレクトリ(多くはオンライン講義あり)](https://github.com/prakhar1989/awesome-courses)
\ No newline at end of file
+- [CSコースのディレクトリ(多くはオンライン講義あり)](https://github.com/prakhar1989/awesome-courses)
From fec6f644306d1de9915af9da135f9eb022a2a46e Mon Sep 17 00:00:00 2001
From: imran110219
Date: Wed, 2 Nov 2022 23:13:59 +0600
Subject: [PATCH 013/173] add text
---
translations/README-bn.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index dd991a3b8d..31d729a195 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -298,6 +298,36 @@
বিনামূল্যে এবং সর্বদা উপলব্ধ পাবলিক সোর্স দিয়ে অনলাইন কোর্সের সংস্থানগুলি প্রতিস্থাপন করা দুর্দান্ত হবে,
যেমন ইউটিউব ভিডিও (বিশেষত ইউনিভার্সিটির বক্তৃতা), যাতে আপনি যেকোন সময় এগুলি অধ্যয়ন করতে পারেন,
শুধুমাত্র যখন একটি নির্দিষ্ট অনলাইন কোর্স সেশনে থাকে তখন নয়।
+
+## একটি প্রোগ্রামিং ভাষা চয়ন করুন
+
+কোডিং ইন্টারভিউয়ের জন্য আপনাকে একটি প্রোগ্রামিং ভাষা বেছে নিতে হবে,
+তবে আপনাকে এমন একটি ভাষা খুঁজে বের করতে হবে যা আপনি কম্পিউটার বিজ্ঞানের ধারণাগুলি অধ্যয়ন করতে ব্যবহার করতে পারেন।
+
+পছন্দের ভাষা একই হবে, যাতে আপনাকে শুধুমাত্র একটিতে দক্ষ হতে হবে।
+
+### For this Study Plan
+
+When I did the study plan, I used 2 languages for most of it: C and Python
+
+* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
+ and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
+ but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
+ - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
+ - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - This is a short book, but it will give you a great handle on the C language and if you practice it a little
+ you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
+ - You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
+ - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
+* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
+
+This is my preference. You do what you like, of course.
+
+You may not need it, but here are some sites for learning a new language:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
## সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
From ddfddd2b318ac4a804e7aee5734771976f51692d Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Fri, 4 Nov 2022 19:11:39 +0600
Subject: [PATCH 014/173] add text
---
translations/README-bn.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 31d729a195..29aea9d848 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -306,19 +306,19 @@
পছন্দের ভাষা একই হবে, যাতে আপনাকে শুধুমাত্র একটিতে দক্ষ হতে হবে।
-### For this Study Plan
+### এই স্টাডি প্ল্যানের জন্য
-When I did the study plan, I used 2 languages for most of it: C and Python
+যখন আমি অধ্যয়নের পরিকল্পনাটি করেছি, তখন আমি এর বেশিরভাগের জন্য 2টি ভাষা ব্যবহার করেছি: সি এবং পাইথন
-* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
- and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
- but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
- - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
+* সি: খুব নিম্ন স্তরের। আপনাকে পয়েন্টার এবং মেমরি বরাদ্দ/বরাদ্দকরণের সাথে মোকাবিলা করার অনুমতি দেয়, যাতে আপনি ডেটা স্ট্রাকচার এবং অ্যালগরিদম খুব দৃঢ়ভাবে বুঝতে পারেন। পাইথন বা জাভার মতো উচ্চ স্তরের ভাষাগুলিতে, এগুলি আপনার কাছ থেকে লুকানো থাকে। প্রতিদিনের কাজে, এটি দুর্দান্ত,
+ কিন্তু যখন আপনি এই নিম্ন-স্তরের ডেটা স্ট্রাকচারগুলি কীভাবে তৈরি করা হয় তা শিখছেন, তখন ধাতুর কাছাকাছি অনুভব করা দুর্দান্ত।
+ - সি সর্বত্র। আপনি যখন অধ্যয়ন করছেন তখন আপনি বই, বক্তৃতা, ভিডিও, *সব জায়গায়* উদাহরণ দেখতে পাবেন।
- [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
- you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- - You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
- - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
+ - This is a short book, but it will give you a grea
+ - এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষার উপর একটি দুর্দান্ত হ্যান্ডেল দেবে এবং আপনি যদি এটি একটু অনুশীলন করেন
+ আপনি দ্রুত দক্ষ হয়ে উঠবেন। C বোঝা আপনাকে প্রোগ্রাম এবং মেমরি কিভাবে কাজ করে তা বুঝতে সাহায্য করে।
+ - আপনাকে বইটির গভীরে যেতে হবে না (বা এমনকি এটি শেষ করতে হবে)। যেখানে আপনি সি-তে পড়তে এবং লিখতে স্বাচ্ছন্দ্যবোধ করেন সেখানে যান।
+ - [বইয়ের প্রশ্নের উত্তর](https://github.com/lekkas/c-algorithms)
* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
This is my preference. You do what you like, of course.
From 426c3d68d083b6fecea8039b5b188d6c610a25b1 Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Fri, 4 Nov 2022 19:12:12 +0600
Subject: [PATCH 015/173] add text
---
translations/README-bn.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 29aea9d848..2e894ea1e1 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -314,16 +314,15 @@
কিন্তু যখন আপনি এই নিম্ন-স্তরের ডেটা স্ট্রাকচারগুলি কীভাবে তৈরি করা হয় তা শিখছেন, তখন ধাতুর কাছাকাছি অনুভব করা দুর্দান্ত।
- সি সর্বত্র। আপনি যখন অধ্যয়ন করছেন তখন আপনি বই, বক্তৃতা, ভিডিও, *সব জায়গায়* উদাহরণ দেখতে পাবেন।
- [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - This is a short book, but it will give you a grea
- এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষার উপর একটি দুর্দান্ত হ্যান্ডেল দেবে এবং আপনি যদি এটি একটু অনুশীলন করেন
আপনি দ্রুত দক্ষ হয়ে উঠবেন। C বোঝা আপনাকে প্রোগ্রাম এবং মেমরি কিভাবে কাজ করে তা বুঝতে সাহায্য করে।
- আপনাকে বইটির গভীরে যেতে হবে না (বা এমনকি এটি শেষ করতে হবে)। যেখানে আপনি সি-তে পড়তে এবং লিখতে স্বাচ্ছন্দ্যবোধ করেন সেখানে যান।
- [বইয়ের প্রশ্নের উত্তর](https://github.com/lekkas/c-algorithms)
-* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
+* পাইথন: আধুনিক এবং খুব অভিব্যক্তিপূর্ণ, আমি এটি শিখেছি কারণ এটি খুব দরকারী এবং আমাকে একটি সাক্ষাত্কারে কম কোড লেখার অনুমতি দেয়।
-This is my preference. You do what you like, of course.
+এই আমার পছন্দ। আপনি অবশ্যই যা পছন্দ করেন তাই করেন।
-You may not need it, but here are some sites for learning a new language:
+আপনার এটির প্রয়োজন নাও হতে পারে, তবে একটি নতুন ভাষা শেখার জন্য এখানে কিছু সাইট রয়েছে:
- [Exercism](https://exercism.org/tracks)
- [Codewars](http://www.codewars.com)
- [HackerEarth](https://www.hackerearth.com/for-developers/)
From 09dc4f1efb2b5173af55772c2715f988caacf053 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Sun, 6 Nov 2022 23:55:32 +0600
Subject: [PATCH 016/173] add text
---
translations/README-bn.md | 54 ++++++++++-----------------------------
1 file changed, 13 insertions(+), 41 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 2e894ea1e1..111b327e03 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -328,57 +328,29 @@
- [HackerEarth](https://www.hackerearth.com/for-developers/)
- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
-## সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কার প্রস্তুতি
+### আপনার কোডিং সাক্ষাত্কারের জন্য
-
-<সুমারী> সাক্ষাত্কার প্রক্রিয়া এবং সাধারণ সাক্ষাত্কারের প্রস্তুতি
-
-- [এ বি সি: সর্বদা কোডিং থাকুন](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [হোয়াইটবোর্ডিং](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [প্রোগ্রামিং সাক্ষাত্কারের সময় কার্যকর হোয়াইটবোর্ডিং](http://www.coderust.com/blog/2014/04/10/Effective-Witeboarding-during-programming-interviews/)
-- [টেক রিক্রুটিং কে ক্ষমা করা](https://www.youtube.com/watch?v=N233T0epWTs)
-- কোডিং সাক্ষাত্কারটি ক্র্যাক করা 1:
-- [গেইল এল ম্যাকডোয়েল-কোডিং সাক্ষাত্কারের ক্র্যাকিং (ভিডিও)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [লেখক গেইল লাকম্যান ম্যাকডোভেল (ভিডিও) এর সাথে কোডিং সাক্ষাত্কার ক্র্যাক করা](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- বিগ 4 এ কীভাবে চাকরী পাবেন?
- - [বিগ 4 এ কীভাবে চাকরী পাবেন-অ্যামাজন, ফেসবুক, গুগল এবং মাইক্রোসফ্ট (ভিডিও)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-
-- প্রস্তুতি কোর্স:
- - [সফটওয়্যার ইঞ্জিনিয়ার সাক্ষাত্কার প্রকাশিত (বেতনভুক্ত কোর্স)](https://www.udemy.com/software-engineer-interview-unleashed):
- -একজন প্রাক্তন গুগল সাক্ষাত্কারকারীর থেকে কীভাবে নিজেকে সফটওয়্যার ইঞ্জিনিয়ার সাক্ষাত্কারের জন্য প্রস্তুত করবেন তা শিখুন।
- - [ডেটা স্ট্রাকচার, অ্যালগরিদম এবং সাক্ষাত্কারের জন্য পাইথন! (প্রদত্ত কোর্স)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- -পাইথন কেন্দ্রিক সাক্ষাত্কার প্রস্তুতির কোর্সে ডেটা স্ট্রাকচার, অ্যালগরিদম, মক সাক্ষাত্কার এবং আরও অনেক কিছু রয়েছে।
- - [পাইথন ব্যবহার করে ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলিতে ইন্ট্রো! (উদাসীনতা মুক্ত কোর্স)](https://www.udacity.com/cورس/data-structures-এবং-algorithms-in-python--ud513):
- -একটি ফ্রি পাইথন কেন্দ্রিক ডেটা স্ট্রাকচার এবং অ্যালগরিদম কোর্স।
- - [ডেটা স্ট্রাকচার এবং অ্যালগোরিদম ন্যানোডগ্রি! (উদাস্তিটি ন্যানোডগ্রি প্রদান করেছে)](https://www.udacity.com/course/data-structures-এবং-algorithms-nanodegree--nd256):
- -100 টিরও বেশি ডেটা স্ট্রাকচার এবং অ্যালগরিদম অনুশীলন এবং আপনাকে একটি সাক্ষাত্কারের জন্য এবং কাজের সুযোগে দৃশ্যের জন্য আপনাকে প্রস্তুত করতে ডেডিকেটেড পরামর্শদাতার দিকনির্দেশ দিয়ে অনুশীলন পান।
-
-
-
-##সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করুন
-
-সাক্ষাত্কারের কোডিং অংশটি করতে আপনি স্বাচ্ছন্দ্যযুক্ত একটি ভাষা ব্যবহার করতে পারেন তবে বড় সংস্থাগুলির জন্য এগুলি কঠোর পছন্দ:
+সাক্ষাত্কারের কোডিং অংশটি করতে আপনি স্বাচ্ছন্দ্যযুক্ত একটি ভাষা ব্যবহার করতে পারেন তবে বড় কোম্পানি গুলির জন্য এগুলি কঠোর পছন্দ:
--সি ++
--জাভা
--পাইথন
+- সি ++
+- জাভা
+- পাইথন
আপনি এগুলি ব্যবহার করতে পারেন তবে প্রথমে পড়তে পারেন। সতর্কতা থাকতে পারে:
--জাভাস্ক্রিপ্ট
--রুবি
+- জাভাস্ক্রিপ্ট
+- রুবি
-এখানে একটি নিবন্ধটি আমি সাক্ষাত্কারের জন্য একটি ভাষা বেছে নেওয়ার বিষয়ে লিখেছি: [কোডিং সাক্ষাত্কারের জন্য একটি ভাষা বেছে নিন](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
-
-এই মূল নিবন্ধটি আমার পোস্টের উপর ভিত্তি করে ছিল: http://blog.codingforinterviews.com/best-programming-language-jobs/
+এখানে একটি নিবন্ধটি আমি সাক্ষাত্কারের জন্য একটি ভাষা বেছে নেওয়ার বিষয়ে লিখেছি:
+[কোডিং সাক্ষাত্কারের জন্য একটি ভাষা বেছে নিন](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
+এই মূল নিবন্ধটি আমার পোস্টের উপর ভিত্তি করে ছিল: [সাক্ষাৎকারের জন্য একটি প্রোগ্রামিং ভাষা নির্বাচন করা](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
আপনার ভাষায় খুব স্বাচ্ছন্দ্য বোধ করা এবং বুদ্ধিমান হওয়া দরকার।
পছন্দ সম্পর্কে আরও পড়ুন:
--http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
--http://blog.codingforinterviews.com/best-programming-language-jobs/
-
-[ভাষার সংস্থানগুলি এখানে দেখুন] (প্রোগ্রামিং-ভাষা-সংস্করণ.এমডি)
+- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[See language-specific resources here](programming-language-resources.md)
আপনি নীচে অন্তর্ভুক্ত কিছু সি, সি ++ এবং পাইথন শিখতে দেখবেন, কারণ আমি শিখছি। কয়েকটি বই জড়িত রয়েছে, নীচে দেখুন।
From b9a42f4fb15e29c028072c03074099be84ed9107 Mon Sep 17 00:00:00 2001
From: KhrTim <42896525+KhrTim@users.noreply.github.com>
Date: Tue, 8 Nov 2022 16:03:25 +0300
Subject: [PATCH 017/173] Replace repeating link
Previously, link for the lecture 22 led to lecture 21
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 020e4c786d..6b531ffd16 100644
--- a/README.md
+++ b/README.md
@@ -1009,7 +1009,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
- [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
- [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
- - [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
- [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
From 1049de69314832b9431a4f7dea9b3eb336040301 Mon Sep 17 00:00:00 2001
From: KhrTim <42896525+KhrTim@users.noreply.github.com>
Date: Tue, 8 Nov 2022 16:04:38 +0300
Subject: [PATCH 018/173] Change repeating link and rename
Previously, link for the lecture 22 led to lecture 21
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 020e4c786d..494151adcf 100644
--- a/README.md
+++ b/README.md
@@ -1009,7 +1009,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
- [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
- [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
- - [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - Lecture 22 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
- [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
From acace9ef98d7a25f5f4f63d68bc34daba3c5dd80 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Tue, 8 Nov 2022 08:48:40 -0800
Subject: [PATCH 019/173] Removes broken link.
---
translations/README-bn.md | 1 -
translations/README-de.md | 1 -
translations/README-el.md | 1 -
translations/README-es.md | 1 -
translations/README-fr.md | 1 -
translations/README-he.md | 1 -
translations/README-ja.md | 1 -
translations/README-kh.md | 1 -
translations/README-pl.md | 1 -
translations/README-ptbr.md | 1 -
translations/README-ru.md | 1 -
translations/README-th.md | 1 -
translations/README-tw.md | 1 -
translations/README-uk.md | 1 -
translations/README-ur.md | 1 -
translations/README-vi.md | 1 -
16 files changed, 16 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 2e894ea1e1..819b5a3e31 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -335,7 +335,6 @@
- [এ বি সি: সর্বদা কোডিং থাকুন](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [হোয়াইটবোর্ডিং](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [প্রোগ্রামিং সাক্ষাত্কারের সময় কার্যকর হোয়াইটবোর্ডিং](http://www.coderust.com/blog/2014/04/10/Effective-Witeboarding-during-programming-interviews/)
- [টেক রিক্রুটিং কে ক্ষমা করা](https://www.youtube.com/watch?v=N233T0epWTs)
- কোডিং সাক্ষাত্কারটি ক্র্যাক করা 1:
- [গেইল এল ম্যাকডোয়েল-কোডিং সাক্ষাত্কারের ক্র্যাকিং (ভিডিও)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-de.md b/translations/README-de.md
index fda0457316..0e46cf1688 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -285,7 +285,6 @@ keinen Zugriff darauf.
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] Cracking The Coding Interview Teil 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-el.md b/translations/README-el.md
index 8a83dbd357..ce84225c40 100644
--- a/translations/README-el.md
+++ b/translations/README-el.md
@@ -186,7 +186,6 @@
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Αποτελεσματικό Whiteboarding κατά τη διάρκεια των Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-es.md b/translations/README-es.md
index 5e7fc0685f..4863a092b9 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -268,7 +268,6 @@ Apreciaría su ayuda añadiendo fuentes siempre disponibles, publicas y gratuita
## Prepárese para la entrevista
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 079906171c..fb8127614c 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -293,7 +293,6 @@ Parfois, les cours ne sont pas en session, alors vous devez attendre quelques mo
- [ ] [Quatre étapes à Google, sans un diplôme](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [Tableau blanc](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [Comment Google pense à propos de l'embauche, gestion, et culture](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
- - [ ] [Tableau blanc efficace lors des entretiens de codage](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Réussis dans une entrevue de codage:
- [ ] [Gayle L McDowell - Réussi l'entretien de codage (vidéo)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [Réussi l'entretien de codage avec auteur Author Gayle Laakmann McDowell (vidéo)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
diff --git a/translations/README-he.md b/translations/README-he.md
index 385a2f88b4..9291270a9f 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -308,7 +308,6 @@ Sometimes the classes are not in session so you have to wait a couple of months,
- [ ] [ארבעה צעדים לקראת גוגל בלי תואר](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [לוח מחיק](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [How Google Thinks About Hiring, Management And Culture](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
- - [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index a6400b6f7c..21cb9def19 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -191,7 +191,6 @@ Lynda.comコースは有料です。
- [ ] [ABC:常にコーディングする](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [プログラミング面接中の効果的なホワイトボード](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [技術職募集での謎解き](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] クラッキングコーディング面接セット1:
- [ ] [Gayle L McDowell - コーディング面接(ビデオ)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-kh.md b/translations/README-kh.md
index bb6c333558..22baabdfa5 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -236,7 +236,6 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [ABC: តែងតែសរសេរកូដ](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [ការប្រេីប្រាស់ក្តារខៀន](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [ការប្រេីប្រាស់ក្តារខៀនមានប្រសិទ្ធិភាពក្នុងពេលសម្ភាសន៍កម្មវិធី](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [ជ្រើសរើសបុគ្គលិកជំនាញបច្ចេកវិទ្យា](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] វិធីរកការងារនៅក្រុមហ៊ុនធំ ៤៖
- [ ] [របៀបរកការងារធ្វើនៅក្រុមហ៊ុនធំ ៤ - Amazon, Facebook, Google និង Microsoft (មានវីដេអូ)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 5209f0ecc8..e1840ad3ac 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -261,7 +261,6 @@ Czasami zajęcia nie są w sesji, więc musisz poczekać kilka miesięcy, więc
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] How to Get a Job at the Big 4:
- [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index f9ba2c7ddb..67fb3b8fd1 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -256,7 +256,6 @@ Alguns vídeos estão disponíveis somente ao ingressar em um curso no Coursera,
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1) (Usando O Quadro Branco)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/) (Usando o Quadro Branco Efetivamente durante Entrevistas de Programação)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs) (Desmistificando Recrutamento Técnico)
- [ ] Decifrando A Entrevista de Programação Série 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ) (Gayle L McDowell - Decifrando A Entrevista de Programação - vídeo)
diff --git a/translations/README-ru.md b/translations/README-ru.md
index b9ebc0bb32..94ef6b3c6c 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -300,7 +300,6 @@ Google не возьмёт тебя на работу.
- [ ] [4 шага к Google без образования в CS](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [Кодирование на доске](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [Что думает Google о найме, управлении и культуре](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
- - [ ] [Эффективное кодирование на доске в процессе собеседования](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Прохождения собеседования по программированию набор 1:
- [ ] [Gayle L McDowell - Прохождения собеседования по программированию (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [Прохождения собеседования по программированию с Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
diff --git a/translations/README-th.md b/translations/README-th.md
index b5f823f282..fe29cd2dba 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -238,7 +238,6 @@
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 1f5be7e847..0ff99f9033 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -265,7 +265,6 @@
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] 如何錄取Big Tech(Google, Amazon, Facebook, Apple):
- [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 9fa7c83600..3188f72785 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -282,7 +282,6 @@ Sometimes the classes are not in session so you have to wait a couple of months,
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index ebc22792af..64a12315ff 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -269,7 +269,6 @@ Sometimes the classes are not in session so you have to wait a couple of months,
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
- [ ] How to Get a Job at the Big 4:
- [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index e993f03566..4af369f938 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -262,7 +262,6 @@ Lynda.com thì không miễn phí.
- [ ] [4 bước đến Google dù không có bằng cấp](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [Whiteboarding (Giải toán lập trình trên bảng trắng)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [Google nghĩ thế nào về Tuyển dụng, Quản lý và Văn hóa](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
-- [ ] [Whiteboarding hiệu quả trong khi phỏng vấn kỹ năng lập trình](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Cracking The Coding Interview Set 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
From 030281a47c105a0ac13b9c70f34b79622f4d9df6 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Tue, 8 Nov 2022 09:00:08 -0800
Subject: [PATCH 020/173] Adds link to CS roadmap.
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 020e4c786d..fc4ef074aa 100644
--- a/README.md
+++ b/README.md
@@ -100,6 +100,9 @@ Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 s
them will not be the same, as each has its own competencies. These companies require computer science knowledge for
software development/engineering roles.
+There is a lot to learn in a university Computer Science program, but only knowing about 75% is good enough for an interview, so that's what I cover here.
+For a complete CS self-taught program, the resources for my study plan have been included in Kamran Ahmed's Computer Science Roadmap: https://roadmap.sh/computer-science
+
---
## Table of Contents
@@ -494,9 +497,9 @@ without lyrics and you'll be able to focus pretty well.
These are prevalent technologies but not part of this study plan:
-- [SQL](https://www.scaler.com/topics/sql/)
- Javascript
- HTML, CSS, and other front-end technologies
+- SQL
## The Daily Plan
From 988821b1310667ac7a4f1d94d144befbaeed0367 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Thu, 10 Nov 2022 22:00:02 +0600
Subject: [PATCH 021/173] add language section
---
translations/README-bn.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 111b327e03..3c18b00dfb 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -348,11 +348,9 @@
আপনার ভাষায় খুব স্বাচ্ছন্দ্য বোধ করা এবং বুদ্ধিমান হওয়া দরকার।
পছন্দ সম্পর্কে আরও পড়ুন:
-- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+- [আপনার কোডিং সাক্ষাৎকারের জন্য সঠিক ভাষা নির্বাচন করুন](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-[See language-specific resources here](programming-language-resources.md)
-
-আপনি নীচে অন্তর্ভুক্ত কিছু সি, সি ++ এবং পাইথন শিখতে দেখবেন, কারণ আমি শিখছি। কয়েকটি বই জড়িত রয়েছে, নীচে দেখুন।
+[ভাষা ভিত্তিক উৎসগুলো দেখুন](programming-language-resources.md)
##বইএর তালিকা
From d175a903c4f9e302b76667c32b9dd65be78a2b45 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Thu, 10 Nov 2022 22:04:43 +0600
Subject: [PATCH 022/173] edit markdown
---
translations/README-bn.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 3c18b00dfb..112ece81a7 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -287,8 +287,8 @@
-সফল সফ্টওয়্যার ইঞ্জিনিয়াররা স্মার্ট, তবে অনেকেরই এমন নিরাপত্তাহীনতা রয়েছে যে তারা যথেষ্ট স্মার্ট নয়।
- নিম্নলিখিত ভিডিওগুলি আপনাকে এই নিরাপত্তাহীনতা কাটিয়ে উঠতে সাহায্য করতে পারে:
- -[জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
- -[একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই][https://www.youtube.com/watch?v=1i8ylq4j_EY)
+ - [জিনিয়াস প্রোগ্রামারটির রূপকথার কাহিনী](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [একা যাওয়া বিপদজনক: টেকের মধ্যে অদৃশ্য মনস্টারদের লড়াই](https://www.youtube.com/watch?v=1i8ylq4j_EY)
## ভিডিও সংস্থান সম্পর্কে
From 39420f712ce548917bcecfd6bd57d1a628b45b57 Mon Sep 17 00:00:00 2001
From: imran110219
Date: Thu, 10 Nov 2022 22:23:48 +0600
Subject: [PATCH 023/173] add book section
---
translations/README-bn.md | 43 ++++++++++++++++++++++++++++++++++++---
1 file changed, 40 insertions(+), 3 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 112ece81a7..816e705b38 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -352,9 +352,46 @@
[ভাষা ভিত্তিক উৎসগুলো দেখুন](programming-language-resources.md)
-##বইএর তালিকা
-
-আমি যা ব্যবহার করেছি তার চেয়ে এটি একটি সংক্ষিপ্ত তালিকা। এটি আপনার সময় বাঁচাতে সংক্ষেপে বর্ণিত।
+## ডেটা স্ট্রাকচার এবং অ্যালগরিদমের জন্য বই
+
+এই বইটি কম্পিউটার বিজ্ঞানের জন্য আপনার ভিত্তি তৈরি করবে।
+
+শুধু একটি বেছে নিন, এমন একটি ভাষায় যা আপনি স্বাচ্ছন্দ্য বোধ করবেন। আপনাকে অনেক পড়াশুনা এবং কোডিং করতে হবে।
+
+### সি
+
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
+
+### পাইথন
+
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - by Goodrich, Tamassia, Goldwasser
+ - I loved this book. It covered everything and more.
+ - Pythonic code
+ - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### জাভা
+
+আপনার পছন্দ:
+
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Free Coursera course that covers the book (taught by the authors!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+### সি++
+
+আপনার পছন্দ:
+
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [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/)
###সাক্ষাত্কার প্রস্তুতি
From a5d5d610608fc076859a6de85bd3f31184940fbc Mon Sep 17 00:00:00 2001
From: imran110219
Date: Sat, 12 Nov 2022 20:23:37 +0600
Subject: [PATCH 024/173] add section
---
translations/README-bn.md | 85 ++++++++++++++++-----------------------
1 file changed, 34 insertions(+), 51 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 816e705b38..a74bfa6e94 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -393,59 +393,42 @@
- [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/)
-###সাক্ষাত্কার প্রস্তুতি
-
-- [প্রোগ্রামিং সাক্ষাত্কারগুলি উদ্ভাসিত হয়েছে: সাক্ষাত্কারের মাধ্যমে আপনার কোডের কোডিং, ৪ র্থ সংস্করণ](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- -সি ++ এবং জাভাতে উত্তর
- -কোডিং সাক্ষাত্কার ক্র্যাক করার জন্য এটি একটি ভাল প্রস্তুতি
- -খুব বেশি কঠিন নয়, বেশিরভাগ সমস্যাগুলি আপনি একটি সাক্ষাত্কারে যা দেখবেন তার চেয়ে সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
-- [কোডিং সাক্ষাত্কার ক্র্যাকিং, 6th ষ্ঠ সংস্করণ](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- -জাভা উত্তর
-
-
-আপনার যদি অতিরিক্ত পরিমাণে সময় থাকে তবে
-
-একটি নির্বাচন করুন:
-
-- [প্রোগ্রামিং সাক্ষাত্কারের উপাদানগুলি (সি ++ সংস্করণ)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- প্রোগ্রামিং সাক্ষাত্কারের উপাদানসমূহ (জাভা সংস্করণ)
- -[বই](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
- -[কোম্পানির প্রকল্প-বইয়ের প্রতিটি সমস্যার জন্য পদ্ধতি স্টাব এবং টেস্ট কেস](https://github.com/gardncl/elements-of-programming-interviews)
-
-
-
-###কম্পিউটার আর্কিটেকচার
-
-- [গ্রেট কোড লিখুন: খণ্ড ১: মেশিনটি বোঝা] (https://www.amazon.com/Write-Great-Code-Unders સમજ-ম্যাচাইন / ডিপি / 1593270038)
- -বইটি 2004 সালে প্রকাশিত হয়েছিল এবং এটি কিছুটা পুরানো হলেও সংক্ষেপে কম্পিউটার বোঝার জন্য এটি এক ভয়ঙ্কর উত্স।
- -লেখক আবিষ্কার করেছেন [এইচএলএ] (https://en.wikedia.org/wiki/High_Level_As आशीर्वाद), তাই লবণের দানা দিয়ে এইচএলএ-তে উল্লেখ এবং উদাহরণ নিন। বিস্তৃতভাবে ব্যবহৃত হয় না, তবে সমাবেশটি কেমন লাগে তার শালীন উদাহরণ।
- -এই অধ্যায়গুলি আপনাকে একটি সুন্দর ভিত্তি দেওয়ার জন্য মূল্যবান:
-
- ......
-
- -দ্বিতীয় অধ্যায়-সংখ্যা উপস্থাপনা
- -অধ্যায় 3-বাইনারি গাণিতিক এবং বিট অপারেশন
- -অধ্যায় 4-ভাসমান-পয়েন্ট প্রতিনিধিত্ব
- -অধ্যায় 5-চরিত্র উপস্থাপনা
- -অধ্যায় 6-মেমরি সংস্থা এবং অ্যাক্সেস
- -অধ্যায় 7-সম্মিলিত ডেটা টাইপ এবং মেমরি অবজেক্টস
- -অধ্যায় 9-সিপিইউ আর্কিটেকচার
- -অধ্যায় 10-নির্দেশ সেট আর্কিটেকচার
- -অধ্যায় 11-মেমরি আর্কিটেকচার এবং সংস্থা
-
-
-
-
-###ভাষা নির্দিষ্ট
-
-** আপনাকে সাক্ষাত্কারের জন্য একটি ভাষা চয়ন করতে হবে (উপরে দেখুন) * **
-
-ভাষা অনুসারে আমার প্রস্তাবনা এখানে রইল। আমার কাছে সমস্ত ভাষার জন্য সংস্থান নেই। আমি সংযোজন স্বাগত জানাই।
+## সাক্ষাত্কার প্রস্তুতি বই
+
+আপনি এই একটি গুচ্ছ কিনতে হবে না. সত্যি বলতে "Cracking the Coding Interview" সম্ভবত যথেষ্ট,
+কিন্তু আমি নিজেকে আরো অনুশীলন দিতে আরো কেনা. কিন্তু আমি সবসময় খুব বেশি করি।
+
+আমি এই দুটি কিনলাম। তারা আমাকে প্রচুর অনুশীলন দিয়েছে।
+
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - উত্তরগুলো সি++ আর জাভাতে
+ - কোডিং ইন্টারভিউ ক্র্যাক করার জন্য এটি একটি ভাল ওয়ার্ম-আপ
+ - খুব কঠিন না। আপনি একটি সাক্ষাত্কারে যা দেখতে পাবেন তার চেয়ে বেশিরভাগ সমস্যা সহজ হতে পারে (আমি যা পড়েছি তা থেকে)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - উত্তরগুলো জাভাতে
+
+### আপনার যদি অতিরিক্ত সময় থাকে:
+
+একটি পছন্দ করুন:
+
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [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)
-আপনি যদি এর মধ্যে একটির মাধ্যমে পড়ে থাকেন তবে আপনার কোডিং সমস্যাগুলি শুরু করতে হবে এমন সমস্ত ডেটা স্ট্রাকচার এবং অ্যালগরিদম জ্ঞান থাকা উচিত।
-** আপনি যদি কোনও পর্যালোচনা না চান তবে আপনি এই প্রকল্পের সমস্ত ভিডিও বক্তৃতা ** এড়িয়ে যেতে পারেন।
+## আমার মত ভুল করবেন না
+
+এই তালিকাটি অনেক মাস ধরে বেড়েছে, এবং হ্যাঁ, এটি হাতের বাইরে চলে গেছে।
+
+এখানে আমি কিছু ভুল করেছি যাতে আপনার আরও ভালো অভিজ্ঞতা হয়। এবং আপনি কয়েক মাস সময় বাঁচাবেন।
-[অতিরিক্ত ভাষা-নির্দিষ্ট সংস্থানগুলি এখানে]] (প্রোগ্রামিং-ভাষাভাষা-উত্স.এমডি)
+### 1. আপনি সব মনে রাখবেন না
+
+আমি ঘন্টার পর ঘন্টা ভিডিও দেখেছি এবং প্রচুর নোট নিয়েছি, এবং কয়েক মাস পরেও অনেক কিছু মনে ছিল না। আমার ৩ দিন লেগেছে আমার নোট এবং ফ্ল্যাশকার্ড তৈরি করতে, যাতে আমি পর্যালোচনা করতে পারি। আমার সেই সমস্ত জ্ঞানের প্রয়োজন ছিল না।
+
+অনুগ্রহ করে পড়ুন যাতে আপনি আমার ভুল করবেন না:
+
+[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
###সি ++
From 87d729b5596d67e4fc437a9a33dfc3c208b0e15f Mon Sep 17 00:00:00 2001
From: Meezan Mallick <58031846+meezan-mallick@users.noreply.github.com>
Date: Sun, 13 Nov 2022 11:01:27 +0530
Subject: [PATCH 025/173] added Array video link from Harvard University
Arrays explained in this video can be very helpful for beginners.
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index e2e0dfcf16..46ce5a54d8 100644
--- a/README.md
+++ b/README.md
@@ -608,6 +608,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- ### Arrays
- [ ] About Arrays:
+ - [Arrays CS50 Harvard University](https://youtu.be/tI_tIZFyKBw)
- [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
From 586f15f0ade76fa2045f3b55e551cd0a2a8572a6 Mon Sep 17 00:00:00 2001
From: Meezan Mallick <58031846+meezan-mallick@users.noreply.github.com>
Date: Fri, 18 Nov 2022 11:06:48 +0530
Subject: [PATCH 026/173] Updated the arrays video at the specific time
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 46ce5a54d8..0f00777960 100644
--- a/README.md
+++ b/README.md
@@ -608,7 +608,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- ### Arrays
- [ ] About Arrays:
- - [Arrays CS50 Harvard University](https://youtu.be/tI_tIZFyKBw)
+ - [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
- [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
From 1af8143a65c670cc88e9a14de7e709850eef929a Mon Sep 17 00:00:00 2001
From: imran110219
Date: Sun, 20 Nov 2022 21:57:41 +0600
Subject: [PATCH 027/173] add section
---
translations/README-bn.md | 150 ++++++++++++++------------------------
1 file changed, 55 insertions(+), 95 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index a74bfa6e94..3cd1e3250f 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -430,111 +430,71 @@
[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
-###সি ++
-
-
-সি ++
-
-আমি এই দুটি পড়িনি, তবে সেডজেউইক দ্বারা তারা উচ্চ মানের এবং রচিত। সে দুর্দান্ত।
-
-- [সি ++ এ অ্যালগরিদম, অংশ 1-4: মূলসূত্র, ডেটা স্ট্রাকচার, বাছাই, অনুসন্ধান করা] (https://www.amazon.com/Algorithms-Partts-1-4-Fundamentals-কাঠামো / dp/0201350882/)
-- [সি ++ পার্ট 5 এ অ্যালগরিদম: গ্রাফ অ্যালগরিদম] (https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-
-আপনার যদি সি ++ এর জন্য আরও ভাল প্রস্তাবনা থাকে তবে দয়া করে আমাকে জানান। একটি বিস্তৃত রিসোর্স খুঁজছি।
-
-
-
-###জাভা
-
-
-জাভা
-
-- [অ্যালগোরিদম (সেডজউইক এবং ওয়েইন)] (https://www.amazon.com/Algorithms-4th-রবার্ট-সেজজউইক / dp/032157351X/)
- -পাঠ্যক্রমের বইয়ের সামগ্রী (এবং সেডজউইক!) সহ ভিডিও:
- -[অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
- -[অ্যালগোরিদম II] (https://www.coursera.org/learn/algorithms-part2)
-
-বা:
-
-- [জাভাতে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Data-Structures-Algorithms-Michael-গুডরিচ/dp/1118771338/)
- -গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- -ইউসি বার্কলে সিএস ইন্ট্রো কোর্সের জন্য textচ্ছিক পাঠ্য হিসাবে ব্যবহৃত
- -নীচে পাইথন সংস্করণে আমার বইয়ের প্রতিবেদনটি দেখুন। এই বইটিতে একই বিষয় রয়েছে।
-
-
-
-###পাইথন
-
-
-পাইথন
-
-- [পাইথনে ডেটা স্ট্রাকচারস এবং অ্যালগরিদম] (https://www.amazon.com/Structures-অ্যালগোরিদমস-পাইথন-মিশেল-গুডরিচ / ডিপি / 1118290275/)
- -গুডরিচ, তমাসিয়া, গোল্ডওয়াসার দ্বারা
- -আমি এই বই পছন্দ। এটি সব কিছুর আওতায় পড়ে।
- -পাইথোনিক কোড
- -আমার জ্বলজ্বল বইয়ের প্রতিবেদন: https://startupnextdoor.com/book-report-data-structures-এবং-algorithms-in-python/
-
-
-
-
-##আপনি শুরু করার আগে
-
-এই তালিকাটি কয়েক মাস ধরে বেড়েছে, এবং হ্যাঁ, এটি একধরণের হাতছাড়া হয়ে যায়।
-
-এখানে আমি কিছু ভুল করেছি যাতে আপনার আরও ভাল অভিজ্ঞতা হয়।
-
-###1. আপনি সব মনে রাখবেন না
-
-আমি কয়েক ঘন্টা ভিডিও দেখেছি এবং প্রচুর নোট নিয়েছি এবং কয়েক মাস পরে এমন অনেক কিছুই ছিল যা আমি মনে করি না। আমি যেতে 3 দিন কাটিয়েছি
-আমার নোটগুলি এবং ফ্ল্যাশকার্ডগুলি তৈরি করে যাতে আমি পর্যালোচনা করতে পারি।
-
-দয়া করে পড়ুন যাতে আপনি আমার ভুল করবেন না:
-
-[কম্পিউটার বিজ্ঞান জ্ঞান পুনরুদ্ধার করা] (https://startupnextdoor.com/retaining-computer-s विज्ञान-জ্ঞান /)
-
-###2. ফ্ল্যাশকার্ড ব্যবহার করুন
-
-সমস্যা সমাধানের জন্য, আমি একটি সামান্য ফ্ল্যাশকার্ডস সাইট তৈরি করেছি যেখানে আমি 2 ধরণের ফ্ল্যাশকার্ড যুক্ত করতে পারি: সাধারণ এবং কোড।
-প্রতিটি কার্ডের আলাদা বিন্যাস রয়েছে।
-
-আমি একটি মোবাইল প্রথম ওয়েবসাইট তৈরি করেছি যাতে আমি যেখানেই থাকি না কেন আমার ফোন এবং ট্যাবলেটে পর্যালোচনা করতে পারি।
-
-বিনামূল্যে নিজের তৈরি করুন:
-
--[ফ্ল্যাশকার্ডস সাইটের রেপো] (https://github.com/jwasham/computer-science-flash-cards)
--[আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)] (https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
--[আমার ফ্ল্যাশ কার্ডের ডাটাবেস (নতুন-1800 কার্ড)] (https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-
-মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং সমাবেশগুলির ভাষা এবং পাইথন ট্রিভিয়া থেকে শুরু করে মেশিন লার্নিং এবং পরিসংখ্যানের সমস্ত কিছুর জন্য কার্ড রয়েছে। যা প্রয়োজন তার জন্য এটি অনেক বেশি।
-
-** ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য: ** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
-একই কার্ড এবং এটি জেনে রাখার আগে বেশ কয়েকবার সঠিক উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীর করে দেবে
-আপনার মস্তিষ্ক.
-
-আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার বিকল্প হ'ল [আনকি] (http://ankisrs.net/), যা আমার কাছে বহুবার প্রস্তাবিত হয়েছিল। এটি আপনাকে মনে রাখতে সহায়তা করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে।
-এটি ব্যবহারকারী-বান্ধব, সমস্ত প্ল্যাটফর্মে উপলব্ধ এবং একটি ক্লাউড সিঙ্ক সিস্টেম রয়েছে। আইওএসে এটির দাম 25 ডলার তবে অন্যান্য প্ল্যাটফর্মগুলিতে বিনামূল্যে।
-
-আনকি ফর্ম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেস: https://ankiweb.net/shared/info/25173560 (ধন্যবাদ [@ এক্সভিউনিয়া] (https://github.com/xiewenya))
-
-###3. পর্যালোচনা, পর্যালোচনা, পর্যালোচনা
-
-আমি ASCII, ওএসআই স্ট্যাক, বিগ-ও স্বরলিপিগুলি এবং আরও অনেক কিছুতে চিট শীটের একটি সেট রাখি। আমার কিছুটা বাজে সময় পেলে আমি সেগুলি অধ্যয়ন করি।
+### 2. ফ্ল্যাশকার্ড ব্যবহার করুন
+
+সমস্যা সমাধানের জন্য, আমি একটি ছোট ফ্ল্যাশকার্ড সাইট তৈরি করেছি যেখানে আমি 2 ধরনের ফ্ল্যাশকার্ড যোগ করতে পারি: সাধারণ এবং কোড।
+প্রতিটি কার্ড আলাদা ফরম্যাটিং আছে। আমি একটি মোবাইল-প্রথম ওয়েবসাইট তৈরি করেছি, যাতে আমি যেখানেই থাকি না কেন আমার ফোন বা ট্যাবলেটে পর্যালোচনা করতে পারি৷
+
+বিনামূল্যে আপনার নিজের তৈরি করুন:
+
+- [ফ্ল্যাশকার্ড সাইট রেপো](https://github.com/jwasham/computer-science-flash-cards)
+
+**আমি আমার ফ্ল্যাশকার্ডগুলি ব্যবহার করার পরামর্শ দিই না।** অনেকগুলি আছে এবং তাদের বেশিরভাগই তুচ্ছ বিষয় যা আপনার প্রয়োজন নেই।
+
+কিন্তু আপনি যদি আমার কথা শুনতে না চান তবে এখানে যান:
+- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং অ্যাসেম্বলি ভাষা এবং পাইথন ট্রিভিয়া থেকে মেশিন লার্নিং এবং পরিসংখ্যান পর্যন্ত সমস্ত কিছু কভার করে কার্ড আছে।
+যা প্রয়োজন তার জন্য এটি অনেক বেশি।
+
+**ফ্ল্যাশকার্ডে দ্রষ্টব্য:** প্রথমবার যখন আপনি চিনবেন আপনি উত্তরটি জানেন, তখন এটি পরিচিত হিসাবে চিহ্নিত করবেন না। আপনি দেখতে হবে
+একই কার্ড এবং আপনি সত্যিই এটি জানার আগে এটি সঠিকভাবে কয়েকবার উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীরে নিয়ে যাবে
+আপনার মস্তিষ্ক।
+
+আমার ফ্ল্যাশকার্ড সাইটটি ব্যবহার করার একটি বিকল্প হল [আনকি](http://ankisrs.net/), যা আমাকে বহুবার সুপারিশ করা হয়েছে।
+এটি আপনাকে মনে রাখতে সাহায্য করার জন্য একটি পুনরাবৃত্তি সিস্টেম ব্যবহার করে। এটি ব্যবহারকারী-বান্ধব, সমস্ত প্ল্যাটফর্মে উপলব্ধ এবং একটি ক্লাউড সিঙ্ক সিস্টেম রয়েছে৷
+iOS-এ এটির দাম $25 কিন্তু অন্যান্য প্ল্যাটফর্মে বিনামূল্যে।
+
+আনকি ফরম্যাটে আমার ফ্ল্যাশকার্ড ডাটাবেজ: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
+
+কিছু ছাত্র ফাকা স্থানের সাথে বিন্যাস সংক্রান্ত সমস্যাগুলি উল্লেখ করেছে যা নিম্নলিখিতগুলি করে ঠিক করা যেতে পারে: ডেক খুলুন, কার্ড সম্পাদনা করুন, কার্ডগুলিতে ক্লিক করুন, "স্টাইলিং" রেডিও বোতাম নির্বাচন করুন, সদস্য যোগ করুন "হোয়াইট-স্পেস: প্রি;" কার্ড ক্লাসে।
-আধা ঘন্টার জন্য প্রোগ্রামিং সমস্যা থেকে বিরতি নিন এবং আপনার ফ্ল্যাশকার্ডগুলি দিয়ে যান।
+### 3. আপনি শেখার সময় কোডিং ইন্টারভিউ প্রশ্ন করুন
+
+এই অত্যন্ত গুরুত্বপূর্ণ.
+
+আপনি ডেটা স্ট্রাকচার এবং অ্যালগরিদম শেখার সময় কোডিং ইন্টারভিউ প্রশ্ন করা শুরু করুন।
+
+সমস্যা সমাধানের জন্য আপনি যা শিখছেন তা প্রয়োগ করতে হবে, নতুবা ভুলে যাবেন। আমি এই ভুল করেছি।
+
+একবার আপনি একটি বিষয় শিখে গেলে, এবং এটির সাথে কিছুটা স্বাচ্ছন্দ্য বোধ করেন, উদাহরণস্বরূপ, **লিঙ্ক করা তালিকা**:
+১. [coding interview books](#interview-prep-books) (বা কোডিং সমস্যা ওয়েবসাইট, নীচে তালিকাভুক্ত) একটি খুলুন
+২. লিঙ্ক করা তালিকা সম্পর্কিত ২ বা ৩ প্রশ্ন করুন।
+৩. পরবর্তী শেখার বিষয়ে যান।
+৪. পরে, ফিরে যান এবং আরও ২ বা ৩ লিঙ্কযুক্ত তালিকা সমস্যাগুলি করুন৷
+৫. আপনি শেখা প্রতিটি নতুন বিষয়ের সাথে এটি করুন।
+
+**আপনি এই সমস্ত জিনিস শেখার সময় সমস্যা করতে থাকুন, পরে নয়।**
+
+আপনাকে জ্ঞানের জন্য নিয়োগ করা হচ্ছে না, তবে আপনি কীভাবে জ্ঞান প্রয়োগ করবেন।
+
+এই জন্য অনেক সম্পদ আছে, নীচে তালিকাভুক্ত। সামনে আগাতে থাকুন।
-###4. ফোকাস করুন
+### 4. ফোকাস করুন
-অনেকগুলি বিভ্রান্তি রয়েছে যা মূল্যবান সময় নিতে পারে। ফোকাস এবং ঘনত্ব শক্ত।
+মূল্যবান সময় নিতে পারে যে বিভ্রান্তি অনেক আছে. ফোকাস এবং একাগ্রতা কঠিন। কিছু সঙ্গীত চালু করুন
+গান ছাড়া এবং আপনি বেশ ভাল ফোকাস করতে সক্ষম হবেন।
-##আপনি কি কভার দেখতে পাবেন না
+## আপনি কি কভার দেখতে পাবেন না
এগুলি প্রচলিত প্রযুক্তি তবে এই অধ্যয়ন পরিকল্পনার অংশ নয়:
--এসকিউএল
-জাভাস্ক্রিপ্ট
-এইচটিএমএল, সিএসএস এবং অন্যান্য ফ্রন্ট-এন্ড প্রযুক্তি
+-এসকিউএল
-##দৈনিক পরিকল্পনা
+## দৈনিক পরিকল্পনা
কিছু বিষয় একদিন নেয়, এবং কিছুতে একাধিক দিন সময় লাগবে। কিছু বাস্তবায়নের কিছুই না দিয়ে কেবল শিখছে।
From 13ae8b0c2e18bbe1bede92a4bb50cbcd18e9f12a Mon Sep 17 00:00:00 2001
From: imran110219
Date: Mon, 21 Nov 2022 21:16:37 +0600
Subject: [PATCH 028/173] add more text
---
translations/README-bn.md | 38 +++++++++++---------------------------
1 file changed, 11 insertions(+), 27 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 3cd1e3250f..77a7a8fbc4 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -496,33 +496,17 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
## দৈনিক পরিকল্পনা
-কিছু বিষয় একদিন নেয়, এবং কিছুতে একাধিক দিন সময় লাগবে। কিছু বাস্তবায়নের কিছুই না দিয়ে কেবল শিখছে।
-
-প্রতিদিন আমি নীচের তালিকা থেকে একটি বিষয় নিয়ে যাই, সেই বিষয় সম্পর্কে ভিডিও দেখি এবং একটি বাস্তবায়ন এখানে লিখি:
--সি-স্ট্রাকস এবং ফাংশনগুলি ব্যবহার করে যা স্ট্রাক * এবং আরজ হিসাবে অন্য কোনও কিছু নেয়।
--সি ++-অন্তর্নির্মিত প্রকারগুলি ব্যবহার না করে
--সি ++-অন্তর্নির্মিত প্রকারগুলি যেমন STL এর std :: লিঙ্কযুক্ত তালিকার জন্য তালিকা ব্যবহার করে
--পাইথন-অন্তর্নির্মিত প্রকারগুলি (পাইথনের অনুশীলন চালিয়ে যেতে) ব্যবহার করে
--এবং আমি এটি সঠিকভাবে করছি তা নিশ্চিত করার জন্য পরীক্ষাগুলি লিখুন, কখনও কখনও কেবল সাধারণ দাবী () বিবৃতি ব্যবহার করে
--আপনি জাভা বা অন্য কিছু করতে পারেন, এটি কেবল আমার জিনিস।
-
-আপনার এসবের দরকার নেই। আপনার কেবলমাত্র [সাক্ষাত্কারের জন্য একটি ভাষা] প্রয়োজন (#সাক্ষাত্কারের জন্য এক-ভাষা বেছে নিন)।
-
-এই সবগুলিতে কোড কেন?
--অনুশীলন করুন, অনুশীলন করুন, অনুশীলন করুন, যতক্ষণ না আমি এতে অসুস্থ না হয়ে থাকি এবং কোনও সমস্যা ছাড়াই এটি করতে পারি (কারও কারও কাছে অনেক প্রান্তের কেস এবং স্মরণে রাখার জন্য বইয়ের বিবরণ রয়েছে)
--কাঁচা সীমাবদ্ধতার মধ্যে কাজ করুন (আবর্জনা সংগ্রহের সহায়তা ছাড়াই মেমরি বরাদ্দ / মুক্তকরণ (পাইথন বা জাভা বাদে))
--অন্তর্নির্মিত ধরণের ব্যবহার করুন যাতে বাস্তব-বিশ্বের ব্যবহারের জন্য অন্তর্নির্মিত সরঞ্জামগুলি ব্যবহার করার অভিজ্ঞতা আমার রয়েছে (উত্পাদনে আমার নিজের লিঙ্কযুক্ত তালিকার প্রয়োগটি লিখতে যাবেন না)
-
-আমার প্রতিটি বিষয়ের জন্য এগুলি করার জন্য সময় নাও থাকতে পারে তবে আমি চেষ্টা করব।
-
-আপনি আমার কোডটি এখানে দেখতে পারেন:
--[সি] (https://github.com/jwasham/pੈਕਟ-c)
--[সি ++] (https://github.com/jwasham/pੈਕਟ-cpp)
--[পাইথন] (https://github.com/jwasham/pੈਕਟ-python)
-
-আপনার প্রতিটি অ্যালগরিদমের সাহস মুখস্থ করার দরকার নেই।
-
-হোয়াইটবোর্ড বা কাগজে কোড লিখুন, কম্পিউটার নয়। কিছু নমুনা ইনপুট দিয়ে পরীক্ষা করুন। তারপরে এটি কম্পিউটারে পরীক্ষা করে দেখুন।
+এই কোর্সটিতে অনেক বিষয় রয়েছে। প্রতিটি সম্ভবত আপনাকে কয়েক দিন, বা এমনকি এক সপ্তাহ বা তারও বেশি সময় লাগবে। এটা আপনার সময়সূচী উপর নির্ভর করে।
+
+প্রতিদিন, তালিকার পরবর্তী বিষয় নিন, সেই বিষয়ে কিছু ভিডিও দেখুন এবং তারপর একটি বাস্তবায়ন লিখুন
+এই কোর্সের জন্য আপনি যে ভাষাটি বেছে নিয়েছেন সেই ডেটা স্ট্রাকচার বা অ্যালগরিদমের।
+
+আপনি এখানে আমার কোড দেখতে পারেন:
+ - [C](https://github.com/jwasham/practice-c)
+ - [C++](https://github.com/jwasham/practice-cpp)
+ - [Python](https://github.com/jwasham/practice-python)
+
+আপনাকে প্রতিটি অ্যালগরিদম মুখস্থ করতে হবে না। আপনার নিজের বাস্তবায়ন লিখতে সক্ষম হওয়ার জন্য আপনাকে এটি যথেষ্ট বুঝতে সক্ষম হতে হবে।
##পূর্বশর্ত জ্ঞান
From a012183e1943e367c377e309a795c77aaa436803 Mon Sep 17 00:00:00 2001
From: Smith <116065791+Smith1161@users.noreply.github.com>
Date: Tue, 22 Nov 2022 18:05:52 +0530
Subject: [PATCH 029/173] Added a useful resource
Hey, I have added a helpful reference link for HTML that I think will best add to your content and give your readers a more diverse understanding of the topic. I hope you will like this. Thank you.
---
programming-language-resources.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programming-language-resources.md b/programming-language-resources.md
index a128ac3378..b1c8c3b31d 100644
--- a/programming-language-resources.md
+++ b/programming-language-resources.md
@@ -74,6 +74,7 @@
- [HTML Cheat Sheet](https://www.interviewbit.com/html-cheat-sheet)
- [Quick HTML Tutorial for Beginners](https://www.youtube.com/playlist?list=PLr6-GrHUlVf_ZNmuQSXdS197Oyr1L9sPB)
- [HTML Crash Course for Beginners (1 hr)](https://www.youtube.com/watch?v=UB1O30fR-EE)
+ - [Learn HTML in Detail](https://www.scaler.com/topics/html/)
- [Basic HTML and HTML5](https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/)
- [W3 Schools](https://www.w3schools.com/html/)
- [Html Interview Questions](https://www.interviewbit.com/html-interview-questions)
From 6acc65aa8da314e9f452161f5fdd0f11104d51c0 Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Thu, 1 Dec 2022 23:49:52 +0600
Subject: [PATCH 030/173] add 3 section
---
translations/README-bn.md | 66 +++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 77a7a8fbc4..3c19986058 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -507,7 +507,73 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [Python](https://github.com/jwasham/practice-python)
আপনাকে প্রতিটি অ্যালগরিদম মুখস্থ করতে হবে না। আপনার নিজের বাস্তবায়ন লিখতে সক্ষম হওয়ার জন্য আপনাকে এটি যথেষ্ট বুঝতে সক্ষম হতে হবে।
+
+## কোডিং প্রশ্ন অনুশীলন
+
+ এটা এখানে কেন? আমি ইন্টারভিউ দিতে প্রস্তুত নই।
+
+[তারপর ফিরে যান এবং এটি পড়ুন।](#3-do-coding-interview-questions-while-youre-learning)
+
+কেন আপনাকে প্রোগ্রামিং সমস্যাগুলি অনুশীলন করতে হবে:
+- সমস্যা শনাক্তকরণ, এবং যেখানে সঠিক ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলি ফিট করে৷
+- সমস্যার জন্য দরকারী জিনিস সংগ্রহ করা
+- ইন্টারভিউতে আপনার মতন সমস্যার মধ্য দিয়ে কথা বলা
+- একটি হোয়াইটবোর্ড বা কাগজে কোডিং, কম্পিউটার নয়
+- আপনার সমাধানের জন্য সময় এবং স্থান জটিলতা নিয়ে আসছে (নীচে Big-O দেখুন)
+- আপনার সমাধান পরীক্ষা
+
+একটি ইন্টারভিউতে পদ্ধতিগত, যোগাযোগমূলক সমস্যা সমাধানের জন্য একটি দুর্দান্ত ভূমিকা রয়েছে। আপনি প্রোগ্রামিং থেকে এটি পাবেন
+সাক্ষাৎকারের বইও, কিন্তু আমি এই অসামান্য খুঁজে পেয়েছি:
+[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
+
+একটি হোয়াইটবোর্ড বা কাগজে কোড লিখুন, কম্পিউটার নয়। কিছু নমুনা ইনপুট দিয়ে পরীক্ষা করুন। তারপর এটি টাইপ করুন এবং একটি কম্পিউটারে এটি পরীক্ষা করুন।
+
+আপনার বাড়িতে একটি হোয়াইটবোর্ড না থাকলে, একটি আর্ট স্টোর থেকে একটি বড় অঙ্কন প্যাড নিন। আপনি সোফায় বসে অনুশীলন করতে পারেন।
+এটি আমার "সোফা হোয়াইটবোর্ড"। আমি শুধু স্কেলের জন্য ফটোতে কলম যোগ করেছি। যদি আপনি একটি কলম ব্যবহার করেন, আপনি মুছে দিতে পারেন.
+দ্রুত এলোমেলো হয়ে যায়। **আমি একটি পেন্সিল এবং ইরেজার ব্যবহার করি।**
+
+
+
+**কোডিং প্রশ্ন অনুশীলন প্রোগ্রামিং সমস্যার উত্তর মুখস্ত করা সম্পর্কে নয়।**
+## কোডিং সমস্যা
+
+আপনার মূল কোডিং ইন্টারভিউ বই ভুলবেন না [here](#interview-prep-books).
+
+সমস্যা সমাধানে:
+- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+কোডিং ইন্টারভিউ প্রশ্ন ভিডিও:
+- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - সমস্যার সমাধানের জন্য সুপার ওয়াকথ্রু
+- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - সমাধান এবং কোডের ভাল ব্যাখ্যা
+ - আপনি অল্প সময়ের মধ্যে বেশ কয়েকটি দেখতে পারেন
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+
+চ্যালেঞ্জ/অনুশীলনের সাইট:
+- [LeetCode](https://leetcode.com/)
+ - আমার প্রিয় কোডিং সমস্যা সাইট। এটি 1-2 মাসের জন্য সাবস্ক্রিপশনের অর্থের মূল্য যা আপনি সম্ভবত প্রস্তুত করছেন।
+ - কোড ওয়াক-থ্রুগুলির জন্য উপরে নিক হোয়াইট এবং ফিশারকোডার ভিডিওগুলি দেখুন৷
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Codeforces](https://codeforces.com/)
+- [Codility](https://codility.com/programmers/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [InterviewBit](https://www.interviewbit.com/)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - Google ইঞ্জিনিয়ারদের দ্বারা তৈরি, এটি আপনার দক্ষতা বাড়াতে একটি চমৎকার সম্পদও।
+- [Project Euler](https://projecteuler.net/)
+ - খুব গণিত ফোকাসড, এবং কোডিং ইন্টারভিউয়ের জন্য সত্যিই উপযুক্ত নয়
+
+## চল শুরু করি
+
+ঠিক আছে, যথেষ্ট কথা, আসুন শিখি!
+
+কিন্তু শিখতে গিয়ে উপরে থেকে কোডিং সমস্যা করতে ভুলবেন না!
+
##পূর্বশর্ত জ্ঞান
From 9b374c9f5be65c51d09bb4c7a90e832a84264151 Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Fri, 16 Dec 2022 19:28:46 +0600
Subject: [PATCH 031/173] add algorithmic section
---
translations/README-bn.md | 69 +++++++++++++--------------------------
1 file changed, 22 insertions(+), 47 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 3c19986058..56acc8b0b9 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -574,53 +574,28 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
কিন্তু শিখতে গিয়ে উপরে থেকে কোডিং সমস্যা করতে ভুলবেন না!
-##পূর্বশর্ত জ্ঞান
-
-
-<সংশ্লেষ> পূর্বশর্ত জ্ঞান << সংক্ষিপ্ত>
-
-- ** সি ** শিখুন
- -সি সর্বত্র আছে। আপনি অধ্যয়নরত অবস্থায় আপনি বই, বক্তৃতা, ভিডিও, * সর্বত্র * এর উদাহরণ দেখতে পাবেন।
- - [সি প্রোগ্রামিং ল্যাঙ্গুয়েজ, খণ্ড ২] (https://www.amazon.com/Programming-Language-ব্রায়ান-ডব্লিউ-কর্নিগান/dp/0131103628)
- -এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষায় দুর্দান্ত হ্যান্ডেল দেবে এবং যদি আপনি এটি কিছুটা অনুশীলন করেন
- আপনি দ্রুত দক্ষ হয়ে উঠবেন। সি বোঝা আপনাকে প্রোগ্রাম এবং মেমরি কীভাবে কাজ করে তা বুঝতে সহায়তা করে।
- -[প্রশ্নের উত্তর] (https://github.com/lekkas/c-algorithms)
-
-- ** কম্পিউটার কীভাবে কোনও প্রোগ্রাম প্রক্রিয়া করে: **
- - [সিপিইউ কীভাবে একটি প্রোগ্রাম (ভিডিও) চালায়]] (https://www.youtube.com/watch?v=XM4lGflQFvA)
- - [কম্পিউটারগুলি কীভাবে গণনা করে-ALU (ভিডিও)] (https://youtu.be/1I5ZMmrOfnA)
- - [নিবন্ধসমূহ এবং র্যাম (ভিডিও)] (https://youtu.be/fpnE6UAfbtU)
- - [সেন্ট্রাল প্রসেসিং ইউনিট (সিপিইউ) (ভিডিও)] (https://youtu.be/FZGugFqdr60)
- - [নির্দেশাবলী এবং প্রোগ্রামগুলি (ভিডিও)] (https://youtu.be/zltgXvg6r3k)
-
-
-
-##অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপোটিক বিশ্লেষণ
-
-
-<স্যুমারী> অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিপটোটিক বিশ্লেষণ সংশ্লেষ>
-
--বাস্তবায়নের কিছুই নেই
--এখানে প্রচুর ভিডিও রয়েছে। যতক্ষণ না আপনি এটি বুঝতে পারছেন ঠিক ততক্ষণ দেখুন। আপনি সর্বদা ফিরে এসে পর্যালোচনা করতে পারেন।
--কিছু বক্তৃতা যদি খুব ম্যাথিক হয় তবে আপনি ব্যাকগ্রাউন্ডের জ্ঞান পেতে নীচে নেমে গিয়ে আলাদা গণিতের ভিডিওগুলি দেখতে পারেন।
-- [হার্ভার্ড সিএস 50-অ্যাসিপটোটিক নোটেশন (ভিডিও)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [বিগ হে নোটেশনস (সাধারণ দ্রুত টিউটোরিয়াল) (ভিডিও)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [বিগ ও স্বরলিপি (এবং ওমেগা এবং থিতা)-সর্বোত্তম গাণিতিক ব্যাখ্যা (ভিডিও)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- স্কিয়েনা:
- -[ভিডিও](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- -[স্লাইডস](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [অ্যালগরিদম জটিলতা বিশ্লেষণের একটি নম্র ভূমিকা](http://discrete.gr/complexity/)
-- [বৃদ্ধির অর্ডার (ভিডিও)](https://www.coursera.org/lecture/algorithmic-thinking-1/orders-of-growth-6PKkX)
-- [অ্যাসিপটোটিকস (ভিডিও)](https://www.coursera.org/lecture/algorithmic-চিন্তাধারার-1/asyptics-bXAtM)
-- [ইউসি বার্কলে বিগ ও (ভিডিও)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
-- [ইউসি বার্কলে বিগ ওমেগা (ভিডিও)](https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc)
-- [ইমোরটাইজড অ্যানালাইসিস (ভিডিও)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [চিত্রিত "বিগ ও" (ভিডিও)](https://www.coursera.org/lecture/algorithmic-thinking-1/illustrating-big-o-YVqzv)
-- টপকোডার (পুনরাবৃত্ত সম্পর্ক এবং মাস্টার উপপাদ্য অন্তর্ভুক্ত):
- -[গণনামূলক জটিলতা: বিভাগ 1](https://www.topcoder.com/commune/competitive-pramramming/tutorials/computational-complexity-section-1/)
- -[গণনামূলক জটিলতা: বিভাগ 2](https://www.topcoder.com / সম্প্রদায় / কমপিটিটিভ-প্রোগ্রামিং / টিউটোরিয়ালস / কমপিটেশনাল-কমপ্লিকটি-সেকশন ২/২)
-- [চিট শিট](http://bigocheatsheet.com/)
-
+## অ্যালগরিদমিক জটিলতা / বিগ-ও / অ্যাসিম্পটোটিক বিশ্লেষণ
+
+- এখানে বাস্তবায়নের কিছু নেই, আপনি শুধু ভিডিও দেখছেন এবং নোট নিচ্ছেন! হ্যাঁ!
+- এখানে অনেক ভিডিও আছে। আপনি এটি বুঝতে না হওয়া পর্যন্ত শুধু যথেষ্ট দেখুন। আপনি সবসময় ফিরে আসতে পারেন এবং পর্যালোচনা করতে পারেন।
+- আপনি যদি এর পিছনের সমস্ত গণিত না বুঝতে পারেন তবে চিন্তা করবেন না।
+- আপনাকে শুধু বুঝতে হবে কিভাবে বিগ-ও এর পরিপ্রেক্ষিতে একটি অ্যালগরিদমের জটিলতা প্রকাশ করা যায়।
+- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [Skiena (video)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (includes recurrence relations and master theorem):
+ - [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
+- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+
+ওয়েল, যে যথেষ্ট যে সম্পর্কে.
+
+আপনি যখন "Cracking the Coding Interview" এর মধ্য দিয়ে যান, তখন এই বিষয়ে একটি অধ্যায় থাকে এবং শেষে একটি কুইজ দেখতে হয়
+যদি আপনি বিভিন্ন অ্যালগরিদমের রানটাইম জটিলতা সনাক্ত করতে পারেন। এটি একটি সুপার পর্যালোচনা এবং পরীক্ষা.
From 30c93ae77cdcf9882c84713ba9f85899b2505ed3 Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Sat, 17 Dec 2022 12:28:27 +0600
Subject: [PATCH 032/173] add algorithmic section
---
translations/README-bn.md | 73 ++++++++++++++++++---------------------
1 file changed, 34 insertions(+), 39 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 56acc8b0b9..e3334926dd 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -597,45 +597,40 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
আপনি যখন "Cracking the Coding Interview" এর মধ্য দিয়ে যান, তখন এই বিষয়ে একটি অধ্যায় থাকে এবং শেষে একটি কুইজ দেখতে হয়
যদি আপনি বিভিন্ন অ্যালগরিদমের রানটাইম জটিলতা সনাক্ত করতে পারেন। এটি একটি সুপার পর্যালোচনা এবং পরীক্ষা.
-
-
-##ডাটা স্ট্রাকচার
-
-
-<সংশ্লেটি> ডেটা স্ট্রাকচার
-
--###অ্যারে
- -একটি স্বয়ংক্রিয় আকার পরিবর্তনকারী ভেক্টর প্রয়োগ করুন।
- - বিবরণ:
- -[অ্যারে (ভিডিও)] (https://www.coursera.org/learn/data-structures/ নির্বাচন //sBSF/arrays)
- -[ইউসি বার্কলে সিএস 61 বি-লিনিয়ার এবং মাল্টি-ডিম অ্যারে (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (15m 32s থেকে দেখা শুরু করুন)
- -[ডাইনামিক অ্যারে (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
- -[জেগড অ্যারে (ভিডিও)] (https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - একটি ভেক্টর প্রয়োগ করুন (স্বয়ংক্রিয় আকার পুনরায় আকারের সাথে পরিবর্তনীয় অ্যারে):
- - অ্যারে এবং পয়েন্টার ব্যবহার করে কোডিং অনুশীলন করুন, এবং সূচক ব্যবহারের পরিবর্তে সূচীতে ঝাঁপ দেওয়ার জন্য পয়েন্টার ম্যাথ th
- - বরাদ্দ মেমরি সহ নতুন কাঁচা ডেটা অ্যারে
- -হুডের অধীনে ইন অ্যারে বরাদ্দ করতে পারে, কেবল তার বৈশিষ্ট্যগুলি ব্যবহার করবেন না
- -16 দিয়ে শুরু করুন, বা যদি শুরুর সংখ্যাটি বেশি হয় তবে 2-16, 32, 64, 128 এর শক্তি ব্যবহার করুন
- - আকার ()-আইটেমের সংখ্যা
- - ক্ষমতা ()-এটি ধরে রাখতে পারে এমন আইটেমের সংখ্যা
- -[ ] খালি()
- - এ (সূচক)-প্রদত্ত সূচকে আইটেমটি ফেরত দেয়, সূচক সীমা ছাড়িয়ে গেলে ফুটিয়ে উঠে
- - ধাক্কা (আইটেম)
- - সন্নিবেশ (সূচক, আইটেম)-সূচীতে আইটেম সন্নিবেশ করায়, সূচকের মান এবং পিছনের উপাদানগুলি ডানদিকে সরিয়ে দেয়
- - প্রিপেন্ড (আইটেম)-উপরে সূচক 0 এ সন্নিবেশ ব্যবহার করতে পারেন
- - পপ ()-শেষ থেকে সরান, ফেরতের মান
- - মুছুন (সূচী)-সূচি অনুসারে আইটেম মুছুন, সমস্ত অনুবর্তনীয় উপাদান বাম দিকে সরিয়ে
- - সরান (আইটেম)-মান সন্ধান করে এবং এটি ধরে রাখা সূচকটি সরিয়ে দেয় (এমনকি একাধিক জায়গায় থাকলেও)
- - সন্ধান করুন (আইটেম)-মানটির সন্ধান করে এবং সেই মানটির সাথে প্রথম সূচকটি প্রদান করে,-১ পাওয়া না গেলে
- - পুনরায় আকার দিন (নতুন_ক্ষমতা) // ব্যক্তিগত ফাংশন
- -যখন আপনি সক্ষমতা পৌঁছেছেন, আকার দ্বিগুণ করার জন্য পুনরায় আকার দিন
- -কোনও আইটেমটি পপ করার সময়, আকারটি যদি 1/4 ধারণক্ষমতা হয় তবে আকারটি অর্ধেক করুন
- - সময়
- -ও (1) শেষে অন্তর্ভুক্ত / অপসারণ (আরও স্থানের জন্য বরাদ্দের জন্য সূক্ষ্ম), সূচক বা আপডেট
- -ও (এন) অন্যত্র সন্নিবেশ / অপসারণ করতে
- - স্পেস
- -স্মৃতিতে সামঞ্জস্যপূর্ণ তাই নৈকট্য পারফরম্যান্সে সহায়তা করে
- -স্থান প্রয়োজন = (অ্যারে ক্ষমতা, যা> = এন) * আইটেমের আকার, তবে 2n হলেও এখনও হে (এন)
+## ডাটা স্ট্রাকচার
+
+- ### অ্যারে
+- [ ] অ্যারে সম্পর্কে:
+ - [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] Implement a vector (mutable array with automatic resizing):
+ - [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
+ - [ ] New raw data array with allocated memory
+ - can allocate int array under the hood, just not use its features
+ - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
+ - [ ] size() - আইটেমের সংখ্যা
+ - [ ] capacity() - আইটেমের সংখ্যা এটি ধরে রাখতে পারে
+ - [ ] is_empty()
+ - [ ] at(index) - returns item at given index, blows up if index out of bounds
+ - [ ] push(item)
+ - [ ] insert(index, item) - inserts item at index, shifts that index's value and trailing elements to the right
+ - [ ] prepend(item) - can use insert above at index 0
+ - [ ] pop() - শেষ থেকে সরান, ভ্যালু রিটার্ন করুন
+ - [ ] delete(index) - delete item at index, shifting all trailing elements left
+ - [ ] remove(item) - looks for value and removes index holding it (even if in multiple places)
+ - [ ] find(item) - looks for value and returns first index with that value, -1 if not found
+ - [ ] resize(new_capacity) // private function
+ - when you reach capacity, resize to double the size
+ - when popping an item, if size is 1/4 of capacity, resize to half
+ - [ ] Time
+ - O(1) to add/remove at end (amortized for allocations for more space), index, or update
+ - O(n) to insert/remove elsewhere
+ - [ ] Space
+ - contiguous in memory, so proximity helps performance
+ - space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
-###লিঙ্কযুক্ত তালিকাগুলি
- বিবরণ:
From 387e3709ac22327dd455bf1bc16a70b3f1c466f5 Mon Sep 17 00:00:00 2001
From: Durgesh <84910181+Durgesh-babu@users.noreply.github.com>
Date: Sun, 18 Dec 2022 09:16:34 +0530
Subject: [PATCH 033/173] Added new linked list resource
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 0f00777960..68fd43e58e 100644
--- a/README.md
+++ b/README.md
@@ -641,6 +641,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- ### Linked Lists
- [ ] Description:
+ - [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - this builds the intuition.
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
From 0a97cef8852baf649c978701cf460d3562eee360 Mon Sep 17 00:00:00 2001
From: Durgesh <84910181+Durgesh-babu@users.noreply.github.com>
Date: Mon, 19 Dec 2022 00:38:33 +0530
Subject: [PATCH 034/173] Added checkbox to the new linked list resource.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 68fd43e58e..5a7d9759df 100644
--- a/README.md
+++ b/README.md
@@ -641,7 +641,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- ### Linked Lists
- [ ] Description:
- - [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - this builds the intuition.
+ - [ ] [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - this builds the intuition.
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
From fac4fce3280108222235ad0a92daf6e590a205ba Mon Sep 17 00:00:00 2001
From: zaienaji
Date: Mon, 26 Dec 2022 13:04:52 +0800
Subject: [PATCH 035/173] add NAND to Tetris
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 5a7d9759df..2fa64fcdac 100644
--- a/README.md
+++ b/README.md
@@ -1095,6 +1095,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
- [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
- [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
+ - [ ] [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer)
- ### Caches
- [ ] LRU cache:
From fe6eb797932e75c1ad395311bdb8d20a5a2a2df0 Mon Sep 17 00:00:00 2001
From: zaienaji
Date: Tue, 27 Dec 2022 19:54:16 +0800
Subject: [PATCH 036/173] move NAND to Tetris to bottom (Additional Detail on
Some Subjects)
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 2fa64fcdac..f7bbeb8e36 100644
--- a/README.md
+++ b/README.md
@@ -1095,8 +1095,6 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
- [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
- [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
- - [ ] [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer)
-
- ### Caches
- [ ] LRU cache:
- [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
@@ -1894,6 +1892,8 @@ You're never really done.
- [CSE373 2020 - Mergesort/Quicksort (video)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
- [CSE373 2020 - Linear Sorting (video)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
+- NAND To Tetris: [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer)
+
## Video Series
Sit back and enjoy.
From 6d8e7dd229776923873df0c2608e8e035369d7cc Mon Sep 17 00:00:00 2001
From: Zaien Aji Trahutomo
Date: Wed, 28 Dec 2022 14:43:13 +0800
Subject: [PATCH 037/173] add book Algorithm from Jeff Erickson - University of
Illionis
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index f7bbeb8e36..067b43a5a2 100644
--- a/README.md
+++ b/README.md
@@ -1370,6 +1370,7 @@ You're never really done.
- Answers:
- [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+ - [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
- The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
From 6567e14cd35fe6ce561b17943416e0a8de1ab6bd Mon Sep 17 00:00:00 2001
From: Zaien Aji Trahutomo
Date: Wed, 28 Dec 2022 14:43:13 +0800
Subject: [PATCH 038/173] add book Algorithm from Jeff Erickson - University of
Illionis
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index f7bbeb8e36..067b43a5a2 100644
--- a/README.md
+++ b/README.md
@@ -1370,6 +1370,7 @@ You're never really done.
- Answers:
- [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+ - [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
- The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
From 3fc569e6757769a1ad0a714f30ac314cf2af1968 Mon Sep 17 00:00:00 2001
From: Zaien Aji Trahutomo
Date: Wed, 28 Dec 2022 14:48:45 +0800
Subject: [PATCH 039/173] fix wrong identation
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 067b43a5a2..20abefa72b 100644
--- a/README.md
+++ b/README.md
@@ -1370,7 +1370,7 @@ You're never really done.
- Answers:
- [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
- - [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
+- [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
- The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
From 7ec05f80b928e4bb5c567b2bcffab40c2edb71c6 Mon Sep 17 00:00:00 2001
From: Sadman
Date: Fri, 30 Dec 2022 20:12:40 +0600
Subject: [PATCH 040/173] add limked list draft
---
translations/README-bn.md | 67 ++++++++++++++++++++-------------------
1 file changed, 34 insertions(+), 33 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index e3334926dd..bc8eb0e93b 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -632,39 +632,40 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- contiguous in memory, so proximity helps performance
- space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
--###লিঙ্কযুক্ত তালিকাগুলি
- - বিবরণ:
- - [একক লিঙ্কযুক্ত তালিকাগুলি (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- - [সিএস 61 বি-লিঙ্কযুক্ত তালিকাগুলি 1 (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- - সিএস 61 বি-লিঙ্কযুক্ত তালিকাগুলি 2 (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- - [সি কোড (ভিডিও)] (https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- -পুরো ভিডিও নয়, নোড স্ট্রাক্ট এবং মেমরির বরাদ্দ সম্পর্কে কেবল অংশ।
- - লিঙ্কযুক্ত তালিকা বনাম অ্যারে:
- -[কোর লিঙ্কযুক্ত তালিকা বনাম অ্যারেগুলি (ভিডিও)] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- -[রিয়েল ওয়ার্ল্ডের লিঙ্কযুক্ত তালিকায় বনাম অ্যারেগুলি (ভিডিও)] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays)
- - [কেন আপনার লিঙ্কযুক্ত তালিকাগুলি (ভিডিও) এড়ানো উচিত]] (https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - গোটচা: আপনার পয়েন্টার জ্ঞানের জন্য পয়েন্টার প্রয়োজন:
- (আপনি যখন কোনও ফাংশনটিতে কোনও পয়েন্টার পাস করেন যা ঠিকানা পরিবর্তন করতে পারে যেখানে সেই পয়েন্টারটি নির্দেশ করে)
- এই পৃষ্ঠাটি কেবল পিটিআর থেকে পিটিআর এ উপলব্ধি পেতে। আমি এই তালিকাটি ট্র্যাভার্সাল স্টাইলের প্রস্তাব দিই না। পড়ার যোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা চতুরতার কারণে ভোগে।
- -[পয়েন্টারগুলিতে নির্দেশক] (https://www.eskimo.com/~scs/cclass/int/sx8.html)
- - বাস্তবায়ন করুন (আমি টেইল পয়েন্টার দিয়ে ও ছাড়াই করেছি):
- - আকার ()-তালিকায় ডাটা উপাদানগুলির সংখ্যা প্রদান করে
- - খালি ()-শূন্য হলে বুল সত্য দেয়
- - মান_আট (সূচক)-নবম আইটেমটির মান প্রদান করে (প্রথমটির জন্য 0 থেকে শুরু করে)
- - পুশ_ফ্রন্ট (মান)-তালিকার সামনের অংশে একটি আইটেম যুক্ত করে
- - পপ_ফ্রন্ট ()-সামনের আইটেমটি সরিয়ে তার মানটি ফিরিয়ে দিন
- - পুশ_ব্যাক (মান)-শেষে একটি আইটেম যুক্ত করে
- - পপ_ব্যাক ()-শেষ আইটেমটি সরিয়ে দেয় এবং এর মান প্রদান করে
- - সামনের ()-সামনের আইটেমটির মান পান
- - ফিরে ()-শেষ আইটেমটির মান পান
- - সন্নিবেশ (সূচক, মান)-সূচকে মূল্য সন্নিবেশ করানো হয়, সুতরাং সেই সূচীতে বর্তমান আইটেমটি সূচীতে নতুন আইটেম দ্বারা নির্দেশিত
- - মুছুন (সূচক)-প্রদত্ত সূচকে নোড সরান s
- - মান_ন_ফ্রম_েন্ড (এন)-তালিকার শেষে থেকে নবম অবস্থানে নোডের মান প্রদান করে
- - বিপরীত ()-তালিকার বিপরীতে
- - সরান_মূল্য (মান)-এই মান সহ তালিকার প্রথম আইটেমটি সরিয়ে দেয়
- - দ্বিগুণভাবে সংযুক্ত তালিকা
- -[বিবরণ (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists)
- -বাস্তবায়নের দরকার নেই
+- ### লিঙ্কড লিস্ট
+ - [ ] Description:
+ - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
+ - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
+ - not the whole video, just portions about Node struct and memory allocation
+ - [ ] Linked List vs Arrays:
+ - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+ - [ ] [Why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [ ] Gotcha: you need pointer to pointer knowledge:
+ (for when you pass a pointer to a function that may change the address where that pointer points)
+ This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
+ - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
+ - [ ] Implement (I did with tail pointer & without):
+ - [ ] size() - returns number of data elements in list
+ - [ ] empty() - bool returns true if empty
+ - [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
+ - [ ] push_front(value) - adds an item to the front of the list
+ - [ ] pop_front() - remove front item and return its value
+ - [ ] push_back(value) - adds an item at the end
+ - [ ] pop_back() - removes end item and returns its value
+ - [ ] front() - get value of front item
+ - [ ] back() - get value of end item
+ - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index
+ - [ ] erase(index) - removes node at given index
+ - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
+ - [ ] reverse() - reverses the list
+ - [ ] remove_value(value) - removes the first item in the list with this value
+ - [ ] Doubly-linked List
+ - [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
+ - No need to implement
-###স্ট্যাক
- [স্ট্যাকস (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
From 5aaeb662926d2fd453fd152bcee676c55b17140f Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Sat, 31 Dec 2022 22:00:24 +0600
Subject: [PATCH 041/173] add text
---
translations/README-bn.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index bc8eb0e93b..b86c9edea6 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -623,7 +623,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [ ] remove(item) - looks for value and removes index holding it (even if in multiple places)
- [ ] find(item) - looks for value and returns first index with that value, -1 if not found
- [ ] resize(new_capacity) // private function
- - when you reach capacity, resize to double the size
+ - যখন সাইজ পুরন হয়ে যায়, তখন সেটার সাইজ ডবল করে দিন
- when popping an item, if size is 1/4 of capacity, resize to half
- [ ] Time
- O(1) to add/remove at end (amortized for allocations for more space), index, or update
@@ -633,14 +633,14 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
- ### লিঙ্কড লিস্ট
- - [ ] Description:
+ - [ ] বিবরণ:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation
- - [ ] Linked List vs Arrays:
+ - [ ] লিঙ্কড লিস্ট বনাম অ্যারে:
- [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- [ ] [Why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
From 1680cb43e6de4e252d6d67e808978246d6e4fc03 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Sun, 1 Jan 2023 13:53:52 -0800
Subject: [PATCH 042/173] Removed IB since it consistently gives network errors
in link check.
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index 20abefa72b..cc25457184 100644
--- a/README.md
+++ b/README.md
@@ -569,7 +569,6 @@ Challenge/Practice sites:
- [Codeforces](https://codeforces.com/)
- [Codility](https://codility.com/programmers/)
- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
-- [InterviewBit](https://www.interviewbit.com/)
- [AlgoExpert](https://www.algoexpert.io/product)
- Created by Google engineers, this is also an excellent resource to hone your skills.
- [Project Euler](https://projecteuler.net/)
From 68b02435c3c277a13b571590361c706ca5ddfcdc Mon Sep 17 00:00:00 2001
From: Ismael Alves
Date: Wed, 4 Jan 2023 12:06:25 -0300
Subject: [PATCH 043/173] Fixing link.
---
translations/README-ptbr.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 67fb3b8fd1..28a8932427 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -932,7 +932,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO) (Engenharia de Software Orientada a Objetos: Desenvolvedor de Software usando UML e Java)
- [ ] Princípios de SOLID de POO:
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE) (Princípios de SOLID de Orientação a Objetos e Design Ágil por Bob Martin)
- - [ ] [SOLID Design Patterns in C# (video)](https://www.youtube.com/playlist?list=PL8m4NUhTQU48oiGCSgCP1FiJEcg_xJzyQ) (Padrões de Design de SOLID em C# - vídeo)
+ - [ ] [SOLID Design Patterns in C# (video)](https://www.youtube.com/playlist?list=PL8RerBWgqkey0rgzdmoJTc_ijMo8lf5T-) (Padrões de Design de SOLID em C# - vídeo)
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A) (Princípios de SOLID - vídeo)
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html) (S - Princípio da Responsabilidade Única)
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk) (mais informações)
@@ -1926,4 +1926,4 @@ Sente-se e aproveite. "Netflix e habilidade" :P
## Cursos de Ciência da Computação
- [Diretório de Cursos Online de Ciência da Computação](https://github.com/open-source-society/computer-science)
-- [Diretório de Cursos Online de Ciência da Computação (muitos com aulas online)](https://github.com/prakhar1989/awesome-courses)
\ No newline at end of file
+- [Diretório de Cursos Online de Ciência da Computação (muitos com aulas online)](https://github.com/prakhar1989/awesome-courses)
From 677103a87f56bd98dc538ce6a0cfd2502d5feae8 Mon Sep 17 00:00:00 2001
From: Sadman Sobhan
Date: Sat, 7 Jan 2023 21:51:04 +0600
Subject: [PATCH 044/173] add more text
---
translations/README-bn.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index b86c9edea6..c79743732d 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -600,10 +600,10 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
## ডাটা স্ট্রাকচার
- ### অ্যারে
-- [ ] অ্যারে সম্পর্কে:
+ - [ ] অ্যারে সম্পর্কে:
- [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
- [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (১৫ মিনিট ৩২ সেকেন্ড থেকে দেখা শুরু করুন)
- [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [ ] Implement a vector (mutable array with automatic resizing):
@@ -639,7 +639,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- - not the whole video, just portions about Node struct and memory allocation
+ - পুরো ভিডিওটি নয়, নোড স্ট্রাকট এবং মেমরি বরাদ্দ সম্পর্কে কিছু অংশ
- [ ] লিঙ্কড লিস্ট বনাম অ্যারে:
- [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
@@ -662,10 +662,10 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [ ] erase(index) - removes node at given index
- [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
- [ ] reverse() - reverses the list
- - [ ] remove_value(value) - removes the first item in the list with this value
+ - [ ] remove_value(value) - এই মান দিয়ে তালিকার প্রথম আইটেমটি সরিয়ে দেয়
- [ ] Doubly-linked List
- [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- - No need to implement
+ - ইমপ্লিমেন্টের প্রয়োজন নাই।
-###স্ট্যাক
- [স্ট্যাকস (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
From 91a4617403ee63abd81170d1015d3117005c7528 Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Sun, 8 Jan 2023 19:46:09 +0900
Subject: [PATCH 045/173] Fix translation
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 21cb9def19..35ec3a8bc3 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1,7 +1,7 @@
# コーディング面接の大学
>私はもともとこれをソフトウェアエンジニアになるための短いトピックリストとして作成しましたが、
->今日それは大きなリストに成長しました。この調査計画を経て、[私はAmazonで
+>今日それは大きなリストに成長しました。この勉強の計画を経て、[私はAmazonで
> ソフトウェアエンジニアとして雇われました!!](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
>おそらく、あなたは私ほど勉強する必要はないでしょう。とにかく、必要なものはすべてここにあります。
>
@@ -52,9 +52,9 @@
- Created by ex-Google engineers, AlgoMonster will help you crush the technical interview in less time
- and with fewer sleepless nights grinding away random problems. You will learn the key patterns necessary to solve
- any interview question and gain the systematic knowledge you need to prove your expertise. Be more confident
+ Created by ex-Google engineers, AlgoMonster will help you crush the technical interview in less time
+ and with fewer sleepless nights grinding away random problems. You will learn the key patterns necessary to solve
+ any interview question and gain the systematic knowledge you need to prove your expertise. Be more confident
as you walk into that interview!
@@ -180,10 +180,10 @@ SREまたはシステムエンジニアになりたい場合は、オプショ
一部のビデオは、Coursera、EdX、またはLynda.comクラスに登録することによってのみ利用できます。
これらはMOOCと呼ばれています。
-時にはクラスがセッションに入っていないので、数ヶ月待つ必要があるため、アクセス権がありません。
+時にはクラスがセッションに入っていないので、数ヶ月待つ必要があるため、アクセス権がありません。
Lynda.comコースは有料です。
-オンラインコースビデオに付随するYouTubeビデオなど、無料で常時利用可能なパブリックソースを追加することに感謝します。
+オンラインコースビデオに付随するYouTubeビデオなど、無料で常時利用可能なパブリックソースを追加することに感謝します。
私は大学の講義を使うのが好きです。
@@ -654,7 +654,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] insert //木に値を挿入する
- [ ] get_node_count //格納された値の数を取得する
- [ ] print_values //最小値から最大値まで木の値を出力します
- - [ ] delete_tree
+ - [ ] delete_tree
- [ ] is_in_tree //与えられた値が木に存在する場合はtrueを返します
- [ ] get_height //ノードの高さを返します(単一ノードの高さは1です)
- [ ] get_min //木に格納されている最小値を返します
@@ -1171,16 +1171,16 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [AmazonのAWSで1,100万人以上のユーザーに拡大するための初心者向けガイド](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- [ ] [Dockerの効果待ち時間の使用方法](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
- [ ] [AMPはGoogleに存在する脅威に対抗していますか?](http://highscalability.com/blog/2015/12/14/does-amp-counter-an-existential-threat-to-google.html)
- - [ ] [全Netflixスタックの360度ビュー](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [全Netflixスタックの360度ビュー](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- [ ] [レイテンシはどこにでもあり、それはあなたのセールスに費やされます - それを粉砕する方法](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- [ ] [サーバーレス(非常に長い、要点が必要](http://martinfowler.com/articles/serverless.html)
- [ ] [Instagramを動かすもの:何百ものインスタンス、数十のテクノロジ](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- [ ] [シンクキャストアーキテクチャ - 毎日1,500時間の音声を生成する](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- [ ] [Justin.Tvのライブビデオブロードキャストアーキテクチャ](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Playfishのソーシャルゲームアーキテクチャ - 月間5000万人のユーザーと成長](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
+ - [ ] [Playfishのソーシャルゲームアーキテクチャ - 月間5000万人のユーザーと成長](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- [ ] [アーキテクチャ - 40Mビジター、200Mダイナミックページビュー、30TBデータ]()
- [ ] [PlentyOfFishアーキテクチャ](http://highscalability.com/plentyoffish-architecture)
- - [ ] [Salesforceのアーキテクチャ - どのように130億回のトランザクションを処理するか](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [Salesforceのアーキテクチャ - どのように130億回のトランザクションを処理するか](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- [ ] [ESPNの規模でのアーキテクチャ - 毎秒100,000のDuh Nuh Nuhsで動作](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- [ ] サービスを結合する技術の情報については、以下の「メッセージング、シリアライゼーション、およびキューイングシステム」を参照してください。
- [ ] Twitter:
From a271fcc05d64cd357237abcb95dea284b96b1de9 Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Mon, 9 Jan 2023 11:35:44 +0900
Subject: [PATCH 046/173] Add some translations
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 35ec3a8bc3..0050ad5dbc 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -4,7 +4,8 @@
>今日それは大きなリストに成長しました。この勉強の計画を経て、[私はAmazonで
> ソフトウェアエンジニアとして雇われました!!](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
>おそらく、あなたは私ほど勉強する必要はないでしょう。とにかく、必要なものはすべてここにあります。
->
+> 私は数ヶ月間、1日約8〜12時間勉強しました。これが私のストーリーです: [Google の面接のために8か月間フルタイムで勉強した理由](https://www.freecodecamp.org/news/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+>注意してください: あなたは私ほど勉強する必要はありません。私は、知る必要のないことに多くの時間を無駄にしました。詳細については、以下をご覧ください。貴重な時間を無駄にすることなく、必要なことを勉強するのを手伝います。
>ここに掲載されている項目を学べば、Amazon、Facebook、Google、Microsoftなど
>大手企業を含む、ほぼすべてのソフトウェア会社の面接に備えることができます。
>
From 8211333fec85ca477f387ca59d241097aabc381e Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Mon, 9 Jan 2023 12:48:50 +0900
Subject: [PATCH 047/173] Add some translations
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 0050ad5dbc..5ab56260b6 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -64,17 +64,19 @@
## これは何?
+
-これは、Webエンジニア(独学で、CS学位なし)から大企業のソフトウェアエンジニアを目指すための私の複数月の学習計画です。
+これは、大企業のソフトウェア エンジニアになるための私の数か月にわたる学習計画です。
-
+必須:
-これは、 **新人ソフトウェアエンジニア** 、またはソフトウェア/ Webエンジニアからソフトウェアエンジニア(CSの知識が必要な場合)に転職する人を対象にしています。
-長年のソフトウェアエ開発経験をお持ちの場合は、より面白い面接を期待してください。
+コーディングの経験 (変数、ループ、メソッド/関数など)
+忍耐
+時間
-あなたに何年ものソフトウェア/Web開発経験がある場合、Google、Amazon、Facebook、Microsoftなどの大規模なソフトウェア会社は、ソフトウェア/Web開発力ではなくソフトウェア工学に関して見ており、そのためにはCSに関する知識が必要となることをご了承ください。
+これは**ソフトウェアエンジニアリング**の学習計画であり、Web 開発の学習計画ではありません。 Google、Amazon、Facebook、Microsoft などの大手ソフトウェア企業は、ソフトウェアエンジニアリングを Web 開発とは異なるものと見なしています。 たとえば、Amazon にはフロントエンドエンジニア (FEE) とソフトウェア開発エンジニア (SDE) がいます。 これらは2つの別個の役割であり、それぞれに独自の能力があるため、面接は同じではありません。これらの企業は、ソフトウェア開発/エンジニアリングの役割のためにコンピューターサイエンスの知識を必要とします。
-SREまたはシステムエンジニアになりたい場合は、オプションのリスト(ネットワーク、セキュリティ)から詳細を調べてください。
+大学のコンピューターサイエンスプログラムで学ぶことはたくさんありますが、75%程度の知識があれば面接に十分なので、ここではそれについて説明します。 完全な CS 独学プログラムについては、私の学習計画のリソースがカムラン アーメドのコンピューターサイエンスロードマップに含まれています: https://roadmap.sh/computer-science
---
From eb5e7cb5a4e7ee977de05a6f7dc190252f20e146 Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Mon, 9 Jan 2023 14:48:28 +0900
Subject: [PATCH 048/173] Add some translations and fix structural mistakes
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 40 ++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 5ab56260b6..74ba6dcf80 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -132,6 +132,10 @@
## なぜこれを使用するのか
+大企業でソフトウェアエンジニアとして働きたい場合は、次のことを知っておく必要があります。
+
+私のようにコンピューターサイエンスの学位を取得していない場合、これで追いつき、人生の4年間を救うことができます。
+
私はこのプロジェクトを始めたとき、ヒープからスタックを知りませんでしたし、Big-O とは何か、木構造に関すること、グラフをたどる方法を知らなかったのです。
ソートアルゴリズムをコーディングしなければならない場合は、あまりうまくいきませんでした。
これまで使用してきたすべてのデータ構造は言語に組み込まれていて、どのようにしてそれらがどのようにして動作するのか分かりませんでした。
@@ -525,7 +529,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- ### スタック
- [ ] [Stacks(video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- - [ ] [スタックをの使用 Last-In First-Out(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
+ - [ ] [スタックの使用 Last-In First-Out(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
- [ ] 実装されません。配列で実装するのは簡単です。
- ### キュー
@@ -536,11 +540,11 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] テールポインタ付き連結リストを使って実装する:
- enqueue(value) - テールの位置に値を追加する
- dequeue() - 値を返し、少なくとも最近追加された要素を削除する(前面)
- - empty()
+ - empty()
- [ ] 固定長配列を使って実装する:
- enqueue(value) - 利用可能なストレージの最後にアイテムを追加する
- dequeue() - 値を返し、最近追加された要素のうち最も古い要素を削除します
- - empty()
+ - empty()
- full()
- [ ] コスト:
- 最後の要素の次の要素が必要になるため、先頭にエンキューし、末尾をデキューするリンクリストを使用する悪い実装はO(n)になり、デキューごとに完全なトラバーサルが発生します
@@ -553,9 +557,11 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [連鎖によるハッシング(動画)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- [ ] [ダブリング、ラビン-カープ(ビデオ)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [公開アドレス指定、暗号化ハッシング(動画)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010:The Mighty Dictionary(video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2010: The Mighty Dictionary(video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier(video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(上級)Randomization:ユニバーサル&完全 ハッシング(ビデオ)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(高度)完全ハッシング(動画)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://www.youtube.com/watch?v=knV86FlSXJ8)
- [ ] オンラインコース:
- [ ] [ハッシュ関数について(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
@@ -622,19 +628,18 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- 操作アルゴリズム
- BFS(幅優先検索)
- [MIT(動画)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - レベルオーダー(BFS、キューを使用)
- 時間複雑度:O(n)
- 空間の複雑さ:最適:O(1)、最悪:O(n / 2)= O(n)
+ - メモ:
+ - レベルオーダー(BFS、キューを使用)
+ - 時間複雑度:O(n)
+ - 空間の複雑さ:最適:O(1)、最悪:O(n / 2)= O(n)
- DFS(深さ優先探索)
- [MIT(動画)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
- - メモ:
- 時間複雑度:O(n)
- 空間の複雑さ:
- 最良:O(log n) - 平均。木の高さ
- 最悪:O(n)
- - inorder(DFS:left、self、right)
- - postorder(DFS:left、right、self)
- - preorder(DFS:自己、左、右)
+ - メモ:
+ - 時間複雑度:O(n)
+ - 空間の複雑さ:最良:O(log n) - 平均。木の高さ 最悪:O(n)
+ - inorder(DFS:left、self、right)
+ - postorder(DFS:left、right、self)
+ - preorder(DFS:自己、左、右)
- ### 二分探索木:BST
- [ ] [二分探索木レビュー(動画)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -690,7 +695,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] is_empty() - ヒープに要素が含まれていない場合はtrueを返します。
- [ ] extract_max - 最大アイテムを返し、それを削除します。
- [ ] sift_down - extract_maxに必要です
- - [ ] remove(i) - インデックスxのアイテムを削除する
+ - [ ] remove(x) - インデックスxのアイテムを削除する
- [ ] heapify - heap_sortに必要な要素の配列からヒープを作成する
- [ ] heap_sort() - ソートされていない配列を取り出し、最大ヒープを使用してソート済みの配列に変換します
- 注意:代わりにminヒープを使用すると、操作が節約されますが、必要な領域が2倍になります([in-place](https://ja.wikipedia.org/wiki/In-place%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0)では実行できません)。
@@ -755,7 +760,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
グラフはコンピュータサイエンスの多くの問題を表現するために使用することができるので、このセクションは木やソートのように長いです。
-- note:
+- メモ:
- メモリにグラフを表示するには4つの基本的な方法があります:
- オブジェクトとポインタ
- 隣接行列
@@ -823,6 +828,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [テール再帰(ビデオ)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
- ### 動的プログラミング
+ - 面接で動的プログラミングの問題が見られることはおそらくないでしょうが、問題が動的プログラミングの候補であると認識できることは価値があります。
- この問題はかなり難しいかもしれません。なぜなら、それぞれのDP可溶性問題は再帰関係として定義されなければならず、それを思い付くのは難しいかもしれないからです。
- DPの問題の多くの例を見て、あなたが関連するパターンをしっかりと理解するまでお勧めします。
- [ ] 動画:
From 7364986ea47312889de35aefba3db9b54fc5f583 Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Mon, 9 Jan 2023 15:01:10 +0900
Subject: [PATCH 049/173] Add some translations
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 74ba6dcf80..e668ea991c 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -934,6 +934,13 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [JupyterNotebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- あなたが持っているなら、CLRSの1048 - 1140ページ。
+- ### コンピューターはどのようにプログラムを実行するか
+ - [ ] [CPU がどのようにプログラムを実行するか (動画)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [コンピューターがどのように計算するか - ALU (動画)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [レジスタと RAM (動画)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [中央処理装置 (CPU) (動画)](https://youtu.be/FZGugFqdr60)
+ - [ ] [命令とプログラム (動画)](https://youtu.be/zltgXvg6r3k)
+
- ### キャッシュ
- [ ] LRUキャッシュ:
- [ ] [LRUキャッシュの魔法(Google Devの100日間)(ビデオ)](https://www.youtube.com/watch?v=R5ON3iwx78M)
@@ -1358,12 +1365,13 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- 何をしているの?
- それについて何が好きですか?
- 仕事の生活はどうですか?
+- ワークライフバランスはどうですか?
## 一度あなたは仕事を得た
おめでとう!
-学び続けます。
+学び続けてください。
あなたは決して本当に終わらない。
From f0c6d8da705e1e3bb9c79bca7e228763ccb9f3fa Mon Sep 17 00:00:00 2001
From: Shogo Hida
Date: Mon, 9 Jan 2023 15:03:13 +0900
Subject: [PATCH 050/173] Fix translation
Signed-off-by: Shogo Hida
---
translations/README-ja.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index e668ea991c..6238bf4478 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1,7 +1,7 @@
# コーディング面接の大学
>私はもともとこれをソフトウェアエンジニアになるための短いトピックリストとして作成しましたが、
->今日それは大きなリストに成長しました。この勉強の計画を経て、[私はAmazonで
+>今日それは大きなリストに成長しました。この学習計画を経て、[私はAmazonで
> ソフトウェアエンジニアとして雇われました!!](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
>おそらく、あなたは私ほど勉強する必要はないでしょう。とにかく、必要なものはすべてここにあります。
> 私は数ヶ月間、1日約8〜12時間勉強しました。これが私のストーリーです: [Google の面接のために8か月間フルタイムで勉強した理由](https://www.freecodecamp.org/news/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
From 5afbb043c075e106aa1a5c9b1a063cc884512e6c Mon Sep 17 00:00:00 2001
From: ajoneshs <32287147+ajoneshs@users.noreply.github.com>
Date: Fri, 13 Jan 2023 21:26:15 -0500
Subject: [PATCH 051/173] Correct book name in README
The C Programming Language by Brian Kernighan and Dennis Ritchie only has one volume. This commit replaces "Vol 2" with "2nd Edition".
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index cc25457184..199c5afe9f 100644
--- a/README.md
+++ b/README.md
@@ -319,7 +319,7 @@ When I did the study plan, I used 2 languages for most of it: C and Python
and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
- C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
- - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - [The C Programming Language, 2nd Edition](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- This is a short book, but it will give you a great handle on the C language and if you practice it a little
you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
From 1b5ad8159d95f5dec5dd30f16792bac649ed0959 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Tue, 24 Jan 2023 18:43:10 -0800
Subject: [PATCH 052/173] Removes sponsor.
---
README.md | 21 ---------------------
translations/README-af.md | 21 ---------------------
translations/README-ar.md | 21 ---------------------
translations/README-bg.md | 21 ---------------------
translations/README-bn.md | 21 ---------------------
translations/README-cn.md | 18 ------------------
translations/README-de.md | 21 ---------------------
translations/README-es.md | 21 ---------------------
translations/README-fa.md | 21 ---------------------
translations/README-fr.md | 21 ---------------------
translations/README-he.md | 21 ---------------------
translations/README-hi.md | 21 ---------------------
translations/README-id.md | 21 ---------------------
translations/README-it.md | 21 ---------------------
translations/README-ja.md | 21 ---------------------
translations/README-kh.md | 21 ---------------------
translations/README-ko.md | 21 ---------------------
translations/README-pl.md | 21 ---------------------
translations/README-ptbr.md | 21 ---------------------
translations/README-ru.md | 21 ---------------------
translations/README-th.md | 21 ---------------------
translations/README-tr.md | 21 ---------------------
translations/README-tw.md | 18 ------------------
translations/README-uk.md | 21 ---------------------
translations/README-ur.md | 21 ---------------------
translations/README-uz.md | 21 ---------------------
translations/README-vi.md | 21 ---------------------
27 files changed, 561 deletions(-)
diff --git a/README.md b/README.md
index 199c5afe9f..3e4626d7b9 100644
--- a/README.md
+++ b/README.md
@@ -59,27 +59,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-af.md b/translations/README-af.md
index 5ec0cecb63..72633d0b1c 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -59,27 +59,6 @@
Word 'n bydraër en borg Kodering Onderhoud Universiteit!
-
- Spesiale dank aan:
-
-
diff --git a/translations/README-ar.md b/translations/README-ar.md
index c3b9d9da5b..19afc9fa44 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -58,27 +58,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-bg.md b/translations/README-bg.md
index f2144cfc4f..8be2becbe8 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -52,27 +52,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-bn.md b/translations/README-bn.md
index c79743732d..ae2ebec122 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -56,27 +56,6 @@
পৃষ্ঠপোষক হয়ে যান এবং কোডিং ইন্টারভিউ বিশ্ববিদ্যালয় সমর্থন করুন!
-
- বিশেষ ধন্যবাদঃ
-
-
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 004dae02c2..f5ab2a5ee2 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -13,24 +13,6 @@
成为赞助商 并支持编程大学!
-
- 特别感谢:
-
-
diff --git a/translations/README-de.md b/translations/README-de.md
index 0e46cf1688..9906e28026 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -49,27 +49,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-es.md b/translations/README-es.md
index 4863a092b9..4b820b2c77 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -51,27 +51,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 2a30ff5b47..383e5e6fcf 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -55,27 +55,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-fr.md b/translations/README-fr.md
index fb8127614c..7245cde0ea 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -10,27 +10,6 @@ Traductions:
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-he.md b/translations/README-he.md
index 9291270a9f..b6e01cfa30 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -22,27 +22,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-hi.md b/translations/README-hi.md
index d16afe6965..889d2a7a9b 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -61,27 +61,6 @@
प्रायोजक बनें
और कोडिंग साक्षात्कार विश्वविद्यालय का समर्थन करें!
-
- विशेष धन्यवाद:
-
-
diff --git a/translations/README-id.md b/translations/README-id.md
index 7ea2d71913..2c40f4e795 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -7,27 +7,6 @@ Versi asli: [Bahasa Inggris](../README.md)
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-it.md b/translations/README-it.md
index 9f4bab8ab0..8128bace10 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -64,27 +64,6 @@ Traduzione in Italiano a Cura di [@volpoh](https://github.com/volpoh)
Diventa uno sponsor e supporta Coding Interview University!
-
- Un ringraziamento speciale a:
-
-
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 6238bf4478..e30028525e 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -39,27 +39,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 22baabdfa5..7e5b187949 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -51,27 +51,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 4007987a68..30f64f03ae 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -56,27 +56,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-pl.md b/translations/README-pl.md
index e1840ad3ac..b65e832354 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -48,27 +48,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
## Co to jest?
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 28a8932427..75ca63bd2b 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -44,27 +44,6 @@ Traduções em progresso:
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 94ef6b3c6c..0030bbce49 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -7,27 +7,6 @@
Become a sponsor and support Coding Interview University!
-
- Особые благодарности:
-
-
diff --git a/translations/README-th.md b/translations/README-th.md
index fe29cd2dba..84477cf05b 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -31,27 +31,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-tr.md b/translations/README-tr.md
index f691396981..0cf2664609 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -54,27 +54,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 0ff99f9033..fa5a8ab3bd 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -56,24 +56,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 3188f72785..371b068812 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -57,27 +57,6 @@ Microsoft.
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 64a12315ff..01b5eafd38 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -49,27 +49,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-uz.md b/translations/README-uz.md
index 44f456eb0c..be85bca262 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -17,27 +17,6 @@ Asl versiyasi: [Inglizcha](../README.md)
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 4af369f938..07b27081d8 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -34,27 +34,6 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
From a2152157ebf82a6ff82513a3aaccb27c3180ae16 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Sat, 28 Jan 2023 11:35:28 -0800
Subject: [PATCH 053/173] Adds prep course.
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 3e4626d7b9..5d5acf10c4 100644
--- a/README.md
+++ b/README.md
@@ -1240,8 +1240,6 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
- [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
- Prep Courses:
- - [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
- - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
- [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
@@ -1250,6 +1248,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
- [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
- Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview.
+ - [AlgoMonster (paid course with free content)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - The crash course for LeetCode. Covers all the patterns condensed from thousands of questions.
Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
From 5583a11e4b176a3e6e7fcb02acf536aeb39965e6 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Wed, 1 Feb 2023 08:06:13 -0800
Subject: [PATCH 054/173] Removes non-responsive links.
---
README.md | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 5d5acf10c4..f4d6e930f2 100644
--- a/README.md
+++ b/README.md
@@ -1214,17 +1214,11 @@ Graphs can be used to represent many problems in computer science, so this secti
## Update Your Resume
- See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed"
-- I don't know how important this is (you can do your own research) but here is an article on making your resume ATS Compliant:
- - [How to Create or Check if your Resume is ATS Compliant](https://ayedot.com/97/MiniBlog/Meaning-of-ATS-compliant-resume-and-How-to-create-ATS-Resume-for-Free)
- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
- Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
- ["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
-
-
-## Find a Job
-
-- [Sites for Finding Jobs](https://ayedot.com/151/MiniBlog/Top-10-Best-Websites-for-Careers--Jobs)
+ - Detailed guide on how to set up your resume from scratch, write effective resume content, optimize it, and test your resume
## Interview Process & General Interview Prep
@@ -1274,9 +1268,6 @@ 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]?
-- If you find it hard to come up with good answers of these types of interview questions, here are some ideas:
- - [General Interview Questions and their Answers](https://ayedot.com/119/MiniBlog/General-Interview-Questions-and-their-Answers-for-Tech-Jobs)
-
## Have questions for the interviewer
Some of mine (I already may know the answers, but want their opinion or team perspective):
@@ -1864,7 +1855,7 @@ You're never really done.
- Stanford lectures on sorting:
- [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- - Shai Simonson, [Aduni.org](http://www.aduni.org/):
+ - Shai Simonson:
- [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- Steven Skiena lectures on sorting:
From cdfe0965092f3f4dfbec35ca64b0ef3026313bcd Mon Sep 17 00:00:00 2001
From: Abdullah Afzal
Date: Fri, 3 Feb 2023 04:23:08 +0500
Subject: [PATCH 055/173] translate table of content in urdu
---
translations/README-ur.md | 247 +++++++++++++++++++-------------------
1 file changed, 122 insertions(+), 125 deletions(-)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 01b5eafd38..49e9f8c7c7 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -47,144 +47,141 @@
-## What is it?
+## یہ کیا ہے؟
-This is my multi-month study plan for going from web developer (self-taught, no CS degree) to software engineer for a large company.
+یہ ایک بڑی کمپنی کے لیے ایک ویب ڈویلپر (خود سیکھا ہوا، بغیر CS ڈگری کے) سے سافٹ ویئر انجینئر تک جانے کے لیے کئی مہینوں کا میرا اسٹڈی پلان ہے۔

-This is meant for **new software engineers** or those switching from
-software/web development to software engineering (where computer science knowledge is required). If you have
-many years of experience and are claiming many years of software engineering experience, expect a harder interview.
+یہ **نئے سافٹ ویئر انجینئرز** یا سافٹ ویئر/ویب ڈویلپمنٹ سے سافٹ ویئر انجینئرنگ میں تبدیل ہونے والوں کے لیے ہے (جہاں کمپیوٹر سائنس کا علم درکار ہے)۔ اگر آپ کے پاس کئی سالوں کا تجربہ ہے اور آپ سافٹ ویئر انجینئرنگ کے کئی سالوں کے تجربے کا دعویٰ کر رہے ہیں تو ایک مشکل انٹرویو کی توقع کریں۔
-If you have many years of software/web development experience, note that large software companies like Google, Amazon,
-Facebook and Microsoft view software engineering as different from software/web development, and they require computer science knowledge.
+اگر آپ کے پاس سافٹ ویئر/ویب ڈویلپمنٹ کا کئی سال کا تجربہ ہے، تو نوٹ کریں کہ بڑی سافٹ ویئر کمپنیاں جیسے گوگل، ایمیزون، فیس بک اور مائیکروسافٹ سافٹ ویئر انجینئرنگ کو سافٹ ویئر/ویب ڈویلپمنٹ سے مختلف سمجھتے ہیں، اور انہیں کمپیوٹر سائنس کے علم کی ضرورت ہوتی ہے۔
-If you want to be a reliability engineer or operations engineer, study more from the optional list (networking, security).
+اگر آپ ریلائیبلٹی انجینئر یا آپریشنز انجینئر بننا چاہتے ہیں تو اختیاری فہرست (نیٹ ورکنگ، سیکیورٹی) سے مزید مطالعہ کریں۔
---
-## Table of Contents
-
-- [What is it?](#what-is-it)
-- [Why use it?](#why-use-it)
-- [How to use it](#how-to-use-it)
-- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
-- [About Video Resources](#about-video-resources)
-- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
-- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
-- [Book List](#book-list)
-- [Before you Get Started](#before-you-get-started)
-- [What you Won't See Covered](#what-you-wont-see-covered)
-- [Prerequisite Knowledge](#prerequisite-knowledge)
-- [The Daily Plan](#the-daily-plan)
-- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
-- [Data Structures](#data-structures)
- - [Arrays](#arrays)
- - [Linked Lists](#linked-lists)
- - [Stack](#stack)
- - [Queue](#queue)
- - [Hash table](#hash-table)
-- [More Knowledge](#more-knowledge)
- - [Binary search](#binary-search)
- - [Bitwise operations](#bitwise-operations)
-- [Trees](#trees)
- - [Trees - Notes & Background](#trees---notes--background)
- - [Binary search trees: BSTs](#binary-search-trees-bsts)
- - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- - balanced search trees (general concept, not details)
- - traversals: preorder, inorder, postorder, BFS, DFS
-- [Sorting](#sorting)
- - selection
- - insertion
- - heapsort
- - quicksort
- - merge sort
-- [Graphs](#graphs)
- - directed
- - undirected
- - adjacency matrix
- - adjacency list
- - traversals: BFS, DFS
-- [Even More Knowledge](#even-more-knowledge)
- - [Recursion](#recursion)
- - [Dynamic Programming](#dynamic-programming)
- - [Object-Oriented Programming](#object-oriented-programming)
- - [Design Patterns](#design-patterns)
- - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- - [Caches](#caches)
- - [Processes and Threads](#processes-and-threads)
- - [Testing](#testing)
- - [Scheduling](#scheduling)
- - [String searching & manipulations](#string-searching--manipulations)
- - [Tries](#tries)
- - [Floating Point Numbers](#floating-point-numbers)
- - [Unicode](#unicode)
- - [Endianness](#endianness)
- - [Networking](#networking)
-- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
-- [Final Review](#final-review)
-- [Coding Question Practice](#coding-question-practice)
-- [Coding exercises/challenges](#coding-exerciseschallenges)
-- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
-- [Your Resume](#your-resume)
-- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
-- [Have questions for the interviewer](#have-questions-for-the-interviewer)
-- [Once You've Got The Job](#once-youve-got-the-job)
-
----------------- Everything below this point is optional ----------------
-
-## Additional Resources
-
-- [Additional Books](#additional-books)
-- [Additional Learning](#additional-learning)
- - [Compilers](#compilers)
- - [Emacs and vi(m)](#emacs-and-vim)
- - [Unix command line tools](#unix-command-line-tools)
- - [Information theory](#information-theory-videos)
- - [Parity & Hamming Code](#parity--hamming-code-videos)
- - [Entropy](#entropy)
- - [Cryptography](#cryptography)
- - [Compression](#compression)
- - [Computer Security](#computer-security)
- - [Garbage collection](#garbage-collection)
- - [Parallel Programming](#parallel-programming)
- - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
- - [A*](#a)
- - [Fast Fourier Transform](#fast-fourier-transform)
- - [Bloom Filter](#bloom-filter)
- - [HyperLogLog](#hyperloglog)
- - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- - [van Emde Boas Trees](#van-emde-boas-trees)
- - [Augmented Data Structures](#augmented-data-structures)
- - [Balanced search trees](#balanced-search-trees)
- - AVL trees
- - Splay trees
- - Red/black trees
- - 2-3 search trees
- - 2-3-4 Trees (aka 2-4 trees)
- - N-ary (K-ary, M-ary) trees
- - B-Trees
- - [k-D Trees](#k-d-trees)
- - [Skip lists](#skip-lists)
- - [Network Flows](#network-flows)
- - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- - [Math for Fast Processing](#math-for-fast-processing)
- - [Treap](#treap)
- - [Linear Programming](#linear-programming-videos)
- - [Geometry, Convex hull](#geometry-convex-hull-videos)
- - [Discrete math](#discrete-math)
- - [Machine Learning](#machine-learning)
-- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
-- [Video Series](#video-series)
-- [Computer Science Courses](#computer-science-courses)
-- [Papers](#papers)
+## مواد کی فہرست
+
+- [یہ کیا ہے؟](#what-is-it)
+- [اسے کیوں استعمال کریں؟](#why-use-it)
+- [اسے کیسے استعمال کریں](#how-to-use-it)
+- [اپنے آپ کو کم نہ سمجھیں](#dont-feel-you-arent-smart-enough)
+- [ویڈیو مواد کے بارے میں](#about-video-resources)
+- [انٹرویو کا عمل اور عام انٹرویو کی تیاری](#interview-process--general-interview-prep)
+- [انٹرویو کے لیے ایک زبان کا انتخاب کریں۔](#pick-one-language-for-the-interview)
+- [کتابوں کی فہرست](#book-list)
+- [شروع کرنے سے پہلے](#before-you-get-started)
+- [جو آپ نہیں سیکھیں گے۔](#what-you-wont-see-covered)
+- [پہلے سے ضروری علم](#prerequisite-knowledge)
+- [روزانہ کی منصوبہ بندی](#the-daily-plan)
+- [الگورتھمک پیچیدگی / بگ-او / اسیمپٹوٹک تجزیہ(Algorithmic complexity / Big-O / Asymptotic analysis)](#algorithmic-complexity--big-o--asymptotic-analysis)
+- [ڈیٹا سٹرکچرز(Data Structures)](#data-structures)
+ - [آرے (Arrays)](#arrays)
+ - [لنکڈلسٹ (Linked Lists)](#linked-lists)
+ - [سٹیک (Stack)](#stack)
+ - [کیو (Queue)](#queue)
+ - [ہیش ٹیبل (Hash table)](#hash-table)
+- [مزید معلومات](#more-knowledge)
+ - [بینری سرچ (Binary search)](#binary-search)
+ - [بٹ وائزاپریشنز (Bitwise operations)](#bitwise-operations)
+- [ٹریز (Trees)](#trees)
+ - [ٹریز - نوٹس اور پس منظر](#trees---notes--background)
+ - [بینری سرچ ٹریز (Binary search trees: BSTs)](#binary-search-trees-bsts)
+ - [ہیپ / پریاٹری کیو / بینری ہیپ (Heap / Priority Queue / Binary Heap)](#heap--priority-queue--binary-heap)
+ - بیلنسڈ سرچ ٹریز - عمومی جائزہ (balanced search trees - general concept, not details)
+ - ٹریورسل (traversals: preorder, inorder, postorder, BFS, DFS)
+- [ترتیب / سارٹنگ (Sorting)](#sorting)
+ - سلیکشن (selection)
+ - انسرشن (insertion)
+ - ہیپ سارٹ (heapsort)
+ - کوک سارٹ (quicksort)
+ - مرج سارٹ (merge sort)
+- [گرافس (Graphs)](#graphs)
+ - ڈریکٹڈ (directed)
+ - انڈریکٹڈ (undirected)
+ - اڈجیسنسی میٹرکس (adjacency matrix)
+ - اڈجیسنسی لسٹ (adjacency list)
+ - ٹریورسل (traversals: BFS, DFS)
+- [اس سے بھی زیادہ معلومات](#even-more-knowledge)
+ - [رکرین / تکرار (Recursion)](#recursion)
+ - [ڈینیمک پروگرامنگ](#dynamic-programming)
+ - [ابجیکٹ پروگرامنگ](#object-oriented-programming)
+ - [ڈیزائن پیٹرن](#design-patterns)
+ - [امتزاج (n منتخب k) اور امکان](#combinatorics-n-choose-k--probability)
+ - [تخمینہ الگورتھم ،NPاورNP-مکمل (NP, NP-Complete and Approximation Algorithms)](#np-np-complete-and-approximation-algorithms)
+ - [کیچز](#caches)
+ - [پروسسزاور تھریڈز](#processes-and-threads)
+ - [ٹیسٹنگ](#testing)
+ - [شیڈولنگ](#scheduling)
+ - [سٹرنگ تلاش کرنا اور تبدیل کرنا](#string-searching--manipulations)
+ - [ٹرایز (Tries)](#tries)
+ - [اعشاریہ کے ساتھ نمبر](#floating-point-numbers)
+ - [یونیکوڈ](#unicode)
+ - [اینڈیاننس](#endianness)
+ - [نیٹ ورکنگ](#networking)
+- [سسٹم ڈیزائن، اسکیل ایبلٹی، ڈیٹا ہینڈلنگ](#system-design-scalability-data-handling) (اگر آپ کو 4 سال سے زیادہ کا تجربہ ہے۔)
+- [حتمی جائزہ](#final-review)
+- [کوڈنگ سوال کی مشق](#coding-question-practice)
+- [کوڈنگ کی مشقیں/چیلنجز](#coding-exerciseschallenges)
+- [ایک بار جب آپ انٹرویو کے قریب پہنچ جائیں۔](#once-youre-closer-to-the-interview)
+- [آپ کا رزیومے](#your-resume)
+- [اپنے انٹرویو لینے والے کی طرح سوچیں۔](#be-thinking-of-for-when-the-interview-comes)
+- [انٹرویو لینے والے کے لیے سوالات](#have-questions-for-the-interviewer)
+- [ایک بار جب آپ کو نوکری مل جائے گی۔](#once-youve-got-the-job)
+
+---------------- ذیل کی چیزیں اختیاری ہیں ----------------
+
+## اضافی مواد
+
+- [اضافی کتابیں](#additional-books)
+- [اضافی معلومات](#additional-learning)
+ - [کمپائلر](#compilers)
+ - [ایماکس اور vi(m)](#emacs-and-vim)
+ - [یونکس کمانڈ لائن ٹولز](#unix-command-line-tools)
+ - [انفارمیشن تھیوری](#information-theory-videos)
+ - [پیرٹی اور ہیمنگ کوڈ](#parity--hamming-code-videos)
+ - [اینٹروپی](#entropy)
+ - [خفیہ نگاری (Cryptography)](#cryptography)
+ - [کمپریشن](#compression)
+ - [کمپیوٹر سیکیورٹی](#computer-security)
+ - [گاربیج کلیکشن](#garbage-collection)
+ - [پیرالل پروگرامنگ](#parallel-programming)
+ - [پیغام رسانی، سیریلائزیشن، اور قطار لگانے کے نظام (Messaging, Serialization, and Queueing Systems)](#messaging-serialization-and-queueing-systems)
+ - [اے سٹار (A*)](#a)
+ - [فاسٹ فوئیر ٹرانسفارم](#fast-fourier-transform)
+ - [بلوم فلٹر](#bloom-filter)
+ - [ہائپر لاگ لاگ](#hyperloglog)
+ - [لوکلٹی سنسٹیو ہیشنگ](#locality-sensitive-hashing)
+ - [وین ایمڈ بوس ٹریز](#van-emde-boas-trees)
+ - [اگیومینٹڈ ڈیٹا سٹرکچر](#augmented-data-structures)
+ - [بیلنسڈ سرچ ٹریز](#balanced-search-trees)
+ - اے وی ایل ٹریز
+ - سپلے ٹریز
+ - رڈ/بلیک ٹریز
+ - ۳-۲ سرچ ٹریز
+ - ۴-۳-۲ سرچ ٹریز(۲-۴ ٹریز)
+ - این-ارے(کے-ارے،ایم-ارے) ٹریز (N-ary (K-ary, M-ary) trees)
+ - بی - ٹریز
+ - [کے-ڈی ٹریز](#k-d-trees)
+ - [سکپ لسٹ](#skip-lists)
+ - [نیٹ ورک فلو](#network-flows)
+ - [منقطع سیٹ اور یونین تلاش کریں](#disjoint-sets--union-find)
+ - [فاسٹ پروسیسنگ کے لیے حساب](#math-for-fast-processing)
+ - [ٹریپ](#treap)
+ - [لینیرپروگرامنگ](#linear-programming-videos)
+ - [جیومیٹری، کنویکس ہل](#geometry-convex-hull-videos)
+ - [مجرد ریاضی](#discrete-math)
+ - [مشین لرننگ](#machine-learning)
+- [کچھ مضامین پر اضافی تفصیل](#additional-detail-on-some-subjects)
+- [ویڈیو سیریز](#video-series)
+- [کمپیوٹر سائنس کورسز](#computer-science-courses)
+- [پیپرز](#papers)
---
From 695928a20ed303fd159955d25a2628c08a2d85c2 Mon Sep 17 00:00:00 2001
From: Abdullah Afzal
Date: Fri, 3 Feb 2023 17:10:51 +0500
Subject: [PATCH 056/173] Correction of Introductory para
conventional and idiomatic correction of the introductory paragraph according to the speaking style of native people.
---
translations/README-ur.md | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 49e9f8c7c7..f3ad066f68 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -1,16 +1,15 @@
-# Coding Interview University
+# کوڈنگ انٹرویو یونیورسٹی
-> سافٹ ویئر انجینئر بننے کے لئے میں نے اصل میں اس کو اسٹڈی لسٹ کے طور پر اسٹڈی ٹاپکس کی فہرست کے طور پر تخلیق کیا ہے,
-> لیکن یہ اس بڑی تعداد میں بڑھ گئی جو آپ آج دیکھ رہے ہیں۔ اس مطالعاتی منصوبے سے گزرنے کے بعد ، [مجھے نوکری مل گئی
-> ایمیزون میں سافٹ ویئر ڈویلپمنٹ انجینئر کی حیثیت سے](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> آپ کو شاید اتنا مطالعہ نہیں کرنا پڑے گا جتنا میں نے کیا تھا۔ بہر حال ، آپ کی ہر چیز کی ضرورت یہاں ہے۔
+>میں نے اصل میں اسے سافٹ ویئر انجینئر بننے کے لیے مطالعے کے عنوانات کی ایک مختصر فہرست کے طور پر بنایا تھا، لیکن یہ اس بڑی فہرست تک پہنچ گئی جو آپ آج دیکھ رہے ہیں۔ اس مطالعاتی منصوبے سے گزرنے کے بعد ، [مجھے ایمیزون میں سافٹ ویئر ڈویلپمنٹ انجینئر کے طور پر ملازمت پر رکھا گیا ہے!](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> آپ کو شاید اتنا مطالعہ نہیں کرنا پڑے گا جتنا میں نے کیا تھا۔ بہرحال، آپ کی ضرورت کی ہر چیز یہاں ہے۔
>
> میں نے کئی مہینوں تک ، دن میں تقریبا 8 سے 12 گھنٹے مطالعہ کیا۔ یہ میری کہانی ہے: [گوگل انٹرویو کے لئے میں نے 8 ماہ تک فل ٹائم کیوں پڑھا](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> یہاں درج آئٹمز کسی بھی سافٹ ویئر کمپنی کے بارے میں تکنیکی انٹرویو کے ل آپ کو اچھی طرح تیار کریں گے ،
-> سمیت: Amazon, Facebook, Google, and Microsoft.
+>*براہ کرم نوٹ کریں:* آپ کو اتنا مطالعہ کرنے کی ضرورت نہیں ہوگی جتنا میں نے کیا تھا۔ میں نے ان چیزوں پر بہت وقت ضائع کیا جن کے بارے میں مجھے جاننے کی ضرورت نہیں تھی۔ ذیل میں اس کے بارے میں مزید معلومات۔ میں آپ کا قیمتی وقت ضائع کیے بغیر وہاں پہنچنے میں آپ کی مدد کروں گا۔
>
-> *آپ کو نیک خواہشات!*
+> یہاں درج عنوانات آپ کو کسی بھی سافٹ ویئر کمپنی بشمول ایمیزون، فیس بک، گوگل، اور مائیکروسافٹ میں تکنیکی انٹرویو کے لیے اچھی طرح تیار کریں گے۔
+>
+> *آپ کے لیے نیک تمنائیں!*
ترجمہ:
From 4c07bdda2c67ce3d7c5f7d55a441810bf4071f2d Mon Sep 17 00:00:00 2001
From: Michael Sambol
Date: Thu, 9 Feb 2023 18:15:32 -0500
Subject: [PATCH 057/173] Add review videos in other languages
---
README.md | 2 +-
translations/README-af.md | 24 +++++++++++++++++++++++-
translations/README-ar.md | 24 +++++++++++++++++++++++-
translations/README-bg.md | 25 +++++++++++++++++++++++--
translations/README-bn.md | 26 +++++++++++++++++++++++---
translations/README-cn.md | 24 +++++++++++++++++++++++-
translations/README-de.md | 24 +++++++++++++++++++++++-
translations/README-el.md | 11 ++++++++++-
translations/README-es.md | 24 +++++++++++++++++++++++-
translations/README-fa.md | 24 +++++++++++++++++++++++-
translations/README-fr.md | 25 +++++++++++++++++++++++--
translations/README-he.md | 24 +++++++++++++++++++++++-
translations/README-hi.md | 27 +++++++++++++++++++++++++--
translations/README-id.md | 24 +++++++++++++++++++++++-
translations/README-it.md | 24 +++++++++++++++++++++++-
translations/README-ja.md | 23 ++++++++++++++++++++++-
translations/README-kh.md | 24 +++++++++++++++++++++++-
translations/README-ko.md | 24 +++++++++++++++++++++++-
translations/README-pl.md | 26 ++++++++++++++++++++++++--
translations/README-ptbr.md | 26 ++++++++++++++++++++++++--
translations/README-ru.md | 24 +++++++++++++++++++++++-
translations/README-th.md | 24 +++++++++++++++++++++++-
translations/README-tr.md | 25 ++++++++++++++++++++++++-
translations/README-tw.md | 24 +++++++++++++++++++++++-
translations/README-uk.md | 24 +++++++++++++++++++++++-
translations/README-ur.md | 24 +++++++++++++++++++++++-
translations/README-uz.md | 24 +++++++++++++++++++++++-
translations/README-vi.md | 24 +++++++++++++++++++++++-
28 files changed, 613 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
index f4d6e930f2..cd965d6377 100644
--- a/README.md
+++ b/README.md
@@ -1204,7 +1204,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-af.md b/translations/README-af.md
index 72633d0b1c..4e2cc3ca4f 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -571,6 +571,7 @@ Maar moet nie vergeet om kode probleme op te los terwyl jy leer nie!
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Well, dis genoeg van daardie.
@@ -616,6 +617,7 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- nie die hele video nie, net gedeeltes oor Node struct en geheue toekening
- [ ] Linked List vs Skikkings:
@@ -647,11 +649,13 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- ### Stapel
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Sal nie implementeer nie. Implementering met skikking is maklik
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implementeer met linked-list, met stert wyser:
- enqueue(waarde) - voeg waarde by posisie by stert
- dequeue() - lewer waarde en verwyder die minste onlangse gevoegde element (voorkant)
@@ -677,6 +681,7 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -700,6 +705,7 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/thrive/articles/Binary%20Search)
- [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (op 'n gesorteerde skikking van heelgetalle)
- binary search met recursion
@@ -751,6 +757,9 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- inorder (DFS: links, self, regs)
- postorder (DFS: links, regs, self)
- preorder (DFS: self, links, regs)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Revisie (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -796,6 +805,7 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- [ ] [MIT: Heaps en Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Lineêr Tyd BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implementeer 'n max-heap:
- [ ] insert
- [ ] sift_up - nodig vir insert
@@ -860,6 +870,14 @@ of jy kan identifiseer wat die runtime kompleksiteit van verskeie algoritmes is.
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implementeer:
- [ ] Mergesort: O(n log n) gemiddelde en slegste gevalle
- [ ] Quicksort O(n log n) gemiddelde geval
@@ -922,6 +940,8 @@ Grafieke kan gebruik word om baie problmeme in rekenaar wetenskap te verteenwoor
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Kursus:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1181,7 +1201,7 @@ Grafieke kan gebruik word om baie problmeme in rekenaar wetenskap te verteenwoor
- [ ] Reeks van 2-3 minute kort onderwerp videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (38 videos):
+- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1672,6 +1692,7 @@ Jy is nooit regtig klaar nie.
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- Prakties:
@@ -1712,6 +1733,7 @@ Jy is nooit regtig klaar nie.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- dek cache-oblivious B-Trees, baie interessante datastrukture
- die eerste 37 minute is baie tegnies en mag geskiep word (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 19afc9fa44..486e796015 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -525,6 +525,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Data Structures
@@ -566,6 +567,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation
- [ ] Linked List vs Arrays:
@@ -597,11 +599,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -626,6 +630,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -648,6 +653,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -699,6 +705,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -744,6 +753,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -808,6 +818,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -871,6 +889,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1257,7 +1277,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1695,6 +1715,7 @@ You're never really done.
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1735,6 +1756,7 @@ You're never really done.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 8be2becbe8..1cc97bc0ab 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -498,6 +498,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Пищови](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Е, това е достатъчно за тази тема.
@@ -544,6 +545,7 @@
- [ ] [Единично свързани списъци (клип)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (клип)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (клип)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [Код в C (клип)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - не цялото видео, само частите за Node structs и алокация на памет
- [ ] Свързани списъци срещу масиви:
- [Core Linked Lists Vs Arrays (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
@@ -575,12 +577,14 @@
- ### Стек
- [ ] [Стекове (клип)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Няма нужда да се имплементира. Имплементацията с масив е тривиална.
- ### Опашка
- [ ] [Опашка (клип)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Имплементирайте със свързан списък с tail pointer:
- enqueue(value) - добавя стойност на опашката
- dequeue() - връща стойността и премахва най-предния елемент на опашката (front)
@@ -608,6 +612,7 @@
- [ ] [PyCon 2017: The Dictionary Even Mightier (клип)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (клип)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(За напреднали) Perfect hashing (клип)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Онлайн курсовe:
@@ -631,6 +636,7 @@
- [ ] [Binary Search (клип)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (клип)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [детайли](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Имплементирайте:
- двоично търсене (на сортиран масив от integers)
- двоично търсене чрез рекурсия
@@ -682,6 +688,9 @@
- inorder (DFS: ляво, self, дясно)
- postorder (DFS: ляво, дясно, self)
- preorder (DFS: self, ляво, дясно)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Дървета за двоично търсене: BSTs
@@ -728,6 +737,7 @@
- [ ] [MIT: Heaps and Heap Sort (клип)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (клип)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Имплементирайте max-heap:
- [ ] insert
- [ ] sift_up - нужно е за insert
@@ -797,6 +807,14 @@
- [ ] [Имплементация (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Имплементация (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Имплементирайте:
- [ ] Mergesort: O(n log n) сложност в средния/ най-лошия случай
@@ -864,6 +882,8 @@
- [ ] [CS 61B 2014: Претеглени графи (клип)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Алчни алгоритми: Минимално обхващащо дърво (клип)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Алгоритъм за граф на Kosaraju за силно свързани компоненти (клип)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Пълен курс в Coursera:
@@ -1134,7 +1154,7 @@
- [ ] Серия от 2-3 минутни кратки клипове по различни теми (23 клипа)
- [Клипове](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (38 клипа):
+- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (40 клипа):
- [Клипове](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Алгоритми I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Алгоритми II](https://www.coursera.org/learn/algorithms-part2)
@@ -1643,7 +1663,7 @@ Mock интервюта:
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/competitive-programming/tutorials/an-introduction-to-binary-search-and-red-black-trees/)
-
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1684,6 +1704,7 @@ Mock интервюта:
- [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) - covers cache-oblivious B-Trees, very interesting data structures - the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-bn.md b/translations/README-bn.md
index ae2ebec122..e4c074d55a 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -648,11 +648,13 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
-###স্ট্যাক
- [স্ট্যাকস (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- ] বাস্তবায়ন করবে না। অ্যারের সাথে প্রয়োগ করা তুচ্ছ।
-###কিউ
- [সারি (ভিডিও)] (https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [বিজ্ঞপ্তি বাফার / ফিফো] (https://en.wikedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- লেজ পয়েন্টার সহ লিঙ্কযুক্ত-তালিকা ব্যবহার করে প্রয়োগ করুন:
-এনকুই (মান)-লেজের স্থানে মান যোগ করে
-ডেকিউ ()-মান ফেরত দেয় এবং সর্বশেষে যুক্ত হওয়া উপাদান (সামনে) সরিয়ে দেয়
@@ -677,6 +679,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [পাইকন ২০১০: দ্য মাইটি ডিকশনারী (ভিডিও)] (https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [(উন্নত) র্যান্ডমাইজেশন: ইউনিভার্সাল এবং পারফেক্ট হ্যাশিং (ভিডিও)] (https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [(উন্নত) পারফেক্ট হ্যাশিং (ভিডিও)] (https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEWKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- অনলাইন কোর্স:
- [কোর হ্যাশ টেবিল (ভিডিও)] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -704,6 +707,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [বাইনারি অনুসন্ধান (ভিডিও)] (https://www.youtube.com/watch?v=D5SrAga1pno)
- [বাইনারি সন্ধান (ভিডিও)] (https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [বিস্তারিত] (https://www.topcoder.com/commune/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- বাস্তবায়ন:
-বাইনারি অনুসন্ধান (পূর্ণসংখ্যার সাজানো অ্যারেতে)
-পুনরাবৃত্তি ব্যবহার করে বাইনারি অনুসন্ধান
@@ -760,7 +764,10 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
-অর্ডার (ডিএফএস: বাম, স্ব, ডান)
-পোস্টর্ডার (ডিএফএস: বাম, ডান, স্ব)
-প্রির্ডার (ডিএফএস: স্ব, বাম, ডান)
-
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+
-###বাইনারি অনুসন্ধান গাছ: বিএসটি
- [বাইনারি অনুসন্ধান বৃক্ষ পর্যালোচনা (ভিডিও)] (https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [সিরিজ (ভিডিও)] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-intr پيداوار-to-binary-search-trees)
@@ -807,6 +814,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [এমআইটি: হিপস এবং হিপ সাজান (ভিডিও)] (https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [সিএস 61 বি লেকচার 24: অগ্রাধিকার ক্যু (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [লিনিয়ার টাইম বিল্ডহীপ (সর্বাধিক হিপ)] (https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- একটি সর্বোচ্চ গাদা প্রয়োগ করুন:
- sertোকান
- সিফ্ট_আপ-.োকানোর জন্য প্রয়োজনীয়
@@ -876,7 +884,15 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [বাস্তবায়ন (সি)] (http://www.cs.yale.edu/homes/aspnes/class/223/exults/randomization/quick.c)
- [বাস্তবায়ন (সি)] (https://github.com/jwasham/pੈਕਟ-c/blob/master/quick_sort/quick_sort.c)
- [বাস্তবায়ন (পাইথন)] (https://github.com/jwasham/pੈਕਟ-python/blob/master/quick_sort/quick_sort.py)
-
+
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- বাস্তবায়ন:
- মার্জোর্ট: ও (এন লগ এন) গড় এবং সবচেয়ে খারাপ অবস্থা case
- কুইকসোর্ট ও (এন লগ এন) গড় কেস
@@ -945,6 +961,8 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [সিএস 61 বি 2014: ওজনযুক্ত গ্রাফ (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [লোভী অ্যালগরিদম: ন্যূনতম বিস্তৃত গাছ (ভিডিও)] (https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [দৃr়ভাবে সংযুক্ত উপাদানগুলি কোসারাজুর অ্যালগোরিদম গ্রাফ আলগোরিদিম (ভিডিও)] (https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
-সম্পূর্ণ কোর্সেরা কোর্স:
- [গ্রাফগুলিতে অ্যালগরিদমগুলি (ভিডিও)] (https://www.coursera.org/learn/algorithms-on-অনুচ্ছেদ / হোম / উপস্ব)
@@ -1368,7 +1386,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- শর্ট সাবজেক্টের ২-৩ মিনিটের সিরিজ (২৩ টি ভিডিও)
-[ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল (18 টি ভিডিও):
+- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (40 টি ভিডিও):
-[ভিডিও] (https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [সেজেজউইক ভিডিও-অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
- [সেজেজিক ভিডিও-দ্বিতীয় অ্যালগোরিদম] (https://www.coursera.org/learn/algorithms-part2)
@@ -1797,6 +1815,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [আদুনি-অ্যালগরিদম-লেকচার 5 (ভিডিও)] (https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [লাল-কালো বৃক্ষ] (https://en.wikedia.org/wiki/Red%E2%80%93 ব্ল্যাক_ট্রি)
- [বাইনারি অনুসন্ধান এবং লাল কালো গাছের পরিচিতি] (https://www.topcoder.com/commune/competitive-pogramming/tutorials/an-intr Produc-to-binary-search-and-red-black-trees /)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- ** ২-৩ টি অনুসন্ধান গাছ **
-প্রস্তুতিতে:
@@ -1837,6 +1856,7 @@ iOS-এ এটির দাম $25 কিন্তু অন্যান্য
- [এমআইটি 85.৮৫১-মেমরি হায়ারার্কি মডেলগুলি (ভিডিও)] (https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
-ক্যাশে-বিস্মৃত বি-গাছগুলি কভার করে, খুব আকর্ষণীয় ডেটা স্ট্রাকচার
-প্রথম 37 মিনিট খুব প্রযুক্তিগত, এড়িয়ে যেতে পারে (বি ব্লকের আকার, ক্যাশে লাইনের আকার)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
-###কেডি গাছ
diff --git a/translations/README-cn.md b/translations/README-cn.md
index f5ab2a5ee2..b504ec7079 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -450,6 +450,7 @@
- [计算性复杂度:第一部](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [计算性复杂度:第二部](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [速查表(Cheat sheet)](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## 数据结构
@@ -491,6 +492,7 @@
- [ ] [单向链表(视频)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B —— 链表(一)(视频)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B —— 链表(二)(视频)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C 代码(视频)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) ── 并非看完整个视频,只需要看关于节点结构和内存分配那一部分即可
- [ ] 链表 vs 数组:
- [基本链表 Vs 数组(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
@@ -519,11 +521,13 @@
- ### 堆栈(Stack)
- [ ] [堆栈(视频)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] 可以不实现,因为使用数组来实现并不重要
- ### 队列(Queue)
- [ ] [队列(视频)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [原型队列/先进先出(FIFO)](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] 使用含有尾部指针的链表来实现:
- enqueue(value) —— 在尾部添加值
- dequeue() —— 删除最早添加的元素并返回其值(首部元素)
@@ -547,6 +551,7 @@
- [ ] [PyCon 2010:The Mighty Dictionary(视频)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(进阶)随机取样(Randomization):全域哈希(Universal Hashing)& 完美哈希(Perfect Hashing)(视频)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(进阶)完美哈希(Perfect hashing)(视频)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] 在线课程:
- [ ] [基本哈希表(视频)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -569,6 +574,7 @@
- [ ] [二分查找(视频)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [二分查找(视频)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [详情](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] 实现:
- 二分查找(在一个已排序好的整型数组中查找)
- 迭代式二分查找
@@ -622,6 +628,9 @@
- 中序遍历(DFS:左、节点本身、右)
- 后序遍历(DFS:左、右、节点本身)
- 先序遍历(DFS:节点本身、左、右)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 二叉查找树(Binary search trees):BSTs
- [ ] [二叉查找树概览(视频)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -669,6 +678,7 @@
- [ ] [MIT:堆与堆排序(视频)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24:优先级队列(视频)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [构建线性时间复杂度的堆(大顶堆)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 实现一个大顶堆:
- [ ] insert
- [ ] sift_up —— 用于插入元素
@@ -724,6 +734,14 @@
- [ ] [实现(C语言)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [实现(Python语言)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] 实现:
- [ ] 归并:平均和最差情况的时间复杂度为 O(n log n)。
- [ ] 快排:平均时间复杂度为 O(n log n)。
@@ -786,6 +804,8 @@
- [ ] [CS 61B 2014: 加权图(视频)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [贪心算法: 最小生成树(视频)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [图的算法之强连通分量 Kosaraju 算法(视频)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- 完整的 Coursera 课程:
- [ ] [图的算法(视频)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1172,7 +1192,7 @@
- [ ] 2-3分钟的简短主题视频系列(23个视频)
- [视频](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (38个视频):
+- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (40个视频):
- [视频](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick 视频 ── 算法I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick 视频 ── 算法II](https://www.coursera.org/learn/algorithms-part2)
@@ -1586,6 +1606,7 @@
- [Aduni —— 算法 —— 课程5(视频)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [黑树(Black Tree)](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [二分查找及红黑树的介绍](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3查找树**
- 实际中:2-3树的元素插入非常快速,但却有着查询慢的代价(因为相比较 AVL 树来说,其高度更高)。
@@ -1617,6 +1638,7 @@
- [MIT 6.851 —— 内存层次模块(Memory Hierarchy Models)(视频)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- 覆盖有高速缓存参数无关型(cache-oblivious)B 树和非常有趣的数据结构
- 头37分钟讲述的很专业,或许可以跳过(B 指块的大小、即缓存行的大小)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D树
- 非常适合在矩形或更高维度的对象中查找点数
diff --git a/translations/README-de.md b/translations/README-de.md
index 9906e28026..ad2a3b4f2f 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -549,6 +549,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Spickzettel](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
@@ -596,6 +597,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- nicht das ganze Video nur die Teile über Knotenstruktur und Speicherverwaltung.
- [ ] Linked Lists vs Arrays:
@@ -627,11 +629,13 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- ### Stack (Stapel)
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Werde ich nicht implementieren. Implementierung mittels Array ist trivial.
- ### Queue (Warteschlangen)
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implementierung mittels verketteten Listen, mit Tail-Pointer:
- enqueue(value) - fügt Wert am Ende ein
- dequeue() - gibt das älteste Element (am Anfang der Liste) zurück und löscht es
@@ -656,6 +660,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Kurse:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -683,6 +688,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [Details](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implementierung:
- Binärsuche (auf einem sortierten Array von Ganzzahlen)
- Binärsuche mittels Rekursion
@@ -739,6 +745,9 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- inorder (DFS: links, selber, rechts)
- postorder (DFS: links, rechts, selber)
- preorder (DFS: selber, links, rechts)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs (Binäre Suchbäume)
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -786,6 +795,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implementierung eines Max-Heap:
- [ ] insert
- [ ] sift_up - gebraucht fürs Einfügen
@@ -856,6 +866,14 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implementierung:
- [ ] Mergesort: O(n log n) Durchschnitt und worst case
- [ ] Quicksort O(n log n) Durchschnitt
@@ -924,6 +942,8 @@ Graphen können genutzt werden, um damit viele verschiedene Probleme in der Info
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Kompletter Coursera Kurs:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1347,7 +1367,7 @@ Graphen können genutzt werden, um damit viele verschiedene Probleme in der Info
- [ ] Reihe mit kurzen 2-3 Minuten Videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (38 videos):
+- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1778,6 +1798,7 @@ Algorithmen Bescheid wisst, sodass ihr eine größere Auswahl an Werkzeugen habt
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 Bäume**
- In der Praxis:
@@ -1818,6 +1839,7 @@ Algorithmen Bescheid wisst, sodass ihr eine größere Auswahl an Werkzeugen habt
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- behandelt cache-oblivious B-Bäume, sehr interessante Datenstrukturen
- die ersten 37 Minuten sind sehr technisch, können übersprungen werden (B ist Blockgröße, Cache Zeilen Länge)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Bäume
diff --git a/translations/README-el.md b/translations/README-el.md
index ce84225c40..a3057e19d4 100644
--- a/translations/README-el.md
+++ b/translations/README-el.md
@@ -456,6 +456,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Εάν μερικές διαλέξεις είναι πολύ μαθηματικές, μπορείς να μεταβείς προς τα κάτω και να παρακολουθήσεις μερικά βίντεο σχετικά με τα διακριτά μαθηματικά για να πάρεις όλες τις γνώσεις που απαιτούνται.
@@ -503,6 +504,7 @@
- [ ] Περιγραφή:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -538,6 +540,7 @@
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [Using Stacks Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Queue
@@ -545,6 +548,7 @@
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [Priority Queues (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -569,6 +573,7 @@
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
@@ -595,6 +600,7 @@
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -648,4 +654,7 @@
worst: O(n)
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- - preorder (DFS: self, left, right)
\ No newline at end of file
+ - preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
diff --git a/translations/README-es.md b/translations/README-es.md
index 4b820b2c77..af5eebb749 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -520,6 +520,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Si algunas de las lecturas son muy matemáticas, puede saltar a la parte inferior y ver las matemáticas discretas para tener el conocimiento base.
@@ -563,6 +564,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [ ] Descripción:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- No todo el video, solo porciones acerca de la estructura de nodos y la asignación de memoria.
- [ ] Listas enlazadas vs Arreglos:
@@ -593,11 +595,13 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- No es necesario.
- ### Pila:
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] No implementaré. Implementando con arreglos es trivial.
- ### Cola o fila
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implementar usando listas enlazadas, con el puntero de la cola:
- enqueue(value) – Añade el valor en la posición de la cola.
- dequeue() – Regresa el valor y elimina el valor más recientemente añadido(frontal)
@@ -621,6 +625,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Cursos en línea:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -642,6 +647,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implementar:
- Búsqueda binaria (en un arreglo ordenado de enteros)
- Búsqueda binaria usando recursión.
@@ -694,6 +700,9 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Árboles de búsqueda binaria: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -741,6 +750,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implementar una cola máxima:
- [ ] insert
- [ ] sift_up – Necesario para el insert.
@@ -786,6 +796,14 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implemente:
- [ ] Mergesort: O(n log n) Promedio y peor caso.
- [ ] Quicksort O(n log n) Caso promedio.
@@ -844,6 +862,8 @@ Los gráficos pueden ser usados para representar muchos problemas en las Ciencia
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Curso Completo de Coursera:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1282,7 +1302,7 @@ Es bueno si quieres repasar frecuentemente.
- [ ] Series de videos cortos sobre temas de 2-3 minutos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (38 videos):
+- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1625,6 +1645,7 @@ Es probable que estos temas no aparezcan en una entrevista, pero los añadí par
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **Árboles de búsqueda 2-3**
- En práctica:
@@ -1658,6 +1679,7 @@ Es probable que estos temas no aparezcan en una entrevista, pero los añadí par
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- Cubre árboles-B de cache inconsistente, estructuras de datos muy interesantes.
- Los primeros 37 minutos son muy técnicos, puede saltarlos (B es tamaño de bloque, tamaño de línea de caché)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### Árboles k-D
- Ideal para encontrar el número de puntos en un rectángulo o un objeto de dimensión superior.
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 383e5e6fcf..3db8fcc272 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -552,6 +552,7 @@ Choose one:
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
بسیارخب، فکر کنم در همین حد کافی باشه.
@@ -597,6 +598,7 @@ Choose one:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation
- [ ] Linked List vs Arrays:
@@ -628,11 +630,13 @@ Choose one:
- ### پشته
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial
- ### صف
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -658,6 +662,7 @@ Choose one:
- [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -680,6 +685,7 @@ Choose one:
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -731,6 +737,9 @@ Choose one:
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### درخت جستجوی دودویی: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -776,6 +785,7 @@ Choose one:
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -840,6 +850,14 @@ Choose one:
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -903,6 +921,8 @@ Choose one:
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1161,7 +1181,7 @@ Choose one:
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1647,6 +1667,7 @@ Mock Interviews:
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1687,6 +1708,7 @@ Mock Interviews:
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 7245cde0ea..8099aa0fdd 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -560,7 +560,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
If some of the lectures are too mathy, you can jump down to the bottom and
watch the discrete mathematics videos to get the background knowledge.
@@ -604,6 +604,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] Description:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -635,11 +636,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -664,6 +667,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -686,6 +690,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -739,6 +744,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -786,6 +794,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -832,6 +841,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -889,6 +906,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1256,7 +1275,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1689,6 +1708,7 @@ You're never really done.
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- In practice:
@@ -1728,6 +1748,7 @@ You're never really done.
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-he.md b/translations/README-he.md
index b6e01cfa30..a2c1fa988b 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -571,6 +571,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
If some of the lectures are too mathy, you can jump down to the bottom and
@@ -614,6 +615,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] Description:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -645,11 +647,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### מחסנית
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### תור
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -674,6 +678,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -696,6 +701,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -749,6 +755,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -796,6 +805,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -842,6 +852,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -899,6 +917,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1266,7 +1286,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [סרטונים](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [סרטונים](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1700,6 +1720,7 @@ You're never really done.
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- In practice:
@@ -1739,6 +1760,7 @@ You're never really done.
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 889d2a7a9b..40882cc744 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -579,6 +579,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [कम्प्यूटेशनल जटिलता: सेक्शन 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [कम्प्यूटेशनल जटिलता: धारा 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [चीट शीट] (http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
खैर, बस इतना ही काफी है।
@@ -623,6 +624,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [सिंगली लिंक्ड लिस्ट (वीडियो)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [सीएस 61बी - लिंक्ड सूचियां 1 (वीडियो)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [सीएस 61बी - लिंक्ड सूचियां 2 (वीडियो)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [सी कोड (वीडियो)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- संपूर्ण वीडियो नहीं, केवल नोड संरचना और स्मृति आवंटन के बारे में अंश
- [] लिंक्ड लिस्ट बनाम एरेज़:
@@ -653,11 +655,13 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- No need to implement
- ### ढेर
- [ ] [स्टैक (वीडियो)](https://www.coursera.org/lecture/data-structs/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] लागू नहीं होगा। सरणी के साथ कार्यान्वित करना तुच्छ है
- ### कतार
- [ ] [कतार (वीडियो)](https://www.coursera.org/lecture/data-structs/queues-EShpq)
- [ ] [सर्कुलर बफर/फीफो](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [] टेल पॉइंटर के साथ लिंक्ड-लिस्ट का उपयोग करके लागू करें:
- एनक्यू (मान) - पूंछ पर स्थिति पर मूल्य जोड़ता है
- dequeue () - मान लौटाता है और कम से कम हाल ही में जोड़े गए तत्व (सामने) को हटाता है
@@ -683,6 +687,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [पायकॉन 2017: द डिक्शनरी इवन माइटियर (वीडियो)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(उन्नत) रैंडमाइजेशन: यूनिवर्सल एंड परफेक्ट हैशिंग (वीडियो)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(उन्नत) परफेक्ट हैशिंग (वीडियो)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] ऑनलाइन पाठ्यक्रम:
@@ -707,6 +712,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [बाइनरी सर्च (वीडियो)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [विस्तार] (https://www.topcoder.com/thrive/articles/Binary%20Search)
- [ ] [खाका](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] अमल में लाना:
- द्विआधारी खोज (पूर्णांक के क्रमबद्ध सरणी पर)
- पुनरावर्तन का उपयोग कर द्विआधारी खोज
@@ -756,6 +762,9 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- क्रम में (डीएफएस: बाएं, स्वयं, दाएं)
- पोस्टऑर्डर (डीएफएस: बाएं, दाएं, स्वयं)
- प्रीऑर्डर (डीएफएस: स्वयं, बाएं, दाएं)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### बाइनरी सर्च ट्री: बीएसटी
- [ ] [बाइनरी सर्च ट्री रिव्यू (वीडियो)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -801,6 +810,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [एमआईटी: हीप्स एंड हीप सॉर्ट (वीडियो)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [सीएस 61बी व्याख्यान 24: प्राथमिकता कतारें (वीडियो)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [रैखिक समय BuildHeap (अधिकतम-ढेर)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [] अधिकतम ढेर लागू करें:
- [ ] डालना
- [] sift_up - डालने के लिए आवश्यक
@@ -863,11 +873,20 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [कार्यान्वयन (सी)] (https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [कार्यान्वयन (पायथन)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] अमल में लाना:
- [] मर्जसॉर्ट: ओ (एन लॉग एन) औसत और सबसे खराब स्थिति
- [] क्विकसॉर्ट ओ (एन लॉग एन) औसत मामला
- चयन प्रकार और सम्मिलन प्रकार दोनों ओ (एन ^ 2) औसत और सबसे खराब स्थिति हैं
- हीपसॉर्ट के लिए, ऊपर हीप डेटा संरचना देखें
+
- [] आवश्यक नहीं है, लेकिन मैंने उनकी सिफारिश की:
- [ ] [सेजविक - रेडिक्स सॉर्ट्स (6 वीडियो)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
- [ ] [1. जावा में स्ट्रिंग्स](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
@@ -924,6 +943,8 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] [सीएस 61बी 2014: भारित ग्राफ (वीडियो)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [लालची एल्गोरिदम: न्यूनतम फैले हुए पेड़ (वीडियो)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [मजबूत रूप से जुड़े घटक कोसाराजू का एल्गोरिथम ग्राफ़ एल्गोरिथम (वीडियो)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- पूर्ण कौरसेरा कोर्स:
- [ ] [ग्राफ़ पर एल्गोरिदम (वीडियो)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1179,9 +1200,9 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
इस अनुभाग में छोटे वीडियो होंगे जिन्हें आप अधिकांश महत्वपूर्ण अवधारणाओं की समीक्षा करने के लिए बहुत तेज़ी से देख सकते हैं।
यदि आप अक्सर एक पुनश्चर्या चाहते हैं तो यह अच्छा है।
-- [] 2-3 मिनट के लघु विषय वीडियो की श्रृंखला (23 वीडियो)
+- [ ] 2-3 मिनट के लघु विषय वीडियो की श्रृंखला (23 वीडियो)
- [वीडियो](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - माइकल साम्बोल (18 वीडियो):
+- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (40 वीडियो):
- [वीडियो](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [सेजविक वीडियो - एल्गोरिदम I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [सेजविक वीडियो - एल्गोरिदम II](https://www.coursera.org/learn/algorithms-part2)
@@ -1670,6 +1691,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [अदुनी - एल्गोरिदम - व्याख्यान 5 (वीडियो)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [रेड-ब्लैक ट्री](https://en.wikipedia.org/wiki/Red%E2%80%93ब्लैक_ट्री)
- [एन इंट्रोडक्शन टू बाइनरी सर्च एंड रेड ब्लैक ट्री](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 पेड़ खोजें**
- प्रयोग में:
@@ -1710,6 +1732,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [MIT 6.851 - मेमोरी पदानुक्रम मॉडल (वीडियो)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- कैशे-अनभिज्ञ बी-पेड़ों को शामिल करता है, बहुत ही रोचक डेटा संरचनाएं
- पहले 37 मिनट बहुत तकनीकी हैं, छोड़े जा सकते हैं (बी ब्लॉक आकार, कैश लाइन आकार है)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### के-डी पेड़
diff --git a/translations/README-id.md b/translations/README-id.md
index 2c40f4e795..47a7a2bbb4 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -442,6 +442,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Struktur Data
@@ -483,6 +484,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [Kode C (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- bukan keseluruhan video, hanya bagian tentang struct Node dan alokasi memori
- [ ] Linked List vs Array:
@@ -514,12 +516,14 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- ### Stack
- [ ] [Stack (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Tidak akan diterapkan. Implementasi dengan array itu sepele
- ### Queue
- Queue (Antrean)
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implementasikan menggunakan linked-list, dengan tail pointer:
- enqueue(value) - menambah nilai pada posisi di ekor
- dequeue() - mengembalikan nilai dan menghapus elemen yang paling baru ditambahkan (depan)
@@ -545,6 +549,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Lanjutan) Pengacakan: Universal & Hashing Sempurna (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Lanjutan) Hash sempurna (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Kursus Online:
- [ ] [Tabel Hash Inti (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -567,6 +572,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [ ] [Pencarian Biner (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Pencarian Biner (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implementkan:
- pencarian biner (pada susunan bilangan bulat yang diurutkan)
- pencarian biner menggunakan rekursi
@@ -620,6 +626,9 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- dalam urutan (DFS: kiri, sendiri/self, kanan)
- pasca urutan (DFS: kiri, kanan, sendiri/self)
- pra urutan (DFS: sendiri/self, kiri, kanan)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Ulasan Binary Search Tree (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -670,6 +679,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [ ] [MIT: Heaps dan Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Kuliah 24: Antrian Prioritas (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Menerapkan sebuah max-heap:
- [ ] insert
- [ ] sift_up - digunakan untuk memasukkan
@@ -734,6 +744,14 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [ ] [Implementasi (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementasi (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implementasi:
- [ ] Mergesort: O(n log n) rata-rata dan kasus terburuk
- [ ] Quicksort: O(n log n) kasus rata-rata
@@ -797,6 +815,8 @@ Graf (Graphs) dapat digunakan untuk merepresentasikan banyak masalah dalam ilmu
- [ ] [CS 61B 2014: Graphs berbobot (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Algoritma Serakah: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Komponen yang Sangat Terhubung Algoritma Graphs Algoritma Kosaraju (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Kursus Coursera Penuh:
- [ ] [Algoritma pada Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1180,7 +1200,7 @@ Graf (Graphs) dapat digunakan untuk merepresentasikan banyak masalah dalam ilmu
- [ ] Seri video subjek pendek berdurasi 2-3 menit (23 video)
- [Video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (38 video):
+- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (40 video):
- [Video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Video Sedgewick - Algoritma I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Video Sedgewick - Algoritma II](https://www.coursera.org/learn/algorithms-part2)
@@ -1605,6 +1625,7 @@ Anda tidak pernah benar-benar selesai.
- [Aduni - Algoritma - Kuliah 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [Pengantar Pencarian Biner Dan Red-Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- Dalam praktek:
@@ -1644,6 +1665,7 @@ Anda tidak pernah benar-benar selesai.
- [MIT 6.851 - Model Hirarki Memori (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-it.md b/translations/README-it.md
index 8128bace10..0cc41c8f59 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -575,6 +575,7 @@ Ma non dimenticare di esercitarti con i problemi, anche durante lo studio!
- [Complessità Computazionale: Sezione 1 (Articolo in Inglese)](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Complessità Computazionale: Sezione 2 (Articolo in Inglese)](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat-Sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Bene, direi che può bastare.
@@ -620,6 +621,7 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- [ ] [Liste Linkate Singolarmente (Video in Inglese)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (Video in Inglese)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- non il video intero, ma solo nozioni sulla struttura del nodo e l'allocazione della memoria
- [ ] Linked List vs Arrays:
@@ -652,11 +654,13 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- ### Stack
- [ ] [Stacks (Video in Inglese)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Non saranno implementati. Esercitarsi con l'array è quasi banale.
- ### Queue
- [ ] [Queue (Video in Inglese)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Buffer Circolare/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implementazione usando le linked list, con puntatore alla coda:
- enqueue(value) - aggiunge un valore alla posizione della coda
- dequeue() - returna il valore aggiunto per ultimo e lo rimuove
@@ -682,6 +686,7 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- [ ] [PyCon 2017: Dizionario, ma ancora Più Potente (Video in Inglese)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Avanzato) Randomizzazione: Universale & Hashing Perfetto (Video in Inglese)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Avanzato) L'hashing perfetto (Video in Inglese)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Corsi Online:
- [ ] [Core Hash Tables (Video in Inglese)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -705,6 +710,7 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- [ ] [Ricerca Binaria (Video in Inglese)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [dettagli](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
- [ ] [progetto](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implementazione:
- ricerca binaria (su array ordinati di interi)
- ricerca binaria usando la ricorsione
@@ -758,6 +764,9 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- inorder (DFS: sinistra, se stesso, destra)
- postorder (DFS: sinistra, destra, se stesso)
- preorder (DFS: se stesso, sinistra, destra)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Alberi Binari di Ricerca: BSTs
- [ ] [Review Alberi Binari di Ricerca (Video in Inglese)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -803,6 +812,7 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- [ ] [MIT: Heaps e Ordinamento Heap (Video in Inglese)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lezione 24: Code di Priorità (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Costruire un Heap (max-heap) (Video in Inglese)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implementa un max-heap:
- [ ] insert - inserisci un valore
- [ ] sift_up - neccessario per l'inserimento
@@ -867,6 +877,14 @@ per testare la tua capacità nell'identificare la complessità del runtime di di
- [ ] [Implementazione (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementazione (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implementazione:
- [ ] Mergesort: O(n log n) caso medio e peggiore
- [ ] Quicksort O(n log n) caso medio
@@ -929,6 +947,8 @@ I grafi possono essere usati per rappresentare molti problemi in informatica, pe
- [ ] [CS 61B 2014: Grafi Pesati (Video in Inglese)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Algoritmi Greedy: Alberi Ricoprenti Minimi (Video in Inglese)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Componenti Legati Strettamente, Algoritmo di Kosaraju e Algoritmi per Grafi (Video in Inglese)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Corsi di Coursera Completi:
- [ ] [Algorithms on Graphs (Video in Inglese)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1188,7 +1208,7 @@ I grafi possono essere usati per rappresentare molti problemi in informatica, pe
- [ ] Series of 2-3 minutes short subject video (23 video)
- [video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject video - Michael Sambol (38 video):
+- [ ] Series of 2-5 minutes short subject video - Michael Sambol (40 video):
- [video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick video - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick video - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1679,6 +1699,7 @@ You're never really done.
- [Aduni - Algorithms - Lezione 5 (Video in Inglese)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1719,6 +1740,7 @@ You're never really done.
- [MIT 6.851 - Memory Hierarchy Models (Video in Inglese)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-ja.md b/translations/README-ja.md
index e30028525e..888e118471 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -428,6 +428,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [計算の複雑さ:セクション1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [計算の複雑さ:セクション2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [チートシート](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
講義の中には数学的にも余裕がある場合は、下にジャンプして
@@ -477,6 +478,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [単独連結されたリスト(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - 連結リスト1(動画)](https://www.youtube.com/watch?v=htzJdKoEmO0&list=PL4BBB74C7D2A1049C&index=7)
- [ ] [CS 61B - 連結リスト2(動画)](https://www.youtube.com/watch?v=-c4I3gFYe3w&index=8&list=PL4BBB74C7D2A1049C)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [Cコード(動画)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
ビデオ全体ではなく、ノード構造体とメモリ割り当てに関する部分だけです。
- [ ] 連結リスト Vs 配列:
@@ -509,6 +511,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- ### スタック
- [ ] [Stacks(video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [スタックの使用 Last-In First-Out(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] 実装されません。配列で実装するのは簡単です。
- ### キュー
@@ -516,6 +519,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [キュー(video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [環状バッファ/ FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [優先度つきキュー(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] テールポインタ付き連結リストを使って実装する:
- enqueue(value) - テールの位置に値を追加する
- dequeue() - 値を返し、少なくとも最近追加された要素を削除する(前面)
@@ -567,6 +571,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [二分探索(動画)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [二分探索(ビデオ)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [詳細](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] 実装:
- 二分探索(ソートされた整数の配列)
- 再帰を利用した二分探索
@@ -619,6 +624,9 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- inorder(DFS:left、self、right)
- postorder(DFS:left、right、self)
- preorder(DFS:自己、左、右)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 二分探索木:BST
- [ ] [二分探索木レビュー(動画)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -666,6 +674,7 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [MIT:ヒープとヒープソート(ビデオ)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B講義24:優先度つきキュー(ビデオ)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [線形時間BuildHeap(max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 最大ヒープを実装する:
- [ ] insert
- [ ] sift_up - 挿入に必要
@@ -712,6 +721,14 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [実装(C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [実装(Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] 実装:
- [ ] Mergesort:O(n log n)平均と最悪の場合
- [ ] Quicksort O(n log n)平均の場合
@@ -771,6 +788,8 @@ Anki形式の私のフラッシュカードデータベース:https://ankiweb.
- [ ] [CS 61B 2014:加重グラフ(ビデオ)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [欲張りアルゴリズム:最小スパニング木(ビデオ)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [強固に接続されたコサラジュのアルゴリズムグラフアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- フルcourseraコース:
- [ ] [グラフのアルゴリズム(ビデオ)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1225,7 +1244,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] 2〜3分短編ビデオシリーズ(23ビデオ)
- [動画](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(38ビデオ)
+- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(40ビデオ)
- [動画](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1641,6 +1660,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [Aduni - アルゴリズム - 講義5(ビデオ)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [黒い木](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [バイナリサーチとレッドブラック木の紹介](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3の検索木**
- 実際には:
@@ -1680,6 +1700,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [MIT 6.851 - メモリ階層モデル(ビデオ)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- キャッシュに気付かないB木、非常に興味深いデータ構造
- 最初の37分は非常に技術的であり、スキップすることができます(Bはブロックサイズ、キャッシュラインサイズです)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D木
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 7e5b187949..0f35007f96 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -496,6 +496,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ភាពស្មុគស្មាញនៃការគណនា៖ ផ្នែកទី ១](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [ភាពស្មុគស្មាញនៃការគណនា៖ ផ្នែកទី ២](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [សន្លឹកជំនួយ](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
---
@@ -542,6 +543,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [Singly Linked Lists (វីដេអូ)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists ១ (វីដេអូ)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists ២ (វីដេអូ)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [កូដ C (វីដេអូ)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- មិនមែនវីដេអូទាំងមូលទេគឺគ្រាន់តែជាផ្នែកអំពីរចនាសម្ព័ន្ធ (Data Structure) និងការបែងចែក Memory ។
- [ ] Linked List vs Arrays:
@@ -575,11 +577,13 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- ### Stack
- [ ] [Stack (វីដេអូ)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] នឹងមិនអនុវត្តទេ។ ការអនុវត្តជាមួយ Array គឺមិនសំខាន់។
- ### Queue
- [ ] [Queue (វីដេអូ)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] ប្រើ linked-list ដែលមានភ្ជាប់ជាមួយទ្រនិចនៅកន្ទុយ៖
- enqueue(តម្លៃ) - បន្ថែមតម្លៃនៅទីតាំងនៅកន្ទុយ
- dequeue() - ត្រឡប់តម្លៃនិងយកធាតុដែលបានបន្ថែមថ្មីៗចេញ (ផ្នែកខាងមុខ)
@@ -604,6 +608,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [PyCon 2010: វចនានុក្រមដ៏អស្ចារ្យ (វីដេអូ)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(កម្រិតខ្ពស់) Randomization: Universal & Perfect Hashing (វីដេអូ)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(ជឿនលឿន) Perfect hashing (វីដេអូ)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] វគ្គសិក្សាអនឡាញ៖
- [ ] [Core Hash Tables (វីដេអូ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -629,6 +634,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [Binary search (វីដេអូ)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary search (វីដេអូ)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [លម្អិត](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] អនុវត្ត៖
- Binary search (នៅលើជួរអារេនៃចំនួនគត់)
- Binary search ដោយប្រើការហៅខ្លួនឯង
@@ -683,6 +689,9 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- inorder (DFS: ឆ្វេង, ខ្លួនឯង, ស្តាំ)
- postorder (DFS: ឆ្វេង, ស្តាំ, ខ្លួនឯង)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [ការពិនិត្យឡើងវិញ Binary Search Tree (វីដេអូ)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -730,6 +739,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [MIT: Heaps និង Heap Sort (វីដេអូ)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B មេរៀន 24: Priority Queues (វីដេអូ)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] ការអនុវត្ត max-heap:
- [ ] insert
- [ ] sift_up - ត្រូវការសំរាប់បញ្ចូល
@@ -797,6 +807,14 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] អនុវត្ត:
- [ ] Mergesort: O(n log n) ករណីមធ្យម និង អាក្រក់បំផុត
- [ ] Quicksort O(n log n) ករណីមធ្យម
@@ -862,6 +880,8 @@ Graphs អាចត្រូវបានប្រើដើម្បីបង្
- [ ] [CS 61B 2014: Weighted graphs (វីដេអូ)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (វីដេអូ)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (វីដេអូ)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- វគ្គសិក្សា Coursera:
- [ ] [Algorithms on Graphs (វីដេអូ)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1246,7 +1266,7 @@ Graphs អាចត្រូវបានប្រើដើម្បីបង្
- [ ] Series of 2-3 minutes short subject videos (23 វីដេអូ)
- [វីដេអូ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 វីដេអូ):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 វីដេអូ):
- [វីដេអូ](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [វីដេអូ Sedgewick - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [វីដេអូ Sedgewick - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1676,6 +1696,7 @@ Mock Interviews:
- [Aduni - Algorithms - Lecture 5 (វីដេអូ)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- ក្នុងការអនុវត្ត ៖
@@ -1715,6 +1736,7 @@ Mock Interviews:
- [MIT 6.851 - Memory Hierarchy Models (វីដេអូ)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- រៀនពី cache-oblivious B-Trees, data structures
- ៣៧ នាទីដំបូងគឺបច្ចេកទេសហើយប្រហែលជាអាចរំលងចោល (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 30f64f03ae..0ed388856d 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -531,6 +531,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## 자료구조
@@ -572,6 +573,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [단일 연결 리스트 (영상)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - 연결 리스트 1 (영상)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - 연결 리스트 2 (영상)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- 전체 영상은 아니고, 노드 구조와 메모리 할당에 대한 부분입니다.
- [ ] 연결 리스트 vs 배열:
@@ -603,11 +605,13 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- ### 스택
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### 큐
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)05_04-priorityQueuesAndDeques.mp4)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] tail 포인터가 있는 연결 리스트를 사용하여 구현하기:
- enqueue(value) - tail이 가리키는 곳에 value를 추가한다
- dequeue() - value를 반환하고 가장 최근에 추가된 원소(front)를 제거한다.
@@ -632,6 +636,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] 온라인 강의들:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -654,6 +659,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [자세한 내용](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] 구현:
- (정수가 정렬된 배열에서) 이진 탐색
- 재귀를 사용한 이진 탐색
@@ -706,6 +712,9 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- 중위(inorder) (DFS: 왼쪽, 자신, 오른쪽)
- 후위(postorder) (DFS: 왼쪽, 오른쪽, 자신)
- 전위(preorder) (DFS: 자신, 왼쪽, 오른쪽)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 이진 탐색 트리 (BST)
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -751,6 +760,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [MIT: 힙과 힙 정렬 (영상)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: 우선순위 큐 (영상)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [선형 시간에 힙 만들기 (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] max-heap 구현하기:
- [ ] insert
- [ ] sift_up - `insert` 하려면 필요
@@ -816,6 +826,14 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [구현 (C언어)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [구현 (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] 구현:
- [ ] 병합 정렬: 평균과 최악의 경우 O(n log n)
- [ ] 퀵 정렬: 평균적인 경우 O(n log n)
@@ -879,6 +897,8 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1265,7 +1285,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
- [ ] 2-3분 분량의 주제별 짧은 영상 시리즈 (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (38 videos):
+- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1699,6 +1719,7 @@ Challenge repos:
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1737,6 +1758,7 @@ Challenge repos:
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
- great for finding number of points in a rectangle or higher dimension object
diff --git a/translations/README-pl.md b/translations/README-pl.md
index b65e832354..080e890e5c 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -483,6 +483,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Ściągawka](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Struktury danych
@@ -524,6 +525,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [ ] [Singly Linked Lists (wideo)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists 1 (wideo)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (wideo)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (wideo)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -555,11 +557,13 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- ### Stos
- [ ] [Stacks (wideo)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Kolejka
- [ ] [Queue (wideo)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -584,6 +588,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [ ] [PyCon 2010: The Mighty Dictionary (wideo)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Zaawansowane) Randomization: Universal & Perfect Hashing (wideo)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Zaawansowane) Perfect hashing (wideo)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Kursy online:
- [ ] [Core Hash Tables (wideo)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -606,6 +611,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [ ] [Binary Search (wideo)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (wideo)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -655,6 +661,9 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs - drzewa binarne
- [ ] [Binary Search Tree Review (wideo)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -702,6 +711,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [ ] [MIT: Heaps and Heap Sort (wideo)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (wideo)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -767,6 +777,14 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -830,7 +848,9 @@ Grafy mogą być wykorzystane do przedstawienia wielu problemów w informatyce,
- [ ] [CS 61B 2014: Weighted graphs (wideo)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (wideo)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (wideo)](https://www.youtube.com/watch?v=RpgcYiky7uw)
-
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
+
- Pełny kurs Coursera:
- [ ] [Algorithms on Graphs (wideo)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1219,7 +1239,7 @@ Trie to drzewo węzłów, które obsługuje operacje Znajdź i Wstaw [etc (...)]
- [ ] Seria 2-3 minutowych, krótkich filmów tematycznych (23 wideo)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (38 wideo):
+- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (40 wideo):
- [Wideo](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorytmy I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorytmy II](https://www.coursera.org/learn/algorithms-part2)
@@ -1652,6 +1672,7 @@ Tak na prawdę nigdy nie skończyłeś.
- [Aduni - Algorithms - Lecture 5 (wideo)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1692,6 +1713,7 @@ Tak na prawdę nigdy nie skończyłeś.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 75ca63bd2b..d52f3530e5 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -512,6 +512,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/) (Complexidade Computacional: Seção 1)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/) (Complexidade Computacional: Seção 2)
- [ ] [Cheat sheet](http://bigocheatsheet.com/) (Folha de Consultas)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Se alguma das aulas forem muito "matemáticas", você pode pular para o final e
@@ -557,6 +558,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists) (listas ligadas individualmente - vídeo)
- [ ] [CS 61B - Linked Lists 1 (video)](https://www.youtube.com/watch?v=htzJdKoEmO0&list=PL4BBB74C7D2A1049C&index=7) (CS 61B - Listas Ligadas 1 - vídeo)
- [ ] [CS 61B - Linked Lists 2 (video)](https://www.youtube.com/watch?v=-c4I3gFYe3w&index=8&list=PL4BBB74C7D2A1049C) (CS 61B - Listas Ligadas 2 - vídeo)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) (Código em C - vídeo)
- não o vídeo inteiro, apenas as partes sobre estrutura de nodes (nós) e alocação de memória.
- [ ] Listas Ligadas vs Arrays:
@@ -588,11 +590,13 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Não implementarei. Implementar com array é trivial.
- ### Queue (Fila)
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer) (Buffer circular/Primeiro a entrar, último a sair)
+ - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)(Buffer circular/Primeiro a entrar, último a sair)
- [ ] Implementar usando lista ligada, com ponteiro de cauda (aponta para o último elemento de uma lista):
- enqueue(valor) - adiciona "valor" na posição na cauda (final da lista)
- dequeue() - retorna um valor e remove o elemento menos recentemente adicionado (início da lista))
@@ -617,6 +621,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68) (PyCon 2010: O Poderoso Dicionário (vídeo)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11) ((Avançado) Randomização: Hashing Perfeito & Universal - vídeo)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4) ((Avançado) Hashing perfeito - vídeo)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Cursos Online:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables) (Fundamentos de Tabelas Hash - vídeo)
@@ -639,6 +644,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno) (Busca Binária - vídeo)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search) (Busca Binária - vídeo)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/) (detalhes)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implementar:
- busca binária (em um array ordenado de números inteiros)
- busca binária usando recursividade
@@ -692,6 +698,9 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- em-ordem ou ordem simétrica(na busca em profundidade (ou DFS): percorre subárvore esquerda em ordem simétrica (em-ordem), visita a raiz, percorre subárvore direita em ordem simétrica)
- pós-ordem (na busca em profundidade (ou DFS): percorre subárvore esquerda em pós-ordem, percorre subárvore direita em pós-ordem, visita a raiz)
- pré-ordem (na busca em profundidade (ou DFS): visita a raiz, percorre subárvore esquerda em pré-ordem, percorre subárvore direita em pré-ordem)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Árvores binárias de busca: ABB
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) (Revisão de Árvores Binárias de Busca - vídeo)
@@ -739,6 +748,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) (MIT: Memórias Dinâmias e heapsort - vídeo)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C) (CS (Ciência da Computação) 61B Aula 24: Filas Prioritárias - vídeo)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw) (BuildHeap em Tempo Linear (heap máxima))
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implementar uma heap máxima (max-heap):
- [ ] insert
- [ ] sift_up - necessário insert
@@ -785,6 +795,14 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c) (Implementação em C)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py) (Implementação em Python)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implementar:
- [ ] Mergesort: O(n log n) caso comum e pior caso
- [ ] Quicksort O(n log n) caso comum
@@ -844,6 +862,8 @@ Grafos podem ser usados para representar muitos problemas na Ciência da Computa
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19) (CS 61B 2014: Grafos Ponderados - vídeo)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) (Algoritmos Gulosos: Árvore de Extensão Mínima - vídeo)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw) (Componentes Fortemente Conectados, Algoritmo de Kosaraju, Algoritmo de Grafo - vídeo)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Curso Completo do Coursera:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome) (Algoritmos em Grafos - vídeo)
@@ -1288,7 +1308,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] Séries de vídeos curtos (2 - 3 minutos) sobre o assunto (23 vídeos)
- [Vídeos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (38 vídeos):
+- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (40 vídeos):
- [Vídeos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1659,6 +1679,7 @@ Esses tópicos provavelmente não aparecerão em uma entrevista, mas eu adicione
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) (Aduni - Algoritmos - Aula 5 - vídeo)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) (Árvore Rubro-Negra)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/) (Uma Introdução a Busca Binária E Árvore Rubro-Negra)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **Árvores de busca 2-3**
- Ná prática:
@@ -1698,6 +1719,7 @@ Esses tópicos provavelmente não aparecerão em uma entrevista, mas eu adicione
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) (MIT 6.851 - Modelos de Hierarquia de Memória - vídeo)
- cobre Árvores B de cache-alheio (do Inglês, cache-oblivious), estruturas de dados muito interessantes
- os primeiros 37 minutos são bem técnicos, pode ser pulado (B é tamanho de bloco, tamanho de linha de cache)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### Árvores k-D
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 0030bbce49..cb45ba8596 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -565,6 +565,7 @@ Google не возьмёт тебя на работу.
- [Вычислительная сложность: Часть 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Вычислительная сложность: Часть 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Шпаргалка](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Если в некоторых лекциях слишком много математики, вы можете ниже найти и посмотреть
лекции по дискретной математике для получения базовых знаний.
@@ -612,6 +613,7 @@ Google не возьмёт тебя на работу.
- [ ] Описание:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- не все видео целиком, только кусочки об узлах и распределении памяти.
- [ ] Связные списки vs Массивы:
@@ -646,6 +648,7 @@ Google не возьмёт тебя на работу.
- ### Стек
- [ ] [Стек (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [Использование стека Last-In First-Out (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Не будет реализован. Реализация с помощью массива очевидна.
- ### Очередь
@@ -653,6 +656,7 @@ Google не возьмёт тебя на работу.
- [ ] [Очередь (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [Очередь с приоритетом (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Реализация с использованием связанного списка и указателя на последний элемент(tail):
- enqueue(value) - добавляет элемент в конец очереди
- dequeue() - возвращает значение и удаляет из очереди последний добавленный элемент(front)
@@ -677,6 +681,7 @@ Google не возьмёт тебя на работу.
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Онлайн курсы:
- [ ] [Understanding Hash Functions (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
@@ -703,6 +708,7 @@ Google не возьмёт тебя на работу.
- [ ] [Бинарный поиск (видео на ютубе)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Бинарный поиск (видео на khanacademy)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [Длинная статья с деталями](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Реализация:
- бинарный поиск (на отсортированном числовом массиве)
- бинарный поиск с использованием рекурсии
@@ -757,6 +763,9 @@ Google не возьмёт тебя на работу.
- in-order (DFS: левый, вершина, правый)
- post-order (DFS: левый, правый, вершина)
- pre-order (DFS: вершина, левый, правый)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Бинарное дерево поиска (BST: Binary search trees)
- [ ] [Обзор бинарного дерева поиска (видео)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -804,6 +813,7 @@ Google не возьмёт тебя на работу.
- [ ] [MIT: Кучи и пирамидальная сортировка (видео)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Лекция 24: Приоритетные очереди (видео)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Построение кучи за линейное время (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Реализация max-heap:
- [ ] insert
- [ ] sift_up - необходима для вставки
@@ -850,6 +860,14 @@ Google не возьмёт тебя на работу.
- [ ] [Реализация (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Реализация (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Реализация:
- [ ] Сортировка слиянием: O(n log n) средний и худший случаи
- [ ] Быстрая сортировка O(n log n) средний случай
@@ -906,6 +924,8 @@ Google не возьмёт тебя на работу.
- [ ] [CS 61B 2014: Взвешенные графы (видео)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Жадные алгоритмы: Минимальное остовное дерево (видео)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Сильно связные компоненты, Алгоритм Косарайю, Алгоритмы на графах (видео)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Полный курс на Coursera:
- [ ] [Алгоритмы на графах (видео)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1268,7 +1288,7 @@ Google не возьмёт тебя на работу.
- [ ] Серия 2-3 минутных короткие видео по темам (23 видео)
- [Видео](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (38 видео):
+- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (40 видео):
- [Видео](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1692,6 +1712,7 @@ Google не возьмёт тебя на работу.
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- In practice:
@@ -1727,6 +1748,7 @@ Google не возьмёт тебя на работу.
- [ ] [MIT 6.851 - Модели Иерархии Памяти (видео)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- включает кэш-агностические B-Деревья, крайне интересные структуры данных
- первые 37 минут очень технические, можно пропустить (B это размер блока, размер кэша)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Деревья
- прекрасны для нахождения всех точек в прямоугольнике или более многомерном объекте
diff --git a/translations/README-th.md b/translations/README-th.md
index 84477cf05b..32263f08c8 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -492,6 +492,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
If some of the lectures are too mathy, you can jump down to the bottom and
@@ -536,6 +537,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [ ] Description:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -567,11 +569,13 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -596,6 +600,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -618,6 +623,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -671,6 +677,9 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -718,6 +727,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -764,6 +774,14 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -822,6 +840,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1262,7 +1282,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1630,6 +1650,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- In practice:
@@ -1669,6 +1690,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 0cf2664609..073c8ffdca 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -510,6 +510,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Veri Yapıları
@@ -551,6 +552,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- tüm video değil, Node yapısı ve bellek ayırma için olan bölümler.
- [ ] Bağlı Listeler vs Diziler:
@@ -582,11 +584,13 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- ### Yığın
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Uygulamayın. Diziyle gerçekleştirmek önemsiz.
- ### Kuyruk
- [ ] [Kuyruk (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Bağlı listeyle birlikte kuyruk işaretçisi kullanarak uygulayın:
- enqueue(value) - kuyruktaki pozisyona değer ekler
- dequeue() - değeri döndürür ve en son eklenen elemanı kaldırır (ön)
@@ -612,6 +616,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(İleri Seviye) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(İleri Seviye) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Kurslar:
- [ ] [Hash Fonksiyonlarını Anlama (video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
@@ -638,6 +643,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Uygulama:
- binary search (sıralanmış tam sayı dizisine)
- binary search (rekürsif kullanarak)
@@ -689,6 +695,10 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- inorder (DFS: sol, kendisi, sağ)
- postorder (DFS: sol, sağ, kendisi)
- preorder (DFS: kendisi, sol, sağ)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+
- ### İkili arama ağaçları: BSTs
- [ ] [İkili Arama Ağacı İncelemesi (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -734,6 +744,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Max-heap uygulaması:
- [ ] insert
- [ ] sift_up - eklemek için gerekli
@@ -798,6 +809,14 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Uygulama:
- [ ] Mergesort: O(n log n) ortalama ve en kötü durum
- [ ] Quicksort O(n log n) ortalama durum
@@ -861,6 +880,8 @@ Graflar, bilgisayar bilimlerinde birçok sorunu temsil etmek için kullanılabil
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Kursu:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1233,7 +1254,7 @@ Graflar, bilgisayar bilimlerinde birçok sorunu temsil etmek için kullanılabil
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1681,6 +1702,7 @@ You're never really done.
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1721,6 +1743,7 @@ You're never really done.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-tw.md b/translations/README-tw.md
index fa5a8ab3bd..8dc0e98630 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -482,6 +482,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## 資料結構
- ### 陣列
@@ -524,6 +525,7 @@
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- 沒有完整的code,裡面只包含了用struct實作節點的方式以及其記憶體配置。
- [ ] Linked List vs 陣列:
@@ -556,6 +558,7 @@
- ### Stack(堆疊)
- [ ] [Stacks(影片)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [使用Stacks先進後出(Last-In First-Out)(影片)]()
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] 無須實作,可以用陣列實作,但這樣太過簡單了。
- ### Queue(佇列)
@@ -563,6 +566,7 @@
- [ ] [Queue(影片)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [Priority Queues(影片)]()
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] 使用linked list實作,包含末端指標(tail pointer):
- enqueue(value) - 在queue末端加入元素
- dequeue() - 刪除當時queue中最早進入的元素(意即queue中第一個元素),並且回傳該元素的值。
@@ -582,6 +586,7 @@
- [ ] [PyCon 2010: The Mighty Dictionary (影片)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (影片)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (影片)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] 線上開放式課程:
- [ ] [Understanding Hash Functions (影片)]()
- [ ] [Using Hash Tables (影片)]()
@@ -607,6 +612,7 @@
- [ ] [二分搜尋法(影片)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [二分搜尋法(影片)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [細節](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] 實作:
- 二分搜尋法 (對已經排列好的數列)
- 用遞迴(recursion)的方法實作二分搜尋法
@@ -656,6 +662,9 @@
- 中序 (DFS: 左子樹、根、右子樹)
- 後序 (DFS: 左子樹、右子樹、根)
- 前序 (DFS: 根、左子樹、右子樹)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 二元搜尋樹Binary search trees: BSTs
- [ ] [Binary Search Tree Review (影片)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -703,6 +712,7 @@
- [ ] [MIT: Heaps and Heap Sort (影片)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (影片)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 實作max heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -768,6 +778,14 @@
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] 實作:
- [ ] 合併排序: 平均與最糟都是O(n log n)
- [ ] 快速排序: 平均O(n log n)
@@ -830,6 +848,8 @@
- [ ] [CS 61B 2014: Weighted graphs (影片)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (影片)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (影片)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- 完整Coursera課程:
- [ ] [Algorithms on Graphs (影片)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1212,7 +1232,7 @@
- [ ] 2-3分鐘快速複習影片系列(23個影片)
- [影片](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (38個影片)
+- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (40個影片)
- [影片](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1601,6 +1621,7 @@ Coding面試題目影片:
- [Aduni - Algorithms - Lecture 5 (影片)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3搜尋樹**
- 實際上:
@@ -1637,6 +1658,7 @@ Coding面試題目影片:
- [MIT 6.851 - Memory Hierarchy Models (影片)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- 涵蓋了cache-oblivious B樹,非常有趣的資料結構
- 前37分鐘非常技術性,可以跳過(B代表block大小、cache line大小)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D樹
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 371b068812..bd46a4fdb1 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -539,6 +539,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
If some of the lectures are too mathy, you can jump down to the bottom and
@@ -583,6 +584,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] Description:
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -614,11 +616,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -643,6 +647,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -665,6 +670,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -718,6 +724,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -765,6 +774,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -811,6 +821,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -870,6 +888,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1312,7 +1332,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1680,6 +1700,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- In practice:
@@ -1719,6 +1740,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-ur.md b/translations/README-ur.md
index f3ad066f68..950a5dce82 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -491,6 +491,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Data Structures
@@ -532,6 +533,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- not the whole video, just portions about Node struct and memory allocation.
- [ ] Linked List vs Arrays:
@@ -563,11 +565,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Will not implement. Implementing with array is trivial.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- enqueue(value) - adds value at position at tail
- dequeue() - returns value and removes least recently added element (front)
@@ -592,6 +596,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
@@ -614,6 +619,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
@@ -664,6 +670,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -711,6 +720,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Implement a max-heap:
- [ ] insert
- [ ] sift_up - needed for insert
@@ -776,6 +786,14 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
@@ -839,6 +857,8 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Full Coursera Course:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1225,7 +1245,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (38 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1659,6 +1679,7 @@ You're never really done.
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search trees**
- In practice:
@@ -1699,6 +1720,7 @@ You're never really done.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
diff --git a/translations/README-uz.md b/translations/README-uz.md
index be85bca262..a80d639634 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -486,6 +486,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat varaq](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
## Ma'lumotlar tuzilmasi (Data structures)
@@ -528,6 +529,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- butun videoni ko'rmang, Node struct va xotira ajratish (memory allocation) qismlarini ko'ring
- [ ] Linked List va Array(massiv)lar:
@@ -559,11 +561,13 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Kodda yozmayman. Massivda stackni yaratish juda oson.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] linked-list dan foydalangan holda kodda yozaman (tail pointer bilan):
- enqueue(value) - qiymatni queue-ni oxiriga qo'yadi
- dequeue() - queue-ni boshidagi elementni o'chirib uni qiymatini qaytaradi
@@ -587,6 +591,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Onlayn kurslar:
- [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
@@ -609,6 +614,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [batafsil](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Kodda yozish:
- binary search (tartiblangan integer massivlarida)
- rekursiv binary search
@@ -660,6 +666,9 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- inorder (DFS: left, self, right)
- postorder (DFS: left, right, self)
- preorder (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search tree lar: BST lar
- [ ] [Binary Search Tree Tahlili (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -705,6 +714,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] max-heap ni kodda yozish:
- [ ] insert
- [ ] sift_up - insert operatsiyasi uchun kerak
@@ -769,6 +779,14 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Kodda yozish:
- [ ] Mergesort: O(n log n) o'rtacha va eng yomon holat
- [ ] Quicksort O(n log n) o'rtacha
@@ -831,6 +849,8 @@ Computer science da graflar bir talay masalalarni tasvirlashda ishlatiladi. Shun
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- To'liq Coursera kursi:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1215,7 +1235,7 @@ Computer science da graflar bir talay masalalarni tasvirlashda ishlatiladi. Shun
- [ ] 2-3 minutlik qisqa mavzuga oid videolar seriyasi (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (38 video):
+- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (40 video):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1652,6 +1672,7 @@ Hech qachon tugatgan bo'lmaymiz.
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3 search tree-lar**
- Amalda:
@@ -1690,6 +1711,7 @@ Hech qachon tugatgan bo'lmaymiz.
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- keshga e'tiborsiz B-Tree-lar haqida, juda qiziq data strukturalari
- birinchi 37 minuti juda texnik, o'tkazib yuborsangiz bo'ladi (B bu bo'lak hajmi, kesh qator hajmi)
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Tree-lar
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 07b27081d8..c62ef3f527 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -530,6 +530,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Nếu một vài bài học quá chuyên sâu về toán, bạn có thể nhảy cóc tới các bài toán riêng lẻ để có kiến thức toàn diện hơn.
@@ -573,6 +574,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [ ] Miêu tả:
- [ ] [Singly Linked Lists - Danh sách liên kết (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - Linked Lists - Danh sách liên kết (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- Không cần xem toàn bộ video, chỉ phần cấu trúc Node và cấp phát vùng nhớ.
- [ ] Danh sách liên kết so sánh với Mảng:
@@ -604,11 +606,13 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Sẽ không cài đặt. Cài đặt với mảng là điều hiển nhiên.
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Cài đặt sử dụng danh sách liên kết, áp dụng con trỏ đuôi:
- enqueue(value) - Thêm giá trị ở đuôi
- dequeue() - Trả về giá trị của dữ liệu được thêm vào xa nhất (thông thường là dữ liệu đầu tiên trong danh sách)
@@ -632,6 +636,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Các khóa học online:
- [ ] [Core Hash Tables - Cơ bản về bảng băm (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
- [ ] [Data Structures - Cấu trúc dữ liệu (video)](https://www.coursera.org/learn/data-structures/home/week/3)
@@ -652,6 +657,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [ ] [Tìm kiếm nhị phân (Binary Search) - video](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Tìm kiếm nhị phân - Khan Academy (Binary Search) - video](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [giải thích chi tiết](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Cài đặt:
- Tìm kiếm nhị phân (trên mảng số nguyên đã sắp xếp)
- Tìm kiếm nhị phân sử dụng đệ quy
@@ -706,6 +712,9 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- theo thứ tự (inorder) - (DFS: left, self, right)
- nhánh con trước (postorder) - (DFS: left, right, self)
- nhánh con sau (preorder) - (DFS: self, left, right)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Cây tìm kiếm nhị phân
@@ -756,6 +765,7 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [ ] [MIT: Heaps và Heap Sort - video](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues - video](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [Xây dựng Heap với thời gian tuyến tính `O(n)`](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Tự cài đặt max-heap:
- [ ] `insert`
- [ ] `sift_up` - cần thiết cho hàm `insert`.
@@ -803,6 +813,14 @@ Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy
- [ ] [Cài đặt khác dùng C](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Python](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
- [ ] Bài tập cài đặt:
- [ ] Sắp xếp trộn: O(n log n) trường hợp trung bình và xấu nhất
- [ ] Sắp xếp nhanh O(n log n) trường hợp trung bình
@@ -859,6 +877,8 @@ Nếu bạn muốn biết thêm chi tiết trong chủ đề này, xem qua phầ
- [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- Khóa học đầy đủ về đồ thị trên Coursera:
- [ ] [Các thuật toán trên đồ thị (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -1300,7 +1320,7 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] Các video ngắn 2-3 phút (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Các video ngắn 2-5 phút - Michael Sambol (38 video)
+- [ ] Các video ngắn 2-5 phút - Michael Sambol (40 video)
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
@@ -1645,6 +1665,7 @@ Bạn không bao giờ thực sự học xong!
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- Trong thực tế:
@@ -1679,6 +1700,7 @@ Bạn không bao giờ thực sự học xong!
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- giải thích cache mau quên (cache-oblivious) B-Trees, một cấu trúc dữ liệu rất thú vị.
- 37 phút đầu tiên rất nặng kỹ thuật, có thể bỏ qua
+ - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
From b9357d4abd6e7b7e9784e019b7dbd474225601dc Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 15:16:23 +0100
Subject: [PATCH 058/173] Fix typo in 'studied'
---
translations/README-bg.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 1cc97bc0ab..199e5aa476 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -2,7 +2,7 @@
> Първоначално създадох това като кратък списък с теми за учене, за това как се става софтуерен инженер, но то прерасна в този огромен списък, който виждате в момента. След като преминах през този учебен план, [бях нает като софтуерен инженер в Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! Най-вероятно няма да Ви се налага да учите колкото на мен, но все пак всичко, от което се нуждаете е тук.
>
-> Учих между 8-12 часа на ден в продължение на няколко месеца. Това е историята ми: [Why I studies full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+> Учих между 8-12 часа на ден в продължение на няколко месеца. Това е историята ми: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
> **Моля обърнете внимание:** Няма да Ви се налага да учите колкото мен. Загубих много време, учейки неща, които нямах нужда да знам. Може да прочетете повече за това надолу. Ще Ви помогна да достигнете до крайната цел без да прахосвате скъпото си време.
>
From 3fa5d59c91d0caf2a01c564d960ff8348fdecf14 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 15:17:20 +0100
Subject: [PATCH 059/173] Update languages list
---
translations/README-bg.md | 53 +++++++++++++++++++++------------------
1 file changed, 28 insertions(+), 25 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 199e5aa476..e93e5e44f9 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -13,37 +13,40 @@
Преводи:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
-- [Japanese (日本語)](translations/README-ja.md)
-- [Russian](translations/README-ru.md)
-- [Bulgarian](translations/README-bg.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [Uzbek](translations/README-uz.md)
+- [中文版本](translations/README-cn.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Español](translations/README-es.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Polish](translations/README-pl.md)
+- [繁體中文](translations/README-tw.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Russian](translations/README-ru.md)
+- [German](translations/README-de.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Uzbek](translations/README-uz.md)
+- [Bulgarian](translations/README-bg.md)
+- [বাংলা - Bangla](translations/README-bn.md)
Текущи преводи:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
-- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
From 4cdb65be93f0c18b1f241a3b07d51f5c84af9b31 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 15:17:40 +0100
Subject: [PATCH 060/173] Add translation
---
translations/README-bg.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index e93e5e44f9..a7646c29b3 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -53,7 +53,7 @@
From 8de8c3109da749a0b3c8c85789f109aff32412df Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 16:12:15 +0100
Subject: [PATCH 061/173] Fix indentation & formatting
---
translations/README-bg.md | 233 +++++++++++++++++++-------------------
1 file changed, 117 insertions(+), 116 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index a7646c29b3..c50695b8a2 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -66,9 +66,10 @@
**Изисквания:**
-- Малко опит с програмиране (променливи, цикли, методи/функции и т.н)
-- Търпение
-- Време
+- Малко опит с програмиране (променливи, цикли, методи/функции и т.н)
+- Търпение
+- Време
+
Обърнете внимание, че това е учебен план за **софтуерно инженерство**, а не за уеб разработка. Големите компании като Google, Amazon, Facebook и Microsoft различават софтуерното инженерство и уеб разработката. Amazon, например, имат Frontend инженери (FEE) и Software Development инженери (SDE). Това са 2 отделни позиции и интервютата за тях няма да са еднакви, тъй като всяка една от тях има своите специфики. Тези компании изискват знания по компютърни науки за позиции свързани със софтуерно инженерство/разработка
@@ -78,125 +79,125 @@
### Учебният план
-- [Какво е това?](#какво-е-това)
-- [Защо да го ползвате?](#защо-да-го-ползвате)
-- [Как да го ползвате?](#как-да-го-ползвате)
-- [Не мислете, че не сте достатъчно умни](#не-мислете-че-не-сте-достатъчно-умни)
-- [Бележка за видео ресурсите](#бележка-за-видео-ресурсите)
-- [Изберете език за програмиране](#изберете-език-за-програмиране)
-- [Книги за структури от данни и алгоритми](#книги-за-структури-от-данни-и-алгоритми)
-- [Книги за подготовка за интервю](#книги-за-подготовка-за-интервю)
-- [Не повтаряйте грешките ми](#не-повтаряйте-грешките-ми)
-- [Какво няма да намерите тук](#какво-няма-да-намерите-тук)
-- [Дневния план](#дневния-план)
-- [Подготовка за въпроси за програмиране](#подготовка-за-въпроси-за-програмиране)
-- [Задачи по програмиране](#задачи-по-програмиране)
+- [Какво е това?](#какво-е-това)
+- [Защо да го ползвате?](#защо-да-го-ползвате)
+- [Как да го ползвате?](#как-да-го-ползвате)
+- [Не мислете, че не сте достатъчно умни](#не-мислете-че-не-сте-достатъчно-умни)
+- [Бележка за видео ресурсите](#бележка-за-видео-ресурсите)
+- [Изберете език за програмиране](#изберете-език-за-програмиране)
+- [Книги за структури от данни и алгоритми](#книги-за-структури-от-данни-и-алгоритми)
+- [Книги за подготовка за интервю](#книги-за-подготовка-за-интервю)
+- [Не повтаряйте грешките ми](#не-повтаряйте-грешките-ми)
+- [Какво няма да намерите тук](#какво-няма-да-намерите-тук)
+- [Дневния план](#дневния-план)
+- [Подготовка за въпроси за програмиране](#подготовка-за-въпроси-за-програмиране)
+- [Задачи по програмиране](#задачи-по-програмиране)
### Теми за учене
-- [Алгоритмична сложност / Big-O / Асимптотичен анализ](#алгоритмична-сложност--big-o--асимптотичен-анализ)
-- [Структури от данни](#структури-от-данни)
- - [Масиви (Arrays)](#масиви)
- - [Свързани списъци(Linked Lists)](#свързани-списъци)
- - [Стек (Stack)](#стек)
- - [Опашка (Queue)](#опашка)
- - [Хеш таблици (Hash table)](#хеш-таблици)
-- [Повече знания](#повече-знания)
- - [Двоично търсене (Binary search)](#двоично-търсене)
- - [Побитови операции (Bitwise operations)](#побитови-операции)
-- [Дървета](#дървета)
- - [Дървета - бележки & основи](#дървета---бележки--основи)
- - [Дървета за двоично търсене: BSTs (Binary search trees)](#дървета-за-двоично-търсене-bsts)
- - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- - балансирани дървета за търсене (основна концепция, без детайли)
- - обхождане: preorder, inorder, postorder, BFS, DFS
-- [Сортиране (Sorting)](#сортиране)
- - selection
- - insertion
- - heapsort
- - quicksort
- - merge sort
-- [Графи (Graphs)](#графи)
- - directed
- - undirected
- - adjacency matrix
- - adjacency list
- - traversals: BFS, DFS
-- [Още повече знания](#още-повече-знания)
- - [Рекурсия (Recursion)](#рекурсия)
- - [Динамично програмиране (Dynamic programming)](#динамично-програмиране)
- - [Design Patterns](#design-patterns)
- - [Комбинаторика & вероятности](#комбинаторика--вероятности)
- - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- - [Как компютрите обработват една програма](#как-компютрите-обработват-една-програма)
- - [Кеширане (Caches)](#кеширане)
- - [Процеси и нишки](#процеси-и-нишки)
- - [Тестване (Testing)](#тестване)
- - [String searching & manipulations](#string-searching--manipulations)
- - [Tries](#tries)
- - [Floating Point Numbers](#floating-point-numbers)
- - [Уникод (Unicode)](#уникод)
- - [Endianness](#endianness)
- - [Мрежи (Networking)](#мрежи)
-- [Последен преглед](#последен-преглед)
+- [Алгоритмична сложност / Big-O / Асимптотичен анализ](#алгоритмична-сложност--big-o--асимптотичен-анализ)
+- [Структури от данни](#структури-от-данни)
+ - [Масиви (Arrays)](#масиви)
+ - [Свързани списъци(Linked Lists)](#свързани-списъци)
+ - [Стек (Stack)](#стек)
+ - [Опашка (Queue)](#опашка)
+ - [Хеш таблици (Hash table)](#хеш-таблици)
+- [Повече знания](#повече-знания)
+ - [Двоично търсене (Binary search)](#двоично-търсене)
+ - [Побитови операции (Bitwise operations)](#побитови-операции)
+- [Дървета](#дървета)
+ - [Дървета - бележки & основи](#дървета---бележки--основи)
+ - [Дървета за двоично търсене: BSTs (Binary search trees)](#дървета-за-двоично-търсене-bsts)
+ - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
+ - балансирани дървета за търсене (основна концепция, без детайли)
+ - обхождане: preorder, inorder, postorder, BFS, DFS
+- [Сортиране (Sorting)](#сортиране)
+ - selection
+ - insertion
+ - heapsort
+ - quicksort
+ - merge sort
+- [Графи (Graphs)](#графи)
+ - directed
+ - undirected
+ - adjacency matrix
+ - adjacency list
+ - traversals: BFS, DFS
+- [Още повече знания](#още-повече-знания)
+ - [Рекурсия (Recursion)](#рекурсия)
+ - [Динамично програмиране (Dynamic programming)](#динамично-програмиране)
+ - [Design Patterns](#design-patterns)
+ - [Комбинаторика & вероятности](#комбинаторика--вероятности)
+ - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
+ - [Как компютрите обработват една програма](#как-компютрите-обработват-една-програма)
+ - [Кеширане (Caches)](#кеширане)
+ - [Процеси и нишки](#процеси-и-нишки)
+ - [Тестване (Testing)](#тестване)
+ - [String searching & manipulations](#string-searching--manipulations)
+ - [Tries](#tries)
+ - [Floating Point Numbers](#floating-point-numbers)
+ - [Уникод (Unicode)](#уникод)
+ - [Endianness](#endianness)
+ - [Мрежи (Networking)](#мрежи)
+- [Последен преглед](#последен-преглед)
### Как да спечелите позицията
-- [Актуализирайте резюмето си](#актуализирайте-резюмето-си)
-- [Намерете позиция](#намерете-позиция)
-- [Процесът на интервюто & обща подготовка](#процесът-на-интервюто--обща-подготовка)
-- [Мислете за това, когато дойде интервюто](#мислете-за-това-когато-дойде-интервюто)
-- [Подгответе въпроси за интервюиращия](#подгответе-въпроси-за-интервюиращия)
-- [След като са Ви наели](#след-като-са-ви-наели)
+- [Актуализирайте резюмето си](#актуализирайте-резюмето-си)
+- [Намерете позиция](#намерете-позиция)
+- [Процесът на интервюто & обща подготовка](#процесът-на-интервюто--обща-подготовка)
+- [Мислете за това, когато дойде интервюто](#мислете-за-това-когато-дойде-интервюто)
+- [Подгответе въпроси за интервюиращия](#подгответе-въпроси-за-интервюиращия)
+- [След като са Ви наели](#след-като-са-ви-наели)
**---------------- Всичко оттук надолу е по желание ----------------**
### Допълнителни теми и ресурси
-- [Допълнителни книги](#допълнителни-книги)
-- [Системен дизайн, мащабируемост, обработка на данни](#системен-дизайн-мащабируемост-обработка-на-данни) (ако имате над 4 години опит)
-- [Additional Learning](#additional-learning)
- - [Компилатори](#компилатори)
- - [Emacs and vi(m)](#emacs-and-vim)
- - [Unix command line tools](#unix-command-line-tools)
- - [Information theory](#information-theory-videos)
- - [Паритет & код на Хаминг](#паритет--код-на-хаминг)
- - [Ентропия](#ентропия)
- - [Криптография](#криптография)
- - [Компресия](#компресия)
- - [Компютърна сигурност](#компютърна-сигурност)
- - [Garbage collection](#garbage-collection)
- - [Паралелно програмиране](#паралелно-програмиране)
- - [Системи за съобщения, сериализация и последователност](#системи-за-съобщения-сериализация-и-последователност)
- - [A\*](#a)
- - [Fast Fourier Transform](#fast-fourier-transform)
- - [Bloom Filter](#bloom-filter)
- - [HyperLogLog](#hyperloglog)
- - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- - [van Emde Boas Trees](#van-emde-boas-trees)
- - [Разширени структури от данни](#разширени-структури-от-данни)
- - [Балансирани дървета за търсене](#балансирани-дървета-за-търсене)
- - AVL trees
- - Splay trees
- - Red/black trees
- - 2-3 search trees
- - 2-3-4 Trees (aka 2-4 trees)
- - N-ary (K-ary, M-ary) trees
- - B-Trees
- - [k-D Trees](#k-d-trees)
- - [Skip lists](#skip-lists)
- - [Мрежови потоци](#мрежови-потоци)
- - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- - [Математика за бърза обработка](#математика-за-бърза-обработка)
- - [Treap](#treap)
- - [Линейно програмиране](#линейно-програмиране)
- - [Geometry, Convex hull](#geometry-convex-hull-videos)
- - [Дискретна математика](#дискретна-математика)
- - [Machine Learning](#machine-learning)
-- [Допълнителни детайли по някои теми](#допълнителни-детайли-по-някои-теми)
-- [Видео серии](#видео-серии)
-- [Курсове по компютърни науки](#курсове-по-компютърни-науки)
-- [Papers](#papers)
+- [Допълнителни книги](#допълнителни-книги)
+- [Системен дизайн, мащабируемост, обработка на данни](#системен-дизайн-мащабируемост-обработка-на-данни) (ако имате над 4 години опит)
+- [Допълнителни теми за учене](#Допънителни-теми-за-учене)
+ - [Компилатори](#компилатори)
+ - [Emacs and vi(m)](#emacs-and-vim)
+ - [Unix command line tools](#unix-command-line-tools)
+ - [Information theory](#information-theory-videos)
+ - [Паритет & код на Хаминг](#паритет--код-на-хаминг)
+ - [Ентропия](#ентропия)
+ - [Криптография](#криптография)
+ - [Компресия](#компресия)
+ - [Компютърна сигурност](#компютърна-сигурност)
+ - [Garbage collection](#garbage-collection)
+ - [Паралелно програмиране](#паралелно-програмиране)
+ - [Системи за съобщения, сериализация и последователност](#системи-за-съобщения-сериализация-и-последователност)
+ - [A\*](#a)
+ - [Fast Fourier Transform](#fast-fourier-transform)
+ - [Bloom Filter](#bloom-filter)
+ - [HyperLogLog](#hyperloglog)
+ - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
+ - [van Emde Boas Trees](#van-emde-boas-trees)
+ - [Разширени структури от данни](#разширени-структури-от-данни)
+ - [Балансирани дървета за търсене](#балансирани-дървета-за-търсене)
+ - AVL trees
+ - Splay trees
+ - Red/black trees
+ - 2-3 search trees
+ - 2-3-4 Trees (aka 2-4 trees)
+ - N-ary (K-ary, M-ary) trees
+ - B-Trees
+ - [k-D Trees](#k-d-trees)
+ - [Skip lists](#skip-lists)
+ - [Мрежови потоци](#мрежови-потоци)
+ - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
+ - [Математика за бърза обработка](#математика-за-бърза-обработка)
+ - [Treap](#treap)
+ - [Линейно програмиране](#линейно-програмиране)
+ - [Geometry, Convex hull](#geometry-convex-hull-videos)
+ - [Дискретна математика](#дискретна-математика)
+ - [Machine Learning](#machine-learning)
+- [Допълнителни детайли по някои теми](#допълнителни-детайли-по-някои-теми)
+- [Видео серии](#видео-серии)
+- [Курсове по компютърни науки](#курсове-по-компютърни-науки)
+- [Papers](#papers)
---
@@ -216,9 +217,9 @@
## Не мислете, че не сте достатъчно умни
-- Успешните софтуерни инженери са умни, но много имат чувството, че не са достатъчно умни
-- [Митът за гениалния програмист](https://www.youtube.com/watch?v=0SARbwvhupQ)
-- [Опасно е да сте сами: битката с невидимите чудовища в IT](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+- Успешните софтуерни инженери са умни, но много имат чувството, че не са достатъчно умни
+- [Митът за гениалния програмист](https://www.youtube.com/watch?v=0SARbwvhupQ)
+- [Опасно е да сте сами: битката с невидимите чудовища в IT](https://www.youtube.com/watch?v=1i8ylq4j_EY)
## Бележка за видео ресурсите
@@ -1459,8 +1460,8 @@ Mock интервюта:
- [Emacs въководство (За начинаещи) -Част 3- Изрази, Твърдения, ~/.emacs файлове и пакети](https://www.youtube.com/watch?v=paSgzPso-yc)
- [Зъл режим(Evil mode): Или как се научих да спра да се тревожа и да заобичам Emacs (клип)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [Писане на C програми с Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- - [Emacs-Наръчник за начинаещи (видео от David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
- - [Emacs-Наръчник за начинаещи (записки на David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
+ - [Emacs-Наръчник за начинаещи (видео от David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [Emacs-Наръчник за начинаещи (записки на David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
- ### Unix command line tools
From 845f52fa82fb8eaa2bc06669f72f36f3b83c5fca Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 16:16:00 +0100
Subject: [PATCH 062/173] Fix indentation
---
translations/README-bg.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index c50695b8a2..261bac2cf0 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -51,11 +51,11 @@
## Какво е това?
From 2b14efe00b5c3a7c78aab99d617ec2b9538d8ad7 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 16:22:10 +0100
Subject: [PATCH 063/173] Add translation
---
translations/README-bg.md | 67 +++++++++++++++++++++++++++++++++++----
1 file changed, 61 insertions(+), 6 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 261bac2cf0..016752f363 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -70,8 +70,15 @@
- Търпение
- Време
+Обърнете внимание, че това е учебен план за **софтуерно инженерство**, а не за уеб разработка. Големите компании като Google, Amazon,
+Facebook и Microsoft различават софтуерното инженерство и уеб разработката. Amazon, например, имат Frontend инженери (FEE)
+и Software Development инженери (SDE). Това са 2 отделни позиции и интервютата за тях няма да са еднакви, тъй като всяка една от
+тях има своите специфики. Тези компании изискват знания по компютърни науки за позиции свързани със софтуерно инженерство/разработка.
-Обърнете внимание, че това е учебен план за **софтуерно инженерство**, а не за уеб разработка. Големите компании като Google, Amazon, Facebook и Microsoft различават софтуерното инженерство и уеб разработката. Amazon, например, имат Frontend инженери (FEE) и Software Development инженери (SDE). Това са 2 отделни позиции и интервютата за тях няма да са еднакви, тъй като всяка една от тях има своите специфики. Тези компании изискват знания по компютърни науки за позиции свързани със софтуерно инженерство/разработка
+По принцип в университетска програма по Компютърни науки/Информатика има много неща за учене, но знаейки около 75% от това е
+достатъчно добре за да се справите на интервю, това е и информацията която покривам тук.
+За пълна програма по Компютърни науки за самоуки записките от моя план за учене са включени в Пътеката по Компютърни науки на Камран
+Ахмед: https://roadmap.sh/computer-science
---
@@ -207,14 +214,60 @@
Ако също като мен не сте учили компютърни науки в университет това ще Ви помогне да наваксате и ще Ви спести години.
-Когато започнах този проект не знаех какво е стек или опашка, нямах представа какво е Big-O, не знаех нищо за дървета или как да обхождам графи. Ако трябваше да напиша сортиращ алгоритъм мога да Ви кажа, че бих се справил ужасно. Всяка от структурите от данни, които бях използвал досега бяха имплементирани в езика, който ползвах и нямах представа как работят реално. Никога не ми се беше налагало да управлявам памет освен ако някой от процесите, които бях пуснал не връщаха грешка "out of memory"- тогава се налагаше да търся заобиколен път. Бях ползвал хиляди асоциативни масиви и многоизмерни масиви няколко пъти, но никога преди не бях имплементирал структури от данни от нулата.
+Когато започнах този проект не знаех какво е стек или опашка, нямах представа какво е Big-O, не знаех нищо за дървета или как да
+pобхождам графи. Ако трябваше да напиша сортиращ алгоритъм мога да Ви кажа, че бих се справил ужасно. Всяка от структурите от данни,
+които бях използвал досега бяха имплементирани в езика, който ползвах и нямах представа как работят реално. Никога не ми се беше
+налагало да управлявам памет освен ако някой от процесите, които бях пуснал не връщаха грешка "out of memory"- тогава се налагаше
+да търся заобиколен път. Бях ползвал хиляди асоциативни масиви и многоизмерни масиви няколко пъти, но никога преди не бях
+имплементирал структури от данни от нулата.
-Планът е дълъг. Може да Ви отнеме месеци. Ако вече сте запознати с повечето от темите ще Ви отнеме много по-малко
+Планът е дълъг. Може да Ви отнеме месеци. Ако вече сте запознати с повечето от темите ще Ви отнеме много по-малко.
## Как да го ползвате
Всичко надолу е само схематично изложение и трябва да преминете през темите от горе до долу.
+Аз използвам специалния маркдаун на ГитХъб, включително листове със задачи за да следвам прогреса си.
+ - [Повече за GitHub-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### Ако не желаете да използвате git
+
+На тази страница кликнете върху бутона Code най-отгоре, а след това изберете "Download ZIP". Накрая разархивирайте файла и можете да
+работите с текстовите файлове.
+
+Ако сте отворили файловете с текстов редактор, който разбира markdown, ще видите всичко форматирано подредено и красиво.
+
+
+
+### Ако се чувствате сигурни да ползвате git
+
+Създайте нов бранч за да може да отбелязвате елементи по този начин, като просто вкарате един х в скобите: [x]
+
+1. ***Направете Fork на GitHub хранилището:*** `https://github.com/jwasham/coding-interview-university` като кликнете върху бутона Fork.
+
+ 
+
+1. Клонирайте хранилището на персоналния Ви компютър:
+
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ cd coding-interview-university
+ git checkout -b progress
+ git remote add jwasham https://github.com/jwasham/coding-interview-university
+ git fetch --all
+ ```
+
+1. Маркирайте всички кутийки с Х след като сте готови с промените си:
+
+ ```
+ git add .
+ git commit -m "Marked x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
+ ```
+
+
## Не мислете, че не сте достатъчно умни
- Успешните софтуерни инженери са умни, но много имат чувството, че не са достатъчно умни
@@ -223,9 +276,11 @@
## Бележка за видео ресурсите
-Някои видеа са достъпни само след записване в курс на Coursera или EdX- т.нар. MOOCs. Понякога се налага да изчакате няколко месеца, за да стартира ново издание на курса, така че няма да имате достъп до тях.
+Някои видеа са достъпни само след записване в курс на Coursera или EdX- т.нар. MOOCs. Понякога се налага да изчакате няколко месеца,
+за да стартира ново издание на курса, така че няма да имате достъп до тях.
-Би било чудесно такива ресурси да бъдат заменени с безплатни и свободнодостъпни публични източници като YouTube видеа (по възможност университетски лекции), за да могат всички да учат навсякъде и по всяко време, а не само когато даден курс върви в момента.
+Би било чудесно такива ресурси да бъдат заменени с безплатни и свободнодостъпни публични източници като YouTube видеа (по възможност
+университетски лекции), за да могат всички да учат навсякъде и по всяко време, а не само когато даден курс върви в момента.
## Изберете език за програмиране
@@ -1429,7 +1484,7 @@ Mock интервюта:
- [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
- [Design a cache system](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-## Additional Learning
+## Допънителни теми за учене
Добавих тези теми, за да Ви помогна да бъдете по-добри софтуерни инженери и да сте наясно с определени технологии и алгоритми, което ще разшири "инструментите", с които можете да работите
From 297c19f64662aa248dfb33e4c81efd1ddc134a56 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 14 Feb 2023 17:42:21 +0100
Subject: [PATCH 064/173] Fix indentation & formatting
---
translations/README-bg.md | 68 ++++++++++++++++++++-------------------
1 file changed, 35 insertions(+), 33 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 016752f363..bdb13a3400 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -292,38 +292,40 @@ pобхождам графи. Ако трябваше да напиша сорт
Когато преминавах през учебния план ползвах 2 езика за по-голямата част от нещата: C и Python
-- C: Език на много ниско ниво. Дава Ви възможност да се справяте с пойнтъри и управляване на паметта, за да разберете структурите от данни и алгоритмите на много дълбоко ниво. В езици за програмиране на по-високо ниво тези неща са скрити от Вас. В ежедневната работа това е прекрасно, но когато се учите как тези структури от данни работят е хубаво да усещате как става всичко.
- - C е навсякъде. Ще виждате примери в книги, лекции, видеа _навсякъде_ докато учите.
- - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - Това е кратка книга, но ще Ви даде добра представа за езика и с малко упражнения бързо ще имате добро владение над него. Ако разбирате C значи разбирате как програмите и паметта работят.
- - Не трябва да се зачитате много надълбоко в книгата (или дори да я прочитате докрай). Нужно е само да сте уверени в способността си да четете и пишете в C.
- - [Отговори на въпросите в книгата](https://github.com/lekkas/c-algorithms)
-- Python: модерен и много експресивен. Научих го защото е наистина много полезен и ми позволява да пиша по-малко код когато съм на интервю.
+* C: Език на много ниско ниво. Дава Ви възможност да се справяте с пойнтъри и управляване на паметта, за да разберете структурите
+ от данни и алгоритмите на много дълбоко ниво. В езици за програмиране на по-високо ниво тези неща са скрити от Вас. В ежедневната
+ работа това е прекрасно, но когато се учите как тези структури от данни работят е хубаво да усещате как става всичко.
+ - C е навсякъде. Ще виждате примери в книги, лекции, видеа _навсякъде_ докато учите.
+ - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - Това е кратка книга, но ще Ви даде добра представа за езика и с малко упражнения бързо ще имате добро владение над него. Ако разбирате C значи разбирате как програмите и паметта работят.
+ - Не трябва да се зачитате много надълбоко в книгата (или дори да я прочитате докрай). Нужно е само да сте уверени в способността си да четете и пишете в C.
+ - [Отговори на въпросите в книгата](https://github.com/lekkas/c-algorithms)
+* Python: модерен и много експресивен. Научих го защото е наистина много полезен и ми позволява да пиша по-малко код когато съм на интервю.
Това е моя личен избор. Вие можете да изберете каквото пожелаете, разбира се.
Може да не Ви трябват, но ето някои сайтове за учене на нов език:
-- [Exercism](https://exercism.org/tracks)
-- [Codewars](http://www.codewars.com)
-- [Codility](https://codility.com/programmers/)
-- [HackerEarth](https://www.hackerearth.com/)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-- [Codechef](https://www.codechef.com/)
-- [Codeforces](https://codeforces.com/)
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Codeforces](https://codeforces.com/)
### За интервюто Ви по програмиране
Може да изберете език, в който се чувствате комфортно за интервюто Ви, но за големите компании това са най-добрите опции:
-- C++
-- Java
-- Python
+- C++
+- Java
+- Python
Може да ползвате и тези, но поразгледайте преди това, защото може да има уловки:
-- JavaScript
-- Ruby
+- JavaScript
+- Ruby
Това е статия, която написах за избирането на език за вашето интервю:
[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
@@ -345,28 +347,28 @@ pобхождам графи. Ако трябваше да напиша сорт
### C
-- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- - Основни познания, структури от данни, сортиране, търсене и алгоритми за графи
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Основни познания, структури от данни, сортиране, търсене и алгоритми за графи
### Python
-- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - от Goodrich, Tamassia, Goldwasser
- - Тази книга ми допадна много. Покрива всичко и още нещо
- - 'Питоничен' код
- - Докладът ми за тази книга: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - от Goodrich, Tamassia, Goldwasser
+ - Тази книга ми допадна много. Покрива всичко и още нещо
+ - 'Питоничен' код
+ - Докладът ми за тази книга: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
### Java
Изборът е ваш:
-- Goodrich, Tamassia, Goldwasser
- - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
-- Sedgewick and Wayne:
- - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - Безплатен курс в Coursera, който покрива материала от книгата (воден от писателите!):
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Безплатен курс в Coursera, който покрива материала от книгата (воден от писателите!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
### C++
From b91bc8f3884e34c1b3d4d2c99f60291a13d9a2c7 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Wed, 15 Feb 2023 10:23:30 +0100
Subject: [PATCH 065/173] Fix indentation
---
translations/README-bg.md | 298 +++++++++++++++++++-------------------
1 file changed, 151 insertions(+), 147 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index bdb13a3400..2541f702ce 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -464,42 +464,48 @@ pобхождам графи. Ако трябваше да напиша сорт
Това са широко разпространени технологии, но не и част от учебния план:
-- SQL
-- Javascript
-- HTML, CSS, и други front-end технологии
+- SQL
+- Javascript
+- HTML, CSS, и други front-end технологии
## Дневния план
-Този курс преминава през множество от теми. Всяка от тях най-вероятно ще Ви отнеме няколко дена или дори седмица, или повече. Зависи от графика Ви.
+Този курс преминава през множество от теми. Всяка от тях най-вероятно ще Ви отнеме няколко дена или дори седмица, или
+повече. Зависи отграфика Ви.
-Всеки ден взимайте следващата тема в списъка, изгледайте няколко клипа по тази тема и след това напишете имплементацията на въпросната структура от данни или алгоритъм в езика за програмиране, който сте избрали за този курс.
+Всеки ден взимайте следващата тема в списъка, изгледайте няколко клипа по тази тема и след това напишете имплементацията
+на въпросната структура от данни или алгоритъм в езика за програмиране, който сте избрали за този курс.
Можете да видите моя код тук:
-- [C](https://github.com/jwasham/practice-c)
-- [C++](https://github.com/jwasham/practice-cpp)
-- [Python](https://github.com/jwasham/practice-python)
+- [C](https://github.com/jwasham/practice-c)
+- [C++](https://github.com/jwasham/practice-cpp)
+- [Python](https://github.com/jwasham/practice-python)
-Не е нужно да помните всеки алгоритъм наизуст. Необходимо е просто да ги разбирате достатъчно добре, за да можете да напишете собствена имплементация.
+Не е нужно да помните всеки алгоритъм наизуст. Необходимо е просто да ги разбирате достатъчно добре, за да можете да
+напишете собствена имплементация.
## Подготовка за въпроси за програмиране
- Защо това е тук? Аз не съм готов да се явя на интервю.
+Защо това е тук? Аз не съм готов да се явя на интервю.
[Тогава се върни и прочети това.](#3-решавайте-задачи-от-интервюта-по-програмиране-докато-учите)
Защо трябва да се упражнявате да решавате задачи по програмиране:
-- Разпознаване на проблеми и знанието кога и къде да ползвате дадена структура от данни или алгоритъм
-- Събиране на изискванията за задачата
-- Изговаряне на мислите Ви докато решавате както ще правите на интервюто
-- Писане на код върху дъска или лист хартия вместо на компютър
-- Намиране на времевата и пространствената сложност на решенията Ви (вижте Big-O надолу)
-- Тестване на решенията Ви
+- Разпознаване на проблеми и знанието кога и къде да ползвате дадена структура от данни или алгоритъм
+- Събиране на изискванията за задачата
+- Изговаряне на мислите Ви докато решавате както ще правите на интервюто
+- Писане на код върху дъска или лист хартия вместо на компютър
+- Намиране на времевата и пространствената сложност на решенията Ви (вижте Big-O надолу)
+- Тестване на решенията Ви
-Пишете код на дъска или лист хартия вместо на компютър. Тествайте с няколко различни входни данни. След това го напишете и тествайте на компютър.
+Пишете код на дъска или лист хартия вместо на компютър. Тествайте с няколко различни входни данни. След това го напишете
+и тествайте на компютър.
-Ако нямате дъска за писане вкъщи можете да си купите голям тефтер от магазин за арт материали. Можете просто да седите на дивана и да се упражнявате. Това е моята "дъска за дивана". Добавих химикала към снимката за съпоставка на размера. Ако използвате химикал бързо ще ви се поиска да можеше да триете написаното- бързо става мазало. **Аз ползвам молив и гума.**
+Ако нямате дъска за писане вкъщи можете да си купите голям тефтер от магазин за арт материали. Можете просто да седите
+на дивана и да се упражнявате. Това е моята "дъска за дивана". Добавих химикала към снимката за съпоставка на размера.
+Ако използвате химикал бързо ще ви се поиска да можеше да триете написаното - бързо става мазало. **Аз ползвам молив и гума.**

@@ -511,29 +517,29 @@ pобхождам графи. Ако трябваше да напиша сорт
Решаване на задачи:
-- [Как да намерим решение](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
-- [Как да направим дисекция на условие на задача от Topcoder](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
+- [Как да намерим решение](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
+- [Как да направим дисекция на условие на задача от Topcoder](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
Клипове за задачи от интервюта по програмиране:
-- [IDeserve (88 клипа)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy (5 плейлисти)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- - Супер за насоки за решаване на задачи
-- [Nick White - LeetCode Solutions (187 клипа)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - Добро обяснение на решението и кода
- - Можете да изгледате няколко клипа в малък прозорец от време
-- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+- [IDeserve (88 клипа)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 плейлисти)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - Супер за насоки за решаване на задачи
+- [Nick White - LeetCode Solutions (187 клипа)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Добро обяснение на решението и кода
+ - Можете да изгледате няколко клипа в малък прозорец от време
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
Сайтове със задачи:
-- [LeetCode](https://leetcode.com/)
- - Любимият ми сайт със задачи. Струва си парите за абонамент за времето, в което ще се подготвяте.
- - Вижте клиповете на Nick White и FisherCoder Videos по-горе за насоки със някои задачи.
-- [HackerRank](https://www.hackerrank.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
-- [InterviewBit](https://www.interviewbit.com/)
-- [Project Euler](https://projecteuler.net/)
+- [LeetCode](https://leetcode.com/)
+ - Любимият ми сайт със задачи. Струва си парите за абонамент за времето, в което ще се подготвяте.
+ - Вижте клиповете на Nick White и FisherCoder Videos по-горе за насоки със някои задачи.
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [InterviewBit](https://www.interviewbit.com/)
+- [Project Euler](https://projecteuler.net/)
## Да започваме
@@ -543,124 +549,122 @@ pобхождам графи. Ако трябваше да напиша сорт
## Алгоритмична сложност / Big-O / Асимптотичен анализ
-- Няма нищо за имплементация тук, единствено ще гледате клипове и ще си водите записки! Йей!
-- Има доста клипове тук. Просто изгледайте достатъчно докато не го разберете. Винаги можете да се върнете обратно и да преговорите.
-- Не се притеснявайте ако не разбирате всичката математика, която стои отзад.
-- Трябва просто да можете да изразите сложността на даден алгоритъм чрез Big-O
-- [ ] [Harvard CS50 - Asymptotic Notation (клип)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [ ] [Big O Notations (общ наръчник) (клип)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [ ] [Big O Notation (и Omega, и Theta) - най-доброто математично обяснение (клип)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [клип](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [slides](https://archive.org/details/lecture2_202008)
-- [ ] [UC Berkeley Big O (клип)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
-- [ ] [Амортизиран анализ (клип)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] TopCoder (includes recurrence relations and master theorem):
- - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
-- [ ] [Пищови](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- Няма нищо за имплементация тук, единствено ще гледате клипове и ще си водите записки! Йей!
+- Има доста клипове тук. Просто изгледайте достатъчно докато не го разберете. Винаги можете да се върнете обратно и да преговорите.
+- Не се притеснявайте ако не разбирате всичката математика, която стои отзад.
+- Трябва просто да можете да изразите сложността на даден алгоритъм чрез Big-O
+- [ ] [Harvard CS50 - Asymptotic Notation (клип)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [Big O Notations (общ наръчник) (клип)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [Big O Notation (и Omega, и Theta) - най-доброто математично обяснение (клип)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] Skiena:
+ - [клип](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [slides](https://archive.org/details/lecture2_202008)
+- [ ] [UC Berkeley Big O (клип)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [Амортизиран анализ (клип)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (includes recurrence relations and master theorem):
+ - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
+ - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
+- [ ] [Пищови](http://bigocheatsheet.com/)
+- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
Е, това е достатъчно за тази тема.
-Когато четете "Cracking the Coding Interview" ще срещнете главата, която разглежда тази тема. Накрая на главата има кратък тест, който проверява дали можете да намерите сложността на различни алгоритми. Това е супер преговор и тест.
+Когато четете "Cracking the Coding Interview" ще срещнете главата, която разглежда тази тема. Накрая на главата има
+кратък тест, който проверява дали можете да намерите сложността на различни алгоритми. Това е супер преговор и тест.
## Структури от данни
-- ### Масиви
-
- - [ ] За масивите:
- - [Arrays (клип)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (клип)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- - [Dynamic Arrays (клип)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- - [Jagged Arrays (клип)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - [ ] Имплементирайте вектор (променлив масив с автоматично преоразмеряване):
- - [ ] Упражнявайте се да пишете код, ползвайки масиви и пойнтъри. Ползвайте пойнтъри за преместване към индекс вместо индексиране
- - [ ] New raw data array with allocated memory
- - can allocate int array under the hood, just not use its features
- - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
- - [ ] size() - номер на елементите
- - [ ] capacity() - номер на елементите, които може да побира
- - [ ] is_empty()
- - [ ] at(index) - връща елемента на дадения индекс, ако индекса е извън границите на масива връща грешка
- - [ ] push(item)
- - [ ] insert(index, item) - вкарва елемента на дадения елемент, измествайки съществуващия елемент на този индекс и всички елементи след него надясно
- - [ ] prepend(item) - може да добавя елементи на индекс 0
- - [ ] pop() - премахва елемент от края и връща стойността му
- - [ ] delete(index) - изтрива елемента на дадения индекс и измества всички елементи след него наляво
- - [ ] remove(item) - търси стойността на елемента и премахва всички индекси, които я съдържат
- - [ ] find(item) - търси стойността на елемента и връща първия индекс, който я съдържа, или -1 ако няма такъв елемент
- - [ ] resize(new_capacity) // private function
- - когато достигнете максималния обем, преоразмерете като дублирате обема
- - когато pop-вате елемент, ако обема на масива е 1/4 от капацитета му, преоразмерете масива наполовина
- - [ ] Време
- - O(1) за добавяне/премахване към края, индексиране или актуализиране
- - O(n) за добавяне/премахване другаде
- - [ ] Пространство
- - contiguous in memory, so proximity helps performance
- - нужно място = (капацитета на масива, който е >= n) \* размера на елемента, но дори 2n, пак е O(n)
-
-- ### Свързани списъци
-
- - [ ] Описание:
- - [ ] [Единично свързани списъци (клип)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- - [ ] [CS 61B - Linked Lists 1 (клип)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- - [ ] [CS 61B - Linked Lists 2 (клип)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- - [ ] [Код в C (клип)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - не цялото видео, само частите за Node structs и алокация на памет
- - [ ] Свързани списъци срещу масиви:
- - [Core Linked Lists Vs Arrays (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- - [Свързани списъци срещу масиви в истинския свят (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- - [ ] [Защо да избягваме свързаните списъци (клип)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - [ ] Аха: трябват Ви pointer to pointer знания:
- (за да можете да подавате pointer към функция, която може да промени адреса, към който сочи pointer-a)
- Тази страница служи само да схванете ptr to ptr. Не препоръчвам този стил на обхождане на списъка. Четливостта и поддържаемостта страдат заради хитрости.
- - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- - [ ] Имплементация:
- - [ ] size() - връща броя на елементите
- - [ ] empty() - булева стойност, връща true ако списъка е празен
- - [ ] value_at(index) - връща стойността на n-тия елемент (почвайки от 0 за първия елемент)
- - [ ] push_front(value) - добавя стойност към началото на списъка
- - [ ] pop_front() - премахва първия елемент и връща стойността му
- - [ ] push_back(value) - добавя елемент към края
- - [ ] pop_back() - премахва последния елемент и връща стойността му
- - [ ] front() - взима стойността на първия елемент
- - [ ] back() - взима стойността на последния елемент
- - [ ] insert(index, value) - вкарва елемента на дадения индекс, така че новия елемент да сочи към стария елемент на този индекс
- - [ ] erase(index) - изтрива node-а на дадения индекс
- - [ ] value_n_from_end(n) - връща стойността на node-а, седящ на позиция n от края на списъка
- - [ ] reverse() - обръща списъка
- - [ ] remove_value(value) - премахва първия елемент от списъка, съдържащ тази стойност
- - [ ] Двойно свързан списък
- - [Описание (клип)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- - Няма нужда от имплементация
-
-- ### Стек
-
- - [ ] [Стекове (клип)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] Няма нужда да се имплементира. Имплементацията с масив е тривиална.
-
-- ### Опашка
-
- - [ ] [Опашка (клип)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- - [ ] Имплементирайте със свързан списък с tail pointer:
- - enqueue(value) - добавя стойност на опашката
- - dequeue() - връща стойността и премахва най-предния елемент на опашката (front)
- - empty()
- - [ ] Имплементрайте с масив с фиксирана големина:
- - enqueue(value) - добавя елемента в края на наличното пространство
- - dequeue() - връща стойността и премахва най-предния елемент на опашката
- - empty()
- - full()
- - [ ] Разход:
- - лоша имплементация, ползвайки свързан списък където правим enqueue в началото и dequeue в края би била O(n)
- защото ще се нуждаете от предпоследния елемент, което ще предизвиква цялостно обхождане при всяко dequeue
- - enqueue: O(1) (amortized, свъзран списък и масив [probing])
- - dequeue: O(1) (свъзран списък и масив)
- - empty: O(1) (свъзран списък и масив)
+- ### Масиви
+ - [ ] За масивите:
+ - [Arrays (клип)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (клип)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [Dynamic Arrays (клип)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [Jagged Arrays (клип)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] Имплементирайте вектор (променлив масив с автоматично преоразмеряване):
+ - [ ] Упражнявайте се да пишете код, ползвайки масиви и пойнтъри. Ползвайте пойнтъри за преместване към индекс вместо индексиране
+ - [ ] New raw data array with allocated memory
+ - can allocate int array under the hood, just not use its features
+ - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
+ - [ ] size() - номер на елементите
+ - [ ] capacity() - номер на елементите, които може да побира
+ - [ ] is_empty()
+ - [ ] at(index) - връща елемента на дадения индекс, ако индекса е извън границите на масива връща грешка
+ - [ ] push(item)
+ - [ ] insert(index, item) - вкарва елемента на дадения елемент, измествайки съществуващия елемент на този индекс и всички елементи след него надясно
+ - [ ] prepend(item) - може да добавя елементи на индекс 0
+ - [ ] pop() - премахва елемент от края и връща стойността му
+ - [ ] delete(index) - изтрива елемента на дадения индекс и измества всички елементи след него наляво
+ - [ ] remove(item) - търси стойността на елемента и премахва всички индекси, които я съдържат
+ - [ ] find(item) - търси стойността на елемента и връща първия индекс, който я съдържа, или -1 ако няма такъв елемент
+ - [ ] resize(new_capacity) // private function
+ - когато достигнете максималния обем, преоразмерете като дублирате обема
+ - когато pop-вате елемент, ако обема на масива е 1/4 от капацитета му, преоразмерете масива наполовина
+ - [ ] Време
+ - O(1) за добавяне/премахване към края, индексиране или актуализиране
+ - O(n) за добавяне/премахване другаде
+ - [ ] Пространство
+ - contiguous in memory, so proximity helps performance
+ - нужно място = (капацитета на масива, който е >= n) \* размера на елемента, но дори 2n, пак е O(n)
+
+- ### Свързани списъци
+ - [ ] Описание:
+ - [ ] [Единично свързани списъци (клип)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - Linked Lists 1 (клип)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - Linked Lists 2 (клип)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
+ - [ ] [Код в C (клип)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - не цялото видео, само частите за Node structs и алокация на памет
+ - [ ] Свързани списъци срещу масиви:
+ - [Core Linked Lists Vs Arrays (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [Свързани списъци срещу масиви в истинския свят (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+ - [ ] [Защо да избягваме свързаните списъци (клип)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [ ] Аха: трябват Ви pointer to pointer знания:
+ (за да можете да подавате pointer към функция, която може да промени адреса, към който сочи pointer-a)
+ Тази страница служи само да схванете ptr to ptr. Не препоръчвам този стил на обхождане на списъка. Четливостта
+ и поддържаемостта страдат заради хитрости.
+ - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
+ - [ ] Имплементация:
+ - [ ] size() - връща броя на елементите
+ - [ ] empty() - булева стойност, връща true ако списъка е празен
+ - [ ] value_at(index) - връща стойността на n-тия елемент (почвайки от 0 за първия елемент)
+ - [ ] push_front(value) - добавя стойност към началото на списъка
+ - [ ] pop_front() - премахва първия елемент и връща стойността му
+ - [ ] push_back(value) - добавя елемент към края
+ - [ ] pop_back() - премахва последния елемент и връща стойността му
+ - [ ] front() - взима стойността на първия елемент
+ - [ ] back() - взима стойността на последния елемент
+ - [ ] insert(index, value) - вкарва елемента на дадения индекс, така че новия елемент да сочи към стария елемент на този индекс
+ - [ ] erase(index) - изтрива node-а на дадения индекс
+ - [ ] value_n_from_end(n) - връща стойността на node-а, седящ на позиция n от края на списъка
+ - [ ] reverse() - обръща списъка
+ - [ ] remove_value(value) - премахва първия елемент от списъка, съдържащ тази стойност
+ - [ ] Двойно свързан списък
+ - [Описание (клип)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
+ - Няма нужда от имплементация
+
+- ### Стек
+ - [ ] [Стекове (клип)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
+ - [ ] Няма нужда да се имплементира. Имплементацията с масив е тривиална.
+
+- ### Опашка
+ - [ ] [Опашка (клип)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
+ - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
+ - [ ] Имплементирайте със свързан списък с tail pointer:
+ - enqueue(value) - добавя стойност на опашката
+ - dequeue() - връща стойността и премахва най-предния елемент на опашката (front)
+ - empty()
+ - [ ] Имплементрайте с масив с фиксирана големина:
+ - enqueue(value) - добавя елемента в края на наличното пространство
+ - dequeue() - връща стойността и премахва най-предния елемент на опашката
+ - empty()
+ - full()
+ - [ ] Разход:
+ - лоша имплементация, ползвайки свързан списък където правим enqueue в началото и dequeue в края би била O(n)
+ защото ще се нуждаете от предпоследния елемент, което ще предизвиква цялостно обхождане при всяко dequeue
+ - enqueue: O(1) (amortized, свъзран списък и масив [probing])
+ - dequeue: O(1) (свъзран списък и масив)
+ - empty: O(1) (свъзран списък и масив)
- ### Хеш таблици
From 1436b9d451663aad5f244585be972fb2d2671480 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Wed, 15 Feb 2023 10:30:27 +0100
Subject: [PATCH 066/173] Fix formatting to ### Trees
---
translations/README-bg.md | 118 ++++++++++++++++++--------------------
1 file changed, 56 insertions(+), 62 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 2541f702ce..a53b284234 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -666,71 +666,65 @@ pобхождам графи. Ако трябваше да напиша сорт
- dequeue: O(1) (свъзран списък и масив)
- empty: O(1) (свъзран списък и масив)
-- ### Хеш таблици
-
- - [ ] Клипове:
-
- - [ ] [Hashing with Chaining (клип)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [Table Doubling, Karp-Rabin (клип)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Open Addressing, Cryptographic Hashing (клип)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: The Mighty Dictionary (клип)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [PyCon 2017: The Dictionary Even Mightier (клип)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (клип)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(За напреднали) Perfect hashing (клип)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
-
- - [ ] Онлайн курсовe:
-
- - [ ] [Core Hash Tables (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- - [ ] [Data Structures (клип)](https://www.coursera.org/learn/data-structures/home/week/4)
- - [ ] [Phone Book Problem (клип)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- - [ ] Дистрибутирани хеш таблици:
- - [Instant Uploads And Storage Optimization In Dropbox (клип)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
- - [Distributed Hash Tables (клип)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
-
- - [ ] Имплементирайте с масив, ползвайки linear probing
- - hash(k, m) - m е размера на хеш таблицата
- - add(key, value) - ако ключа съществува актуализирайте стойността
- - exists(key)
- - get(key)
- - remove(key)
+- ### Хеш таблици
+ - [ ] Клипове:
+ - [ ] [Hashing with Chaining (клип)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Table Doubling, Karp-Rabin (клип)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Open Addressing, Cryptographic Hashing (клип)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: The Mighty Dictionary (клип)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (клип)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (клип)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(За напреднали) Perfect hashing (клип)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
+ - [ ] Онлайн курсовe:
+ - [ ] [Core Hash Tables (клип)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Data Structures (клип)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Phone Book Problem (клип)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] Дистрибутирани хеш таблици:
+ - [Instant Uploads And Storage Optimization In Dropbox (клип)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Distributed Hash Tables (клип)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+ - [ ] Имплементирайте с масив, ползвайки linear probing
+ - hash(k, m) - m е размера на хеш таблицата
+ - add(key, value) - ако ключа съществува актуализирайте стойността
+ - exists(key)
+ - get(key)
+ - remove(key)
## Повече знания
-- ### Двоично търсене
- - [ ] [Binary Search (клип)](https://www.youtube.com/watch?v=D5SrAga1pno)
- - [ ] [Binary Search (клип)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- - [ ] [детайли](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
- - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- - [ ] Имплементирайте:
- - двоично търсене (на сортиран масив от integers)
- - двоично търсене чрез рекурсия
-- ### Побитови операции
- - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - трябва да знаете доста от степените на 2 от (2^1 до 2^16 и 2^32)
- - [ ] Бъдете сигурни, че разбирате добре битовата манипулация: &, |, ^, ~, >>, <<
- - [ ] [думи]()
- - [ ] Добро въведение:
- [Bit Manipulation (клип)](https://www.youtube.com/watch?v=7jkIUgLC29I)
- - [ ] [C Programming Tutorial 2-10: Bitwise Operators (клип)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
- - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
- - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
- - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
- - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
- - [ ] [Bit Hacks (клип)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
- - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
- - [ ] 2s and 1s complement
- - [Binary: Plusses & Minuses (Why We Use Two's Complement) (клип)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
- - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
- - [ ] Преброяване на набор от битове
- - [4 ways to count bits in a byte (клип)](https://youtu.be/Hzuzo9NJrlc)
- - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- - [ ] Размяна на стойности:
- - [Swap](https://bits.stephan-brumme.com/swap.html)
- - [ ] Абсолютна стойност:
- - [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
+- ### Двоично търсене
+ - [ ] [Binary Search (клип)](https://www.youtube.com/watch?v=D5SrAga1pno)
+ - [ ] [Binary Search (клип)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] [детайли](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
+ - [ ] Имплементирайте:
+ - двоично търсене (на сортиран масив от integers)
+ - двоично търсене чрез рекурсия
+- ### Побитови операции
+ - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - трябва да знаете доста от степените на 2 от (2^1 до 2^16 и 2^32)
+ - [ ] Бъдете сигурни, че разбирате добре битовата манипулация: &, |, ^, ~, >>, <<
+ - [ ] [думи]()
+ - [ ] Добро въведение: [Bit Manipulation (клип)](https://www.youtube.com/watch?v=7jkIUgLC29I)
+ - [ ] [C Programming Tutorial 2-10: Bitwise Operators (клип)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
+ - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
+ - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
+ - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
+ - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
+ - [ ] [Bit Hacks (клип)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
+ - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
+ - [ ] 2s and 1s complement
+ - [Binary: Plusses & Minuses (Why We Use Two's Complement) (клип)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
+ - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
+ - [ ] Преброяване на набор от битове
+ - [4 ways to count bits in a byte (клип)](https://youtu.be/Hzuzo9NJrlc)
+ - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
+ - [ ] Размяна на стойности:
+ - [Swap](https://bits.stephan-brumme.com/swap.html)
+ - [ ] Абсолютна стойност:
+ - [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
## Дървета
From cbef74e03eb0da5680298cd8fa8b54841390ceb1 Mon Sep 17 00:00:00 2001
From: Abdullah Afzal
Date: Mon, 20 Feb 2023 02:57:13 +0500
Subject: [PATCH 067/173] Complete Urdu Translation
---
translations/README-ur.md | 1405 ++++++++++++++++++-------------------
1 file changed, 676 insertions(+), 729 deletions(-)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 950a5dce82..0e71a77a0c 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -13,13 +13,21 @@
ترجمہ:
-
+
- [中文版本](translations/README-cn.md)
- [Tiếng Việt - Vietnamese](translations/README-vi.md)
- [Español](translations/README-es.md)
- [Português Brasileiro](translations/README-ptbr.md)
- [Polish](translations/README-pl.md)
-- [Urdu](translations/README-ur.md)
+- [繁體中文](translations/README-tw.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Russian](translations/README-ru.md)
+- [German](translations/README-de.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Uzbek](translations/README-uz.md)
+- [Bulgarian](translations/README-bg.md)
+- [বাংলা - Bangla](translations/README-bn.md)
@@ -27,19 +35,18 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Japanese (日本語)](https://github.com/jwasham/coding-interview-university/issues/257)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+
@@ -57,40 +64,51 @@

-یہ **نئے سافٹ ویئر انجینئرز** یا سافٹ ویئر/ویب ڈویلپمنٹ سے سافٹ ویئر انجینئرنگ میں تبدیل ہونے والوں کے لیے ہے (جہاں کمپیوٹر سائنس کا علم درکار ہے)۔ اگر آپ کے پاس کئی سالوں کا تجربہ ہے اور آپ سافٹ ویئر انجینئرنگ کے کئی سالوں کے تجربے کا دعویٰ کر رہے ہیں تو ایک مشکل انٹرویو کی توقع کریں۔
+**شرط:**
+* کوڈنگ کے ساتھ تھوڑا سا تجربہ (متغیرات، لوپس، فنکشنز وغیرہ)
+* صبر
+* وقت
-اگر آپ کے پاس سافٹ ویئر/ویب ڈویلپمنٹ کا کئی سال کا تجربہ ہے، تو نوٹ کریں کہ بڑی سافٹ ویئر کمپنیاں جیسے گوگل، ایمیزون، فیس بک اور مائیکروسافٹ سافٹ ویئر انجینئرنگ کو سافٹ ویئر/ویب ڈویلپمنٹ سے مختلف سمجھتے ہیں، اور انہیں کمپیوٹر سائنس کے علم کی ضرورت ہوتی ہے۔
+نوٹ کریں کہ یہ **سافٹ ویئر انجینئرنگ** کے لیے مطالعہ کا منصوبہ ہے، ویب ڈویلپمنٹ کے لیے نہیں۔ بڑی سافٹ ویئر کمپنیاں جیسے گوگل، ایمیزون،
+فیس بک اور مائیکروسافٹ سافٹ ویئر انجینئرنگ کو ویب ڈویلپمنٹ سے مختلف سمجھتے ہیں۔ مثال کے طور پر، ایمیزون کے پاس فرنٹ اینڈ انجینئرز (FEE) اور سافٹ ویئر ڈویلپمنٹ انجینئرز (SDE)ہیں۔ یہ 2 الگ الگ کردارہیں اوران کےلیے الگ الگ انٹرویوز ہیں۔ کیونکہ ہر ایک کی اپنی ضروریات ہیں۔ ان کمپنیوں کو سافٹ ویئر ڈویلپمنٹ / انجینئرنگ کےلے کمپیوٹر سائنس کا علم درکار ہوتا ہے۔
-اگر آپ ریلائیبلٹی انجینئر یا آپریشنز انجینئر بننا چاہتے ہیں تو اختیاری فہرست (نیٹ ورکنگ، سیکیورٹی) سے مزید مطالعہ کریں۔
+یونیورسٹی کے کمپیوٹر سائنس پروگرام میں سیکھنے کے لیے بہت کچھ ہے، لیکن انٹرویو کے لیے صرف 75% جاننا ہی کافی ہے، اس لیے میں یہاں صرف اتنا ہی احاطہ کرتا ہوں۔
+مکمل خود سیکھے جانے والے سی-ایس پروگرام کے لیے، میرے اسٹڈی پلان کے وسائل کامران احمد کے کمپیوٹر سائنس روڈ میپ میں شامل کیے گئے ہیں: https://roadmap.sh/computer-science
---
## مواد کی فہرست
-- [یہ کیا ہے؟](#what-is-it)
-- [اسے کیوں استعمال کریں؟](#why-use-it)
-- [اسے کیسے استعمال کریں](#how-to-use-it)
-- [اپنے آپ کو کم نہ سمجھیں](#dont-feel-you-arent-smart-enough)
-- [ویڈیو مواد کے بارے میں](#about-video-resources)
-- [انٹرویو کا عمل اور عام انٹرویو کی تیاری](#interview-process--general-interview-prep)
-- [انٹرویو کے لیے ایک زبان کا انتخاب کریں۔](#pick-one-language-for-the-interview)
-- [کتابوں کی فہرست](#book-list)
-- [شروع کرنے سے پہلے](#before-you-get-started)
-- [جو آپ نہیں سیکھیں گے۔](#what-you-wont-see-covered)
-- [پہلے سے ضروری علم](#prerequisite-knowledge)
-- [روزانہ کی منصوبہ بندی](#the-daily-plan)
-- [الگورتھمک پیچیدگی / بگ-او / اسیمپٹوٹک تجزیہ(Algorithmic complexity / Big-O / Asymptotic analysis)](#algorithmic-complexity--big-o--asymptotic-analysis)
-- [ڈیٹا سٹرکچرز(Data Structures)](#data-structures)
+### مطالعہ کا منصوبہ
+
+- [یہ کیا ہے؟](#یہ-کیا-ہے)
+- [اسے کیوں استعمال کریں؟](#اسے-کیوں-استعمال-کریں)
+- [اسے کیسے استعمال کریں](#اسے-کیسے-استعمال-کریں)
+- [اپنے آپ کو کم نہ سمجھیں](#اپنے-آپ-کو-کم-مت-سمجھو)
+- [ویڈیو مواد کے بارے میں](#ویڈیو-وسائل-کے-بارے-میں-ایک-نوٹ)
+- [انٹرویو کے لیے ایک پروگرامنگ زبان کا انتخاب کریں۔](#ایک-پروگرامنگ-زبان-کا-انتخاب)
+- [ڈیٹا سٹرکچرز اور الگورتھم کے لیے کتابیں](#ڈیٹا-سٹرکچرز-اور-الگورتھم-کے-لیے-کتابیں)
+- [انٹرویو کی تیاری کی کتابیں](#انٹرویو-کی-تیاری-کی-کتابیں)
+- [میری غلطیاں مت کرنا](#میری-غلطیاں-مت-کرنا)
+- [جو آپ نہیں سیکھیں گے۔](#جو-آپ-نہیں-سیکھیں-گے)
+- [روزانہ کی منصوبہ بندی](#روزانہ-کا-منصوبہ)
+- [کوڈنگ سوال کی مشق](#کوڈنگ-سوال-کی-مشق)
+- [کوڈنگ چیلنجز](#کوڈنگ-کے-سوالاتمسائل)
+
+### مطالعہ کے موضوعات
+
+- [الگورتھمک پیچیدگی / بگ-او / اسیمپٹوٹک تجزیہ(Algorithmic complexity / Big-O / Asymptotic analysis)](#الگورتھمک-پیچیدگی--بگ-او--اسیمپٹوٹک-تجزیہ)
+- [ڈیٹا سٹرکچرز(Data Structures)](#ڈیٹا-سٹرکچرز)
- [آرے (Arrays)](#arrays)
- [لنکڈلسٹ (Linked Lists)](#linked-lists)
- [سٹیک (Stack)](#stack)
- [کیو (Queue)](#queue)
- [ہیش ٹیبل (Hash table)](#hash-table)
-- [مزید معلومات](#more-knowledge)
+- [مزید معلومات](#مزید-معلومات)
- [بینری سرچ (Binary search)](#binary-search)
- [بٹ وائزاپریشنز (Bitwise operations)](#bitwise-operations)
- [ٹریز (Trees)](#trees)
- - [ٹریز - نوٹس اور پس منظر](#trees---notes--background)
+ - [ٹریز - تعارف](#trees---intro)
- [بینری سرچ ٹریز (Binary search trees: BSTs)](#binary-search-trees-bsts)
- [ہیپ / پریاٹری کیو / بینری ہیپ (Heap / Priority Queue / Binary Heap)](#heap--priority-queue--binary-heap)
- بیلنسڈ سرچ ٹریز - عمومی جائزہ (balanced search trees - general concept, not details)
@@ -107,38 +125,39 @@
- اڈجیسنسی میٹرکس (adjacency matrix)
- اڈجیسنسی لسٹ (adjacency list)
- ٹریورسل (traversals: BFS, DFS)
-- [اس سے بھی زیادہ معلومات](#even-more-knowledge)
+- [اس سے بھی زیادہ معلومات](#اس-سے-بھی-زیادہ-معلومات)
- [رکرین / تکرار (Recursion)](#recursion)
- [ڈینیمک پروگرامنگ](#dynamic-programming)
- - [ابجیکٹ پروگرامنگ](#object-oriented-programming)
- [ڈیزائن پیٹرن](#design-patterns)
- [امتزاج (n منتخب k) اور امکان](#combinatorics-n-choose-k--probability)
- [تخمینہ الگورتھم ،NPاورNP-مکمل (NP, NP-Complete and Approximation Algorithms)](#np-np-complete-and-approximation-algorithms)
+ - [How computers process a program](#how-computers-process-a-program)
- [کیچز](#caches)
- [پروسسزاور تھریڈز](#processes-and-threads)
- [ٹیسٹنگ](#testing)
- - [شیڈولنگ](#scheduling)
- [سٹرنگ تلاش کرنا اور تبدیل کرنا](#string-searching--manipulations)
- [ٹرایز (Tries)](#tries)
- [اعشاریہ کے ساتھ نمبر](#floating-point-numbers)
- [یونیکوڈ](#unicode)
- [اینڈیاننس](#endianness)
- [نیٹ ورکنگ](#networking)
-- [سسٹم ڈیزائن، اسکیل ایبلٹی، ڈیٹا ہینڈلنگ](#system-design-scalability-data-handling) (اگر آپ کو 4 سال سے زیادہ کا تجربہ ہے۔)
-- [حتمی جائزہ](#final-review)
-- [کوڈنگ سوال کی مشق](#coding-question-practice)
-- [کوڈنگ کی مشقیں/چیلنجز](#coding-exerciseschallenges)
-- [ایک بار جب آپ انٹرویو کے قریب پہنچ جائیں۔](#once-youre-closer-to-the-interview)
-- [آپ کا رزیومے](#your-resume)
-- [اپنے انٹرویو لینے والے کی طرح سوچیں۔](#be-thinking-of-for-when-the-interview-comes)
-- [انٹرویو لینے والے کے لیے سوالات](#have-questions-for-the-interviewer)
-- [ایک بار جب آپ کو نوکری مل جائے گی۔](#once-youve-got-the-job)
+- [حتمی جائزہ](#حتمی-جائزہ)
+
+### ملازمت حاصل کرنا
+
+- [اپنا ریزومےاپ ڈیٹ کریں](#اپنے-ریزیومے-کو-اپ-ڈیٹ-کریں)
+- [نوکری تلاش کریں](#find-a-job)
+- [انٹرویو کا عمل اور عام انٹرویو کی تیاری](#انٹرویو-کا-عمل-اور-عام-انٹرویو-کی-تیاری)
+- [اپنے انٹرویو لینے والے کی طرح سوچیں۔](#اپنے-انٹرویو-لینے-والے-کی-طرح-سوچیں)
+- [انٹرویو لینے والے کے لیے سوالات](#انٹرویو-لینے-والے-کے-لیے-سوالات)
+- [ایک بار جب آپ کو نوکری مل جائے گی۔](#ایک-بار-جب-آپ-کو-نوکری-مل-جائے-گی)
---------------- ذیل کی چیزیں اختیاری ہیں ----------------
-## اضافی مواد
+## اختیاری اضافی عنوانات اور مواد
- [اضافی کتابیں](#additional-books)
+- [سسٹم ڈیزائن، اسکیل ایبلٹی، ڈیٹا ہینڈلنگ](#system-design-scalability-data-handling) (اگر آپ کو 4 سال سے زیادہ کا تجربہ ہے۔)
- [اضافی معلومات](#additional-learning)
- [کمپائلر](#compilers)
- [ایماکس اور vi(m)](#emacs-and-vim)
@@ -176,7 +195,6 @@
- [لینیرپروگرامنگ](#linear-programming-videos)
- [جیومیٹری، کنویکس ہل](#geometry-convex-hull-videos)
- [مجرد ریاضی](#discrete-math)
- - [مشین لرننگ](#machine-learning)
- [کچھ مضامین پر اضافی تفصیل](#additional-detail-on-some-subjects)
- [ویڈیو سیریز](#video-series)
- [کمپیوٹر سائنس کورسز](#computer-science-courses)
@@ -184,327 +202,377 @@
---
-## Why use it?
+## اسے کیوں استعمال کریں؟
-When I started this project, I didn't know a stack from a heap, didn't know Big-O anything, anything about trees, or how to
-traverse a graph. If I had to code a sorting algorithm, I can tell ya it wouldn't have been very good.
-Every data structure I've ever used was built into the language, and I didn't know how they worked
-under the hood at all. I've never had to manage memory unless a process I was running would give an "out of
-memory" error, and then I'd have to find a workaround. I've used a few multidimensional arrays in my life and
-thousands of associative arrays, but I've never created data structures from scratch.
+اگر آپ کسی بڑی کمپنی میں سافٹ ویئر انجینئر کے طور پر کام کرنا چاہتے ہیں تو یہ وہ چیزیں ہیں جو آپ کو جاننا ہوں گی۔
-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.
+اگر آپ میری طرح کمپیوٹر سائنس میں ڈگری حاصل کرنے سے محروم رہ گئے تو اس سے آپ کی زندگی کے چار سال بچ جائیں گے۔
-## How to use it
+جب میں نے یہ پروجیکٹ شروع کیا تھا، مجھےہیپ ، بگ-O یا ٹریز جیسا کچھ معلوم نہیں تھا،نہ ہی یہ معلوم تھا کہ گراف کے ساتھ کام کیسے کرتےہیں. اگر مجھے سورٹنگ الگورتھم کو کوڈ کرنا ہوتا تو میں آپ کو بتا سکتا ہوں کہ یہ میے لیے بہت مشکل کام تھا۔
+ہر ڈیٹا سٹرکچر جو میں نے کبھی استعمال کیا تھا مجھے نہیں معلوم تھا کہ وہ کیسے کام کرتاہے۔ مجھے کبھی بھی میموری کو سنبھالنے کی ضرورت نہیں تھی جب تک کہ میں جس پروسس کو چلا رہا ہوں اسے "میموری آؤٹ" کا ایرر نہیں ملتا تھا۔ میں نے اپنی زندگی میں چند کثیر جہتی اریزاورہزاروں ایسوسی ایٹیو ارےکا استعمال کیا، لیکن میں نے کبھی بھی شروع سے ڈیٹا سٹرکچرز نہیں بنائے۔
-Everything below is an outline, and you should tackle the items in order from top to bottom.
+یہ ایک طویل منصوبہ ہے۔ اس میں آپ کو مہینے لگ سکتے ہیں۔ اگر آپ پہلے ہی اس میں سے بہت کچھ سے واقف ہیں تو اس میں آپ کو بہت کم وقت لگے گا۔
-I'm using Github's special markdown flavor, including tasks lists to check progress.
+## اسے کیسے استعمال کریں
-**Create a new branch so you can check items like this, just put an x in the brackets: [x]**
+نیچے دی گئی ہر چیز ایک خاکہ ہے، اور آپ کو اشیاء کو اوپر سے نیچے تک ترتیب سے نمٹنا چاہیے۔
+میں GitHub کا خصوصی مارک ڈاؤن ورژن استعمال کر رہا ہوں، جس میں پیش رفت کو ٹریک کرنے کے لیے ٹاسک کی فہرست شامل ہے۔
+ - [GitHub-flavored markdown کے بارے میں مزید](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
- Fork a branch and follow the commands below
+### اگر آپ گٹ استعمال نہیں کرنا چاہتے
-`git checkout -b progress`
+اس صفحہ پر، اوپر کے قریب کوڈ(Code) بٹن پر کلک کریں، پھر "زپ ڈاؤن لوڈ کریں(Download Zip)" پر کلک کریں۔ فائل کو ان زپ کریں اور آپ ٹیکسٹ فائلوں کے ساتھ کام کر سکتے ہیں۔
-`git remote add jwasham https://github.com/jwasham/coding-interview-university`
+اگر آپ ایک کوڈ ایڈیٹر میں کھول رہے ہیں جو مارک ڈاؤن کو سمجھتا ہے، تو آپ کو ہر چیز اچھی طرح سے فارمیٹ کی ہوئی نظر آئے گی۔
-`git fetch --all`
+
- Mark all boxes with X after you completed your changes
+### اگر آپ گٹ کے ساتھ کام کر سکتے ہیں
-`git add .`
+ایک نئی برانچ بنائیں تاکہ آپ اس طرح کے آئٹمز کو چیک کر سکیں، صرف بریکٹ میں ایک x لگائیں: [x]
-`git commit -m "Marked x"`
+ ۱. ***گٹ ہب (GitHub) ریپو*** `https://github.com/jwasham/coding-interview-university` کوفورک بٹن پر کلک کرکے فورک کریں۔
-`git rebase jwasham/master`
+ 
-`git push --force`
+۲. اپنی لوکل ریپو پر کلون کریں:
-[More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ cd coding-interview-university
+ git checkout -b progress
+ git remote add jwasham https://github.com/jwasham/coding-interview-university
+ git fetch --all
+ ```
+۳. اپنی تبدیلیاں مکمل کرنے کے بعد تمام خانوں کو X کے ساتھ نشان زد کریں:
-## Don't feel you aren't smart enough
+ ```
+ git add .
+ git commit -m "Marked x"
+ git rebase jwasham/main
+ git push --set-upstream origin progress
+ git push --force
+ ```
-- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
-- [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)
+## اپنے آپ کو کم مت سمجھو
-## About Video Resources
+- کامیاب سافٹ ویئر انجینئرز ہوشیار ہوتے ہیں، لیکن بہت سے لوگوں کو یہ عدم تحفظ ہوتا ہے کہ وہ اتنے ہوشیار نہیں ہیں۔
+- مندرجہ ذیل ویڈیوز آپ کو اس عدم تحفظ پر قابو پانے میں مدد کر سکتی ہیں:
+ - [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)
-Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
-Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
+## ویڈیو وسائل کے بارے میں ایک نوٹ
- I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.
- I like using university lectures.
+کچھ ویڈیوز صرف Coursera یا EdX کلاس میں داخلہ لے کر دستیاب ہیں۔ یہ MOOCs کہلاتے ہیں۔
+بعض اوقات کلاسز سیشن میں نہیں ہوتیں اس لیے آپ کو چند ماہ انتظار کرنا پڑتا ہے، اس لیے آپ کو رسائی نہیں ہوتی۔
+آن لائن کورس کے وسائل کو مفت اور ہمیشہ دستیاب عوامی ذرائع سے تبدیل کرنا بہت اچھا ہوگا، جیسے یوٹیوب ویڈیوز (ترجیحی طور پر یونیورسٹی کے لیکچرز)، تاکہ آپ لوگ کسی بھی وقت ان کا مطالعہ کر سکیں، بجاے کہ صرف اس وقت کے جب ایک مخصوص آن لائن کورس سیشن میں ہو۔
-## Interview Process & General Interview Prep
+## ایک پروگرامنگ زبان کا انتخاب
-- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
-- [ ] How to Get a Job at the Big 4:
- - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-- [ ] Cracking The Coding Interview Set 1:
- - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] Cracking the Facebook Coding Interview
- - [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
- - [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
-- [ ] Prep Course:
- - [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
- - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- - [ ] [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
- - [ ] [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
- - A free Python centric data structures and algorithms course.
- - [ ] [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
- - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
+آپ جو کوڈنگ انٹرویوز کرتے ہیں اس کے لیے آپ کو پروگرامنگ لینگویج کا انتخاب کرنا ہوگا،
+لیکن آپ کو ایک ایسی زبان بھی تلاش کرنے کی ضرورت ہوگی جسے آپ کمپیوٹر سائنس کے تصورات کا مطالعہ کرنے کے لیے استعمال کر سکیں۔
-## Pick One Language for the Interview
+ترجیحی طور پر زبان ایک ہی ہونی چاہیے، تانکہ آپ کو صرف ایک میں مہارت حاصل کرنے کی ضرورت ہو۔
-You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
+### اس اسٹڈی پلان کے لیے
-- C++
-- Java
-- Python
+جب میں نے مطالعہ کا منصوبہ بنایا تو میں نے اس کے لیے 2 زبانیں استعمال کیں: C اور Python
-You could also use these, but read around first. There may be caveats:
+* سی (C): نچلی سطح کی زبان۔ آپ کو پوائنٹرز اور میموری ایلوکیشن/ڈی ایلوکیشن سے نمٹنے کی اجازت دیتا ہے، تاکہ آپ اپنی خون میں ڈیٹا سٹرکچر اور الگورتھم کو محسوس کریں۔ پائتھون یا جاوا جیسی اعلیٰ سطح کی زبانوں میں، یہ آپ سے پوشیدہ ہیں۔ روزمرہ کے کام میں، یہ بہت اچھا ہے، لیکن جب آپ یہ سیکھ رہے ہیں کہ یہ نچلے درجے کے ڈیٹا سٹرکچر کیسے بنائے جاتے ہیں، تو جڑ کے قریب محسوس کرنا بہت اچھا ہے۔
+ - سی ہر جگہ ہے۔ جب آپ مطالعہ کر رہے ہوں گے تو آپ کو کتابوں، لیکچرز، ویڈیوز، *ہر جگہ* میں مثالیں نظر آئیں گی۔
+ - [سی پروگرامنگ لینگویج، دوسرا ایڈیشن (The C Programming Language, 2nd Edition)](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - یہ ایک مختصر کتاب ہے، لیکن یہ آپ کو C زبان پر بہت اچھا کنٹرول دے گی اور اگر آپ اس پر تھوڑی سی مشق کریں گے تو آپ جلد مہارت حاصل کر لیں گے۔ C کو سمجھنا آپ کو یہ سمجھنے میں مدد کرتا ہے کہ پروگرام اور میموری کیسے کام کرتے ہیں۔
+ - آپ کو کتاب کی بہت گہرائی میں جانے کی ضرورت نہیں ہے (نہ ہی اسے ختم کرنے کی)۔ بس اتنی مہارت حاصل کر لیں کے آپ کو C میں پڑھنے اور لکھنے میں آسانی ہو۔
+ - [کتاب میں موجود سوالات کے جوابات](https://github.com/lekkas/c-algorithms)
+* پائتھون(Python): جدید اور اظہار کرنے میں بہت آسان، میں نے یہ سیکھی کیونکہ یہ بہت مفید ہے اور مجھے انٹرویو میں کم کوڈ لکھنے میں مدد دیتی ہے۔
-- JavaScript
-- Ruby
+یہ میری ترجیح ہے۔ تم وہی کرو جو تمہیں پسند ہو۔
-Here is an article I wrote about choosing a language for the interview: [Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)
+ہو سکتا ہے آپ کو اس کی ضرورت نہ ہو، لیکن نئی زبان سیکھنے کے لیے یہاں کچھ سائٹیں ہیں:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
-You need to be very comfortable in the language and be knowledgeable.
+### آپ کے کوڈنگ انٹرویو کے لیے
-Read more about choices:
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
+آپ انٹرویو کا کوڈنگ حصہ کرنے کے لیے ایسی زبان استعمال کر سکتے ہیں جس میں آپ کو آسانی ہو، لیکن بڑی کمپنیوں کے لیے یہ بہترین انتخاب ہیں:
-[See language resources here](programming-language-resources.md)
+- سی++ (C++)
+- جاوا (Java)
+- پائتھون (Python)
-You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
+آپ مندرجہ ذیل کو بھی استعمال کرسکتے ہیں لیکن پہلے پڑھ سکتے ہیں۔ انتباہات ہو سکتے ہیں:
-## Book List
+- جاوا اسکرپٹ (JavaScript)
+- روبی (Ruby)
-This is a shorter list than what I used. This is abbreviated to save you time.
+یہاں ایک مضمون ہے جو میں نے انٹرویو کے لیے زبان کے انتخاب کے بارے میں لکھا تھا:
+[کوڈنگ انٹرویو کے لیے ایک زبان چنیں](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+یہ اصل مضمون ہے جس پر میری پوسٹ مبنی تھی: [انٹرویوز کے لیے پروگرامنگ لینگویج کا انتخاب](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
-### Interview Prep
+آپ کو زبان میں بہت مہارت اور علم رکھنے کی ضرورت ہے۔
-- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - answers in C++ and Java
- - this is a good warm-up for Cracking the Coding Interview
- - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read)
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - answers in Java
+انتخاب کے بارے میں مزید پڑھیں:
+- [اپنے کوڈنگ انٹرویو کے لیے صحیح زبان کا انتخاب کریں](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-### If you have tons of extra time:
+[زبان سے متعلق وسائل یہاں دیکھیں](programming-language-resources.md)
-Choose one:
+## ڈیٹا سٹرکچرز اور الگورتھم کے لیے کتابیں
-- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [ ] [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
-- [ ] Elements of Programming Interviews (Java version)
- - [book](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)
+یہ کتاب کمپیوٹر سائنس کے لیے آپ کی بنیاد بنائے گی۔
-### Language Specific
+صرف ایک کا انتخاب کریں، ایسی زبان میں جس میں آپ کو مہارت حاصل ہو۔ آپ کو بہت زیادہ پڑھنا اور کوڈنگ کرنا ہوگی۔
-**You need to choose a language for the interview (see above).**
+### سی (C)
-Here are my recommendations by language. I don't have resources for all languages. I welcome additions.
+- [سی میں الگورتھم، حصے 1-5 (بنڈل)، تیسرا ایڈیشن](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - بنیادی باتیں، ڈیٹا سٹرکچر، سارٹنگ، تلاش کرنا، اور گراف الگورتھم
-If you read through one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems.
-**You can skip all the video lectures in this project**, unless you'd like a review.
+### پا ئیتھون (Python)
-[Additional language-specific resources here.](programming-language-resources.md)
+- [پا ئیتھون میں ڈیٹا کے سٹرکچر اور الگورتھم](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - مصنف Goodrich, Tamassia, Goldwasser
+ - مجھے یہ کتاب پسند ہے۔ اس نے ہر چیز کا احاطہ کیا ہے۔
+ - پائتھون کے کوڈ
+ - میری چمکتی ہوئی کتاب کی رپورٹ: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-### C++
+### جاوا (Java)
-I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome.
+تمھارا انتخاب:
-- [ ] [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/)
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - مفت کورسیرا کورس جو کتاب کا احاطہ کرتا ہے (مصنفین کے ذریعہ پڑھایا گیا):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
-If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource.
+### سی++ (++C)
-### Java
+تمھارا انتخاب::
-- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - videos with book content (and Sedgewick!) on coursera:
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [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/)
-OR:
+## انٹرویو کی تیاری کی کتابیں
-- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- - by Goodrich, Tamassia, Goldwasser
- - used as optional text for CS intro course at UC Berkeley
- - see my book report on the Python version below. This book covers the same topics.
+آپ کو ان میں سے بہت زیادہ خریدنے کی ضرورت نہیں ہے۔ ایمانداری سے "کریکنگ دی کوڈنگ انٹرویو(Cracking the Coding Interview)" شاید کافی ہے،
+لیکن میں نے خود کو مزید مشق دینے کے لیے بہت کچھ خریدا۔ لیکن میں ہمیشہ بہت زیادہ کرتا ہوں۔
-### Python
+میں نے یہ دونوں خریدے ہیں۔ انہوں نے مجھے کافی مشق دی۔
-- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - by Goodrich, Tamassia, Goldwasser
- - I loved this book. It covered everything and more.
- - Pythonic code
- - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+- [پروگرامنگ انٹرویوز کا انکشاف: انٹرویو کے ذریعے اپنے راستے کی کوڈنگ، 4th ایڈیشن](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - سی++ (++C) اور جاوا (Java) میں جوابات
+ - کوڈنگ انٹرویو کو کریک کرنے کے لیے یہ ایک اچھی شروعات ہے۔
+ - زیادہ مشکل نہیں۔ زیادہ تر مسائل اس سے آسان ہوسکتے ہیں جو آپ انٹرویو میں دیکھیں گے (اس سے جو میں نے پڑھا ہے)
+- [کریکنگ دی کوڈنگ انٹرویو، چھٹا ایڈیشن](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - جاوا میں جوابات
+### اگر آپ کے پاس بہت زیادہ وقت ہے:
-## Before you Get Started
+ایک کا انتخاب کرو:
-This list grew over many months, and yes, it kind of got out of hand.
+- [پروگرامنگ انٹرویوز کے عناصر (C++ ورژن)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [پا ئیتھون میں پروگرامنگ انٹرویوز کے عناصر](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [پروگرامنگ انٹرویوز کے عناصر (جاوا ورژن)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+ - [ساتھی پروجیکٹ - کتاب میں ہر مسئلے کے لیے ٹیسٹ کیسز](https://github.com/gardncl/elements-of-programming-interviews)
-Here are some mistakes I made so you'll have a better experience.
+## میری غلطیاں مت کرنا
-### 1. You Won't Remember it All
+یہ فہرست کئی مہینوں میں بڑھی، اور ہاں، یہ ہاتھ سے نکل گئی۔
-I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
-through my notes and making flashcards so I could review.
+یہ کچھ غلطیاں ہیں جو میں نے کی تھی۔ تو آپ کو ایک بہتر تجربہ ملے گا۔ اور آپ مہینوں کا وقت بچائیں گے۔
-Read please so you won't make my mistakes:
+### 1. آپ سب یادنہیں رکھ سکیں گے
-[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+میں نے گھنٹوں کی ویڈیوز دیکھی اور کافی نوٹ لیے، اور مہینوں بعد مجھے بہت کچھ یاد نہیں تھا۔ میں نے 3 دن گزارے، اپنے نوٹس پڑھے اور فلیش کارڈز بنائے، تاکہ میں جائزہ لے سکوں۔ مجھے اس سارے علم کی ضرورت نہیں تھی۔
-A course recommended to me (haven't taken it): [Learning how to Learn](https://www.coursera.org/learn/learning-how-to-learn)
+براہ کرم، پڑھیں تاکہ آپ میری غلطی نہ کریں:
-### 2. Use Flashcards
+[کمپیوٹر سائنس کا علم برقرار رکھنا](https://startupnextdoor.com/retaining-computer-science-knowledge/).
-To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
-Each card has different formatting.
+### 2. فلیش کارڈز استعمال کریں
-I made a mobile-first website so I could review on my phone and tablet, wherever I am.
+اس مسئلے کو حل کرنے کے لیے، میں نے ایک چھوٹی سی فلیش کارڈز سائٹ بنائی جہاں میں 2 اقسام کے فلیش کارڈز شامل کر سکتا ہوں: جنرل اور کوڈ۔
+ہر کارڈ کی فارمیٹنگ مختلف ہوتی ہے۔ میں نے ایک موبائل مسابقتی ویب سائٹ بنائی ہے، تاکہ میں اپنے فون یا ٹیبلیٹ پر جہاں بھی ہوں، جائزہ لے سکوں۔
-Make your own for free:
+اپنےلیے مفت میں بنائیں:
-- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
-- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db):
-- [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham-extreme.db):
+- [فلیش کارڈز سائٹ ریپو](https://github.com/jwasham/computer-science-flash-cards)
-Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics. It's way too much for what's required.
+**میں اپنے فلیش کارڈز استعمال کرنے کا مشورہ نہیں دیتا۔** یہ بہت زیادہ ہیں اور ان میں سے زیادہ تر چیزیں ایسی ہیں جن کی آپ کو ضرورت نہیں ہے۔
-**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
-same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
-your brain.
+لیکن اگر آپ میری بات نہیں سننا چاہتے، تو آپ یہاں جائیں:
+- [میرے فلیش کارڈز کا ڈیٹا بیس (1200 کارڈز)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [میرے فلیش کارڈز کا ڈیٹا بیس (انتہائی - 1800 کارڈز)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember.
-It's user-friendly, available on all platforms and has a cloud sync system. It costs $25 on iOS but is free on other platforms.
+ذہن میں رکھیں کہ میں اوور بورڈ گیا اور میرے جو کارڈز ہیں ان میں اسمبلی لینگویج اور پائیتھون کی چھوٹی معلومات سے لے کر مشین لرننگ اور اعدادوشمار تک ہر چیز کا احاطہ کیا گیا ہے۔
+جو کے ضرورت سے بہت زیادہ ہے۔
-My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya))
+**فلیش کارڈز پر نوٹ:** پہلی بار جب آپ پہچانیں گے کہ آپ کو جواب معلوم ہے تو اسے معلوم کے طور پر نشان زد نہ کریں۔ایک ہی کارڈ دیکھیں
+ اور اس کا کئی بار صحیح جواب دیں اس سے پہلے کہ آپ واقعی اسے نشان زدہ کریں۔ تکرار اس علم کو آپ کا دماغ کی مزید گہرائی میں اتار دے گی۔
-### 3. Start doing coding interview questions while you're learning data structures and algorithms,
+میری فلیش کارڈ سائٹ کو استعمال کرنے کا ایک متبادل ہے [Anki](http://ankisrs.net/)، جو مجھے متعدد بار تجویز کیا گیا ہے۔
+یہ آپ کو یاد رکھنے میں مدد کے لیے تکرار کا نظام استعمال کرتا ہے۔ یہ صارف دوست ہے، تمام پلیٹ فارمز پر دستیاب ہے اور اس میں کلاؤڈ سنک سسٹم ہے۔
+ای-اہ-ایس (iOS) پر اس کی قیمت $25 ہے لیکن دوسرے پلیٹ فارمز پر مفت ہے۔
-You need to apply what you're learning to solving problems, or you'll forget. I made this mistake. Once you've learned a topic,
-and feel comfortable with it, like linked lists, open one of the coding interview books and do a couple of questions regarding
-linked lists. Then move on to the next learning topic. Then later, go back and do another linked list problem,
-or recursion problem, or whatever. But keep doing problems while you're learning. You're not being hired for knowledge,
-but how you apply the knowledge. There are several books and sites I recommend.
-See here for more: [Coding Question Practice](#coding-question-practice)
+انکی (Anki)فارمیٹ میں میرا فلیش کارڈ ڈیٹا بیس: https://ankiweb.net/shared/info/25173560 (شکریہ [@xiewenya](https://github.com/xiewenya)).
-### 4. Review, review, review
+کچھ طلباء نے سفید جگہ کے ساتھ فارمیٹنگ کے مسائل کا ذکر کیا ہے جنہیں درج ذیل کام کرکے حل کیا جا سکتا ہے: ڈیک کھولیں، کارڈ میں ترمیم کریں، کارڈز پر کلک کریں، "اسٹائلنگ" ریڈیو بٹن کو منتخب کریں، کارڈ کی کلاس میں ";white-space: pre" ممبر کو شامل کریں۔
-I keep a set of cheat sheets on ASCII, OSI stack, Big-O notations, and more. I study them when I have some spare time.
+### 3. جب آپ سیکھ رہے ہوں تو کوڈنگ انٹرویو کے سوالات کریں
-Take a break from programming problems for a half hour and go through your flashcards.
+یہ بہت اہم ہے.
-### 5. Focus
+جب آپ ڈیٹا سٹرکچر اور الگورتھم سیکھ رہے ہوں تو انٹرویو کے سوالات کو کوڈنگ کرنا شروع کریں۔
-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.
+آپ جو سیکھ رہے ہیں اسے مسائل کو حل کرنے کے لیے لاگو کرنے کی ضرورت ہے، ورنہ آپ بھول جائیں گے۔ میں نے یہ غلطی کی۔
-## What you won't see covered
+ایک بار جب آپ نے کوئی موضوع سیکھ لیا، اور اس میں کسی حد تک مہارت محسوس کریں، مثال کے طور پر، **لنکڈلسٹ**:
+1. ان میں سے ایک کھولیں [کوڈنگ انٹرویو کی کتابیں](#interview-prep-books) (یا مندرجہ ذیل کوڈنگ سوالات ویب سائٹس)
+2. لنکڈلسٹ سے متعلق 2 یا 3 سوالات کریں۔
+3. اگلے موضوع کی طرف بڑھیں۔
+4. بعد میں، واپس جائیں اور لنکڈ لسٹ کے مزید 2 یا 3 سوالات کریں۔
+5. یہ ہر نئے موضوع کے ساتھ کریں جو آپ سیکھتے ہیں۔
-These are prevalent technologies but not part of this study plan:
+**جب آپ یہ سب چیزیں سیکھ رہے ہوں تو سوالات کرتے رہیں، اس کے بعد نہیں۔**
-- SQL
-- Javascript
-- HTML, CSS, and other front-end technologies
+آپ کو علم کی وجہ سے نوکری پر نہیں رکھا جا رہا ہے، بلکہ آپ کو اس لیے رکھا گیا ہے کہ آپ علم کو کیسے استعمال کرتے ہیں۔
-## The Daily Plan
+ذیل میں اس کے لیے بہت سے وسائل موجود ہیں۔ کام جاری رکھیں۔
-Some subjects take one day, and some will take multiple days. Some are just learning with nothing to implement.
+### 4. توجہ
-Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
-- C - using structs and functions that take a struct * and something else as args.
-- C++ - without using built-in types
-- C++ - using built-in types, like STL's std::list for a linked list
-- Python - using built-in types (to keep practicing Python)
-- and write tests to ensure I'm doing it right, sometimes just using simple assert() statements
-- You may do Java or something else, this is just my thing.
+بہت سارے خلفشار ہیں جن میں قیمتی وقت لگ سکتا ہے۔ توجہ اور ارتکاز مشکل ہے۔ کچھ میوزک آن کریں۔
+دھن کے بغیر اور آپ اچھی طرح توجہ مرکوز کر سکیں گے۔
-You don't need all these. You need only [one language for the interview](#pick-one-language-for-the-interview).
+## جو آپ نہیں سیکھیں گے
-Why code in all of these?
-- Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember)
-- Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python or Java))
-- Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)
+یہ مروجہ ٹیکنالوجیز ہیں لیکن اس اسٹڈی پلان کا حصہ نہیں ہیں:
-I may not have time to do all of these for every subject, but I'll try.
+- جاوا اسکرپٹ
+- فرنٹ اینڈ ٹیکنالوجیز اور HTML، CSS
+- ایس کیو ایل (SQL)
-You can see my code here:
+## روزانہ کا منصوبہ
+
+یہ کورس بہت سارے مضامین پر مشتمل ہے۔ ہر ایک میں شاید آپ کو کچھ دن لگیں گے، یا شاید ایک ہفتہ یا اس سے بھی زیادہ۔ یہ آپ کے شیڈول پر منحصر ہے۔
+
+ہر روز، فہرست سے اگلا مضمون لیں، اس موضوع کے بارے میں کچھ ویڈیوز دیکھیں، اور پھر اس ڈیٹا سٹرکچر یا الگورتھم کا، اس زبان میں جو آپ نے اس کورس کے لیے منتخب کی ہے ،کاایک کوڈ لکھیں۔
+
+آپ میرا کوڈ یہاں دیکھ سکتے ہیں:
- [C](https://github.com/jwasham/practice-c)
- [C++](https://github.com/jwasham/practice-cpp)
- [Python](https://github.com/jwasham/practice-python)
-You don't need to memorize the guts of every algorithm.
+آپ کو ہر الگورتھم کو حفظ کرنے کی ضرورت نہیں ہے۔ آپ کو صرف اتنا سمجھنے کی ضرورت ہے کہ آپ اپنا کوڈ لکھ سکیں۔
-Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then test it out on a computer.
+## کوڈنگ سوال کی مشق
-## Prerequisite Knowledge
+ ابھی کیوں؟ میں انٹرویو کے لیے تیار نہیں ہوں۔
-- [ ] **Learn C**
- - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
- - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
- you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- - [answers to questions](https://github.com/lekkas/c-algorithms)
+[توپھر واپس جا کر یہ پڑھیں۔](#3-do-coding-interview-questions-while-youre-learning)
-- [ ] **How computers process a program:**
- - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
- - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
- - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
- - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
- - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
+آپ کو پروگرامنگ کی مشقیں کرنے کی کیوں ضرورت ہے:
+- سوال کی شناخت، اور کہاں صحیح ڈیٹا اسٹرکچر اور الگورتھم فٹ ہوتے ہیں
+- سوال کے تقاضوں کو سمجھنا
+- سوال کے ذریعے اپنے طریقے سے بات کرنا جیسا کہ آپ انٹرویو میں کریں گے
+- کمپیوٹر کے بجائے وائٹ بورڈ یا کاغذ پر کوڈنگ
+- اپنے حل کے لیے وقت اور میموری کی اصلاح کے بارے میں سوچنا (نیچے بگ-او دیکھیں)
+- اپنے جوابات کی جانچ کرنا
+
+یہ انٹرویو میں سوال حل کرنے کے طریقہ کار، اور بات چیت کے طریقے کا ایک بہترین تعارف ہے۔ آپ کو یہ پروگرامنگ انٹرویو کی کتابوں سے بھی ملے گا، لیکن مجھے یہ شاندار معلوم ہوا:
+[الگورتھم ڈیزائن کینوس (Algorithm design canvas)](http://www.hiredintech.com/algorithm-design/)
+
+وائٹ بورڈ یا کاغذ پر کوڈ لکھیں، کمپیوٹر پر نہیں۔ کچھ نمونے کے جوابات کے ساتھ ٹیسٹ کریں۔ پھر اسے ٹائپ کریں اور کمپیوٹر پر اس کی جانچ کریں۔
+
+اگر آپ کے پاس گھر میں وائٹ بورڈ نہیں ہے تو آرٹ اسٹور سے ایک بڑا ڈرائنگ پیڈ لیں۔ آپ صوفے پر بیٹھ کر مشق کر سکتے ہیں۔
+یہ میرا "صوفہ وائٹ بورڈ" ہے۔ میں نے صرف دکھانے کے لیے تصویر میں قلم شامل کیا۔ اگر آپ قلم استعمال کرتے ہیں، تو آپ چاہیں گے کہ آپ اسے مٹابھی سکیں۔
+کیونکہ یہ جلدی گندا ہو جاتا ہے. **میں پنسل اور صافی کا استعمال کرتا ہوں۔**
+
+
+
+**کوڈنگ سوال کی مشق پروگرامنگ کے مسائل کے جوابات کو یاد کرنے کے بارے میں نہیں ہے۔**
+
+## کوڈنگ کے سوالات/مسائل
+
+اپنی اہم کوڈنگ انٹرویو کی کتابوں کو مت بھولنا [یہاں](#interview-prep-books).
+
+سوالات حل کرنا:
+- [حل تلاش کرنے کا طریقہ](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [ٹاپ کوڈر پرابلم اسٹیٹمنٹ کو ڈسیکٹ کرنے کا طریقہ](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+کوڈنگ انٹرویو سوال کی ویڈیوز:
+- [IDeserve (88 ویڈیوز)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 پلے لسٹس)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - سوالات کے حل کے لیے بہترین
+- [Nick White - LeetCode Solutions (187 ویڈیوز)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - حل اور کوڈ کی اچھی وضاحت
+ - آپ مختصر وقت میں کئی دیکھ سکتے ہیں۔
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+
+چیلنج/پریکٹس سائٹس:
+- [لیٹ کوڈ(LeetCode)](https://leetcode.com/)
+ - میری پسندیدہ کوڈنگ سوالات کی سائٹ۔ یہ کم از کم 1-2 مہینوں کے لئے(جن میں آپ تیاری کر رہے ہوں گے) سبسکرپشن کی رقم کے قابل ہے۔
+ - کوڈ واک تھرو کے لیے اوپر نک وائٹ اور فشر کوڈر کی ویڈیوز دیکھیں۔
+- [ہیکر رینک (HackerRank)](https://www.hackerrank.com/)
+- [ٹاپ کوڈر (TopCoder)](https://www.topcoder.com/)
+- [کوڈفورسز(Codeforces)](https://codeforces.com/)
+- [کوڈیلیٹی(Codility)](https://codility.com/programmers/)
+- [گیکس فار گیکس(Geeks for Geeks)](https://practice.geeksforgeeks.org/explore/?page=1)
+- [الگو ایکسپرٹ(AlgoExpert)](https://www.algoexpert.io/product)
+ - گوگل انجینئرز کے ذریعہ تخلیق کیا گیا، یہ آپ کی صلاحیتوں کو نکھارنے کا ایک بہترین ذریعہ بھی ہے۔
+- [پروجیکٹ یولر(Project Euler)](https://projecteuler.net/)
+ - بہت زیادہ ریاضی پر مرکوز ہے، اور انٹرویو کوڈنگ کے لیے واقعی موزوں نہیں ہے۔
+
+## آو شروع کریں
+
+باتیں کافی ہیں، آئیے اب سیکھتے ہیں!
+
+لیکن سیکھتے وقت اوپر سے کوڈنگ سوالات کرنا نہ بھولیں!
-## Algorithmic complexity / Big-O / Asymptotic analysis
+## الگورتھمک پیچیدگی / بگ-او / اسیمپٹوٹک تجزیہ
-- Nothing to implement
-- There are a lot of videos here. Just watch enough until you understand it. You can always come back and review.
-- If some of the lectures are too mathy, you can jump down to the bottom and watch the discrete mathematics videos to get the background knowledge.
+- یہاں کرنے کو کچھ نہیں، آپ صرف ویڈیوز دیکھیں گے اور نوٹ لیں گے! آہا!
+- یہاں بہت ساری ویڈیوز ہیں۔ صرف اس وقت تک دیکھیں جب تک آپ اسے سمجھ سکیں۔ آپ ہمیشہ واپس آ کر نظر ثانی کر سکتے ہیں۔
+- پریشان نہ ہوں اگر آپ اس کے پیچھے کی تمام ریاضی کو نہیں سمجھتے ہیں۔
+- آپ کو صرف یہ سمجھنے کی ضرورت ہے کہ بگ-او کے لحاظ سے الگورتھم کی پیچیدگی کو کیسے ظاہر کیا جائے۔
- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
-- [ ] [Orders of Growth (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/orders-of-growth-6PKkX)
-- [ ] [Asymptotics (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/asymptotics-bXAtM)
+- [ ] [Skiena (video)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
-- [ ] [UC Berkeley Big Omega (video)](https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc)
- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] [Illustrating "Big O" (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/illustrating-big-o-YVqzv)
- [ ] TopCoder (includes recurrence relations and master theorem):
- - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
+ - [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
-## Data Structures
+یہ اس کے بارے میں کافی ہے.
+
+جب آپ "کریکنگ دی کوڈنگ انٹرویو" سے گزرتے ہیں، تو اس پر ایک باب ہوتا ہے، اور آخر میں یہ دیکھنے کے لیے ایک کوئز ہوتا ہے کہ آپ مختلف الگورتھم کی رن ٹائم پیچیدگی کی شناخت کر سکتے ہیں یانہیں۔ یہ ایک زبردست جائزہ اور ٹیسٹ ہے۔
+
+## ڈیٹا سٹرکچرز
- ### Arrays
- - Implement an automatically resizing vector.
- - [ ] Description:
- - [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
+ - [ ] About Arrays:
+ - [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- - [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
+ - [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [ ] Implement a vector (mutable array with automatic resizing):
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
- - [ ] new raw data array with allocated memory
+ - [ ] New raw data array with allocated memory
- can allocate int array under the hood, just not use its features
- start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
- [ ] size() - number of items
@@ -530,21 +598,22 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Linked Lists
- [ ] Description:
- - [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
+ - [ ] [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - this builds the intuition.
+ - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- - not the whole video, just portions about Node struct and memory allocation.
+ - not the whole video, just portions about Node struct and memory allocation
- [ ] Linked List vs Arrays:
- - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays)
- - [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+ - [ ] [Why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- [ ] Gotcha: you need pointer to pointer knowledge:
(for when you pass a pointer to a function that may change the address where that pointer points)
This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
- [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- - [ ] implement (I did with tail pointer & without):
+ - [ ] Implement (I did with tail pointer & without):
- [ ] size() - returns number of data elements in list
- [ ] empty() - bool returns true if empty
- [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
@@ -560,13 +629,13 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] reverse() - reverses the list
- [ ] remove_value(value) - removes the first item in the list with this value
- [ ] Doubly-linked List
- - [Description (video)](https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists)
+ - [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- No need to implement
-- ### Stack
- - [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+- ### Stacks
+ - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] Will not implement. Implementing with array is trivial.
+ - [ ] Will not implement. Implementing with array is trivial
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
@@ -588,44 +657,46 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- dequeue: O(1) (linked list and array)
- empty: O(1) (linked list and array)
-- ### Hash table
+- ### Hash Table
- [ ] Videos:
- [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
- [ ] Online Courses:
- - [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
+ - [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/4)
- - [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
+ - [ ] [Phone Book Problem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- [ ] distributed hash tables:
- - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- - [Distributed Hash Tables (video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
+ - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
- - [ ] implement with array using linear probing
+ - [ ] Implement with array using linear probing
- hash(k, m) - m is size of hash table
- add(key, value) - if key already exists, update value
- exists(key)
- get(key)
- remove(key)
-## More Knowledge
+## مزید معلومات
- ### Binary search
- [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- - [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
+ - [ ] [detail](https://www.topcoder.com/thrive/articles/Binary%20Search)
+ - [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
- [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- binary search (on sorted array of integers)
- binary search using recursion
- ### Bitwise operations
- - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
+ - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- [ ] Good intro:
@@ -636,27 +707,26 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
- [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
+ - [ ] [Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
+ - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
- [ ] 2s and 1s complement
- [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
- [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
- - [ ] count set bits
+ - [ ] Count set bits
- [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
- [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- - [ ] swap values:
+ - [ ] Swap values:
- [Swap](https://bits.stephan-brumme.com/swap.html)
- - [ ] absolute value:
+ - [ ] Absolute value:
- [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
## Trees
-- ### Trees - Notes & Background
- - [ ] [Series: Core Trees (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
- - [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- - basic tree construction
- - traversal
- - manipulation algorithms
+- ### Trees - Intro
+ - [ ] [Intro to Trees (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - [ ] [Tree Traversal (video)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
- [ ] [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- BFS notes:
- level order (BFS, using queue)
@@ -675,11 +745,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Series (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- - starts with symbol table and goes through BST applications
+ - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT (video)](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - [ ] [MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
- C/C++:
- [ ] [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- [ ] [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
@@ -707,16 +775,15 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- ### Heap / Priority Queue / Binary Heap
- visualized as a tree, but is usually linear in storage (array, linked list)
- [ ] [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
- - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- - [ ] [Naive Implementations (video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+ - [ ] [Introduction (video)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
- [ ] [Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- [ ] [Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- [ ] [Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- [ ] [Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- [ ] [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- [ ] [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
+ - [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] [Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
@@ -729,17 +796,16 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] is_empty() - returns true if heap contains no elements
- [ ] extract_max - returns the max item, removing it
- [ ] sift_down - needed for extract_max
- - [ ] remove(i) - removes item at index x
+ - [ ] remove(x) - removes item at index x
- [ ] 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
- - note: using a min heap instead would save operations, but double the space needed (cannot do in-place).
+ - [ ] heap_sort() - take an unsorted array and turn it into a sorted array in-place using a max heap or min heap
## Sorting
- [ ] Notes:
- Implement sorts & know best case/worst case, average complexity of each:
- no bubble sort - it's terrible - O(n^2), except when n <= 16
- - [ ] stability in sorting algorithms ("Is Quicksort stable?")
+ - [ ] Stability in sorting algorithms ("Is Quicksort stable?")
- [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
- [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
- [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
@@ -748,26 +814,27 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- I wouldn't recommend sorting a linked list, but merge sort is doable.
- [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
-- For heapsort, see Heap data structure above. Heap sort is great, but not stable.
+- For heapsort, see Heap data structure above. Heap sort is great, but not stable
- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
+ - [ ] [1. Mergesort](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
- [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
- - [ ] [3. Sorting Complexity](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity)
- - [ ] [4. Comparators](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators)
+ - [ ] [3. Sorting Complexity](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. Comparators](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
- [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
- - [ ] [2. Selection](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection)
- - [ ] [3. Duplicate Keys](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys)
- - [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts)
+ - [ ] [1. Quicksort](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] [2. Selection](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. Duplicate Keys](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. System Sorts](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
- [ ] UC Berkeley:
- [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
- [ ] [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
- [ ] [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
- [ ] [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] [CS 61B 2014-04-21: Radix Sort(video)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
@@ -798,15 +865,15 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
- Selection sort and insertion sort are both O(n^2) average and worst case
- - For heapsort, see Heap data structure above.
+ - For heapsort, see Heap data structure above
- [ ] Not required, but I recommended them:
- [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
- [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
- - [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
+ - [ ] [2. Key Indexed Counting](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
- [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
- [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
- - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort)
+ - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
- [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
@@ -819,41 +886,40 @@ If you need more detail on this subject, see "Sorting" section in [Additional De
## Graphs
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
+گراف کو کمپیوٹر سائنس میں بہت سے مسائل کی نمائندگی کرنے کے لیے استعمال کیا جا سکتا ہے، اس لیے یہ سیکشن لمبا ہے، جیسا کہ ٹریز اور ترتیب / سارٹنگ تھے۔
- Notes:
- - There are 4 basic ways to represent a graph in memory:
+ - میموری میں گراف کی نمائندگی کرنے کے 4 بنیادی طریقے ہیں:
- objects and pointers
- adjacency matrix
- adjacency list
- adjacency map
- - Familiarize yourself with each representation and its pros & cons
- - BFS and DFS - know their computational complexity, their tradeoffs, and how to implement them in real code
- - When asked a question, look for a graph-based solution first, then move on if none.
+ - ہر ایک نمائندگی اور اس کے فوائد اور نقصانات سے اپنے آپ کو واقف کریں۔
+ - BFS اور DFS - ان کی کمپیوٹیشنل پیچیدگی، ان کے تجارتی معاہدوں، اور انہیں حقیقی کوڈ میں لاگو کرنے کا طریقہ جانیں۔
+ - جب کوئی سوال پوچھا جائے تو پہلے گراف پر مبنی حل تلاش کریں، پھر اگر کوئی نہیں تو آگے بڑھیں۔
- [ ] MIT(videos):
- - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - [ ] [Depth-First Search](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
+ - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] [Depth-First Search](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
- [ ] Skiena Lectures - great intro:
- - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - Lecture 13 - Graph Algorithms (video)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - Lecture 14 - Graph Algorithms (con't) (video)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2020 - Lecture 10 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] [CSE373 2020 - Lecture 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] [CSE373 2020 - Lecture 12 - Depth First Search (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] [CSE373 2020 - Lecture 13 - Minimum Spanning Trees (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] [CSE373 2020 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
- [ ] Graphs (review and more):
- [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
+ - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
- [ ] [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- [ ] [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- [ ] [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- [ ] [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] ~~[CS 61B 2014 (starting at 58:09) (video)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)~~
- [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
@@ -879,7 +945,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] list strongly connected components
- [ ] check for bipartite graph
-## Even More Knowledge
+## اس سے بھی زیادہ معلومات
- ### Recursion
- [ ] Stanford lectures on recursion & backtracking:
@@ -887,21 +953,25 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- - when it is appropriate to use it
- - how is tail recursion better than not?
+ - When it is appropriate to use it?
+ - How is tail recursion better than not?
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
-
+ - [ ] [5 Simple Steps for Solving Any Recursive Problem(video)](https://youtu.be/ngCos392W4w)
+
+ Backtracking Blueprint: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partitioning))
+ [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
- ### Dynamic Programming
- - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a problem as being a candidate for dynamic programming.
+ - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
+ problem as being a candidate for dynamic programming.
- This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
- I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
- [ ] Videos:
- - the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
- - [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
+ - [ ] [Skiena: CSE373 2020 - Lecture 19 - Introduction to Dynamic Programming (video)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - Lecture 22 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
- [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
@@ -911,17 +981,13 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
- [ ] Coursera:
- [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
- - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
+ - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
+ - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
- [ ] [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- [ ] [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
+ - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
- [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
-- ### Object-Oriented Programming
- - [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- - [ ] SOLID OOP Principles: [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
-
- ### Design patterns
- [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- [ ] Learn these patterns:
@@ -942,15 +1008,10 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] iterator
- [ ] composite
- [ ] flyweight
- - [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - [ ] [Book: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
- - [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
- - [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
-
+ - [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
- ### Combinatorics (n choose k) & Probability
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
@@ -973,9 +1034,10 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- [ ] Skiena:
- - [ ] [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2020 - Lecture 23 - NP-Completeness (video)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23)
+ - [ ] [CSE373 2020 - Lecture 24 - Satisfiability (video)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24)
+ - [ ] [CSE373 2020 - Lecture 25 - More NP-Completeness (video)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25)
+ - [ ] [CSE373 2020 - Lecture 26 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
- [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
@@ -983,6 +1045,13 @@ Graphs can be used to represent many problems in computer science, so this secti
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- Pages 1048 - 1140 in CLRS if you have it.
+- ### How computers process a program
+
+ - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
+ - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
- ### Caches
- [ ] LRU cache:
- [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
@@ -999,26 +1068,27 @@ Graphs can be used to represent many problems in computer science, so this secti
- [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
- Covers:
- Processes, Threads, Concurrency issues
- - difference between processes and threads
- - processes
- - threads
- - locks
- - mutexes
- - semaphores
- - monitors
- - how they work
- - deadlock
- - livelock
+ - Difference between processes and threads
+ - Processes
+ - Threads
+ - Locks
+ - Mutexes
+ - Semaphores
+ - Monitors
+ - How they work?
+ - Deadlock
+ - Livelock
- CPU activity, interrupts, context switching
- Modern concurrency constructs with multicore processors
- - [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
+ - [Paging, segmentation and virtual memory (video)](https://youtu.be/O4nwUqQodAg)
+ - [Interrupts (video)](https://youtu.be/iKlAWIKEyuw)
- Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
- Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
- Context switching
- - How context switching is initiated by the operating system and underlying hardware
+ - How context switching is initiated by the operating system and underlying hardware?
- [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
- [ ] concurrency in Python (videos):
- [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
@@ -1043,26 +1113,22 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-- ### Scheduling
- - in an OS, how it works
- - can be gleaned from Operating System videos
-
- ### String searching & manipulations
- [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
- - [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
+ - [ ] [1. Introduction to Substring Search](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
- [ ] [2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
- [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
- [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
- - [ ] [5. Rabin-Karp](https://www.coursera.org/learn/algorithms-part2/lecture/3KiqT/rabin-karp)
+ - [ ] [5. Rabin-Karp](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
- [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
- If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
+ If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects).
- ### Tries
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
- to track the path.
- - I read through code, but will not implement.
+ to track the path
+ - I read through code, but will not implement
- [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
- [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
- [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
@@ -1073,13 +1139,12 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/competitive-programming/tutorials/using-tries/)
+ - [ ] [TopCoder - Using Tries](https://www.topcoder.com/thrive/articles/Using%20Tries)
- [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### Floating Point Numbers
- [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
- ### Unicode
- [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
@@ -1093,9 +1158,9 @@ Graphs can be used to represent many problems in computer science, so this secti
- The first half is enough.
- ### Networking
- - **if you have networking experience or want to be a reliability engineer or operations engineer, expect questions**
- - otherwise, this is just good to know
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
+ - **If you have networking experience or want to be a reliability engineer or operations engineer, expect questions**
+ - Otherwise, this is just good to know
+ - [ ] [Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
- [ ] [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
- [ ] [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
- [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
@@ -1109,19 +1174,182 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+---
+
+## حتمی جائزہ
+
+ اس سیکشن میں چھوٹی ویڈیوز ہوں گی جنہیں آپ زیادہ تر اہم تصورات کا جائزہ لینے کے لیے بہت تیزی سے دیکھ سکتے ہیں۔
+ اگر آپ اکثر ریفریشر چاہتے ہیں تو یہ اچھا ہے۔
+
+- [ ] 2-3 منٹ کی مختصر سبجیکٹ ویڈیوز کی سیریز (23 ویڈیوز)
+ - [ویڈیوز](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (38 ویڈیوز):
+ - [ویڈیوز](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+---
+
+## اپنے ریزیومے کو اپ ڈیٹ کریں
+
+- درج کتابوں میں ریزیومے کی تیاری کی معلومات دیکھیں:
+- "کریکنگ دی کوڈنگ انٹرویو" اور "پروگرامنگ انٹرویوز بے نقاب"
+- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
+ - مصنف کی طرف سے نوٹ: "یہ یونائیٹڈ سٹیٹس امریکا فوکسڈ ریزیومے کے لیے ہے۔ ہندوستان اور دیگر ممالک کے لیے سی وی کی توقعات مختلف ہیں، حالانکہ بہت سے پوائنٹس ایک جیسے ہوں گے۔"
+- ["Step-by-step resume guide" by Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
+ - اپنے ریزیومے کو شروع سے ترتیب دینے، موثر ریزیومے کا مواد لکھنے، اسے بہتر بنانے اور اپنے ریزیومے کی جانچ کرنے کے طریقے کے بارے میں تفصیلی گائیڈ
+
+## انٹرویو کا عمل اور عام انٹرویو کی تیاری
+
+- [ ] [How to Pass the Engineering Interview in 2021](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] How to Get a Job at the Big 4:
+ - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [How to Get a Job at the Big 4.1 (Follow-up video)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] Cracking The Coding Interview Set 1:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Cracking the Facebook Coding Interview:
+ - [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- Prep Courses:
+ - [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
+ - [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - A free Python centric data structures and algorithms course.
+ - [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
+ - [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview.
+ - [AlgoMonster (paid course with free content)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - The crash course for LeetCode. Covers all the patterns condensed from thousands of questions.
+
+Mock Interviews:
+- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - میں نے اسے استعمال کیا اور اس نے مجھے فون اسکرین اور آن سائٹ انٹرویو کے لیے آرام دہ رہنے میں مدد کی
+- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - پریکٹس انٹرویوز کا ہم مرتبہ ماڈل
+- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - FAANG کے سینئر انجینئرز کے ساتھ الگورتھم/سسٹم ڈیزائن انٹرویوز، گمنام طور پر
+
+## اپنے انٹرویو لینے والے کی طرح سوچیں۔
+
+انٹرویو کے تقریباً 20 سوالات کے بارے میں سوچیں جو آپ کو نیچے دیے گئے آئٹمز کی لائنوں کے ساتھ ملیں گے۔ ہر ایک کے لیے کم از کم ایک جواب دیں۔
+ایک کہانی رکھیں، نہ کہ صرف ڈیٹا، کسی ایسی چیز کے بارے میں جو آپ نے حاصل کی ہے۔
+
+- آپ کو یہ نوکری کیوں چاہیے؟
+- آپ نے کون سا مشکل مسئلہ حل کیا ہے؟
+- سب سے بڑے چیلنجز کا سامنا؟
+- بہترین/بدترین ڈیزائن جو آپ نے دیکھے ہیں؟
+- موجودہ مصنوعات کو بہتر بنانے کے خیالات
+- آپ ایک فرد کے طور پر اور ایک ٹیم کے حصے کے طور پر بہترین کام کیسے کرتے ہیں؟
+- آپ کی کونسی مہارت یا تجربات اس کردار میں اثاثہ ہوں گے اور کیوں؟
+- آپ کو کس چیز میں سب سے زیادہ مزہ آیا [job x / project y]؟
+- سب سے بڑا چیلنج جس کا آپ نے سامنا کیا؟
+- سب سے مشکل بگ جس کا آپ نے سامنا کیا؟
+- آپ نے اس میں کیا سیکھا؟ [job x / project y]؟
+- آپ اپنے پروجیکٹ میں کیا بہتر کرتے؟
+
+## انٹرویو لینے والے کے لیے سوالات
+
+میرے کچھ (ہو سکتا ہے کہ میں پہلے سے ہی جوابات جانتا ہوں، لیکن ان کی رائے یا ٹیم کے نقطہ نظر کو سمجھنے کے لیے):
+
+- آپ کی ٹیم کتنی بڑی ہے؟
+- آپ کا دیو سائیکل کیا ہے؟ کیا آپ واٹرفال/سپرنٹ/اجائیل کرتے ہیں؟
+- کیا ڈیڈ لائن پر جلدی کرنا عام ہے؟ یا لچک ہے؟
+- آپ کی ٹیم میں فیصلے کیسے ہوتے ہیں؟
+- آپ فی ہفتہ کتنی میٹنگز کرتے ہیں؟
+- کیا آپ محسوس کرتے ہیں کہ آپ کے کام کا ماحول آپ کو توجہ مرکوز کرنے میں مدد کرتا ہے؟
+- کس پر کام کر رہے ہو؟
+- آپ کو اس کے بارے میں کیا پسند ہے؟
+- کام کی زندگی کیسی ہے؟
+- کام/زندگی کا توازن کیسا ہے؟
+
+## ایک بار جب آپ کو نوکری مل جائے گی
+
+مبارک ہو!
+
+سیکھتے رہیں۔
+
+ابھی بھی بہت کچھ کرنا باقی ہے.
+
+---
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+ اس نقطہ کے نیچے ہر چیز اختیاری ہے۔ داخلہ سطح کے انٹرویو کے لیے اس کی ضرورت نہیں ہے۔ تاہم، ان کا مطالعہ کرنے سےآپ کمپیوٹر سائنس کے
+ مزید تصورات سے زیادہ روشناس ہوں گے،اور آپ کسی بھی سافٹ ویئر انجینئرنگ کے کام کے لیے بہتر طور پر تیار ہوں گے۔ آپ ایک اچھے سافٹ ویئر انجینئر بنیں گے۔
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+---
+
+## Additional Books
+
+ These are here so you can dive into a topic you find interesting.
+
+- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
+ - An oldie but a goodie
+- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
+ - A modern option
+- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
+- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
+ - A gentle introduction to design patterns
+- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - AKA the "Gang Of Four" book, or GOF
+ - The canonical design patterns book
+- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - As a review and problem recognition
+ - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
+ - This book has 2 parts:
+ - Class textbook on data structures and algorithms
+ - Pros:
+ - Is a good review as any algorithms textbook would be
+ - Nice stories from his experiences solving problems in industry and academia
+ - Code examples in C
+ - Cons:
+ - Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
+ - Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
+ - Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
+ - Algorithm catalog:
+ - This is the real reason you buy this book.
+ - This book is better as an algorithm reference, and not something you read cover to cover.
+ - Can rent it on Kindle
+ - Answers:
+ - [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
+- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
+ - The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
+ - These chapters are worth the read to give you a nice foundation:
+ - Chapter 2 - Numeric Representation
+ - Chapter 3 - Binary Arithmetic and Bit Operations
+ - Chapter 4 - Floating-Point Representation
+ - Chapter 5 - Character Representation
+ - Chapter 6 - Memory Organization and Access
+ - Chapter 7 - Composite Data Types and Memory Objects
+ - Chapter 9 - CPU Architecture
+ - Chapter 10 - Instruction Set Architecture
+ - Chapter 11 - Memory Architecture and Organization
+- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently
+ - AKA CLR, sometimes CLRS, because Stein was late to the game
+- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
+ - For a richer, more up-to-date (2017), but longer treatment
+
## System Design, Scalability, Data Handling
-**You can expect system design questions if you have 4+ years of experience.**
+**اگر آپ کے پاس 4+ سال کا تجربہ ہے تو آپ سسٹم ڈیزائن کے سوالات کی توقع کر سکتے ہیں۔**
- Scalability and System Design are very large topics with many topics and resources, since
there is a lot to consider when designing a software/hardware system that can scale.
- Expect to spend quite a bit of time on this.
+ Expect to spend quite a bit of time on this
- Considerations:
- - scalability
+ - Scalability
- Distill large data sets to single values
- Transform one data set to another
- Handling obscenely large amounts of data
- - system design
+ - System design
- features sets
- interfaces
- class hierarchies
@@ -1131,16 +1359,16 @@ Graphs can be used to represent many problems in computer science, so this secti
- performance analysis and optimization
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
-- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/)
- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below.
-- [ ] [How to ace a systems design interview](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
+- [ ] [How to ace a systems design interview](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
+- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
- [ ] Consensus Algorithms:
- [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
@@ -1149,7 +1377,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
- [ ] Scalability:
- - You don't need all of these. Just pick a few that interest you.
+ - آپ کو ان سب کی ضرورت نہیں ہے۔ صرف چند ایک منتخب کریں جو آپ کی دلچسپی رکھتے ہیں۔
- [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- [ ] Short series:
- [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
@@ -1158,15 +1386,12 @@ Graphs can be used to represent many problems in computer science, so this secti
- [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
- [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [Pragmatic Programming Techniques](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- - [extra: Google Pregel Graph Processing](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- [ ] [Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
- [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/)
+ - [ ] [The Importance of Algorithms](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
- [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Scale at Facebook (2012), "Building for a Billion Users" (video)](https://www.youtube.com/watch?v=oodS71YtkGU)
- [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
- [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
@@ -1175,299 +1400,58 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
- [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [Asyncio Tarantool Queue, Get In The Queue](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
- [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
- - [ ] [Machine Learning Driven Programming: A New Programming For A New World](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
- [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [How Does The Use Of Docker Effect Latency?](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
- [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [Serverless (very long, just need the gist)](http://martinfowler.com/articles/serverless.html)
- [ ] [What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Cinchcast Architecture - Producing 1,500 Hours Of Audio Every Day](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- - [ ] [Justin.Tv's Live Video Broadcasting Architecture](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Playfish's Social Gaming Architecture - 50 Million Monthly Users And Growing](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- - [ ] [TripAdvisor Architecture - 40M Visitors, 200M Dynamic Page Views, 30TB Data](http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html)
- - [ ] [PlentyOfFish Architecture](http://highscalability.com/plentyoffish-architecture)
- [ ] [Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- [ ] [ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- [ ] See "Messaging, Serialization, and Queueing Systems" way below for info on some of the technologies that can glue services together
- [ ] Twitter:
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section.
+ - For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
+ - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- flow:
- 1. Understand the problem and scope:
- - define the use cases, with interviewer's help
- - suggest additional features
- - remove items that interviewer deems out of scope
- - assume high availability is required, add as a use case
- 2. Think about constraints:
- - ask how many requests per month
- - ask how many requests per second (they may volunteer it or make you do the math)
- - estimate reads vs. writes percentage
- - keep 80/20 rule in mind when estimating
- - how much data written per second
- - total storage required over 5 years
- - how much data read per second
- 3. Abstract design:
- - layers (service, data, caching)
- - infrastructure: load balancing, messaging
- - rough overview of any key algorithm that drives the service
- - consider bottlenecks and determine solutions
+ 1. سوال اور سوال کے دائرہ کار کو سمجھیں:
+ - انٹرویو لینے والے کی مدد سے استعمال کے معاملات کی وضاحت کریں
+ - اضافی خصوصیات تجویز کریں
+ - ایسے آئٹمز کو ہٹا دیں جن کو انٹرویو لینے والے دائرہ کار سے باہر سمجھتے ہیں
+ - فرض کریں کہ اعلی دستیابی کی ضرورت ہے، اضرورت کے طور پر شامل کریں
+ 2. پابندیوں کے بارے میں سوچو:
+ - پوچھیں کہ ماہانہ کتنی درخواستیں ہیں
+ - پوچھیں کہ فی سیکنڈ کتنی درخواستیں ہیں (وہ اسے رضاکارانہ طور پر دے سکتے ہیں یا آپ کو حساب کتاب کرنے پر مجبور کر سکتے ہیں)
+ - تخمینہ پڑھنا بمقابلہ لکھنا فیصد
+ - تخمینہ لگاتے وقت 80/20 اصول کو ذہن میں رکھیں
+ - فی سیکنڈ میں کتنا ڈیٹا لکھا جاتا ہے
+ - 5 سالوں میں کل ذخیرہ درکار ہے
+ - فی سیکنڈ کتنا ڈیٹا پڑھتا ہے
+ 3. ڈیزائن کاخلاصہ:
+ - پرتیں (سروس، ڈیٹا، کیشنگ)
+ - انفراسٹرکچر: بوجھ میں توازن، پیغام رسانی
+ - سروس کو چلانے والے کسی بھی کلیدی الگورتھم کا کچا جائزہ
+ - رکاوٹوں پر غور کریں اور حل کا تعین کریں
- Exercises:
- - [Design a CDN network: old article](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
- - [Design an online multiplayer card game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
- [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
- [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [Design a cache system](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-
----
-
-## Final Review
-
- This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
- It's nice if you want a refresher often.
-
-- [ ] Series of 2-3 minutes short subject videos (23 videos)
- - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
-- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
-- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
-
----
-
-## Coding Question Practice
-
-Now that you know all the computer science topics above, it's time to practice answering coding problems.
-
-**Coding question practice is not about memorizing answers to programming problems.**
-
-Why you need to practice doing programming problems:
-- problem recognition, and where the right data structures and algorithms fit in
-- gathering requirements for the problem
-- talking your way through the problem like you will in the interview
-- coding on a whiteboard or paper, not a computer
-- coming up with time and space complexity for your solutions
-- testing your solutions
-
-There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
-interview books, too, but I found this outstanding:
-[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-
-No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. Instead of a whiteboard, pick up a
-large drawing pad from an art store. You can sit on the couch and practice. This is my "sofa whiteboard".
-I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick. I use a pencil
-and eraser.
-
-
-
-Supplemental:
-
-- [Mathematics for Topcoders](https://www.topcoder.com/community/competitive-programming/tutorials/mathematics-for-topcoders/)
-- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/competitive-programming/tutorials/dynamic-programming-from-novice-to-advanced/)
-- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
-
-**Read and Do Programming Problems (in this order):**
-
-- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - answers in C, C++ and Java
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - answers in Java
-
-See [Book List above](#book-list)
-
-
-## Coding exercises/challenges
-
-Once you've learned your brains out, put those brains to work.
-Take coding challenges every day, as many as you can.
-
-- [How to Find a Solution](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
-- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-Coding Interview Question Videos:
-- [IDeserve (88 videos)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- - Super for walkthroughs of problem solutions.
-- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - Good explanations of solution and the code.
- - You can watch several in a short time.
-- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
-
-Challenge sites:
-- [LeetCode](https://leetcode.com/)
- - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing.
- - [LeetCode solutions from FisherCoder](https://github.com/fishercoder1534/Leetcode)
- - See Nick White Videos above for short code-throughs
-- [HackerRank](https://www.hackerrank.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [InterviewCake](https://www.interviewcake.com/)
-- [Geeks for Geeks](http://www.geeksforgeeks.org/)
-- [InterviewBit](https://www.interviewbit.com/invite/icjf)
-- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
-
-Language-learning sites, with challenges:
-- [Codewars](http://www.codewars.com)
-- [Codility](https://codility.com/programmers/)
-- [HackerEarth](https://www.hackerearth.com/)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-- [Codechef](https://www.codechef.com/)
-
-Challenge repos:
-- [Interactive Coding Interview Challenges in Python](https://github.com/donnemartin/interactive-coding-challenges)
-
-Mock Interviews:
-- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview.
-- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
-- [Refdash: Mock interviews and expedited interviews](https://refdash.com/) - also help candidates fast track by skipping multiple interviews with tech companies.
-
-
-## Once you're closer to the interview
-
-- Cracking The Coding Interview Set 2 (videos):
- - [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
- - [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
-
-## Your Resume
-
-- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
-
-
-## 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 2-3 answers for each.
-Have a story, not just data, about something you accomplished.
-
-- Why do you want this job?
-- What's a tough problem you've solved?
-- Biggest challenges faced?
-- Best/worst designs seen?
-- Ideas for improving an existing product.
-- How do you work best, as an individual and as part of a team?
-- Which of your skills or experiences would be assets in the role and why?
-- What did you most enjoy at [job x / project y]?
-- What was the biggest challenge you faced at [job x / project y]?
-- What was the hardest bug you faced at [job x / project y]?
-- What did you learn at [job x / project y]?
-- What would you have done better at [job x / project y]?
-
-## Have questions for the interviewer
-
- Some of mine (I already may know answer to but want their opinion or team perspective):
-
-- How large is your team?
-- What does your dev cycle look like? Do you do waterfall/sprints/agile?
-- Are rushes to deadlines common? Or is there flexibility?
-- How are decisions made in your team?
-- How many meetings do you have per week?
-- Do you feel your work environment helps you concentrate?
-- What are you working on?
-- What do you like about it?
-- What is the work life like?
-- How is work/life balance?
-
-## Once You've Got The Job
-
-Congratulations!
-
-Keep learning.
-
-You're never really done.
-
----
-
- *****************************************************************************************************
- *****************************************************************************************************
-
- Everything below this point is optional.
- By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
- any software engineering job. You'll be a much more well-rounded software engineer.
-
- *****************************************************************************************************
- *****************************************************************************************************
-
----
-
-## Additional Books
-
- These are here so you can dive into a topic you find interesting.
-
-- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
- - an oldie but a goodie
-- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
- - a modern option
-- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
-- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
- - a gentle introduction to design patterns
-- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- - aka the "Gang Of Four" book, or GOF
- - the canonical design patterns book
-- [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
-- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- - As a review and problem recognition
- - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview.
- - This book has 2 parts:
- - class textbook on data structures and algorithms
- - pros:
- - is a good review as any algorithms textbook would be
- - nice stories from his experiences solving problems in industry and academia
- - code examples in C
- - cons:
- - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
- - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
- - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material.
- - algorithm catalog:
- - this is the real reason you buy this book.
- - about to get to this part. Will update here once I've made my way through it.
- - Can rent it on kindle
- - Answers:
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
- - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief.
- - The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like.
- - These chapters are worth the read to give you a nice foundation:
- - Chapter 2 - Numeric Representation
- - Chapter 3 - Binary Arithmetic and Bit Operations
- - Chapter 4 - Floating-Point Representation
- - Chapter 5 - Character Representation
- - Chapter 6 - Memory Organization and Access
- - Chapter 7 - Composite Data Types and Memory Objects
- - Chapter 9 - CPU Architecture
- - Chapter 10 - Instruction Set Architecture
- - Chapter 11 - Memory Architecture and Organization
-- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
- - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently.
- - aka CLR, sometimes CLRS, because Stein was late to the game
-
-- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
- - For a richer, more up-to-date (2017), but longer treatment
-
-- [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
- - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but
- that is just an intro. This a guidebook on program design and architecture.
+ - [Design a cache system](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
## Additional Learning
-
- I added them to help you become a well-rounded software engineer, and to be aware of certain
- technologies and algorithms, so you'll have a bigger toolbox.
+
+ میں نے انہیں شامل کیا تاکہ آپ کو ایک بہترین سافٹ ویئر انجینئر بننے میں مدد ملے، اور کچھ ٹیکنالوجیز اور الگورتھم سے آگاہی ہو، تاکہ آپ کے پاس ایک بڑا ٹول باکس ہو۔
- ### Compilers
- [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
@@ -1494,6 +1478,8 @@ You're never really done.
- [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
- [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+ - [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
- ### Unix command line tools
- I filled in the list below from good tools.
@@ -1511,11 +1497,11 @@ You're never really done.
- ### Information theory (videos)
- [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
- - more about Markov processes:
+ - More about Markov processes:
- [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- - See more in MIT 6.050J Information and Entropy series below.
+ - See more in MIT 6.050J Information and Entropy series below
- ### Parity & Hamming Code (videos)
- [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
@@ -1526,19 +1512,19 @@ You're never really done.
- [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
- ### Entropy
- - also see videos below
- - make sure to watch information theory videos first
+ - نیچے دی گئی ویڈیوز بھی دیکھیں
+ - پہلے انفارمیشن تھیوری کی ویڈیوز ضرور دیکھیں
- [Information Theory, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
- ### Cryptography
- - also see videos below
- - make sure to watch information theory videos first
+ - نیچے دی گئی ویڈیوز بھی دیکھیں
+ - پہلے انفارمیشن تھیوری کی ویڈیوز ضرور دیکھیں
- [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
- [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
- [Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- ### Compression
- - make sure to watch information theory videos first
+ - پہلے انفارمیشن تھیوری کی ویڈیوز ضرور دیکھیں
- Computerphile (videos):
- [Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
- [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
@@ -1597,7 +1583,6 @@ You're never really done.
- ### A*
- [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
- ### Fast Fourier Transform
@@ -1618,8 +1603,8 @@ You're never really done.
- [How To Count A Billion Distinct Objects Using Only 1.5KB Of Memory](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
- ### Locality-Sensitive Hashing
- - used to determine the similarity of documents
- - the opposite of MD5 or SHA which are used to determine if 2 documents/strings are exactly the same.
+ - Used to determine the similarity of documents
+ - The opposite of MD5 or SHA which are used to determine if 2 documents/strings are exactly the same
- [Simhashing (hopefully) made simple](http://ferd.ca/simhashing-hopefully-made-simple.html)
- ### van Emde Boas Trees
@@ -1630,17 +1615,17 @@ You're never really done.
- [CS 61B Lecture 39: Augmenting Data Structures](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
- ### Balanced search trees
- - Know at least one type of balanced binary tree (and know how it's implemented):
+ - کم از کم ایک قسم کے بیلنسڈ بائنری ٹری کو جانیں (اور جانیں کہ اسے کیسے کوڈ کیا گیا ہے):
- "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
A particularly interesting self-organizing data structure is the splay tree, which uses rotations
to move any accessed key to the root." - Skiena
- Of these, I chose to implement a splay tree. From what I've read, you won't implement a
balanced search tree in your interview. But I wanted exposure to coding one up
- and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code.
- - splay tree: insert, search, delete functions
+ and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code
+ - Splay tree: insert, search, delete functions
If you end up implementing red/black tree try just these:
- - search and insertion functions, skipping delete
- - I want to learn more about B-Tree since it's used so widely with very large data sets.
+ - Search and insertion functions, skipping delete
+ - I want to learn more about B-Tree since it's used so widely with very large data sets
- [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
- **AVL trees**
@@ -1649,7 +1634,7 @@ You're never really done.
The AVL tree is another structure supporting O(log n) search, insertion, and removal. It is more rigidly
balanced than red–black trees, leading to slower insertion and removal but faster retrieval. This makes it
attractive for data structures that may be built once and loaded without reconstruction, such as language
- dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter).
+ dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter)
- [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
@@ -1659,14 +1644,14 @@ You're never really done.
- In practice:
Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors,
data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory,
- networking and file system code) etc.
+ networking and file system code) etc
- [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
- MIT Lecture: Splay Trees:
- Gets very mathy, but watch the last 10 minutes for sure.
- [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
- **Red/black trees**
- - these are a translation of a 2-3 tree (see below)
+ - These are a translation of a 2-3 tree (see below).
- In practice:
Red–black trees offer worst-case guarantees for insertion time, deletion time, and search time.
Not only does this make them valuable in time-sensitive applications such as real-time applications,
@@ -1674,7 +1659,7 @@ You're never really done.
for example, many data structures used in computational geometry can be based on red–black trees, and
the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In the version 8 of Java,
the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor
- hashcodes, a Red-Black tree is used.
+ hashcodes, a Red-Black tree is used
- [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
@@ -1706,12 +1691,12 @@ You're never really done.
- [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
- **B-Trees**
- - fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor)
+ - Fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor).
- In Practice:
B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to
its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary
block in a particular file. The basic problem is turning the file block i address into a disk block
- (or perhaps to a cylinder-head-sector) address.
+ (or perhaps to a cylinder-head-sector) address
- [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html)
- [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
@@ -1724,9 +1709,8 @@ You're never really done.
- ### k-D Trees
- - great for finding number of points in a rectangle or higher dimension object
- - a good fit for k-nearest neighbors
- - [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk)
+ - Great for finding number of points in a rectangle or higher dimension object
+ - A good fit for k-nearest neighbors
- [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
- ### Skip lists
@@ -1765,49 +1749,24 @@ You're never really done.
- [Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
- ### Discrete math
- - see videos below
-
-- ### Machine Learning
- - Why ML?
- - [How Google Is Remaking Itself As A Machine Learning First Company](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- - [Large-Scale Deep Learning for Intelligent Computer Systems (video)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
- - [Deep Learning and Understandability versus Software Engineering and Verification by Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
- - [Google's Cloud Machine learning tools (video)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
- - [Google Developers' Machine Learning Recipes (Scikit Learn & Tensorflow) (video)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
- - [Tensorflow (video)](https://www.youtube.com/watch?v=oZikw5k_2FM)
- - [Tensorflow Tutorials](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- - [Practical Guide to implementing Neural Networks in Python (using Theano)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
- - Courses:
- - [Great starter course: Machine Learning](https://www.coursera.org/learn/machine-learning)
- - [videos only](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
- - see videos 12-18 for a review of linear algebra (14 and 15 are duplicates)
- - [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks)
- - [Google's Deep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730)
- - [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
- - [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive)
- - Resources:
- - Books:
- - [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
- - [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
- - [Introduction to Machine Learning with Python](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
- - [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- - Data School: http://www.dataschool.io/
+ - [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
---
## Additional Detail on Some Subjects
- I added these to reinforce some ideas already presented above, but didn't want to include them
- above because it's just too much. It's easy to overdo it on a subject.
- You want to get hired in this century, right?
+ میں نے ان کو پہلے سے پیش کیے گئے کچھ خیالات کو تقویت دینے کے لیے شامل کیا تھا لیکن میں انھیں اوپر شامل نہیں کرنا چاہتا تھا کیونکہ یہ کافی سے زیادہ ہے۔ کسی ایک موضوع پر اسے زیادہ کرنا آسان ہے۔
+آپ اس صدی میں ملازمت حاصل کرنا چاہتے ہیں، کیا میں ٹھیک کہہ رہا ہوں؟
- **SOLID**
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [ ] O - [Open/Closed Principle](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- - [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [ ] L - [Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ Principle](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
- [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
- [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
@@ -1826,10 +1785,10 @@ You're never really done.
- [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
- **More Dynamic Programming** (videos)
- - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- - [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- - [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
- - [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=tp4_UXaVyx8&index=22&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=r4-cftqTcdI&ab_channel=MITOpenCourseWare)
+ - [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=KLBCUx1is2c&ab_channel=MITOpenCourseWare)
+ - [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=TDo3r5M1LNo&ab_channel=MITOpenCourseWare)
+ - [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=i9OAOk0CUQE&ab_channel=MITOpenCourseWare)
- [6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- [6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
@@ -1852,7 +1811,7 @@ You're never really done.
- **String Matching**
- Rabin-Karp (videos):
- - [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
+ - [Rabin Karps Algorithm](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw)
- [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
- [Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
@@ -1872,18 +1831,18 @@ You're never really done.
- Stanford lectures on sorting:
- [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- - Shai Simonson, [Aduni.org](http://www.aduni.org/):
+ - Shai Simonson:
- [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- Steven Skiena lectures on sorting:
- - [lecture begins at 26:46 (video)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [lecture begins at 27:40 (video)](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [lecture begins at 35:00 (video)](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [lecture begins at 23:50 (video)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+ - [CSE373 2020 - Mergesort/Quicksort (video)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - Linear Sorting (video)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
+
+- NAND To Tetris: [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer)
## Video Series
-Sit back and enjoy. "Netflix and skill" :P
+Sit back and enjoy.
- [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
@@ -1893,14 +1852,7 @@ Sit back and enjoy. "Netflix and skill" :P
- [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
-- [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
-
-- [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
-
-- [Discrete Mathematics Part 1 by Sarada Herke (5 videos)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
-
-- CSE373 - Analysis of Algorithms (25 videos)
- - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+- [Skiena lectures from Algorithm Design Manual - CSE373 2020 - Analysis of Algorithms (26 videos)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
- [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
@@ -1910,8 +1862,6 @@ Sit back and enjoy. "Netflix and skill" :P
- [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
-- ~~[UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)~~
-
- [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
- [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
@@ -1926,7 +1876,7 @@ Sit back and enjoy. "Netflix and skill" :P
- [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-- [MIT 6.050J: Information and Entropy, Spring 2008 (19 videos)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7)
+- [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
- [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
@@ -1950,6 +1900,11 @@ Sit back and enjoy. "Netflix and skill" :P
- [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)
+## Algorithms implementation
+
+- [Multiple Algorithms implementation by Princeton University](https://algs4.cs.princeton.edu/code)
+
+
## Papers
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
@@ -1960,28 +1915,20 @@ Sit back and enjoy. "Netflix and skill" :P
- [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- mostly replaced by Cloud Dataflow?
- [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
- - [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
- [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
- [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- The Dynamo paper kicked off the NoSQL revolution
- [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
-- [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
-- [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
- - paper not available
- 2012: AddressSanitizer: A Fast Address Sanity Checker:
- [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- 2013: Spanner: Google’s Globally-Distributed Database:
- [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- [video](https://www.usenix.org/node/170855)
-- [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
- [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf )
- [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
-- [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
-
+- More papers: [1,000 papers](https://github.com/0voice/computer_expert_paper)
## LICENSE
From 63ac395b63ac158e3760ecea39d42895b43c0c64 Mon Sep 17 00:00:00 2001
From: Abdullah Afzal
Date: Mon, 20 Feb 2023 14:47:41 +0500
Subject: [PATCH 068/173] Update translation links
removing urdu translation link from "Translation in progress" to "Translations"
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index cd965d6377..60b25a94c1 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@
Translations:
+- [اردو - Urdu](translations/README-ur.md)
- [中文版本](translations/README-cn.md)
- [Tiếng Việt - Vietnamese](translations/README-vi.md)
- [Español](translations/README-es.md)
@@ -45,7 +46,6 @@
- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
From 0936b520f3f7440c129ad04b89f9443d68952935 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Wed, 15 Mar 2023 18:14:48 -0700
Subject: [PATCH 069/173] Updated software engineering note.
---
README.md | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index ec41ef57f9..748dd64bce 100644
--- a/README.md
+++ b/README.md
@@ -73,11 +73,8 @@ This is my multi-month study plan for becoming a software engineer for a large c
* Patience
* Time
-Note this is a study plan for **software engineering**, not web development. Large software companies like Google, Amazon,
-Facebook and Microsoft view software engineering as different from web development. For example, Amazon has
-Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 separate roles and the interviews for
-them will not be the same, as each has its own competencies. These companies require computer science knowledge for
-software development/engineering roles.
+Note this is a study plan for **software engineering**, not frontend engineering or fullstack development. There are really
+super roadmaps and coursework for those career paths elsewhere (see https://roadmap.sh/ for more info).
There is a lot to learn in a university Computer Science program, but only knowing about 75% is good enough for an interview, so that's what I cover here.
For a complete CS self-taught program, the resources for my study plan have been included in Kamran Ahmed's Computer Science Roadmap: https://roadmap.sh/computer-science
From 5c84cc0b7c13eed44ae3fb928e4ae2ee22a77974 Mon Sep 17 00:00:00 2001
From: jamesatmeetapro <126988910+jamesatmeetapro@users.noreply.github.com>
Date: Thu, 16 Mar 2023 23:24:30 -0700
Subject: [PATCH 070/173] Add a new mock interview website
It is a great mock interview option for job seekers to prepare for upcoming interviews. The interviewers on Meetapro are very experienced.
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 748dd64bce..93acf891fd 100644
--- a/README.md
+++ b/README.md
@@ -1246,6 +1246,7 @@ Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
+- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com) - an Airbnb-style mock interview/coaching platform.
## Be thinking of for when the interview comes
From d6ff89ef0e9469b3c344d795383affdaa91d80be Mon Sep 17 00:00:00 2001
From: jamesatmeetapro <126988910+jamesatmeetapro@users.noreply.github.com>
Date: Fri, 17 Mar 2023 08:59:50 -0700
Subject: [PATCH 071/173] Update Meetapro link
@jwasham Thank you very much for merging the previous change!
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 93acf891fd..f9a56e7b6e 100644
--- a/README.md
+++ b/README.md
@@ -1246,7 +1246,7 @@ Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
-- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com) - an Airbnb-style mock interview/coaching platform.
+- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
## Be thinking of for when the interview comes
From 94c8619bf5a3ae98dca1644e84d9d9458c81d16e Mon Sep 17 00:00:00 2001
From: Lev Vereshchagin
Date: Sun, 19 Mar 2023 18:10:32 +0300
Subject: [PATCH 072/173] Fix broken link to a Python resource
---
programming-language-resources.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/programming-language-resources.md b/programming-language-resources.md
index b1c8c3b31d..bdb2cd5c88 100644
--- a/programming-language-resources.md
+++ b/programming-language-resources.md
@@ -47,7 +47,7 @@
- [10 Tips for Pythonic Code (video)](https://www.youtube.com/watch?v=_O23jIXsshs)
- [Beyond PEP 8 -- Best practices for beautiful intelligible code (video)](https://www.youtube.com/watch?v=wf-BqAjZb8M)
- [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/)
- - [Coding Interview Essentials](https://github.com/ajinkyal121/coding-interview-university/blob/master/extras/cheat%20sheets/Coding%20Interview%20Python%20Language%20Essentials.pdf)
+ - [Coding Interview Essentials](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/Coding%20Interview%20Python%20Language%20Essentials.pdf)
- [Data Structures And Algorithms in Python](https://www.youtube.com/watch?v=kQDxmjfkIKY)
- [Python Programming Tutorial](https://www.scaler.com/topics/python/)
- [Python Interview Questions](https://www.interviewbit.com/python-interview-questions)
From ee5a16800bcb54db7baa8f769c97e5e2902cb139 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Sat, 25 Mar 2023 11:17:47 -0700
Subject: [PATCH 073/173] Adds sponsor.
---
README.md | 17 ++++++++++++++++-
translations/README-af.md | 15 +++++++++++++++
translations/README-ar.md | 15 +++++++++++++++
translations/README-bg.md | 15 +++++++++++++++
translations/README-bn.md | 15 +++++++++++++++
translations/README-cn.md | 15 +++++++++++++++
translations/README-de.md | 15 +++++++++++++++
translations/README-es.md | 15 +++++++++++++++
translations/README-fa.md | 15 +++++++++++++++
translations/README-fr.md | 15 +++++++++++++++
translations/README-he.md | 15 +++++++++++++++
translations/README-hi.md | 15 +++++++++++++++
translations/README-id.md | 15 +++++++++++++++
translations/README-it.md | 15 +++++++++++++++
translations/README-ja.md | 15 +++++++++++++++
translations/README-kh.md | 15 +++++++++++++++
translations/README-ko.md | 15 +++++++++++++++
translations/README-pl.md | 15 +++++++++++++++
translations/README-ptbr.md | 15 +++++++++++++++
translations/README-ru.md | 15 +++++++++++++++
translations/README-th.md | 15 +++++++++++++++
translations/README-tr.md | 15 +++++++++++++++
translations/README-tw.md | 15 +++++++++++++++
translations/README-uk.md | 15 +++++++++++++++
translations/README-ur.md | 15 +++++++++++++++
translations/README-uz.md | 15 +++++++++++++++
translations/README-vi.md | 15 +++++++++++++++
27 files changed, 406 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index f9a56e7b6e..473bca03cd 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
@@ -1246,7 +1261,7 @@ Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
-- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
+- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciusponsor) - an Airbnb-style mock interview/coaching platform.
## Be thinking of for when the interview comes
diff --git a/translations/README-af.md b/translations/README-af.md
index 4e2cc3ca4f..d9daca0c19 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -59,6 +59,21 @@
Word 'n bydraër en borg Kodering Onderhoud Universiteit!
+
+ Special thanks to:
+
+
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 486e796015..c733b9c24b 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -58,6 +58,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-bg.md b/translations/README-bg.md
index a53b284234..7ee43c2b34 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -55,6 +55,21 @@
Станете спонсор за да покрепите Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 4ffca73e0a..f1874278ed 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -57,6 +57,21 @@
পৃষ্ঠপোষক হয়ে যান এবং কোডিং ইন্টারভিউ বিশ্ববিদ্যালয় সমর্থন করুন!
+
+ Special thanks to:
+
+
diff --git a/translations/README-cn.md b/translations/README-cn.md
index b504ec7079..9ed2cad3ab 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -13,6 +13,21 @@
成为赞助商 并支持编程大学!
+
+ Special thanks to:
+
+
diff --git a/translations/README-de.md b/translations/README-de.md
index ad2a3b4f2f..9f71fd2fa6 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -49,6 +49,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-es.md b/translations/README-es.md
index af5eebb749..81b79e13ea 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -51,6 +51,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 3db8fcc272..97fc498e55 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -55,6 +55,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 8099aa0fdd..87d7f4f7f2 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -10,6 +10,21 @@ Traductions:
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-he.md b/translations/README-he.md
index a2c1fa988b..4b15f35923 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -22,6 +22,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 40882cc744..5fd9caf92f 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -61,6 +61,21 @@
प्रायोजक बनें
और कोडिंग साक्षात्कार विश्वविद्यालय का समर्थन करें!
+
+ Special thanks to:
+
+
diff --git a/translations/README-id.md b/translations/README-id.md
index 47a7a2bbb4..c7d2860024 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -7,6 +7,21 @@ Versi asli: [Bahasa Inggris](../README.md)
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-it.md b/translations/README-it.md
index 0cc41c8f59..d329f697e3 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -64,6 +64,21 @@ Traduzione in Italiano a Cura di [@volpoh](https://github.com/volpoh)
Diventa uno sponsor e supporta Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 888e118471..4b1a5340f0 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -39,6 +39,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 0f35007f96..7e5f2dc611 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -51,6 +51,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 0ed388856d..7f3c1d71f7 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -56,6 +56,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 080e890e5c..7a53110b16 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -48,6 +48,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
## Co to jest?
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index d52f3530e5..4e1bbc4bc7 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -44,6 +44,21 @@ Traduções em progresso:
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-ru.md b/translations/README-ru.md
index cb45ba8596..9a56012efc 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -7,6 +7,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-th.md b/translations/README-th.md
index 32263f08c8..55d126287a 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -31,6 +31,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 073c8ffdca..9f3f69f5df 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -54,6 +54,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 8dc0e98630..e987d21dcc 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -56,6 +56,21 @@
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-uk.md b/translations/README-uk.md
index bd46a4fdb1..880a64adc7 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -57,6 +57,21 @@ Microsoft.
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 0e71a77a0c..848843b73d 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -55,6 +55,21 @@
کفیل بنیں اور کوڈنگ انٹرویو یونیورسٹی کی مدد کریں!
+
+ Special thanks to:
+
+
diff --git a/translations/README-uz.md b/translations/README-uz.md
index a80d639634..71191a178b 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -17,6 +17,21 @@ Asl versiyasi: [Inglizcha](../README.md)
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
diff --git a/translations/README-vi.md b/translations/README-vi.md
index c62ef3f527..30aefb9ac6 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -34,6 +34,21 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
Become a sponsor and support Coding Interview University!
+
+ Special thanks to:
+
+
From f776cc049de036b493505881819e95d26b55a07d Mon Sep 17 00:00:00 2001
From: John Washam
Date: Mon, 3 Apr 2023 08:46:49 -0700
Subject: [PATCH 074/173] Revert "Adds sponsor."
This reverts commit ee5a16800bcb54db7baa8f769c97e5e2902cb139.
---
README.md | 17 +----------------
translations/README-af.md | 15 ---------------
translations/README-ar.md | 15 ---------------
translations/README-bg.md | 15 ---------------
translations/README-bn.md | 15 ---------------
translations/README-cn.md | 15 ---------------
translations/README-de.md | 15 ---------------
translations/README-es.md | 15 ---------------
translations/README-fa.md | 15 ---------------
translations/README-fr.md | 15 ---------------
translations/README-he.md | 15 ---------------
translations/README-hi.md | 15 ---------------
translations/README-id.md | 15 ---------------
translations/README-it.md | 15 ---------------
translations/README-ja.md | 15 ---------------
translations/README-kh.md | 15 ---------------
translations/README-ko.md | 15 ---------------
translations/README-pl.md | 15 ---------------
translations/README-ptbr.md | 15 ---------------
translations/README-ru.md | 15 ---------------
translations/README-th.md | 15 ---------------
translations/README-tr.md | 15 ---------------
translations/README-tw.md | 15 ---------------
translations/README-uk.md | 15 ---------------
translations/README-ur.md | 15 ---------------
translations/README-uz.md | 15 ---------------
translations/README-vi.md | 15 ---------------
27 files changed, 1 insertion(+), 406 deletions(-)
diff --git a/README.md b/README.md
index 473bca03cd..f9a56e7b6e 100644
--- a/README.md
+++ b/README.md
@@ -59,21 +59,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
@@ -1261,7 +1246,7 @@ Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
-- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciusponsor) - an Airbnb-style mock interview/coaching platform.
+- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
## Be thinking of for when the interview comes
diff --git a/translations/README-af.md b/translations/README-af.md
index d9daca0c19..4e2cc3ca4f 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -59,21 +59,6 @@
Word 'n bydraër en borg Kodering Onderhoud Universiteit!
-
- Special thanks to:
-
-
diff --git a/translations/README-ar.md b/translations/README-ar.md
index c733b9c24b..486e796015 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -58,21 +58,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 7ee43c2b34..a53b284234 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -55,21 +55,6 @@
Станете спонсор за да покрепите Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-bn.md b/translations/README-bn.md
index f1874278ed..4ffca73e0a 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -57,21 +57,6 @@
পৃষ্ঠপোষক হয়ে যান এবং কোডিং ইন্টারভিউ বিশ্ববিদ্যালয় সমর্থন করুন!
-
- Special thanks to:
-
-
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 9ed2cad3ab..b504ec7079 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -13,21 +13,6 @@
成为赞助商 并支持编程大学!
-
- Special thanks to:
-
-
diff --git a/translations/README-de.md b/translations/README-de.md
index 9f71fd2fa6..ad2a3b4f2f 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -49,21 +49,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-es.md b/translations/README-es.md
index 81b79e13ea..af5eebb749 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -51,21 +51,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 97fc498e55..3db8fcc272 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -55,21 +55,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 87d7f4f7f2..8099aa0fdd 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -10,21 +10,6 @@ Traductions:
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-he.md b/translations/README-he.md
index 4b15f35923..a2c1fa988b 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -22,21 +22,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 5fd9caf92f..40882cc744 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -61,21 +61,6 @@
प्रायोजक बनें
और कोडिंग साक्षात्कार विश्वविद्यालय का समर्थन करें!
-
- Special thanks to:
-
-
diff --git a/translations/README-id.md b/translations/README-id.md
index c7d2860024..47a7a2bbb4 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -7,21 +7,6 @@ Versi asli: [Bahasa Inggris](../README.md)
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-it.md b/translations/README-it.md
index d329f697e3..0cc41c8f59 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -64,21 +64,6 @@ Traduzione in Italiano a Cura di [@volpoh](https://github.com/volpoh)
Diventa uno sponsor e supporta Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 4b1a5340f0..888e118471 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -39,21 +39,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 7e5f2dc611..0f35007f96 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -51,21 +51,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 7f3c1d71f7..0ed388856d 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -56,21 +56,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 7a53110b16..080e890e5c 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -48,21 +48,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
## Co to jest?
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 4e1bbc4bc7..d52f3530e5 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -44,21 +44,6 @@ Traduções em progresso:
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 9a56012efc..cb45ba8596 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -7,21 +7,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-th.md b/translations/README-th.md
index 55d126287a..32263f08c8 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -31,21 +31,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 9f3f69f5df..073c8ffdca 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -54,21 +54,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-tw.md b/translations/README-tw.md
index e987d21dcc..8dc0e98630 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -56,21 +56,6 @@
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 880a64adc7..bd46a4fdb1 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -57,21 +57,6 @@ Microsoft.
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 848843b73d..0e71a77a0c 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -55,21 +55,6 @@
کفیل بنیں اور کوڈنگ انٹرویو یونیورسٹی کی مدد کریں!
-
- Special thanks to:
-
-
diff --git a/translations/README-uz.md b/translations/README-uz.md
index 71191a178b..a80d639634 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -17,21 +17,6 @@ Asl versiyasi: [Inglizcha](../README.md)
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 30aefb9ac6..c62ef3f527 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -34,21 +34,6 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
Become a sponsor and support Coding Interview University!
-
- Special thanks to:
-
-
From c25761b685d6503e79267d1a8643b52fd6cbec9f Mon Sep 17 00:00:00 2001
From: John Washam
Date: Sun, 23 Apr 2023 11:06:07 -0700
Subject: [PATCH 075/173] Updates private fork instructions.
---
README.md | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index f9a56e7b6e..aab6520419 100644
--- a/README.md
+++ b/README.md
@@ -247,21 +247,19 @@ Create a new branch so you can check items like this, just put an x in the brack
1. Clone to your local repo:
```
- git clone git@github.com:/coding-interview-university.git
+ git clone https://github.com//coding-interview-university.git
cd coding-interview-university
- git checkout -b progress
- git remote add jwasham https://github.com/jwasham/coding-interview-university
- git fetch --all
+ git remote add upstream https://github.com/jwasham/coding-interview-university.git
+ git remote set-url --push upstream DISABLE # so that you don't push your personal progress back to the original repo
```
1. Mark all boxes with X after you completed your changes:
```
- git add .
- git commit -m "Marked x"
- git rebase jwasham/main
- git push --set-upstream origin progress
- git push --force
+ git commit -am "Marked personal progress"
+ git pull upstream main # keep your fork up-to-date with changes from the original repo
+
+ git push # just pushes to your fork
```
## Don't feel you aren't smart enough
From 1edfb8ce6b46b6299528250ce5e6f2fdbff828cd Mon Sep 17 00:00:00 2001
From: Bahriddin <124910953+bahriddin-m@users.noreply.github.com>
Date: Tue, 25 Apr 2023 15:22:42 +0500
Subject: [PATCH 076/173] Update README-uz.md
Added websites for data structure and algorithm visualizations.
These websites help to understand how data structures and algorithms work.
---
translations/README-uz.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/translations/README-uz.md b/translations/README-uz.md
index a80d639634..ac5f862d66 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -607,6 +607,14 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- exists(key)
- get(key)
- remove(key)
+
+## Ma'lumotlar tuzilmasi vizualizatsiya (Data structure Visualizations)
+
+Animatsiya orqali ma'lumotlar tuzilmalari va algoritmlarini vizualizatsiya qilish.
+Quyidagi havolada siz ma'lumotlar tuzilmasi aslida qanday ishlashini tushunib olasiz.
+
+ - [ ] [Visualizing Algorithms](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html)
+ - [ ] [Visualgo](https://visualgo.net/en)
## Qo'shimcha bilimlar
From 5431c045799e03ca0df2d98166ba1b4656ee4553 Mon Sep 17 00:00:00 2001
From: Manibhadra Singh Rathore
<132562272+manibhadra01@users.noreply.github.com>
Date: Mon, 15 May 2023 16:44:37 +0530
Subject: [PATCH 077/173] Added a new resource
Hey, I have added a reference link for Python Guide. I came upon this article while looking for resources to learn Python. This citation, in my opinion, will enhance the content of this article. Hope that my contribution will benefit other learners.
---
programming-language-resources.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/programming-language-resources.md b/programming-language-resources.md
index bdb2cd5c88..ce83c16a4a 100644
--- a/programming-language-resources.md
+++ b/programming-language-resources.md
@@ -51,6 +51,7 @@
- [Data Structures And Algorithms in Python](https://www.youtube.com/watch?v=kQDxmjfkIKY)
- [Python Programming Tutorial](https://www.scaler.com/topics/python/)
- [Python Interview Questions](https://www.interviewbit.com/python-interview-questions)
+ - [Python Guide for Beginners](https://wiingy.com/learn/python/python-tutorial/)
- Java
- [Stanford CS106A - Programming Methodology (video)](https://see.stanford.edu/Course/CS106A)
- [Java Cheat Sheet](https://www.interviewbit.com/java-cheat-sheet)
From e91870a77560d6f99e37cee53a67879d6b25c18d Mon Sep 17 00:00:00 2001
From: Michael Sambol
Date: Tue, 13 Jun 2023 13:11:30 -0500
Subject: [PATCH 078/173] Update video count for review videos
---
README.md | 2 +-
translations/README-af.md | 2 +-
translations/README-ar.md | 2 +-
translations/README-bg.md | 2 +-
translations/README-bn.md | 2 +-
translations/README-cn.md | 2 +-
translations/README-de.md | 2 +-
translations/README-es.md | 2 +-
translations/README-fa.md | 2 +-
translations/README-fr.md | 2 +-
translations/README-he.md | 2 +-
translations/README-hi.md | 2 +-
translations/README-id.md | 2 +-
translations/README-it.md | 2 +-
translations/README-ja.md | 2 +-
translations/README-kh.md | 2 +-
translations/README-ko.md | 2 +-
translations/README-pl.md | 2 +-
translations/README-ptbr.md | 2 +-
translations/README-ru.md | 2 +-
translations/README-th.md | 2 +-
translations/README-tr.md | 2 +-
translations/README-tw.md | 2 +-
translations/README-uk.md | 2 +-
translations/README-ur.md | 2 +-
translations/README-uz.md | 2 +-
translations/README-vi.md | 2 +-
27 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
index aab6520419..d1e274646e 100644
--- a/README.md
+++ b/README.md
@@ -1199,7 +1199,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-af.md b/translations/README-af.md
index 4e2cc3ca4f..541bb724ef 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -1201,7 +1201,7 @@ Grafieke kan gebruik word om baie problmeme in rekenaar wetenskap te verteenwoor
- [ ] Reeks van 2-3 minute kort onderwerp videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (40 videos):
+- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 486e796015..992a932395 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -1277,7 +1277,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index a53b284234..d61968f4f3 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -1213,7 +1213,7 @@ pобхождам графи. Ако трябваше да напиша сорт
- [ ] Серия от 2-3 минутни кратки клипове по различни теми (23 клипа)
- [Клипове](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (40 клипа):
+- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (43 клипа):
- [Клипове](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Алгоритми I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Алгоритми II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 4ffca73e0a..89891711b9 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -1490,7 +1490,7 @@ https://github.com/jwasham/coding-interview-university
- শর্ট সাবজেক্টের ২-৩ মিনিটের সিরিজ (২৩ টি ভিডিও)
-[ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (40 টি ভিডিও):
+- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (43 টি ভিডিও):
-[ভিডিও] (https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [সেজেজউইক ভিডিও-অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
- [সেজেজিক ভিডিও-দ্বিতীয় অ্যালগোরিদম] (https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index b504ec7079..7b1da38f8a 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1192,7 +1192,7 @@
- [ ] 2-3分钟的简短主题视频系列(23个视频)
- [视频](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (40个视频):
+- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (43个视频):
- [视频](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick 视频 ── 算法I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick 视频 ── 算法II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-de.md b/translations/README-de.md
index ad2a3b4f2f..511dfe702a 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -1367,7 +1367,7 @@ Graphen können genutzt werden, um damit viele verschiedene Probleme in der Info
- [ ] Reihe mit kurzen 2-3 Minuten Videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (40 videos):
+- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-es.md b/translations/README-es.md
index af5eebb749..d783b4ad64 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -1302,7 +1302,7 @@ Es bueno si quieres repasar frecuentemente.
- [ ] Series de videos cortos sobre temas de 2-3 minutos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (40 videos):
+- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 3db8fcc272..78a72591b7 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -1181,7 +1181,7 @@ Choose one:
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 8099aa0fdd..074eb0602d 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -1275,7 +1275,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-he.md b/translations/README-he.md
index a2c1fa988b..e867fb69db 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -1286,7 +1286,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [סרטונים](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [סרטונים](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 40882cc744..b57d314539 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -1202,7 +1202,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] 2-3 मिनट के लघु विषय वीडियो की श्रृंखला (23 वीडियो)
- [वीडियो](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (40 वीडियो):
+- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (43 वीडियो):
- [वीडियो](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [सेजविक वीडियो - एल्गोरिदम I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [सेजविक वीडियो - एल्गोरिदम II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-id.md b/translations/README-id.md
index 47a7a2bbb4..1ad482729e 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -1200,7 +1200,7 @@ Graf (Graphs) dapat digunakan untuk merepresentasikan banyak masalah dalam ilmu
- [ ] Seri video subjek pendek berdurasi 2-3 menit (23 video)
- [Video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (40 video):
+- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (43 video):
- [Video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Video Sedgewick - Algoritma I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Video Sedgewick - Algoritma II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-it.md b/translations/README-it.md
index 0cc41c8f59..af1afd407d 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -1208,7 +1208,7 @@ I grafi possono essere usati per rappresentare molti problemi in informatica, pe
- [ ] Series of 2-3 minutes short subject video (23 video)
- [video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject video - Michael Sambol (40 video):
+- [ ] Series of 2-5 minutes short subject video - Michael Sambol (43 video):
- [video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick video - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick video - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 888e118471..39cf769bb0 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1244,7 +1244,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] 2〜3分短編ビデオシリーズ(23ビデオ)
- [動画](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(40ビデオ)
+- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(43ビデオ)
- [動画](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 0f35007f96..2f760964d7 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -1266,7 +1266,7 @@ Graphs អាចត្រូវបានប្រើដើម្បីបង្
- [ ] Series of 2-3 minutes short subject videos (23 វីដេអូ)
- [វីដេអូ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 វីដេអូ):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 វីដេអូ):
- [វីដេអូ](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [វីដេអូ Sedgewick - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [វីដេអូ Sedgewick - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 0ed388856d..1afb77d45f 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -1285,7 +1285,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
- [ ] 2-3분 분량의 주제별 짧은 영상 시리즈 (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (40 videos):
+- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 080e890e5c..a628f3d689 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -1239,7 +1239,7 @@ Trie to drzewo węzłów, które obsługuje operacje Znajdź i Wstaw [etc (...)]
- [ ] Seria 2-3 minutowych, krótkich filmów tematycznych (23 wideo)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (40 wideo):
+- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (43 wideo):
- [Wideo](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorytmy I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorytmy II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index d52f3530e5..503d27b1b6 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -1308,7 +1308,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] Séries de vídeos curtos (2 - 3 minutos) sobre o assunto (23 vídeos)
- [Vídeos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (40 vídeos):
+- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (43 vídeos):
- [Vídeos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-ru.md b/translations/README-ru.md
index cb45ba8596..ff9b6df133 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -1288,7 +1288,7 @@ Google не возьмёт тебя на работу.
- [ ] Серия 2-3 минутных короткие видео по темам (23 видео)
- [Видео](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (40 видео):
+- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (43 видео):
- [Видео](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-th.md b/translations/README-th.md
index 32263f08c8..3d4f6af709 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -1282,7 +1282,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 073c8ffdca..f21013adc0 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -1254,7 +1254,7 @@ Graflar, bilgisayar bilimlerinde birçok sorunu temsil etmek için kullanılabil
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 8dc0e98630..f8a0f2c7ec 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -1232,7 +1232,7 @@
- [ ] 2-3分鐘快速複習影片系列(23個影片)
- [影片](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (40個影片)
+- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (43個影片)
- [影片](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index bd46a4fdb1..1a6650ab30 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -1332,7 +1332,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (40 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 0e71a77a0c..3eb72f174f 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -1183,7 +1183,7 @@ If you need more detail on this subject, see "Sorting" section in [Additional De
- [ ] 2-3 منٹ کی مختصر سبجیکٹ ویڈیوز کی سیریز (23 ویڈیوز)
- [ویڈیوز](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (38 ویڈیوز):
+- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (43 ویڈیوز):
- [ویڈیوز](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-uz.md b/translations/README-uz.md
index ac5f862d66..70c95e8bde 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -1243,7 +1243,7 @@ Computer science da graflar bir talay masalalarni tasvirlashda ishlatiladi. Shun
- [ ] 2-3 minutlik qisqa mavzuga oid videolar seriyasi (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (40 video):
+- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (43 video):
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index c62ef3f527..4444b5847f 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -1320,7 +1320,7 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] Các video ngắn 2-3 phút (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Các video ngắn 2-5 phút - Michael Sambol (40 video)
+- [ ] Các video ngắn 2-5 phút - Michael Sambol (43 video)
- [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
---
From 534d2b0862fd1d07b7049f780e58e6e0087e6aa6 Mon Sep 17 00:00:00 2001
From: Michael Sambol
Date: Fri, 23 Jun 2023 17:11:28 -0500
Subject: [PATCH 079/173] Add review videos for AVL trees, link to code
examples
---
README.md | 6 ++++--
translations/README-af.md | 6 ++++--
translations/README-ar.md | 6 ++++--
translations/README-bg.md | 6 ++++--
translations/README-bn.md | 6 ++++--
translations/README-cn.md | 6 ++++--
translations/README-de.md | 6 ++++--
translations/README-es.md | 6 ++++--
translations/README-fa.md | 6 ++++--
translations/README-fr.md | 6 ++++--
translations/README-he.md | 6 ++++--
translations/README-hi.md | 8 +++++---
translations/README-id.md | 6 ++++--
translations/README-it.md | 6 ++++--
translations/README-ja.md | 6 ++++--
translations/README-kh.md | 6 ++++--
translations/README-ko.md | 6 ++++--
translations/README-pl.md | 6 ++++--
translations/README-ptbr.md | 6 ++++--
translations/README-ru.md | 6 ++++--
translations/README-th.md | 6 ++++--
translations/README-tr.md | 6 ++++--
translations/README-tw.md | 6 ++++--
translations/README-uk.md | 6 ++++--
translations/README-ur.md | 6 ++++--
translations/README-uz.md | 6 ++++--
translations/README-vi.md | 6 ++++--
27 files changed, 109 insertions(+), 55 deletions(-)
diff --git a/README.md b/README.md
index d1e274646e..771ea83aaf 100644
--- a/README.md
+++ b/README.md
@@ -1199,8 +1199,9 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1658,6 +1659,7 @@ You're never really done.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-af.md b/translations/README-af.md
index 541bb724ef..804154d1ea 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -1201,8 +1201,9 @@ Grafieke kan gebruik word om baie problmeme in rekenaar wetenskap te verteenwoor
- [ ] Reeks van 2-3 minute kort onderwerp videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1667,6 +1668,7 @@ Jy is nooit regtig klaar nie.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- Prakties:
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 992a932395..a7e3c6907b 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -1277,8 +1277,9 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1690,6 +1691,7 @@ You're never really done.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-bg.md b/translations/README-bg.md
index d61968f4f3..5c32b86e95 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -1213,8 +1213,9 @@ pобхождам графи. Ако трябваше да напиша сорт
- [ ] Серия от 2-3 минутни кратки клипове по различни теми (23 клипа)
- [Клипове](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (43 клипа):
- - [Клипове](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (46 клипа):
+ - [Клипове](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Алгоритми I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Алгоритми II](https://www.coursera.org/learn/algorithms-part2)
@@ -1695,6 +1696,7 @@ Mock интервюта:
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 89891711b9..9d4ef81758 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -1490,8 +1490,9 @@ https://github.com/jwasham/coding-interview-university
- শর্ট সাবজেক্টের ২-৩ মিনিটের সিরিজ (২৩ টি ভিডিও)
-[ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (43 টি ভিডিও):
- -[ভিডিও] (https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (46 টি ভিডিও):
+ - [ভিডিও](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [সেজেজউইক ভিডিও-অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
- [সেজেজিক ভিডিও-দ্বিতীয় অ্যালগোরিদম] (https://www.coursera.org/learn/algorithms-part2)
@@ -1894,6 +1895,7 @@ https://github.com/jwasham/coding-interview-university
- [এভিএল ট্রি (ভিডিও)] (https://www.coursera.org/learn/data-structures/ নির্বাচন / Qq5E0/avl-trees)
- [এভিএল ট্রি বাস্তবায়ন (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-বাস্তবায়ন)
- [স্প্লিট এবং মার্জ করুন] (https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-विसর)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- ** গাছ স্প্লে **
-প্রস্তুতিতে:
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 7b1da38f8a..2a5efe80e7 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1192,8 +1192,9 @@
- [ ] 2-3分钟的简短主题视频系列(23个视频)
- [视频](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (43个视频):
- - [视频](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (46个视频):
+ - [视频](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick 视频 ── 算法I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick 视频 ── 算法II](https://www.coursera.org/learn/algorithms-part2)
@@ -1591,6 +1592,7 @@
- [AVL 树(视频)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL 树的实现(视频)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [分离与合并](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **伸展树**
- 实际中:伸展树一般用于缓存、内存分配者、路由器、垃圾回收者、数据压缩、ropes(字符串的一种替代品,用于存储长串的文本字符)、Windows NT(虚拟内存、网络及文件系统)等的实现。
diff --git a/translations/README-de.md b/translations/README-de.md
index 511dfe702a..937a4b28c5 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -1367,8 +1367,9 @@ Graphen können genutzt werden, um damit viele verschiedene Probleme in der Info
- [ ] Reihe mit kurzen 2-3 Minuten Videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1773,6 +1774,7 @@ Algorithmen Bescheid wisst, sodass ihr eine größere Auswahl an Werkzeugen habt
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay Trees**
- In der Praxis:
diff --git a/translations/README-es.md b/translations/README-es.md
index d783b4ad64..a85a5f7826 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -1302,8 +1302,9 @@ Es bueno si quieres repasar frecuentemente.
- [ ] Series de videos cortos sobre temas de 2-3 minutos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1627,6 +1628,7 @@ Es probable que estos temas no aparezcan en una entrevista, pero los añadí par
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Árboles biselados**
- En práctica:
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 78a72591b7..7cb3895eeb 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -1181,8 +1181,9 @@ Choose one:
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1642,6 +1643,7 @@ Mock Interviews:
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 074eb0602d..a7debf35ed 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -1275,8 +1275,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1683,6 +1684,7 @@ You're never really done.
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- In practice:
diff --git a/translations/README-he.md b/translations/README-he.md
index e867fb69db..43ded72815 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -1286,8 +1286,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [סרטונים](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [סרטונים](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [סרטונים](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1695,6 +1696,7 @@ You're never really done.
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- In practice:
diff --git a/translations/README-hi.md b/translations/README-hi.md
index b57d314539..520d340666 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -1202,8 +1202,9 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] 2-3 मिनट के लघु विषय वीडियो की श्रृंखला (23 वीडियो)
- [वीडियो](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (43 वीडियो):
- - [वीडियो](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (46 वीडियो):
+ - [वीडियो](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [सेजविक वीडियो - एल्गोरिदम I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [सेजविक वीडियो - एल्गोरिदम II](https://www.coursera.org/learn/algorithms-part2)
@@ -1663,9 +1664,10 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
डेटा संरचनाओं के लिए आकर्षक जिसे एक बार बनाया जा सकता है और पुनर्निर्माण के बिना लोड किया जा सकता है, जैसे भाषा
शब्दकोश (या प्रोग्राम डिक्शनरी, जैसे असेंबलर या दुभाषिया के ऑपकोड)
- [MIT AVL ट्री / AVL सॉर्ट (वीडियो)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- - [एवीएल पेड़ (वीडियो)](https://www.coursera.org/learn/data-structs/lecture/Qq5E0/avl-trees)
+ - [एवीएल पेड़ (वीडियो)](https://www.coursera.org/learn/data-structs/lecture/Qq5E0/avl-trees)
- [एवीएल ट्री इंप्लीमेंटेशन (वीडियो)](https://www.coursera.org/learn/data-structs/lecture/PKEBC/avl-tree-implementation)
- [स्प्लिट एंड मर्ज](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **स्प्ले ट्री**
- प्रयोग में:
diff --git a/translations/README-id.md b/translations/README-id.md
index 1ad482729e..51e1b097cd 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -1200,8 +1200,9 @@ Graf (Graphs) dapat digunakan untuk merepresentasikan banyak masalah dalam ilmu
- [ ] Seri video subjek pendek berdurasi 2-3 menit (23 video)
- [Video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (43 video):
- - [Video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (46 video):
+ - [Video](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Video Sedgewick - Algoritma I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Video Sedgewick - Algoritma II](https://www.coursera.org/learn/algorithms-part2)
@@ -1605,6 +1606,7 @@ Anda tidak pernah benar-benar selesai.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [Implementasi AVL Tree (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split Dan Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- Dalam praktek:
diff --git a/translations/README-it.md b/translations/README-it.md
index af1afd407d..14a87f3e45 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -1208,8 +1208,9 @@ I grafi possono essere usati per rappresentare molti problemi in informatica, pe
- [ ] Series of 2-3 minutes short subject video (23 video)
- [video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject video - Michael Sambol (43 video):
- - [video](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject video - Michael Sambol (46 video):
+ - [video](https://www.youtube.com/@MichaelSambol)
+ - [code examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick video - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick video - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1674,6 +1675,7 @@ You're never really done.
- [AVL Trees (Video in Inglese)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (Video in Inglese)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 39cf769bb0..18e0a40f1e 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1244,8 +1244,9 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] 2〜3分短編ビデオシリーズ(23ビデオ)
- [動画](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(43ビデオ)
- - [動画](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(46ビデオ)
+ - [動画](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1635,6 +1636,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [AVL木(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL木実装(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [スプリットアンドマージ](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **スプレッド木**
- 実際には:
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 2f760964d7..e6bca72b14 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -1266,8 +1266,9 @@ Graphs អាចត្រូវបានប្រើដើម្បីបង្
- [ ] Series of 2-3 minutes short subject videos (23 វីដេអូ)
- [វីដេអូ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 វីដេអូ):
- - [វីដេអូ](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 វីដេអូ):
+ - [វីដេអូ](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [វីដេអូ Sedgewick - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [វីដេអូ Sedgewick - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1673,6 +1674,7 @@ Mock Interviews:
- [AVL Trees (វីដេអូ)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (វីដេអូ)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- ក្នុងការអនុវត្ត ៖
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 1afb77d45f..4d8a53727b 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -1285,8 +1285,9 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
- [ ] 2-3분 분량의 주제별 짧은 영상 시리즈 (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1694,6 +1695,7 @@ Challenge repos:
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-pl.md b/translations/README-pl.md
index a628f3d689..98295aa719 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -1239,8 +1239,9 @@ Trie to drzewo węzłów, które obsługuje operacje Znajdź i Wstaw [etc (...)]
- [ ] Seria 2-3 minutowych, krótkich filmów tematycznych (23 wideo)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (43 wideo):
- - [Wideo](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (46 wideo):
+ - [Wideo](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorytmy I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorytmy II](https://www.coursera.org/learn/algorithms-part2)
@@ -1647,6 +1648,7 @@ Tak na prawdę nigdy nie skończyłeś.
- [AVL Trees (wideo)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (wideo)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 503d27b1b6..69a394713b 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -1308,8 +1308,9 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] Séries de vídeos curtos (2 - 3 minutos) sobre o assunto (23 vídeos)
- [Vídeos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (43 vídeos):
- - [Vídeos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (46 vídeos):
+ - [Vídeos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1654,6 +1655,7 @@ Esses tópicos provavelmente não aparecerão em uma entrevista, mas eu adicione
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees) (Árvores AVl - vídeo)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation) (Implementação de Árvores AVL - vídeo)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge) (Dividir e Fundir)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Árvores Splay**
- Ná prática:
diff --git a/translations/README-ru.md b/translations/README-ru.md
index ff9b6df133..1fb7e919f1 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -1288,8 +1288,9 @@ Google не возьмёт тебя на работу.
- [ ] Серия 2-3 минутных короткие видео по темам (23 видео)
- [Видео](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (43 видео):
- - [Видео](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (46 видео):
+ - [Видео](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1687,6 +1688,7 @@ Google не возьмёт тебя на работу.
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- In practice:
diff --git a/translations/README-th.md b/translations/README-th.md
index 3d4f6af709..3c507b365f 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -1282,8 +1282,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1625,6 +1626,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- In practice:
diff --git a/translations/README-tr.md b/translations/README-tr.md
index f21013adc0..0b784ea1ba 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -1254,8 +1254,9 @@ Graflar, bilgisayar bilimlerinde birçok sorunu temsil etmek için kullanılabil
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1677,6 +1678,7 @@ You're never really done.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-tw.md b/translations/README-tw.md
index f8a0f2c7ec..3508158202 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -1232,8 +1232,9 @@
- [ ] 2-3分鐘快速複習影片系列(23個影片)
- [影片](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (43個影片)
- - [影片](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (46個影片)
+ - [影片](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1601,6 +1602,7 @@ Coding面試題目影片:
- [AVL Trees (影片)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (影片)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **伸縮樹Splay tree**
- 實際上:
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 1a6650ab30..00c9464e63 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -1332,8 +1332,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (43 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1675,6 +1676,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- In practice:
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 3eb72f174f..702cb9866c 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -1183,8 +1183,9 @@ If you need more detail on this subject, see "Sorting" section in [Additional De
- [ ] 2-3 منٹ کی مختصر سبجیکٹ ویڈیوز کی سیریز (23 ویڈیوز)
- [ویڈیوز](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (43 ویڈیوز):
- - [ویڈیوز](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (46 ویڈیوز):
+ - [ویڈیوز](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1639,6 +1640,7 @@ Mock Interviews:
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- In practice:
diff --git a/translations/README-uz.md b/translations/README-uz.md
index 70c95e8bde..d4e44265a0 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -1243,8 +1243,9 @@ Computer science da graflar bir talay masalalarni tasvirlashda ishlatiladi. Shun
- [ ] 2-3 minutlik qisqa mavzuga oid videolar seriyasi (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (43 video):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (46 video):
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
@@ -1656,6 +1657,7 @@ Hech qachon tugatgan bo'lmaymiz.
- [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **Splay trees**
- Amalda:
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 4444b5847f..2424de0db0 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -1320,8 +1320,9 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] Các video ngắn 2-3 phút (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Các video ngắn 2-5 phút - Michael Sambol (43 video)
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
+- [ ] Các video ngắn 2-5 phút - Michael Sambol (46 video)
+ - [Videos](https://www.youtube.com/@MichaelSambol)
+ - [Code Examples](https://github.com/msambol/dsa)
---
@@ -1648,6 +1649,7 @@ Bạn không bao giờ thực sự học xong!
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- Trong thực tế:
From f9c853f9095a7bcbc8d1ed632e049bec87a19d84 Mon Sep 17 00:00:00 2001
From: Rishikesh
Date: Thu, 6 Jul 2023 15:09:16 +0530
Subject: [PATCH 080/173] Updated Readme.md
---
README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 771ea83aaf..0e33f7d724 100644
--- a/README.md
+++ b/README.md
@@ -776,15 +776,15 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- [ ] [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] Implement:
- - [ ] insert // insert value into tree
+ - [ ] [insert // insert value into tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
- [ ] get_node_count // get count of values stored
- [ ] print_values // prints the values in the tree, from min to max
- [ ] delete_tree
- [ ] is_in_tree // returns true if given value exists in the tree
- - [ ] get_height // returns the height in nodes (single node's height is 1)
+ - [ ] [get_height // returns the height in nodes (single node's height is 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
- [ ] get_min // returns the minimum value stored in the tree
- [ ] get_max // returns the maximum value stored in the tree
- - [ ] is_binary_search_tree
+ - [ ] [is_binary_search_tree](https://leetcode.com/problems/validate-binary-search-tree/)
- [ ] delete_value
- [ ] get_successor // returns next-highest value in tree after given value, -1 if none
@@ -1102,7 +1102,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
- Context switching
- - How context switching is initiated by the operating system and underlying hardware?
+ - [How context switching is initiated by the operating system and underlying hardware?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
- [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- [ ] [CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
- [ ] concurrency in Python (videos):
@@ -1379,7 +1379,7 @@ You're never really done.
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
+- [ ] [8 steps guide to ace your system design interview](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
- [ ] [How to ace a systems design interview](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
From 1f231e8557d754d1986219e40e54f16fd1f02fa3 Mon Sep 17 00:00:00 2001
From: Zain Arshad
Date: Tue, 18 Jul 2023 11:27:14 +0500
Subject: [PATCH 081/173] Fixed duplicated bullet point
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index 0e33f7d724..7f9b94d678 100644
--- a/README.md
+++ b/README.md
@@ -1214,7 +1214,6 @@ Graphs can be used to represent many problems in computer science, so this secti
- Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
- ["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
- - Detailed guide on how to set up your resume from scratch, write effective resume content, optimize it, and test your resume
## Interview Process & General Interview Prep
From 7c101779758ad06d3bac4a84a033981747254775 Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Sun, 6 Aug 2023 12:31:37 +0800
Subject: [PATCH 082/173] Update section of Chinese documents
---
translations/README-cn.md | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 2a5efe80e7..b8b5c3fc25 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1,12 +1,13 @@
# 编程面试大学
-原先我为了成为一个软件工程师而建立这份简单的学习主题清单, 但这份清单随着时间的推移而膨胀成今天这样。在做完这份清单上的每个目标后,[我成为了 Amazon 的软件开发工程师](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! 你或许不需要像我一样学习这么多。但是,让你成为一位称职工程师所需要的知识都在这里了。
-
-我每天自学8~12小时,这样持续了好几个月。这是我的故事:[为什么我为了 Google 面试而自学了8个月](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)。
-
-在这份清单内的主题会让你拥有足够的知识去面对几乎每家软件公司的技术面试,包括科技巨头:Amazon、Facebook、Google,以及 Microsoft。
-
-祝你好运!
+> 原先我为了成为一个软件工程师而建立这份简单的学习主题清单, 但这份清单随着时间的推移而膨胀成今天这样。在做完这份清单上的每个目标后,[我成为了 Amazon 的软件开发工程师](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! 你或许不需要像我一样学习这么多。但是,让你成为一位称职工程师所需要的知识都在这里了。
+>
+>我每天自学8~12小时,这样持续了好几个月。这是我的故事:[为什么我为了 Google 面试而自学了8个月](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)。
+>
+> **请注意:** 你不需要像我一样那么努力学习。我在一些不必要的事情上浪费了很多时间。关于这个问题下面有更多信息。我会帮助你节省宝贵的时间,让你达到目标。
+> 在这份清单内的主题会让你拥有足够的知识去面对几乎每家软件公司的技术面试,包括科技巨头:Amazon、Facebook、Google,以及 Microsoft。
+>
+> *祝你好运!*
From acc2011a5c1f8b171a63326fca2a9b95e3b9db3e Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Mon, 7 Aug 2023 22:23:57 +0800
Subject: [PATCH 083/173] update Readme-cn.md
---
translations/README-cn.md | 543 +++++++++++++++++++++-----------------
1 file changed, 308 insertions(+), 235 deletions(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index b8b5c3fc25..f0048defb4 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -7,7 +7,7 @@
> **请注意:** 你不需要像我一样那么努力学习。我在一些不必要的事情上浪费了很多时间。关于这个问题下面有更多信息。我会帮助你节省宝贵的时间,让你达到目标。
> 在这份清单内的主题会让你拥有足够的知识去面对几乎每家软件公司的技术面试,包括科技巨头:Amazon、Facebook、Google,以及 Microsoft。
>
-> *祝你好运!*
+> **祝你好运!**
@@ -19,32 +19,43 @@
## 这是?
-这是我为了从 web 开发者(自学、非计算机科学学位)蜕变至 Google 软件工程师所制定的计划,其内容历时数月。
-

-这份清单适用于 **新手软件工程师**,或者想从软件/网站开发转向软件工程(需要计算机科学知识)的人员。如果你有多年的经验,并且声称拥有多年的软件工程经验,并且期待一次更艰难的面试。
+这是我为成为一家大公司的软件工程师制定的多月学习计划。
+
+**要求:**
+* 一点编程经验(变量、循环、方法/函数等)
+* 耐心
+* 时间
-如果你具有多年的软件/网页开发经验,请注意,大型软件公司(例如 Google,Amazon,Facebook 和 Microsoft)将软件工程视为不同于软件/网页开发,并且它们需要计算机科学知识。
+注意,这是一份关于 **软件工程** 的学习计划,而不是前端工程或全栈开发。
+这些职业路径有很多详细的路线图和课程资料可以在其他地方找到(请参阅 https://roadmap.sh/ 获取更多信息)。
-如果你想成为可靠性工程师或运维工程师,请从可选列表(网络,安全)中学习更多。
+在大学计算机科学专业中,有很多知识需要学习,但是只掌握大约75%的内容就足够应对面试了,这也是我在这里涵盖的内容。
+如果你想进行完整的自学计算机科学项目,可以参考Kamran Ahmed的计算机科学路线图:https://roadmap.sh/computer-science。
---
## 目录
+### 学习计划
+
- [这是?](#这是)
- [为何要用到它?](#为何要用到它)
- [如何使用它](#如何使用它)
- [不要觉得自己不够聪明](#不要觉得自己不够聪明)
- [相关视频资源](#相关视频资源)
-- [面试过程 & 通用的面试准备](#面试过程--通用的面试准备)
-- [为你的面试选择一种语言](#为你的面试选择一种语言)
-- [书单](#书单)
-- [在你开始之前](#在你开始之前)
-- [没有包含的内容](#没有包含的内容)
-- [必备知识](#必备知识)
-- [日常计划](#日常计划)
+- [选择编程语言](#choose-a-programming-language)
+- [数据结构和算法书籍](#books-for-data-structures-and-algorithms)
+- [面试准备书](#interview-prep-books)
+- [不要犯我的错误](#dont-make-my-mistakes)
+- [你不会看到的涵盖内容](#what-you-wont-see-covered)
+- [每日计划](#the-daily-plan)
+- [编码问题练习](#coding-question-practice)
+- [编码问题](#coding-problems)
+
+### 学习的主题
+
- [算法复杂度 / Big-O / 渐进分析法](#算法复杂度--big-o--渐进分析法)
- [数据结构](#数据结构)
- [数组(Arrays)](#数组arrays)
@@ -56,7 +67,7 @@
- [二分查找(Binary search)](#二分查找binary-search)
- [按位运算(Bitwise operations)](#按位运算bitwise-operations)
- [树(Trees)](#树trees)
- - [树 —— 笔记 & 背景](#树--笔记--背景)
+ - [树 —— 简介](#树--简介)
- [二叉查找树(Binary search trees):BSTs](#二叉查找树binary-search-treesbsts)
- [堆(Heap) / 优先级队列(Priority Queue) / 二叉堆(Binary Heap)](#堆heap--优先级队列priority-queue--二叉堆binary-heap)
- [平衡查找树(Balanced search trees)(基本概念,非细节)](#平衡查找树balanced-search-trees)
@@ -76,7 +87,6 @@
- [更多知识](#更多知识)
- [递归](#递归recursion)
- [动态规划](#动态规划dynamic-programming)
- - [面向对象编程](#面向对象编程)
- [设计模式](#设计模式)
- [组合 & 概率](#组合combinatorics-n-中选-k-个--概率probability)
- [NP, NP-完全和近似算法](#np-np-完全和近似算法)
@@ -90,19 +100,23 @@
- [Unicode](#unicode)
- [字节顺序](#字节序Endianness)
- [网络](#网络视频)
-- [系统设计、可伸缩性、数据处理](#系统设计可伸缩性数据处理)(如果你有4+年经验)
- [终面](#终面)
-- [编程问题练习](#编程问题练习)
-- [编程练习和挑战](#编程练习和挑战)
-- [当你临近面试时](#当你临近面试时)
-- [你的简历](#你的简历)
-- [当面试来临的时候](#当面试来临的时候)
-- [问面试官的问题](#问面试官的问题)
-- [当你获得了梦想的职位](#当你获得了梦想的职位)
----------------- 下面的内容是可选的 ----------------
+### 获得工作机会
+
+- [更新你的简历](#update-your-resume)
+- [找工作](#find-a-job)
+- [面试流程和面试准备p](#interview-process--general-interview-prep)
+- [面试前需要考虑的事项](#be-thinking-of-for-when-the-interview-comes)
+- [准备一些问题以便问面试官](#have-questions-for-the-interviewer)
+- [一旦你得到了工作](#once-youve-got-the-job)
+
+**---------------- 以下所有内容均为可选项 ----------------**
+
+### 可选的额外主题和资源
- [额外书籍](#额外书籍)
+- [系统设计、可扩展性、数据处理](#system-design-scalability-data-handling) (如果你有4年以上的工作经验)
- [附加学习](#附加学习)
- [编译器](#编译器)
- [Emacs and vi(m)](#emacs-and-vim)
@@ -140,7 +154,6 @@
- [线性规划](#线性规划linear-programming视频)
- [几何:凸包(Geometry, Convex hull)](#几何凸包geometry-convex-hull视频)
- [离散数学](#离散数学)
- - [机器学习](#机器学习machine-learning)
- [一些主题的额外内容](#一些主题的额外内容)
- [视频系列](#视频系列)
- [计算机科学课程](#计算机科学课程)
@@ -150,7 +163,16 @@
## 为何要用到它?
-当我开始这个项目时,我不知道堆和栈的区别,不了解时间复杂度(Big-O)、树,或如何去遍历一个图。如果非要我去编写一个排序算法的话,我只能说我所写的肯定是很糟糕。一直以来,我所用的任何数据结构都是内建于编程语言当中。至于它们在背后是如何运作,对此我一概不清楚。此外,以前的我并不需要对内存进行管理,最多就只是在一个正在执行的进程抛出了“内存不足”的错误后,才会去找解决方法。在我的编程生涯中,虽然我有用过多维数组,也用过关联数组成千上万次,但我从来没有自己实现过数据结构。
+如果你想在一家大公司担任软件工程师,这些是你必须了解的事情。
+
+如果你错过了计算机科学的学位,就像我一样,这将帮助你迎头赶上,并节省四年的时间。
+
+当我开始这个项目时,我对堆栈和堆没有任何了解,
+也不知道大O表示法或者关于树的任何东西,也不知道如何遍历图形。
+如果让我编写一个排序算法,相信我它会很糟糕。
+我曾经使用过的每种数据结构都是内置在语言中的,并且我完全不知道它们在底层是如何工作的。
+除非运行中的进程出现“内存不足”错误,否则我从来没有管理过内存,并且那时候就需要找到一种解决方法。
+在我的生活中,我使用过一些多维数组和成千上万个关联数组,但从未从头开始创建数据结构。
这是一个漫长的计划,以至于花费了我数月的时间。若你早已熟悉大部分的知识,那么也许能节省大量的时间。
@@ -159,7 +181,6 @@
下面所有的东西都只是一个概述。因此,你需要由上而下逐一地去处理它。
在学习过程中,我使用 GitHub 特殊语法的 Markdown 去检查计划的进展,包括使用包含任务进度的任务列表。
-
- [更多关于 Github-flavored Markdown 的详情](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
### 如果你不想使用 Git
@@ -172,28 +193,28 @@
### 如果你不介意 Git
-1. 通过单击 Fork 按钮来 fork GitHub 仓库:`https://github.com/jwasham/coding-interview-university`
+创建一个新的分支,这样你就可以检查类似这样的项目了,只需在方括号中放入一个x:[x]
+
+1. 在 GitHub 上 Fork 该仓库: 点击 Fork 按钮,将 `https://github.com/jwasham/coding-interview-university` 仓库复制到你的 GitHub 账号中。

2. 克隆项目到本地:
- ```sh
+ ```
git clone git@github.com:/coding-interview-university.git
cd coding-interview-university
- git checkout -b progress
- git remote add jwasham https://github.com/jwasham/coding-interview-university
- git fetch --all
+ git remote add upstream https://github.com/jwasham/coding-interview-university
+ git remote set-url --push upstream DISABLE # 这样你就不会将个人进展推回到原始仓库了。
```
3. 在你完成了一些修改后,在框框中打 x:
- ```sh
- git add .
- git commit -m "Marked x"
- git rebase jwasham/main
- git push --set-upstream origin progress
- git push --force
+ ```
+ git commit -am "Marked personal progress"
+ git pull upstream main # 将您的分支与原始仓库中的更改保持最新
+
+ git push # just pushes to your fork
```
## 不要觉得自己不够聪明
@@ -205,36 +226,44 @@
## 相关视频资源
-部分视频只能通过在 Coursera 或者 Edx 课程上注册登录才能观看。这些视频被称为网络公开课程(MOOC)。有时候某些课程需要等待好几个月才能获取,这期间你无法观看这些课程的影片。
-
-很感谢你能帮我把网络公开课程的视频链接转换成公开的,可持续访问的视频源,比如 YouTube 视频,以代替那些在线课程的视频。此外,一些大学的讲座视频也是我所青睐的。
-
-## 面试过程 & 通用的面试准备
-
-- [ ] [ABC:不要停止编程(Always Be Coding)](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [白板编程(Whiteboarding)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [揭秘技术招聘](https://www.youtube.com/watch?v=N233T0epWTs)
-- [ ] 如何在科技四强企业中获得一份工作:
- - [ ] [“如何在科技四强企业中获得一份工作 —— Amazon、Facebook、Google 和 Microsoft”(视频)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-- [ ] 解密开发类面试第一集:
- - [ ] [Gayle L McDowell —— 解密开发类面试(视频)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [解密开发类面试 —— 作者 Gayle Laakmann McDowell(视频)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] 解密 Facebook 编码面试:
- - [方法](https://www.youtube.com/watch?v=wCl9kvQGHPI)
- - [问题演练](https://www.youtube.com/watch?v=4UWDyJq8jZg)
-- [ ] 准备课程:
- - [ ] [软件工程师面试发布(收费课程)](https://www.udemy.com/software-engineer-interview-unleashed):
- - 从前 Google 面试官身上学习如何准备自己,让自己能够应付软件工程师的面试。
- - [ ] [Python 数据结构,算法和面试(收费课程)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - Python 面试准备课程,内容涉及数据结构,算法,模拟面试等。
- - [ ] [Python 的数据结构和算法简介(Udacity 免费课程)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
- - 免费的 Python 数据结构和算法课程。
- - [ ] [数据结构和算法纳米学位!(Udacity 收费纳米学位)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
- - 获得超过100种数据结构和算法练习以及指导的动手练习,专门导师帮助你在面试和职场中做好准备。
- - [ ] [探究行为面试(Educative 免费课程)](https://www.educative.io/courses/grokking-the-behavioral-interview):
- - 很多时候,不是你的技术能力会阻碍你获得理想的工作,而是你在行为面试中的表现。
-
-## 为你的面试选择一种语言
+部分视频只能通过在 Coursera 或者 Edx 课程上注册登录才能观看。
+这些视频被称为网络公开课程(MOOC)。有时候某些课程需要等待好几个月才能获取,这期间你无法观看这些课程的影片。
+
+很感谢你能帮我把网络公开课程的视频链接转换成公开的,可持续访问的视频源,
+比如 YouTube 视频,以代替那些在线课程的视频。
+此外,一些大学的讲座视频也是我所青睐的。
+
+## 选择编程语言
+
+你需要为你做的编程面试选择一种编程语言,
+但你也需要找到一种可以用来学习计算机科学概念的语言。
+
+最好是同一种语言,这样你只需精通其中一种。
+
+### 对于这个学习计划
+
+在这个学习计划中,我主要使用了两种编程语言:C和Python。
+
+* C: 非常底层。它允许你处理指针和内存的分配与释放,因此你能够深入理解数据结构和算法。
+ 在像Python或Java这样的高级语言中,这些细节被隐藏起来。在日常工作中,这是很好的,
+ 但当你学习这些底层数据结构时,感受它们与计算机硬件的联系也是非常有益的。
+ - C 语言无处不在。在你学习的过程中,你会在书籍、讲座、视频以及**任何地方**看到C语言的例子。
+ - [《C程序设计语言(第2版)》](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - 这是一本简短的书,但它会让你很好地掌握C语言,只要稍微练习一下,
+ 你很快就能熟练使用。理解C语言有助于你了解程序和内存是如何工作的。
+ - 你不需要深入研究这本书(甚至不用读完它)。只要阅读到你感觉舒服,并能写一些C语言的代码就可以了。
+ - [书中问题的答案](https://github.com/lekkas/c-algorithms)
+* Python: 现代且非常灵活,我学习它是因为它非常实用,同时在面试中也能让我写更少的代码。
+
+这是我的个人喜好,当然你可以根据自己的偏好来选择。
+
+也许你并不需要,但以下是一些学习新编程语言的网站:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
+
+### 对于你的编程面试
你可以在编程这一环节,使用一种自己用起来较为舒适的语言去完成编程,但对于大公司,你只有三种固定的选择:
@@ -247,221 +276,271 @@
- JavaScript
- Ruby
-我之前写过一篇关于在面试时选择编程语言的文章:[为编程面试选择一种语言](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)。
+这是我写的一篇关于选择面试语言的文章:
+[为编程面试选择一种语言](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/)。
+这是我发布帖子所基于的原始文章: [Choosing a Programming Language for Interviews](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
你需要对你所选择的语言感到非常舒适且足够了解。
更多关于语言选择的阅读:
-
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
+- [选择适合你的编程面试的语言](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
[在此查看相关语言的资源](../programming-language-resources.md)
-由于我正在学习C、C++ 和 Python,因此在下面你会看到部分关于它们的学习资料。相关书籍请看文章的底部。
-
-## 书单
-
-为了节省你的时间,以下是比我使用过的更缩减的书单。
+## 数据结构和算法的书籍
-### 面试准备
+这本书将为你的计算机科学打下基础。
-- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - 附有 C++ 和 Java 解答
- - 这是在练习 Cracking the Coding Interview 之前一个很好的热身
- - 不太困难,大多数问题可能比你在面试中看到的要容易(根据我的阅读)
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - 附有 Java 答案
+只需选择一种你感到舒适的语言。你将会进行大量阅读和编码工作。
-### 如果你有额外的时间:
+### C
-选择以下之一:
+- [C语言中的算法,第1-5部分(捆绑包),第3版](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - 基础知识,数据结构,排序,搜索和图算法
-- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [ ] [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
-- [ ] Elements of Programming Interviews (Java version)
- - [书](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
- - [配套项目──书中每个问题的方法和测试用例](https://github.com/gardncl/elements-of-programming-interviews)
-
-### 编程语言精选
+### Python
-**你需要选择面试语言(请参见上文)。**
+- [ ] [Python数据结构和算法](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - 作者:Goodrich、Tamassia、Goldwasser
+ - 我非常喜爱这本书,它包含了所有东西
+ - 很 Python 的代码
+ - 我的读书报告:https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-这是我按语言给出的建议。我没有所有语言的资源,欢迎贡献。
+### Java
-如果你通读其中之一,你应该具备了开始解决编程问题所需的所有数据结构和算法知识。除非你需要复习,否则**你可以跳过此项目中的所有视频讲座**。
+你的选择:
-[额外编程语言的精选资源](https://github.com/jwasham/coding-interview-university/blob/main/programming-language-resources.md)
+- Goodrich, Tamassia, Goldwasser
+ - [Java数据结构与算法](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - [算法(第4版)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - 免费Coursera课程,涵盖该书内容(由作者授课!):
+ - [算法I](https://www.coursera.org/learn/algorithms-part1)
+ - [算法II](https://www.coursera.org/learn/algorithms-part2)
### C++
-我没有读过这两本书,但是它们颇受好评,作者是 Sedgewick,他非常厉害。
+你的选择:
-- [ ] [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/)
-- [ ] [Open Data Structures in C++](https://opendatastructures.org/ods-cpp.pdf)
- - 丰富而详细的数据结构和算法集合
- - 非常适合初学者
+- Goodrich, Tamassia, and Mount
+ - [C++数据结构与算法(第2版)](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [C++算法(第1-4部分):基础知识,数据结构,排序,搜索](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - [C++算法第5部分:图算法](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-如果你有更好的 C++ 书籍,请告诉我。我正在搜集全面的资源。
+## 面试准备书籍
-### Java
+你不需要买一堆这些。老实说,《破解编程面试》可能已经足够了,
+但我买了更多来给自己更多的练习。但我总是做得太多。
-- [ ] [算法(Sedgewick 和 Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - 包含课程内容(和Sedgewick!)的视频
- - [第一部分](https://www.coursera.org/learn/algorithms-part1)
- - [第二部分](https://www.coursera.org/learn/algorithms-part2)
+这两个都是我买的,他们给了我大量的练习。
-或者:
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - 提供C++和Java语言的答案
+ - 这本书是准备《Cracking the Coding Interview》的很好热身书
+ - 难度适中。大多数问题可能比实际面试中遇到的问题要简单(根据我所读的内容)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - 提供Java语言的答案
-- [ ] [Java 数据结构和算法](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- - 作者:Goodrich、Tamassia、Goldwasser
- - 用作 UC Berkeley 的 CS 入门课程的可选教材
- - 请参阅下面有关 Python 版本的我的读书报告,这本书涵盖了相同的主题
+### 如果你有很多额外的时间:
-### Python
+选择一个:
-- [ ] [Python数据结构和算法](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - 作者:Goodrich、Tamassia、Goldwasser
- - 我非常喜爱这本书,它包含了所有东西
- - 很 Python 的代码
- - 我的读书报告:[startupnextdoor.com/book-report-data-structures-and-algorithms-in-python](https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/)
-- [ ] [Open Data Structures in Python](https://opendatastructures.org/ods-python.pdf)
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+ - [配套项目-本书中每个问题的方法存根和测试用例](https://github.com/gardncl/elements-of-programming-interviews)
-## 在你开始之前
+## 不要犯我的错误
-该列表已经持续更新了很长的一段时间,所以,我们的确很容易会对其失去控制。
+这个列表在很多个月里不断增长,是的,它变得失控了。
-这里列出了一些我所犯过的错误,希望你不要重滔覆辙。
+以下是我犯过的一些错误,这样你就能有更好的体验。而且你将节省数月时间。
### 1. 你不可能把所有的东西都记住
-就算我观看了数小时的视频,并记录了大量的笔记,几个月后的我,仍然会忘却其中大部分的东西。所以,我花了3天翻阅我的笔记,并制作成抽认卡(flashcard)帮助我复习:
+我看了数小时的视频并做了大量笔记,几个月后有很多东西我都不记得了。
+我花了三天时间浏览我的笔记并制作闪卡,以便进行复习。其实,并不需要那么多知识。
请阅读以下的文章以免重蹈覆辙:
[记住计算机科学知识](https://startupnextdoor.com/retaining-computer-science-knowledge/)。
-有人推荐给我的课程(但我还沒看过):[学习如何学习](https://www.coursera.org/learn/learning-how-to-learn)。
-
### 2. 使用抽认卡
为了解决善忘的问题,我制作了一个抽认卡的网页,用于添加两种抽认卡:一般的及带有代码的。每种卡都会有不同的格式设计。
-
而且,我还以移动设备为先去设计这些网页,以使得在任何地方,我都能通过我的手机及平板去回顾知识。
你也可以免费制作属于你自己的抽认卡网站:
- [抽认卡页面的代码仓库](https://github.com/jwasham/computer-science-flash-cards)
+
+**我不建议使用我的闪卡**。它们太多了,而且大部分都是你不需要的琐事。
+
+但是如果你不想听我的话,那就随你吧:
- [我的抽认卡数据库 ── 旧 1200 张](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db)
- [我的抽认卡数据库 ── 新 1800 张](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db)
-有一点需要记住的是,我做事有点过头,以至于卡片都覆盖到所有的东西上,从汇编语言和 Python 的细枝末节,到机器学习和统计都被覆盖到卡片上。而这种做法,对于要求来说是多余的。
+有一点需要记住的是,我做事有点过头,以至于卡片都覆盖到所有的东西上,从汇编语言和 Python 的细枝末节,到机器学习和统计都被覆盖到卡片上。
+而这种做法,对于要求来说是多余的。
+
+**在抽认卡上做笔记:** 若你第一次发现你知道问题的答案时,先不要急着把其标注成“已知”。
+反复复习这张抽认卡,直到每次都能答对后才是真正学会了这个问题。
+反复地问答可帮助你深刻记住该知识点。
+
+这里有个替代我抽认卡的网站 [Anki](http://ankisrs.net/),很多人向我推荐过它。
+这个网站用同一个字卡重复出现的方式让你牢牢地记住知识。
+这个网站非常容易使用,支持多平台,并且有云端同步功能。在 iOS 平台上收费25美金,其他平台免费。
+
+这是我用 Anki 这个网站里的格式所储存的抽认卡资料库: https://ankiweb.net/shared/info/25173560 (感谢 [@xiewenya](https://github.com/xiewenya))。
-**在抽认卡上做笔记:** 若你第一次发现你知道问题的答案时,先不要急着把其标注成“已知”。反复复习这张抽认卡,直到每次都能答对后才是真正学会了这个问题。反复地问答可帮助你深刻记住该知识点。
+一些学生提到了关于空白间距的格式问题,可以通过以下方法进行修复:打开卡片组,编辑卡片,点击"卡片"选项,选择"样式"单选按钮,在卡片类中添加成员 "white-space: pre;"。
-这里有个替代我抽认卡的网站 [Anki](http://ankisrs.net/),很多人向我推荐过它。这个网站用同一个字卡重复出现的方式让你牢牢地记住知识。这个网站非常容易使用,支持多平台,并且有云端同步功能。在 iOS 平台上收费25美金,其他平台免费。
+### 3. 在学习过程中做编程面试题
-这是我用 Anki 这个网站里的格式所储存的抽认卡资料库: ankiweb.net/shared/info/25173560 (感谢 [@xiewenya](https://github.com/xiewenya))
+**这非常重要。**
-### 3. 复习,复习,再复习
+在学习数据结构和算法的同时,开始做编程面试题。
-我留有一组 ASCII 码表、OSI 堆栈、Big-O 记号及更多的抽认卡,以便在空余的时候可以学习。
+你需要将所学知识应用于解决问题,否则你会忘记。我曾经犯过这个错误。
-编程累了就休息半个小时,并去复习你的抽认卡。
+一旦你学完一个主题,并且对它有了一定的掌握,比如 **链表(linked lists)**:
+1. 打开其中一本[编程面试书籍](#interview-prep-books)(或下方列出的编程问题网站之一)。
+1. 关于链表的问题,请提出2或3个。
+1. 继续学习下一个主题。
+1. 稍后,回来再做另外2或3个链表问题。
+1. 使用这种方法来学习每个新主题。
+
+**在学习这些内容的过程中不断做问题,而不是之后。**
+
+你被雇佣的不是因为你的知识,而是因为你如何应用这些知识。
+
+下面列出了许多资源供你参考。继续前进吧。
### 4. 专注
-在学习的过程中,往往会有许多令人分心的事占据着我们宝贵的时间。因此,专注和集中注意力是非常困难的。放点纯音乐能帮上一些忙。
+在学习的过程中,往往会有许多令人分心的事占据着我们宝贵的时间。
+因此,专注和集中注意力是非常困难的。放点纯音乐能帮上一些忙。
## 没有包含的内容
有一些熟悉且普遍的技术在此未被谈及到:
-- SQL
- Javascript
-- HTML、CSS 和其他前端技术
+- HTML,CSS和其他前端技术
+- SQL
## 日常计划
-部分问题可能会花费一天的时间去学习,而有些则会花费多天。当然,有些学习并不需要我们懂得如何实现。
+这门课涵盖了很多主题。每个主题可能需要你几天的时间,甚至可能需要一周或更长时间。这取决于你的日程安排。
-因此,每一天我都会在下面所列出的列表中选择一项,并观看相关的视频。然后,使用以下的一种语言去实现:
+每天,按照列表中的下一个主题,观看一些关于该主题的视频,
+然后用你选择的语言为这门课程编写该数据结构或算法的实现。
-- C —— 使用结构体和函数,该函数会接受一个结构体指针 * 及其他数据作为参数。
-- C++ —— 不使用内建的数据类型。
-- C++ —— 使用内建的数据类型,如使用 STL 的 std::list 来作为链表。
-- Python —— 使用内建的数据类型(为了持续练习 Python),并编写一些测试去保证自己代码的正确性。有时,只需要使用断言函数 assert() 即可。
-- 此外,你也可以使用 Java 或其他语言。以上只是我的个人偏好而已。
+在这里你可以查看到我的代码:
+- [C](https://github.com/jwasham/practice-c)
+- [C++](https://github.com/jwasham/practice-cpp)
+- [Python](https://github.com/jwasham/practice-python)
-你不需要学会所有的编程语言,你只需要专注在[一种编程语言](##为你的面试选择一种语言)上。
+你不需要记住每个算法。你只需要能够理解它,以便能够编写自己的实现即可。
-为何要在这些语言上分别实现一次?
+## 编程问题练习
-- 练习,练习,练习,直至我厌倦它,并正确无误地实现出来。(若有部分边缘条件没想到时,我会用书写的形式记录下来并去记忆)
-- 在纯原生的条件下工作(不需垃圾回收机制的帮助下,手动分配/释放内存(除了 Python))
-- 利用语言内建的数据类型,之后在实际工作的时候才能得心应手(在生产环境中,我不会去实现自己的链表)
+ 这是为什么?我还没有准备好面试。
-就算我没有时间去每一项都这么做,但我也会尽我所能。
+[那就回去阅读这部分。](#3-do-coding-interview-questions-while-youre-learning)
-在这里你可以查看到我的代码:
+为什么你需要练习编程问题:
+- 识别问题,并确定合适的数据结构和算法
+- 收集问题的要求
+- 像在面试中那样口头表达解决问题的过程
+- 在白板或纸上编写代码,而不是在计算机上
+- 为您的解决方案确定时间和空间复杂度(参见下文中的大O表示法)。
+- 对你的解决方案进行测试
-- [C](https://github.com/jwasham/practice-c)
-- [C++](https://github.com/jwasham/practice-cpp)
-- [Python](https://github.com/jwasham/practice-python)
+在面试中,有一种方法论的、有交流的问题解决方法。你可以从编程面试书籍中了解这些,
+但我发现下面这个网站也非常出色:
+[算法设计画布](http://www.hiredintech.com/algorithm-design/)
+
+在白板或纸上写代码,而不是在计算机上。使用一些样例输入进行测试。然后在计算机上键入并进行测试。
-你不需要记住每一个算法的内部原理。
+如果家里没有白板,请从艺术用品店购买一个大型的绘图本。
+你可以坐在沙发上练习。这就是我的"沙发白板"。照片中我加了一支笔来衡量尺寸。如果你使用钢笔,你会希望能擦除。
+会很快变得凌乱, **我用铅笔和橡皮擦。**
-在一个白板上写代码,而不要直接在计算机上编写。在测试完部分简单的输入后,到计算机上再测试一遍。
+
-## 必备知识
+**编程问题练习并不是为了记住解决编程问题的答案。**
-- [ ] **学习C语言**
- - C 语言无处不在。在学习的过程中,你会在书籍,讲座,视频等任何地方看到它的身影
- - [ ] [C程序设计语言,第二版](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - 这是一本简短的书,但是它将使你更好地使用 C 语言,并且如果你稍加练习,就会很快熟练。理解 C 可帮助你了解程序和内存的工作方式
- - 问题答案
+## 编程问题
-- [ ] **计算机是如何处理一段程序:**
- - [ ] [CPU 是如何执行代码(视频)](https://www.youtube.com/watch?v=XM4lGflQFvA)
- - [ ] [计算机如何计算(视频)](https://youtu.be/1I5ZMmrOfnA)
- - [ ] [寄存器和内存(视频)](https://youtu.be/fpnE6UAfbtU)
- - [ ] [中央处理单元(视频)](https://youtu.be/FZGugFqdr60)
- - [ ] [指令和程序(视频)](https://youtu.be/zltgXvg6r3k)
+别忘了参考你的主要编程面试书籍[这里](#interview-prep-books).
+
+解决问题:
+- [如何找到解决方案](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [如何分析Topcoder问题陈述](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+编程面试问题视频:
+- [IDeserve(88个视频)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy(5个播放列表)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - 非常适合问题解决方案的演示
+- [Nick White - LeetCode解答(187个视频)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - 解释解决方案和代码的很好
+ - 你可以在短时间内观看多个视频
+- [FisherCoder - LeetCode解答](https://youtube.com/FisherCoder)
+
+挑战/练习网站:
+- [LeetCode](https://leetcode.com/)
+ - 我最喜欢的编程问题网站。对于你准备的1-2个月时间,订阅会费是值得的。
+ - 观看上面提到的Nick White和FisherCoder的视频,可以帮助你理解代码解决方案。
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Codeforces](https://codeforces.com/)
+- [Codility](https://codility.com/programmers/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - 由谷歌工程师创建,也是提高你技能的优秀资源。
+- [Project Euler](https://projecteuler.net/)
+ - 主要关注数学问题,并不完全适合编程面试。
+
+## 让我们开始吧
+
+好了,说得够多了,让我们学习吧!
+
+但在学习的同时,不要忘记做上面的编码问题!
## 算法复杂度 / Big-O / 渐进分析法
-- 并不需要实现
-- 这里有很多视频,看到你真正了解它为止。你随时可以回来复习。
-- 如果这些课程太过数学的话,你可以去看看最下面离散数学的视频,它能让你更了解这些数学背后的来源以及原理。
-- [ ] [Harvard CS50 —— 渐进表示(视频)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [ ] [Big O 记号(通用快速教程)(视频)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [ ] [Big O 记号(以及 Omega 和 Theta)—— 最佳数学解释(视频)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena 算法:
- - [视频](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [幻灯片](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [ ] [对于算法复杂度分析的一次详细介绍](http://discrete.gr/complexity/)
-- [ ] [增长阶数(Orders of Growth)(视频)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
-- [ ] [渐进性(Asymptotics)(视频)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
-- [ ] [UC Berkeley Big O(视频)](https://youtu.be/VIS4YDpuP98)
-- [ ] [UC Berkeley Big Omega(视频)](https://youtu.be/ca3e7UVmeUc)
-- [ ] [平摊分析法(Amortized Analysis)(视频)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] [举证“Big O”(视频)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
+- 这里没有什么需要实施的,你只是在观看视频并记笔记!耶!
+- 这里有很多视频,只要看到你理解为止就好了,你随时可以回来复习。
+- 如果你不理解背后的所有数学,不要担心。
+- 你只需要理解如何用大O表示法来表达算法的复杂度。
+- [ ] [哈佛大学CS50 - 渐进符号(视频)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [大O符号(通用快速教程)(视频)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [大O符号(以及Ω和Θ)- 最佳数学解释(视频)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [Skiena(视频)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [加州大学伯克利分校关于大O符号(视频)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [摊还分析(视频)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
- [ ] TopCoder(包括递归关系和主定理):
- - [计算性复杂度:第一部](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- - [计算性复杂度:第二部](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
-- [ ] [速查表(Cheat sheet)](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+ - [计算复杂性:第1部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [计算复杂性:第2部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
+- [ ] [速查表](http://bigocheatsheet.com/)
+- [ ] [[复习] 5分钟内了解大O符号(视频)](https://youtu.be/__vX2sjlpXU)
+
+好吧,差不多就到这里了。
+
+当你阅读《破解编程面试》时,有一个章节专门讲述此事,并在最后进行了一次测验,
+以测试你是否能够确定不同算法的运行时间复杂度。这是一个非常全面的复习和测试。
## 数据结构
- ### 数组(Arrays)
- - 实现一个可自动调整大小的动态数组。
- [ ] 介绍:
- - [数组(视频)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
- - [UC Berkeley CS61B - 线性数组和多维数组(视频)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE)(从15分32秒开始)
- - [动态数组(视频)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
- - [不规则数组(视频)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [数组 CS50 哈佛大学](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [数组(视频)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [加州大学伯克利分校CS61B - 线性和多维数组(视频)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE)(从15分32秒开始)
+ - [动态数组(视频)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [嵌套数组(视频)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [ ] 实现一个动态数组(可自动调整大小的可变数组):
- [ ] 练习使用数组和指针去编码,并且指针是通过计算去跳转而不是使用索引
- [ ] 通过分配内存来新建一个原生数据型数组
@@ -490,16 +569,20 @@
- ### 链表(Linked Lists)
- [ ] 介绍:
- - [ ] [单向链表(视频)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- - [ ] [CS 61B —— 链表(一)(视频)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- - [ ] [CS 61B —— 链表(二)(视频)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- - [ ] [C 代码(视频)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) ── 并非看完整个视频,只需要看关于节点结构和内存分配那一部分即可
+ - [ ] [链表 CS50 哈佛大学](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - 这样建立了直观感。
+ - [ ] [单链表(视频)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - 链表1(视频)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - 链表 2(视频)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[复习] 4分钟了解链表(视频)](https://youtu.be/F8AbOfQwl1c)
+ - [ ] [C代码(视频)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
+ - 不是整个视频,只是关于Node结构和内存分配的部分。
- [ ] 链表 vs 数组:
- - [基本链表 Vs 数组(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- - [在现实中,链表 Vs 数组(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+ - [核心链表与数组(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [在现实世界中,链表与数组的比较(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- [ ] [为什么你需要避免使用链表(视频)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - [ ] 的确:你需要关于“指向指针的指针”的相关知识:(因为当你传递一个指针到一个函数时,该函数可能会改变指针所指向的地址)该页只是为了让你了解“指向指针的指针”这一概念。但我并不推荐这种链式遍历的风格。因为,这种风格的代码,其可读性和可维护性太低。
+ - [ ] 的确:你需要关于“指向指针的指针”的相关知识:(因为当你传递一个指针到一个函数时,
+ 该函数可能会改变指针所指向的地址)该页只是为了让你了解“指向指针的指针”这一概念。
+ 但我并不推荐这种链式遍历的风格。因为,这种风格的代码,其可读性和可维护性太低。
- [指向指针的指针](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- [ ] 实现(我实现了使用尾指针以及没有使用尾指针这两种情况):
- [ ] size() —— 返回链表中数据元素的个数
@@ -539,7 +622,8 @@
- empty()
- full()
- [ ] 花销:
- - 在糟糕的实现情况下,使用链表所实现的队列,其入列和出列的时间复杂度将会是 O(n)。因为,你需要找到下一个元素,以致循环整个队列
+ - 在糟糕的实现情况下,使用链表所实现的队列,其入列和出列的时间复杂度将会是 O(n)。
+ 因为,你需要找到下一个元素,以致循环整个队列
- enqueue:O(1)(平摊(amortized)、链表和数组 [探测(probing)])
- dequeue:O(1)(链表和数组)
- empty:O(1)(链表和数组)
@@ -549,25 +633,26 @@
- [ ] [链式哈希表(视频)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- [ ] [Table Doubling 和 Karp-Rabin(视频)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [Open Addressing 和密码型哈希(Cryptographic Hashing)(视频)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010:The Mighty Dictionary(视频)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [(进阶)随机取样(Randomization):全域哈希(Universal Hashing)& 完美哈希(Perfect Hashing)(视频)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(进阶)完美哈希(Perfect hashing)(视频)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
+ - [ ] [PyCon 2010:强大的字典(视频)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017:字典更强大(视频)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(高级) 随机化:通用和完美哈希(视频)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(进阶)完美哈希(Perfect hashing)(视频)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[复习]4分钟了解哈希表(视频)](https://youtu.be/knV86FlSXJ8)
- [ ] 在线课程:
- - [ ] [基本哈希表(视频)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
- - [ ] [数据结构(视频)](https://www.coursera.org/learn/data-structures/home/week/3)
- - [ ] [电话薄问题(Phone Book Problem)(视频)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
+ - [ ] [核心哈希表(视频)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [数据结构(视频)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [电话簿问题(视频)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- [ ] 分布式哈希表:
- - [Dropbox 中的瞬时上传及存储优化(视频)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- - [分布式哈希表(视频)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
+ - [Dropbox中的即时上传和存储优化(视频)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [分布式哈希表(视频)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
- - [ ] 使用线性探测的数组去实现
- - hash(k, m) —— m 是哈希表的大小
- - add(key, value) —— 如果 key 已存在则更新值
- - exists(key)
- - get(key)
- - remove(key)
+ - [ ] 使用线性探测法的数组实现
+ - hash(k, m) - m是哈希表的大小
+ - add(key, value) - 如果键已存在,则更新值
+ - exists(key) - 检查键是否存在
+ - get(key) - 获取给定键的值
+ - remove(key) - 删除给定键的值
## 更多的知识
@@ -575,7 +660,8 @@
- [ ] [二分查找(视频)](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [二分查找(视频)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [详情](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
- - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
+ - [ ] [蓝图](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [【复习】四分钟二分查找(视频)](https://youtu.be/fDKIpRe8GW4)
- [ ] 实现:
- 二分查找(在一个已排序好的整型数组中查找)
- 迭代式二分查找
@@ -1186,19 +1272,6 @@
---
-## 终面
-
- 这一部分有一些短视频,你可以快速的观看和复习大多数重要概念。
- 这对经常性的巩固很有帮助。
-
-- [ ] 2-3分钟的简短主题视频系列(23个视频)
- - [视频](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分钟的简短主题视频系列──Michael Sambol (46个视频):
- - [视频](https://www.youtube.com/@MichaelSambol)
- - [Code Examples](https://github.com/msambol/dsa)
-- [ ] [Sedgewick 视频 ── 算法I](https://www.coursera.org/learn/algorithms-part1)
-- [ ] [Sedgewick 视频 ── 算法II](https://www.coursera.org/learn/algorithms-part2)
-
## 编程问题练习
现在你已经了解了上面所有的计算机科学主题,是时候练习回答编程问题了。
@@ -1341,10 +1414,10 @@
*****************************************************************************************************
*****************************************************************************************************
-
+
下面的内容都是可选的。
通过学习这些内容,你将会得到更多的有关 CS 的概念,并将为所有的软件工程工作做更好的准备。你将会成为一个更全面的软件工程师。
-
+
*****************************************************************************************************
*****************************************************************************************************
@@ -1716,7 +1789,7 @@
--
## 一些主题的额外内容
-
+
我为前面提到的某些主题增加了一些额外的内容,之所以没有直接添加到前面,是因为这样很容易导致某个主题内容过多。毕竟你想在本世纪找到一份工作,对吧?
- SOLID
From 47c35464cc2747ba9b0441277f4e18c2b3923eac Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Tue, 8 Aug 2023 17:32:27 +0800
Subject: [PATCH 084/173] Update the latest and most complete Readme-cn.md
---
translations/README-cn.md | 808 +++++++++++++++++---------------------
1 file changed, 369 insertions(+), 439 deletions(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index f0048defb4..150cb9acb7 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -45,14 +45,14 @@
- [如何使用它](#如何使用它)
- [不要觉得自己不够聪明](#不要觉得自己不够聪明)
- [相关视频资源](#相关视频资源)
-- [选择编程语言](#choose-a-programming-language)
-- [数据结构和算法书籍](#books-for-data-structures-and-algorithms)
-- [面试准备书](#interview-prep-books)
-- [不要犯我的错误](#dont-make-my-mistakes)
-- [你不会看到的涵盖内容](#what-you-wont-see-covered)
-- [每日计划](#the-daily-plan)
-- [编码问题练习](#coding-question-practice)
-- [编码问题](#coding-problems)
+- [选择编程语言](#选择编程语言)
+- [数据结构和算法的书籍](#数据结构和算法的书籍)
+- [面试准备书籍](#面试准备书籍)
+- [不要犯我的错误](#不要犯我的错误)
+- [没有包含的内容](#没有包含的内容)
+- [日常计划](#日常计划)
+- [编程问题练习](#编程问题练习)
+- [编程问题](#编程问题)
### 学习的主题
@@ -67,10 +67,10 @@
- [二分查找(Binary search)](#二分查找binary-search)
- [按位运算(Bitwise operations)](#按位运算bitwise-operations)
- [树(Trees)](#树trees)
- - [树 —— 简介](#树--简介)
+ - [树-介绍](#树-介绍)
- [二叉查找树(Binary search trees):BSTs](#二叉查找树binary-search-treesbsts)
- [堆(Heap) / 优先级队列(Priority Queue) / 二叉堆(Binary Heap)](#堆heap--优先级队列priority-queue--二叉堆binary-heap)
- - [平衡查找树(Balanced search trees)(基本概念,非细节)](#平衡查找树balanced-search-trees)
+ - 平衡搜索树 (总体概念,不涉及细节)
- 遍历:前序、中序、后序、BFS、DFS
- [排序](#排序sorting)
- 选择排序(selection)
@@ -100,23 +100,23 @@
- [Unicode](#unicode)
- [字节顺序](#字节序Endianness)
- [网络](#网络视频)
-- [终面](#终面)
+- [最终复习](#最终复习)
### 获得工作机会
-- [更新你的简历](#update-your-resume)
-- [找工作](#find-a-job)
-- [面试流程和面试准备p](#interview-process--general-interview-prep)
-- [面试前需要考虑的事项](#be-thinking-of-for-when-the-interview-comes)
-- [准备一些问题以便问面试官](#have-questions-for-the-interviewer)
-- [一旦你得到了工作](#once-youve-got-the-job)
+- [更新你的简历](#更新你的简历)
+- [找工作](#找工作)
+- [面试流程与一般面试准备](#面试流程与一般面试准备)
+- [当面试来临的时候](#当面试来临的时候)
+- [问面试官的问题](#问面试官的问题)
+- [当你获得了梦想的职位](#当你获得了梦想的职位)
**---------------- 以下所有内容均为可选项 ----------------**
### 可选的额外主题和资源
- [额外书籍](#额外书籍)
-- [系统设计、可扩展性、数据处理](#system-design-scalability-data-handling) (如果你有4年以上的工作经验)
+- [系统设计、可扩展性和数据处理](#系统设计、可扩展性和数据处理)
- [附加学习](#附加学习)
- [编译器](#编译器)
- [Emacs and vi(m)](#emacs-and-vim)
@@ -130,10 +130,10 @@
- [垃圾回收](#垃圾回收)
- [并行编程](#并行编程)
- [消息传递,序列化和队列化的系统](#消息传递序列化和队列系统)
- - [A*搜索算法](#A搜索算法)
+ - [A*搜索算法](#a*搜索算法)
- [快速傅里叶变换](#快速傅里叶变换)
- [布隆过滤器](#布隆过滤器)
- - [HyperLogLog](#HyperLogLog)
+ - [HyperLogLog](#hyperloglog)
- [局部敏感哈希](#局部敏感哈希)
- [van Emde Boas 树](#van-emde-boas-树)
- [增强数据结构](#增强数据结构)
@@ -145,7 +145,7 @@
- 2-3-4 树(也称 2-4 树)
- N-ary (K-ary, M-ary)树
- B 树
- - [k-D 树](#k-D树)
+ - [k-D 树](#k-d树)
- [跳表](#跳表)
- [网络流](#网络流)
- [不相交集 & 联合查找](#不相交集--联合查找)
@@ -695,18 +695,14 @@
## 树(Trees)
-- ### 树 —— 笔记 & 背景
- - [ ] [系列:树(视频)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- - 基本的树形结构
- - 遍历
- - 操作算法
- - [ ] [BFS(广度优先检索,breadth-first search)和 DFS(深度优先检索,depth-first search)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+- ### 树-介绍
+ - [ ] [树的介绍(视频)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
+ - [ ] [树遍历(视频)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
+ - [ ] [BFS(广度优先搜索)和DFS(深度优先搜索)(视频)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- BFS 笔记
- - 层序遍历(使用队列的 BFS 算法)
+ - 层次遍历(BFS,使用队列)
- 时间复杂度: O(n)
- - 空间复杂度:
- - 最好情况:O(1)
- - 最坏情况:O(n/2)=O(n)
+ - 空间复杂度:最佳情况:O(1),最坏情况:O(n/2)=O(n)
- DFS 笔记:
- 时间复杂度:O(n)
- 空间复杂度:
@@ -715,14 +711,12 @@
- 中序遍历(DFS:左、节点本身、右)
- 后序遍历(DFS:左、右、节点本身)
- 先序遍历(DFS:节点本身、左、右)
- - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+ - [ ] [[复习]4分钟内的广度优先搜索(视频)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[复习] 4分钟内的深度优先搜索(视频)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[复习]11分钟内的树遍历(播放列表)(视频)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 二叉查找树(Binary search trees):BSTs
- - [ ] [二叉查找树概览(视频)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [系列(视频)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- - 从符号表开始到 BST 程序
+ - [ ] [二叉搜索树复习(视频)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [ ] [介绍(视频)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- [ ] [MIT(视频)](https://www.youtube.com/watch?v=9Jry5-82I68)
- C/C++:
@@ -737,12 +731,12 @@
- [ ] [从二叉查找树中删除一个节点(视频)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- [ ] [二叉查找树中序遍历的后继者(视频)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] 实现:
- - [ ] insert // 往树上插值
+ - [ ] [insert // 将值插入树中](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
- [ ] get_node_count // 查找树上的节点数
- [ ] print_values // 从小到大打印树中节点的值
- [ ] delete_tree
- [ ] is_in_tree // 如果值存在于树中则返回 true
- - [ ] get_height // 返回节点所在的高度(如果只有一个节点,那么高度则为1)
+ - [ ] [get_height // 以节点为单位返回高度(单个节点的高度为1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
- [ ] get_min // 返回树上的最小值
- [ ] get_max // 返回树上的最大值
- [ ] is_binary_search_tree
@@ -750,22 +744,21 @@
- [ ] get_successor // 返回给定值的后继者,若没有则返回-1
- ### 堆(Heap) / 优先级队列(Priority Queue) / 二叉堆(Binary Heap)
- - 可视化是一棵树,但通常是以线性的形式存储(数组、链表)
- - [ ] [堆](https://en.wikipedia.org/wiki/Heap_(data_structure))
- - [ ] [介绍(视频)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- - [ ] [简单的实现(视频)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+ - 以树形结构可视化,但通常在存储上是线性的(数组、链表)
+ - [ ] [堆(Heap)](https://en.wikipedia.org/wiki/Heap_(data_structure))
+ - [ ] [堆简介(视频)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
- [ ] [二叉树(视频)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- - [ ] [关于树高的讨论(视频)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] [树高度备注(视频)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- [ ] [基本操作(视频)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- [ ] [完全二叉树(视频)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- [ ] [伪代码(视频)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- - [ ] [堆排序 —— 跳到起点(视频)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [堆排序(视频)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [构建一个堆(视频)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- - [ ] [MIT:堆与堆排序(视频)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [CS 61B Lecture 24:优先级队列(视频)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- - [ ] [构建线性时间复杂度的堆(大顶堆)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
+ - [ ] [堆排序 - 跳转到开始部分(视频)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [堆排序(视频)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] [构建堆(视频)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
+ - [ ] [MIT:堆和堆排序(视频)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [CS 61B Lecture 24:优先队列(视频)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
+ - [ ] [线性时间构建堆(大顶堆)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[复习] 13分钟了解堆(视频)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 实现一个大顶堆:
- [ ] insert
- [ ] sift_up —— 用于插入元素
@@ -793,17 +786,27 @@
- [链表的归并排序](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
- 关于堆排序,请查看前文堆的数据结构部分。堆排序很强大,不过是非稳定排序。
+
- [ ] [Sedgewick ── 归并排序(5个视频)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] 1. 归并排序
- - [ ] 2. 自下而上的归并排序
- - [ ] 3. 排序复杂度
- - [ ] 4. 比较器
- - [ ] 5. 稳定性
+ - [ ] [1. 归并排序(Mergesort)](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] [2. 自底向上的归并排序(Bottom up Mergesort)](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. 排序复杂性(Sorting Complexity)](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. 比较器(Comparators)](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] [5. 稳定性(Stability)](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
- [ ] [Sedgewick ── 快速排序(4个视频)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] 1. 快速排序
- - [ ] 2. 选择
- - [ ] 3. 重复键值
- - [ ] 4. 系统排序
+ - [ ] [1. 快速排序(Quicksort)](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] [2. 选择排序(Selection)](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. 重复键(Duplicate Keys)](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. 系统排序(System Sorts)](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] 加州大学伯克利分校:
+ - [ ] [CS 61B Lecture 29:排序 I(视频)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B Lecture 30:排序 II(视频)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B Lecture 32:排序 III(视频)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B Lecture 33:排序 V(视频)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] [CS 61B 2014-04-21:基数排序(视频)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
+
- [ ] [冒泡排序(视频)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
- [ ] [冒泡排序分析(视频)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
- [ ] [插入排序 & 归并排序(视频)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
@@ -849,11 +852,12 @@
- [ ] [随机算法: 矩阵相乘, 快排, Freivalds' 算法(视频)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [线性时间内的排序(视频)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
-总结一下,这是[15种排序算法](https://www.youtube.com/watch?v=kPRA0W1kECg)的可视化表示。如果你需要有关此主题的更多详细信息,请参阅“[一些主题的额外内容](#一些主题的额外内容)”中的“排序”部分。
+总结一下,这是[15种排序算法](https://www.youtube.com/watch?v=kPRA0W1kECg)的可视化表示。
+如果你需要有关此主题的更多详细信息,请参阅“[一些主题的额外内容](#一些主题的额外内容)”中的“排序”部分。
## 图(Graphs)
-图论能解决计算机科学里的很多问题,所以这一节会比较长,像树和排序的部分一样。
+图表可以用来表示计算机科学中的许多问题,所以这一部分很长,就像树和排序一样。
- 笔记:
- 有4种基本方式在内存里表示一个图:
@@ -880,19 +884,18 @@
- [ ] 图 (复习和其他):
- [ ] [6.006 单源最短路径问题(视频)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Dijkstra 算法(视频)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Bellman-Ford 算法(视频)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
- - [ ] [6.006 Dijkstra 效率优化(视频)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- - [ ] [Aduni: 图的算法 I - 拓扑排序,最小生成树,Prim 算法 - 第六课(视频)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Aduni: 图的算法 II - 深度优先搜索, 广度优先搜索, Kruskal 算法, 并查集数据结构 - 第七课(视频)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- - [ ] [Aduni: 图的算法 III: 最短路径 - 第八课(视频)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- - [ ] [Aduni: 图的算法. IV: 几何算法介绍 - 第九课(视频)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] [CS 61B 2014 (从 58:09 开始)(视频)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
- - [ ] [CS 61B 2014: 加权图(视频)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- - [ ] [贪心算法: 最小生成树(视频)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [图的算法之强连通分量 Kosaraju 算法(视频)](https://www.youtube.com/watch?v=RpgcYiky7uw)
- - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
- - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
+ - [ ] [6.006 Dijkstra算法(视频)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 Bellman-Ford算法(视频)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 加速Dijkstra算法(视频)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [Aduni:图算法 I - 拓扑排序,最小生成树,Prim算法 - 讲座6(视频)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Aduni:图算法 II - DFS,BFS,Kruskal算法,Union Find数据结构 - 讲座7(视频)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
+ - [ ] [Aduni:图算法 III:最短路径 - 讲座8(视频)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [Aduni:图算法 IV:几何算法入门 - 讲座9(视频)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] [CS 61B 2014:加权图(视频)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] [贪婪算法:最小生成树(视频)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [强连通分量Kosaraju算法图算法(视频)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[复习] 最短路径算法(播放列表)16分钟(视频)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[复习] 最小生成树(播放列表)4分钟(视频)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- 完整的 Coursera 课程:
- [ ] [图的算法(视频)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
@@ -913,8 +916,6 @@
- [ ] 列出强连通分量
- [ ] 检查双向图
-可以从 Skiena 的书(参考下面的书推荐小节)和面试书籍中学习更多关于图的实践。
-
## 更多知识
- ### 递归(Recursion)
@@ -927,21 +928,26 @@
- 尾递归会更好么?
- [ ] [什么是尾递归以及为什么它如此糟糕?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [ ] [尾递归(视频)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] [解决任何递归问题的5个简单步骤(视频)](https://youtu.be/ngCos392W4w)
+ 回溯蓝图: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partitioning))
+ [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
- ### 动态规划(Dynamic Programming)
- - 在你的面试中或许没有任何动态规划的问题,但能够知道一个题目可以使用动态规划来解决是很重要的。
+ - 在你的面试中或许没有任何动态规划的问题,
+ 但能够知道一个题目可以使用动态规划来解决是很重要的。
- 这一部分会有点困难,每个可以用动态规划解决的问题都必须先定义出递推关系,要推导出来可能会有点棘手。
- 我建议先阅读和学习足够多的动态规划的例子,以便对解决 DP 问题的一般模式有个扎实的理解。
- [ ] 视频:
- - Skiena 的视频可能会有点难跟上,有时候他用白板写的字会比较小,难看清楚。
- - [ ] [Skiena: CSE373 2012 - 课程 19 - 动态规划介绍(视频)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena: CSE373 2012 - 课程 20 - 编辑距离(视频)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena: CSE373 2012 - 课程 21 - 动态规划举例(视频)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena: CSE373 2012 - 课程 22 - 动态规划应用(视频)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
- - [ ] [Simonson: 动态规划 0 (starts at 59:18)(视频)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- - [ ] [Simonson: 动态规划 I - 课程 11(视频)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Simonson: 动态规划 II - 课程 12(视频)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
- - [ ] 单独的 DP 问题 (每一个视频都很短):[动态规划(视频)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] [Skiena:CSE373 2020 - 讲座19 - 动态规划简介(视频)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [Skiena:CSE373 2020 - 讲座20 - 编辑距离(视频)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [Skiena:CSE373 2020 - 讲座20 - 编辑距离(续)(视频)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [Skiena:CSE373 2020 - 讲座21 - 动态规划(视频)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena:CSE373 2020 - 讲座22 - 动态规划和复习(视频)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
+ - [ ] [Simonson:动态规划 0(从59:18开始)(视频)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [Simonson:动态规划 I - 第11讲(视频)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Simonson:动态规划 II - 第12讲(视频)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] 单独的动态规划问题列表(每个都很短):
+ [动态规划(视频)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
- [ ] 耶鲁课程笔记:
- [ ] [动态规划](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
- [ ] Coursera 课程:
@@ -953,10 +959,6 @@
- [ ] [全局成对序列排列(视频)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- [ ] [本地成对序列排列(视频)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
-- ### 面向对象编程
- - 可选:[UML 2.0系列(视频)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- - SOLID 面向对象编程原则:[SOLID 原则(视频)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
-
- ### 设计模式
- [ ] [UML 统一建模语言概览 (视频)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- [ ] 主要有如下的设计模式:
@@ -977,14 +979,10 @@
- [ ] 迭代器模式(iterator)
- [ ] 组合模式(composite)
- [ ] 享元模式(flyweight)
- - [ ] [第六章 (第 1 部分 ) - 设计模式 (视频)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [第六章 (第 2 部分 ) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (视频)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [第六章 (第 3 部分 ) - Adapter, Facade, Immutable, Read-Only Interface, Proxy(视频)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [系列视频(27个)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [Head First 设计模型](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- - 尽管《设计模式:可复用面向对象软件的基础》才是这方面的经典,但是我还是认为Head First对于新手更加友好。
- - [ ] [实际操作:设计模式和对入门开发者的建议](https://sourcemaking.com/design-patterns-and-tips)
- - [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
+ - [ ] [书籍:《Head First设计模式》](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
+ - [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
- ### 组合(Combinatorics) (n 中选 k 个) & 概率(Probability)
- [ ] [数据技巧: 如何找出阶乘、排列和组合(选择)(视频)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
@@ -996,19 +994,21 @@
- 只有视频 - 41 (每一个都短小精悍):
- [ ] [概率解释(视频)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
-- ### NP, NP-完全和近似算法
- - 知道最经典的一些 NP 完全问题,比如旅行商问题和背包问题,而且能在面试官试图忽悠你的时候识别出他们。
- - 知道 NP 完全是什么意思.
+- ### NP, NP-Completeness和近似算法
+ - 知道最经典的一些 NP-Completeness 问题,比如旅行商问题和背包问题,
+ 而且能在面试官试图忽悠你的时候识别出他们。
+ - 知道 NP-Completeness 是什么意思.
- [ ] [计算复杂度(视频)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- [ ] Simonson:
- - [ ] [贪心算法. II & 介绍 NP-完全性(视频)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- - [ ] [NP-完全性 II & 归约(视频)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP-完全性 III(视频)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP-完全性 IV(视频)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] [贪心算法. II & 介绍 NP-Completeness(视频)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [NP-Completeness II & 归约(视频)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP-Completeness III(视频)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP-Completeness IV(视频)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- [ ] Skiena:
- - [ ] [CSE373 2012 - 课程 23 - 介绍 NP-完全性 IV(视频)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - 课程 24 - NP-完全性证明(视频)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 课程 25 - NP-完全性挑战(视频)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 课程 23 - 介绍 NP-Completeness IV(视频)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
+ - [ ] [CSE373 2012 - 课程 24 - NP-Completeness证明(视频)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 课程 25 - NP-Completeness挑战(视频)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2020年 - 第26讲 - NP-Completeness挑战(视频)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
- [ ] [复杂度: P, NP, NP-完全性, 规约(视频)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [ ] [复杂度: 近视算法 Algorithms(视频)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [ ] [复杂度: 固定参数算法(视频)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
@@ -1016,6 +1016,13 @@
- [Jupyter 笔记本](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- 《算法导论》(CLRS)的第 1048 - 1140 页。
+- ### 计算机如何处理程序
+
+ - [ ] [CPU如何执行程序(视频)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [计算机如何进行计算 - 算术逻辑单元(视频)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [寄存器和RAM(视频)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [中央处理器(CPU)(视频)](https://youtu.be/FZGugFqdr60)
+ - [ ] [指示和程序(视频)](https://youtu.be/zltgXvg6r3k)
- ### 缓存(Cache)
- [ ] LRU 缓存:
- [ ] [LRU 的魔力 (100 Days of Google Dev)(视频)](https://www.youtube.com/watch?v=R5ON3iwx78M)
@@ -1050,8 +1057,9 @@
- 线程资源需要(在同一个进程内和其他线程共享以上(除了栈)的资源,但是每个线程都有独立的程序计数器、栈计数器、寄存器和栈)
- Fork 操作是真正的写时复制(只读),直到新的进程写到内存中,才会生成一份新的拷贝。
- 上下文切换
- - 操作系统和底层硬件是如何初始化上下文切换的?
+ - [操作系统和底层硬件如何启动上下文切换?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
- [ ] [C++ 的线程 (系列 - 10 个视频)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 春季'14:马萨诸塞大学的操作系统](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
- [ ] Python 的并发 (视频):
- [ ] [线程系列](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- [ ] [Python 线程](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
@@ -1071,16 +1079,11 @@
- [ ] [James Bach 软件测试公开课(视频)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- [ ] [Steve Freeman - 测试驱动的开发(视频)](https://vimeo.com/83960706)
- [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- - [ ] [Python:测试驱动的 Web 开发](http://www.obeythetestinggoat.com/pages/book.html#toc)
- [ ] 依赖注入:
- [ ] [视频](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- [ ] [测试之道](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- [ ] [如何编写测试](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-- ### 调度
- - 在操作系统中是如何运作的
- - 在操作系统部分的视频里有很多资料
-
- ### 字符串搜索和操作
- [ ] [Sedgewick──后缀数组(Suffix Arrays)(视频)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- [ ] [Sedgewick──子字符串搜寻(视频)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
@@ -1112,9 +1115,7 @@
- [ ] [MIT,高阶数据结构,字符串(视频中间有点困难)(视频)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### 浮点数
-
- - [ ] 简单8位:[浮点数的表示形式-1(视频──计算中存在错误,请参见视频说明)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32位:[IEEE754 32位浮点二进制(视频)](https://www.youtube.com/watch?v=50ZYcZebIec)
+ - [ ] 简单的8位: [浮点数的表示 - 1(视频 - 计算中有错误 - 请查看视频描述)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- ### Unicode
- [ ] [每一个软件开发者的绝对最低限度,必须要知道的关于 Unicode 和字符集知识](http://www.joelonsoftware.com/articles/Unicode.html)
@@ -1144,235 +1145,66 @@
- [Java──套接字──介绍(视频)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- [套接字编程(视频)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
-## 系统设计、可伸缩性、数据处理
-
-**如果你已经拥有了4年以上的编程经验,那你可以来看看有关系统设计的问题**
-
-- 系统设计以及可伸缩性,要把软硬件的伸缩性设计的足够好有很多的东西要考虑,所以这是个包含非常多内容和资源的大主题。要花费相当多的时间在这个主题上。
-- 考量:
- - 伸缩性
- - 把大数据集提取为单一值
- - 大数据集转换
- - 处理大量的数据集
- - 系统
- - 功能集
- - 接口
- - 类层次结构
- - 在特定的约束下设计系统
- - 轻量和健壮性
- - 权衡和折衷
- - 性能分析和优化
-- [ ] **从这里开始**:[系统设计入门](https://github.com/donnemartin/system-design-primer)
-- [ ] [HiredInTech:系统设计](http://www.hiredintech.com/system-design/)
-- [ ] [该如何为技术面试里设计方面的问题做准备?](https://www.quora.comHow-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [在系统设计面试前必须知道的 8 件事](http://blog.gainlo.co/index.php/2015/10/228-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [算法设计](http://www.hiredintech.com/algorithm-design/)
-- [ ] [数据库范式 - 1NF, 2NF, 3NF and 4NF(视频)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [系统设计面试](https://github.com/checkcheckzz/system-design-interview) - 这一部分有很多的资源浏览一下我放在下面的文章和例子。
-- [ ] [如何在系统设计面试中脱颖而出](http://www.palantir.com/2011/10how-to-rock-a-systems-design-interview/)
-- [ ] [每个人都该知道的一些数字](http://everythingisdata.wordpress.com/2009/10/17numbers-everyone-should-know/)
-- [ ] [上下文切换操作会耗费多少时间?](http://blog.tsunanet.net/2010/11how-long-does-it-take-to-make-context.html)
-- [ ] [跨数据中心的事务(视频)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [简明 CAP 理论介绍](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
-- [ ] 共识算法:
- - [ ] Paxos:[Paxos协议──Computerphile(视频)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [ ] Raft: [Raft 分布式共识算法简介(视频)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
- - [ ] [易于阅读的论文](https://raft.github.io/)
- - [ ] [信息图]
-- [ ] [一致性哈希](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
-- [ ] [NoSQL 模式](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
-- [ ] 可伸缩性:
- - 你不需要知道所有这些。只需挑选一些你感兴趣的东西即可。
- - [ ] [很棒的概述(视频)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- - [ ] 简短系列:
- - [克隆](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- - [数据库](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- - [缓存](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- - [异步](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- - [ ] [可伸缩的 Web 架构和分布式系统](http://www.aosabook.org/en/distsys.html)
- - [ ] [错误的分布式系统解释](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [实用编程技术](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- - [extra: Google Pregel 图形处理](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- - [ ] [Jeff Dean - 在 Goolge 构建软件系统(视频)](https://www.youtube.com/watch?v=modXC5IWTJI)
- - [ ] [可伸缩系统架构设计介绍](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [使用 App Engine 和云存储扩展面向全球用户的手机游戏架构实践(视频)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra(视频)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [算法的重要性](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
- - [ ] [分片(Sharding)](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Facebook 系统规模扩展实践 (2012), "为 10 亿用户构建"(视频)](https://www.youtube.com/watch?v=oodS71YtkGU)
- - [ ] [Long Game 工程实践 - Astrid Atkinson Keynote(视频)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- - [ ] [30 分钟看完 YouTuBe 7 年系统扩展经验](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
- - [视频](https://www.youtube.com/watch?v=G-lGCC4KKok)
- - [ ] [PayPal 如何用 8 台虚拟机扛住 10 亿日交易量系统](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- - [ ] [如何对大数据集去重](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [Etsy 的扩展和工程文化探究 Jon Cowie(视频)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- - [ ] [是什么造就了 Amazon 自己的微服务架构](http://thenewstack.io/led-amazon-microservices-architecture/)
- - [ ] [压缩还是不压缩,是 Uber 面临的问题](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [异步 I/O Tarantool 队列](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
- - [ ] [什么时候应该用近似查询处理?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- - [ ] [Google 从单数据中心到故障转移, 到本地多宿主架构的演变](http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
- - [ ] [Egnyte: 构建和扩展 PB 级分布式系统架构的经验教训](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html)
- - [ ] [机器学习驱动的编程: 新世界的新编程方式](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
- - [ ] [日服务数百万请求的图像优化技术](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- - [ ] [Patreon 架构](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- - [ ] [Tinder: 推荐引擎是如何决定下一个你将会看到谁的?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- - [ ] [现代缓存设计](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- - [ ] [Facebook 实时视频流扩展](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- - [ ] [在 Amazon AWS 上把服务扩展到 1100 万量级的新手教程](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [对延时敏感的应用是否应该使用 Docker?](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
- - [ ] [360 度解读 Netflix 技术栈](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- - [ ] [延迟无处不在 - 如何搞定它?](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [无服务器架构](http://martinfowler.com/articles/serverless.html)
- - [ ] [是什么驱动着 Instagram: 上百个实例、几十种技术](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Cinchcast 架构 - 每天处理 1500 小时的音频](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- - [ ] [Justin.Tv 实时视频播放架构](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Playfish's 社交游戏架构 - 每月五千万用户增长](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- - [ ] [猫途鹰架构 - 40 万访客, 200 万动态页面访问, 30TB 数据](http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html)
- - [ ] [PlentyOfFish 架构](http://highscalability.com/plentyoffish-architecture)
- - [ ] [Salesforce 架构 - 如何扛住 13 亿日交易量](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- - [ ] [ESPN's 架构扩展](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- - [ ] 下面“消息传递,序列化和队列系统”部分的内容会提到什么样的技术能把各种服务整合到一起
- - [ ] Twitter:
- - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter"(视频)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- - [时间线的扩展](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - 更多内容可以查看[视频系列部分](#视频系列)的“大规模数据挖掘”视频系列。
-- [ ] 系统设计问题练习:下面有一些指导原则,每一个都有相关文档以及在现实中该如何处理。
- - 复习: [系统设计入门](https://github.com/donnemartin/system-design-primer)
- - [HiredInTech 的系统设计](http://www.hiredintech.com/system-design/)
- - [备忘单](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- - 流程:
- 1. 理解问题和范围:
- - 在面试官的帮助下定义用例
- - 提出附加功能的建议
- - 去掉面试官认定范围以外的内容
- - 假定高可用是必须的,而且要作为一个用例
- 2. 考虑约束:
- - 问一下每月请求量
- - 问一下每秒请求量 (他们可能会主动提到或者让你算一下)
- - 评估读写所占的百分比
- - 评估的时候牢记 2/8 原则
- - 每秒写多少数据
- - 总的数据存储量要考虑超过 5 年的情况
- - 每秒读多少数据
- 3. 抽象设计:
- - 分层 (服务, 数据, 缓存)
- - 基础设施: 负载均衡, 消息
- - 粗略的概括任何驱动整个服务的关键算法
- - 考虑瓶颈并指出解决方案
- - 练习:
- - [设计一个 CDN 网络](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- - [设计一个随机唯一 ID 生成系统](https://blog.twitter.com/2010/announcing-snowflake)
- - [设计一个在线多人卡牌游戏](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
- - [设计一个键值数据库](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [设计一个图片分享系统](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- - [设计一个推荐系统](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- - [设计一个短域名生成系统](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [设计一个缓存系统](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-
---
-## 编程问题练习
-
-现在你已经了解了上面所有的计算机科学主题,是时候练习回答编程问题了。
-
-**编程问题的实践并不是要记住编程问题的答案**。
-
-为什么需要练习编程问题:
-
-- 快速识别问题,以及如何应用正确的数据结构及算法
-- 收集问题的要求
-- 像在面试中一样谈论问题
-- 在白板或纸上而非计算机上编码
-- 计算解决方案的时间和空间的复杂性
-- 测试你的解决方案
-
-这里有个很棒的入门教学,内容是如何在面试中有条不紊,并且有互动沟通地解决问题。这种能力可以从面试书籍中获得,但我觉得这个也很棒:[算法设计画布](http://www.hiredintech.com/algorithm-design/)。
-
-家里没有白板?那讲得通。我是一个怪人,有一个很大的白板。从白板商店买了一个大的绘图板,而不是白板。你可以坐在沙发上练习。这是我的“沙发白板”。我在照片中添加了笔以便进行缩放。如果你使用笔,则希望可以擦除。快速变得凌乱。我用铅笔和橡皮擦。
-
-
+## 最终复习
-补充:
+ 本节将包含一系列短视频,您可以迅速观看,以便复习大部分重要概念。
+ 如果您经常需要温习知识,这会很有帮助。
-- [Topcoder的数学](https://www.topcoder.com/community/competitive-programming/tutorials/mathematics-for-topcoders/)
-- [动态编程──从新手到高级](https://www.topcoder.com/community/competitive-programming/tutorials/dynamic-programming-from-novice-to-advanced/)
-- [MIT 面试材料](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
+- [ ] 一系列2-3分钟的短主题视频(共23个视频)
+ - [视频链接](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] 一系列2-5分钟的短主题视频 - Michael Sambol(共46个视频):
+ - [视频链接](https://www.youtube.com/@MichaelSambol)
+ - [代码示例](https://github.com/msambol/dsa)
+- [ ] [Sedgewick的算法课程视频 - 算法I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [Sedgewick的算法课程视频 - 算法II](https://www.coursera.org/learn/algorithms-part2)
-**阅读并练习编程问题(按此顺序)**:
-
-- [ ] [编程面试公开:下一份工作的秘密,第二版](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - C,C ++ 和 Java 的答案
-- [ ] [破解编码面试,第六版](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Java 答案
-
-请参阅上方的[书单](#书单)。
-
-## 编程练习和挑战
-
-一旦你学会了理论基础,就应该把它们拿出来练练。
-尽量坚持每天做编码练习,越多越好。
-
-- [如何找到解决方案](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
-- [如何剖析 Topcoder 题目描述](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-编码面试问题视频:
-
-- [IDeserve(88个视频)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy(5个播放列表)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- - 超级解决问题的方法
-- [Nick White──LeetCode 解题(187个视频)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - 良好的解决方案和代码解释
- - 你可以在短时间内看好几个
-- [FisherCoder──LeetCode 解题](https://youtube.com/FisherCoder)
-
-编码练习平台:
-
-- [LeetCode](https://leetcode.com/)
- - 我最喜欢的编码问题网站,值得你准备的1-2个月的订阅费用
- - [FisherCoder 的 LeetCode 解题](https://github.com/fishercoder1534/Leetcode)
- - 请参阅上面的 Nick White 视频,以获得简短的代码
-- [HackerRank](https://www.hackerrank.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [InterviewCake](https://www.interviewcake.com/)
-- [http://www.geeksforgeeks.org/](http://www.geeksforgeeks.org/)
-- [InterviewBit](https://www.interviewbit.com)
-- [Project Euler (数学方向为主)](https://projecteuler.net/index.php?section=problems)
-- [Code Exercises](https://code-exercises.com/)
-- [Scaler Topics](https://www.scaler.com/topics/)
-
-语言学习网站,附带编码挑战:
-
-- [Codewars](http://www.codewars.com)
-- [Codility](https://codility.com/programmers/)
-- [HackerEarth](https://www.hackerearth.com/)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-- [Codechef](https://www.codechef.com/)
-
-编码挑战项目:
+---
-- [Python 交互式编码面试挑战](https://github.com/donnemartin/interactive-coding-challenges)
+## 更新你的简历
+
+- 在书籍《Cracking The Coding Interview》和《Programming Interviews Exposed》中查看简历准备信息。
+- [“这就是一个优秀简历的样子” by Gayle McDowell(《Cracking the Coding Interview》的作者)](https://www.careercup.com/resume),
+ - 作者备注:“这是针对美国的简历。印度和其他国家的简历有不同的期望,尽管许多要点是相同的。”
+- [“逐步简历指南” by Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
+ - 详细指南,教您如何从零开始设置您的简历,编写有效的简历内容,优化它,并测试您的简历。
+
+## 面试流程与一般面试准备
+
+- [ ] [如何在2021年通过工程师面试](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [揭秘技术招聘过程](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] 如何在四大科技巨头公司中找到工作:
+ - [ ] [如何在四大科技巨头公司中找到工作 - 亚马逊、Facebook、谷歌和微软(视频)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [如何在四大科技巨头公司中找到工作1(后续视频)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] 《破解编程面试》第一集:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview(视频)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [与作者Gayle Laakmann McDowell一起破解编程面试(视频)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] 破解Facebook编程面试:
+ - [ ] [方法论](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [问题演示](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- 面试准备课程:
+ - [数据结构、算法和面试的Python课程(付费课程):](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - 以Python为中心的面试准备课程,涵盖数据结构、算法、模拟面试等内容。
+ - [使用Python的数据结构和算法简介(Udacity免费课程):](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - 一个免费的以Python为中心的数据结构和算法课程。
+ - [数据结构和算法纳米学位!(Udacity付费纳米学位):](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - 提供超过100个数据结构和算法练习的实际操作体验,并得到专属导师的指导,以帮助您为面试和实际工作做准备。
+ - [Grokking行为面试(Educative免费课程):](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - 很多时候,阻碍您获得梦想工作的不是您的技术能力,而是您在行为面试中的表现。
+ - [AlgoMonster(付费课程,提供免费内容):)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - LeetCode的速成课程。涵盖了从成千上万的问题中提炼出的所有模式。
模拟面试:
-
-- [Gainlo.co:来自大公司的模拟面试官](http://www.gainlo.co/#!/)──我使用了它,它帮助我减轻了电话屏幕和现场面试的压力
-- [Pramp:模拟来自/与同行的面试](https://www.pramp.com/)──点对点方式练习面试
-- [Refdash:模拟面试和加急面试](https://refdash.com/)──跳过与科技公司的多次面试,帮助求职者快速追踪
-- [interviewing.io:与高级工程师进行模拟面试](https://interviewing.io/)──与来自 FAANG(译者注:Facebook, Amazon, Apple, Netflix and Google) 的高级工程师进行匿名算法/系统设计面试。
-
-## 当你临近面试时
-
-- 搞定代码面试──第二集 (视频):
- - [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
- - [Cracking the Coding Interview - 全栈系列](https://www.youtube.com/watch?v=Eg5-tdAwclo)
-
-## 你的简历
-
-- 请参阅“破解编码面试”和“编程面试的背面”中的建立准备项。
-
+- [Gainlo.co:来自大公司的模拟面试官](http://www.gainlo.co/#!/) - 我用过这个,帮助我放松进行电话和现场面试。
+- [Pramp:与同行进行模拟面试](https://www.pramp.com/) - 同行模式的实践面试。
+- [interviewing.io:与资深工程师进行模拟面试 ](https://interviewing.io) - 匿名算法/系统设计面试,与FAANG公司的资深工程师进行。
+- [Meetapro:与顶级FAANG面试官进行模拟面试 ](https://meetapro.com/?utm_source=ciu) - 类似Airbnb的模拟面试/指导平台。
+
## 当面试来临的时候
-随着下面列举的问题思考下你可能会遇到的 20 个面试问题,每个问题准备 2-3 种回答。准备点故事,不要只是摆一些你完成的事情的数据,相信我,人人都喜欢听故事。
+随着下面列举的问题思考下你可能会遇到的 20 个面试问题,每个问题准备 2-3 种回答。
+准备点故事,不要只是摆一些你完成的事情的数据,相信我,人人都喜欢听故事。
- 你为什么想得到这份工作?
- 你解决过的最有难度的问题是什么?
@@ -1389,7 +1221,7 @@
## 问面试官的问题
- 我会问的一些:(可能我已经知道了答案但我想听听面试官的看法或者了解团队的前景):
+我会问的一些:(可能我已经知道了答案但我想听听面试官的看法或者了解团队的前景):
- 团队多大规模?
- 开发周期是怎样的? 会使用瀑布流/极限编程/敏捷开发么?
@@ -1416,7 +1248,8 @@
*****************************************************************************************************
下面的内容都是可选的。
- 通过学习这些内容,你将会得到更多的有关 CS 的概念,并将为所有的软件工程工作做更好的准备。你将会成为一个更全面的软件工程师。
+ 通过学习这些内容,你将会得到更多的有关 CS 的概念,并将为所有的软件工程工作做更好的准备。
+ 你将会成为一个更全面的软件工程师。
*****************************************************************************************************
*****************************************************************************************************
@@ -1437,7 +1270,6 @@
- [设计模式:可复用面向对象软件的基础](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- 也被称为“四人帮”(Gang of Four(GOF))
- 经典设计模式书籍
-- [Linux 和 UNIX 系统管理技术手册(第五版)](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
- [算法设计手冊(Skiena)](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202)
- 作为复习以及问题辨别
- 这本书中算法的部分难度已经超过面试会出现的
@@ -1456,12 +1288,10 @@
- 我即将着手进行这部分,一旦完成这部分我会再更新上来
- 可以在 kindle 上租
- 解答:
- - [解答](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [解答](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
+ - [解答](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- [勘误表](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-
+- [算法](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
- [编程卓越之道(第一卷):深入理解计算机](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
-
- 该书于2004年出版,虽然有些过时,但是对于简单了解计算机而言,这是一个了不起的资源
- 作者发明了[高阶组合语言 HLA](https://en.wikipedia.org/wiki/High_Level_Assembly),所以提到,并且举了一些HLA的例子。里面没有用到很多,但都是很棒的组合语言的例子。
- 这些章节值得阅读,为你提供良好的基础:
@@ -1474,22 +1304,130 @@
- 第9章──CPU体系结构
- 第10章──指令集架构
- 第11章──内存体系结构和组织
-
-- [算法导论](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
+- [算法导论](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
- **重要提示**:读这本书的价值有限。本书很好地回顾了算法和数据结构,但不会教你如何编写良好的代码。你必须能够有效地编写一个不错的解决方案
- 又称 CLR,有时是 CLRS,因为 Stein 最后才加入
+- [计算机体系结构,第六版:定量方法](https://www.amazon.com/dp/0128119055)
+ - 对于更丰富、更时新(2017年)但较长的处理方式
+
+## 系统设计、可扩展性和数据处理
+
+**如果您有4年以上的工作经验,可以预期会遇到系统设计问题。**
+
+- 可扩展性和系统设计是一个非常广泛的主题,涵盖了许多内容和资源,
+因为在设计一个可以扩展的软件/硬件系统时需要考虑很多因素。
+预计需要花费相当多的时间来学习这方面的知识。
+- 考虑要点:
+ - 可扩展性
+ - 将大数据集归纳为单一值
+ - 将一个数据集转换为另一个数据集
+ - 处理海量数据
+ - 系统设计
+ - 功能集
+ - 接口
+ - 类层次结构
+ - 在特定约束下设计系统
+ - 简单性和鲁棒性
+ - 权衡
+ - 性能分析和优化
+- [ ] **从这里开始**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [HiredInTech的系统设计](http://www.hiredintech.com/system-design/)
+- [ ] [如何准备回答技术面试中的设计问题?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [通过8个步骤掌握系统设计面试](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
+- [ ] [数据库规范化 - 第一范式、第二范式、第三范式和第四范式(视频)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [系统设计面试 ](https://github.com/checkcheckzz/system-design-interview) - 这个资源有很多内容。浏览文章和示例。我列出了一些示例在下面。
+- [ ] [如何在系统设计面试中脱颖而出](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [每个人都应该了解的数字](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [进行上下文切换需要多长时间?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [跨数据中心的事务(视频)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [CAP定理的简明英文介绍](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824:分布式系统,2020年春季(20个视频)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] 共识算法:
+ - [ ] Paxos - [Paxos协议 - Computerphile(视频)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [Raft分布式共识算法简介(视频)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [易于理解的论文](https://raft.github.io/)
+ - [ ] [信息图](http://thesecretlivesofdata.com/raft/)
+- [ ] [一致性哈希](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL模式](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] 可扩展性:
+ - 您不需要掌握所有这些内容,只需选择一些您感兴趣的。
+ - [ ] [优秀的概述(视频)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] 短系列:
+ - [克隆](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [数据库](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [缓存](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [异步性](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [可扩展的Web架构和分布式系统](http://www.aosabook.org/en/distsys.html)
+ - [ ] [分布式计算的谬误解释](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [Jeff Dean - 在Google构建软件系统以及吸取的教训(视频)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [架构师为规模而设计的介绍](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [缩放移动游戏以面向全球受众使用App Engine和Cloud Datastore(视频)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [谷歌是如何进行面向全球基础设施的大规模工程的(视频)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [算法的重要性](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
+ - [ ] [分片](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [针对长期目标的工程 - Astrid Atkinson主题演讲(视频)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [在30分钟内了解YouTube 7年的可扩展性经验](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [视频](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [PayPal如何使用仅8台VM每天处理数十亿次交易](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [如何在大型数据集中去重](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [通过Jon Cowie深入了解Etsy的规模和工程文化(视频)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [Amazon是如何转向自己的微服务架构的](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [压缩还是不压缩,这是Uber面临的问题](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [何时应使用近似查询处理?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
+ - [ ] [谷歌从单一数据中心到故障转移再到本地多家数据中心架构的转变]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [为每天处理数百万请求的图像优化技术](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [Patreon架构简介](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [如何在Instagram庞大的推荐引擎中决定您将看到谁?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
+ - [ ] [现代缓存设计](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [在Facebook规模下进行直播视频流](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [在亚马逊AWS上如何扩展到1100万以上的用户](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
+ - [ ] [全面了解Netflix整个堆栈](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [延迟无处不在,而且它会让您丧失销售机会 - 如何应对](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [Instagram的动力:数百个实例,几十种技术](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
+ - [ ] [Salesforce架构 - 如何处理每天13亿次交易](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [ESPN规模上的架构 - 每秒操作10万次“嘟嘟噜嘟嘟噜”](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] 在下面的“消息、序列化和队列系统”部分查看一些将服务连接在一起的技术信息
+ - [ ] Twitter:
+ - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (视频)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [时间轴扩展](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - 欲知更多信息,请参阅[Video Series](#video-series) 部分中的“Mining Massive Datasets”视频系列
+- [ ] 练习系统设计过程:以下是一些建议您在纸上尝试的想法,每个想法都有一些关于如何在现实世界中处理的文档:
+ - 复习: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [HiredInTech的系统设计](http://www.hiredintech.com/system-design/)
+ - [速查表](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - 流程:
+ 1. 理解问题和范围:
+ - 定义用例,与面试官的帮助
+ - 提出额外的功能
+ - 移除面试官认为超出范围的项目
+ - 假设需要高可用性,并将其添加为用例
+ 2. 考虑限制:
+ - 询问每月有多少个请求
+ - 询问每秒有多少个请求(他们可能会主动提供或让您计算)
+ - 估计读取与写入的百分比
+ - 保持估计时考虑80/20法则
+ - 每秒写入多少数据
+ - 在5年内所需的总存储量
+ - 每秒读取多少数据
+ 3. 抽象设计:
+ - 层(服务、数据、缓存)
+ - 基础架构:负载均衡、消息传递
+ - 驱动服务的任何关键算法的粗略概述
+ - 考虑瓶颈并确定解决方案
+ - 练习:
+ - [设计一个随机唯一ID生成系统](https://blog.twitter.com/2010/announcing-snowflake)
+ - [设计一个键值数据库](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [设计一个图片分享系统](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [设计一个推荐系统](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [设计一个URL缩短系统:来自上面的复制](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [设计一个缓存系统](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
-- [计算机体系结构:量化研究方法(第6版)](https://www.amazon.com/dp/0128119055)
- - 更丰富、更新(2017年),但篇幅较长
-- [编程珠矶](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
- - 前几章介绍了解决编程问题(非常古老,甚至还用数据磁带)的巧妙解决方案,但这只是一个介绍。这是关于程序设计和体系结构的指南
## 附加学习
我把它们加进来是为了让你成为更全方位的软件工程师,并且留意一些技术以及算法,让你拥有更大的工具箱。
- ### 编译器
-
- [编译器的工作方式,约1分钟(视频)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- [Harvard CS50-编译器(视频)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- [C ++(视频)](https://www.youtube.com/watch?v=twodd1KFfGk)
@@ -1514,7 +1452,8 @@
- [Emacs 教程 (初学者 -第 3 部分- 表达式, 声明, ~/.emacs 文件和包机制](https://www.youtube.com/watch?v=paSgzPso-yc)
- [Evil 模式: 或许, 我是怎样对 Emacs 路人转粉的 (视频)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [使用 Emacs 开发 C 程序](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- - [(或许) 深度组织模式:管理结构 (视频)](https://www.youtube.com/watch?v=nsGYet02bEk)
+ - [Emacs 绝对初学者指南(David Wilson的视频)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [Emacs 绝对初学者指南(David Wilson 批注)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
- ### Unix 命令行工具
- 下列内容包含优秀工具
@@ -1617,9 +1556,7 @@
- [Avro](https://avro.apache.org/)
- ### A*搜索算法
-
- [A 搜索算法](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [A* 路径搜索教程(教程)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- [A* 路径搜索(E01:算法解释)(视频)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
- ### 快速傅里叶变换
@@ -1653,15 +1590,25 @@
- ### 平衡查找树(Balanced search trees)
- 掌握至少一种平衡查找树(并懂得如何实现):
- - “在各种平衡查找树当中,AVL 树和2-3树已经成为了过去,而红黑树(red-black trees)看似变得越来越受人青睐。这种令人特别感兴趣的数据结构,亦称伸展树(splay tree)。它可以自我管理,且会使用轮换来移除任何访问过根节点的键。” —— Skiena
- - 因此,在各种各样的平衡查找树当中,我选择了伸展树来实现。虽然,通过我的阅读,我发现在面试中并不会被要求实现一棵平衡查找树。但是,为了胜人一筹,我们还是应该看看如何去实现。在阅读了大量关于红黑树的代码后,我才发现伸展树的实现确实会使得各方面更为高效。
+ - “在各种平衡查找树当中,AVL 树和2-3树已经成为了过去,而红黑树(red-black trees)看似变得越来越受人青睐。
+ 这种令人特别感兴趣的数据结构,亦称伸展树(splay tree)。
+ 它可以自我管理,且会使用轮换来移除任何访问过根节点的键。” —— Skiena
+ - 因此,在各种各样的平衡查找树当中,我选择了伸展树来实现。
+ 虽然,通过我的阅读,我发现在面试中并不会被要求实现一棵平衡查找树。
+ 但是,为了胜人一筹,我们还是应该看看如何去实现。在阅读了大量关于红黑树的代码后,
+ 我才发现伸展树的实现确实会使得各方面更为高效。
- 伸展树:插入、查找、删除函数的实现,而如果你最终实现了红黑树,那么请尝试一下:
- 跳过删除函数,直接实现搜索和插入功能
- 我希望能阅读到更多关于 B 树的资料,因为它也被广泛地应用到大型的数据集当中。
- [自平衡二叉查找树](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
- **AVL 树**
- - 实际中:我能告诉你的是,该种树并无太多的用途,但我能看到有用的地方在哪里:AVL 树是另一种平衡查找树结构。其可支持时间复杂度为 O(log n) 的查询、插入及删除。它比红黑树严格意义上更为平衡,从而导致插入和删除更慢,但遍历却更快。正因如此,才彰显其结构的魅力。只需要构建一次,就可以在不重新构造的情况下读取,适合于实现诸如语言字典(或程序字典,如一个汇编程序或解释程序的操作码)。
+ - 实际中:
+ 我能告诉你的是,该种树并无太多的用途,但我能看到有用的地方在哪里:
+ AVL 树是另一种平衡查找树结构。其可支持时间复杂度为 O(log n) 的查询、插入及删除。
+ 它比红黑树严格意义上更为平衡,从而导致插入和删除更慢,但遍历却更快。正因如此,才彰显其结构的魅力。
+ 只需要构建一次,就可以在不重新构造的情况下读取,
+ 适合于实现诸如语言字典(或程序字典,如一个汇编程序或解释程序的操作码)。
- [MIT AVL 树 / AVL 树的排序(视频)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- [AVL 树(视频)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [AVL 树的实现(视频)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
@@ -1669,7 +1616,10 @@
- [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- **伸展树**
- - 实际中:伸展树一般用于缓存、内存分配者、路由器、垃圾回收者、数据压缩、ropes(字符串的一种替代品,用于存储长串的文本字符)、Windows NT(虚拟内存、网络及文件系统)等的实现。
+ - 实际中:
+ 伸展树一般用于缓存、内存分配者、路由器、垃圾回收者、数据压缩、ropes
+ (字符串的一种替代品,用于存储长串的文本字符)、
+ Windows NT(虚拟内存、网络及文件系统)等的实现。
- [CS 61B:伸展树(Splay trees)(视频)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
- MIT 教程:伸展树(Splay trees):
- 该教程会过于学术,但请观看到最后的10分钟以确保掌握。
@@ -1677,7 +1627,14 @@
- **红黑树**
- 这些是2-3棵树的翻译(请参见下文)。
- - 实际中:红黑树提供了在最坏情况下插入操作、删除操作和查找操作的时间保证。这些时间值的保障不仅对时间敏感型应用有用,例如实时应用,还对在其他数据结构中块的构建非常有用,而这些数据结构都提供了最坏情况下的保障;例如,许多用于计算几何学的数据结构都可以基于红黑树,而目前 Linux 内核所采用的完全公平调度器(the Completely Fair Scheduler)也使用到了该种树。在 Java 8中,Collection HashMap也从原本用Linked List实现,储存特定元素的哈希码,改为用红黑树实现。
+ - 实际中:红黑树提供了在最坏情况下插入操作、删除操作和查找操作的时间保证。
+ 这些时间值的保障不仅对时间敏感型应用有用,例如实时应用,
+ 还对在其他数据结构中块的构建非常有用,
+ 而这些数据结构都提供了最坏情况下的保障;
+ 例如,许多用于计算几何学的数据结构都可以基于红黑树,
+ 而目前 Linux 内核所采用的完全公平调度器(the Completely Fair Scheduler)也使用到了该种树。
+ 在 Java 8中,Collection HashMap也从原本用Linked List实现,
+ 储存特定元素的哈希码,改为用红黑树实现。
- [Aduni —— 算法 —— 课程4(该链接直接跳到开始部分)(视频)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- [Aduni —— 算法 —— 课程5(视频)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [黑树(Black Tree)](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
@@ -1685,14 +1642,19 @@
- [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- **2-3查找树**
- - 实际中:2-3树的元素插入非常快速,但却有着查询慢的代价(因为相比较 AVL 树来说,其高度更高)。
+ - 实际中:
+ 2-3树的元素插入非常快速,但却有着查询慢的代价(因为相比较 AVL 树来说,其高度更高)。
- 你会很少用到2-3树。这是因为,其实现过程中涉及到不同类型的节点。因此,人们更多地会选择红黑树。
- [2-3树的直感与定义(视频)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- [2-3树的二元观点](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [2-3树(学生叙述)(视频)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- **2-3-4树 (亦称2-4树)**
- - 实际中:对于每一棵2-4树,都有着对应的红黑树来存储同样顺序的数据元素。在2-4树上进行插入及删除操作等同于在红黑树上进行颜色翻转及轮换。这使得2-4树成为一种用于掌握红黑树背后逻辑的重要工具。这就是为什么许多算法引导文章都会在介绍红黑树之前,先介绍2-4树,尽管**2-4树在实际中并不经常使用**。
+ - 实际中:
+ 对于每一棵2-4树,都有着对应的红黑树来存储同样顺序的数据元素。
+ 在2-4树上进行插入及删除操作等同于在红黑树上进行颜色翻转及轮换。
+ 这使得2-4树成为一种用于掌握红黑树背后逻辑的重要工具。
+ 这就是为什么许多算法引导文章都会在介绍红黑树之前,先介绍2-4树,尽管**2-4树在实际中并不经常使用**。
- [CS 61B Lecture 26:平衡查找树(视频)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
- [自底向上的2-4树(视频)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [自顶向下的2-4树(视频)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
@@ -1705,7 +1667,11 @@
- **B 树**
- 有趣的是:为啥叫 B 仍然是一个神秘。因为 B 可代表波音(Boeing)、平衡(Balanced)或 Bayer(联合创造者)
- - 实际中:B 树会被广泛适用于数据库中,而现代大多数的文件系统都会使用到这种树(或变种)。除了运用在数据库中,B 树也会被用于文件系统以快速访问一个文件的任意块。但存在着一个基本的问题,那就是如何将文件块 i 转换成一个硬盘块(或一个柱面-磁头-扇区)上的地址。
+ - 实际中:
+ B 树会被广泛适用于数据库中,而现代大多数的文件系统都会使用到这种树(或变种)。
+ 除了运用在数据库中,B 树也会被用于文件系统以快速访问一个文件的任意块。
+ 但存在着一个基本的问题,
+ 那就是如何将文件块 i 转换成一个硬盘块(或一个柱面-磁头-扇区)上的地址。
- [B 树](https://en.wikipedia.org/wiki/B-tree)
- [B 树数据结构](http://btechsmartclass.com/data_structures/b-trees.html)
- [B 树的介绍(视频)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
@@ -1716,10 +1682,10 @@
- 头37分钟讲述的很专业,或许可以跳过(B 指块的大小、即缓存行的大小)
- [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
+
- ### k-D树
- 非常适合在矩形或更高维度的对象中查找点数
- 最适合k近邻
- - [Kd树(视频)](https://www.youtube.com/watch?v=W94M9D_yXKk)
- [kNN K-d树算法(视频)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
- ### 跳表
@@ -1758,57 +1724,35 @@
- [分而治之: 凸包, 中值查找](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
- ### 离散数学
- - 查看下面的视频
-
-- ### 机器学习(Machine Learning)
- - 为什么学习机器学习?
- - [谷歌如何将自己改造成一家「机器学习优先」公司?](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- - [智能计算机系统的大规模深度学习 (视频)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
- - [Peter Norvig:深度学习和理解与软件工程和验证的对比](https://www.youtube.com/watch?v=X769cyzBNVw)
- - [谷歌云机器学习工具(视频)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
- - [谷歌开发者机器学习清单 (Scikit Learn 和 Tensorflow) (视频)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
- - [Tensorflow (视频)](https://www.youtube.com/watch?v=oZikw5k_2FM)
- - [Tensorflow 教程](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- - [Python 实现神经网络实例教程(使用 Theano)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
- - 课程:
- - [很棒的初级课程:机器学习](https://www.coursera.org/learn/machine-learning)
- - [视频教程](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
- - 看第 12-18 集复习线性代数(第 14 集和第 15 集是重复的)
- - [机器学习中的神经网络](https://www.coursera.org/learn/neural-networks)
- - [Google 深度学习微学位](https://www.udacity.com/course/deep-learning--ud730)
- - [Google/Kaggle 机器学习工程师微学位](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
- - [无人驾驶工程师微学位](https://www.udacity.com/drive)
- - 资源:
- - 书籍:
- - [Python 机器学习](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
- - [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
- - [Python 机器学习简介](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
- - [软件工程师的机器学习](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- - Data School:http://www.dataschool.io/
-
---
+ - [计算机科学70,001 - 2015年春季 - 离散数学与概率论](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [离散数学由Shai Simonson(19个视频)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [离散数学由印度理工学院罗帕尔分校NPTEL提供](https://nptel.ac.in/courses/106/106/106106183/)
+
+---
## 一些主题的额外内容
- 我为前面提到的某些主题增加了一些额外的内容,之所以没有直接添加到前面,是因为这样很容易导致某个主题内容过多。毕竟你想在本世纪找到一份工作,对吧?
-
-- SOLID
-
- - [ ] [Bob Martin SOLID面向对象和敏捷设计的原理(视频)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- - [ ] S ── [单一责任原则](http://www.oodesign.com/single-responsibility-principle.html) | [对每个对象的单一责任](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- - [更多](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - [ ] O ── [开放/封闭原则](http://www.oodesign.com/open-close-principle.html) | [在生产级别上,可以扩展对象,但不能修改对象](https://en.wikipedia.org/wiki/Open/closed_principle)
- - [更多](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- - [ ] L ── [Liskov 替换原则](http://www.oodesign.com/liskov-s-substitution-principle.html) | [基本类别和派生类别遵循“IS A”原则](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- - [更多](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
- - [ ] I ── [接口隔离原理](http://www.oodesign.com/interface-segregation-principle.html) | 不应强迫客户端实现不使用的接口
- - [5分钟了解接口隔离原理(视频)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- - [更多](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
- - [ ] D ── [依赖倒置原理](http://www.oodesign.com/dependency-inversion-principle.html) | 减少对象组合中的依赖性。
- - [依赖倒置原理为何如此重要?](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
- - [更多](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
-
-- Union-Find
+ 我添加了这些内容来加强上面已经提出的一些观点,但是不想把它们放在上面,因为那样会太多。
+ 对于一个主题来说,过度处理很容易。
+ 你希望在本世纪被雇佣吗?
+
+- **SOLID**
+ - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (视频)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [单一职责原则 | 每个对象负责一个单一职责](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [更多解释](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [开闭原则](http://www.oodesign.com/open-close-principle.html) | [在生产级别上,对象应准备好进行扩展,但不进行修改](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [更多解释](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
+ - [ ] L - [里氏替换原则](http://www.oodesign.com/liskov-s-substitution-principle.html) | [基类和派生类遵循‘是一个’原则](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [更多解释](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
+ - [ ] I - [接口隔离原则](http://www.oodesign.com/interface-segregation-principle.html) | 客户端不应被强制实现不使用的接口
+ - [5分钟内的接口隔离原则(视频)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [更多解释](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
+ - [ ] D -[依赖反转原则](http://www.oodesign.com/dependency-inversion-principle.html) | 在对象的组合中减少依赖
+ - [为何依赖反转原则如此重要](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [更多解释](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+
+
+- **Union-Find**
- [概览](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
- [初级实践](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
- [树状结构](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
@@ -1842,7 +1786,6 @@
- [Simonson: 近似算法 (视频)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
- **字符串匹配**
-
- Rabin-Karp(视频)
- [Rabin Karps 算法](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
- [预计算](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
@@ -1864,20 +1807,18 @@
- 斯坦福大学关于排序算法的视频:
- [课程 15 | 编程抽象(视频)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- [课程 16 | 编程抽象(视频)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
-
- Shai Simonson 视频,[Aduni.org](http://www.aduni.org/):
- [算法 - 排序 - 第二讲(视频)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- [算法 - 排序2 - 第三讲(视频)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
-
- Steven Skiena 关于排序的视频:
- - [课程从 26:46 开始(视频)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [课程从 27:40 开始(视频)](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [课程从 35:00 开始(视频)](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [课程从 23:50 开始(视频)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+ - [CSE373 2020 - 归并排序/快速排序(视频)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - 线性排序(视频)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
+
+- NAND 到 Tetris: [从第一原理构建现代计算机](https://www.coursera.org/learn/build-a-computer)
## 视频系列
- 坐下来享受一下吧。"netflix 和技能" :P
+坐下来,尽情享受。
- [个人的动态规划问题列表 (都是短视频)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
@@ -1887,14 +1828,7 @@
- [绝妙的 MIT 微积分:单变量微积分](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
-- [计算机科学 70, 001 - 2015 年春季 - 离散数学和概率理论](https://www.youtube.com/playlist?list=PL-XXv-cvA_iD8wQm8U0gG_Z1uHjImKXFy)
-
-- [离散数学 (19 个视频)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
-
-- [离散数学(第一部分),Sarada Herke (5个视频)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
-
-- CSE373 - 算法分析 (25 个视频)
- - [Skiena 的算法设计手册讲座](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+- [Skiena讲座来自《算法设计手册》- CSE373 2020 - 算法分析(26个视频)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
- [UC Berkeley 61B (2014 年春季): 数据结构 (25 个视频)](https://www.youtube.com/watch?v=mFPmKGIrQs4&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
@@ -1904,8 +1838,6 @@
- [OOSE:使用 UML 和 Java 进行软件开发 (21 个视频)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
-- [UC Berkeley CS 152: 计算机结构和工程 (20 个视频)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)
-
- [MIT 6.004: 计算结构 (49 视频)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
- [卡內基梅隆大学 - 计算机架构讲座 (39 个视频)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
@@ -1944,6 +1876,11 @@
- [在线 CS 课程目录](https://github.com/open-source-society/computer-science)
- [CS 课程目录 (一些是在线讲座)](https://github.com/prakhar1989/awesome-courses)
+## 算法实现
+
+- [普林斯顿大学的多算法实现](https://algs4.cs.princeton.edu/code)
+
+
## 论文
- [喜欢经典的论文?](https://www.cs.cmu.edu/~crary/819-f09/)
@@ -1954,27 +1891,20 @@
- [2004: MapReduce: Simplified Data Processing on Large Clusters](http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- 大多被云数据流取代了?
- [2006年:Bigtable:结构化数据的分布式存储系统](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
- - [深入了解Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
- [2006年:针对松散耦合的分布式系统的Chubby Lock服务](https://research.google.com/archive/chubby-osdi06.pdf)
- [2007年:Dynamo:亚马逊的高可用键值存储](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- Dynamo论文启动了NoSQL革命
- [2007: 每个程序员都应该知道的内存知识 (非常长,作者建议跳过某些章节来阅读)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- [2010年:Dapper,一个大型分布式系统跟踪基础结构](https://research.google.com/pubs/archive/36356.pdf)
-- [2010年:Dremel:Web规模数据集的交互式分析](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
-- [2012: Google 的 Colossus](https://www.wired.com/2012/07/google-colossus/)
- - 没有论文
- 2012: AddressSanitizer: 快速的内存访问检查器:
- [论文](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- [视频](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- 2013: Spanner: Google 的分布式数据库:
- [论文](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- [视频](https://www.usenix.org/node/170855)
-- [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
-- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
-- [2015: 大规模高可用: 构建 Google Ads 的数据基础设施](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: TensorFlow: 异构分布式系统上的大规模机器学习](http://download.tensorflow.org/paper/whitepaper2015.pdf )
-- [2015: 开发者应该如何搜索代码:用例学习](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
-- [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
+- [2015: Google的持续流水线](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: 大规模高可用性:构建Google广告数据基础设施](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: 开发人员如何搜索代码:一个案例研究](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- 更多论文: [1,000篇论文](https://github.com/0voice/computer_expert_paper)
## LICENSE
From d0bec91d0030f603a573fcba4626d6277b6d186d Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 29 Aug 2023 11:34:13 +0200
Subject: [PATCH 085/173] Fix typo in line
---
translations/README-bg.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index a53b284234..e2b517431d 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -534,7 +534,7 @@ pобхождам графи. Ако трябваше да напиша сорт
- [LeetCode](https://leetcode.com/)
- Любимият ми сайт със задачи. Струва си парите за абонамент за времето, в което ще се подготвяте.
- - Вижте клиповете на Nick White и FisherCoder Videos по-горе за насоки със някои задачи.
+ - Вижте клиповете на Nick White и FisherCoder Videos по-горе за насоки с някои задачи.
- [HackerRank](https://www.hackerrank.com/)
- [TopCoder](https://www.topcoder.com/)
- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
From 9e8b0ddea7576784fb5b135ae906e31591c043a8 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Tue, 29 Aug 2023 11:35:07 +0200
Subject: [PATCH 086/173] Fix indentation
---
translations/README-bg.md | 124 +++++++++++++++++++-------------------
1 file changed, 61 insertions(+), 63 deletions(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index e2b517431d..dd7c1b17c1 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -335,7 +335,7 @@ pобхождам графи. Ако трябваше да напиша сорт
Повече за вариантите:
-- [Изберете правилния език за вашето интервю по програмиране](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+- [Изберете правилния език за вашето интервю по програмиране](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
[Вижте ресурси за специфични езици тук](programming-language-resources.md)
@@ -374,11 +374,11 @@ pобхождам графи. Ако трябваше да напиша сорт
Изборът е ваш:
-- Goodrich, Tamassia, and Mount
- - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
-- Sedgewick and Wayne
- - [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/)
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - [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/)
## Книги за подготовка за интервю
@@ -386,12 +386,12 @@ pобхождам графи. Ако трябваше да напиша сорт
Купих тези двете, дадоха ми предостатъчно упражнение.
-- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - Отговори в C++ и Java
- - Това е добра подготовка за "Cracking the Coding Interview"
- - Не е прекалено сложна. Повечето проблеми са по-лесни от тези, които ще срещнете на интервю (от това, което аз съм прочел)
-- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - отговори в Java
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - Отговори в C++ и Java
+ - Това е добра подготовка за "Cracking the Coding Interview"
+ - Не е прекалено сложна. Повечето проблеми са по-лесни от тези, които ще срещнете на интервю (от това, което аз съм прочел)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - отговори в Java
### Ако имате изобилие от време:
@@ -728,57 +728,55 @@ pобхождам графи. Ако трябваше да напиша сорт
## Дървета
-- ### Дървета - бележки & основи
-
- - [ ] [Серия: Дървета (клип)](https://www.coursera.org/lecture/data-structures/trees-95qda)
- - основна структура на дървото
- - обхождане
- - алгоритми за манипулиране
- - [ ] [BFS(обхождане в ширина) and DFS(обхождане в дълбочина) (клип)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- - бележки за BFS:
- - level order (BFS, using queue)
- - времева сложност O(n)
- - пространствена сложност: в най-добрия случай: O(1), в най-лошия случай: O(n/2)=O(n)
- - бележки за DFS:
- - времева сложност: O(n)
- - пространствена сложност:
- в най-добрия случай: O(log n) - средна височина на дървото
- в най-добрия случай: O(n)
- - inorder (DFS: ляво, self, дясно)
- - postorder (DFS: ляво, дясно, self)
- - preorder (DFS: self, ляво, дясно)
- - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
-
-- ### Дървета за двоично търсене: BSTs
-
- - [ ] [Преговор над двоични дървета за търсене (клип)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Въведение (клип)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT (клип)](https://www.youtube.com/watch?v=9Jry5-82I68)
- - C/C++:
- - [ ] [Двоично дърво за търсене - имплементация в C/C++ (клип)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- - [ ] [BST имплементация - memory allocation in stack and heap (клип)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- - [ ] [Намиране на мин. и макс. елемент в двоично дърво за търсенея (клип)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Намиране на височината на двоично дърво (клип)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
- - [ ] [Обхождане на двоично дърво - стратегии за обхождане по ширина и по дълбочина (клип)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
- - [ ] [Двоично дърво: преминаване на порядъка на ниво (клип)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Обхождане на двоично дърво: Preorder, Inorder, Postorder (клип)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Проверка дали двоично дърво е двоично дърво за търсене (клип)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Изтриване на възел от двоично дърво за търсене (клип)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- - [ ] [Редовен наследник в двоично дърво (клип)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] Имплементирайте:
- - [ ] insert // вкарване на стойност в дървото
- - [ ] get_node_count // вземане на бройката на запазените стойности
- - [ ] print_values // принтира стойностите в дървото от най-малкия до най-големия
- - [ ] delete_tree
- - [ ] is_in_tree // връща true ако дадената стойност съществува в дървото
- - [ ] get_height // returns the height in nodes (single node's height is 1)
- - [ ] get_min // връща най-малката стойност, съхранявана в дървото
- - [ ] get_max // връща най-голямата стойност, съхранявана в дървото
- - [ ] is_binary_search_tree
- - [ ] delete_value
- - [ ] get_successor // връща следващата най-голяма стойност след дадената, -1 ако такава не съществува
+- ### Дървета - бележки & основи
+ - [ ] [Серия: Дървета (клип)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - основна структура на дървото
+ - обхождане
+ - алгоритми за манипулиране
+ - [ ] [BFS(обхождане в ширина) and DFS(обхождане в дълбочина) (клип)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - бележки за BFS:
+ - level order (BFS, using queue)
+ - времева сложност O(n)
+ - пространствена сложност: в най-добрия случай: O(1), в най-лошия случай: O(n/2)=O(n)
+ - бележки за DFS:
+ - времева сложност: O(n)
+ - пространствена сложност:
+ в най-добрия случай: O(log n) - средна височина на дървото
+ в най-добрия случай: O(n)
+ - inorder (DFS: ляво, self, дясно)
+ - postorder (DFS: ляво, дясно, self)
+ - preorder (DFS: self, ляво, дясно)
+ - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+
+- ### Дървета за двоично търсене: BSTs
+ - [ ] [Преговор над двоични дървета за търсене (клип)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [Въведение (клип)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [MIT (клип)](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - C/C++:
+ - [ ] [Двоично дърво за търсене - имплементация в C/C++ (клип)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] [BST имплементация - memory allocation in stack and heap (клип)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] [Намиране на мин. и макс. елемент в двоично дърво за търсенея (клип)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Намиране на височината на двоично дърво (клип)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [Обхождане на двоично дърво - стратегии за обхождане по ширина и по дълбочина (клип)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] [Двоично дърво: преминаване на порядъка на ниво (клип)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Обхождане на двоично дърво: Preorder, Inorder, Postorder (клип)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Проверка дали двоично дърво е двоично дърво за търсене (клип)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Изтриване на възел от двоично дърво за търсене (клип)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] [Редовен наследник в двоично дърво (клип)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Имплементирайте:
+ - [ ] insert // вкарване на стойност в дървото
+ - [ ] get_node_count // вземане на бройката на запазените стойности
+ - [ ] print_values // принтира стойностите в дървото от най-малкия до най-големия
+ - [ ] delete_tree
+ - [ ] is_in_tree // връща true ако дадената стойност съществува в дървото
+ - [ ] get_height // returns the height in nodes (single node's height is 1)
+ - [ ] get_min // връща най-малката стойност, съхранявана в дървото
+ - [ ] get_max // връща най-голямата стойност, съхранявана в дървото
+ - [ ] is_binary_search_tree
+ - [ ] delete_value
+ - [ ] get_successor // връща следващата най-голяма стойност след дадената, -1 ако такава не съществува
- ### Heap / Priority Queue / Binary Heap
- визуализира се като дърво, но обикновенно е линейна структура (масив, свързан списък)
From f3adef8efde6b1be0dfc2ae0599b79c6e9d32164 Mon Sep 17 00:00:00 2001
From: omahs <73983677+omahs@users.noreply.github.com>
Date: Sun, 3 Sep 2023 23:08:53 +0200
Subject: [PATCH 087/173] fix typos
---
translations/README-fr.md | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/translations/README-fr.md b/translations/README-fr.md
index a7debf35ed..f80444c633 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -23,13 +23,13 @@ Cette longue liste a été extraite et étendue de **Google's coaching notes**,
En bas, j'ai rajouté des unités supplémentaires qui peuvent être soulevées pendant l'entretien, ou qui peuvent être utiles pour résoudre des problèmes. Plusieurs unités proviennent de
"[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" par Steve Yegge, et sont parfois reflétées mot pour mot dans les notes de coaching de google.
-J'ai épuré ce que vous devez savoir de ce qui est recommendé par Yegge. J'ai modifié les prérequis de Yegge.
-D'après les informations reçues de la part des contact travaillant à Google. Ceci est destiné aux **new software engineers** ou aux developpeur logiciel/web qui souhaitent devenir des ingénieurs en génie logiciel (où la science de l'informatique est requise). Si vous avez plusieurs années d'expérience et vous déclarez plusieurs années d'éxperience en génie logiciel attendez vous à un entretien plus dur.
+J'ai épuré ce que vous devez savoir de ce qui est recommandé par Yegge. J'ai modifié les prérequis de Yegge.
+D'après les informations reçues de la part des contacts travaillant à Google. Ceci est destiné aux **new software engineers** ou aux développeurs logiciel/web qui souhaitent devenir des ingénieurs en génie logiciel (où la science de l'informatique est requise). Si vous avez plusieurs années d'expérience et vous déclarez plusieurs années d'expérience en génie logiciel attendez vous à un entretien plus dur.
[Read more here](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/).
-Si vous avez plusieurs années d'experience en development web/logiciel, notez que google font une distinction entre le développement logiciel et l'ingénieurie en génie civil.
+Si vous avez plusieurs années d'expérience en développement web/logiciel, notez que google font une distinction entre le développement logiciel et l'ingénierie en génie civil.
-Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, suivez plus de cours de la liste optionelle (Réseau, sécurité)
+Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, suivez plus de cours de la liste optionnelle (Réseau, sécurité)
---
## Table of Contents
@@ -99,7 +99,7 @@ Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, sui
- [Votre CV](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Ayez les questions pour l'entretien](#have-questions-for-the-interviewer)
-- [Quand vous aurez eu le travial:](#once-youve-got-the-job)
+- [Quand vous aurez eu le travail:](#once-youve-got-the-job)
---------------- Everything below this point is optional ----------------
@@ -265,7 +265,7 @@ Parfois, les cours ne sont pas en session, alors vous devez attendre quelques mo
- [ ] Cours pour préparer:
- [ ] [Comment réussir dans une interview d'ingénieur logiciel (besoin de payer)](https://www.udemy.com/software-engineer-interview-unleashed):
- - Apprends comment être pret pour l'entrevue de quelqu'un qui était responsable de l'embauche pour Google.
+ - Apprends comment être prêt pour l'entrevue de quelqu'un qui était responsable de l'embauche pour Google.
- [ ] Supplémentaires (ne sont pas suggéré par Google, mais je l'ai ajouté):
- [ ] [Toujours en train de faire le codage (Anglais ABC: Always Be Coding)](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
@@ -283,7 +283,7 @@ Parfois, les cours ne sont pas en session, alors vous devez attendre quelques mo
Je l'ai écrit cet article à propos de cela : [Important: Choisis une langue pour l'entrevue Google](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
-Tu peux choisir une langue avec laquelle vos êtes comftortable pour fair la partie de codage, mais pour Google, celles-ci sont les bons choix:
+Tu peux choisir une langue avec laquelle vous êtes confortable pour faire la partie de codage, mais pour Google, celles-ci sont les bons choix:
- C++
- Java
@@ -303,7 +303,7 @@ Lis à propos vos choix:
[Regarde les ressources pour chaque langue ici](programming-language-resources.md)
-Vous voyiez C, C++ et Python en dessous, parce que j'apprends. Il y a quelques livres qui va t'aider, regarde en dessous.
+Vous voyez C, C++ et Python en dessous, parce que j'apprends. Il y a quelques livres qui vont t'aider, regarde en dessous.
## Liste de livres
@@ -315,12 +315,12 @@ Voici une liste que j'ai réduite afin de vous faire gagner du temps.
- réponses en c++ et java
- recommandé par un candidat en coaching de Google
- this is a good warm-up for Cracking the Coding Interview
- - c'est un bon échuaffement pour cracker l'entretien de développement
- - pas trop difficule, la plupart des problèmes seront plus faciles que ceux que vous arez dans l'entretien (de ce que j'ai lu)
+ - c'est un bon échauffement pour cracker l'entretien de développement
+ - pas trop difficile, la plupart des problèmes seront plus faciles que ceux que vous aurez dans l'entretien (de ce que j'ai lu)
- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- réponses en java
- recommandé sur le [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
- - Si vous voyez des personnes faire référence à "The Google Resume", c'était le livre remplacé par "Craking the Coding Interview"
+ - Si vous voyez des personnes faire référence à "The Google Resume", c'était le livre remplacé par "Cracking the Coding Interview"
Si vous avez beaucoup de temps libre:
@@ -334,9 +334,9 @@ Si vous n'avez pas beaucoup de temps :
- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- Le livre est un peu dépassé car il a été publié en 2004, mais il reste intéressant pour comprendre brièvement comment marche un ordinateur.
- - L''ateur a inventé HLA, prenez donc ses remarques et ses exemples sur le HLA avec scpetisme. Il n'est pas souvent cité mais propose de nombreux exemples sur ce à quoi un assembleur ressemble
+ - L'auteur a inventé HLA, prenez donc ses remarques et ses exemples sur le HLA avec scepticisme. Il n'est pas souvent cité mais propose de nombreux exemples sur ce à quoi un assembleur ressemble
- Ces chapitres vous donneront des fondations :
- - Chapitre 2 - Réprésentation numérique
+ - Chapitre 2 - Représentation numérique
- Chapitre 3 - Arithmétique binaire et les opérations bit à bit
- Chapitre 4 - Floating-Point Representation
- Chapitre 4 - La représentation de la virgule flottante
@@ -354,9 +354,9 @@ Si vous avez plus de temps (Je veux ce livre):
### Sur les langages
-**Vous avez besoin de choisir un langage pour l'entretien (voir au-dessus).** Voici mes recommendations sur les différents langages. Je n'ai pas des ressources pour tous les langages alors n'hésitez pas à en rajouter.
+**Vous avez besoin de choisir un langage pour l'entretien (voir au-dessus).** Voici mes recommandations sur les différents langages. Je n'ai pas de ressources pour tous les langages alors n'hésitez pas à en rajouter.
-Si vous lisez un d'eux, vous devez d'abord avoir toutes des connaissances sur les structures de données et les algorithmes pour pouvoir faire des problèmes de codage.
+Si vous lisez un d'eux, vous devez d'abord avoir toutes les connaissances sur les structures de données et les algorithmes pour pouvoir résoudre des problèmes de codage.
**Vous pouvez passer toutes les vidéos de cours de ce projet**, à moins que vous voulez un avis.
[Additional language-specific resources here.](programming-language-resources.md)
@@ -368,7 +368,7 @@ Je n'ai pas lu ces deux-là mais ils sont bien notées et écrit par Sedgewick.
- [ ] [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/)
-Si vous avez une meilleure recommendation pour le C++, dites le moi. Je recherche des ressources plus compréhensive.
+Si vous avez une meilleure recommandation pour le C++, dites le moi. Je recherche des ressources plus compréhensives.
### Java
@@ -382,7 +382,7 @@ OU:
- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- par Goodrich, Tamassia, Goldwasser
- utilisé pour du texte optionnel dans les cours d'introduction à l'informatique à l'UC Berkeley
- - allez voir le raport que j'ai fait sur le Python proposé en-dessous. Ce livre couvre les mêmes sujets.
+ - allez voir le rapport que j'ai fait sur le Python proposé en-dessous. Ce livre couvre les mêmes sujets.
### Python
@@ -396,7 +396,7 @@ OU:
### Livres optionnels
-**Plusieurs personnes les recommandes, cependant je pense qu'ils vont trop loin, à moins que vous ayez plusieurs années dans le dévleoppement logiciel and que vous vous attendez à un entretien bien plus difficile**
+**Plusieurs personnes les recommandes, cependant je pense qu'ils vont trop loin, à moins que vous ayez plusieurs années dans le développement logiciel and que vous vous attendez à un entretien bien plus difficile**
- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- En tant qu'examen et reconnaissance de problème
@@ -405,7 +405,7 @@ OU:
- class textbook on data structures and algorithms
- pour:
- est une bonne critique comme n'importe quel manuel le serait
- - des histoires intéressantes venant de son expérience dans la résolutionde problèmes dans l'industriel et l'académique
+ - des histoires intéressantes venant de son expérience dans la résolution de problèmes dans l'industriel et l'académique
- des exemples de code en C
- contre:
- peut être aussi dense ou impénétrable que CLRS, et dans plusieurs cas, CLRS peut être une meilleure alternative sur certains sujets
From 0c8eec70131ae59129f00c504a7f5a7d75dbcd9c Mon Sep 17 00:00:00 2001
From: xixi <32609689+arsentiii@users.noreply.github.com>
Date: Mon, 25 Sep 2023 11:46:12 +0800
Subject: [PATCH 088/173] =?UTF-8?q?Update=20README-cn.md=20'is=20trivial'?=
=?UTF-8?q?=20=3D>=20=E5=BE=AE=E4=B8=8D=E8=B6=B3=E9=81=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Update README-cn.md 'is trivial' => 微不足道
---
translations/README-cn.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 150cb9acb7..04502cee43 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -606,7 +606,7 @@
- ### 堆栈(Stack)
- [ ] [堆栈(视频)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] 可以不实现,因为使用数组来实现并不重要
+ - [ ] 可以不实现,因为使用数组来实现是微不足道的事
- ### 队列(Queue)
- [ ] [队列(视频)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
From 108b126a05be8c6b9f243d367f89ac06c924ae9c Mon Sep 17 00:00:00 2001
From: John Washam
Date: Wed, 27 Sep 2023 08:59:24 -0700
Subject: [PATCH 089/173] Removes period that breaks link.
---
translations/README-cn.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 04502cee43..764596baf5 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -32,7 +32,7 @@
这些职业路径有很多详细的路线图和课程资料可以在其他地方找到(请参阅 https://roadmap.sh/ 获取更多信息)。
在大学计算机科学专业中,有很多知识需要学习,但是只掌握大约75%的内容就足够应对面试了,这也是我在这里涵盖的内容。
-如果你想进行完整的自学计算机科学项目,可以参考Kamran Ahmed的计算机科学路线图:https://roadmap.sh/computer-science。
+如果你想进行完整的自学计算机科学项目,可以参考Kamran Ahmed的计算机科学路线图:https://roadmap.sh/computer-science
---
From 2b2e529315b735b7cc8d5b424d8fd1a666abed61 Mon Sep 17 00:00:00 2001
From: HuseyinBE <146175484+HuseyinBE@users.noreply.github.com>
Date: Thu, 28 Sep 2023 23:07:14 +0200
Subject: [PATCH 090/173] Update README-tr.md
---
translations/README-tr.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 0b784ea1ba..cb240fc9a7 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -1,6 +1,6 @@
# Kodlama Mülakatı Üniversitesi
-> Aslında bunu yazılım mühendisi olabilmek için kısa bir yapılacaklar listesi olarak hazırladım,
+> Başlangıçta bunu yazılım mühendisi olabilmek için kısa bir yapılacaklar listesi olarak hazırladım,
> ama bugün gördüğünüz büyük listeye dönüştü. Bu çalışma planını tamamladıktan sonra, [Amazon tarafından
> Yazılım Geliştirme Mühendisi olarak işe alındım.](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
> Muhtemelen yaptığım kadar çok çalışmanıza gerek kalmayacaktır. Her neyse, ihtiyaç duyabileceğiniz her şey burada.
From 015a74d4a320c4b1ff498c7ef0e8b13eb1caeaf6 Mon Sep 17 00:00:00 2001
From: Stefan Mai
Date: Fri, 29 Sep 2023 17:11:31 -0700
Subject: [PATCH 091/173] Add Hello Interview to mock interview resources
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 7f9b94d678..cf3e30d6fc 100644
--- a/README.md
+++ b/README.md
@@ -1245,6 +1245,7 @@ Mock Interviews:
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
+- [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.
## Be thinking of for when the interview comes
From 68652085b6c8eced00a0cc4199606ceb29b317e9 Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Sun, 15 Oct 2023 11:46:05 +0800
Subject: [PATCH 092/173] update README-cn.md
---
translations/README-cn.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 764596baf5..2e6beed115 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1200,6 +1200,7 @@
- [Pramp:与同行进行模拟面试](https://www.pramp.com/) - 同行模式的实践面试。
- [interviewing.io:与资深工程师进行模拟面试 ](https://interviewing.io) - 匿名算法/系统设计面试,与FAANG公司的资深工程师进行。
- [Meetapro:与顶级FAANG面试官进行模拟面试 ](https://meetapro.com/?utm_source=ciu) - 类似Airbnb的模拟面试/指导平台。
+- [Hello Interview:与专家教练和人工智能模拟面试](https://www.hellointerview.com/?utm_source=ciu) - 直接与人工智能或 FAANG 员工工程师和经理面试。
## 当面试来临的时候
From 31d062eae310b46510c2d21e6eb9462723da4cd2 Mon Sep 17 00:00:00 2001
From: Samuel Rigaud <46346622+s-rigaud@users.noreply.github.com>
Date: Thu, 19 Oct 2023 12:59:52 +0000
Subject: [PATCH 093/173] Fix french typos
---
translations/README-fr.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/translations/README-fr.md b/translations/README-fr.md
index f80444c633..85902de35c 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -60,11 +60,11 @@ Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, sui
- [More Knowledge](#more-knowledge)
- [Recherche dichotomique](#binary-search)
- [Opérations bit à bit](#bitwise-operations)
-- [Arbes](#trees)
+- [Arbres](#trees)
- [Arbres - Notes & Background](#trees---notes--background)
- [Arbres binaires de recherche: BSTs](#binary-search-trees-bsts)
- [Tas / File de Priorité / Tas binaire](#heap--priority-queue--binary-heap)
- - Arbre de recherche equilibré (general concept, not details)
+ - Arbre de recherche équilibré (general concept, not details)
- Parcours : Préfixe, infixe, postfixe, BFS, DFS
- [Tri](#sorting)
- sélection
@@ -303,7 +303,7 @@ Lis à propos vos choix:
[Regarde les ressources pour chaque langue ici](programming-language-resources.md)
-Vous voyez C, C++ et Python en dessous, parce que j'apprends. Il y a quelques livres qui vont t'aider, regarde en dessous.
+Vous voyez C, C++ et Python en dessous, parce que j'apprends. Il y a quelques livres qui vont t'aider, regarde en dessous.
## Liste de livres
@@ -340,7 +340,7 @@ Si vous n'avez pas beaucoup de temps :
- Chapitre 3 - Arithmétique binaire et les opérations bit à bit
- Chapitre 4 - Floating-Point Representation
- Chapitre 4 - La représentation de la virgule flottante
- - Chapitre 5 - Représentation characterielle
+ - Chapitre 5 - Représentation caractérielle
- Chapitre 6 - Organisation et accès de la mémoire
- Chapitre 7 - Type de données composites et les objets de mémoire
- Chapitre 9 - Architecture CPU
@@ -410,7 +410,7 @@ OU:
- contre:
- peut être aussi dense ou impénétrable que CLRS, et dans plusieurs cas, CLRS peut être une meilleure alternative sur certains sujets
- chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
- - les chapitres 7, 8, 9 peuvent être difficiles à suivre, comme certains points ne sont pas bien expliqués ou requiert une plus grande concentration pour comprendre
+ - les chapitres 7, 8, 9 peuvent être difficiles à suivre, comme certains points ne sont pas bien expliqués ou requiert une plus grande concentration pour comprendre
- ne vous méprenez pas, J'aime bien Skiena, sa pédagogie et ses manières mais je ne suis pas fais pas Stony Brook
- algorithm catalog:
- this is the real reason you buy this book.
From 9fd5b7ee5b1cab2f70657d84e8ac3e67ecc699cb Mon Sep 17 00:00:00 2001
From: Tomas Achaval <134091945+achaval-tomas@users.noreply.github.com>
Date: Mon, 23 Oct 2023 20:34:41 -0300
Subject: [PATCH 094/173] Correct translation for Graphs is "Grafos" instead of
"Graficos". Fixed that!
---
translations/README-es.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/translations/README-es.md b/translations/README-es.md
index a85a5f7826..15e35fb731 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -110,7 +110,7 @@ Si desea ser un Ingeniero de Escalabilidad/Seguridad o un Ingeniero de Sistemas,
- Por montículos (heapsort)
- Rápido (quicksort)
- Por mezcla (merge sort)
-- [Gráficos](#graficos)
+- [Grafos](#grafos)
- Dirigidos
- No dirigidos
- Matriz de adyacencia
@@ -827,9 +827,9 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
Como resumen aquí esta una representación visual de [15 algoritmos de ordenamiento](https://www.youtube.com/watch?v=kPRA0W1kECg)
Si necesita más detalle de este tema vea “Ordenamientos” en [Detalles adicionales de ciertos temas](#detalles-adicionales-de-ciertos-temas)
-## Gráficos
+## Grafos
-Los gráficos pueden ser usados para representar muchos problemas en las Ciencias de la Computación, así que es una sección larga, como lo son los árboles y ordenamientos.
+Los grafos pueden ser usados para representar muchos problemas en las Ciencias de la Computación, así que es una sección larga, como lo son los árboles y ordenamientos.
- Notas:
- Hay cuatro formas básicas de representar un grafo en memoria:
@@ -849,7 +849,7 @@ Los gráficos pueden ser usados para representar muchos problemas en las Ciencia
- [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
-- [ ] Gráficos (revisión y más):
+- [ ] Grafos (revisión y más):
- [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
@@ -885,7 +885,7 @@ Los gráficos pueden ser usados para representar muchos problemas en las Ciencia
- [ ] Verificación de grafo bipartito.
-||| Obtendrá más prácticas de gráficos en el libro de Skiena (vea Sección de libros debajo) y en los libros de entrevistas.
+||| Obtendrá más prácticas de grafos en el libro de Skiena (vea Sección de libros debajo) y en los libros de entrevistas.
## Más información adicional
- ### Recursión
From 98906a1bf78fa29ebabc6360fbefbd977edfec70 Mon Sep 17 00:00:00 2001
From: S A G A R <110724849+tmsagarofficial@users.noreply.github.com>
Date: Wed, 25 Oct 2023 10:17:23 +0530
Subject: [PATCH 095/173] Update README.md
---
README.md | 188 +++++++++++++++++++++++++++---------------------------
1 file changed, 94 insertions(+), 94 deletions(-)
diff --git a/README.md b/README.md
index cf3e30d6fc..e06ed59dc7 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
>
> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that below. I'll help you get there without wasting your precious time.
+> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that is below. I'll help you get there without wasting your precious time.
>
> The items listed here will prepare you well for a technical interview at just about any software company,
> including the giants: Amazon, Facebook, Google, and Microsoft.
@@ -73,7 +73,7 @@ This is my multi-month study plan for becoming a software engineer for a large c
* Patience
* Time
-Note this is a study plan for **software engineering**, not frontend engineering or fullstack development. There are really
+Note this is a study plan for **software engineering**, not frontend engineering or full-stack development. There are really
super roadmaps and coursework for those career paths elsewhere (see https://roadmap.sh/ for more info).
There is a lot to learn in a university Computer Science program, but only knowing about 75% is good enough for an interview, so that's what I cover here.
@@ -265,7 +265,7 @@ Create a new branch so you can check items like this, just put an x in the brack
## Don't feel you aren't smart enough
- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
-- Following videos may help you overcome this insecurity:
+- The following videos may help you overcome this insecurity:
- [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)
@@ -290,7 +290,7 @@ Preferably the language would be the same, so that you only need to be proficien
When I did the study plan, I used 2 languages for most of it: C and Python
* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
- and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
+ and algorithms in your bones. In higher-level languages like Python or Java, these are hidden from you. In day-to-day work, that's terrific,
but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
- C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
- [The C Programming Language, 2nd Edition](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
@@ -413,8 +413,8 @@ Please, read so you won't make my mistakes:
### 2. Use Flashcards
-To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
-Each card has different formatting. I made a mobile-first website, so I could review on my phone or tablet, wherever I am.
+To solve the problem, I made a little flashcard site where I could add flashcards of 2 types: general and code.
+Each card has a different formatting. I made a mobile-first website, so I could review on my phone or tablet, wherever I am.
Make your own for free:
@@ -434,12 +434,12 @@ same card and answer it several times correctly before you really know it. Repet
your brain.
An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
-It uses a repetition system to help you remember. It's user-friendly, available on all platforms and has a cloud sync system.
+It uses a repetition system to help you remember. It's user-friendly, available on all platforms, and has a cloud sync system.
It costs $25 on iOS but is free on other platforms.
My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
-Some students have mentioned formatting issues with white space that can be fixed by doing the following: open deck, edit card, click cards, select the "styling" radio button, add the member "white-space: pre;" to the card class.
+Some students have mentioned formatting issues with white space that can be fixed by doing the following: open the deck, edit the card, click cards, select the "styling" radio button, and add the member "white-space: pre;" to the card class.
### 3. Do Coding Interview Questions While You're Learning
@@ -447,7 +447,7 @@ THIS IS VERY IMPORTANT.
Start doing coding interview questions while you're learning data structures and algorithms.
-You need to apply what you're learning to solving problems, or you'll forget. I made this mistake.
+You need to apply what you're learning to solve problems, or you'll forget. I made this mistake.
Once you've learned a topic, and feel somewhat comfortable with it, for example, **linked lists**:
1. Open one of the [coding interview books](#interview-prep-books) (or coding problem websites, listed below)
@@ -503,7 +503,7 @@ Why you need to practice doing programming problems:
- Coming up with time and space complexity for your solutions (see Big-O below)
- Testing your solutions
-There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
+There is a great intro for methodical, communicative problem-solving in an interview. You'll get this from the programming
interview books, too, but I found this outstanding:
[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
@@ -511,7 +511,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
-Gets messy quick. **I use a pencil and eraser.**
+Gets messy quickly. **I use a pencil and eraser.**

@@ -530,7 +530,7 @@ Coding Interview Question Videos:
- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- Super for walkthroughs of problem solutions
- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - Good explanations of solution and the code
+ - Good explanations of the solution and the code
- You can watch several in a short time
- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
@@ -546,7 +546,7 @@ Challenge/Practice sites:
- [AlgoExpert](https://www.algoexpert.io/product)
- Created by Google engineers, this is also an excellent resource to hone your skills.
- [Project Euler](https://projecteuler.net/)
- - very math focused, and not really suited for coding interviews
+ - very math-focused, and not really suited for coding interviews
## Let's Get Started
@@ -590,11 +590,11 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
- [ ] New raw data array with allocated memory
- can allocate int array under the hood, just not use its features
- - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
+ - start with 16, or if the starting number is greater, use power of 2 - 16, 32, 64, 128
- [ ] size() - number of items
- [ ] capacity() - number of items it can hold
- [ ] is_empty()
- - [ ] at(index) - returns item at given index, blows up if index out of bounds
+ - [ ] at(index) - returns the item at a given index, blows up if index out of bounds
- [ ] push(item)
- [ ] insert(index, item) - inserts item at index, shifts that index's value and trailing elements to the right
- [ ] prepend(item) - can use insert above at index 0
@@ -604,7 +604,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] find(item) - looks for value and returns first index with that value, -1 if not found
- [ ] resize(new_capacity) // private function
- when you reach capacity, resize to double the size
- - when popping an item, if size is 1/4 of capacity, resize to half
+ - when popping an item, if the size is 1/4 of capacity, resize to half
- [ ] Time
- O(1) to add/remove at end (amortized for allocations for more space), index, or update
- O(n) to insert/remove elsewhere
@@ -630,18 +630,18 @@ if you can identify the runtime complexity of different algorithms. It's a super
This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
- [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- [ ] Implement (I did with tail pointer & without):
- - [ ] size() - returns number of data elements in list
+ - [ ] size() - returns the number of data elements in the list
- [ ] empty() - bool returns true if empty
- [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
- [ ] push_front(value) - adds an item to the front of the list
- - [ ] pop_front() - remove front item and return its value
+ - [ ] pop_front() - remove the front item and return its value
- [ ] push_back(value) - adds an item at the end
- [ ] pop_back() - removes end item and returns its value
- - [ ] front() - get value of front item
- - [ ] back() - get value of end item
- - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index
+ - [ ] front() - get the value of the front item
+ - [ ] back() - get the value of the end item
+ - [ ] insert(index, value) - insert value at index, so the current item at that index is pointed to by the new item at the index
- [ ] erase(index) - removes node at given index
- - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
+ - [ ] value_n_from_end(n) - returns the value of the node at the nth position from the end of the list
- [ ] reverse() - reverses the list
- [ ] remove_value(value) - removes the first item in the list with this value
- [ ] Doubly-linked List
@@ -651,24 +651,24 @@ if you can identify the runtime complexity of different algorithms. It's a super
- ### Stack
- [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] Will not implement. Implementing with array is trivial
+ - [ ] Will not implement. Implementing with the array is trivial
- ### Queue
- [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Implement using linked-list, with tail pointer:
- - enqueue(value) - adds value at position at tail
+ - enqueue(value) - adds value at a position at the tail
- dequeue() - returns value and removes least recently added element (front)
- empty()
- - [ ] Implement using fixed-sized array:
+ - [ ] Implement using a fixed-sized array:
- enqueue(value) - adds item at end of available storage
- dequeue() - returns value and removes least recently added element
- empty()
- full()
- [ ] Cost:
- - a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n)
- because you'd need the next to last element, causing a full traversal each dequeue
+ - a bad implementation using a linked list where you enqueue at the head and dequeue at the tail would be O(n)
+ because you'd need the next to last element, causing a full traversal of each dequeue
- enqueue: O(1) (amortized, linked list and array [probing])
- dequeue: O(1) (linked list and array)
- empty: O(1) (linked list and array)
@@ -693,8 +693,8 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
- [ ] Implement with array using linear probing
- - hash(k, m) - m is size of hash table
- - add(key, value) - if key already exists, update value
+ - hash(k, m) - m is the size of the hash table
+ - add(key, value) - if the key already exists, update value
- exists(key)
- get(key)
- remove(key)
@@ -708,7 +708,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
- [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Implement:
- - binary search (on sorted array of integers)
+ - binary search (on a sorted array of integers)
- binary search using recursion
- ### Bitwise operations
@@ -768,11 +768,11 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- [ ] [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- [ ] [Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Find height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [Find the height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
- [ ] [Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
- [ ] [Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] [Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Check if a binary tree is binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [Check if a binary tree is a binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- [ ] [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] Implement:
@@ -780,13 +780,13 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] get_node_count // get count of values stored
- [ ] print_values // prints the values in the tree, from min to max
- [ ] delete_tree
- - [ ] is_in_tree // returns true if given value exists in the tree
+ - [ ] is_in_tree // returns true if a given value exists in the tree
- [ ] [get_height // returns the height in nodes (single node's height is 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
- [ ] get_min // returns the minimum value stored in the tree
- [ ] get_max // returns the maximum value stored in the tree
- [ ] [is_binary_search_tree](https://leetcode.com/problems/validate-binary-search-tree/)
- [ ] delete_value
- - [ ] get_successor // returns next-highest value in tree after given value, -1 if none
+ - [ ] get_successor // returns the next-highest value in the tree after given value, -1 if none
- ### Heap / Priority Queue / Binary Heap
- visualized as a tree, but is usually linear in storage (array, linked list)
@@ -809,12 +809,12 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] sift_up - needed for insert
- [ ] get_max - returns the max item, without removing it
- [ ] get_size() - return number of elements stored
- - [ ] is_empty() - returns true if heap contains no elements
+ - [ ] is_empty() - returns true if the heap contains no elements
- [ ] extract_max - returns the max item, removing it
- [ ] sift_down - needed for extract_max
- [ ] remove(x) - removes item at index x
- [ ] 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
+ - [ ] heap_sort() - take an unsorted array and turn it into a sorted array in place using a max heap or min heap
## Sorting
@@ -826,15 +826,15 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
- [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
- [Sorting Algorithms - Stability](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
- - [ ] Which algorithms can be used on linked lists? Which on arrays? Which on both?
+ - [ ] Which algorithms can be used on linked lists? Which on arrays? Which of both?
- I wouldn't recommend sorting a linked list, but merge sort is doable.
- [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
-- For heapsort, see Heap data structure above. Heap sort is great, but not stable
+- For heapsort, see the Heap data structure above. Heap sort is great, but not stable
- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- [ ] [1. Mergesort](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
- - [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [2. Bottom-up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
- [ ] [3. Sorting Complexity](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
- [ ] [4. Comparators](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
- [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
@@ -880,7 +880,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] Implement:
- [ ] Mergesort: O(n log n) average and worst case
- [ ] Quicksort O(n log n) average case
- - Selection sort and insertion sort are both O(n^2) average and worst case
+ - Selection sort and insertion sort are both O(n^2) average and worst-case
- For heapsort, see Heap data structure above
- [ ] Not required, but I recommended them:
@@ -898,11 +898,11 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
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 "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
+If you need more detail on this subject, see the "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
## Graphs
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
+Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting.
- Notes:
- There are 4 basic ways to represent a graph in memory:
@@ -911,7 +911,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- adjacency list
- adjacency map
- Familiarize yourself with each representation and its pros & cons
- - BFS and DFS - know their computational complexity, their trade offs, and how to implement them in real code
+ - BFS and DFS - know their computational complexity, their trade-offs, and how to implement them in real code
- When asked a question, look for a graph-based solution first, then move on if none
- [ ] MIT(videos):
@@ -955,7 +955,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] single-source shortest path (Dijkstra)
- [ ] minimum spanning tree
- DFS-based algorithms (see Aduni videos above):
- - [ ] check for cycle (needed for topological sort, since we'll check for cycle before starting)
+ - [ ] check for a cycle (needed for topological sort, since we'll check for the cycle before starting)
- [ ] topological sort
- [ ] count connected components in a graph
- [ ] list strongly connected components
@@ -1030,7 +1030,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
- ### Combinatorics (n choose k) & Probability
- - [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [Math Skills: How to find Factorial, Permutation, and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- [ ] Khan Academy:
@@ -1040,12 +1040,12 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
- ### NP, NP-Complete and Approximation Algorithms
- - Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
+ - Know about the most famous classes of NP-complete problems, such as the traveling salesman and the knapsack problem,
and be able to recognize them when an interviewer asks you them in disguise.
- Know what NP-complete means.
- [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- [ ] Simonson:
- - [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [Greedy Algs. II & Intro to NP-Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- [ ] [NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
@@ -1057,7 +1057,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - Peter Norvig discusses near-optimal solutions to traveling salesman problem:
+ - Peter Norvig discusses near-optimal solutions to the traveling salesman problem:
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- Pages 1048 - 1140 in CLRS if you have it.
@@ -1091,15 +1091,15 @@ Graphs can be used to represent many problems in computer science, so this secti
- Mutexes
- Semaphores
- Monitors
- - How they work?
+ - How do they work?
- Deadlock
- Livelock
- CPU activity, interrupts, context switching
- Modern concurrency constructs with multicore processors
- - [Paging, segmentation and virtual memory (video)](https://youtu.be/O4nwUqQodAg)
+ - [Paging, segmentation, and virtual memory (video)](https://youtu.be/O4nwUqQodAg)
- [Interrupts (video)](https://youtu.be/iKlAWIKEyuw)
- Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
- - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
+ - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own PC, stack counter, registers, and stack)
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
- Context switching
- [How context switching is initiated by the operating system and underlying hardware?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
@@ -1110,7 +1110,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
- [reference](http://www.dabeaz.com/GIL)
- - [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] [David Beazley - Python Concurrency From the Ground Up LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
- [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
- [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
@@ -1137,14 +1137,14 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
- [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
- [ ] [5. Rabin-Karp](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
- - [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+ - [ ] [Search pattern in a text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
- If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects).
+ If you need more detail on this subject, see the "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects).
- ### Tries
- - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
+ - Note there are different kinds of tries. Some have prefixes, some don't, and some use strings instead of bits
to track the path
- - I read through code, but will not implement
+ - I read through the code, but will not implement
- [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
- [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
- [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
@@ -1156,7 +1156,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- [ ] [TopCoder - Using Tries](https://www.topcoder.com/thrive/articles/Using%20Tries)
- - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [Stanford Lecture (real-world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### Floating Point Numbers
@@ -1230,9 +1230,9 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
- Prep Courses:
- [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
+ - A Python-centric interview prep course that covers data structures, algorithms, mock interviews, and much more.
- [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
- - A free Python centric data structures and algorithms course.
+ - A free Python-centric data structures and algorithms course.
- [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
- Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
- [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
@@ -1242,7 +1242,7 @@ Graphs can be used to represent many problems in computer science, so this secti
Mock Interviews:
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
-- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
+- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - a peer-to-peer model to practice interviews
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
- [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.
@@ -1294,7 +1294,7 @@ You're never really done.
*****************************************************************************************************
Everything below this point is optional. It is NOT needed for an entry-level interview.
- However, by studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
+ However, by studying these, you'll get greater exposure to more CS concepts and will be better prepared for
any software engineering job. You'll be a much more well-rounded software engineer.
*****************************************************************************************************
@@ -1313,11 +1313,11 @@ You're never really done.
- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
- A gentle introduction to design patterns
-- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- - AKA the "Gang Of Four" book, or GOF
+- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - AKA the "Gang Of Four" book or GOF
- The canonical design patterns book
- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- - As a review and problem recognition
+ - As a review and problem-recognition
- The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
- This book has 2 parts:
- Class textbook on data structures and algorithms
@@ -1327,7 +1327,7 @@ You're never really done.
- Code examples in C
- Cons:
- Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
- - Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
+ - Chapters 7, 8, and 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
- Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
- Algorithm catalog:
- This is the real reason you buy this book.
@@ -1420,7 +1420,7 @@ You're never really done.
- [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
- [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
- [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [Google's Transition From Single Datacenter To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
@@ -1436,23 +1436,23 @@ You're never really done.
- [ ] Twitter:
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section
+ - For even more, see the "Mining Massive Datasets" video series in the [Video Series](#video-series) section
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- flow:
1. Understand the problem and scope:
- - Define the use cases, with interviewer's help
+ - Define the use cases, with the interviewer's help
- Suggest additional features
- - Remove items that interviewer deems out of scope
+ - Remove items that the interviewer deems out of scope
- Assume high availability is required, add as a use case
2. Think about constraints:
- Ask how many requests per month
- Ask how many requests per second (they may volunteer it or make you do the math)
- Estimate reads vs. writes percentage
- - Keep 80/20 rule in mind when estimating
- - How much data written per second
+ - Keep the 80/20 rule in mind when estimating
+ - How much data is written per second
- Total storage required over 5 years
- How much data read per second
3. Abstract design:
@@ -1470,7 +1470,7 @@ You're never really done.
## Additional Learning
- I added them to help you become a well-rounded software engineer, and to be aware of certain
+ I added them to help you become a well-rounded software engineer and to be aware of certain
technologies and algorithms, so you'll have a bigger toolbox.
- ### Compilers
@@ -1480,9 +1480,9 @@ You're never really done.
- [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
- ### Emacs and vi(m)
- - Familiarize yourself with a unix-based code editor
+ - Familiarize yourself with a UNIX-based code editor
- vi(m):
- - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [Editing With Vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- [VIM Adventures](http://vim-adventures.com/)
- set of 4 videos:
- [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
@@ -1495,7 +1495,7 @@ You're never really done.
- set of 3 (videos):
- [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
- [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
- - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file, and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
- [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
@@ -1521,7 +1521,7 @@ You're never really done.
- [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- - See more in MIT 6.050J Information and Entropy series below
+ - See more in the MIT 6.050J Information and Entropy series below
- ### Parity & Hamming Code (videos)
- [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
@@ -1532,12 +1532,12 @@ You're never really done.
- [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
- ### Entropy
- - Also see videos below
+ - Also see the videos below
- Make sure to watch information theory videos first
- [Information Theory, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
- ### Cryptography
- - Also see videos below
+ - Also see the videos below
- Make sure to watch information theory videos first
- [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
- [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
@@ -1577,7 +1577,7 @@ You're never really done.
- ### Parallel Programming
- [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
- - [Efficient Python for High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+ - [Efficient Python for High-Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
- ### Messaging, Serialization, and Queueing Systems
- [Thrift](https://thrift.apache.org/)
@@ -1636,14 +1636,14 @@ You're never really done.
- ### Balanced search trees
- Know at least one type of balanced binary tree (and know how it's implemented):
- - "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
+ - "Among balanced search trees, AVL and 2/3 trees are now passé and red-black trees seem to be more popular.
A particularly interesting self-organizing data structure is the splay tree, which uses rotations
to move any accessed key to the root." - Skiena
- Of these, I chose to implement a splay tree. From what I've read, you won't implement a
balanced search tree in your interview. But I wanted exposure to coding one up
and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code
- Splay tree: insert, search, delete functions
- If you end up implementing red/black tree try just these:
+ If you end up implementing a red/black tree try just these:
- Search and insertion functions, skipping delete
- I want to learn more about B-Tree since it's used so widely with very large data sets
- [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
@@ -1676,12 +1676,12 @@ You're never really done.
- In practice:
Red–black trees offer worst-case guarantees for insertion time, deletion time, and search time.
Not only does this make them valuable in time-sensitive applications such as real-time applications,
- but it makes them valuable building blocks in other data structures which provide worst-case guarantees;
- for example, many data structures used in computational geometry can be based on red–black trees, and
- the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In the version 8 of Java,
+ but it makes them valuable building blocks in other data structures that provide worst-case guarantees;
+ for example, many data structures used in computational geometry can be based on red-black trees, and
+ the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In version 8 of Java,
the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor
hashcodes, a Red-Black tree is used
- - [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - Algorithms - Lecture 4 (link jumps to the starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
@@ -1690,16 +1690,16 @@ You're never really done.
- **2-3 search trees**
- In practice:
2-3 trees have faster inserts at the expense of slower searches (since height is more compared to AVL trees).
- - You would use 2-3 tree very rarely because its implementation involves different types of nodes. Instead, people use Red Black trees.
+ - You would use 2-3 trees very rarely because its implementation involves different types of nodes. Instead, people use Red-Black trees.
- [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- **2-3-4 Trees (aka 2-4 trees)**
- In practice:
- For every 2-4 tree, there are corresponding red–black trees with data elements in the same order. The insertion and deletion
+ For every 2-4 trees, there are corresponding red–black trees with data elements in the same order. The insertion and deletion
operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an
- important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce
+ important tool for understanding the logic behind red-black trees, and this is why many introductory algorithm texts introduce
2-4 trees just before red–black trees, even though **2-4 trees are not often used in practice**.
- [CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
- [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
@@ -1714,10 +1714,10 @@ You're never really done.
- **B-Trees**
- Fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor).
- In Practice:
- B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to
+ B-trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to
its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary
- block in a particular file. The basic problem is turning the file block i address into a disk block
- (or perhaps to a cylinder-head-sector) address
+ block in a particular file. The basic problem is turning the file block address into a disk block
+ (or perhaps to a cylinder head sector) address
- [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html)
- [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
@@ -1725,12 +1725,12 @@ You're never really done.
- [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- covers cache-oblivious B-Trees, very interesting data structures
- - the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
+ - the first 37 minutes are very technical, and may be skipped (B is block size, cache line size)
- [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
- ### k-D Trees
- - Great for finding number of points in a rectangle or higher dimension object
+ - Great for finding a number of points in a rectangle or higher-dimensional object
- A good fit for k-nearest neighbors
- [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
@@ -1790,7 +1790,7 @@ You're never really done.
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- [ ] L - [Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ Principle](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
- - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
+ - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | Clients should not be forced to implement interfaces they don't use
- [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
- [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
From 7f9642fd21decae50e4b441131754ec1dc83a3ea Mon Sep 17 00:00:00 2001
From: John Washam
Date: Wed, 25 Oct 2023 17:22:29 -0700
Subject: [PATCH 096/173] Removes C book link
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index e06ed59dc7..d13a8ba890 100644
--- a/README.md
+++ b/README.md
@@ -297,7 +297,6 @@ When I did the study plan, I used 2 languages for most of it: C and Python
- This is a short book, but it will give you a great handle on the C language and if you practice it a little
you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
- - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
This is my preference. You do what you like, of course.
From 577630e8664544c03dbdbc4f477a7db3db66425b Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Sun, 29 Oct 2023 13:49:49 +0900
Subject: [PATCH 097/173] Corrected and updated Japanese translation
---
translations/README-ja.md | 90 ++++++++++++++++++++++-----------------
1 file changed, 52 insertions(+), 38 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 18e0a40f1e..30f39bfbe2 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -43,32 +43,33 @@
## これは何?
+

これは、大企業のソフトウェア エンジニアになるための私の数か月にわたる学習計画です。
-必須:
+**必須:**
-コーディングの経験 (変数、ループ、メソッド/関数など)
-忍耐
-時間
+- コーディングの経験 (変数、ループ、メソッド/関数など)
+- 忍耐
+- 時間
-これは**ソフトウェアエンジニアリング**の学習計画であり、Web 開発の学習計画ではありません。 Google、Amazon、Facebook、Microsoft などの大手ソフトウェア企業は、ソフトウェアエンジニアリングを Web 開発とは異なるものと見なしています。 たとえば、Amazon にはフロントエンドエンジニア (FEE) とソフトウェア開発エンジニア (SDE) がいます。 これらは2つの別個の役割であり、それぞれに独自の能力があるため、面接は同じではありません。これらの企業は、ソフトウェア開発/エンジニアリングの役割のためにコンピューターサイエンスの知識を必要とします。
+これは**ソフトウェア エンジニアリング**の学習計画であり、フロントエンド エンジニアリングやフルスタック開発ではないことに注意してください。
+他の場所でのキャリア パスのスーパー ロードマップとコースワーク (詳細については https://roadmap.sh/ を参照)。
-大学のコンピューターサイエンスプログラムで学ぶことはたくさんありますが、75%程度の知識があれば面接に十分なので、ここではそれについて説明します。 完全な CS 独学プログラムについては、私の学習計画のリソースがカムラン アーメドのコンピューターサイエンスロードマップに含まれています: https://roadmap.sh/computer-science
+大学のコンピューター サイエンス プログラムでは学ぶべきことがたくさんありますが、面接には 75% 程度知っていれば十分なので、ここではそれについて説明します。
+完全な CS 独学プログラムについては、私の学習計画のリソースがカムラン アーメッドのコンピューター サイエンス ロードマップに含まれています: https://roadmap.sh/computer-science
---
## 目次
-
-
- [コーディング面接の大学](#コーディング面接の大学)
- [これは何?](#これは何)
- [目次](#目次)
- [なぜこれを使用するのか](#なぜこれを使用するのか)
- - [それの使い方](#それの使い方)
- - [あなたは十分にスマートではないと感じないでください](#あなたは十分にスマートではないと感じないでください)
+ - [使い方](#使い方)
+ - [自信を無くさないでください](#自信を無くさないでください)
- [ビデオリソースについて](#ビデオリソースについて)
- [面接のプロセスと一般的な面接の準備](#面接のプロセスと一般的な面接の準備)
- [面接のための1つの言語を選ぶ](#面接のための1つの言語を選ぶ)
@@ -111,54 +112,67 @@
## なぜこれを使用するのか
-大企業でソフトウェアエンジニアとして働きたい場合は、次のことを知っておく必要があります。
+大企業でソフトウェア エンジニアとして働きたいのであれば、これらのことを知っておく必要があります。
+
+私のようにコンピューター サイエンスの学位を取得できなかった場合は、これで人生の 4 年間取り戻すことができます。
+
+このプロジェクトを始めたとき、私はヒープからのスタックのことも、Big-O のことも、木についても、何も知りませんでした。
+グラフを横断します。もし私が並べ替えアルゴリズムをコーディングしなければならなかったとしたら、それは酷いことになるでしょう。
+私がこれまで使用してきたデータ構造はすべて言語に組み込まれており、それがどのように機能するのかわかりませんでした。
+ボンネットの下にはまったくありません。実行しているプロセスで「不足」が発生しない限り、メモリを管理する必要はありませんでした。
+「memory」エラーが発生した場合は、回避策を見つける必要があります。私は人生でいくつかの多次元配列を使用しましたが、
+何千もの連想配列を作成しましたが、データ構造を最初から作成したことはありません。
-私のようにコンピューターサイエンスの学位を取得していない場合、これで追いつき、人生の4年間を救うことができます。
+長い計画ですね。何か月もかかるかもしれません。しかし、すでにこの内容の多くに精通している場合は、時間ははるかに短くなります。
-私はこのプロジェクトを始めたとき、ヒープからスタックを知りませんでしたし、Big-O とは何か、木構造に関すること、グラフをたどる方法を知らなかったのです。
-ソートアルゴリズムをコーディングしなければならない場合は、あまりうまくいきませんでした。
-これまで使用してきたすべてのデータ構造は言語に組み込まれていて、どのようにしてそれらがどのようにして動作するのか分かりませんでした。
-私が実行していたプロセスが "メモリ不足"エラーを出さない限り、メモリを管理する必要はありませんでしたが、回避策を見つけなければなりません。
-私は人生で数多くの多次元配列を使用していましたが、何千もの連想配列を使用しましたが、データ構造を一から作成したことはありません。
+## 使い方
+以下はすべて概要であり、順に項目に取り組む必要があります。
-それは長い計画です。あなたに数ヶ月かかるかもしれません。
-すでに多くのことに慣れていれば、それほど時間がかかりません。
+私は進捗状況を追跡するためのタスク リストを含む、GitHub 風マークダウン を使用しています。
-## それの使い方
+- [GitHub 風マークダウンの詳細](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
-下のすべてがアウトラインです。
-アイテムを上から下に順番に取り組まなければなりません。
+### git を使用したくない場合
-私はGithubの特別なマークダウンフレーバーを使用しています。
+このページで、上部近くの「Code」ボタンをクリックし、「Download ZIP」をクリックします。ファイルを解凍すると、テキスト ファイルを操作できるようになります。
-**新しいブランチを作成して、このような項目をチェックできるようにしてください.xを角かっこに入れてください:[x]**
+マークダウンを理解できるコード エディターで開いている場合は、すべてが適切にフォーマットされていることを確認できます。
+
- ブランチをフォークし、以下のコマンドに従ってください。
+### git に慣れている場合
-`git checkout -b progress`
+新しいブランチを作成して、次のような項目を確認できるようにします。括弧内に x を入力するだけです: [x]
-`git remote add jwasham https://github.com/jwasham/coding-interview-university`
+1. **_GitHub リポジトリ:_** `https://github.com/jwasham/coding-interview-university` をフォーク ボタンをクリックしてフォークします。
-`git fetch --all`
+ 
- 変更を完了した後にXですべてのボックスにマークを付ける
+1. ローカル リポジトリにクローンを作成します。
-`git add . `
+ ```
+ git clone https://github.com//coding-interview-university.git
+ cd coding-interview-university
+ git remote add upstream https://github.com/jwasham/coding-interview-university.git
+ git remote set-url --push upstream DISABLE # 個人の進捗を元のレポにプッシュバックしないようにするため
+ ```
-`git commit -m "マークされたx"`
+1. 変更を完了したら、すべてのボックスに X を付けます。
-`git rebase jwasham/main`
+ ```
+ git commit -am "Marked personal progress"
+ git pull upstream main # 元のレポからの変更でフォークを最新に保つ
-`git push --force`
+ git push # just pushes to your fork
+ ```
-[Github風マークダウンの詳細](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+## 自信を無くさないでください
-## あなたは十分にスマートではないと感じないでください
-- 成功したソフトウェアエンジニアはスマートですが、多くの人はスマートではないという不安があります。
-- [天才プログラマーの神話](https://www.youtube.com/watch?v=0SARbwvhupQ)
-- [一人で行くのは危険だ:テクノロジーの見えない魔物と戦う](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+- 成功した多くのソフトウェア エンジニアは自分が十分に賢くないのではないかという不安を抱えています。
+- 次のビデオは、この不安を解消するのに役立ちます。
+ - [天才プログラマーの神話](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [一人で行動するのは危険です: テクノロジーにおける目に見えないモンスターとの戦い](https://www.youtube.com/watch?v=1i8ylq4j_EY)
---
From 1ecd6e2befb80b1abb3efb67bc0d26ca1a01b987 Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Sun, 29 Oct 2023 13:53:48 +0900
Subject: [PATCH 098/173] fix indent
---
translations/README-ja.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 30f39bfbe2..80a71e1b92 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -68,7 +68,7 @@
- [これは何?](#これは何)
- [目次](#目次)
- [なぜこれを使用するのか](#なぜこれを使用するのか)
- - [使い方](#使い方)
+ - [使い方](#使い方)
- [自信を無くさないでください](#自信を無くさないでください)
- [ビデオリソースについて](#ビデオリソースについて)
- [面接のプロセスと一般的な面接の準備](#面接のプロセスと一般的な面接の準備)
From 67c35099ec22190cccc7d1c708429cf6811def44 Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Mon, 30 Oct 2023 12:45:40 +0900
Subject: [PATCH 099/173] Additions, translations and updates to sectional
groupings of study plans
---
translations/README-ja.md | 436 ++++++++++++++++++++------------------
1 file changed, 227 insertions(+), 209 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 80a71e1b92..54d16c9976 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -64,51 +64,44 @@
## 目次
-- [コーディング面接の大学](#コーディング面接の大学)
- - [これは何?](#これは何)
- - [目次](#目次)
- - [なぜこれを使用するのか](#なぜこれを使用するのか)
- - [使い方](#使い方)
- - [自信を無くさないでください](#自信を無くさないでください)
- - [ビデオリソースについて](#ビデオリソースについて)
- - [面接のプロセスと一般的な面接の準備](#面接のプロセスと一般的な面接の準備)
- - [面接のための1つの言語を選ぶ](#面接のための1つの言語を選ぶ)
- - [ブックリスト](#ブックリスト)
- - [面接の準備](#面接の準備)
- - [コンピュータアーキテクチャ](#コンピュータアーキテクチャ)
- - [言語固有](#言語固有)
- - [C++](#c)
- - [Java](#java)
- - [Python](#python)
- - [始める前に](#始める前に)
- - [1.あなたはそれをすべて覚えていない](#1あなたはそれをすべて覚えていない)
- - [2.フラッシュカードを使用する](#2フラッシュカードを使用する)
- - [3.レビュー、レビュー、評価](#3レビューレビュー評価)
- - [4.フォーカス](#4フォーカス)
- - [カバーされていないもの](#カバーされていないもの)
- - [日々の計画](#日々の計画)
- - [前提知識](#前提知識)
- - [アルゴリズムの複雑さ/ Big-O / Asymptotic解析](#アルゴリズムの複雑さ-big-o--asymptotic解析)
- - [データ構造](#データ構造)
- - [その他の知識](#その他の知識)
- - [木](#木)
- - [ソート](#ソート)
- - [グラフ](#グラフ)
- - [さらに多くの知識](#さらに多くの知識)
- - [システム設計、スケーラビリティ、データ処理](#システム設計スケーラビリティデータ処理)
- - [最終レビュー](#最終レビュー)
- - [コーディングの質問練習](#コーディングの質問練習)
- - [コード演習/挑戦](#コード演習挑戦)
- - [面接に近づいたら](#面接に近づいたら)
- - [あなたの履歴書](#あなたの履歴書)
- - [面接が来たときに考えてください](#面接が来たときに考えてください)
- - [面接官に質問があります](#面接官に質問があります)
- - [一度あなたは仕事を得た](#一度あなたは仕事を得た)
- - [その他の書籍](#その他の書籍)
- - [その他の学習](#その他の学習)
- - [追加科目の詳細](#追加科目の詳細)
- - [ビデオシリーズ](#ビデオシリーズ)
- - [コンピュータサイエンスコース](#コンピュータサイエンスコース)
+### 学習計画
+
+- [なぜこれを使用するのか](#なぜこれを使用するのか)
+- [使い方](#使い方)
+- [自信を無くさないでください](#自信を無くさないでください)
+- [ビデオリソースに関する注意](#ビデオリソースに関する注意)
+- [プログラミング言語を選択してください](#プログラミング言語を選択してください)
+- [データ構造とアルゴリズムに関する書籍](#データ構造とアルゴリズムに関する書籍)
+- [面接対策本](#面接対策本)
+- [私と同じ間違いを犯さないでください](#私と同じ間違いを犯さないでください)
+- [取り上げられていないもの](#取り上げられていないもの)
+- [日次計画](#日次計画)
+- [コーディングに関する質問の練習](#コーディングに関する質問の練習)
+- [コーディングの問題](#コーディングの問題)
+
+### 研究のテーマ
+
+- [アルゴリズムの複雑さ/ Big-O / Asymptotic解析](#アルゴリズムの複雑さ-big-o--asymptotic解析)
+- [データ構造](#データ構造)
+- [その他の知識](#その他の知識)
+- [木](#木)
+- [ソート](#ソート)
+- [グラフ](#グラフ)
+- [さらに多くの知識](#さらに多くの知識)
+- [システム設計、スケーラビリティ、データ処理](#システム設計スケーラビリティデータ処理)
+- [最終レビュー](#最終レビュー)
+- [コーディングの質問練習](#コーディングの質問練習)
+- [コード演習/挑戦](#コード演習挑戦)
+- [面接に近づいたら](#面接に近づいたら)
+- [あなたの履歴書](#あなたの履歴書)
+- [面接が来たときに考えてください](#面接が来たときに考えてください)
+- [面接官に質問があります](#面接官に質問があります)
+- [一度あなたは仕事を得た](#一度あなたは仕事を得た)
+- [その他の書籍](#その他の書籍)
+- [その他の学習](#その他の学習)
+- [追加科目の詳細](#追加科目の詳細)
+- [ビデオシリーズ](#ビデオシリーズ)
+- [コンピュータサイエンスコース](#コンピュータサイエンスコース)
## なぜこれを使用するのか
@@ -164,7 +157,7 @@
git commit -am "Marked personal progress"
git pull upstream main # 元のレポからの変更でフォークを最新に保つ
- git push # just pushes to your fork
+ git push # フォークにプッシュするだけ
```
## 自信を無くさないでください
@@ -176,252 +169,277 @@
---
-## ビデオリソースについて
+## ビデオリソースに関する注意
-一部のビデオは、Coursera、EdX、またはLynda.comクラスに登録することによってのみ利用できます。
-これらはMOOCと呼ばれています。
-時にはクラスがセッションに入っていないので、数ヶ月待つ必要があるため、アクセス権がありません。
-Lynda.comコースは有料です。
+一部のビデオは、Coursera または EdX クラスに登録することによってのみ視聴できます。
+これらは MOOC と呼ばれます。
+場合によっては、クラスが開催されていないため、数か月待たなければならず、アクセスできないこともあります。
-オンラインコースビデオに付随するYouTubeビデオなど、無料で常時利用可能なパブリックソースを追加することに感謝します。
-私は大学の講義を使うのが好きです。
+オンラインコースのリソースを、YouTube ビデオ (できれば大学の講義) など、いつでも利用できる無料の公開ソースに置き換えて、特定のオンラインコースの開催中だけでなく、いつでも学習できるようにするのは素晴らしいことです。
+## プログラミング言語を選択してください
-## 面接のプロセスと一般的な面接の準備
+コーディング面接に使用するプログラミング言語を選択する必要がありますが、コンピューターサイエンスの概念を学習するために使用できる言語も見つける必要があります。
-- [ ] [ABC:常にコーディングする](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [技術職募集での謎解き](https://www.youtube.com/watch?v=N233T0epWTs)
-- [ ] クラッキングコーディング面接セット1:
- - [ ] [Gayle L McDowell - コーディング面接(ビデオ)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Gayle Laakmann McDowell(ビデオ)](https://www.youtube.com/watch?v=aClxtDcdpsQ)とのコーディング面接をクラッキング
-- [ ] ビッグ4で仕事を得る方法:
- - [ ] [Amazon、Facebook、Google、Microsoftで仕事を手に入れる方法(ビデオ)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-- [ ] 準備コース:
- - [ ] [Software Engineer Interview Unleashed(有料コース)](https://www.udemy.com/software-engineer-interview-unleashed):
- - 以前のGoogle面接官からソフトウェアエンジニアの面接準備をする方法を学びます。
- - [ ] [データ構造、アルゴリズム、面接のためのPython! (有料コース)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - データ構造、アルゴリズム、模擬面接などを扱うPython中心の面接の準備コース。
+できれば、どちらか 1 つの言語に習熟するだけで済むように、言語が同じであることが望ましいです。
-## 面接のための1つの言語を選ぶ
+### この学習計画について
-面接のコーディングの部分に慣れ親しんだ言語を使用することはできますが、大企業にとってはこれらの選択肢が確実です。
+学習計画を立てたとき、そのほとんどで C と Python の 2 つの言語を使用しました。
-- C ++
+* C: 非常に低いレベル。ポインタとメモリの割り当て / 割り当て解除を処理できるため、データ構造を実感できます。
+ そしてアルゴリズムが骨の中に組み込まれています。Python や Java などの高水準言語では、これらは表示されません。日々の仕事ではそれは素晴らしいことですが、これらの低レベルのデータ構造がどのように構築されるかを学んでいるときは、実際に近いと感じるのは素晴らしいことです。
+ - C はどこにでもあります。勉強していると、書籍、講義、ビデオなど、*あらゆる場所*で例を見ることができます。
+ - [C プログラミング言語 第 2 版](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - これは短い本ですが、少し練習すれば C 言語をうまく扱えるようになります。
+ すぐに上達します。C を理解すると、プログラムとメモリがどのように機能するかを理解するのに役立ちます。
+ - 本を深く読み込む必要はありません(読み終える必要さえありません)。C で快適に読み書きできるところまで進んでください。
+* Python: 現代的で表現力が非常に豊かです。非常に便利で、面接で記述するコードの量も少なくて済むため、私はこれを学びました。
+
+これが私の好みです。もちろん、好きなことをしてください。
+必要ないかもしれませんが、新しい言語を学習するためのサイトをいくつか紹介します。
+- [exercism](https://exercism.org/tracks)
+- [codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [SCALER Topics (Java、C++)](https://www.scaler.com/topics/)
+
+### コーディング面接用
+
+面接のコーディング部分には、使い慣れた言語を使用できますが、大企業の場合は、次の言語を選択するのが確実です。
+
+- C++
- Java
- Python
-これらを使用することもできますが、最初に読んでください。注意が必要な場合があります:
+これらを使用することもできますが、最初に読んでください。注意事項がある場合があります:
- JavaScript
- Ruby
-あなたは言語に非常に慣れて知識が必要です。
+面接の言語の選択について私が書いた記事は次のとおりです:
+[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
-選択肢についてもっと読む:
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
+これは私の投稿の元の記事です:
+[Choosing a Programming Language for Interviews](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
-[言語リソースはこちら](programming-language-resources.md)
+言語に非常に慣れており、知識が豊富である必要があります。
-私は学習しているので、以下に含まれるC、C ++、Pythonの学習を見ることができます。
-いくつかの本があります、下を参照してください。
+選択肢について詳しくは、次を参照してください。
+- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-## ブックリスト
+[ここで言語固有のリソースを参照してください](programming-language-resources.md)
-これは私が使ったものよりも短いリストです。これは時間を節約するために省略されています。
+## データ構造とアルゴリズムに関する書籍
-### 面接の準備
+### C
-- [ ] [プログラミング面接の公開:あなたの次の仕事への秘密、第2版](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - C ++とJavaの回答
- - コーディング面接をクラッキングするためのウォームアップが良い
- - あまりにも難しくない、ほとんどの問題はあなたが面接で(私が読んだことから)見ることよりも簡単かもしれない
-- [ ] [Cracking the Coding Interview、第6版](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
-- [ ] [日本語版(世界で闘うプログラミング力を鍛える本)](https://www.amazon.co.jp/dp/4839960100/ref=cm_sw_r_tw_dp_6TFC3Y2R6TQTDEFFFPKZ)
- - Javaでの回答
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - 基礎、データ構造、並べ替え、検索、およびグラフのアルゴリズム
+
+### Python
-もし余分な時間があれば:
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - グッドリッチ、タマッシア、ゴールドワッサー著
+ - この本が大好きでした。それはすべてを網羅し、それ以上のものでした。
+ - Python コード
+ - 私の素晴らしい本のレポート: https://startupnextdoor.com/book-report-data-structions-and-algorithms-in-python/
-- [ ] [プログラミング面接の要素(C ++版)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [ ] プログラミング面接の要素(Java版)
- - [本](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
- - [コンパニオンプロジェクト - 本のすべての問題のメソッドスタブとテストケース](https://github.com/gardncl/elements-of-programming-interviews)
+### Java
-### コンピュータアーキテクチャ
+- Goodrich、Tamassia、Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- セッジウィックとウェイン:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - この本をカバーする無料の Coursera コース (著者が教えます!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
-短期:
+### C++
-- [ ] [グレートコードの作成:第1巻:マシンの理解](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
-- [ ] [日本語版:Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く](https://www.amazon.co.jp/dp/4839918201/ref=cm_sw_r_tw_dp_69724M3EHRJ8E7A14JNC)
- - この本は2004年に出版され、幾分古いですが、コンピュータを簡単に理解するには素晴らしいリソースです。
- - 作者はHLAを発明したので、塩の穀物でHLAの言及と例を取り上げます。広く使われているわけではありませんが、どのようなアセンブリのように見えますか?
- - これらの章はあなたに素敵な基礎を与えるために読む価値があります:
- - 第2章 - 数値表現
- - 第3章 - 2進算術とビット演算
- - 第4章 - 浮動小数点表現
- - 第5章 - キャラクター表現
- - 第6章 - メモリ構成とアクセス
- - 第7章 - 複合データ型とメモリオブジェクト
- - 第9章 - CPUアーキテクチャ
- - 第10章 - 命令セットのアーキテクチャ
- - 第11章 - メモリのアーキテクチャと構成
+- Goodrich、Tamassia、および Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick と Wayne
+ - [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/)
-もっと時間があれば(私はこの本が欲しい):
+## 面接対策本
-- [ ] [Computer Architecture、第5版:定量的アプローチ](https://www.amazon.com/dp/012383872X/)
-- [ ] [日本語最新版:コンピュータアーキテクチャ[第6版]定量的アプローチ](https://www.amazon.co.jp/dp/4434264001/)
- - お金がある人向け、より最新(2017(日本語版は2019))かつ歴史も長い
+たくさん買う必要はありません。正直なところ、「コーディング面接の攻略」で十分だと思いますが、さらに練習するためにさらに購入しました。しかし、私はいつもやりすぎます。
-### 言語固有
+これを両方購入しました。彼らは私にたくさんの練習をさせてくれました。
-**面接の言語を選択する必要があります(上記参照)。** ここで私の推奨する言語です。私はすべての言語のためのリソースがありません。私は追加を歓迎する。
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - C++ および Java での回答
+ - これコーディング面接を突破するための良いウォーミングアップです
+ - それほど難しいことではありません。ほとんどの問題は、インタビューで見られるものよりも簡単かもしれません (私が読んだ内容によると)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Java での回答
-これらのうちの1つを読んだら、コーディングの問題を開始するために必要なすべてのデータ構造とアルゴリズムの知識が必要です。
-**あなたがレビューをしたくない場合は、このプロジェクト**のビデオ講義をすべてスキップすることができます。
+### 時間がたくさんある場合:
-[ここに言語固有の追加リソースがあります](programming-language-resources.md)
+1 つ選択してください:
-### C++
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [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)
-私はこれらの2つを読んだことはありませんが、Sedgewickによって高く評価され書かれています。彼は素晴らしいです。
+## 私と同じ間違いを犯さないでください
-- [ ] [C++でのアルゴリズム、パート1-4:基礎、データ構造、ソート、検索](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
-- [ ] [C++でのアルゴリズム第5部:グラフアルゴリズム](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
+このリストは何か月もかけて大きくなり、はい、手に負えなくなりました。
-C++の推奨事項がある場合は、私に知らせてください。包括的なリソースを探しています。
+より良い経験をしていただくために、私が犯したいくつかの間違いを以下に示します。そして、何か月も時間を節約できます。
-### Java
+### 1. すべてを覚えているわけではない
-- [ ] [アルゴリズム(Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - 書籍コンテンツの動画(とSedgewick!):
- - [アルゴリズム1](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
- - [アルゴリズムII](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
+時間もビデオを見て大量のメモを取りましたが、数か月後には覚えていないことがたくさんありました。
+3日間かけてメモを見直し、フラッシュカードを作成して復習しましたが、そんな知識は必要ありませんでした。
-OR:
+私と同じ間違いを犯さないように、
-- [ ] [Javaにおけるデータ構造とアルゴリズム](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- - Goodrich、Tamassia、Goldwasserによる
- - UCバークレーのCSイントロコースのオプションテキストとして使用
- - 下のPython版の私の本のレポートを見てください。この本は同じトピックを扱っています。
+[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/) を読んでください。
-### Python
+### 2. フラッシュカードを使用する
-- [ ] [Pythonのデータ構造とアルゴリズム](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - Goodrich、Tamassia、Goldwasserによる
- - 私はこの本が好きだった。それはすべてをカバーしました。
- - Pythonコード
- - 私の輝く本のレポート:https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+この問題を解決するために、一般とコードの 2 種類のフラッシュカードを追加できる小さなフラッシュカード サイトを作成しました。
+各カードには異なる形式があります。どこにいても携帯電話やタブレットでレビューできるように、モバイルファーストのウェブサイトを作成しました。
+無料で独自に作成します。
+- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
-## 始める前に
+**フラッシュカードの使用はお勧めしません。** フラッシュカードが多すぎて、ほとんどがトリビアです。必要ありません。
-このリストは何ヶ月にもわたって成長しました。
+しかし、私の言うことを聞きたくない場合は、ここからどうぞ:
+- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-ここで私が作ったいくつかの間違いがあります。
-あなたはより良い経験をするでしょう。
+やりすぎて、アセンブリ言語や Python のトリビアから機械学習や統計まで、あらゆるものをカバーするカードがあることに注意してください。
+必要なものが多すぎます。
-### 1.あなたはそれをすべて覚えていない
+**フラッシュカードに関する注意:** 初めて答えを知っていると気づいたときは、その答えを既知としてマークしないでください。
+本当に理解するには、同じカードを見て何度か正しく答える必要があります。
+繰り返すことで知識が脳に深く定着します。
-私は数時間のビデオを見て、豊富なメモを取りました。
-そして数ヶ月後に私は覚えていないほどでした。
-私はメモを書き、フラッシュカードを作って見直すことができるように3日間過ごしました。
+私のフラッシュカード サイトを使用する代わりに、[Anki](http://ankisrs.net/) が私に何度も勧められてきました。
+繰り返しシステムを使用しているので、覚えやすくなります。ユーザーフレンドリーで、すべてのプラットフォームで利用でき、クラウド同期システムを備えています。
+iOS では 25 ドルかかりますが、他のプラットフォームでは無料です。
-あなたが私と同じ間違いをしないように読んでください:
+Anki 形式のフラッシュカード データベース: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
-[コンピュータ科学知識の保持](https://startupnextdoor.com/retaining-computer-science-knowledge/)
+一部の学生は、空白に関する書式の問題について次の手順を実行することで修正できると述べています。デッキを開いて、カードを編集し、カードをクリックし、「スタイル」ラジオ ボタンを選択して、メンバー「white-space: pre;」を追加します。カードクラスへ。
-### 2.フラッシュカードを使用する
+### 3. 学習中にコーディング面接の質問をする
-この問題を解決するために、私は2種類のフラッシュカード、一般とコードを追加できる小さなフラッシュカードサイトを作った。
-各カードのフォーマットは異なります。
+これは非常に重要です。
-私はモバイル先のウェブサイトを作ったので、どこにいても電話とタブレットを見直すことができました。
+データ構造とアルゴリズムを学習しながら、コーディング面接の質問に答え始めます。
-あなた自身を無料で作る:
+問題を解決するには、学んだことを応用する必要があります。そうしないと忘れてしまいます。私はこの間違いを犯しました。
-- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
-- [マイフラッシュカードデータベース(旧1200カード)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [マイフラッシュカードデータベース(新1800カード)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+トピックを学習し、**リンク リスト** などにある程度慣れたら:
+1. [コーディング インタビュー ブック](#interview-prep-books)のいずれかを開きます(または、以下にリストされているコーディングに関する問題の Web サイト)
+1. 次の学習トピックに進みます。
+1. その後、戻って別の 2 つまたは 3 つのリンク リストの問題を解きます。
+1. 新しいトピックを学ぶたびにこれを行います。
+
+**学習後ではなく、学習している間も問題を解き続けてください。**
-覚えておいてほしいのですが,私はやりすぎてしまい、アセンブリ言語,機械学習のためのPythonのトリビア,統計に至るまですべてのカードをカバーしています。
-何が必要なのかはあまりにも大変です。
+あなたは知識のために雇われているのではなく、その知識をどのように応用するかによって雇われているのです。
-**フラッシュカードについての注意:** 最初に答えを知っているときは、それを既知のものとしてマークしないでください。
-あなたは本当にそれを知る前に、同じカードを見て、それを正しく数回答えなければなりません。
-繰り返すことで、その知識があなたの脳に深く浸透します。
+以下に示すように、これに関する多くのリソースがあります。続けて。
+### 4. 集中する
-私のフラッシュカードサイトを使用する代わりに[Anki](http://ankisrs.net/)が何度も私に勧められています。
-繰り返しシステムを使用して覚えやすくなります。
-ユーザーフレンドリーで、すべてのプラットフォームで利用でき、クラウド同期システムを備えています。
-iOSでは25ドル、他のプラットフォームでは無料です。
+気を散らすものがたくさんあり、貴重な時間が奪われてしまう可能性があります。集中力と集中力は難しいです。歌詞のない音楽をかける
+と、かなり集中できるようになります。
-Anki形式の私のフラッシュカードデータベース:https://ankiweb.net/shared/info/25173560(thanks [@xiewenya](https://github.com/xiewenya))
+## 取り上げられていないもの
+以下は一般的なテクノロジですが、この学習計画には含まれていません:
-### 3.レビュー、レビュー、評価
+- Javascript
+- HTML、CSS、およびその他のフロントエンドテクノロジ
+- SQL
-私は、ASCII、OSI参照モデル、Big-O記法などのチートシートを用意しています。私は余裕があるときに勉強します。
+## 日次計画
-プログラミングの問題から30分ほど休み、フラッシュカードを通過してください。
+このコースでは多くの主題について説明します。おそらくそれぞれに数日、場合によっては 1 週間以上かかる場合があります。それはあなたのスケジュール次第です。
-### 4.フォーカス
+毎日、リストの次の主題を取り上げ、その主題に関するビデオをいくつか見てから、
+このコース用に選択した言語でそのデータ構造またはアルゴリズムの実装を作成します。
-貴重な時間を費やす可能性のある注意散漫がたくさんあります。集中と集中が難しい。
+私のコードはここで見ることができます:
+ - [C](https://github.com/jwasham/practice-c)
+ - [C++](https://github.com/jwasham/practice-cpp)
+ - [Python]( https://github.com/jwasham/practice-python)
-## カバーされていないもの
+すべてのアルゴリズムを覚える必要はありません。独自の実装を作成できる程度に理解できれば十分です。
-これらは一般的な技術ですが、この調査計画の一部ではありません:
+## コーディングに関する質問の練習
-- [SQL](https://www.scaler.com/topics/sql/)
-- Javascript
-- HTML、CSS、およびその他のフロントエンド技術
+ なぜこれがここにあるのでしょうか? 面接する準備ができていません。
+
+[その後、戻ってこれを読んでください。](#3-do-coding-interview-questions-while-youre-learning)
-## 日々の計画
+プログラミングの問題を練習する必要がある理由:
+- 問題の認識、および適切なデータ構造とアルゴリズムがどこに適合するか
+- 問題の要件を収集する
+- 面接で行うのと同じように、問題について自分なりに説明する
+- コンピューターではなく、ホワイトボードまたは紙にコーディングする
+- 解決策のための時間と空間の複雑さを考え出す (下記の Big-O を参照)
+- テストあなたの解決策
-一部の科目は1日を要し、いくつかは複数日を要する。
-いくつかは、何も実装することなく学習しているだけです。
+面接で体系的かつコミュニケーション的に問題を解決するための素晴らしい入門書があります。これはプログラミングのインタビュー本からもわかります
+が、私はこれが素晴らしいと思いました:
+[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-毎日私は以下のリストから1つのテーマを取り上げ、そのテーマに関するビデオを見て、以下の実装を書いています:
-- C - struct*と何か他のものをargsとする構造体と関数を使用する。
-- C++ - 組み込み型を使用しない
-- C++ - 連結リストのSTLのstd :: listのような組込み型の使用
-- Python - 組み込み型を使用する(Pythonの練習を続ける)
-- 簡単なassert()文を使って、時には正しく動作することを保証するテストを書く
-- あなたはJavaや他の何かをするかもしれませんが、これは私のことです。
+コードを紙ではなく、ホワイトボードまたは紙に書きます。コンピューター。いくつかのサンプル入力を使用してテストします。次に、それを入力してコンピュータでテストします。
-あなたはこれらのすべてを必要としません。[面接のために必要な言語は1つだけです](面接のための1つの言語を選択します)。
+家にホワイトボードがない場合は、画材店で大きな描画パッドを購入してください。ソファに座って練習することもできます。
+こちらは私の「ソファホワイトボード」です。写真ではスケールを調整するためにペンを追加しました。ペンを使っていると、消せたらいいのにと思うでしょう。
+すぐに散らかります。**鉛筆と消しゴムを使用します。**
-なぜこれらすべてのコード?
-- 私はそれが病気になるまで練習、練習、練習をし、何の問題もありません(忘れてはいけないことがいくつかあります)
-- 生の制約内で作業する(ガベージコレクションの助けを借りずにメモリを割り当てる/解放する(Pythonを除く))
-- 組み込みの型を利用して、実際の使用のために組み込みのツールを使用した経験を持ちます(本番環境で自分のリンクされたリストの実装を書くつもりはありません)
+
-私はすべてのテーマでこれらのすべてをやる時間がないかもしれませんが、私は試してみます。
+**コーディングの問題の練習は、プログラミングの問題の答えを覚えることではありません。**
-あなたは私のコードをここに見ることができます:
-- [C](https://github.com/jwasham/practice-c)
-- [C ++](https://github.com/jwasham/practice-cpp)
-- [Python](https://github.com/jwasham/practice-python)
+## コーディングの問題
-あなたはすべてのアルゴリズムの内容を暗記する必要はありません。
+[ここ](#interview-prep-books) の主要なコーディング インタビュー ブックを忘れないでください。
-コンピューターではなく、ホワイトボードや紙にコードを書く。いくつかのサンプル入力でテストします。次に、コンピュータでテストします。
+問題の解決:
+- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+コーディング インタビューの質問ビデオ:
+- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - 問題解決策のウォークスルーに最適
+- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - ソリューションとコードの適切な説明
+ - 短時間で何本も視聴できる
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+
+チャレンジ/練習サイト:
+- [LeetCode](https://leetcode.com/)
+ - 私のお気に入りのコーディングの問題サイト。おそらく準備する 1 ~ 2 か月分の購読料を払う価値があります。
+ - コードのウォークスルーについては、上記の Nick White と FisherCoder のビデオを参照してください。
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Codeforces](https://codeforces.com/)
+- [Codility](https://codility.com/programmers/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - Google のエンジニアによって作成されたこれは、スキルを磨くための優れたリソースでもあります。
+- [Project Euler](https://projecteuler.net/)
+ - 非常に数学に重点が置かれており、コーディング面接にはあまり適していません
-## 前提知識
+## 始めましょう
-- [ ] **Cを学ぶ**
- - Cはどこにでもあります。あなたは勉強している間、書籍、講義、ビデオ、*どこにでも*見ることができます。
- - [ ] [Cプログラミング言語、Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - これは短い本ですが、それはC言語の優れた処理方法を提供します。
- 少しでも練習すれば、すばやく習得できます。 Cを理解すると、プログラムやメモリの仕組みを理解するのに役立ちます。
- - [質問への回答](https://github.com/lekkas/c-algorithms)
+さて、話は十分です、学びましょう!
-- [ ] **コンピュータがプログラムをどのように処理するか:**
- - [ ] [CPUがプログラム(ビデオ)をどのように実行するか](https://www.youtube.com/watch?v=42KTvGYQYnA)
- - [ ] [マシンコード命令(ビデオ)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
+ただし、学習中に上記のコーディング問題に取り組むことを忘れないでください。
## アルゴリズムの複雑さ/ Big-O / Asymptotic解析
- 実装するものは何もない
From d2889ce1623e8d8ac6165b92cec1f970fa634f9f Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Mon, 30 Oct 2023 21:44:18 +0900
Subject: [PATCH 100/173] Conduit organization within ja.README
---
translations/README-ja.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 54d16c9976..6e99b56d4d 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -338,7 +338,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
問題を解決するには、学んだことを応用する必要があります。そうしないと忘れてしまいます。私はこの間違いを犯しました。
トピックを学習し、**リンク リスト** などにある程度慣れたら:
-1. [コーディング インタビュー ブック](#interview-prep-books)のいずれかを開きます(または、以下にリストされているコーディングに関する問題の Web サイト)
+1. [面接対策本](#面接対策本)のいずれかを開きます(または、以下にリストされているコーディングに関する問題の Web サイト)
1. 次の学習トピックに進みます。
1. その後、戻って別の 2 つまたは 3 つのリンク リストの問題を解きます。
1. 新しいトピックを学ぶたびにこれを行います。
@@ -380,7 +380,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
なぜこれがここにあるのでしょうか? 面接する準備ができていません。
-[その後、戻ってこれを読んでください。](#3-do-coding-interview-questions-while-youre-learning)
+[その後、戻ってこれを読んでください。](#学習中にコーディング面接の質問をする)
プログラミングの問題を練習する必要がある理由:
- 問題の認識、および適切なデータ構造とアルゴリズムがどこに適合するか
@@ -406,7 +406,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## コーディングの問題
-[ここ](#interview-prep-books) の主要なコーディング インタビュー ブックを忘れないでください。
+[ここ](#面接対策本) の主要なコーディング インタビュー ブックを忘れないでください。
問題の解決:
- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
From 9d3761c369d291377565d3d92500162b96e11c35 Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Mon, 30 Oct 2023 21:51:46 +0900
Subject: [PATCH 101/173] Remove trailing spaces at end of text
---
README.md | 62 +++++++++++++++++++++++++++----------------------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/README.md b/README.md
index d13a8ba890..4d39afad57 100644
--- a/README.md
+++ b/README.md
@@ -66,17 +66,17 @@

-This is my multi-month study plan for becoming a software engineer for a large company.
+This is my multi-month study plan for becoming a software engineer for a large company.
-**Required:**
+**Required:**
* A little experience with coding (variables, loops, methods/functions, etc)
* Patience
* Time
-Note this is a study plan for **software engineering**, not frontend engineering or full-stack development. There are really
+Note this is a study plan for **software engineering**, not frontend engineering or full-stack development. There are really
super roadmaps and coursework for those career paths elsewhere (see https://roadmap.sh/ for more info).
-There is a lot to learn in a university Computer Science program, but only knowing about 75% is good enough for an interview, so that's what I cover here.
+There is a lot to learn in a university Computer Science program, but only knowing about 75% is good enough for an interview, so that's what I cover here.
For a complete CS self-taught program, the resources for my study plan have been included in Kamran Ahmed's Computer Science Roadmap: https://roadmap.sh/computer-science
---
@@ -258,7 +258,7 @@ Create a new branch so you can check items like this, just put an x in the brack
```
git commit -am "Marked personal progress"
git pull upstream main # keep your fork up-to-date with changes from the original repo
-
+
git push # just pushes to your fork
```
@@ -274,13 +274,13 @@ Create a new branch so you can check items like this, just put an x in the brack
Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
-It would be great to replace the online course resources with free and always-available public sources,
-such as YouTube videos (preferably university lectures), so that you people can study these anytime,
+It would be great to replace the online course resources with free and always-available public sources,
+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.
## Choose a Programming Language
-You'll need to choose a programming language for the coding interviews you do,
+You'll need to choose a programming language for the coding interviews you do,
but you'll also need to find a language that you can use to study computer science concepts.
Preferably the language would be the same, so that you only need to be proficient in one.
@@ -289,7 +289,7 @@ Preferably the language would be the same, so that you only need to be proficien
When I did the study plan, I used 2 languages for most of it: C and Python
-* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
+* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
and algorithms in your bones. In higher-level languages like Python or Java, these are hidden from you. In day-to-day work, that's terrific,
but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
- C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
@@ -320,13 +320,13 @@ You could also use these, but read around first. There may be caveats:
- JavaScript
- Ruby
-Here is an article I wrote about choosing a language for the interview:
+Here is an article I wrote about choosing a language for the interview:
[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
This is the original article my post was based on: [Choosing a Programming Language for Interviews](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
You need to be very comfortable in the language and be knowledgeable.
-Read more about choices:
+Read more about choices:
- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
[See language-specific resources here](programming-language-resources.md)
@@ -340,7 +340,7 @@ Just choose one, in a language that you will be comfortable with. You'll be doin
### C
- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
+ - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
### Python
@@ -374,7 +374,7 @@ Your choice:
## Interview Prep Books
-You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
+You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
but I bought more to give myself more practice. But I always do too much.
I bought both of these. They gave me plenty of practice.
@@ -425,15 +425,15 @@ But if you don't want to listen to me, here you go:
- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics.
+Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics.
It's way too much for what's required.
**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
your brain.
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
-It uses a repetition system to help you remember. It's user-friendly, available on all platforms, and has a cloud sync system.
+An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
+It uses a repetition system to help you remember. It's user-friendly, available on all platforms, and has a cloud sync system.
It costs $25 on iOS but is free on other platforms.
My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
@@ -446,14 +446,14 @@ THIS IS VERY IMPORTANT.
Start doing coding interview questions while you're learning data structures and algorithms.
-You need to apply what you're learning to solve problems, or you'll forget. I made this mistake.
+You need to apply what you're learning to solve problems, or you'll forget. I made this mistake.
Once you've learned a topic, and feel somewhat comfortable with it, for example, **linked lists**:
-1. Open one of the [coding interview books](#interview-prep-books) (or coding problem websites, listed below)
-1. Do 2 or 3 questions regarding linked lists.
+1. Open one of the [coding interview books](#interview-prep-books) (or coding problem websites, listed below)
+1. Do 2 or 3 questions regarding linked lists.
1. Move on to the next learning topic.
1. Later, go back and do another 2 or 3 linked list problems.
-1. Do this with each new topic you learn.
+1. Do this with each new topic you learn.
**Keep doing problems while you're learning all this stuff, not after.**
@@ -478,7 +478,7 @@ These are prevalent technologies but not part of this study 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.
-Each day, take the next subject in the list, watch some videos about that subject, and then write an implementation
+Each day, take the next subject in the list, watch some videos about that subject, and then write an implementation
of that data structure or algorithm in the language you chose for this course.
You can see my code here:
@@ -508,8 +508,8 @@ interview books, too, but I found this outstanding:
Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then type it and test it out on a computer.
-If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
-This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
+If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
+This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
Gets messy quickly. **I use a pencil and eraser.**

@@ -571,9 +571,9 @@ But don't forget to do coding problems from above while you learn!
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
-Well, that's about enough of that.
+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
+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.
## Data Structures
@@ -760,7 +760,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### Binary search trees: BSTs
- - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- [ ] [MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
- C/C++:
@@ -973,11 +973,11 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
- [ ] [5 Simple Steps for Solving Any Recursive Problem(video)](https://youtu.be/ngCos392W4w)
-
+
Backtracking Blueprint: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partitioning))
[Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
- ### Dynamic Programming
- - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
+ - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
problem as being a candidate for dynamic programming.
- This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
- I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
@@ -1209,7 +1209,7 @@ Graphs can be used to represent many problems in computer science, so this secti
## Update Your Resume
- See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed"
-- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
+- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
- Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
- ["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
@@ -1295,7 +1295,7 @@ You're never really done.
Everything below this point is optional. It is NOT needed for an entry-level interview.
However, by studying these, you'll get greater exposure to more CS concepts and will be better prepared for
any software engineering job. You'll be a much more well-rounded software engineer.
-
+
*****************************************************************************************************
*****************************************************************************************************
@@ -1781,7 +1781,7 @@ You're never really done.
above because it's just too much. It's easy to overdo it on a subject.
You want to get hired in this century, right?
-- **SOLID**
+- **SOLID**
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
From 411c02767602e648ecff1c88b2d4dbb542bc437d Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Wed, 1 Nov 2023 22:01:06 +0900
Subject: [PATCH 102/173] Translated to other knowledge items in the research
themes section
---
translations/README-ja.md | 521 +++++++++++++++++++-------------------
1 file changed, 255 insertions(+), 266 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 6e99b56d4d..8067716de9 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -442,84 +442,76 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
ただし、学習中に上記のコーディング問題に取り組むことを忘れないでください。
## アルゴリズムの複雑さ/ Big-O / Asymptotic解析
-- 実装するものは何もない
-- [ ] [Harvard CS50 - 漸近表記(video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [ ] [BigO記法(一般的なクイックチュートリアル)(ビデオ)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [ ] [BigO表記(とオメガとシータ) - 最良の数学的説明(ビデオ)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [動画](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [スライド](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [ ] [アルゴリズム複雑さ分析への穏やかな紹介](http://discrete.gr/complexity/)
-- [ ] [成長の命令(ビデオ)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
-- [ ] [漸近線(Asymptotics)(video)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
-- [ ] [UCバークレー BigO(ビデオ)](https://youtu.be/VIS4YDpuP98)
-- [ ] [UCバークレー Big オメガ(ビデオ)](https://youtu.be/ca3e7UVmeUc)
-- [ ] [償却分析(ビデオ)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] [「Big Oを描く」(ビデオ)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
-- [ ] TopCoder(漸化関係とマスター定理を含む):
- - [計算の複雑さ:セクション1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- - [計算の複雑さ:セクション2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
+
+- ここでは何も実装する必要はありません。ビデオを見てメモを取るだけです。わーい!
+- ここにはたくさんのビデオがあります。理解できるまで十分に見てください。いつでも戻ってレビューすることができます。
+- 背後にある数学がすべて理解できなくても心配する必要はありません。
+- Big-O の観点からアルゴリズムの複雑さを表現する方法を理解する必要があるだけです。
+- [ ] [ハーバード CS50 - 漸近記法 (動画)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [Big O Notations (一般的なクイック チュートリアル) (動画)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [Big O Notation (およびオメガとシータ) - 最良の数学的説明 (動画)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [スキエナ](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [カリフォルニア大学バークレー校ビッグオー (動画)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [償却分析 (動画)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (漸化式とマスター定理を含む):
+ - [計算の複雑さ: セクション 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [計算の複雑さ: セクション 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [チートシート](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [【復習】5分でわかるBig-O記譜法(動画)](https://youtu.be/__vX2sjlpXU)
+
+まあ、それだけで十分です。
- 講義の中には数学的にも余裕がある場合は、下にジャンプして
- 離散数学ビデオを見て、背景知識を得る。
+「コーディング インタビューの解読」を進めると、これに関する章があり、最後に、さまざまなアルゴリズムの実行時の複雑さを特定できるかどうかを確認するクイズがあります。それはスーパーレビューとテストです。
## データ構造
- ### 配列
- - 自動的にサイズ変更ベクトルを実装する。
- - [ ] 説明:
- - [配列(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
- - [UCBerkley CS61B - 線形および多次元配列(ビデオ)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
- - [基本的な配列(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Basic-arrays/149042/177104-4.html)
- - [多次元(video)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Multidimensional-arrays/149042/177105-4.html)
- - [動的配列(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
- - [ジャグ配列(動画)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - [ジャグ配列(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Jagged-arrays/149042/177106-4.html)
- - [配列のサイズ変更(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Resizable-arrays/149042/177108-4.html)
- - [ ] ベクトルを実装する(自動サイズ変更可能な可変配列):
- - [ ] 配列とポインタを使用してコーディングを実践し、インデックスを使用する代わりにインデックスにジャンプするポインタ演算
- - [ ] 割り当てられたメモリを持つ新しい生データ配列
- - 内部で配列を割り当てることができますが、その機能は使用しません。
- - 16で開始するか、開始番号が大きい場合は、2 - 16,32,64,128の出力を使用します
- - [ ] size() - 項目数
- - [ ] capacity() - 保持できるアイテムの数
- - [ ] is_empty()
- - [ ] at(index) - 指定されたインデックスでitemを返し、インデックスが範囲外であれば吹き飛ばす
- - [ ] push(item)
- - [ ] insert(index,item) - itemをindexに挿入し、そのインデックスの値と末尾の要素を右側にシフトする
- - [ ] prepend(item) - インデックス0に上記の挿入を使用できます
- - [ ] pop() - 最後から削除し、値を返す
- - [ ] delete(index) - インデックスの項目を削除し、すべての末尾の要素を左にシフトする
- - [ ] remove(item) - 値を探し、それを保持するインデックスを削除します(複数の場所であっても)
- - [ ] find(item) - valueを検索し、その値を持つ最初のインデックスを返します。見つからなければ-1を返します。
- - [ ] resize(new_capacity)//プライベート関数
- - 容量に達すると、サイズを2倍に変更します
- - アイテムをポップするとき、サイズが容量の1/4である場合、サイズを半分に変更
- - [ ] 時間
- - 最後に追加/削除するO(1)(スペースを増やすために償却される)、索引、または更新
- - 他の場所に挿入/削除するO(n)
- - [ ] 空間
- - メモリ内で連続しているため、プロキシミティはパフォーマンスに役立ちます
- - 必要なスペース=(配列の容量, > = n)*アイテムのサイズですが、2nでもO(n)
+ - [ ] 配列について:
+ - [アレイ CS50 ハーバード大学](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [配列 (動画)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (動画) (15 分 32 秒から視聴開始)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [動的配列 (動画)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [ギザギザ配列 (動画)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] ベクトルを実装します (自動サイズ変更を備えた可変配列):
+ - [ ] 配列とポインターを使用したコーディングと、インデックスを使用する代わりにインデックスにジャンプするポインターの計算を練習します。
+ - [ ] メモリが割り当てられた新しい生データ配列
+ - 内部で int 配列を割り当てることができますが、その機能は使用できません
+ - 16 から開始するか、開始番号がそれより大きい場合は、2 のべき乗 - 16、32、64、128 を使用します。
+ - [ ] size() - アイテムの数
+ - [ ] Capacity() - 保持できるアイテムの数
+ - [ ] is_empty()
+ - [ ] at(index) - 指定されたインデックスにある項目を返します。インデックスが範囲外の場合は爆発します。
+ - [ ] プッシュ(アイテム)
+ - [ ] insert(index, item) - インデックスに項目を挿入し、そのインデックスの値と末尾の要素を右にシフトします
+ - [ ] prepend(item) - インデックス 0 の上に挿入を使用できます
+ - [ ] Pop() - 末尾から削除し、値を返します
+ - [ ] delete(index) - インデックスにある項目を削除し、末尾の要素をすべて左にシフトします
+ - [ ]remove(item) - 値を検索し、それを保持するインデックスを削除します (複数の場所にある場合でも)
+ - [ ] find(item) - 値を検索し、その値を持つ最初のインデックスを返します。見つからない場合は -1 を返します。
+ - [ ]size(new_capacity) // プライベート関数
+ - 容量に達したら、サイズを 2 倍に変更します
+ - アイテムをポップするとき、サイズが容量の 1/4 の場合、サイズを半分に変更します
+ - [ ] 時間
+ - O(1) は、最後に追加/削除 (より多くの領域の割り当てのために償却)、インデックス付け、または更新を行います。
+ - O(n) は他の場所に挿入/削除します
+ - [ ] 空間
+ - メモリ内で連続しているため、近接性によりパフォーマンスが向上します
+ - 必要なスペース = (配列の容量、>= n) * 項目のサイズ、ただし 2n であっても O(n)
- ### 連結リスト
- [ ] 説明:
- - [ ] [単独連結されたリスト(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
+ - [ ] [単独連結されたリスト(動画)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- [ ] [CS 61B - 連結リスト1(動画)](https://www.youtube.com/watch?v=htzJdKoEmO0&list=PL4BBB74C7D2A1049C&index=7)
- [ ] [CS 61B - 連結リスト2(動画)](https://www.youtube.com/watch?v=-c4I3gFYe3w&index=8&list=PL4BBB74C7D2A1049C)
- - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
+ - [ ] [[レビュー] 4 分でわかるリンクリスト (動画)](https://youtu.be/F8AbOfQwl1c)
- [ ] [Cコード(動画)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- ビデオ全体ではなく、ノード構造体とメモリ割り当てに関する部分だけです。
- - [ ] 連結リスト Vs 配列:
- - [コア連結リストs Vs 配列(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- - [実世界の連結リスト Vs 配列(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/quaUd/in-the-real-world-lists-vs)
- - [ ] [連結リスト(ビデオ)を避けるべき理由](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - [ ] 分かったぞ!:ポインタの知識へのポインタが必要です:
- (そのポインタが指すアドレスを変更する可能性のある関数へのポインタを渡すとき)
- このページはptrからptrまでを把握するためのものです。このリストトラバーサルスタイルはお勧めしません。読みやすさと保守性は巧みさのために苦しんでいます。
+ - ビデオ全体ではなく、ノード構造とメモリ割り当てに関する部分のみ
+ - [ ] 連結リストと配列:
+ - [コア連結リストと配列 (動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
+ - [現実世界の連結リストと配列 (動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/quaUd/in-the-real-world-lists-vs)
+ - [ ] [連結リスト(動画)を避けるべき理由](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+ - [ ] 注意事項: ポインタからポインタへの知識が必要です: (ポインタが指すアドレスを変更する可能性のある関数にポインタを渡すときのため) このページは、ptr から ptr への理解だけを目的としています。このリスト走査スタイルはお勧めしません。賢いため、可読性と保守性が低下します。
- [ポインターへのポインター](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- [ ] 実装する(私はテールポインタ&なしで行った):
- [ ] size() - リスト内のデータ要素の数を返す
@@ -537,21 +529,18 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] reverse() - リストを反転する
- [ ] remove_value(value) - この値を持つリストの最初の項目を削除します。
- [ ] 二重連結リスト
- - [説明(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists)
+ - [説明(動画)](https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists)
- 実装する必要はありません
- ### スタック
- - [ ] [Stacks(video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- - [ ] [スタックの使用 Last-In First-Out(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-stacks-last-first-out/149042/177120-4.html)
- - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] 実装されません。配列で実装するのは簡単です。
+ - [ ] [スタック (動画)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [【復讐】3分でわかるスタック(動画)](https://youtu.be/KcT3aVgrrpU)
+ - [ ] 実装しません。配列を使った実装は簡単です
- ### キュー
- - [ ] [キューの使用 First-In First-Out(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-queues-first-first-out/149042/177122-4.html)
- - [ ] [キュー(video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
+ - [ ] [キュー(動画)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- [ ] [環状バッファ/ FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- - [ ] [優先度つきキュー(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Priority-queues-deques/149042/177123-4.html)
- - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
+ - [ ] [【復習】3分でわかるキュー(動画)](https://youtu.be/D6gu-_tmEpQ)
- [ ] テールポインタ付き連結リストを使って実装する:
- enqueue(value) - テールの位置に値を追加する
- dequeue() - 値を返し、少なくとも最近追加された要素を削除する(前面)
@@ -562,33 +551,29 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- empty()
- full()
- [ ] コスト:
- - 最後の要素の次の要素が必要になるため、先頭にエンキューし、末尾をデキューするリンクリストを使用する悪い実装はO(n)になり、デキューごとに完全なトラバーサルが発生します
+ - 先頭でエンキューし、末尾でデキューするリンク リストを使用した悪い実装では、最後から 2 番目の要素が必要になるため、O(n) となり、各デキューの完全な走査が発生します。
- enqueue:O(1)(償却、連結リストと配列[プロービング])
- dequeue:O(1)(連結リストと配列)
- empty:O(1)(連結リストと配列)
- ### ハッシュテーブル
- [ ] 動画:
- - [ ] [連鎖によるハッシング(動画)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [ダブリング、ラビン-カープ(ビデオ)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [チェーンを使用したハッシュ (動画)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [テーブルダブリング、Karp-Rabin (動画)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [公開アドレス指定、暗号化ハッシング(動画)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: The Mighty Dictionary(video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [PyCon 2017: The Dictionary Even Mightier(video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- - [ ] [(上級)Randomization:ユニバーサル&完全 ハッシング(ビデオ)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [PyCon 2010: 強力な辞書 (動画)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: 辞書がさらに強力に (動画))](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(上級)Randomization:ユニバーサル&完全 ハッシング(動画)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(高度)完全ハッシング(動画)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- - [ ] [[Review] Hash tables in 4 minutes (video)](https://www.youtube.com/watch?v=knV86FlSXJ8)
+ - [ ] [【復習】4分でわかるハッシュテーブル(動画)](https://www.youtube.com/watch?v=knV86FlSXJ8)
- [ ] オンラインコース:
- - [ ] [ハッシュ関数について(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Understanding-hash-functions/149042/177126-4.html)
- - [ ] [ハッシュテーブルの使用(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Using-hash-tables/149042/177127-4.html)
- - [ ] [ハッシングをサポートする(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Supporting-hashing/149042/177128-4.html)
- - [ ] [言語サポートハッシュテーブル(ビデオ)](https://www.lynda.com/Developer-Programming-Foundations-tutorials/Language-support-hash-tables/149042/177129-4.html)
- - [ ] [コアハッシュテーブル(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
- - [ ] [データ構造(ビデオ)](https://www.coursera.org/learn/data-structures/home/week/3)
- - [ ] [電話帳の問題(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
+ - [ ] [コアハッシュテーブル(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
+ - [ ] [データ構造(動画)](https://www.coursera.org/learn/data-structures/home/week/3)
+ - [ ] [電話帳の問題(動画)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
- [ ] 分散ハッシュテーブル:
- - [Dropbox(ビデオ)でインスタントアップロードとストレージの最適化](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- - [分散ハッシュテーブル(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
+ - [Dropbox でのインスタント アップロードとストレージの最適化 (動画)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
+ - [分散ハッシュテーブル(動画)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
- [ ] 線形プロービングを使用して配列で実装する
- hash(k、m) - mはハッシュテーブルのサイズです
@@ -601,34 +586,38 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- ### 二分探索
- [ ] [二分探索(動画)](https://www.youtube.com/watch?v=D5SrAga1pno)
- - [ ] [二分探索(ビデオ)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] [二分探索(動画)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [ ] [詳細](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
- - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
+ - [ ] [ブループリント](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [【復習】4分でわかる二分探索(動画)](https://youtu.be/fDKIpRe8GW4)
- [ ] 実装:
- 二分探索(ソートされた整数の配列)
- 再帰を利用した二分探索
- ### ビット演算
- - [ ] [ビットチートシート- 2 ^ 1から2 ^ 16および2 ^ 32までの2の累乗の多くを知るべきです](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-cheet.pdf)
+ - [ ] [ビットチートシート](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf)
+ - (2^1 から 2^16 および 2^32) までの 2 のべき乗の多くを知っておく必要があります
- [ ] &、|、^、〜、>>、<<を使ってビットを操作することについての本当の理解を得る
- - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
+ - [ ] [言語](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- [ ] [良いイントロ:ビット操作(動画)](https://www.youtube.com/watch?v=7jkIUgLC29I)
- - [ ] [Cプログラミングチュートリアル2-10:ビット演算子(ビデオ)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [Cプログラミングチュートリアル2-10:ビット演算子(動画)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
- [ ] [ビット操作](https://en.wikipedia.org/wiki/Bit_manipulation)
- [ ] [ビット演算](https://en.wikipedia.org/wiki/Bitwise_operation)
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- [ ] [The Bit Twiddler](http://bits.stephan-brumme.com/)
- [ ] [インタラクティブなBit Twiddler](http://bits.stephan-brumme.com/interactive.html)
- [ ] 2と1の補数
- - [バイナリ:Plusses&Minuses(なぜ2の補数を使うのか)(ビデオ)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [バイナリ:Plusses&Minuses(なぜ2の補数を使うのか)(動画)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- [1の補数](https://en.wikipedia.org/wiki/Ones%27_complement)
- [2の補数](https://en.wikipedia.org/wiki/Two%27s_complement)
- [ ] カウントセットビット
- - [1バイトのビットを数える4つの方法(ビデオ)](https://youtu.be/Hzuzo9NJrlc)
+ - [1バイトのビットを数える4つの方法(動画)](https://youtu.be/Hzuzo9NJrlc)
- [カウントビット](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- [セットビットの数を32ビット整数で数える方法](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32ビット整数)
- - [ ] 2の次の累乗に丸めます:
- - [2つの次のパワーに回す](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
+ - [ ] カウントセットビット:
+ - [バイト内のビットを数える 4 つの方法 (動画)](https://youtu.be/Hzuzo9NJrlc)
+ - [ビットをカウントする](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - [32 ビット整数のセットビット数を数える方法](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- [ ] スワップ値:
- [スワップ](http://bits.stephan-brumme.com/swap.html)
- [ ] 絶対値:
@@ -637,8 +626,8 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## 木
- ### 木 - メモと背景
- - [ ] [シリーズ:Core Trees(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
- - [ ] [シリーズ:木々(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
+ - [ ] [シリーズ:Core Trees(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
+ - [ ] [シリーズ:木々(動画)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- 基本的な木の構築
- トラバーサル
- 操作アルゴリズム
@@ -662,21 +651,21 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- ### 二分探索木:BST
- [ ] [二分探索木レビュー(動画)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [シリーズ(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
+ - [ ] [シリーズ(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- シンボルテーブルから始まり、BSTアプリケーションを経由します
- - [ ] [はじめに(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [はじめに(動画)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- [ ] [MIT(動画)](https://www.youtube.com/watch?v=9Jry5-82I68)
- C / C ++:
- - [ ] [二分探索木 - C / C ++での実装(ビデオ)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- - [ ] [BSTの実装 - スタックとヒープのメモリ割り当て(ビデオ)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- - [ ] [二分探索木(ビデオ)の最小要素と最大要素を検索](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [二分木の高さを見つける(ビデオ)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
- - [ ] [二分木トラバース - 幅優先戦略(ビデオ)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] [二分探索木 - C / C ++での実装(動画)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] [BSTの実装 - スタックとヒープのメモリ割り当て(動画)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] [二分探索木(動画)の最小要素と最大要素を検索](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [二分木の高さを見つける(動画)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [二分木トラバース - 幅優先戦略(動画)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
- [ ] [二分木:レベルオーダートラバーサル(動画)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] [二分木トラバーサル:Preorder、Inorder、Postorder(video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [二分木が二分探索木かどうかを確認する(ビデオ)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [二分探索木(ビデオ)からノードを削除](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- - [ ] [二分探索木(ビデオ)のInorder Successor](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [二分木が二分探索木かどうかを確認する(動画)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [二分探索木(動画)からノードを削除](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] [二分探索木(動画)のInorder Successor](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] 実装:
- [ ] insert //木に値を挿入する
- [ ] get_node_count //格納された値の数を取得する
@@ -693,18 +682,18 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- ### ヒープ/優先度つきキュー/二分ヒープ
- 木として可視化されますが、通常はストレージ内で線形です(配列、連結リスト)
- [ ] [ヒープ](https://en.wikipedia.org/wiki/Heap_(data_structure))
- - [ ] [はじめに(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
+ - [ ] [はじめに(動画)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- [ ] [ナイーブな実装(video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
- - [ ] [二分木(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- - [ ] [木の高さ備考(ビデオ)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- - [ ] [基本的な操作(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- - [ ] [完全な二分木(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- - [ ] [疑似コード(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- - [ ] [ヒープソート - ジャンプして開始(ビデオ)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [ヒープソート(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [ヒープを作る(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- - [ ] [MIT:ヒープとヒープソート(ビデオ)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [CS 61B講義24:優先度つきキュー(ビデオ)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
+ - [ ] [二分木(動画)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+ - [ ] [木の高さ備考(動画)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] [基本的な操作(動画)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+ - [ ] [完全な二分木(動画)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+ - [ ] [疑似コード(動画)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+ - [ ] [ヒープソート - ジャンプして開始(動画)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [ヒープソート(動画)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
+ - [ ] [ヒープを作る(動画)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
+ - [ ] [MIT:ヒープとヒープソート(動画)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [CS 61B講義24:優先度つきキュー(動画)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- [ ] [線形時間BuildHeap(max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 最大ヒープを実装する:
@@ -777,9 +766,9 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] [6。接尾辞配列](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1)
- [ ] [基数ソート](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- [ ] [基数ソート(動画)](https://www.youtube.com/watch?v=xhr26ia4k38)
- - [ ] [基数ソート、ソート(線形時間指定の制約)(ビデオ)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [ランダム化:行列乗算、クイックソート、Freivaldsのアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [線形時間で並べ替える(ビデオ)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+ - [ ] [基数ソート、ソート(線形時間指定の制約)(動画)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [ランダム化:行列乗算、クイックソート、Freivaldsのアルゴリズム(動画)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [線形時間で並べ替える(動画)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
まとめとして、ここには[15ソートアルゴリズム](https://www.youtube.com/watch?v=kPRA0W1kECg)の視覚的表現があります。
このテーマの詳細が必要な場合は、[いくつかの科目の追加の詳細]の[ソート]の項を参照してください(#additional-detail-on-some-subjects)
@@ -799,32 +788,32 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- 質問が表示されたら、まずグラフベースのソリューションを探し、それがなければ進んでください。
- [ ] Skiena Lectures - 素晴らしいイントロ:
- - [ ] [CSE373 2012 - 講義11 - グラフデータ構造(ビデオ)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - 講義12 - 幅優先検索(ビデオ)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - 講義13 - グラフアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - 講義14 - グラフアルゴリズム(1)(ビデオ)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講義15 - グラフアルゴリズム(2)(動画)(ビデオ)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講義16 - グラフアルゴリズム(3)(ビデオ)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 講義11 - グラフデータ構造(動画)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
+ - [ ] [CSE373 2012 - 講義12 - 幅優先検索(動画)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
+ - [ ] [CSE373 2012 - 講義13 - グラフアルゴリズム(動画)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
+ - [ ] [CSE373 2012 - 講義14 - グラフアルゴリズム(1)(動画)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 講義15 - グラフアルゴリズム(2)(動画)(動画)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 講義16 - グラフアルゴリズム(3)(動画)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- [ ] グラフ(レビューなど):
- - [ ] [6.006単一始点最短経路問題(ビデオ)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 ダイクストラ(ビデオ)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 ベルマン-フォード法(ビデオ)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
- - [ ] [6.006 ダイクストラ法のスピードアップ(ビデオ)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- - [ ] [Aduni:グラフアルゴリズムI - トポロジカルソート、最小スパニング木、プリムのアルゴリズム - 講演6(ビデオ)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [Aduni:グラフアルゴリズムII - DFS、BFS、クラスカル法のアルゴリズム、連合探索データ構造 - 講義7(ビデオ)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7 )
- - [Aduni:グラフアルゴリズムIII:最短経路 - レクチャー8(ビデオ)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- - [ ] [Aduni:グラフアルゴリズムIV:幾何学アルゴリズムの紹介 - 第9講(ビデオ)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] [CS 61B 2014(58:09から開始)(ビデオ)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
- - [ ] [CS 61B 2014:加重グラフ(ビデオ)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- - [ ] [欲張りアルゴリズム:最小スパニング木(ビデオ)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [強固に接続されたコサラジュのアルゴリズムグラフアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [6.006単一始点最短経路問題(動画)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 ダイクストラ(動画)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 ベルマン-フォード法(動画)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
+ - [ ] [6.006 ダイクストラ法のスピードアップ(動画)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [Aduni:グラフアルゴリズムI - トポロジカルソート、最小スパニング木、プリムのアルゴリズム - 講演6(動画)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [Aduni:グラフアルゴリズムII - DFS、BFS、クラスカル法のアルゴリズム、連合探索データ構造 - 講義7(動画)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7 )
+ - [Aduni:グラフアルゴリズムIII:最短経路 - レクチャー8(動画)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [Aduni:グラフアルゴリズムIV:幾何学アルゴリズムの紹介 - 第9講(動画)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] [CS 61B 2014(58:09から開始)(動画)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
+ - [ ] [CS 61B 2014:加重グラフ(動画)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
+ - [ ] [欲張りアルゴリズム:最小スパニング木(動画)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [強固に接続されたコサラジュのアルゴリズムグラフアルゴリズム(動画)](https://www.youtube.com/watch?v=RpgcYiky7uw)
- [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
- [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- フルcourseraコース:
- - [ ] [グラフのアルゴリズム(ビデオ)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
+ - [ ] [グラフのアルゴリズム(動画)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
- 私は実装します:
- [ ] 隣接リストを持つDFS(再帰的)
@@ -848,14 +837,14 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### 再帰
- [ ] 再帰とバックトラックに関するスタンフォードの講義:
- - [ ] [講義8 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- - [ ] [講義9 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- - [ ] [講義10 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- - [ ] [講義11 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - [ ] [講義8 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] [講義9 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] [講義10 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] [講義11 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- それを使用するのが適切なとき
- 尾の再帰はどのように優れていないのですか?
- [ ] [テール再帰とは何かなぜそれが悪いのですか?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- - [ ] [テール再帰(ビデオ)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] [テール再帰(動画)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
- ### 動的プログラミング
- 面接で動的プログラミングの問題が見られることはおそらくないでしょうが、問題が動的プログラミングの候補であると認識できることは価値があります。
@@ -863,25 +852,25 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- DPの問題の多くの例を見て、あなたが関連するパターンをしっかりと理解するまでお勧めします。
- [ ] 動画:
- Skienaのビデオは、時には見ることができないほど小さすぎるホワイトボードを使用することがあるため、フォローするのが難しい場合があります
- - [ ] [Skiena:CSE373 2012 - 講義19 - 動的プログラミング入門(ビデオ)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena:CSE373 2012 - 講義20 - 編集距離(ビデオ)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena:CSE373 2012 - 講義21 - 動的プログラミング例(ビデオ)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena:CSE373 2012 - 講義22 - 動的プログラミングのアプリケーション(ビデオ)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
- - [ ] [Simonson:動的プログラミング0(59:18から開始)(ビデオ)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- - [ ] [Simonson:動的プログラミングI - 講義11(ビデオ)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Simonson:動的プログラミングII - 講演12(ビデオ)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] [Skiena:CSE373 2012 - 講義19 - 動的プログラミング入門(動画)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
+ - [ ] [Skiena:CSE373 2012 - 講義20 - 編集距離(動画)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
+ - [ ] [Skiena:CSE373 2012 - 講義21 - 動的プログラミング例(動画)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
+ - [ ] [Skiena:CSE373 2012 - 講義22 - 動的プログラミングのアプリケーション(動画)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
+ - [ ] [Simonson:動的プログラミング0(59:18から開始)(動画)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [Simonson:動的プログラミングI - 講義11(動画)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Simonson:動的プログラミングII - 講演12(動画)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
- [ ] 個々のDP問題のリスト(それぞれ短い):
[動的プログラミング(動画)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
- [ ] イェール講義ノート:
- [ ] [動的プログラミング](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicプログラミング)
- [ ] Coursera:
- - [ ] [RNA二次構造の問題(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
- - [ ] [動的プログラミングのアルゴリズム(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- - [ ] [DPアルゴリズムの説明(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
- - [ ] [DPアルゴリズムの実行時間(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- - [ ] [DP Vs 再帰的実装(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- - [ ] [グローバル対配列アライメント(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- - [ ] [ローカル対配列アライメント(ビデオ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
+ - [ ] [RNA二次構造の問題(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
+ - [ ] [動的プログラミングのアルゴリズム(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
+ - [ ] [DPアルゴリズムの説明(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
+ - [ ] [DPアルゴリズムの実行時間(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
+ - [ ] [DP Vs 再帰的実装(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] [グローバル対配列アライメント(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
+ - [ ] [ローカル対配列アライメント(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
- ### オブジェクト指向プログラミング
- [ ] [オプション:UML 2.0シリーズ(動画)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
@@ -889,8 +878,8 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- OOとOOの設計方法を十分に理解している場合は、これをスキップできます。
- [OOSE:UMLとJavaを使用したソフトウェア開発](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] SOLID OOP原則:
- - [ ] [Bob Martin SOLIDオブジェクト指向とアジャイルデザインの原則(ビデオ)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- - [ ] [SOLID原則(ビデオ)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
+ - [ ] [Bob Martin SOLIDオブジェクト指向とアジャイルデザインの原則(動画)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] [SOLID原則(動画)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- [ ] S - [単一責任の原則](http://www.oodesign.com/single-responsibility-principle.html)| [各オブジェクトへの単一責任](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- [もっと味](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- [ ] O - [オープン/クローズの原則l](http://www.oodesign.com/open-close-principle.html)| [プロダクションレベルではオブジェクトは拡張の準備ができていますが、変更はできません](https://en.wikipedia.org/wiki/Open/closed_principle)
@@ -898,14 +887,14 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] L - [リスコフの置換原則](http://www.oodesign.com/liskov-s-substitution-principle.html)| [基本クラスと派生クラスは `IS A`プリンシパルに従います](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- [もっと風味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=ja)
- [ ] I - [インタフェース分離の原則](http://www.oodesign.com/interface-segregation-principle.html)|クライアントは、使用しないインタフェースを強制的に実装するべきではありません
- - [インタフェース分離の原則5分(ビデオ)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [インタフェース分離の原則5分(動画)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- [もっと味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=ja)
- [ ] D - [依存性逆転の原則](http://www.oodesign.com/dependency-inversion-principle.html)|オブジェクトの構成における依存関係を減らす。
- [なぜ依存関係の逆転の原則とそれが重要なのか](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
- [もっと味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=ja)
- ### デザインパターン
- - [ ] [クイックUMLレビュー(ビデオ)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] [クイックUMLレビュー(動画)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- [ ] これらのパターンを学ぶ:
- [ ] Strategy(戦略)
- [ ] Singleton(単一要素)
@@ -924,9 +913,9 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] Iterator(イテレータ)
- [ ] Composite(合成)
- [ ] Flyweight(フライ級)
- - [ ] [第6章(パート1) - パターン(ビデオ)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [第6章(パート2) - 抽象化 - 発生、一般階層、プレーヤーロール、シングルトン、オブザーバー、代表団(ビデオ)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [第6章(パート3) - アダプタ、ファサード、変更不可、読み取り専用インターフェイス、プロキシ(ビデオ)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+ - [ ] [第6章(パート1) - パターン(動画)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
+ - [ ] [第6章(パート2) - 抽象化 - 発生、一般階層、プレーヤーロール、シングルトン、オブザーバー、代表団(動画)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+ - [ ] [第6章(パート3) - アダプタ、ファサード、変更不可、読み取り専用インターフェイス、プロキシ(動画)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [ビデオシリーズ(27ビデオ)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- [ ] [ヘッドファーストデザインパターン](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- 正式な本は「デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素」であることは分かっていますが、ヘッドファーストはOOの初心者には最適です。
@@ -935,31 +924,31 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### 組み合わせ(nCk)と確率
- - [ ] [数学のスキル:階乗、順列、組み合わせの見つけ方(選択)(ビデオ)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- - [ ] [学校を作る:確率(ビデオ)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- - [ ] [学校を作る:確率とマルコフ連鎖(ビデオ)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] [数学のスキル:階乗、順列、組み合わせの見つけ方(選択)(動画)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [学校を作る:確率(動画)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] [学校を作る:確率とマルコフ連鎖(動画)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- [ ] Khan Academy:
- コースのレイアウト:
- [ ] [基本理論的確率](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
- ちょうどビデオ - 41(それぞれ単純で、それぞれ短いです):
- - [ ] [確率の説明(ビデオ)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+ - [ ] [確率の説明(動画)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
- ### NP、NP-完全/近似アルゴリズム
- 巡回セールスマン問題やナップザック問題など、NP完全問題の最も有名なクラスについて知りましょう。
そうすれば面接官がこれらについて偽装して尋ねるとき、それらを認識することができます。
- NP完全の意味を知る。
- - [ ] [計算上の複雑さ(ビデオ)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] [計算上の複雑さ(動画)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- [ ] Simonson:
- - [ ] [貪欲アルゴリズム。 II&NP完全性へのイントロ(ビデオ)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- - [ ] [NP完全性II&リダクション(ビデオ)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP完全性III(ビデオ)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP完全性IV(ビデオ)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] [貪欲アルゴリズム。 II&NP完全性へのイントロ(動画)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [NP完全性II&リダクション(動画)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP完全性III(動画)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP完全性IV(動画)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- [ ] スキナ:
- - [ ] [CSE373 2012 - 講義23 - NP完全性の紹介(ビデオ)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - 講義24 - NP完全性の証明(ビデオ)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講演25 - NP完全性への挑戦(ビデオ)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [複雑さ:P、NP、NP完全性、削減(ビデオ)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- - [ ] [複雑さ:近似アルゴリズム(ビデオ)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- - [ ] [複雑さ:固定パラメータアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [CSE373 2012 - 講義23 - NP完全性の紹介(動画)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
+ - [ ] [CSE373 2012 - 講義24 - NP完全性の証明(動画)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2012 - 講演25 - NP完全性への挑戦(動画)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [複雑さ:P、NP、NP完全性、削減(動画)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] [複雑さ:近似アルゴリズム(動画)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] [複雑さ:固定パラメータアルゴリズム(動画)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- ピーター・ノヴィグ(Peter Norvig)は、セールスマンの問題を解決するための最適なソリューションについて説明しています。
- [JupyterNotebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- あなたが持っているなら、CLRSの1048 - 1140ページ。
@@ -973,17 +962,17 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### キャッシュ
- [ ] LRUキャッシュ:
- - [ ] [LRUキャッシュの魔法(Google Devの100日間)(ビデオ)](https://www.youtube.com/watch?v=R5ON3iwx78M)
- - [ ] [LRU(ビデオ)の実装](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] [LRUキャッシュの魔法(Google Devの100日間)(動画)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] [LRU(動画)の実装](https://www.youtube.com/watch?v=bq6N7Ym81iI)
- [ ] [LeetCode - 146 LRU Cache(C ++)(video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
- [ ] CPUキャッシュ:
- - [ ] [MIT 6.004 L15:メモリ階層(ビデオ)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] [MIT 6.004 L15:メモリ階層(動画)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- [ ] [MIT 6.004 L16:キャッシュの問題(動画)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
- ### プロセスとスレッド
- [ ] コンピュータサイエンス162 - オペレーティングシステム(25ビデオ):
- プロセスとスレッドのためのビデオ表示1-11
- - [オペレーティングシステムとシステムプログラミング(ビデオ)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [オペレーティングシステムとシステムプログラミング(動画)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- [プロセスとスレッドの違いは何ですか?](https://www.quora.com/What-is-the-difference-between-a-process-and-thread)
- カバー:
- プロセス、スレッド、並行性の問題
@@ -1008,7 +997,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- コンテキストスイッチ
- オペレーティングシステムとその基盤となるハードウェアによってコンテキスト切り替えが開始される仕組み
- [ ] [C++のスレッド(シリーズ - 10ビデオ)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- - [ ] Pythonでの並行性(ビデオ):
+ - [ ] Pythonでの並行性(動画):
- [ ] [スレッドに関する短いシリーズ](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- [ ] [Pythonスレッド](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- [ ] [Python GIL(2010)について理解する](https://www.youtube.com/watch?v=Obt-vMVdM8s)
@@ -1055,13 +1044,13 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- モックオブジェクトとは何ですか?
- 統合テストとは
- 依存性注入とは
- - [ ] [James Bachによるアジャイルソフトウェアテスト(ビデオ)](https://www.youtube.com/watch?v=SAhJf36_u5U)
- - [ ] [ジェイムス・バッハによるソフトウェアテストの公開講座(ビデオ)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- - [ ] [Steve Freeman - テスト駆動開発(これは私たちが意味するものではありません)(ビデオ)](https://vimeo.com/83960706)
+ - [ ] [James Bachによるアジャイルソフトウェアテスト(動画)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] [ジェイムス・バッハによるソフトウェアテストの公開講座(動画)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] [Steve Freeman - テスト駆動開発(これは私たちが意味するものではありません)(動画)](https://vimeo.com/83960706)
- [スライド](http://goocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- [ ] [TDDは死んでいます。長いライブテスト。](http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
- - [ ] [TDDは死んでいますか? (ビデオ)](https://www.youtube.com/watch?v=z9quxZsLcfo)
- - [ ] [ビデオシリーズ(152ビデオ) - すべてではない(ビデオ)](https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
+ - [ ] [TDDは死んでいますか? (動画)](https://www.youtube.com/watch?v=z9quxZsLcfo)
+ - [ ] [ビデオシリーズ(152ビデオ) - すべてではない(動画)](https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
- [ ] [Pythonでテスト駆動型Web開発](http://www.obeythetestinggoat.com/pages/book.html#toc)
- [ ] 依存性注入:
- [ ] [動画](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
@@ -1077,14 +1066,14 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
あなたはそれらを実装できますか?
- ### 文字列の検索と操作
- - [ ] [Sedgewick - 接尾辞配列(ビデオ)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
+ - [ ] [Sedgewick - 接尾辞配列(動画)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
- [ ] [Sedgewick - サブストリング(文字列の一部)検索(動画)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- [ ] [1. サブストリング検索の紹介](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- [ ] [2. ブルートフォースサブストリング検索](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
- [ ] [3. クヌース・モーリス・プラット法](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- [ ] [4. ボイヤー-ムーア文字列検索アルゴリズム](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
- [ ] [5. ラビン-カープ文字列検索アルゴリズム](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [テキストの検索パターン(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+ - [ ] [テキストの検索パターン(動画)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
このテーマについてさらに詳しく知りたい場合は、[いくつかの科目の追加の詳細]の「文字列のマッチング」の項を参照してください(#additional-detail-on-some-subjects)
@@ -1097,17 +1086,17 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [3. キャラクターベースの操作](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
- [ ] [データ構造とプログラミング手法に関する注記](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
- [ ] 短期コースビデオ:
- - [ ] [トライ木の紹介(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
- - [ ] [トライ木のパフォーマンス(ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] [トライ木の紹介(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] [トライ木のパフォーマンス(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- [ ] [トライ木の実装ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- [ ] [Trie:無視されたデータ構造](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- [ ] [TopCoder - トライ木の使用](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
- - [ ] [スタンフォード講演(現実世界のユースケース)(ビデオ)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [スタンフォード講演(現実世界のユースケース)(動画)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- [ ] [MIT、高度なデータ構造、文字列(途中でかなり不明瞭になることがあります)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### 浮動小数点数
- [ ] 単純な8ビット:[浮動小数点数の表現 - 1(ビデオ - 計算にエラーがあります - ビデオの説明を参照)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32ビット:[IEEE754 32ビット浮動小数点バイナリ(ビデオ)](https://www.youtube.com/watch?v=50ZYcZebIec)
+ - [ ] 32ビット:[IEEE754 32ビット浮動小数点バイナリ(動画)](https://www.youtube.com/watch?v=50ZYcZebIec)
- ### Unicode
- [ ] [すべてのソフトウェア開発者が絶対に最低限必要とする、絶対にUnicodeと文字セットについて熟知していること](http://www.joelonsoftware.com/articles/Unicode.html)
@@ -1115,8 +1104,8 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### バイト順(エンディアン)
- [ ] [ビッグエンディアンとリトルエンディアン](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
- - [ ] [ビッグエンディアン Vs リトルエンディアン(ビデオ)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- - [ ] [ビッグエンディアンとリトルエンディアンの イン/アウト(ビデオ)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - [ ] [ビッグエンディアン Vs リトルエンディアン(動画)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [ビッグエンディアンとリトルエンディアンの イン/アウト(動画)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- カーネル開発者のための非常に技術的な話。ほとんどがあなたの頭の上にある場合は心配しないでください。
- 前半で十分です。
@@ -1135,7 +1124,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [詳解サブネット化 - 第5部CIDR表記](https://www.youtube.com/watch?v=t5xYI0jzOf4)
- [ ] ソケット:
- [ ] [Java - Sockets - Introduction(video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- - [ ] [ソケットプログラミング(ビデオ)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+ - [ ] [ソケットプログラミング(動画)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
## システム設計、スケーラビリティ、データ処理
- **4年以上の経験があれば、システム設計の質問を期待できます。**
@@ -1161,7 +1150,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [技術面接で設計質問に答えるための準備方法](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
- [ ] [システムデザイン面接の前に知っておくべき8つの事柄](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
- [ ] [アルゴリズム設計](http://www.hiredintech.com/algorithm-design/)
-- [ ] [データベースの正規化 - 1NF、2NF、3NF、4NF(ビデオ)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [データベースの正規化 - 1NF、2NF、3NF、4NF(動画)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
- [ ] [システム設計の面接](https://github.com/checkcheckzz/system-design-interview) - この中には多くのリソースがあります。記事や例を見てください。私はそれらのいくつかを下に置いた。
- [ ] [システム設計面接の方法](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
- [ ] [誰もが知っておくべき数字](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
@@ -1186,20 +1175,20 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [分散コンピューティングの説明の誤り](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- [ ] [実用的なプログラミングテクニック](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- [extra:Google Pregel グラフ処理](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- - [ ] [Jeff Dean - Googleのソフトウェアシステム構築と教訓(ビデオ)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [Jeff Dean - Googleのソフトウェアシステム構築と教訓(動画)](https://www.youtube.com/watch?v=modXC5IWTJI)
- [ ] [スケールのための設計システムの紹介](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [App EngineとCloud Datastoreを使用してモバイルゲームを世界中の視聴者に拡大(ビデオ)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [App EngineとCloud Datastoreを使用してモバイルゲームを世界中の視聴者に拡大(動画)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- [ ] [Googleがプラネットスケールのインフラのプラネットスケールエンジニアリングを行う仕組み](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- [ ] [アルゴリズムの重要性](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
- [ ] [シャーディング](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- [ ] [Facebook(2009)でスケール](https://www.infoq.com/presentations/Scale-at-Facebook)
- - [ ] [Facebook(2012年)、「10億ユーザー向けビルド(ビデオ)」](https://www.youtube.com/watch?v=oodS71YtkGU)
- - [ ] [ロングゲームのためのエンジニアリング - Astrid Atkinson Keynote(ビデオ)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [Facebook(2012年)、「10億ユーザー向けビルド(動画)」](https://www.youtube.com/watch?v=oodS71YtkGU)
+ - [ ] [ロングゲームのためのエンジニアリング - Astrid Atkinson Keynote(動画)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- [ ] [7年間のYouTubeスケーラビリティレッスン30分](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html )
- [動画](https://www.youtube.com/watch?v=G-lGCC4KKok)
- [ ] [ペイパルが毎日何十億ものトランザクションにスケーリングされる方法(8VMだけを使用)](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- [ ] [大きなデータセットで重複を削除する方法](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [Jon CowieによるEtsyのスケールとエンジニアリング文化の中の一見(ビデオ)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [Jon CowieによるEtsyのスケールとエンジニアリング文化の中の一見(動画)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- [ ] [Amazonは独自のマイクロサービスアーキテクチャをどのように導いたか](http://thenewstack.io/led-amazon-microservices-architecture/)
- [ ] [圧縮するか圧縮しないか、それはUberの質問でした](https://eng.uber.com/trip-data-squeeze/)
- [ ] [Tarantoolの非同期キュー、キューに入れる](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
@@ -1230,7 +1219,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [ESPNの規模でのアーキテクチャ - 毎秒100,000のDuh Nuh Nuhsで動作](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- [ ] サービスを結合する技術の情報については、以下の「メッセージング、シリアライゼーション、およびキューイングシステム」を参照してください。
- [ ] Twitter:
- - [O`Reilly MySQL CE 2011:Jeremy Cole、「@Twitterの大小データ」(ビデオ)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [O`Reilly MySQL CE 2011:Jeremy Cole、「@Twitterの大小データ」(動画)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [スケール時のタイムライン](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- さらに詳しくは、[ビデオシリーズ](ビデオシリーズ)セクションの「Mining Massive Datasets」ビデオシリーズを参照してください。
@@ -1355,7 +1344,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
## 面接に近づいたら
-- [ ] クラッキングコーディング面接セット2(ビデオ):
+- [ ] クラッキングコーディング面接セット2(動画):
- [コード面接をクラッキングする](https://www.youtube.com/watch?v=4NIb9l3imAo)
- [コード面接をクラックする - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
@@ -1481,15 +1470,15 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### コンパイラ
- - [ ] [1分でコンパイラがどのように動作するか(ビデオ)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- - [ ] [Harvard CS50 - コンパイラ(ビデオ)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [ ] [1分でコンパイラがどのように動作するか(動画)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [ ] [Harvard CS50 - コンパイラ(動画)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- [ ] [C ++(video)](https://www.youtube.com/watch?v=twodd1KFfGk)
- - [ ] [コンパイラの最適化について(C ++)(ビデオ)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+ - [ ] [コンパイラの最適化について(C ++)(動画)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
- ### Emacsとvi(m)
- UNIXベースのコードエディタに慣れましょう
- vi(m):
- - [vim 01での編集 - インストール、設定、およびモード(ビデオ)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [vim 01での編集 - インストール、設定、およびモード(動画)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- [VIM Adventures](http://vim-adventures.com/)
- 4ビデオのセット:
- [vi / vimエディタ - レッスン1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
@@ -1498,14 +1487,14 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [vi / vimエディタ - レッスン4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
- [Emacsの代わりにViを使う](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
- emacs:
- - [基本Emacsチュートリアル(ビデオ)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
- - 3つのセット(ビデオ):
+ - [基本Emacsチュートリアル(動画)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - 3つのセット(動画):
- [Emacsチュートリアル(初心者向け) - 第1部 - ファイルコマンド、カット/コピー/ペースト、カーソルコマンド](https://www.youtube.com/watch?v=ujODL7MD04Q)
- [Emacsチュートリアル(初心者向け) - パート2 - バッファ管理、検索、M-grep、rgrepモード](https://www.youtube.com/watch?v=XWpsRupJ4II)
- [Emacsチュートリアル(初心者) - 第3章式、ステートメント、〜/ .emacsファイルとパッケージ](https://www.youtube.com/watch?v=paSgzPso-yc)
- [邪悪なモード:または、私がEmacsを気絶させ、愛する方法(動画)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [EmacsでCプログラムを書く](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- - [(多分)組織モードの詳細:構造の管理(ビデオ)](https://www.youtube.com/watch?v=nsGYet02bEk)
+ - [(多分)組織モードの詳細:構造の管理(動画)](https://www.youtube.com/watch?v=nsGYet02bEk)
- ### Unixコマンドラインツール
- 私は良いツールから下のリストに記入しました。
@@ -1521,7 +1510,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [strace](https://en.wikipedia.org/wiki/Strace)
- [ ] [tcpdump](https://danielmiessler.com/study/tcpdump/)
-- ### 情報理論(ビデオ)
+- ### 情報理論(動画)
- [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
- [ ] Markovプロセスの詳細:
- [ ] [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
@@ -1529,7 +1518,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [プロジェクト=マルコフテキスト生成ウォークスルー](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walkthroughs)
- 下記のMIT 6.050J Information and Entropyシリーズを参照してください。
-- ### パリティ&ハミングコード(ビデオ)
+- ### パリティ&ハミングコード(動画)
- [ ] [イントロ](https://www.youtube.com/watch?v=q-3BctoUpHE)
- [ ] [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
- [ ] ハミングコード:
@@ -1540,7 +1529,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### エントロピー
- 下記の動画もご覧ください
- 最初に情報理論ビデオを見てください
- - [情報理論、Claude Shannon、エントロピー、冗長性、データ圧縮およびビット(ビデオ)](https://youtu.be/JnJq3Py0dyM?t=176)
+ - [情報理論、Claude Shannon、エントロピー、冗長性、データ圧縮およびビット(動画)](https://youtu.be/JnJq3Py0dyM?t=176)
- ### 暗号化
- 下記の動画もご覧ください
@@ -1551,7 +1540,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### 圧縮
- 最初に情報理論ビデオを見てください
- - [ ] Computerphile(ビデオ):
+ - [ ] Computerphile(動画):
- [ ] [圧縮](https://www.youtube.com/watch?v=Lto-ajuqW3w)
- [ ] [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
- [ ] [上向きの木(ハフマン木)](https://www.youtube.com/watch?v=umTbivyJoiI)
@@ -1578,14 +1567,14 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### ガベージコレクション
- [ ] [ガベージコレクション(Java);データの拡張(動画)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
- - [ ] [コンパイラ(ビデオ)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
+ - [ ] [コンパイラ(動画)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
- [ ] [GC in Python(video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
- [ ] [ディープダイブJava:ガーベッジコレクションは良いです!](https://www.infoq.com/presentations/garbage-collection-benefits)
- - [ ] [Deep Dive Python:CPythonでのガベージコレクション(ビデオ)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+ - [ ] [Deep Dive Python:CPythonでのガベージコレクション(動画)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
- ### パラレルプログラミング
- [ ] [Coursera(Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
- - [ ] [高性能並列計算のための効率的なPython(ビデオ)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+ - [ ] [高性能並列計算のための効率的なPython(動画)](https://www.youtube.com/watch?v=uY85GkaYzBk)
- ### メッセージング、シリアライゼーション、およびキューイングシステム
- [ ] [Thrift](https://thrift.apache.org/)
@@ -1612,13 +1601,13 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### A *
- [ ] [検索アルゴリズム](https://en.wikipedia.org/wiki/A*_search_algorithm)
- [ ] [A * Pathfinding Tutorial(video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- - [ ] [A *経路探索(E01:アルゴリズムの説明)(ビデオ)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+ - [ ] [A *経路探索(E01:アルゴリズムの説明)(動画)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
- ### 高速フーリエ変換
- [ ] [フーリエ変換のインタラクティブガイド](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- [ ] [フーリエ変換とは何ですか?それは何のために使われますか?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [ ] [フーリエ変換とは何ですか? (ビデオ)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [ ] [Divide&Conquer:FFT(ビデオ)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [ ] [フーリエ変換とは何ですか? (動画)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [ ] [Divide&Conquer:FFT(動画)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- [ ] [FFTの理解](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
- ### ブルームフィルター
@@ -1637,7 +1626,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [Simhashing(うまくいけば)シンプルに](http://ferd.ca/simhashing-hopefully-made-simple.html)
- ### ヴァンEmde Boasの木
- - [Divide&Conquer:van Emde Boas Trees(ビデオ)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [Divide&Conquer:van Emde Boas Trees(動画)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
- [ ] [MIT講義ノート](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
- ### 拡張データ構造
@@ -1664,9 +1653,9 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
赤黒の木よりもバランスがとれているため、挿入と取り出しが遅くなりますが、検索が速くなります。これにより
一度構築され、再構成なしでロードされる、例えば言語
辞書(または、アセンブラまたはインタプリタのオペコードなどのプログラム辞書)を含む。
- - [ ] [MIT AVL Trees / AVL Sort(ビデオ)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- - [ ] [AVL木(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- - [ ] [AVL木実装(ビデオ)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [ ] [MIT AVL Trees / AVL Sort(動画)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ - [ ] [AVL木(動画)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [ ] [AVL木実装(動画)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- [ ] [スプリットアンドマージ](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
- [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
@@ -1690,8 +1679,8 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
現在のLinuxカーネルで使用されている完全に公正なスケジューラは赤黒の木を使用します。 Javaのバージョン8では、
Collection HashMapが変更され、LinkedListを使用して同一の要素を貧弱に保存する代わりに
ハッシュコードでは、赤黒の木が使用されます。
- - [Aduni - アルゴリズム - 講義4(リンク先のジャンプ先)(ビデオ)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- - [Aduni - アルゴリズム - 講義5(ビデオ)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [Aduni - アルゴリズム - 講義4(リンク先のジャンプ先)(動画)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - アルゴリズム - 講義5(動画)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- [ ] [黒い木](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- [ ] [バイナリサーチとレッドブラック木の紹介](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
- [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
@@ -1700,9 +1689,9 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- 実際には:
2〜3本の木は、検索が遅くなるため(AVL木よりも高さが高いため)、挿入が速くなります。
- 2-3の木は非常にまれにしか使用しませんが、実装にはさまざまなタイプのノードが含まれるためです。代わりに、人々はレッドブラックの木を使用します。
- - [ ] [23木の直感と定義(ビデオ)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [ ] [23木の直感と定義(動画)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- [ ] [23-Treeのバイナリビュー](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [2-3木(学生の暗唱)(ビデオ)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [2-3木(学生の暗唱)(動画)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] **2-3-4木(別名2-4木)**
- 実際には:
@@ -1710,8 +1699,8 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
2-4木の操作は、赤黒の木の色の反転と回転にも相当します。これは2-4の木を
赤黒の木の背後にある論理を理解するための重要なツールです。そのため、多くの導入アルゴリズムのテキストでは、
2〜4本の木は実用的ではありません**。
- - [ ] [CS 61B講義26:バランスの取れた検索木(ビデオ)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
- - [ ] [ボトムアップ234-Trees(ビデオ)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [CS 61B講義26:バランスの取れた検索木(動画)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
+ - [ ] [ボトムアップ234-Trees(動画)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [ ] [トップダウン234木(動画)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
- [ ] **N-ary(K-ary、M-ary)木**
@@ -1728,10 +1717,10 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
特定のファイル内のブロック基本的な問題は、ファイルブロックのiアドレスをディスクブロックに変換することです
(またはおそらくシリンダーヘッドセクターへの)アドレスである。
- [ ] [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- - [ ] [B木(ビデオ)の紹介](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
- - [ ] [B木の定義と挿入(ビデオ)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [B木(動画)の紹介](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [ ] [B木の定義と挿入(動画)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [ ] [B木削除(動画)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [MIT 6.851 - メモリ階層モデル(ビデオ)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - [ ] [MIT 6.851 - メモリ階層モデル(動画)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- キャッシュに気付かないB木、非常に興味深いデータ構造
- 最初の37分は非常に技術的であり、スキップすることができます(Bはブロックサイズ、キャッシュラインサイズです)
- [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
@@ -1740,22 +1729,22 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### k-D木
- 矩形または高次元のオブジェクトの点数を見つけるのに最適
- k最近接の隣人に適している
- - [ ] [Kd Trees(ビデオ)](https://www.youtube.com/watch?v=W94M9D_yXKk)
- - [ ] [kNN K-d木アルゴリズム(ビデオ)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+ - [ ] [Kd Trees(動画)](https://www.youtube.com/watch?v=W94M9D_yXKk)
+ - [ ] [kNN K-d木アルゴリズム(動画)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
- ### リストをスキップする
- 「これは多少のカルトデータ構造です」 - Skiena
- - [ ] [ランダム化:リストをスキップ(ビデオ)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [ランダム化:リストをスキップ(動画)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [アニメーションともう少し詳しく](https://en.wikipedia.org/wiki/Skip_list)
- ### ネットワークの流れ
- - [ ] [Ford-Fulkerson(ビデオ)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [ ] [Ford-Fulkersonアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [ ] [Ford-Fulkerson(動画)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [ ] [Ford-Fulkersonアルゴリズム(動画)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- [ ] [ネットワークフロー(動画)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
- ### 高速処理のための数学
- - [ ] [整数演算、Karatsuba倍数(ビデオ)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [中国の剰余定理(暗号で使用)(ビデオ)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+ - [ ] [整数演算、Karatsuba倍数(動画)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [中国の剰余定理(暗号で使用)(動画)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
- ### Treap
- 二分探索木とヒープの組み合わせ
@@ -1763,13 +1752,13 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [データ構造:Treaps説明(動画)](https://www.youtube.com/watch?v=6podLUYinH8)
- [ ] [セット操作のアプリケーション](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
-- ### リニアプログラミング(ビデオ)
+- ### リニアプログラミング(動画)
- [ ] [線形計画法](https://www.youtube.com/watch?v=M4K6HYLHREQ)
- [ ] [最小費用の見積もり](https://www.youtube.com/watch?v=2ACJ9EWUC6U)
- [ ] [最大値の検索](https://www.youtube.com/watch?v=8AA_81xI3ik)
- [ ] [Pythonで線形方程式を解く - シンプレックスアルゴリズム](https://www.youtube.com/watch?v=44pAWI7v5Zk)
-- ### 幾何学、凸包(ビデオ)
+- ### 幾何学、凸包(動画)
- [ ] [Graph Alg。 IV:幾何学アルゴリズムの紹介 - 講義9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
- [ ] [Geometric Algorithms:Graham&Jarvis - 講義10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [Divide&Conquer:Convex Hull、Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
@@ -1780,10 +1769,10 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ### 機械学習
- [ ] なぜMLですか?
- [ ] [Googleがどのように最初の企業を学習するマシンとして自分自身を作り直すか](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- - [ ] [知的コンピュータシステムのための大規模な深い学習(ビデオ)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
+ - [ ] [知的コンピュータシステムのための大規模な深い学習(動画)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
- [ ] [深い学習と理解度対ソフトウェア工学と検証、Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
- [ ] [Googleのクラウドマシン学習ツール(動画)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
- - [ ] [Google Developers `Machine Learning Recipes(Scikit Learn&Tensorflow)(ビデオ)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
+ - [ ] [Google Developers `Machine Learning Recipes(Scikit Learn&Tensorflow)(動画)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
- [ ] [Tensorflow(video)](https://www.youtube.com/watch?v=oZikw5k_2FM)
- [ ] [Tensorflowチュートリアル](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- [ ] [Pythonでニューラルネットワークを実装する実践ガイド(Theanoを使用)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
@@ -1819,7 +1808,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [パス圧縮](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
- [ ] [分析オプション](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
-- [ ] **もっとダイナミックなプログラミング**(ビデオ)
+- [ ] **もっとダイナミックなプログラミング**(動画)
- [ ] [6.006:動的プログラミングI:フィボナッチ、最短経路](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- [ ] [6.006:ダイナミックプログラミングII:テキストジャスティフィケーション、ブラックジャック](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- [ ] [6.006:DP III:かっこ、編集距離、ナップザック](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
@@ -1828,11 +1817,11 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [6.046:ダイナミックプログラミング:オールペア最短パス](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- [ ] [6.046:ダイナミックプログラミング(学生の暗唱)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
-- [ ] **高度なグラフ処理**(ビデオ)
+- [ ] **高度なグラフ処理**(動画)
- [ ] [同期分散アルゴリズム:対称性を破る。木にまたがる最短パス](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
- [ ] [非同期分散アルゴリズム:木にまたがる最短パス](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
-- [ ] MIT **確率**(mathy、ゆっくりと進み、数学的なことに良い)(ビデオ):
+- [ ] MIT **確率**(mathy、ゆっくりと進み、数学的なことに良い)(動画):
- [ ] [MIT 6.042J - 確率の紹介](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
- [ ] [MIT 6.042J - 条件付き確率](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
- [ ] [MIT 6.042J - 独立性](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
@@ -1845,7 +1834,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [Simonson:Approximation Algorithms(video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
- [ ] **文字列マッチング**
- - [ ] Rabin-Karp(ビデオ):
+ - [ ] Rabin-Karp(動画):
- [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
- [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- [最適化:実装と分析](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
@@ -1855,7 +1844,7 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [Knuth-Morris-Pratt(KMP)文字列マッチングアルゴリズム](https://www.youtube.com/watch?v=5i7oKodCRJo)
- [ ] Boyer-Moore文字列検索アルゴリズム
- [Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
- - [高度な文字列検索Boyer-Moore-Horspoolアルゴリズム(ビデオ)](https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [高度な文字列検索Boyer-Moore-Horspoolアルゴリズム(動画)](https://www.youtube.com/watch?v=QDZpzctPf10)
- [ ] [Coursera:文字列のアルゴリズム](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
- すごく始まりますが、KMPを過ぎるまでには、必要以上に複雑になります
- 試行の良い説明
@@ -1864,16 +1853,16 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] **ソート**
- [ ] スタンフォードのソーティングに関する講義:
- - [ ] [講義15 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- - [ ] [講義16 |プログラミングの抽象化(ビデオ)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - [ ] [講義15 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [ ] [講義16 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- [ ] Shai Simonson、[Aduni.org](http://www.aduni.org/):
- - [ ] [アルゴリズム - ソート - 講義2(ビデオ)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- - [ ] [アルゴリズム - ソートII - レクチャー3(ビデオ)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - [ ] [アルゴリズム - ソート - 講義2(動画)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [ ] [アルゴリズム - ソートII - レクチャー3(動画)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- [ ] Steven Skienaのソーティングに関する講義:
- - [ ] [講義は26:46に始まります(ビデオ)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [ ] [講義は27:40(ビデオ)から開始](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [講演は35:00(ビデオ)から開始](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [講演は23:50から始まります(ビデオ)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+ - [ ] [講義は26:46に始まります(動画)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
+ - [ ] [講義は27:40(動画)から開始](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [講演は35:00(動画)から開始](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [講演は23:50から始まります(動画)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
## ビデオシリーズ
From 362be56d68558b4e3e12845e2cd1ace05e9e9c11 Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Wed, 1 Nov 2023 22:14:51 +0900
Subject: [PATCH 103/173] Fixes where listings are not valid.
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 4d39afad57..e9d5f68471 100644
--- a/README.md
+++ b/README.md
@@ -122,7 +122,7 @@ For a complete CS self-taught program, the resources for my study plan have been
- insertion
- heapsort
- quicksort
- - merge sort
+ - mergesort
- [Graphs](#graphs)
- directed
- undirected
@@ -711,7 +711,8 @@ if you can identify the runtime complexity of different algorithms. It's a super
- binary search using recursion
- ### Bitwise operations
- - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
+ - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf)
+ - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- [ ] Good intro:
From 67e4c080d1da12e097db1060a8dd2f41e9ad987e Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Thu, 2 Nov 2023 19:52:48 +0900
Subject: [PATCH 104/173] Japanese translation of tree and sorting section
---
translations/README-ja.md | 178 +++++++++++++++++++++-----------------
1 file changed, 98 insertions(+), 80 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 8067716de9..ef2403f33a 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -84,7 +84,7 @@
- [アルゴリズムの複雑さ/ Big-O / Asymptotic解析](#アルゴリズムの複雑さ-big-o--asymptotic解析)
- [データ構造](#データ構造)
- [その他の知識](#その他の知識)
-- [木](#木)
+- [ツリー](#ツリー)
- [ソート](#ソート)
- [グラフ](#グラフ)
- [さらに多くの知識](#さらに多くの知識)
@@ -623,38 +623,34 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] 絶対値:
- [絶対整数](http://bits.stephan-brumme.com/absInteger.html)
-## 木
-
-- ### 木 - メモと背景
- - [ ] [シリーズ:Core Trees(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/ovovP/core-trees)
- - [ ] [シリーズ:木々(動画)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- - 基本的な木の構築
- - トラバーサル
- - 操作アルゴリズム
- - BFS(幅優先検索)
- - [MIT(動画)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - メモ:
- - レベルオーダー(BFS、キューを使用)
- - 時間複雑度:O(n)
- - 空間の複雑さ:最適:O(1)、最悪:O(n / 2)= O(n)
- - DFS(深さ優先探索)
- - [MIT(動画)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
- - メモ:
- - 時間複雑度:O(n)
- - 空間の複雑さ:最良:O(log n) - 平均。木の高さ 最悪:O(n)
- - inorder(DFS:left、self、right)
- - postorder(DFS:left、right、self)
- - preorder(DFS:自己、左、右)
- - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+## ツリー
+
+- ### ツリー - メモと背景
+ - [ ] [ツリーの紹介 (動画)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - [ ] [ツリートラバーサル (動画)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
+ - [ ] [BFS (幅優先検索) および DFS (深さ優先検索) (動画)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - BFS のメモ:
+ - レベル順序 (BFS、キューを使用)
+ - 時間計算量: O(n)
+ - 空間の複雑さ: 最良: O(1)、最悪: O(n/2)=O(n)
+ - DFS のメモ:
+ - 時間計算量: O(n)
+ - 空間複雑さ: 最良: O(log n)
+ - 平均 最高の木の高さ: O(n)
+ best: O(log n)
+ - 平均 最低の木の高さ: O(n)
+ worst: O(n)
+ - 順序 (DFS: 左、自分、右)
+ - 事後順序 (DFS: 左、右、自己)
+ - 予約注文 (DFS: 自分、左、右)
+ - [ ] [【復習】4分でわかる幅優先検索(動画)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [【復習】4分で深さ優先検索(動画)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [【復習】11 分でわかるツリー トラバーサル (プレイリスト) (動画)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
- ### 二分探索木:BST
- - [ ] [二分探索木レビュー(動画)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [シリーズ(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- - シンボルテーブルから始まり、BSTアプリケーションを経由します
- - [ ] [はじめに(動画)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT(動画)](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - [ ] [二分探索木の復習 (動画)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [はじめに(動画)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [MIT (動画)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
- C / C ++:
- [ ] [二分探索木 - C / C ++での実装(動画)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- [ ] [BSTの実装 - スタックとヒープのメモリ割り当て(動画)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
@@ -667,15 +663,15 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] [二分探索木(動画)からノードを削除](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- [ ] [二分探索木(動画)のInorder Successor](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] 実装:
- - [ ] insert //木に値を挿入する
+ - [ ] [insert // ツリーに値を挿入します](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
- [ ] get_node_count //格納された値の数を取得する
- [ ] print_values //最小値から最大値まで木の値を出力します
- [ ] delete_tree
- [ ] is_in_tree //与えられた値が木に存在する場合はtrueを返します
- - [ ] get_height //ノードの高さを返します(単一ノードの高さは1です)
+ - [ ] [get_height // ノード単位の高さを返します (単一ノードの高さは 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
- [ ] get_min //木に格納されている最小値を返します
- [ ] get_max //木に格納されている最大値を返します
- - [ ] is_binary_search_tree
+ - [ ] [is_binary_search_tree](https://leetcode.com/problems/validate-binary-search-tree/)
- [ ] delete_value
- [ ] get_successor //指定された値の後に木の次に高い値を返し、存在しなければ-1を返します
@@ -683,7 +679,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- 木として可視化されますが、通常はストレージ内で線形です(配列、連結リスト)
- [ ] [ヒープ](https://en.wikipedia.org/wiki/Heap_(data_structure))
- [ ] [はじめに(動画)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- - [ ] [ナイーブな実装(video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
+ - [ ] [ナイーブな実装(動画)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
- [ ] [二分木(動画)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- [ ] [木の高さ備考(動画)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- [ ] [基本的な操作(動画)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
@@ -694,8 +690,8 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] [ヒープを作る(動画)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- [ ] [MIT:ヒープとヒープソート(動画)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [CS 61B講義24:優先度つきキュー(動画)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
- - [ ] [線形時間BuildHeap(max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
+ - [ ] [線形時間ビルドヒープ (最大ヒープ)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [【復習】13分でヒープ(プレイリスト)(動画)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] 最大ヒープを実装する:
- [ ] insert
- [ ] sift_up - 挿入に必要
@@ -706,14 +702,13 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] sift_down - extract_maxに必要です
- [ ] remove(x) - インデックスxのアイテムを削除する
- [ ] heapify - heap_sortに必要な要素の配列からヒープを作成する
- - [ ] heap_sort() - ソートされていない配列を取り出し、最大ヒープを使用してソート済みの配列に変換します
- - 注意:代わりにminヒープを使用すると、操作が節約されますが、必要な領域が2倍になります([in-place](https://ja.wikipedia.org/wiki/In-place%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0)では実行できません)。
+ - [ ] heap_sort() - ソートされていない配列を取得し、最大ヒープまたは最小ヒープを使用してその場でソートされた配列に変換します。
## ソート
-- [ ] note:
+- [ ] ノート:
- ソートを実装し、最良のケース/最悪のケース、それぞれの平均的な複雑さを知る:
- - バブルソートなし - ひどい - O(n ^ 2)、ただしn <= 16の場合を除く
+ - バブルソートなし - ひどいです - O(n^2) (n <= 16 の場合を除く)
- ソートアルゴリズムの安定性( "Quicksortは安定していますか?")
- [ソートアルゴリズムの安定性](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
- [ソートアルゴリズムの安定性](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
@@ -725,6 +720,26 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- ヒープソートについては、上記のヒープデータ構造を参照してください。ヒープソートは素晴らしいですが、安定していません。
+- [ ] [セッジウィック - マージソート (5動画)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. マージソート](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] [2. ボトムアップ マージソート](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. 並べ替えの複雑さ](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. コンパレーター](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] [5. 安定性](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] [セッジウィック - クイックソート (4動画)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. クイックソート](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] [2. セレクション](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. 重複キー](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. システムソート](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] カリフォルニア大学バークレー校:
+ - [ ] [CS 61B 講義 29: 並べ替え I (動画)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B 講義 30: 並べ替え II (動画)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B 講義 32: 分類 III (動画)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B レクチャー 33: 並べ替え V (動画)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] [CS 61B 2014-04-21: 基数ソート (動画)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
+
- [ ] [バブルソート(動画)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
- [ ] [バブルソートの分析(動画)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
- [ ] [挿入ソート、マージソート(動画)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
@@ -733,45 +748,48 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] [クイックソート(動画)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
- [ ] [選択ソート(動画)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
-- [ ] マージソートコード:
- - [ ] [出力配列(C)の使用](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
- - [ ] [出力配列(Python)の使用](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
- - [ ] [インプレース(C ++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
-- [ ] クイックソートコード:
- - [ ] [Implementation(C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
- - [ ] [実装(C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- - [ ] [実装(Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
-
-- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
- - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
- - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
- - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
- - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
- - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
- - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
-
-- [ ] 実装:
- - [ ] Mergesort:O(n log n)平均と最悪の場合
- - [ ] Quicksort O(n log n)平均の場合
- - 選択ソートと挿入ソートは両方ともO(n ^ 2)の平均と最悪の場合です
- - ヒープソートについては、上記のヒープデータ構造を参照してください。
-
-- [ ] 必須ではありませんが、私はそれらをお勧めしました:
- - [ ] [Sedgewick - 基数ソート(6 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [1. Javaの文字列](https://www.youtube.com/watch?v=zRzU-FWsjNU&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=6)
- - [ ] [2. キーインデックスのカウント](https://www.youtube.com/watch?v=CtgKYmXs62w&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=5)
- - [ ] [3. 最下位桁の最初の文字列の基数ソート](https://www.youtube.com/watch?v=2pGVq_BwPKs&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=4)
- - [ ] [4. 最も重要な数字の最初の文字列の基数ソート](https://www.youtube.com/watch?v=M3cYNY90R6c&index=3&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [5. 基数ソートの3つの方法](https://www.youtube.com/watch?v=YVl58kfE6i8&index=2&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [6。接尾辞配列](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1)
- - [ ] [基数ソート](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- - [ ] [基数ソート(動画)](https://www.youtube.com/watch?v=xhr26ia4k38)
- - [ ] [基数ソート、ソート(線形時間指定の制約)(動画)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [ランダム化:行列乗算、クイックソート、Freivaldsのアルゴリズム(動画)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [線形時間で並べ替える(動画)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
-
-まとめとして、ここには[15ソートアルゴリズム](https://www.youtube.com/watch?v=kPRA0W1kECg)の視覚的表現があります。
-このテーマの詳細が必要な場合は、[いくつかの科目の追加の詳細]の[ソート]の項を参照してください(#additional-detail-on-some-subjects)
+- [ ] ソート コードを結合:
+ - [ ] [出力配列 (C) の使用](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+ - [ ] [出力配列の使用 (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+ - [ ] [インプレース (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+- [ ] クイックソートコード:
+ - [ ] [実装 (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+ - [ ] [実装 (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+ - [ ] [実装 (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+
+- [ ] [【復習】18分で分かるソート(プレイリスト](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] [4 分で簡単ソート (動画)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [4 分でヒープソート (動画)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [3 分で並べ替えをマージする (動画)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [2 分でわかるバブルソート (動画)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [3分でわかる選択ソート(動画)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [2分で挿入ソート(動画)](https://youtu.be/JU767SDMDvA)
+
+
+- [ ] 実装
+ - [ ] マージソート: O(n log n) 平均および最悪の場合
+ - [ ] クイックソート O(n log n) の平均ケース
+ - 選択ソートと挿入ソートは両方とも O(n^2) 平均および最悪の場合です
+ - ヒープソートについては、上記のヒープ データ構造を参照してください。
+
+- [ ] 必須ではありませんが、お勧めします:
+ - [ ] [Sedgewick - 基数ソート (6動画)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] [1. Java の文字列](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] [2. キーのインデックス付きカウント](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
+ - [ ] [3. 最下位桁の最初の文字列基数ソート](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] [4. 最上位桁の最初の文字列基数ソート](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] [5. 3 ウェイ基数クイックソート](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
+ - [ ] [6. サフィックス配列](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [基数ソート](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] [基数ソート (動画)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] [基数ソート、カウンティング ソート (線形時間指定制約) (動画)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [ランダム化: 行列乗算、クイックソート、フライヴァルドのアルゴリズム (動画)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [線形時間でのソート (動画)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+概要として、[15のソートアルゴリズム](https://www.youtube.com/watch?v=kPRA0W1kECg) を視覚的に表したものを次に示します。
+この主題についてさらに詳細が必要な場合は、[一部の主題に関する追加の詳細](#一部の主題に関する追加の詳細) の「並べ替え」セクションを参照してください。
+
## グラフ
From 733fdd6632bcd97f93f3f3f05933538ff7cb109c Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Sat, 4 Nov 2023 02:23:44 +0900
Subject: [PATCH 105/173] end of Japanese translation of topic of study
---
translations/README-ja.md | 769 +++++++++++++++-----------------------
1 file changed, 299 insertions(+), 470 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index ef2403f33a..386d907d75 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -81,27 +81,51 @@
### 研究のテーマ
-- [アルゴリズムの複雑さ/ Big-O / Asymptotic解析](#アルゴリズムの複雑さ-big-o--asymptotic解析)
+- [アルゴリズムの複雑さ / Big-O / 漸近分析](#アルゴリズムの複雑さ/Big-O/漸近分析)
- [データ構造](#データ構造)
+ - [配列](#配列)
+ - [連結リスト](#連結リスト)
+ - [スタック](#スタック)
+ - [キュー](#キュー)
+ - [ハッシュテーブル](#ハッシュテーブル)
- [その他の知識](#その他の知識)
+ - [二分探索](#二分探索)
+ - [ビット演算](#ビット演算)
- [ツリー](#ツリー)
+ - [ツリーとは](#ツリーとは)
+ - [二分探索木:BST](#二分探索木:BST)
+ - [ヒープ/優先度つきキュー/二分ヒープ](#ヒープ/優先度つきキュー/二分ヒープ)
+ - バランスの取れた検索ツリー (詳細ではなく一般的な概念)
+ - トラバーサル: プレオーダー、インオーダー、 postorder、BFS、DFS
- [ソート](#ソート)
+ - 選択
+ - 挿入
+ - ヒープソート
+ - クイック
+ ソート - マージソート
- [グラフ](#グラフ)
+ - 有向
+ - 無向
+ - 隣接行列
+ - 隣接リスト
+ - 走査: BFS、DFS
- [さらに多くの知識](#さらに多くの知識)
-- [システム設計、スケーラビリティ、データ処理](#システム設計スケーラビリティデータ処理)
+ - [再帰](#再帰)
+ - [動的プログラミング](#動的プログラミング)
+ - [デザインパターン](#デザインパターン)
+ - [組み合わせ論(nからkを選択)と確率](#組み合わせ論(nからkを選択)と確率)
+ - [NP、NP-完全/近似アルゴリズム](#NP、NP-完全/近似アルゴリズム)
+ - [コンピューターがプログラムを処理する仕組み](#コンピューターがプログラムを処理する仕組み)
+ - [キャッシュ](#キャッシュ)
+ - [プロセスとスレッド](#プロセスとスレッド)
+ - [テスト](#テスト)
+ - [文字列の検索と操作](#文字列の検索と操作)
+ - [トライ](#トライ)
+ - [浮動小数点数](#浮動小数点数)
+ - [Unicode](#unicode)
+ - [エンディアン](#エンディアン)
+ - [ネットワーキング](#ネットワーキング)
- [最終レビュー](#最終レビュー)
-- [コーディングの質問練習](#コーディングの質問練習)
-- [コード演習/挑戦](#コード演習挑戦)
-- [面接に近づいたら](#面接に近づいたら)
-- [あなたの履歴書](#あなたの履歴書)
-- [面接が来たときに考えてください](#面接が来たときに考えてください)
-- [面接官に質問があります](#面接官に質問があります)
-- [一度あなたは仕事を得た](#一度あなたは仕事を得た)
-- [その他の書籍](#その他の書籍)
-- [その他の学習](#その他の学習)
-- [追加科目の詳細](#追加科目の詳細)
-- [ビデオシリーズ](#ビデオシリーズ)
-- [コンピュータサイエンスコース](#コンピュータサイエンスコース)
## なぜこれを使用するのか
@@ -140,11 +164,11 @@
1. **_GitHub リポジトリ:_** `https://github.com/jwasham/coding-interview-university` をフォーク ボタンをクリックしてフォークします。
- 
+ 
1. ローカル リポジトリにクローンを作成します。
- ```
+ ```bash
git clone https://github.com//coding-interview-university.git
cd coding-interview-university
git remote add upstream https://github.com/jwasham/coding-interview-university.git
@@ -153,7 +177,7 @@
1. 変更を完了したら、すべてのボックスに X を付けます。
- ```
+ ```bash
git commit -am "Marked personal progress"
git pull upstream main # 元のレポからの変更でフォークを最新に保つ
@@ -378,7 +402,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## コーディングに関する質問の練習
- なぜこれがここにあるのでしょうか? 面接する準備ができていません。
+ なぜこれがここにあるのでしょうか? 面接する準備ができていません。
[その後、戻ってこれを読んでください。](#学習中にコーディング面接の質問をする)
@@ -441,7 +465,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
ただし、学習中に上記のコーディング問題に取り組むことを忘れないでください。
-## アルゴリズムの複雑さ/ Big-O / Asymptotic解析
+## アルゴリズムの複雑さ/Big-O/漸近分析
- ここでは何も実装する必要はありません。ビデオを見てメモを取るだけです。わーい!
- ここにはたくさんのビデオがあります。理解できるまで十分に見てください。いつでも戻ってレビューすることができます。
@@ -454,8 +478,8 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] [カリフォルニア大学バークレー校ビッグオー (動画)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
- [ ] [償却分析 (動画)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
- [ ] TopCoder (漸化式とマスター定理を含む):
- - [計算の複雑さ: セクション 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- - [計算の複雑さ: セクション 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
+ - [計算の複雑さ: セクション 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [計算の複雑さ: セクション 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [チートシート](http://bigocheatsheet.com/)
- [ ] [【復習】5分でわかるBig-O記譜法(動画)](https://youtu.be/__vX2sjlpXU)
@@ -467,37 +491,37 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## データ構造
- ### 配列
- - [ ] 配列について:
- - [アレイ CS50 ハーバード大学](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
- - [配列 (動画)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (動画) (15 分 32 秒から視聴開始)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- - [動的配列 (動画)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- - [ギザギザ配列 (動画)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - [ ] ベクトルを実装します (自動サイズ変更を備えた可変配列):
- - [ ] 配列とポインターを使用したコーディングと、インデックスを使用する代わりにインデックスにジャンプするポインターの計算を練習します。
- - [ ] メモリが割り当てられた新しい生データ配列
- - 内部で int 配列を割り当てることができますが、その機能は使用できません
- - 16 から開始するか、開始番号がそれより大きい場合は、2 のべき乗 - 16、32、64、128 を使用します。
- - [ ] size() - アイテムの数
- - [ ] Capacity() - 保持できるアイテムの数
- - [ ] is_empty()
- - [ ] at(index) - 指定されたインデックスにある項目を返します。インデックスが範囲外の場合は爆発します。
- - [ ] プッシュ(アイテム)
- - [ ] insert(index, item) - インデックスに項目を挿入し、そのインデックスの値と末尾の要素を右にシフトします
- - [ ] prepend(item) - インデックス 0 の上に挿入を使用できます
- - [ ] Pop() - 末尾から削除し、値を返します
- - [ ] delete(index) - インデックスにある項目を削除し、末尾の要素をすべて左にシフトします
- - [ ]remove(item) - 値を検索し、それを保持するインデックスを削除します (複数の場所にある場合でも)
- - [ ] find(item) - 値を検索し、その値を持つ最初のインデックスを返します。見つからない場合は -1 を返します。
- - [ ]size(new_capacity) // プライベート関数
- - 容量に達したら、サイズを 2 倍に変更します
- - アイテムをポップするとき、サイズが容量の 1/4 の場合、サイズを半分に変更します
- - [ ] 時間
- - O(1) は、最後に追加/削除 (より多くの領域の割り当てのために償却)、インデックス付け、または更新を行います。
- - O(n) は他の場所に挿入/削除します
- - [ ] 空間
- - メモリ内で連続しているため、近接性によりパフォーマンスが向上します
- - 必要なスペース = (配列の容量、>= n) * 項目のサイズ、ただし 2n であっても O(n)
+ - [ ] 配列について:
+ - [アレイ CS50 ハーバード大学](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [配列 (動画)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (動画) (15 分 32 秒から視聴開始)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [動的配列 (動画)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [ギザギザ配列 (動画)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] ベクトルを実装します (自動サイズ変更を備えた可変配列):
+ - [ ] 配列とポインターを使用したコーディングと、インデックスを使用する代わりにインデックスにジャンプするポインターの計算を練習します。
+ - [ ] メモリが割り当てられた新しい生データ配列
+ - 内部で int 配列を割り当てることができますが、その機能は使用できません
+ - 16 から開始するか、開始番号がそれより大きい場合は、2 のべき乗 - 16、32、64、128 を使用します。
+ - [ ] size() - アイテムの数
+ - [ ] Capacity() - 保持できるアイテムの数
+ - [ ] is_empty()
+ - [ ] at(index) - 指定されたインデックスにある項目を返します。インデックスが範囲外の場合は爆発します。
+ - [ ] プッシュ(アイテム)
+ - [ ] insert(index, item) - インデックスに項目を挿入し、そのインデックスの値と末尾の要素を右にシフトします
+ - [ ] prepend(item) - インデックス 0 の上に挿入を使用できます
+ - [ ] Pop() - 末尾から削除し、値を返します
+ - [ ] delete(index) - インデックスにある項目を削除し、末尾の要素をすべて左にシフトします
+ - [ ]remove(item) - 値を検索し、それを保持するインデックスを削除します (複数の場所にある場合でも)
+ - [ ] find(item) - 値を検索し、その値を持つ最初のインデックスを返します。見つからない場合は -1 を返します。
+ - [ ]size(new_capacity) // プライベート関数
+ - 容量に達したら、サイズを 2 倍に変更します
+ - アイテムをポップするとき、サイズが容量の 1/4 の場合、サイズを半分に変更します
+ - [ ] 時間
+ - O(1) は、最後に追加/削除 (より多くの領域の割り当てのために償却)、インデックス付け、または更新を行います。
+ - O(n) は他の場所に挿入/削除します
+ - [ ] 空間
+ - メモリ内で連続しているため、近接性によりパフォーマンスが向上します
+ - 必要なスペース = (配列の容量、>= n) * 項目のサイズ、ただし 2n であっても O(n)
- ### 連結リスト
- [ ] 説明:
@@ -625,24 +649,24 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## ツリー
-- ### ツリー - メモと背景
+- ### ツリーとは
- [ ] [ツリーの紹介 (動画)](https://www.coursera.org/lecture/data-structures/trees-95qda)
- [ ] [ツリートラバーサル (動画)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
- [ ] [BFS (幅優先検索) および DFS (深さ優先検索) (動画)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- BFS のメモ:
- - レベル順序 (BFS、キューを使用)
- - 時間計算量: O(n)
- - 空間の複雑さ: 最良: O(1)、最悪: O(n/2)=O(n)
+ - レベル順序 (BFS、キューを使用)
+ - 時間計算量: O(n)
+ - 空間の複雑さ: 最良: O(1)、最悪: O(n/2)=O(n)
- DFS のメモ:
- - 時間計算量: O(n)
- - 空間複雑さ: 最良: O(log n)
- - 平均 最高の木の高さ: O(n)
- best: O(log n)
- - 平均 最低の木の高さ: O(n)
- worst: O(n)
- - 順序 (DFS: 左、自分、右)
- - 事後順序 (DFS: 左、右、自己)
- - 予約注文 (DFS: 自分、左、右)
+ - 時間計算量: O(n)
+ - 空間複雑さ: 最良: O(log n)
+ - 平均 最高の木の高さ: O(n)
+ best: O(log n)
+ - 平均 最低の木の高さ: O(n)
+ worst: O(n)
+ - 順序 (DFS: 左、自分、右)
+ - 事後順序 (DFS: 左、右、自己)
+ - 予約注文 (DFS: 自分、左、右)
- [ ] [【復習】4分でわかる幅優先検索(動画)](https://youtu.be/HZ5YTanv5QE)
- [ ] [【復習】4分で深さ優先検索(動画)](https://youtu.be/Urx87-NMm6c)
- [ ] [【復習】11 分でわかるツリー トラバーサル (プレイリスト) (動画)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
@@ -793,55 +817,57 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## グラフ
-グラフはコンピュータサイエンスの多くの問題を表現するために使用することができるので、このセクションは木やソートのように長いです。
+グラフはコンピューター サイエンスの多くの問題を表すために使用できるため、このセクションはツリーや並べ替えと同様に長くなります。
-- メモ:
- - メモリにグラフを表示するには4つの基本的な方法があります:
+- ノート:
+ - メモリ内でグラフを表現するには 4 つの基本的な方法があります。
- オブジェクトとポインタ
- 隣接行列
- 隣接リスト
- 隣接マップ
- - それぞれの表現とその長所と短所を熟知してください
- - BFSとDFS - 計算の複雑さとそのトレードオフ、そしてそれらを実際のコードに実装する方法を知っている
- - 質問が表示されたら、まずグラフベースのソリューションを探し、それがなければ進んでください。
-
-- [ ] Skiena Lectures - 素晴らしいイントロ:
- - [ ] [CSE373 2012 - 講義11 - グラフデータ構造(動画)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - 講義12 - 幅優先検索(動画)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - 講義13 - グラフアルゴリズム(動画)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - 講義14 - グラフアルゴリズム(1)(動画)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講義15 - グラフアルゴリズム(2)(動画)(動画)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講義16 - グラフアルゴリズム(3)(動画)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
-
-- [ ] グラフ(レビューなど):
-
- - [ ] [6.006単一始点最短経路問題(動画)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 ダイクストラ(動画)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 ベルマン-フォード法(動画)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
- - [ ] [6.006 ダイクストラ法のスピードアップ(動画)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- - [ ] [Aduni:グラフアルゴリズムI - トポロジカルソート、最小スパニング木、プリムのアルゴリズム - 講演6(動画)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [Aduni:グラフアルゴリズムII - DFS、BFS、クラスカル法のアルゴリズム、連合探索データ構造 - 講義7(動画)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7 )
- - [Aduni:グラフアルゴリズムIII:最短経路 - レクチャー8(動画)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- - [ ] [Aduni:グラフアルゴリズムIV:幾何学アルゴリズムの紹介 - 第9講(動画)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] [CS 61B 2014(58:09から開始)(動画)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
- - [ ] [CS 61B 2014:加重グラフ(動画)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- - [ ] [欲張りアルゴリズム:最小スパニング木(動画)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [強固に接続されたコサラジュのアルゴリズムグラフアルゴリズム(動画)](https://www.youtube.com/watch?v=RpgcYiky7uw)
- - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
- - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
+ - それぞれの表現とその長所と短所をよく理解する
+ - BFS と DFS - 計算の複雑さ、トレードオフ、および実際のコードでの実装方法を理解しています。
+ - 質問されたら、まずグラフベースの解決策を探し、見つからない場合は次に進みます。
+
+- [ ] MIT(ビデオ):
+ - [ ] [幅優先検索](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] [深さ優先検索](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
+
+- [ ] スキエナ講義 - 素晴らしい導入部:
+ - [ ] [CSE373 2020 - レクチャー 10 - グラフ データ構造 (動画)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] [CSE373 2020 - レクチャー 11 - グラフ トラバーサル (動画)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] [CSE373 2020 - レクチャー 12 - 深さ優先検索 (動画)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] [CSE373 2020 - レクチャー 13 - 最小スパニング ツリー (動画)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] [CSE373 2020 - レクチャー 14 - 最小スパニング ツリー (続き) (動画)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] [CSE373 2020 - レクチャー 15 - グラフ アルゴリズム (続き 2) (動画)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
+
+- [ ] グラフ (レビューなど):
+ - [ ] [6.006 単一ソース最短パス問題 (動画)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [6.006 ダイクストラ (動画)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 ベルマン-フォード (動画)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 ディクストラの高速化 (動画)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [Aduni: グラフ アルゴリズム I - トポロジカル ソート、最小スパニング ツリー、プリムのアルゴリズム - 講義 6 (動画)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [Aduni: グラフ アルゴリズム II - DFS、BFS、クラスカルのアルゴリズム、Union Find データ構造 - 講義 7 (動画)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7 )
+ - [ ] [Aduni: グラフ アルゴリズム III: 最短パス - レクチャー 8 (動画)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [Aduni: グラフ Alg. IV: 幾何学的アルゴリズムの概要 - レクチャー 9 (動画)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] [CS 61B 2014: 加重グラフ (動画)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] [貪欲なアルゴリズム: 最小スパニング ツリー (動画)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [強結合コンポーネント コサラジュのアルゴリズム グラフ アルゴリズム (動画)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[復習] 16 分でわかる最短経路アルゴリズム (プレイリスト) (動画)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[復習] 4 分でわかる最小スパニング ツリー (プレイリスト) (動画)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
- フルcourseraコース:
- [ ] [グラフのアルゴリズム(動画)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
-- 私は実装します:
- - [ ] 隣接リストを持つDFS(再帰的)
- - [ ] 隣接リストを持つDFS(スタックで反復)
- - [ ] 隣接行列を持つDFS(再帰的)
- - [ ] 隣接行列を持つDFS(スタックで反復)
- - [ ] 隣接リストを持つBFS
- - [ ] 隣接行列を持つBFS
- - [ ] 単一始点の最短経路(ダイクストラ)
- - [ ] 最小スパニング木
+- 次のことを実装します。
+ - [ ] 隣接リストを含む DFS (再帰的)
+ - [ ] 隣接リストを使用した DFS (スタックによる反復)
+ - [ ] 隣接行列を使用した DFS (再帰的)
+ - [ ] 隣接行列を使用した DFS (スタックによる反復)
+ - [ ] 隣接リストを含む BFS
+ - [ ] 隣接マトリックスを使用した BFS
+ - [ ] 単一ソースの最短パス (ダイクストラ)
+ - [ ] 最小スパニングツリー
- DFSベースのアルゴリズム(上記のAduniの動画を参照):
- [ ] サイクルをチェックする(トポロジカルソートに必要.開始前にサイクルをチェックする)
- [ ] トポロジカルソート
@@ -849,36 +875,36 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] 強く接続されたコンポーネントを一覧表示する
- [ ] 二部グラフをチェックする
-Skienaの本(下記の書籍の節を参照)と面接の書籍
-
## さらに多くの知識
- ### 再帰
- - [ ] 再帰とバックトラックに関するスタンフォードの講義:
- - [ ] [講義8 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- - [ ] [講義9 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- - [ ] [講義10 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- - [ ] [講義11 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- - それを使用するのが適切なとき
- - 尾の再帰はどのように優れていないのですか?
- - [ ] [テール再帰とは何かなぜそれが悪いのですか?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- - [ ] [テール再帰(動画)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] 再帰とバックトラッキングに関するスタンフォードの講義:
+ - [ ] [講義 8 | プログラミングの抽象化 (動画)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] [講義 9 | プログラミングの抽象化 (動画)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] [講義 10 | プログラミングの抽象化 (動画)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] [講義 11 | プログラミングの抽象化 (動画)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - いつ使用するのが適切ですか?
+ - 末尾再帰をしない場合と比べて、どのような点が優れているのでしょうか?
+ - [ ] [末尾再帰とは何ですか、なぜそれほど悪いのですか?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
+ - [ ] [末尾再帰 (動画)](https://www.coursera.org/lecture/programming-langages/tail-recursion-YZic1)
+ - [ ] [再帰的問題を解決するための 5 つの簡単なステップ (動画)](https://youtu.be/ngCos392W4w)
+ バックトラッキング ブループリント: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-回文分割)) [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
- ### 動的プログラミング
- - 面接で動的プログラミングの問題が見られることはおそらくないでしょうが、問題が動的プログラミングの候補であると認識できることは価値があります。
- - この問題はかなり難しいかもしれません。なぜなら、それぞれのDP可溶性問題は再帰関係として定義されなければならず、それを思い付くのは難しいかもしれないからです。
- - DPの問題の多くの例を見て、あなたが関連するパターンをしっかりと理解するまでお勧めします。
+ - おそらく面接では動的プログラミングの問題は見られないでしょうが、問題を認識できるようにしておくことは価値があります。
+ 動的計画法の候補としての問題。
+ - それぞれの DP 解決問題は再帰関係として定義する必要があり、それを思いつくのは難しい場合があるため、このテーマはかなり難しい場合があります。
+ - 関連するパターンをしっかりと理解するまで、DP 問題の多くの例を検討することをお勧めします。
- [ ] 動画:
- - Skienaのビデオは、時には見ることができないほど小さすぎるホワイトボードを使用することがあるため、フォローするのが難しい場合があります
- - [ ] [Skiena:CSE373 2012 - 講義19 - 動的プログラミング入門(動画)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena:CSE373 2012 - 講義20 - 編集距離(動画)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena:CSE373 2012 - 講義21 - 動的プログラミング例(動画)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena:CSE373 2012 - 講義22 - 動的プログラミングのアプリケーション(動画)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
- - [ ] [Simonson:動的プログラミング0(59:18から開始)(動画)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- - [ ] [Simonson:動的プログラミングI - 講義11(動画)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Simonson:動的プログラミングII - 講演12(動画)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
- - [ ] 個々のDP問題のリスト(それぞれ短い):
- [動的プログラミング(動画)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] [Skiena: CSE373 2020 - レクチャー 19 - 動的プログラミング入門 (動画)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [Skiena: CSE373 2020 - レクチャー 20 - 距離の編集 (動画)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [Skiena: CSE373 2020 - レクチャー 20 - 距離の編集 (続き) (動画)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [Skiena: CSE373 2020 - レクチャー 21 - 動的プログラミング (動画)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - レクチャー 22 - 動的プログラミングとレビュー (動画)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
+ - [ ] [Simonson: 動的プログラミング 0 (59:18 から開始) (動画)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [Simonson: 動的プログラミング I - 講義 11 (動画)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [サイモンソン: 動的プログラミング II - 講義 12 (動画)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] 個々の DP 問題のリスト (それぞれ短い): [ダイナミック プログラミング (動画)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
- [ ] イェール講義ノート:
- [ ] [動的プログラミング](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicプログラミング)
- [ ] Coursera:
@@ -886,33 +912,12 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] [動的プログラミングのアルゴリズム(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- [ ] [DPアルゴリズムの説明(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
- [ ] [DPアルゴリズムの実行時間(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- - [ ] [DP Vs 再帰的実装(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] [DPと再帰的実装(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- [ ] [グローバル対配列アライメント(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- [ ] [ローカル対配列アライメント(動画)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
-- ### オブジェクト指向プログラミング
- - [ ] [オプション:UML 2.0シリーズ(動画)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- - [ ] オブジェクト指向ソフトウェアエンジニアリング:UMLとJavaを使ったソフトウェア開発(21ビデオ):
- - OOとOOの設計方法を十分に理解している場合は、これをスキップできます。
- - [OOSE:UMLとJavaを使用したソフトウェア開発](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] SOLID OOP原則:
- - [ ] [Bob Martin SOLIDオブジェクト指向とアジャイルデザインの原則(動画)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- - [ ] [SOLID原則(動画)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- - [ ] S - [単一責任の原則](http://www.oodesign.com/single-responsibility-principle.html)| [各オブジェクトへの単一責任](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- - [もっと味](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - [ ] O - [オープン/クローズの原則l](http://www.oodesign.com/open-close-principle.html)| [プロダクションレベルではオブジェクトは拡張の準備ができていますが、変更はできません](https://en.wikipedia.org/wiki/Open/closed_principle)
- - [もっと風味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- - [ ] L - [リスコフの置換原則](http://www.oodesign.com/liskov-s-substitution-principle.html)| [基本クラスと派生クラスは `IS A`プリンシパルに従います](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- - [もっと風味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=ja)
- - [ ] I - [インタフェース分離の原則](http://www.oodesign.com/interface-segregation-principle.html)|クライアントは、使用しないインタフェースを強制的に実装するべきではありません
- - [インタフェース分離の原則5分(動画)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- - [もっと味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=ja)
- - [ ] D - [依存性逆転の原則](http://www.oodesign.com/dependency-inversion-principle.html)|オブジェクトの構成における依存関係を減らす。
- - [なぜ依存関係の逆転の原則とそれが重要なのか](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
- - [もっと味](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=ja)
-
- ### デザインパターン
- - [ ] [クイックUMLレビュー(動画)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] [UMLの簡単なレビュー(動画)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- [ ] これらのパターンを学ぶ:
- [ ] Strategy(戦略)
- [ ] Singleton(単一要素)
@@ -931,61 +936,58 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- [ ] Iterator(イテレータ)
- [ ] Composite(合成)
- [ ] Flyweight(フライ級)
- - [ ] [第6章(パート1) - パターン(動画)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [第6章(パート2) - 抽象化 - 発生、一般階層、プレーヤーロール、シングルトン、オブザーバー、代表団(動画)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [第6章(パート3) - アダプタ、ファサード、変更不可、読み取り専用インターフェイス、プロキシ(動画)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [ビデオシリーズ(27ビデオ)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [ヘッドファーストデザインパターン](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- - 正式な本は「デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素」であることは分かっていますが、ヘッドファーストはOOの初心者には最適です。
- - [ ] [参考:開発者のための101のデザインパターンとヒント](https://sourcemaking.com/design-patterns-and-tips)
- - [ ] [人間のデザインパターン](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
-
-
-- ### 組み合わせ(nCk)と確率
- - [ ] [数学のスキル:階乗、順列、組み合わせの見つけ方(選択)(動画)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- - [ ] [学校を作る:確率(動画)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- - [ ] [学校を作る:確率とマルコフ連鎖(動画)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- - [ ] Khan Academy:
- - コースのレイアウト:
- - [ ] [基本理論的確率](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
- - ちょうどビデオ - 41(それぞれ単純で、それぞれ短いです):
- - [ ] [確率の説明(動画)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+ - [ ] [一連の動画 (27 本)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
+ - [ ] [書籍: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - 正規の本は「デザインパターン: 再利用可能なオブジェクト指向ソフトウェアの要素」であることは知っていますが、「Head First」は OO の初心者に最適です。
+ - [便利なリファレンス: 開発者のための 101 のデザインパターンとヒント](https://sourcemaking.com/design-patterns-and-tips)
+
+- ### 組み合わせ論(nからkを選択)と確率
+ - [ ] [数学スキル: 階乗、順列、組み合わせの求め方 (選択) (動画)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [Make School: 確率 (動画)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] [Make School: さらなる確率とマルコフ連鎖 (動画)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] カーンアカデミー:
+ - コースレイアウト:
+ - [ ] [基本理論確率](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
+ - ビデオのみ - 41 (それぞれがシンプルで短い):
+ - [ ] [確率の説明 (動画)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+
- ### NP、NP-完全/近似アルゴリズム
- - 巡回セールスマン問題やナップザック問題など、NP完全問題の最も有名なクラスについて知りましょう。
- そうすれば面接官がこれらについて偽装して尋ねるとき、それらを認識することができます。
- - NP完全の意味を知る。
- - [ ] [計算上の複雑さ(動画)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- - [ ] Simonson:
- - [ ] [貪欲アルゴリズム。 II&NP完全性へのイントロ(動画)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- - [ ] [NP完全性II&リダクション(動画)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP完全性III(動画)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP完全性IV(動画)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- - [ ] スキナ:
- - [ ] [CSE373 2012 - 講義23 - NP完全性の紹介(動画)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - 講義24 - NP完全性の証明(動画)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - 講演25 - NP完全性への挑戦(動画)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [複雑さ:P、NP、NP完全性、削減(動画)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- - [ ] [複雑さ:近似アルゴリズム(動画)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- - [ ] [複雑さ:固定パラメータアルゴリズム(動画)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - ピーター・ノヴィグ(Peter Norvig)は、セールスマンの問題を解決するための最適なソリューションについて説明しています。
- - [JupyterNotebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- - あなたが持っているなら、CLRSの1048 - 1140ページ。
-
-- ### コンピューターはどのようにプログラムを実行するか
- - [ ] [CPU がどのようにプログラムを実行するか (動画)](https://www.youtube.com/watch?v=XM4lGflQFvA)
- - [ ] [コンピューターがどのように計算するか - ALU (動画)](https://youtu.be/1I5ZMmrOfnA)
- - [ ] [レジスタと RAM (動画)](https://youtu.be/fpnE6UAfbtU)
- - [ ] [中央処理装置 (CPU) (動画)](https://youtu.be/FZGugFqdr60)
- - [ ] [命令とプログラム (動画)](https://youtu.be/zltgXvg6r3k)
+ - 巡回セールスマンやナップザック問題など、NP 完全問題の最も有名なクラスについて知っています。
+ インタビュアーが変装して質問したときに、それを見分けることができます。
+ - NP 完全の意味を理解する。
+ - [ ] [計算の複雑さ (動画)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] サイモンソン:
+ - [ ] [貪欲なアルグス。II および NP 完全性の紹介 (動画)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [NP 完全性 II と削減 (動画)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP 完全性 III (動画)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [NP 完全性 IV (動画)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ]スキエナ:
+ - [ ] [CSE373 2020 - レクチャー 23 - NP の完全性 (動画)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23)
+ - [ ] [CSE373 2020 - レクチャー 24 - 満足度 (動画)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24)
+ - [ ] [CSE373 2020 - レクチャー 25 - NP 完全性の詳細(動画)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25)
+ - [ ] [CSE373 2020 - レクチャー 26 - NP 完全性チャレンジ (動画)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
+ - [ ] [複雑さ: P、NP、NP 完全性、削減 (動画)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] [複雑さ: 近似アルゴリズム (ビ動画デオ)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] [複雑さ: 固定パラメーター アルゴリズム (動画)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - Peter Norvig は、巡回セールスマンの問題に対する最適に近い解決策について説明します。
+ - [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
+ - CLRS のページ 1048 ~ 1140 (お持ちの場合)。
+
+- ### コンピューターがプログラムを処理する仕組み
+ - [ ] [CPU がプログラムを実行する仕組み (動画)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [コンピューターの計算方法 - ALU (動画)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [レジスタとRAM (動画)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [中央処理装置 (CPU) (動画)](https://youtu.be/FZGugFqdr60)
+ - [ ] [説明書とプログラム (動画)](https://youtu.be/zltgXvg6r3k)
- ### キャッシュ
- - [ ] LRUキャッシュ:
- - [ ] [LRUキャッシュの魔法(Google Devの100日間)(動画)](https://www.youtube.com/watch?v=R5ON3iwx78M)
- - [ ] [LRU(動画)の実装](https://www.youtube.com/watch?v=bq6N7Ym81iI)
- - [ ] [LeetCode - 146 LRU Cache(C ++)(video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
- - [ ] CPUキャッシュ:
- - [ ] [MIT 6.004 L15:メモリ階層(動画)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- - [ ] [MIT 6.004 L16:キャッシュの問題(動画)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+ - [ ] LRU キャッシュ:
+ - [ ] [LRU キャッシュの魔法 (Google 開発の 100 日間) (動画)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] [LRU の実装 (動画)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] [LeetCode - 146 LRU キャッシュ (C++) (動画)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
+ - [ ] CPU キャッシュ:
+ - [ ] [MIT 6.004 L15: メモリ階層 (動画)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] [MIT 6.004 L16: キャッシュの問題 (動画)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
- ### プロセスとスレッド
- [ ] コンピュータサイエンス162 - オペレーティングシステム(25ビデオ):
@@ -1001,291 +1003,118 @@ Skienaの本(下記の書籍の節を参照)と面接の書籍
- ミューテックス
- セマフォ
- モニタ(同期)
- - 彼らの動作の仕方
+ - 動作の仕方
- デッドロック
- ライブロック
- - CPUの動作、割り込み、コンテキストの切り替え
- - マルチコアプロセッサを使用した最新の並行構成
- - [ページング、セグメンテーション、仮想メモリ(動画)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- - [割り込み(動画)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
- - [スケジューリング(動画)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
- - プロセスリソースのニーズ(メモリ:コード、静的ストレージ、スタック、ヒープ、ファイル記述子、I/O)
- - スレッドリソースの必要性(同じプロセス内の他のスレッドとの上の(マイナススタック)の共有、それぞれが独自のpc、スタックカウンタ、レジスタ、およびスタックを持つ)
- - フォークは、新しいプロセスがメモリに書き込むまで、実際には書き込み時にコピー(読み取り専用)され、次に完全なコピーを行います。
- - コンテキストスイッチ
- - オペレーティングシステムとその基盤となるハードウェアによってコンテキスト切り替えが開始される仕組み
- - [ ] [C++のスレッド(シリーズ - 10ビデオ)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- - [ ] Pythonでの並行性(動画):
- - [ ] [スレッドに関する短いシリーズ](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- - [ ] [Pythonスレッド](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- - [ ] [Python GIL(2010)について理解する](https://www.youtube.com/watch?v=Obt-vMVdM8s)
- - [参考文献](http://www.dabeaz.com/GIL)
- - [ ] [David Beazley - 地上からのPython並行処理:LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
- - [ ] [基調講演David Beazley - 興味のあるトピック(Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
- - [ ] [Pythonのミューテックス](https://www.youtube.com/watch?v=0zaPs8OtyKY)
-
-- ### 論文
- - 完全に理解した上ですべてを読むことは、あなたが持っているより多くの時間がかかるでしょう。私は論文とそのセクションを選択することをお勧めします。
- - [古典的な論文を愛する?](https://www.cs.cmu.edu/~crary/819-f09/)
- - [ ] [1978:順次プロセスの通信](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [Goで実装](https://godoc.org/github.com/thomas11/csp)
- - [ ] [2003:The Googleファイルシステム](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - 2012年に巨像に置き換えられました
- - [ ] [2004:MapReduce:大規模クラスタでのデータ処理の簡略化](http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - 主にCloud Dataflowに置き換えられましたか?
- - [ ] [2006:Bigtable:構造化データ用分散ストレージシステム](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
- - [Google BigQueryの内部を見る](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
- - [ ] [2006:疎結合分散システムのChubby Lockサービス](https://research.google.com/archive/chubby-osdi06.pdf)
- - [ ] [2007:Dynamo:Amazonの高可用性 key valueストア](https://www.akkadia.org/drepper/cpumemory.pdf)
- - Dynamo紙がNoSQL革命を開始
- - [すべてのプログラマーがメモリについて知っておくべきこと(非常に長く、著者はいくつかのセクションのスキップを奨励する)](https://www.akkadia.org/drepper/cpumemory.pdf)
- - [ ] [2010:Dapper、大規模分散システム追跡基盤](https://research.google.com/pubs/archive/36356.pdf)
- - [ ] [2010:Dremel:Web-Scaleデータセットのインタラクティブ解析](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
- - [ ] [2012:Googleの巨像](https://www.wired.com/2012/07/google-colossus/)
- - 論文がありません
- - [ ] 2012:AddressSanitizer:高速アドレス整合性チェッカー:
- - [論文](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [ビデオ](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- - [ ] 2013:スパナ:Googleのグローバル分散データベース:
- - [論文](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [ビデオ](https://www.usenix.org/node/170855)
- - [ ] [2014年:機械学習:技術的負債の高利貸しクレジットカード](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- - [ ] [2015:Googleの継続的なパイプライン](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
- - [ ] [2015年:大規模な高可用性:Googleの広告用データ基盤の構築](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
- - [ ] [2015:TensorFlow:異種分散システムの大規模機械学習](http://download.tensorflow.org/paper/whitepaper2015.pdf)
- - [ ] [2015年:開発者がコードを検索する方法:ケーススタディ](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
- - [ ] [2016:Borg、Omega、Kubernetes](http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/44843.pdf)
+ - CPU アクティビティ、割り込み、コンテキスト切り替え
+ - マルチコアプロセッサを使用した最新の同時実行構造
+ - [ページング、セグメンテーション、仮想メモリ (動画)](https://youtu.be/O4nwUqQodAg)
+ - [中断(動画)](https://youtu.be/iKlAWIKEyuw)
+ - プロセス リソースのニーズ (メモリ: コード、静的ストレージ、スタック、ヒープ、およびファイル記述子、I/O)
+ - スレッド リソースのニーズ (同じプロセス内の他のスレッドと上記 (マイナススタック) を共有しますが、それぞれに独自の PC、スタック カウンター、レジスタ、およびスタックがあります)
+ - フォークは実際には、新しいプロセスがメモリに書き込むまではコピーオンライト (読み取り専用) であり、その後完全コピーが実行されます。
+ - コンテキストの切り替え
+ - [オペレーティングシステムと基盤となるハードウェアによってコンテキストスイッチングがどのように開始されるか?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
+ - [ ] [C++ のスレッド (シリーズ - 10 本の動画)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 Spring '14: マサチューセッツ大学のオペレーティングシステム](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
+ - Python の同時実行性 (動画):
+ - [ ] [スレッドに関する短編シリーズ](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] [Python スレッド](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] [Python GIL を理解する (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
+ - [参考](http://www.dabeaz.com/GIL)
+ - [ ] [David Beazley - Python 同時実行性を基礎からライブで解説します! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] [基調講演 David Beazley - 注目のトピック (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
+ - [ ] [Python のミューテックス](https://www.youtube.com/watch?v=0zaPs8OtyKY)
- ### テスト
- - カバーするために:
- - ユニット(単体)テストの仕組み
- - モックオブジェクトとは何ですか?
- - 統合テストとは
- - 依存性注入とは
- - [ ] [James Bachによるアジャイルソフトウェアテスト(動画)](https://www.youtube.com/watch?v=SAhJf36_u5U)
- - [ ] [ジェイムス・バッハによるソフトウェアテストの公開講座(動画)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- - [ ] [Steve Freeman - テスト駆動開発(これは私たちが意味するものではありません)(動画)](https://vimeo.com/83960706)
- - [スライド](http://goocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- - [ ] [TDDは死んでいます。長いライブテスト。](http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
- - [ ] [TDDは死んでいますか? (動画)](https://www.youtube.com/watch?v=z9quxZsLcfo)
- - [ ] [ビデオシリーズ(152ビデオ) - すべてではない(動画)](https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
- - [ ] [Pythonでテスト駆動型Web開発](http://www.obeythetestinggoat.com/pages/book.html#toc)
- - [ ] 依存性注入:
- - [ ] [動画](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- - [ ] [テストのタオ](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- - [ ] [テストの書き方](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-
-- ### スケジューリング
- - OSで、どのように動作するか
- - オペレーティングシステムのビデオから収集できます
-
-- ### システムルーチンを実装する
- - 使用するプログラミングAPIの下にあるものを理解する
- あなたはそれらを実装できますか?
+ - カバーするために:
+ - 単体テストの仕組み
+ - モックオブジェクトとは何ですか
+ - 統合テストとは何ですか
+ - 依存性注入とは何ですか
+ - [ ] [James Bach によるアジャイル ソフトウェア テスト (動画)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] [ソフトウェア テストに関する James Bach による公開講義 (動画)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] [Steve Freeman - テスト駆動開発 (それは私たちが言いたかったことではありません) (動画)](https://vimeo.com/83960706)
+ - [スライド](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
+ - [ ] 依存性の注入:
+ - [ ] [動画](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
+ - [ ] [テストのTAO](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
+ - [ ] [テストの書き方](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
- ### 文字列の検索と操作
- - [ ] [Sedgewick - 接尾辞配列(動画)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
- - [ ] [Sedgewick - サブストリング(文字列の一部)検索(動画)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [1. サブストリング検索の紹介](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [2. ブルートフォースサブストリング検索](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
- - [ ] [3. クヌース・モーリス・プラット法](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [4. ボイヤー-ムーア文字列検索アルゴリズム](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
- - [ ] [5. ラビン-カープ文字列検索アルゴリズム](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [テキストの検索パターン(動画)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
-
- このテーマについてさらに詳しく知りたい場合は、[いくつかの科目の追加の詳細]の「文字列のマッチング」の項を参照してください(#additional-detail-on-some-subjects)
-
-- ### トライ木
- - さまざまなトライ木があることに注意してください。いくつかは接頭辞を持ち、あるものはパスを追跡するビットの代わりに文字列を使用します。
- - 私はコードを読んだが、実装しないだろう。
- - [ ] [Sedgewick - 試してみる(3ビデオ)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [1. R Way トライ木](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [2. 3分探索木](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [3. キャラクターベースの操作](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
- - [ ] [データ構造とプログラミング手法に関する注記](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
- - [ ] 短期コースビデオ:
- - [ ] [トライ木の紹介(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
- - [ ] [トライ木のパフォーマンス(動画)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- - [ ] [トライ木の実装ビデオ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- - [ ] [Trie:無視されたデータ構造](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- - [ ] [TopCoder - トライ木の使用](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
- - [ ] [スタンフォード講演(現実世界のユースケース)(動画)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- - [ ] [MIT、高度なデータ構造、文字列(途中でかなり不明瞭になることがあります)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - [ ] [Sedgewick - サフィックス配列 (動画)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Sedgewick - 部分文字列検索 (動画)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. 部分文字列検索の概要](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
+ - [ ] [2. ブルートフォース部分文字列検索](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
+ - [ ] [3. クヌース・モリス・プラット](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
+ - [ ] [4. ボイヤー・ムーア](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
+ - [ ] [5. ラビン・カープ](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
+ - [ ] [テキスト内のパターンの検索 (動画)](https://www.coursera.org/learn/data-Structures/lecture/tAfHI/search-pattern-in-text)
+
+ この件についてさらに詳細が必要な場合は、[一部の件名に関する追加の詳細](#Additional-detail-on-some-subjects) の「文字列マッチング」セクションを参照してください。
+
+- ### トライ
+ - さまざまな種類のトライがあることに注意してください。プレフィックスを持つものと持たないもの、そしてビットの代わりに文字列を使用してパスを追跡するものもあります
+ - コードは一通り読みましたが、実装はしません
+ - [ ] [Sedgewick - Trys (3動画)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
+ - [ ] [2. 三項探索トライズ](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
+ - [ ] [3. 文字ベースの操作](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
+ - [ ] [データ構造とプログラミング技術に関するメモ](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
+ - [ ] ショートコースビデオ:
+ - [ ] [トライの概要 (動画)](https://www.coursera.org/learn/data-structions-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] [トライのパフォーマンストライ (動画)](https://www.coursera.org/learn/data-Structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] [トライの実装 (動画)]( https://www.coursera.org/learn/data-Structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
+ - [ ] [トライ: 無視されたデータ構造](https://www.toptal.com/java/the-trie-a-neglected-data-struction)
+ - [ ] [TopCoder - トライの使用](https://www.topcoder.com/thrive/articles/Using%20Tries)
+ - [ ] [スタンフォード講義 (実際の使用例) (動画)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [MIT、高度なデータ構造、文字列 (途中でかなりわかりにくくなる可能性があります) ) (動画)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### 浮動小数点数
- - [ ] 単純な8ビット:[浮動小数点数の表現 - 1(ビデオ - 計算にエラーがあります - ビデオの説明を参照)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32ビット:[IEEE754 32ビット浮動小数点バイナリ(動画)](https://www.youtube.com/watch?v=50ZYcZebIec)
+ - [ ] 単純な 8 ビット: [浮動小数点数の表現 - 1 (ビデオ - 計算に誤りがあります - ビデオの説明を参照してください)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- ### Unicode
- - [ ] [すべてのソフトウェア開発者が絶対に最低限必要とする、絶対にUnicodeと文字セットについて熟知していること](http://www.joelonsoftware.com/articles/Unicode.html)
- - [ ] [すべてのプログラマーが、エンコーディングと文字セットについて知る必要があることは間違いない](http://kunststube.net/encoding/)
+ - [ ] [すべてのソフトウェア開発者の絶対最小値、絶対にUnicodeと文字セットについて必ず知っておくべきこと]( http://www.joelonsoftware.com/articles/Unicode.html)
+ - [ ] [すべてのプログラマがテキストを扱うためにエンコーディングと文字セットについて絶対に、必ず知っておくべきこと]( http://kunststube.net/encoding/)
-- ### バイト順(エンディアン)
- - [ ] [ビッグエンディアンとリトルエンディアン](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
- - [ ] [ビッグエンディアン Vs リトルエンディアン(動画)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- - [ ] [ビッグエンディアンとリトルエンディアンの イン/アウト(動画)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- - カーネル開発者のための非常に技術的な話。ほとんどがあなたの頭の上にある場合は心配しないでください。
- - 前半で十分です。
+- ### エンディアン
+ - [ ] [ビッグ エンディアンとリトル エンディアン](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
+ - [ ] [ビッグ エンディアンとリトル エンディアン (動画)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [Big And Little Endian Inside/Out (動画)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - カーネル開発者向けの非常に技術的な話。ほとんどのことが頭から離れていても心配する必要はありません。
+ - 前半だけで十分です。
- ### ネットワーキング
- - **ネットワーク経験がある、またはシステムエンジニアになりたい場合は、質問を期待してください**
- - そうでなければ、これは知っているだけでいいです
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
- - [ ] [UDPとTCP:トランスポートプロトコルの比較](https://www.youtube.com/watch?v=Vdc8TCESIg8)
- - [TCP / IPとOSIモデルの説明!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
- - [ ] [インターネット経由のパケット伝送。ネットワーク&TCP / IPチュートリアル](https://www.youtube.com/watch?v=nomyRJehhnM)
- - [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
- - [ ] [SSLとHTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
- - [ ] [SSL / TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
- - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
- - [ ] [ビデオシリーズ(21ビデオ)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IggfoqO4iPnPYQui46QqT0j)
- - [ ] [詳解サブネット化 - 第5部CIDR表記](https://www.youtube.com/watch?v=t5xYI0jzOf4)
- - [ ] ソケット:
- - [ ] [Java - Sockets - Introduction(video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- - [ ] [ソケットプログラミング(動画)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
-
-## システム設計、スケーラビリティ、データ処理
-- **4年以上の経験があれば、システム設計の質問を期待できます。**
-- スケーラビリティとシステム設計は、多くのトピックとリソースを持つ非常に大きなトピックです。
- スケーラビリティ(拡張可能)なソフトウェア/ハードウェアシステムを設計する際には、考慮すべき点がたくさんあります。
- これにかなりの時間を費やすことを期待してください。
-- 考慮事項:
- - スケーラビリティ
- - 大きなデータセットを単一の値に変換する
- - あるデータセットを別のデータセットに変換する
- - 莫大な量のデータを扱う
- - システム設計
- - 機能セット
- - インターフェース
- - クラス階層
- - 一定の制約の下でシステムを設計する
- - シンプルさと丈夫さ
- - トレードオフ
- - パフォーマンス分析と最適化
-
-- [ ] **ここをクリック**:[システム設計入門](https://github.com/donnemartin/system-design-primer)
-- [ ] [HiredInTechのシステム設計](http://www.hiredintech.com/system-design/)
-- [ ] [技術面接で設計質問に答えるための準備方法](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [システムデザイン面接の前に知っておくべき8つの事柄](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [アルゴリズム設計](http://www.hiredintech.com/algorithm-design/)
-- [ ] [データベースの正規化 - 1NF、2NF、3NF、4NF(動画)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [システム設計の面接](https://github.com/checkcheckzz/system-design-interview) - この中には多くのリソースがあります。記事や例を見てください。私はそれらのいくつかを下に置いた。
-- [ ] [システム設計面接の方法](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
-- [ ] [誰もが知っておくべき数字](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
-- [ ] [コンテキストスイッチを作るのにどれくらい時間がかかりますか?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
-- [ ] [データセンター間の取引(動画)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [CAP定理の簡単な英語入門](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
-- [ ] Paxosアルゴリズム:
- - [短い動画](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [ユースケースとマルチパクソスによる拡張動画](https://www.youtube.com/watch?v=JEpsBg0AO6o)
- - [論文](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)
-- [ ] [コンシステントハッシュ法](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
-- [NoSQLパターン](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
-
-- [ ] スケーラビリティ:
- - [ ] [概要(動画)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- - [ ] 短いシリーズ:
- - [クローン](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- - [データベース](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- - [キャッシュ](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- - [非同期](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- - [ ] [スケーラブルなWebアーキテクチャと分散システム](http://www.aosabook.org/ja/distsys.html)
- - [ ] [分散コンピューティングの説明の誤り](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [実用的なプログラミングテクニック](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- - [extra:Google Pregel グラフ処理](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- - [ ] [Jeff Dean - Googleのソフトウェアシステム構築と教訓(動画)](https://www.youtube.com/watch?v=modXC5IWTJI)
- - [ ] [スケールのための設計システムの紹介](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [App EngineとCloud Datastoreを使用してモバイルゲームを世界中の視聴者に拡大(動画)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- - [ ] [Googleがプラネットスケールのインフラのプラネットスケールエンジニアリングを行う仕組み](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [アルゴリズムの重要性](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
- - [ ] [シャーディング](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Facebook(2009)でスケール](https://www.infoq.com/presentations/Scale-at-Facebook)
- - [ ] [Facebook(2012年)、「10億ユーザー向けビルド(動画)」](https://www.youtube.com/watch?v=oodS71YtkGU)
- - [ ] [ロングゲームのためのエンジニアリング - Astrid Atkinson Keynote(動画)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- - [ ] [7年間のYouTubeスケーラビリティレッスン30分](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html )
- - [動画](https://www.youtube.com/watch?v=G-lGCC4KKok)
- - [ ] [ペイパルが毎日何十億ものトランザクションにスケーリングされる方法(8VMだけを使用)](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- - [ ] [大きなデータセットで重複を削除する方法](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [Jon CowieによるEtsyのスケールとエンジニアリング文化の中の一見(動画)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- - [ ] [Amazonは独自のマイクロサービスアーキテクチャをどのように導いたか](http://thenewstack.io/led-amazon-microservices-architecture/)
- - [ ] [圧縮するか圧縮しないか、それはUberの質問でした](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [Tarantoolの非同期キュー、キューに入れる](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
- - [ ] [おおよそのクエリ処理を使用するタイミング](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
-
- - [ ] [単一のデータセンターからフェイルオーバーするための、Googleのネイティブマルチホームアーキテクチャへの移行](http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [スパナ](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
- - [ ] [Egnyteアーキテクチャ:マルチペタバイト分散システムの構築とスケーリングの教訓](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html)
- - [ ] [機械学習駆動プログラミング:新しい世界のための新しいプログラミング](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
- - [ ] [1日あたり何百万ものリクエストを処理する画像最適化技術](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- - [ ] [Patreonのアーキテクチャの概要](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- - [ ] [Tinder:どのようにして最大のレコメンデーションエンジンの誰があなたが次に誰を見るか決定する?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- - [ ] [現代のキャッシュのデザイン](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- - [ ] [Facebookのスケールでライブビデオストリーミング](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- - [ ] [AmazonのAWSで1,100万人以上のユーザーに拡大するための初心者向けガイド](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [Dockerの効果待ち時間の使用方法](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
- - [ ] [AMPはGoogleに存在する脅威に対抗していますか?](http://highscalability.com/blog/2015/12/14/does-amp-counter-an-existential-threat-to-google.html)
- - [ ] [全Netflixスタックの360度ビュー](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- - [ ] [レイテンシはどこにでもあり、それはあなたのセールスに費やされます - それを粉砕する方法](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [サーバーレス(非常に長い、要点が必要](http://martinfowler.com/articles/serverless.html)
- - [ ] [Instagramを動かすもの:何百ものインスタンス、数十のテクノロジ](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [シンクキャストアーキテクチャ - 毎日1,500時間の音声を生成する](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- - [ ] [Justin.Tvのライブビデオブロードキャストアーキテクチャ](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Playfishのソーシャルゲームアーキテクチャ - 月間5000万人のユーザーと成長](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- - [ ] [アーキテクチャ - 40Mビジター、200Mダイナミックページビュー、30TBデータ]()
- - [ ] [PlentyOfFishアーキテクチャ](http://highscalability.com/plentyoffish-architecture)
- - [ ] [Salesforceのアーキテクチャ - どのように130億回のトランザクションを処理するか](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- - [ ] [ESPNの規模でのアーキテクチャ - 毎秒100,000のDuh Nuh Nuhsで動作](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- - [ ] サービスを結合する技術の情報については、以下の「メッセージング、シリアライゼーション、およびキューイングシステム」を参照してください。
- - [ ] Twitter:
- - [O`Reilly MySQL CE 2011:Jeremy Cole、「@Twitterの大小データ」(動画)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- - [スケール時のタイムライン](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - さらに詳しくは、[ビデオシリーズ](ビデオシリーズ)セクションの「Mining Massive Datasets」ビデオシリーズを参照してください。
-
-- [ ] システム設計プロセスの練習:紙で作業しようとするいくつかのアイデアがあります。実際にどのように処理されたかについてのいくつかの文書があります。
- - レビュー:[システム設計入門](https://github.com/donnemartin/system-design-primer)
- - [HiredInTechのシステム設計](http://www.hiredintech.com/system-design/)
- - [チートシート](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- - 流れ:
- 1. 問題と範囲を理解する:
- - 面接官の助けを借りてユースケースを定義する
- - 追加の機能を提案する
- - 面接官が範囲外とみなすアイテムを削除する
- - 高可用性が必要と仮定し、ユースケースとして追加する
- 2. 制約について考える:
- - 毎月のリクエスト数を尋ねる
- - 毎秒どれくらいのリクエストをするか(彼らはボランティアでもよいし、あなたに数学をさせるかもしれない)
- - 読み込みと書き込みの割合を見積もります
- - 推定時に80/20ルールを守って下さい
- - 1秒あたりに書き込まれるデータの量
- - 5年間に必要な合計ストレージ
- - 毎秒読み取られるデータの量
- 3. 抽象的なデザイン:
- - レイヤー(サービス、データ、キャッシング)
- - インフラストラクチャ:負荷分散、メッセージング
- - サービスを駆動する主要なアルゴリズムの概要
- - ボトルネックを考慮し、解決策を決定する
- - 演習:
- - [CDNネットワークの設計:古い記事](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- - [ランダムなID生成システムの設計](https://blog.twitter.com/2010/announcing-snowflake)
- - [オンラインマルチプレイヤーカードゲームのデザイン](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
- - [Key-Valueデータベースの設計](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [画像共有システムの設計](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- - [推薦システムの設計](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- - [URL短縮システムの設計:上からコピー](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [キャッシュシステムの設計](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
+ - **ネットワーキングの経験がある場合、または信頼性エンジニアまたは運用エンジニアになりたい場合は、質問をお待ちください** -
+ それ以外の場合、これは知っておくと良いでしょう
+ - [ ] [カーン アカデミー](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] [UDP と TCP: トランスポート プロトコルの比較 (動画)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] [TCP/IP と OSI モデルについて説明します! (動画)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] [インターネットを介したパケット送信。ネットワークと TCP/IP のチュートリアル。(動画)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] [HTTP (動画)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] [SSL および HTTPS (動画)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] [SSL/TLS (動画)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] [HTTP 2.0 (動画)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] [ビデオ シリーズ (21 動画) (動画)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
+ - [ ] [サブネットの謎を解く - パート 5 CIDR表記法 (動画)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] ソケット:
+ - [ ] [Java - ソケット - 概要 (動画)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] [ソケット プログラミング (動画)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
---
## 最終レビュー
- このセクションでは、重要な概念のほとんどを見直すためにかなり短いビデオを見ることができます。
- あなたが頻繁に再学習をしたいならいいですね。
+ このセクションには短いビデオが含まれます。非常にすぐに見て、重要な概念のほとんどを確認できます。
+ 頻繁にリフレッシュしたい場合に便利です。
-- [ ] 2〜3分短編ビデオシリーズ(23ビデオ)
- - [動画](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2〜5分の短編シリーズビデオ - Michael Sambol(46ビデオ)
- - [動画](https://www.youtube.com/@MichaelSambol)
- - [Code Examples](https://github.com/msambol/dsa)
+- [ ] 2 ~ 3 分の短い主題ビデオ シリーズ (23 動画)
+ - [ビデオ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] 2 ~ 5 分のシリーズ短い主題のビデオ - Michael Sambol (動画 46 件):
+ - [ビデオ](https://www.youtube.com/@MichaelSambol)
+ - [コード例](https://github.com/msambol/dsa)
+- [ ] [セッジウィック ビデオ - アルゴリズム I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [セッジウィック ビデオ - アルゴリズム II](https://www.coursera.org/learn/algorithms-part2) )
---
From 55332c6c6e69c656589eae08ff78d2cb248539bb Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Sat, 4 Nov 2023 02:24:33 +0900
Subject: [PATCH 106/173] Specify the language of the command
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index e9d5f68471..6c53a3d243 100644
--- a/README.md
+++ b/README.md
@@ -246,7 +246,7 @@ Create a new branch so you can check items like this, just put an x in the brack
1. Clone to your local repo:
- ```
+ ```bash
git clone https://github.com//coding-interview-university.git
cd coding-interview-university
git remote add upstream https://github.com/jwasham/coding-interview-university.git
@@ -255,7 +255,7 @@ Create a new branch so you can check items like this, just put an x in the brack
1. Mark all boxes with X after you completed your changes:
- ```
+ ```bash
git commit -am "Marked personal progress"
git pull upstream main # keep your fork up-to-date with changes from the original repo
From c218bfcc44a399c3eaa6d0cdc42f6b70e2139e67 Mon Sep 17 00:00:00 2001
From: ducdongmg
Date: Fri, 10 Nov 2023 10:48:48 +0900
Subject: [PATCH 107/173] update Table of Contents
---
translations/README-vi.md | 283 ++++++++++++++++++++++++++++++++------
1 file changed, 244 insertions(+), 39 deletions(-)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 2424de0db0..1f53e8016e 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -12,6 +12,7 @@ Tác giả gốc: [John Washam](https://github.com/jwasham)
* [Trương Đức Duy](https://github.com/duytruong) - [@dauruy](https://twitter.com/dauruy)
* [Lương Đăng Hải](https://github.com/jarvisluong) - [@jarvisluong](https://twitter.com/jarvisluong)
* [Hiền Vương](https://github.com/hienvd) - [@duchienvuong](https://twitter.com/duchienvuong)
+* [Nguyễn Đức Đông](https://github.com/ducdongmg)
Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt:
@@ -23,7 +24,13 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
---
-> Ban đầu, đây chỉ là một danh sách to-do (danh sách các việc cần làm) ngắn về các chủ đề phải ôn tập của tôi, để trở thành một kỹ sư phần mềm. Nhưng rôi nó lớn dần nên như ngày nay. Sau khi đi hết con đường này, [tôi đã được tuyển vào vị trí Software Development Engineer ở Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! Bạn có lẽ không cần phải học nhiều như tôi đã học. Nhưng dù sao, mọi thứ bạn cần ở đây.
+> Ban đầu, đây chỉ là một danh sách to-do (danh sách các việc cần làm) ngắn về các chủ đề phải ôn tập của tôi, để trở thành một kỹ sư phần mềm.
+> Nhưng rôi nó lớn dần nên như ngày nay. Sau khi đi hết con đường này, [tôi đã được tuyển vào vị trí Software Development Engineer ở Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Bạn có lẽ không cần phải học nhiều như tôi đã học. Nhưng dù sao, mọi thứ bạn cần ở đây.
+>
+> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+>
+> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that is below. I'll help you get there without wasting your precious time.
>
> Những chủ đề này sẽ chuẩn bị cho bạn nền tảng kiến thức vững vàng cho bất kỳ công ty phần mềm nào, bao gồm cả những gã khổng lồ như: Amazon, Facebook, Google hay Microsoft.
>
@@ -39,35 +46,42 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
## Giới thiệu
-Đây là kế hoạch học tập trong nhiều tháng của tôi, để từ một nhà phát triển web (tự học, không có bằng cấp về Khoa Học Máy Tính - KHMT) trở thành một kỹ sư phần mềm ở Google.
-

-Danh sách dài này được trích và mở rộng từ **Ghi chú huấn luyện của Google**, vậy nên đây là những gì bạn cần biết.
-Một vài mục tôi thêm vào ở cuối danh sách có thể xuất hiện trong cuộc phỏng vấn hoặc hữu ích cho việc giải quyết các bài toán về lập trình. Nhiều mục đến từ bài viết [Lấy được việc ở Google (Get that job at Google)](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" của Steve Yegge.
+Đây là kế hoạch học tập kéo dài nhiều tháng của tôi để trở thành một software engineer cho một công ty lớn.
-Tôi lược bớt những gì bạn cần từ lời khuyên của Yegge. Tôi cũng chỉnh sửa lại các yêu cầu dựa trên thông tin tôi có được từ bạn bè ở Google. Danh sách này được thiết kế cho **Kỹ sư phần mềm** hoặc những ai chuyển từ phát triển web hoặc phần mềm sang _kỹ nghệ_ phần mềm (khi mà kiến thức về Khoa Học Máy Tính là bắt buộc). Nếu bạn có nhiều kinh nghiệm và muốn khẳng định nhiều năm trong đó bạn làm việc như một kỹ sư phần mềm, hãy sẵn sàng cho một buổi phỏng vấn khó hơn. [Xem thêm ở đây](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/).
+**Yêu cầu:**
+* Một chút kinh nghiệm về mã hóa (biến, vòng lặp, phương thức/hàm, v.v.)
+* Tính kiên nhẫn
+* Thời gian
-Nếu bạn có kinh nghiệm trong phát triển web hoặc ứng dụng, hãy chú ý rằng Google xem việc xây dựng phần mềm khác với web và ứng dụng thông thường. Họ yêu cầu kiến thức về Khoa Học Máy Tính.
+Lưu ý rằng đây là một kế hoạch dành cho **software engineering**, không phải frontend engineering hay full-stack. Thực sự có một siêu lộ trình và khóa học cho những career path đó ngoài kia (xem https://roadmap.sh/ để biết thêm chi tiết).
-Thêm vào đó, nếu bạn muốn trở thành một kỹ sư hệ thống (System Engineer), hãy học thêm từ danh sách bổ sung (mạng máy tính, bảo mật,...)
+Có rất nhiều điều để học trong một chương trình Khoa học Máy tính tại trường đại học, nhưng chỉ cần biết khoảng 75% là đủ tốt cho một cuộc phỏng vấn, vì vậy đó là những gì tôi đề cập ở đây.
+Để có một chương trình tự học Khoa học Máy tính hoàn chỉnh, các tài nguyên cho kế hoạch học tập của tôi đã được đưa vào Lộ trình Khoa học Máy tính của Kamran Ahmed: https://roadmap.sh/computer-science
---
## Mục lục
+### Kế hoạch học tập
+
- [Giới thiệu?](#giới-thiệu)
- [Vì sao tôi cần tài liệu này?](#vì-sao-tôi-cần-tài-liệu-này)
- [Sử dụng tài liệu này như thế nào?](#sử-dụng-tài-liệu-này-như-thế-nào)
- [Đừng nghĩ rằng bạn không đủ thông minh](#đừng-nghĩ-rằng-bạn-không-đủ-thông-minh)
- [Về nguồn video](#về-nguồn-video)
-- [Quy trình phỏng vấn & các bước chuẩn bị tổng quát](#quy-trình-phỏng-vấn--các-bước-chuẩn-bị-tổng-quát)
- [Chọn ngôn ngữ lập trình cho cuộc phỏng vấn](#chọn-ngôn-ngữ-lập-trình-cho-cuộc-phỏng-vấn)
- [Danh mục sách](#danh-mục-sách)
-- [Trước khi bắt đầu](#trước-khi-bắt-đầu)
+- [Đừng phạm sai lầm của tôi](#đừng-phạm-sai-lầm-của-tôi)
- [Những phần không được đề cập](#những-phần-không-được-đề-cập)
- [Kiến thức tiên quyết](#kiến-thức-tiên-quyết)
- [Kế hoạch hằng ngày](#Kế-hoạch-hàng-ngày)
+- [Coding Question Practice](#coding-question-practice)
+- [Coding Problems](#coding-problems)
+
+### Topics of Study
+
- [Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận](#độ-phức-tạp-của-thuật-toán--big-o--phân-tích-tiệm-cận)
- [Cấu trúc dữ liệu](#cấu-trúc-dữ-liệu)
- [Arrays](#arrays)
@@ -119,15 +133,22 @@ Thêm vào đó, nếu bạn muốn trở thành một kỹ sư hệ thống (Sy
- [Tống kết](#tổng-kết)
- [Thực hành các câu hỏi về lập trình](#thực-hành-các-câu-hỏi-về-lập-trình)
- [Giải bài tập lập trình](#giải-bài-tập-lập-trình)
-- [Khi bạn tiến gần đến kỳ phỏng vấn](#khi-bạn-tiến-gần-đến-kỳ-phỏng-vấn)
+
+### Getting the Job
+
- [Lý lịch (Resume) của bạn](#lý-lịch-resume-của-bạn)
+- [Khi bạn tiến gần đến kỳ phỏng vấn](#khi-bạn-tiến-gần-đến-kỳ-phỏng-vấn)
+- [Quy trình phỏng vấn & các bước chuẩn bị tổng quát](#quy-trình-phỏng-vấn--các-bước-chuẩn-bị-tổng-quát)
- [Hãy nghĩ đến những thứ bạn sẽ được hỏi](#hãy-nghĩ-đến-những-thứ-bạn-sẽ-được-hỏi)
- [Chuẩn bị câu hỏi dành cho phỏng vấn viên](#chuẩn-bị-câu-hỏi-dành-cho-phỏng-vấn-viên)
- [Khi bạn được nhận việc](#khi-bạn-được-nhận-việc)
----------------- Những mục dưới đây là tuỳ chọn ----------------
+**---------------- Những mục dưới đây là tuỳ chọn ----------------**
+
+### Optional Extra Topics & Resources
- [Sách bổ sung](#sách-bổ-sung)
+- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
- [Học thêm](#học-thêm)
- [Trình biên dịch](#trình-biên-dịch)
- [Emacs và vi(m)](#emacs-và-vim)
@@ -160,6 +181,7 @@ Thêm vào đó, nếu bạn muốn trở thành một kỹ sư hệ thống (Sy
- [k-D Trees](#k-d-trees)
- [Skip lists](#skip-lists)
- [Network Flows](#network-flows)
+ - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- [Math for Fast Processing](#math-for-fast-processing)
- [Treap](#treap)
- [Linear Programming](#linear-programming)
@@ -235,20 +257,6 @@ Lynda.com thì không miễn phí.
Tôi cũng rất thích xem các bài giảng của các trường đại học.
-## Quy trình phỏng vấn & các bước chuẩn bị tổng quát
-
-- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [4 bước đến Google dù không có bằng cấp](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
-- [ ] [Whiteboarding (Giải toán lập trình trên bảng trắng)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Google nghĩ thế nào về Tuyển dụng, Quản lý và Văn hóa](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
-- [ ] Cracking The Coding Interview Set 1:
- - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] Làm thế nào để lấy được công việc ở Big 4:
- - [ ] [Làm sao để lấy được công việc ở Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-- [ ] [Thất bại trong cuộc phỏng vấn với Google](http://alexbowe.com/failing-at-google-interviews/)
-
-
## Chọn ngôn ngữ lập trình cho cuộc phỏng vấn
Bạn có thể chọn ngôn ngữ mà bạn quen thuộc để thực hiện phần viết mã trong lúc phỏng vấn, nhưng với Google, những ngôn ngữ sau đây là thích hợp nhất:
@@ -411,7 +419,7 @@ hoặc:
- Sách tạm được, nhưng sau khi làm việc với các bài toán trong vài trang, tôi thấy nhức đầu với ngôn ngữ Pascal, do-while loop, mảng bắt đầu với số 1 (thay vì 0 như Java, C, C++, ...), và một vài thông tin không rõ ràng.
- Lẽ ra nên dành thời gian để giải toán từ các quyển sách khác hoặc làm toán lập trình online.
-## Trước khi bắt đầu
+## Đừng phạm sai lầm của tôi
Danh sách này ngày càng dài theo năm tháng và tôi phải thừa nhận là nó ngoài tầm kiểm soát.
@@ -466,6 +474,19 @@ Danh sách lớn này bắt đầu như một bản To-do lược trích từ Hu
- HTML, CSS, và các công nghệ thiết kế giao diện người dùng ("front-end").
+## Kiến thức tiên quyết
+
+- [ ] **Học C**
+ - C có ở khắp nơi. Bạn sẽ thấy các ví dụ trong sách, bài giảng, video, bất kỳ đâu mà bạn học.
+ - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - Sách ngắn, nhưng nó sẽ cho bạn một nền tảng tốt về C, và nếu bạn luyện tập nhiều hơn, bạn sẽ nhanh chóng thành thạo nó. Hiểu về C giúp bạn hiểu cách các chương trình và bộ nhớ hoạt động.
+ - [Lời giải cho các câu hỏi](https://github.com/lekkas/c-algorithms)
+
+- [ ] **Máy tính thực thi một chương trình như thế nào?**
+ - [ ] [CPU thực thi chương trình thế nào (How does CPU execute program) - video](https://www.youtube.com/watch?v=42KTvGYQYnA)
+ - [ ] [Tập lệnh mã máy (Machine Code Instructions) - video](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
+
+
## Kế hoạch hàng ngày
Một vài môn học chỉ mất một ngày, vài môn khác có thể mất nhiều ngày. Có vài môn chỉ có thể học thôi chứ không cài đặt được gì.
@@ -499,17 +520,70 @@ Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật.
Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính.
-## Kiến thức tiên quyết
+## Coding Question Practice
-- [ ] **Học C**
- - C có ở khắp nơi. Bạn sẽ thấy các ví dụ trong sách, bài giảng, video, bất kỳ đâu mà bạn học.
- - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - Sách ngắn, nhưng nó sẽ cho bạn một nền tảng tốt về C, và nếu bạn luyện tập nhiều hơn, bạn sẽ nhanh chóng thành thạo nó. Hiểu về C giúp bạn hiểu cách các chương trình và bộ nhớ hoạt động.
- - [Lời giải cho các câu hỏi](https://github.com/lekkas/c-algorithms)
+ Why is this here? I'm not ready to interview.
-- [ ] **Máy tính thực thi một chương trình như thế nào?**
- - [ ] [CPU thực thi chương trình thế nào (How does CPU execute program) - video](https://www.youtube.com/watch?v=42KTvGYQYnA)
- - [ ] [Tập lệnh mã máy (Machine Code Instructions) - video](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
+[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
+
+Why you need to practice doing programming problems:
+- Problem recognition, and where the right data structures and algorithms fit in
+- Gathering requirements for the problem
+- Talking your way through the problem like you will in the interview
+- Coding on a whiteboard or paper, not a computer
+- Coming up with time and space complexity for your solutions (see Big-O below)
+- Testing your solutions
+
+There is a great intro for methodical, communicative problem-solving in an interview. You'll get this from the programming
+interview books, too, but I found this outstanding:
+[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
+
+Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then type it and test it out on a computer.
+
+If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
+This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
+Gets messy quickly. **I use a pencil and eraser.**
+
+
+
+**Coding question practice is not about memorizing answers to programming problems.**
+
+## Coding Problems
+
+Don't forget your key coding interview books [here](#interview-prep-books).
+
+Solving Problems:
+- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+Coding Interview Question Videos:
+- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - Super for walkthroughs of problem solutions
+- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Good explanations of the solution and the code
+ - You can watch several in a short time
+- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+
+Challenge/Practice sites:
+- [LeetCode](https://leetcode.com/)
+ - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing.
+ - See Nick White and FisherCoder Videos above for code walk-throughs.
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Codeforces](https://codeforces.com/)
+- [Codility](https://codility.com/programmers/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - Created by Google engineers, this is also an excellent resource to hone your skills.
+- [Project Euler](https://projecteuler.net/)
+ - very math-focused, and not really suited for coding interviews
+
+## Let's Get Started
+
+Alright, enough talk, let's learn!
+
+But don't forget to do coding problems from above while you learn!
## Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận
- Link được giữ nguyên theo bản tiếng Anh
@@ -1387,6 +1461,12 @@ Các trang giải toán lập trình:
Xem thêm:
- [Phỏng vấn thử nghiệm](http://www.gainlo.co/#!/)
+## Lý lịch (Resume) của bạn
+
+- [10 mẹo để Resume bớt (một chút) tào lao](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
+- Xem các phần về chuẩn bị Resume trong [Cracking The Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/) và [Programming Interviews Exposed](https://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364)
+
+
## Khi bạn tiến gần đến kỳ phỏng vấn
@@ -1395,10 +1475,18 @@ Xem thêm:
- [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
- [Ask Me Anything: Gayle Laakmann McDowell (author of Cracking the Coding Interview)](https://www.youtube.com/watch?v=1fqxMuPmGak)
-## Lý lịch (Resume) của bạn
+## Quy trình phỏng vấn & các bước chuẩn bị tổng quát
-- [10 mẹo để Resume bớt (một chút) tào lao](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
-- Xem các phần về chuẩn bị Resume trong [Cracking The Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/) và [Programming Interviews Exposed](https://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364)
+- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
+- [ ] [4 bước đến Google dù không có bằng cấp](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
+- [ ] [Whiteboarding (Giải toán lập trình trên bảng trắng)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
+- [ ] [Google nghĩ thế nào về Tuyển dụng, Quản lý và Văn hóa](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
+- [ ] Cracking The Coding Interview Set 1:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Làm thế nào để lấy được công việc ở Big 4:
+ - [ ] [Làm sao để lấy được công việc ở Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+- [ ] [Thất bại trong cuộc phỏng vấn với Google](http://alexbowe.com/failing-at-google-interviews/)
## Hãy nghĩ đến những thứ bạn sẽ được hỏi
@@ -1472,6 +1560,119 @@ Bạn không bao giờ thực sự học xong!
- [Site Reliability Engineering: Google chạy các hệ thống của họ như thế nào](https://landing.google.com/sre/)
- [ ] [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
+## System Design, Scalability, Data Handling
+
+**You can expect system design questions if you have 4+ years of experience.**
+
+- Scalability and System Design are very large topics with many topics and resources, since
+ there is a lot to consider when designing a software/hardware system that can scale.
+ Expect to spend quite a bit of time on this
+- Considerations:
+ - Scalability
+ - Distill large data sets to single values
+ - Transform one data set to another
+ - Handling obscenely large amounts of data
+ - System design
+ - features sets
+ - interfaces
+ - class hierarchies
+ - designing a system under certain constraints
+ - simplicity and robustness
+ - tradeoffs
+ - performance analysis and optimization
+- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
+- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [8 steps guide to ace your system design interview](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
+- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
+- [ ] [How to ace a systems design interview](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] Consensus Algorithms:
+ - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [Easy-to-read paper](https://raft.github.io/)
+ - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
+- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] Scalability:
+ - You don't need all of these. Just pick a few that interest you.
+ - [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] Short series:
+ - [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
+ - [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [The Importance of Algorithms](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
+ - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [How to Remove Duplicates in Large Datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
+ - [ ] [Google's Transition From Single Datacenter To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
+ - [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
+ - [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
+ - [ ] [Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] See "Messaging, Serialization, and Queueing Systems" way below for info on some of the technologies that can glue services together
+ - [ ] Twitter:
+ - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - For even more, see the "Mining Massive Datasets" video series in the [Video Series](#video-series) section
+- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
+ - review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
+ - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - flow:
+ 1. Understand the problem and scope:
+ - Define the use cases, with the interviewer's help
+ - Suggest additional features
+ - Remove items that the interviewer deems out of scope
+ - Assume high availability is required, add as a use case
+ 2. Think about constraints:
+ - Ask how many requests per month
+ - Ask how many requests per second (they may volunteer it or make you do the math)
+ - Estimate reads vs. writes percentage
+ - Keep the 80/20 rule in mind when estimating
+ - How much data is written per second
+ - Total storage required over 5 years
+ - How much data read per second
+ 3. Abstract design:
+ - Layers (service, data, caching)
+ - Infrastructure: load balancing, messaging
+ - Rough overview of any key algorithm that drives the service
+ - Consider bottlenecks and determine solutions
+ - Exercises:
+ - [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
+ - [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [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/)
+
+
## Học thêm
> Tiêu đề của các video, các thuật ngữ cao cấp xin được giữ nguyên. Một số thuật ngữ có thể dịch được, nhưng người dịch không đủ vốn từ đề diễn đạt chúng một cách ngắn gọn như trong tiếng Anh, nên cũng xin phép cho qua.
@@ -1721,6 +1922,10 @@ Bạn không bao giờ thực sự học xong!
- [ ] [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- [ ] [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+- ### Disjoint Sets & Union Find
+ - [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
+ - [Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
+
- ### Math for Fast Processing
- [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
From 38c7a379563813706dcbb1da84e3603a182cfe3d Mon Sep 17 00:00:00 2001
From: ducdongmg
Date: Tue, 14 Nov 2023 15:15:27 +0900
Subject: [PATCH 108/173] Coding Question Practice
---
translations/README-vi.md | 97 +++++++++++++++++++++++----------------
1 file changed, 58 insertions(+), 39 deletions(-)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 1f53e8016e..227ab1650d 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -77,7 +77,7 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
- [Những phần không được đề cập](#những-phần-không-được-đề-cập)
- [Kiến thức tiên quyết](#kiến-thức-tiên-quyết)
- [Kế hoạch hằng ngày](#Kế-hoạch-hàng-ngày)
-- [Coding Question Practice](#coding-question-practice)
+- [Luyện tập các câu hỏi coding](#luyện-tập-các-câu-hỏi-coding)
- [Coding Problems](#coding-problems)
### Topics of Study
@@ -453,12 +453,31 @@ Có thể thay thế thẻ ghi nhớ với [Anki](http://ankisrs.net/), đây l
Cơ sở dữ liệu thẻ ghi nhớ của tôi tuân theo chuẩn định dạng của Anki: https://ankiweb.net/shared/info/25173560 (cảm ơn [@xiewenya](https://github.com/xiewenya))
-### 3. Xem đi xem lại và xem lại nữa
-
Tôi giữ một danh sách xem nhanh các mã của ASCII, OSI stack, định nghĩa về Big-O, và nhiều hơn nữa. Tôi đọc bất cứ khi nào rảnh rỗi.
Khi gặp vấn đề trong lúc code, nghỉ ngơi chừng nửa giờ và đọc lại các thẻ ghi nhớ.
+### 3. Làm Câu Hỏi Phỏng Vấn Lập Trình Trong Khi Bạn Đang Học
+
+ĐIỀU NÀY RẤT QUAN TRỌNG.
+
+Bắt đầu làm câu hỏi phỏng vấn lập trình trong khi bạn đang học cấu trúc dữ liệu và thuật toán.
+
+Bạn cần áp dụng những gì bạn đang học để giải quyết vấn đề, nếu không bạn sẽ quên. Tôi đã mắc phải lỗi này.
+
+Một khi bạn đã học một chủ đề, và cảm thấy khá thoải mái với nó, ví dụ, **danh sách liên kết**:
+1. Mở một trong những [sách phỏng vấn lập trình](#danh-mục-sách) (hoặc trang web về vấn đề lập trình, được liệt kê dưới đây)
+1. Làm 2 hoặc 3 câu hỏi liên quan đến danh sách liên kết.
+1. Chuyển sang chủ đề học tiếp theo.
+1. Sau đó, quay lại và làm thêm 2 hoặc 3 vấn đề về danh sách liên kết.
+1. Làm như vậy với mỗi chủ đề mới bạn học.
+
+**Tiếp tục làm các vấn đề trong khi bạn đang học tất cả những điều này, không phải sau này.**
+
+Bạn không được tuyển dụng vì kiến thức, mà là cách bạn áp dụng kiến thức.
+
+Có rất nhiều nguồn lực cho điều này, được liệt kê dưới đây. Hãy tiếp tục.
+
### 4. Tập trung
Có rất nhiều thứ lấy đi sự tập trung của ta, việc này tốn rất nhiều thời gian. Tập trung và toàn tâm toàn ý rất khó.
@@ -520,70 +539,70 @@ Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật.
Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính.
-## Coding Question Practice
+## Luyện tập các câu hỏi coding
- Why is this here? I'm not ready to interview.
+ Tại sao cái này lại ở đây? Tôi chưa sẵn sàng để phỏng vấn.
[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
-Why you need to practice doing programming problems:
-- Problem recognition, and where the right data structures and algorithms fit in
-- Gathering requirements for the problem
-- Talking your way through the problem like you will in the interview
-- Coding on a whiteboard or paper, not a computer
-- Coming up with time and space complexity for your solutions (see Big-O below)
-- Testing your solutions
+Lý do bạn cần thực hành giải các bài toán lập trình:
+- Nhận biết vấn đề, và xác định cấu trúc dữ liệu và thuật toán phù hợp
+- Thu thập yêu cầu cho vấn đề
+- Trình bày quá trình giải quyết vấn đề như bạn sẽ làm trong buổi phỏng vấn
+- Lập trình trên bảng trắng hoặc giấy, không phải máy tính
+- Đưa ra độ phức tạp về thời gian và không gian cho các giải pháp của bạn (xem Big-O dưới đây)
+- Kiểm tra các giải pháp của bạn
-There is a great intro for methodical, communicative problem-solving in an interview. You'll get this from the programming
-interview books, too, but I found this outstanding:
-[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
+Có một lời giới thiệu tuyệt vời về việc giải quyết vấn đề một cách có phương pháp và giao tiếp trong một cuộc phỏng vấn.
+Bạn cũng sẽ nhận được điều này từ các sách phỏng vấn lập trình, nhưng tôi thấy điều này xuất sắc::
+[Thuật toán thiết kế canvas](http://www.hiredintech.com/algorithm-design/)
-Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then type it and test it out on a computer.
+Viết mã trên bảng trắng hoặc giấy, không phải máy tính. Kiểm tra với một số đầu vào mẫu. Sau đó gõ nó và kiểm tra nó trên máy tính.
-If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
-This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
-Gets messy quickly. **I use a pencil and eraser.**
+Nếu bạn không có bảng trắng ở nhà, hãy mua một tờ giấy vẽ lớn từ cửa hàng mỹ thuật. Bạn có thể ngồi trên ghế sofa và thực hành.
+Đây là "bảng trắng sofa" của tôi. Tôi đã thêm bút vào ảnh chỉ để đo lường. Nếu bạn sử dụng bút, bạn sẽ ước gì mình có thể tẩy.
+Nhanh chóng trở nên lộn xộn. **Tôi sử dụng 1 chiếc bút chì và 1 cục gôm.**
-
+
-**Coding question practice is not about memorizing answers to programming problems.**
+**Việc luyện tập giải các bài toán lập trình không phải là việc học thuộc lòng các câu trả lời cho các vấn đề lập trình.**
-## Coding Problems
+## Các Bài Toán Lập Trình
-Don't forget your key coding interview books [here](#interview-prep-books).
+Đừng quên các sách phỏng vấn lập trình quan trọng của bạn [ở đây](#interview-prep-books).
-Solving Problems:
-- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
-- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+iải quyết vấn đề:
+- [Cách tìm ra một giải pháp](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [Cách phân tích một bài toán Topcoder](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
-Coding Interview Question Videos:
+Video Câu Hỏi Phỏng Vấn Lập Trình:
- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- Super for walkthroughs of problem solutions
-- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - Good explanations of the solution and the code
- - You can watch several in a short time
-- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
+- [Nick White - Giải pháp LeetCode (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Giải thích tốt về giải pháp và code
+ - Bạn có thể xem nhiều video trong một thời gian ngắn
+- [FisherCoder - Giải pháp LeetCode](https://youtube.com/FisherCoder)
-Challenge/Practice sites:
+Trang web Thử thách/Thực hành:
- [LeetCode](https://leetcode.com/)
- - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing.
- - See Nick White and FisherCoder Videos above for code walk-throughs.
+ - Trang web bài toán lập trình yêu thích của tôi. Đáng giá số tiền đăng ký cho 1-2 tháng bạn có thể chuẩn bị.
+ - Xem video của Nick White và FisherCoder ở trên để xem hướng dẫn code.
- [HackerRank](https://www.hackerrank.com/)
- [TopCoder](https://www.topcoder.com/)
- [Codeforces](https://codeforces.com/)
- [Codility](https://codility.com/programmers/)
- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
- [AlgoExpert](https://www.algoexpert.io/product)
- - Created by Google engineers, this is also an excellent resource to hone your skills.
+ - Được tạo bởi các kỹ sư của Google, đây cũng là một nguồn tài nguyên tuyệt vời để trau dồi kỹ năng của bạn.
- [Project Euler](https://projecteuler.net/)
- - very math-focused, and not really suited for coding interviews
+ - Rất tập trung vào toán học và không thực sự phù hợp với các cuộc phỏng vấn viết mã
-## Let's Get Started
+## Bắt Đầu Nào
-Alright, enough talk, let's learn!
+Được rồi, nói đủ nhiều rồi, hãy cùng học nào!
-But don't forget to do coding problems from above while you learn!
+Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi bạn đang học!
## Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận
- Link được giữ nguyên theo bản tiếng Anh
From 44d1a598b640b63712dbc30e81a564dcddb74e49 Mon Sep 17 00:00:00 2001
From: ducdongmg
Date: Wed, 15 Nov 2023 15:56:36 +0900
Subject: [PATCH 109/173] update for [The Study Plan] and [Topics of Study]
section from En version
---
translations/README-vi.md | 1283 +++++++++++++++++--------------------
1 file changed, 585 insertions(+), 698 deletions(-)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 227ab1650d..e63310b1f8 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -30,16 +30,17 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
>
> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that is below. I'll help you get there without wasting your precious time.
+> **Lưu ý:** Bạn sẽ không cần phải học nhiều như tôi đã làm. Tôi đã lãng phí rất nhiều thời gian vào những thứ mà tôi không cần biết. Thêm thông tin về điều này ở phía dưới. Tôi sẽ giúp bạn đạt được mục tiêu mà không lãng phí thời gian quý giá của bạn.
>
-> Những chủ đề này sẽ chuẩn bị cho bạn nền tảng kiến thức vững vàng cho bất kỳ công ty phần mềm nào, bao gồm cả những gã khổng lồ như: Amazon, Facebook, Google hay Microsoft.
+> Những chủ đề này sẽ chuẩn bị cho bạn nền tảng kiến thức vững vàng cho cuộc phỏng vấn kỹ thuật tại bất kỳ công ty phần mềm nào,
+> bao gồm cả những gã khổng lồ như: Amazon, Facebook, Google hay Microsoft.
>
> *Chúc may mắn!*
@@ -72,15 +73,15 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
- [Đừng nghĩ rằng bạn không đủ thông minh](#đừng-nghĩ-rằng-bạn-không-đủ-thông-minh)
- [Về nguồn video](#về-nguồn-video)
- [Chọn ngôn ngữ lập trình cho cuộc phỏng vấn](#chọn-ngôn-ngữ-lập-trình-cho-cuộc-phỏng-vấn)
-- [Danh mục sách](#danh-mục-sách)
+- [Sách về Cấu Trúc Dữ Liệu và Thuật Toán](#sách-về-cấu-trúc-dữ-liệu-và-thuật-toán)
+- [Sách Chuẩn Bị Phỏng Vấn](#sách-chuẩn-bị-phỏng-vấn)
- [Đừng phạm sai lầm của tôi](#đừng-phạm-sai-lầm-của-tôi)
- [Những phần không được đề cập](#những-phần-không-được-đề-cập)
-- [Kiến thức tiên quyết](#kiến-thức-tiên-quyết)
- [Kế hoạch hằng ngày](#Kế-hoạch-hàng-ngày)
- [Luyện tập các câu hỏi coding](#luyện-tập-các-câu-hỏi-coding)
-- [Coding Problems](#coding-problems)
+- [Giải bài toán lập trình](#giải-bài-toán-lập-trình)
-### Topics of Study
+### Nội dung học tập
- [Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận](#độ-phức-tạp-của-thuật-toán--big-o--phân-tích-tiệm-cận)
- [Cấu trúc dữ liệu](#cấu-trúc-dữ-liệu)
@@ -113,28 +114,23 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
- [Kiến thức bổ sung](#kiến-thức-bổ-sung)
- [Đệ quy](#Đệ-quy)
- [Quy hoạch động](#quy-hoạch-động)
- - [Lập trình hướng đối tượng](#lập-trình-hướng-đối-tượng)
- [Mẫu thiết kế](#mẫu-thiết-kế)
- [Tổ hợp và Xác Suất](#tổ-hợp-và-xác-suất)
- [NP, NP-Complete và thuật toán xấp xỉ gần đúng](#np-np-complete-và-thuật-toán-xấp-xỉ-gần-đúng)
+ - [Cách máy tính xử lý một chương trình](#Cách-máy-tính-xử-lý-một-chương-trình)
- [Bộ nhớ cache](#bộ-nhớ-cache)
- - [Tiến trình và tiểu trình](#tiến-trình-và-tiểu-trình)
- - [Các công trình nghiên cứu](#các-công-trình-nghiên-cứu)
+ - [Process và Thread](#process-và-thread)
- [Kiểm thử phần mềm](#kiểm-thử-phần-mềm)
- - [Lập lịch](#lập-lịch)
- - [Cài đặt các hàm hệ thống](#cài-đặt-các-hàm-hệ-thống)
- [Tìm kiếm và xử lý chuỗi](#tìm-kiếm-và-xử-lý-chuỗi)
- [Tries](#tries)
- [Cách biểu diễn số thực](#cách-biểu-diễn-số-thực)
- [Unicode](#unicode)
- [Endianness](#endianness)
-- [Mạng máy tính](#mạng-máy-tính)
-- [Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu](#thiết-kế-hệ-thống-khả-năng-mở-rộng-xử-lý-dữ-liệu) (Nếu bạn có hơn 4 năm kinh nghiệm)
+ - [Mạng máy tính](#mạng-máy-tính)
- [Tống kết](#tổng-kết)
-- [Thực hành các câu hỏi về lập trình](#thực-hành-các-câu-hỏi-về-lập-trình)
-- [Giải bài tập lập trình](#giải-bài-tập-lập-trình)
-### Getting the Job
+
+### Tìm việc
- [Lý lịch (Resume) của bạn](#lý-lịch-resume-của-bạn)
- [Khi bạn tiến gần đến kỳ phỏng vấn](#khi-bạn-tiến-gần-đến-kỳ-phỏng-vấn)
@@ -148,7 +144,7 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
### Optional Extra Topics & Resources
- [Sách bổ sung](#sách-bổ-sung)
-- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
+- [Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu](#thiết-kế-hệ-thống-khả-năng-mở-rộng-xử-lý-dữ-liệu) (Nếu bạn có hơn 4 năm kinh nghiệm)
- [Học thêm](#học-thêm)
- [Trình biên dịch](#trình-biên-dịch)
- [Emacs và vi(m)](#emacs-và-vim)
@@ -189,7 +185,7 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
- [Discrete math](#discrete-math)
- [Machine Learning](#machine-learning)
- [Go](#go)
-- [Đọc thêm về một số đề tài](đọc-thêm-về-một-số-đề-tài)
+- [Đọc thêm về một số đề tài](#đọc-thêm-về-một-số-đề-tài)
- [Các chuỗi Video](#các-chuỗi-video)
- [Các khóa học khoa học máy tính](#các-khóa-học-khoa-học-máy-tính)
@@ -197,16 +193,20 @@ Có rất nhiều điều để học trong một chương trình Khoa học Má
## Vì sao tôi cần tài liệu này?
-Tôi đang chuẩn bị tham gia phỏng vấn ở Google. Tôi từng làm web, xây dựng các dịch vụ và lập các công ty khởi nghiệp từ năm 1997. Tôi có bằng Kinh Tế, nhưng không có bằng Khoa Học Máy Tính. Tôi thấy sự nghiệp của mình khá thành công, nhưng như thế chưa đủ. Tôi muốn làm việc ở Google, được tham gia xử lý một hệ thống lớn; thực sự hiểu rõ về máy tính, sự hiệu quả của các thuật toán và cấu trúc dữ liệu, các ngôn ngữ lập trình cấp thấp, và chúng hoạt động cùng nhau như thế nào. Và nếu bạn không biết về cái nào trong số đó, Google sẽ không tuyển bạn.
+Nếu bạn muốn làm kỹ sư phần mềm cho một công ty lớn, đây là những điều bạn phải biết.
+
+Nếu bạn đã bỏ lỡ cơ hội để có được bằng cử nhân khoa học máy tính, giống như tôi, điều này sẽ giúp bạn bắt kịp và tiết kiệm bốn năm cuộc đời của bạn.
Khi tôi bắt đầu dự án này, tôi không phân biệt được stack và heap, không biết về Big-O, không có khái niệm gì về cây (`tree`) hay việc duyệt đồ thị (`graph traversal`). Và nếu buộc phải viết code cho một thuật toán sắp xếp, tôi đảm bảo rằng nó sẽ không chạy tốt.
-Tất cả các cấu trúc dữ liệu tôi từng sử dụng đều được cài đặt sẵn trong ngôn ngữ lập trình và tôi không nhất thiết phải biết chúng làm việc như thế nào. Tôi chưa từng phải tự quản lý vùng nhớ, trừ khi một tiến trình đang chạy ném lỗi "hết bộ nhớ" (`out of memory`), và sau đó tôi phải tìm một cách giải quyết khác. Tồi từng sử dụng mảng nhiều chiều vài lần trong đời, và hàng ngàn mảng kết hợp (`associate arrays`). Nhưng thực sự tôi chưa từng tự mình xây dựng một cấu trúc dữ liệu nào.
+Tất cả các cấu trúc dữ liệu tôi từng sử dụng đều được cài đặt sẵn trong ngôn ngữ lập trình và tôi không nhất thiết phải biết chúng làm việc như thế nào. Tôi chưa từng phải tự quản lý vùng nhớ, trừ khi một Process đang chạy ném lỗi "hết bộ nhớ" (`out of memory`), và sau đó tôi phải tìm một cách giải quyết khác. Tồi từng sử dụng mảng nhiều chiều vài lần trong đời, và hàng ngàn mảng kết hợp (`associate arrays`). Nhưng thực sự tôi chưa từng tự mình xây dựng một cấu trúc dữ liệu nào.
-Nhưng, sau khi trải qua dự án này, tôi rất tự tin rằng mình sẽ được tuyển. Đây là một dự án dài hơi, sẽ tốn của tôi hàng tháng. Nếu bạn đã quen với nhiều nội dung trong này, bạn sẽ mất ít thời gian hơn.
+Đây là một kế hoạch dài hơi, sẽ tốn của bạn vài tháng. Nếu bạn đã quen với nhiều nội dung trong này, bạn sẽ mất ít thời gian hơn.
## Sử dụng tài liệu này như thế nào?
+Tất cả những gì dưới đây là một bản phác thảo, và bạn nên tiếp cận các mục theo thứ tự từ trên xuống dưới.
+
> Phần này được viết lại khá nhiều để thuận tiện cho các bạn tiếp cận. Dựa theo bản gốc, tác giả có vẻ như cũng đang cố hướng dẫn cho người mới dùng git.
Bạn có thể bỏ qua mục này nếu đã có kiến thức về Git, Github và [Github Flavored Markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
@@ -216,24 +216,39 @@ Nếu bạn chưa biết về [git](https://git-scm.com) thì vui lòng tham kh
- Tiếng Anh: [git - the simple guide](http://rogerdudler.github.io/git-guide/)
- Tiếng Việt: [Sổ tay git cho người mới bắt đầu](http://rogerdudler.github.io/git-guide/index.vi.html) (Việt hóa từ nội dung với link trên)
+### Nếu bạn không muốn sử dụng git
+
+Trên trang này, nhấp vào nút Code gần phía trên, sau đó nhấp vào "Download ZIP". Giải nén file và bạn có thể làm việc với các file văn bản.
+
+Nếu bạn mở trong một trình soạn thảo code hiểu markdown, bạn sẽ thấy mọi thứ được định dạng đẹp mắt.
+
+
+
+### Nếu bạn muốn làm quen với git
+
Tiếp theo, bạn cần biết cách gắp (fork) một repo trên github:
-- Tiếng Anh [Fork a repo](https://help.github.com/articles/fork-a-repo/)
+1. ***Fork GitHub repo:*** `https://github.com/jwasham/coding-interview-university` bằng cách clicking vào nút Fork.
+
+ 
+
- Tiếng Việt: [Cách gắp (fork) một repo trên github](https://techynovice.wordpress.com/2017/03/19/cach-gap-fork-mot-repository-tren-github/) (Việt hoá từ nội dung với link trên)
-Ok, bây giờ bạn có thể bắt đầu:
+1. Clone bản fork của bạn về máy tính cá nhân.
-- Fork repo này.
-- Clone bản fork của bạn về máy tính cá nhân.
- ```
- git clone https://github.com//coding-interview-university
+ ```bash
+ git clone https://github.com//coding-interview-university.git
+ cd coding-interview-university
+ git remote add upstream https://github.com/jwasham/coding-interview-university.git
+ git remote set-url --push upstream DISABLE # để bạn không đẩy Process cá nhân của mình trở lại repo gốc
```
+
- Chạy các dòng lệnh sau
- Tạo một branch mới để đánh dấu tiến độ của bạn:
```
git checkout -b progress
```
-- Check các phần đã hoàn thành bằng cách thêm `x` vào giữa cặp ngoặc vuông (`[ ]`), như thế này: `[x]`.
+1. Check các phần đã hoàn thành bằng cách thêm `x` vào giữa cặp ngoặc vuông (`[ ]`), như thế này: `[x]`.
- Chạy `git add .` để bắt đầu lưu lại các thay đổi.
- Chạy `git commit -m "commit message" `. Thay `commit message` với ghi chú của bạn cho sự thay đổi đó.
- Đồng bộ thay đổi với bản fork trên Github của bạn bằng `git push origin main`.
@@ -241,10 +256,11 @@ Ok, bây giờ bạn có thể bắt đầu:
## Đừng nghĩ rằng bạn không đủ thông minh
-- Các kỹ sư của Google là những người xuất sắc, nhưng nhiều người vẫn cho rằng họ không đủ thông minh, mặc dù họ đang làm việc tại Google.
-- [Bí mật của của Thiên Tài Lập Trình (The myth of the Genius Programmer) - video](https://www.youtube.com/watch?v=0SARbwvhupQ)
-- [ulie Pagano: Đi một mình rất nguy hiểm - Cuộc chiến với con quái vật vô hình trong công nghệ](https://www.youtube.com/watch?v=1i8ylq4j_EY)
-- [Hãy tin bạn có thể thay đổi](http://www.aaronsw.com/weblog/dweck)
+- Các kỹ sư phần mềm thành công thì thông minh, nhưng nhiều người lại tự ti rằng họ không đủ thông minh.
+- Những video sau đây có thể giúp bạn vượt qua nỗi tự ti này:
+ - [Bí mật của của Thiên Tài Lập Trình (The myth of the Genius Programmer) - video](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [ulie Pagano: Đi một mình rất nguy hiểm - Cuộc chiến với con quái vật vô hình trong công nghệ](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+ - [Hãy tin bạn có thể thay đổi](http://www.aaronsw.com/weblog/dweck)
## Về nguồn video
@@ -253,171 +269,130 @@ Một vài video chỉ xem được khi bạn tham gia vào các lớp học onl
Đôi khi các lớp chưa mở, và bạn phải đợi một vài tháng đến khi chúng được mở lại, do đó bạn không thể truy cập vào video được.
Lynda.com thì không miễn phí.
- Tôi sẽ rất cảm kích sự hỗ trợ của các bạn trong việc thêm các nguồn video miễn phí và luôn sẵn có, ví dụ như Youtube, để hỗ trợ nguồn video từ các khóa học online.
- Tôi cũng rất thích xem các bài giảng của các trường đại học.
+Tôi sẽ rất cảm kích sự hỗ trợ của các bạn trong việc thêm các nguồn video miễn phí và luôn sẵn có, ví dụ như Youtube, để hỗ trợ nguồn video từ các khóa học online.
+Tôi cũng rất thích xem các bài giảng của các trường đại học.
## Chọn ngôn ngữ lập trình cho cuộc phỏng vấn
-Bạn có thể chọn ngôn ngữ mà bạn quen thuộc để thực hiện phần viết mã trong lúc phỏng vấn, nhưng với Google, những ngôn ngữ sau đây là thích hợp nhất:
-
-- C++
-- Java
-- Python
-
-Bạn cũng có thể sử dụng các ngôn ngữ sau đây, nhưng hãy tìm hiểu thêm trước. Chúng có thể có bất lợi:
-
-- JavaScript
-- Ruby
-
-Dù sao, bạn cũng cần phải rất quen thuộc với ngôn ngữ lập trình của mình.
-
-Xem thêm về các sự lựa chọn:
-
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
-- https://www.quora.com/What-is-the-best-language-to-program-in-for-an-in-person-Google-interview
-
-[Xem tài liệu về các ngôn ngữ ở đây](/programming-language-resources.md)
-
-Bạn sẽ thấy vài tài liệu về C, C++ và Python bên dưới, vì tôi đang học chúng. Ngoài ra còn có một vài đầu sách nữa, xem ở cuối.
-
-
-## Danh mục sách
+Bạn sẽ cần phải chọn một ngôn ngữ lập trình cho các cuộc phỏng vấn lập trình mà bạn tham gia,
+nhưng bạn cũng cần tìm một ngôn ngữ mà bạn có thể sử dụng để nghiên cứu các khái niệm khoa học máy tính.
-Đây là danh sách rút gọn từ những gì mà tôi đọc, để tiết kiệm thời gian cho bạn. (xem bên dưới).
+Ưu tiên là ngôn ngữ đó sẽ giống nhau, để bạn chỉ cần thành thạo một ngôn ngữ.
+### Đối với Kế Hoạch Học Tập này
-### Chuẩn bị phỏng vấn
+Khi tôi thực hiện kế hoạch học tập, tôi đã sử dụng 2 ngôn ngữ cho hầu hết phần này: C và Python
+* C: Ngôn ngữ bậc thấp. Cho phép bạn làm việc với con trỏ và cấp phát/giải phóng bộ nhớ, vì vậy bạn cảm nhận được cấu trúc dữ liệu
+ và thuật toán trong tâm can của mình. Trong các ngôn ngữ cấp cao hơn như Python hoặc Java, những điều này được ẩn đi. Trong công việc hàng ngày, điều đó thật khủng khiếp,
+ nhưng khi bạn đang học cách xây dựng những cấu trúc dữ liệu cấp thấp này, thật tuyệt vời khi cảm thấy gần với phần cứng.
+ - C có mặt ở khắp mọi nơi. Bạn sẽ thấy các ví dụ trong sách, bài giảng, video, *ở khắp mọi nơi* trong khi bạn đang học.
+ - [Ngôn ngữ lập trình C, Ấn bản thứ 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - Đây là một cuốn sách ngắn, nhưng nó sẽ giúp bạn hiểu rõ về ngôn ngữ C và nếu bạn thực hành một chút
+ bạn sẽ nhanh chóng trở nên thành thạo. Hiểu C giúp bạn hiểu cách hoạt động của chương trình và bộ nhớ.
+ - Bạn không cần phải đi sâu quá vào cuốn sách (hoặc thậm chí hoàn thành nó). Chỉ cần học cho đến khi bạn cảm thấy thoải mái khi đọc và viết bằng C.
+* Python: Hiện đại và rất biểu cảm, tôi học nó vì nó chỉ đơn giản là rất hữu ích và cũng cho phép tôi viết ít code hơn trong một cuộc phỏng vấn.
-- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4nd Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - Có câu trả lời bằng C++ và Java
- - Được khuyến khích bởi các khóa hướng dẫn của Google.
- - Đây là một phần luyện tập tốt trước khi bắt đầu với quyển Cracking the Coding Interview
- - Không quá khó, phần lớn các bài toán có lẽ dễ hơn nhiều so với những gì bạn thường thấy trong một buổi phỏng vấn (dựa theo những gì tôi đọc được)
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Trả lời bằng Java
- - Được khuyến nghị trên [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
- - Nếu bạn thấy mọi người trích dẫn "The Google Resume", đó là một cuốn sách được thay thế bởi "Cracking the Coding Interview".
-
-Nếu bạn có nhiều thời gian hơn nữa:
-
-- [ ] [Elements of Programming Interviews](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
- - Code trên C++, rất tốt nếu bạn muốn sử dụng C++ làm ngôn ngữ chính cho cuộc phỏng vấn.
- - Một quyển sách hay về giải quyết vấn đề nói chung.
+Đây là các khuyến nghị của tôi. Tất nhiên bạn có thể làm những gì bạn thích.
+Có thể bạn không cần, nhưng dưới đây là một số trang web để học một ngôn ngữ mới:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
-### Kiến trúc máy tính
+### Cho Cuộc Phỏng Vấn Lập Trình của bạn
-Nếu không có nhiều thời gian:
+Bạn có thể sử dụng một ngôn ngữ mà bạn quen thuộc để làm phần lập trình trong cuộc phỏng vấn, nhưng đối với các công ty lớn, những ngôn ngữ sau đây là thích hợp nhất:
-- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- - Quyển này được xuất bản năm 2004, phần nào đã lỗi thời, nhưng nó vẫn là một tài liệu tuyệt vời để tìm hiểu về máy tính một cách ngắn gọn.
- - Tác giả phát minh ra HLA (High Level Assembly), vậy nên hãy hãy chú ý một chút về các ví dụ và định nghĩa trong sách. Tuy không được sử dụng rộng rãi, nhưng đó là một ví dụ hiện đại về hợp ngữ.
- - Những chương này rất đáng đọc để xây dựng cho bạn một nền tảng tốt (giữ nguyên gốc tiếng Anh):
- - Chapter 2 - Numeric Representation
- - Chapter 3 - Binary Arithmetic and Bit Operations
- - Chapter 4 - Floating-Point Representation
- - Chapter 5 - Character Representation
- - Chapter 6 - Memory Organization and Access
- - Chapter 7 - Composite Data Types and Memory Objects
- - Chapter 9 - CPU Architecture
- - Chapter 10 - Instruction Set Architecture
- - Chapter 11 - Memory Architecture and Organization
+- C++
+- Java
+- Python
-Nếu bạn có nhiều thời gian (tôi đã muốn đọc quyển này):
+Bạn cũng có thể sử dụng các ngôn ngữ sau đây, nhưng hãy tìm hiểu thêm trước. Chúng có thể có bất lợi:
-- [ ] [Computer Architecture, Fifth Edition: A Quantitative Approach](https://www.amazon.com/dp/012383872X/)
- - Dành cho người có điều kiện hơn, sách được cập nhật gần hơn (2011), đồng thời đòi hỏi nhiều thời gian hơn để thấm.
+- JavaScript
+- Ruby
+Dưới đây là một bài viết mà tôi đã viết về việc chọn ngôn ngữ cho cuộc phỏng vấn:
+[Chọn Một Ngôn Ngữ cho Cuộc Phỏng Vấn Lập Trình](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+Đây là bài viết gốc mà bài đăng của tôi dựa trên: [Chọn Một Ngôn Ngữ Lập Trình cho Cuộc Phỏng Vấn](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
-### Từng ngôn ngữ riêng biệt
+Bạn cần phải quen thuộc với ngôn ngữ và có kiến thức về nó.
-**Bạn phải chọn một ngôn ngữ cho cuộc phỏng vấn (xem ở trên).** Đây là các khuyến nghị của tôi. Tôi không có tài liệu cho tất cả các ngôn ngữ lập trình, vậy nên, đóng góp từ bạn luôn được chào đón.
-Nếu bạn muốn đọc xuyên suốt một trong những quyển sách này, bạn nên có kiến thức về cấu trúc dữ liệu và giải thuật. Bạn cũng nên luyện tập giải toán lập trình.
+Xem thêm về các sự lựa chọn:
-**Bạn có thể bỏ qua bài giảng video trong project này**, trừ khi bạn muốn tự đánh giá lại kiến thức của mình.
+- [Chọn ngôn ngữ đúng cho cuộc phỏng vấn lập trình](http://www.byte-by-byte.com/)choose-the-right-language-for-your-coding-interview/
-[Đây là tài liệu ngôn ngữ lập trình bổ sung.](/programming-language-resources.md)
+[Xem tài liệu về các ngôn ngữ ở đây](/programming-language-resources.md)
+## Sách về Cấu Trúc Dữ Liệu và Thuật Toán
-### C++
+Cuốn sách này sẽ tạo nền tảng cho khoa học máy tính của bạn.
-Tôi chưa đọc 2 cuốn này, nhưng chúng được đánh giá cao, và được viết bởi Sedgewick. Giáo sư Sedgewick rất xuất sắc.
+Chỉ cần chọn một cuốn, bằng một ngôn ngữ mà bạn quen thuộc. Bạn sẽ đọc và code rất nhiều.
-- [ ] [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/)
+### C
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Cơ bản, Cấu trúc dữ liệu, Sắp xếp, Tìm kiếm, và Thuật toán đồ thị
-Nếu bạn có đề xuất nào tốt hơn cho C++, hãy cho tôi biết. Tôi đang tìm một tài liệu súc tích.
+### Python
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - của Goodrich, Tamassia, Goldwasser
+ - Tôi thích cuốn này. Nó bao gồm mọi thứ cần thiết và hơn thế nữa.
+ - Pythonic code (code theo đúng phong cách Python)
+ - Cảm nhận của tôi: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
### Java
-- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - Video và mục lục của sách (và Sedgewick!):
- - [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
- - [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
+Lựa chọn ở bạn:
-hoặc:
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick và Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Khóa học Coursera miễn phí bao gồm cuốn sách (do các tác giả giảng dạy!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
-- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- - Bởi Goodrich, Tamassia, Goldwasser
- - Được sử dụng làm tài liệu tham khảo cho khóa Dẫn nhập vào khoa học máy tính của UC Berkeley
- - Hãy xem mục sách của tôi bên dưới cho phiên bản Python. Cuốn sách này cũng bao phủ các chủ đề đó.
-
-
-### Python
+### C++
-- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - Bởi Goodrich, Tamassia, Goldwasser
- - Tôi thích cuốn này. Nó bao phủ mọi thứ cần thiết và hơn thế nữa.
- - Pythonic code (code theo đúng phong cách Python)
- - Báo cáo đọc sách mới toanh của tôi: https://googleyasheck.com/book-report-data-structures-and-algorithms-in-python/
+Lựa chọn ở bạn:
+- Goodrich, Tamassia, and Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick và Wayne
+ - [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/)
-### Sách tùy chọn
+## Sách chuẩn bị phỏng vấn
-**Một vài người đề xuất mấy quyển này, nhưng tôi nghĩ chúng là quá nặng, trừ khi bạn có nhiều kinh nghiệm với kỹ nghệ phần mềm và đang mong đợi một cuộc phỏng vấn khó hơn nhiều:**
+Bạn không cần phải mua nhiều sách như thế này. Thực sự "Cracking the Coding Interview" có lẽ đã đủ,
+nhưng tôi đã mua thêm để tạo thêm cơ hội thực hành cho bản thân. Nhưng tôi luôn luôn làm quá mức.
+Tôi đã mua cả hai. Chúng đã cho tôi rất nhiều bài tập thực hành.
-- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- - Như một tài liệu ôn tập và hỗ trợ nhận dạng vấn đề.
- - Danh mục thuật toán thật sự vượt xa độ khó của một cuộc phỏng vấn.
- - Cuốn sách có 2 phần:
- - Giáo trình về cấu trúc dữ liệu và giải thuật:
- - Ưu:
- - Là một bài tổng quát tốt tương đương với các giáo trình khác.
- - Nhiều câu chuyện thú vị từ kinh nghiệm của tác giả trong việc giải quyết các vấn đề thực tế và trong giới học thuật.
- - Code mẫu bằng C.
- - Nhược:
- - Cô đặc và có thể khó hiểu ngang với CLRS, và trong một số chủ đề, CLRS có thể là một tài liệu tốt hơn để tham khảo.
- - Các chương 7, 8, 9 có thể rất vất vả để theo được, vì một vài phần không được giải thích rõ, hoặc là yêu cầu nhiều não hơn những gì tôi có.
- - Đừng hiểu lầm: Tôi thích Skiena, cách dạy học và phong các của ông ấy, nhưng tôi có lẽ không đủ khả năng để tốt nghiệp ở Stony Brook (nơi Skiena giảng dạy).
- - Danh mục thuật toán:
- - Đây là phần chính yếu mà bạn mua được từ quyển sách.
- - Sắp đến được phần này rồi. Tôi sẽ cập nhật một khi tôi xong với nó.
- - Trích dẫn từ Yegge: "Hơn hẳn những quyến sách khác, cuốn này giúp tôi hiểu rõ các bài toán về Graph phổ biến một cách đáng kinh ngạc và quan trọng như thế nào - chúng nên là một phần trong các công cụ của bất kỳ lập trình viên nào. Quyển sách đồng thời cũng bao phủ các cấu trúc dữ liệu cơ bản, các thuật toán sắp xếp. Đó là một điểm cộng. Nhưng phần quý giá thật sự nằm ở nửa sau, chính là bách khoa toàn thư ngắn gọn về hàng triệu bài toán hữu dụng và vô số cách để giải quyết chúng, trình bày sơ lược. Mỗi trang đều có một hình minh họa, giúp người đọc dễ ghi nhớ hơn. Đó là một cách tốt đề định dạng và phân loại các bài toán".
- - Có thể thuê quyển sách này trên Kindle
- - Half.com là một trang hữu dụng để tìm sách với giá tốt.
- - Câu trả lời cho các bài tập trong sách:
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
- - [Danh mục lỗi của sách](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4nd Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - Có câu trả lời bằng C++ và Java
+ - Được khuyến khích bởi các khóa hướng dẫn của Google.
+ - Đây là một phần luyện tập tốt trước khi bắt đầu với quyển Cracking the Coding Interview
+ - Không quá khó, phần lớn các bài toán có lẽ dễ hơn nhiều so với những gì bạn thường thấy trong một buổi phỏng vấn (dựa theo những gì tôi đọc được)
+- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Trả lời bằng Java
+ - Được khuyến nghị trên [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
+ - Nếu bạn thấy mọi người trích dẫn "The Google Resume", đó là một cuốn sách được thay thế bởi "Cracking the Coding Interview".
-- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
- - **Chú ý:** Đọc cuốn này chỉ có một ít giá trị. Đây là một tổng hợp xuất sắc về giải thuật và cấu trúc dữ liệu, nhưng nó không dạy cho bạn cách viết code xuất sắc. Để làm một lập trình viên giỏi, bạn đồng thời phải có khả năng phát triển một giải pháp một cách hiệu quả nữa.
- - Trích lời Yegge: "Nhưng nếu bạn muốn đến với buổi phỏng vấn một cách có chuẩn bị, vậy hãy hoãn đơn xin ứng tuyển lại cho đến khi bạn hoàn tất quyển sách này"
- - Half.com là một trang hữu dụng để tìm sách với giá tốt.
- - Đôi được gọi là CLR, hoặc là CLRS (trích chữ cái đầu trong tên của các tác giả), vì Stein (một trong 4 tác giả, S trong CLRS) nhập cuộc trễ
+### Nếu bạn có nhiều thời gian hơn nữa:
-- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
- - Vài chương đầu trình bày những giải pháp thông minh để giải quyết các vấn đề lập trình (một số đã rất cũ, từ thời người ta còn sử dụng băng từ). Nhưng, đó chỉ là phần mở đầu. đây là một quyển sách về thiết kế và cấu trúc phần mềm, giống như Code Complete, nhưng ngắn hơn nhiều.
+Chọn 1:
-- ~~"Algorithms and Programming: Problems and Solutions" by Shen~~
- - Sách tạm được, nhưng sau khi làm việc với các bài toán trong vài trang, tôi thấy nhức đầu với ngôn ngữ Pascal, do-while loop, mảng bắt đầu với số 1 (thay vì 0 như Java, C, C++, ...), và một vài thông tin không rõ ràng.
- - Lẽ ra nên dành thời gian để giải toán từ các quyển sách khác hoặc làm toán lập trình online.
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [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)
## Đừng phạm sai lầm của tôi
@@ -433,19 +408,27 @@ Hãy đọc để tránh phạm phải sai lầm tương tự:
[Retaining Computer Science Knowledge](https://googleyasheck.com/retaining-computer-science-knowledge/)
-### 2. Sử dụng thẻ ghi nhớ
+### 2. Sử dụng flash card
-Để giải quyết vấn đề, tôi đã viết 1 trang web nhỏ về thẻ ghi nhớ để thêm các thẻ mới với 2 dạng chính: kiến thức chung và code.
+Để giải quyết vấn đề, tôi đã viết 1 trang web nhỏ về flash card để thêm các thẻ mới với 2 dạng chính: kiến thức chung và code.
Mỗi loại có định dạng riêng.
Tôi đã làm một trang mobile-first (lấy mobile là trọng tâm phát triển trang web) để có thể xem trên điện thoại và máy tính bảng, ở bất cứ đâu.
Tự tạo cho mình hoàn toàn miễn phí:
-- [Repo của trang thẻ ghi nhớ](https://github.com/jwasham/computer-science-flash-cards)
-- [Cơ sở dữ liệu thẻ ghi nhớ của tôi](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db): Lưu ý là tôi có đi hơi xa và các thẻ ghi nhớ có thể bao gồm cả hợp ngữ (ngôn ngữ máy) và Python cho đến cả máy học (machine learning) và thống kê. Như thế là quá nhiều cho các yêu cầu từ Google.
+- [Repo của flash card site](https://github.com/jwasham/computer-science-flash-cards)
+
+**TÔI KHÔNG KHUYẾN NGHỊ sử dụng bộ flash card của tôi.** Có quá nhiều và hầu hết chúng là những thông tin vặt không cần thiết.
+
+Nhưng nếu bạn không muốn nghe lời tôi, đây là những gì bạn cần:
+- [Cơ sở dữ liệu flash card của tôi (1200 thẻ)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Cơ sở dữ liệu flash card của tôi (quá nhiều - 1800 thẻ)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-**Ghi chú dành cho các thẻ ghi nhớ:** Lần đầu tiên bạn nhận ra bạn biết câu trả lời, đừng đánh dấu là đã biết.Bạn phải xem thẻ tương tự và đưa ra câu trả lời chính xác vài lần trước khi bạn thực sự khẳng định đã nắm được vấn đề. Lặp đi lặp lại việc này sẽ giúp kiến thức được khắc sâu vào não bạn.
+Hãy nhớ rằng tôi đã làm quá mức và các flash card có thể bao gồm cả assembly (ngôn ngữ máy) và Python cho đến cả máy học (machine learning) và thống kê.
+Như thế là quá nhiều so với những gì cần thiết.
+
+**Ghi chú dành cho các flash card:** Lần đầu tiên bạn nhận ra bạn biết câu trả lời, đừng đánh dấu là đã biết.Bạn phải xem thẻ tương tự và đưa ra câu trả lời chính xác vài lần trước khi bạn thực sự khẳng định đã nắm được vấn đề. Lặp đi lặp lại việc này sẽ giúp kiến thức được khắc sâu vào não bạn.
Có thể thay thế thẻ ghi nhớ với [Anki](http://ankisrs.net/), đây là ứng dụng mà bạn sẽ thấy tôi khuyến khích sử dụng rất nhiều lần. Nó sử dụng một hệ thống lặp để giúp bạn có thể ghi nhớ được kiến thức.
@@ -453,6 +436,8 @@ Có thể thay thế thẻ ghi nhớ với [Anki](http://ankisrs.net/), đây l
Cơ sở dữ liệu thẻ ghi nhớ của tôi tuân theo chuẩn định dạng của Anki: https://ankiweb.net/shared/info/25173560 (cảm ơn [@xiewenya](https://github.com/xiewenya))
+Một số sinh viên đã đề cập đến vấn đề định dạng với khoảng trắng có thể được sửa bằng cách thực hiện như sau: mở bộ thẻ, chỉnh sửa thẻ, nhấp vào thẻ, chọn nút "styling", và thêm "white-space: pre;" vào class thẻ.
+
Tôi giữ một danh sách xem nhanh các mã của ASCII, OSI stack, định nghĩa về Big-O, và nhiều hơn nữa. Tôi đọc bất cứ khi nào rảnh rỗi.
Khi gặp vấn đề trong lúc code, nghỉ ngơi chừng nửa giờ và đọc lại các thẻ ghi nhớ.
@@ -465,8 +450,8 @@ Bắt đầu làm câu hỏi phỏng vấn lập trình trong khi bạn đang h
Bạn cần áp dụng những gì bạn đang học để giải quyết vấn đề, nếu không bạn sẽ quên. Tôi đã mắc phải lỗi này.
-Một khi bạn đã học một chủ đề, và cảm thấy khá thoải mái với nó, ví dụ, **danh sách liên kết**:
-1. Mở một trong những [sách phỏng vấn lập trình](#danh-mục-sách) (hoặc trang web về vấn đề lập trình, được liệt kê dưới đây)
+Một khi bạn đã học một chủ đề, và cảm thấy khá quen thuộc với nó, ví dụ, **danh sách liên kết**:
+1. Mở một trong những [Sách chuẩn bị phỏng vấn](#sách-chuẩn-bị-phỏng-vấn) (hoặc trang web về vấn đề lập trình, được liệt kê dưới đây)
1. Làm 2 hoặc 3 câu hỏi liên quan đến danh sách liên kết.
1. Chuyển sang chủ đề học tiếp theo.
1. Sau đó, quay lại và làm thêm 2 hoặc 3 vấn đề về danh sách liên kết.
@@ -480,84 +465,50 @@ Có rất nhiều nguồn lực cho điều này, được liệt kê dưới đ
### 4. Tập trung
-Có rất nhiều thứ lấy đi sự tập trung của ta, việc này tốn rất nhiều thời gian. Tập trung và toàn tâm toàn ý rất khó.
-
+Có rất nhiều thứ lấy đi sự tập trung của ta, việc này tốn rất nhiều thời gian. Tập trung và toàn tâm toàn ý rất khó. Bật vài bản nhạc không lời và bạn có thể tập trung hơn.
## Những phần không được đề cập
+Có vài công nghệ đang thịnh hành nhưng không được đề cập đến, ví dụ:
-Danh sách lớn này bắt đầu như một bản To-do lược trích từ Huấn luyện phỏng vấn cho Google. Có vài công nghệ đang thịnh hành nhưng không được đề cập đến, ví dụ:
-
-- SQL
- Javascript
- HTML, CSS, và các công nghệ thiết kế giao diện người dùng ("front-end").
-
-
-## Kiến thức tiên quyết
-
-- [ ] **Học C**
- - C có ở khắp nơi. Bạn sẽ thấy các ví dụ trong sách, bài giảng, video, bất kỳ đâu mà bạn học.
- - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - Sách ngắn, nhưng nó sẽ cho bạn một nền tảng tốt về C, và nếu bạn luyện tập nhiều hơn, bạn sẽ nhanh chóng thành thạo nó. Hiểu về C giúp bạn hiểu cách các chương trình và bộ nhớ hoạt động.
- - [Lời giải cho các câu hỏi](https://github.com/lekkas/c-algorithms)
-
-- [ ] **Máy tính thực thi một chương trình như thế nào?**
- - [ ] [CPU thực thi chương trình thế nào (How does CPU execute program) - video](https://www.youtube.com/watch?v=42KTvGYQYnA)
- - [ ] [Tập lệnh mã máy (Machine Code Instructions) - video](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
+- SQL
## Kế hoạch hàng ngày
-Một vài môn học chỉ mất một ngày, vài môn khác có thể mất nhiều ngày. Có vài môn chỉ có thể học thôi chứ không cài đặt được gì.
-
-Mỗi ngày tôi sẽ chọn một trong các thứ liệt kê bên dưới, xem video bải giảng về nó, và viết mã trên:
-- C - luyện tập sử dụng `struct` và các hàm nhận các `struct` đó cùng với các tham số khác.
-- C++ - không sử dụng các kiểu dữ liệu, cấu trúc sẵn có.
-- C++ - sử dụng các kiểu, cấu trúc sẵn có, ví dụ như `std::list` cho danh sách liên kết.
-- Python - sử dụng kiểu, cấu trúc sẵn có (để luyện tập Python).
-- Viết test (thuật ngữ dành cho các đoạn mã chuyên để kiểm tra phần mềm, ở đây tác giả có lẽ muốn đề cập đến [unit test](https://en.wikipedia.org/wiki/Unit_testing)) để chắc rằng tôi làm đúng. Đôi khi có thể chỉ là vài hàm `assert()` đơn giản.
-- Bạn có thể thực hành với Java hoặc ngôn ngữ khác. Đây chỉ là sự lựa chọn của tôi.
-
-Bạn không cần luyện tất cả các ngôn ngữ đó. Chỉ cần [một ngôn ngữ cho cuộc phỏng vấn là đủ](#chọn-ngôn-ngữ-lập-trình-cho-cuộc-phỏng-vấn).
+Khóa học này bao gồm rất nhiều chủ đề. Mỗi chủ đề có thể mất của bạn vài ngày, hoặc thậm chí hơn một tuần. Điều này phụ thuộc vào lịch trình của bạn.
-Tại sao lại viết mã với tất cả các ngôn ngữ đó?
-
-- Luyện tập, luyện tập, luyện tập, cho đến khi tôi phát bệnh với việc đó, và có thể giải các bài toán mà không gặp trục trặc gì (một vài bài toán có thể có nhiều trường hợp đặc biệt, hãy lưu lại các lần sai lầm đề ghi nhớ)
-- Tôi muốn làm việc với các sức ép căn bản nhất (xin cấp phát/ giải phóng vùng nhớ, không sử dụng trợ giúp từ bộ dọn rác trong các ngôn ngữ câp cao, ngọai trừ Python)
-- Học cách vận dụng kiểu dữ liệu sẵn có, nhờ đó, tôi có kinh nghiệm nhiều hơn và biết cách dùng chúng trong thực tế (sẽ không bao giờ bỏ thời gian ra tự thiết kế danh sách liên kết của riêng mình nữa).
-
-Tôi có lẽ không đủ thời gian để thử hết tất cả các bước trên với từng chủ đề, nhưng tôi sẽ cố.
-
-Bạn có thể xem code của tôi ở các trang sau:
+Mỗi ngày, hãy chọn chủ đề tiếp theo trong danh sách, xem một số video về chủ đề đó, sau đó viết code về
+cấu trúc dữ liệu hoặc thuật toán đó bằng ngôn ngữ bạn đã chọn cho khóa học này.
+Bạn có thể xem code của tôi tại đây:
- [C](https://github.com/jwasham/practice-c)
- [C++](https://github.com/jwasham/practice-cpp)
- [Python](https://github.com/jwasham/practice-python)
-Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật.
-
-Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính.
-
+Bạn không cần phải ghi nhớ mọi thuật toán. Bạn chỉ cần hiểu đủ để có thể viết cài đặt của riêng bạn.
## Luyện tập các câu hỏi coding
Tại sao cái này lại ở đây? Tôi chưa sẵn sàng để phỏng vấn.
-[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
+[Then go back and read this.](#3-làm-câu-hỏi-phỏng-vấn-lập-trình-trong-khi-bạn-đang-học)
Lý do bạn cần thực hành giải các bài toán lập trình:
-- Nhận biết vấn đề, và xác định cấu trúc dữ liệu và thuật toán phù hợp
-- Thu thập yêu cầu cho vấn đề
-- Trình bày quá trình giải quyết vấn đề như bạn sẽ làm trong buổi phỏng vấn
-- Lập trình trên bảng trắng hoặc giấy, không phải máy tính
-- Đưa ra độ phức tạp về thời gian và không gian cho các giải pháp của bạn (xem Big-O dưới đây)
-- Kiểm tra các giải pháp của bạn
+- Nhận diện vấn đề, lựa chọn cấu trúc dữ liệu và thuật toán phù hợp
+- Xác định các yêu cầu của vấn đề
+- Trình bày cách suy nghĩ của bạn như thể bạn đang trong buổi phỏng vấn
+- Lập trình trên bảng trắng hoặc trên giấy, không phải với máy tính
+- Đưa ra được tính toán độ phức tạp về thời gian và không gian thực thi của giải pháp của bạn (xem Big-O phía dưới)
+- Kiểm tra giải pháp của bạn
Có một lời giới thiệu tuyệt vời về việc giải quyết vấn đề một cách có phương pháp và giao tiếp trong một cuộc phỏng vấn.
Bạn cũng sẽ nhận được điều này từ các sách phỏng vấn lập trình, nhưng tôi thấy điều này xuất sắc::
[Thuật toán thiết kế canvas](http://www.hiredintech.com/algorithm-design/)
-Viết mã trên bảng trắng hoặc giấy, không phải máy tính. Kiểm tra với một số đầu vào mẫu. Sau đó gõ nó và kiểm tra nó trên máy tính.
+Viết code trên bảng trắng hoặc giấy, không phải máy tính. Kiểm tra với một số đầu vào mẫu. Sau đó gõ nó và kiểm tra nó trên máy tính.
Nếu bạn không có bảng trắng ở nhà, hãy mua một tờ giấy vẽ lớn từ cửa hàng mỹ thuật. Bạn có thể ngồi trên ghế sofa và thực hành.
Đây là "bảng trắng sofa" của tôi. Tôi đã thêm bút vào ảnh chỉ để đo lường. Nếu bạn sử dụng bút, bạn sẽ ước gì mình có thể tẩy.
@@ -567,11 +518,11 @@ Nhanh chóng trở nên lộn xộn. **Tôi sử dụng 1 chiếc bút chì và
**Việc luyện tập giải các bài toán lập trình không phải là việc học thuộc lòng các câu trả lời cho các vấn đề lập trình.**
-## Các Bài Toán Lập Trình
+## Giải bài toán lập trình
-Đừng quên các sách phỏng vấn lập trình quan trọng của bạn [ở đây](#interview-prep-books).
+Đừng quên các sách phỏng vấn lập trình quan trọng của bạn [ở đây](#sách-chuẩn-bị-phỏng-vấn).
-iải quyết vấn đề:
+Giải quyết vấn đề:
- [Cách tìm ra một giải pháp](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
- [Cách phân tích một bài toán Topcoder](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
@@ -596,7 +547,7 @@ Trang web Thử thách/Thực hành:
- [AlgoExpert](https://www.algoexpert.io/product)
- Được tạo bởi các kỹ sư của Google, đây cũng là một nguồn tài nguyên tuyệt vời để trau dồi kỹ năng của bạn.
- [Project Euler](https://projecteuler.net/)
- - Rất tập trung vào toán học và không thực sự phù hợp với các cuộc phỏng vấn viết mã
+ - Rất tập trung vào toán học và không thực sự phù hợp với các cuộc phỏng vấn viết code
## Bắt Đầu Nào
@@ -605,37 +556,36 @@ Trang web Thử thách/Thực hành:
Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi bạn đang học!
## Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận
-- Link được giữ nguyên theo bản tiếng Anh
+
+- Ở đây không có gì phải code, bạn chỉ xem video và ghi chép thôi!
+- Có rất nhiều video. Chỉ cần xem đủ cho đến khi bạn hiểu nó. Bạn luôn có thể quay lại và kiểm tra kiến thức.
+- Đừng lo lắng nếu bạn không hiểu hết phép toán đằng sau nó.
+- Bạn chỉ cần hiểu cách thể hiện độ phức tạp của một thuật toán bằng Big-O.
- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
-- [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
-- [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
-- [ ] [UC Berkeley Big O (video)](https://youtu.be/VIS4YDpuP98)
-- [ ] [UC Berkeley Big Omega (video)](https://youtu.be/ca3e7UVmeUc)
+- [ ] [Skiena (video)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
- [ ] TopCoder (includes recurrence relations and master theorem):
- - [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- - [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
+ - [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+Ồ, chắc cũng đủ rồi.
- Nếu một vài bài học quá chuyên sâu về toán, bạn có thể nhảy cóc tới các bài toán riêng lẻ để có kiến thức toàn diện hơn.
+Khi bạn đọc "Cracking the Coding Interview", có một chương về điều này, và cuối chương có một bài kiểm tra để xem
+nếu bạn có thể xác định độ phức tạp thời gian chạy của các thuật toán khác nhau. Đó là một bài ôn tập và kiểm tra tuyệt vời.
## Cấu trúc dữ liệu
- ### Arrays
- - Cấp phát mảng vector tự động tùy biến kích cỡ.
- - [ ] Miêu tả, tên gốc được giữ nguyên kèm với bản dịch sang tiếng Việt:
- - [Arrays - Mảng (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
- - [UCBerkley CS61B - Linear and Multi-Dim Arrays - Mảng tuyến tính và mảng đa chiều(video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
- - [Dynamic Arrays - Mảng tùy biến (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
+ - [ ] Về Arrays:
+ - [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC Berkeley CS61B - Linear and Multi-Dim Arrays - Mảng tuyến tính và mảng đa chiều(video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - [Dynamic Arrays - Mảng tùy biến (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- [Jagged Arrays - Mảng trong mảng (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [ ] Cấp phát vector (Mảng có thể thay đổi với khả năng tự điều chỉnh kích cỡ):
- [ ] Tập sử dụng mảng và con trỏ, dùng phép toán con trỏ để nhảy tới một chỉ mục (index) thay vì sử dụng chỉ mục.
@@ -663,16 +613,18 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- Liên tục trong bộ nhớ, giúp cải thiện hiệu suất
- Không gian cần thiết = (Kích cỡ của mảng, thường >= n)* kích thước của 1 phần tử, cho dù là 2n, vẫn xem như O(n)
-- ### Linked Lists
+- ### Danh sách liên kết (Linked Lists)
- [ ] Miêu tả:
- - [ ] [Singly Linked Lists - Danh sách liên kết (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- - [ ] [CS 61B - Linked Lists - Danh sách liên kết (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
+ - [ ] [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - this builds the intuition.
+ - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- Không cần xem toàn bộ video, chỉ phần cấu trúc Node và cấp phát vùng nhớ.
- [ ] Danh sách liên kết so sánh với Mảng:
- - [Core Linked Lists Vs Arrays - Danh sách liên kết Vs Mảng (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- - [In The Real World Linked Lists Vs Arrays - Trong thực tế, Danh sách liên kết Vs Mảng (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays)
+ - [Core Linked Lists Vs Arrays - Danh sách liên kết Vs Mảng (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - [In The Real World Linked Lists Vs Arrays - Trong thực tế, Danh sách liên kết Vs Mảng (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- [ ] [Why you should avoid linked lists - Tại sao bạn nên tránh danh sách liên kết(video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- [ ] Ghi chú: Bạn cần kiến thức về con trỏ trỏ về con trỏ:
(Khi bạn chuyển một con trỏ vào trong 1 thân hàm khiến thay đổi địa chỉ mà con trỏ trỏ về)
@@ -698,12 +650,12 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- Không cần phải cài đặt
- ### Stack
- - [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- [ ] Sẽ không cài đặt. Cài đặt với mảng là điều hiển nhiên.
- ### Queue
- - [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
+ - [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- [ ] Cài đặt sử dụng danh sách liên kết, áp dụng con trỏ đuôi:
@@ -727,16 +679,19 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
+
- [ ] Các khóa học online:
- - [ ] [Core Hash Tables - Cơ bản về bảng băm (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
- - [ ] [Data Structures - Cấu trúc dữ liệu (video)](https://www.coursera.org/learn/data-structures/home/week/3)
- - [ ] [Phone Book Problem - Vấn đề sổ điện thoại (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
- - [ ] Phân phối bảng băm:
- - [Instant Uploads And Storage Optimization In Dropbox - Tải nhanh và tối ưu lưu trữ trong Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- - [Distributed Hash Tables - Phân phối bảng băm(video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
+ - [ ] [Core Hash Tables - Cơ bản về bảng băm (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Data Structures - Cấu trúc dữ liệu (video)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Phone Book Problem - Vấn đề sổ điện thoại (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] distributed hash tables:
+ - [Instant Uploads And Storage Optimization In Dropbox - Tải nhanh và tối ưu lưu trữ trong Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Distributed Hash Tables - Phân phối bảng băm(video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
- [ ] Cài đặt với mảng sử dụng thăm dò tuyến tính:
- hash(k, m) - m là kích thước của bảng băm
- add(key, value) - nếu khóa đã tồn tại, cập nhật giá trị
@@ -744,12 +699,12 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- get(key)
- remove(key)
-
## Kiến thức ngoài
- ### Tìm kiếm nhị phân
- [ ] [Tìm kiếm nhị phân (Binary Search) - video](https://www.youtube.com/watch?v=D5SrAga1pno)
- [ ] [Tìm kiếm nhị phân - Khan Academy (Binary Search) - video](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- - [ ] [giải thích chi tiết](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [giải thích chi tiết](https://www.topcoder.com/thrive/articles/Binary%20Search)
+ - [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
- [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- [ ] Cài đặt:
- Tìm kiếm nhị phân (trên mảng số nguyên đã sắp xếp)
@@ -767,6 +722,7 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- [ ] [The Bit Twiddler](http://bits.stephan-brumme.com/)
- [ ] [The Bit Twiddler Interactive](http://bits.stephan-brumme.com/interactive.html)
+ - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
- [ ] Phần bù 2 và phần bù 1 (2s and 1s complement)
- [Nhị phân: Cộng và trừ (Tại sao chúng ta sử dụng phần bù 2) - video](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- [Phần bù 1 (1s Complement)](https://en.wikipedia.org/wiki/Ones%27_complement)
@@ -775,48 +731,38 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [4 cách đê đếm các bit trong một byte - video](https://youtu.be/Hzuzo9NJrlc)
- [Đếm bit](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- [Làm thế nào để đếm số lượng các bit 1 trong một số 32 bit](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- - [ ] Làm tròn đến lũy thừa gần nhất của 2:
- - [Làm tròn lên lũy thừa kế tiếp của 2](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
- [ ] Đôi giá trị:
- [Swap](http://bits.stephan-brumme.com/swap.html)
- [ ] Giá trị tuyệt đối:
- [Giá trị tuyết đối của số nguyên](http://bits.stephan-brumme.com/absInteger.html)
-
## Cây
- ### Cây - Ghi chú và kiến thức nền
- - [ ] [Chuỗi bài giảng: Cây](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- - Xây dựng cây cơ bản.
- - Duyệt cây.
- - Các thuật toán biến đổi.
- - BFS - Tìm kiếm ưu tiên chiều rộng (breadth-first search)
- - [MIT (video)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - Các thứ tự duyết (BFS, sử dụng `queue`)
- Độ phức tạp thời gian: O(n)
- Độ phức tạp không gian: tốt nhất: O(1), tệ nhất: O(n/2)=O(n)
- - DFS - Tìm kiếm ưu tiên chiều sâu (depth-first search)
- - [MIT (video)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
- - Ghi chú:
- Độ phức tạp thời gian: O(n)
- Độ phức tạp không gian:
+ - [ ] [Chuỗi bài giảng: Cây](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - [ ] [Tree Traversal (video)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
+ - [ ] [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - BFS - Tìm kiếm ưu tiên chiều rộng (breadth-first search):
+ - Các thứ tự duyệt (BFS, sử dụng queue)
+ - Độ phức tạp thời gian: O(n)
+ - Độ phức tạp không gian: tốt nhất: O(1), tệ nhất: O(n/2)=O(n)
+ - DFS - Tìm kiếm ưu tiên chiều sâu (depth-first search)
+ - Độ phức tạp thời gian: O(n)
+ - Độ phức tạp không gian:
tốt nhất: O(log n) - trung bình: bằng chiều cao của cây
tệ nhất: O(n)
- - theo thứ tự (inorder) - (DFS: left, self, right)
- - nhánh con trước (postorder) - (DFS: left, right, self)
- - nhánh con sau (preorder) - (DFS: self, left, right)
+ - theo thứ tự (inorder) - (DFS: left, self, right)
+ - nhánh con trước (postorder) - (DFS: left, right, self)
+ - nhánh con sau (preorder) - (DFS: self, left, right)
- [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
-
-- ### Cây tìm kiếm nhị phân
+- ### Cây tìm kiếm nhị phân: BST
BST: Binary search tree - cây tìm kiếm nhị phân.
- [ ] [Ôn lại cây tìm kiếm nhị phân - video](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Chuỗi video](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- - Khởi đầu với bảng ký hiệu và đi xuyên suốt các ứng dụng của BST (Binary search tree).
- [ ] [Dẫn nhập - video](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT - video](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - [ ] [MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
- C/C++:
- [ ] [Cây tìm kiếm nhị phân - Cài đặt trên C/C++ - video](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- [ ] [Cài đặt BST - cấp phát bộ nhớ trên `stack` và `heap` - video](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
@@ -830,15 +776,15 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] [Xác định nút tiếp theo một nút cho trước khi duyệt cây inorder (Inorder Successor in a binary search tree) - video](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [ ] Cài đặt:
- - [ ] `insert` // thêm giá trị vào cây
+ - [ ] [`insert` // thêm giá trị vào cây](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
- [ ] `get_node_count` // lấy số lượng nút trong cây
- [ ] `print_values` // In ra gíá trị trong cây, từ nhỏ nhất đến lớn nhất
- [ ] `delete_tree` // Xóa cây
- [ ] `is_in_tree` // cho biết giá trị cho trước có tồn tại trong cây hay không
- - [ ] `get_height` // cho biết chiều cao của cây
+ - [ ] [ `get_height` // cho biết chiều cao của cây(chiều cao của node đơn là 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
- [ ] `get_min` // cho biết giá trị nhỏ nhất trong cây
- [ ] `get_max` // cho biết giá trị lớn nhất trong cây
- - [ ] `is_binary_search_tree` // kiểm tra xem cây cho trước có thỏa mãn điều kiện của một BST không.
+ - [ ] [`is_binary_search_tree` // kiểm tra xem cây cho trước có thỏa mãn điều kiện của một BST không](https://leetcode.com/problems/validate-binary-search-tree/)
- [ ] `delete_value` // xóa một giá trị trong cây
- [ ] `get_successor` // Trả về phần tử cao nhất trong cây liền sau một gíá trị cho trước hoặc -1 nếu không tìm được
@@ -852,11 +798,11 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] [Các toán tử cơ bản - video](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- [ ] [Cây nhị phân đầy đủ - video](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- [ ] [Mã giả - video](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- - [ ] [Heap Sort - video](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [Heap Sort - coursera - video](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [Xây dựng một heap - video](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- - [ ] [MIT: Heaps và Heap Sort - video](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [CS 61B Lecture 24: Priority Queues - video](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
+ - [ ] [Heap Sort - bắt đầu (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] [Xây dựng một heap - video](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
+ - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Xây dựng Heap với thời gian tuyến tính `O(n)`](https://www.youtube.com/watch?v=MiyLo8adrWw)
- [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- [ ] Tự cài đặt max-heap:
@@ -877,7 +823,7 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] Ghi chú:
- Cài đặt các thuật toán sắp xếp và với mỗi thuật toán, nắm vững độ phức tạp trong các trường hợp tốt nhất, xấu nhất và trung bình:
- - Bỏ qua sắp xếp nổi bọt (bubble sort) - thực thi thảm hại - O(n^2), trừ khi n <= 16
+ - Bỏ qua sắp xếp nổi bọt (bubble sort) - nó rất tệ - O(n^2), trừ khi n <= 16
- [ ] Tính ổn định của các thuật toán sắp xếp ("Sắp xếp nhanh (Quicksort) có ổn định không?")
- [Tính ổn định của các thuật toán sắp xếp](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability) (wiki)
- [Tính ổn định trong các thuật toán sắp xếp](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms) (stackoverflow)
@@ -887,7 +833,28 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- Tôi không khuyến khích sắp xếp một danh sách liên kết, nhưng sắp xếp trộn (Merge Sort) có vẻ hữu dụng trong trường hợp đó.
- [Sắp xếp trộn trên danh sách liên kết](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
-- Với sắp xếp vun đống (Heapsort), xem lại see cấu trúc Heap ở trên. Sắp xếp vun đống tốt, nhưng không ổn định.
+- Với sắp xếp vun đống (Heapsort), xem lại cấu trúc Heap ở trên. Sắp xếp vun đống tốt, nhưng không ổn định.
+
+- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Sắp xếp trộn (Merge Sort)](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] [2. Bottom-up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. Sorting Complexity](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. Comparators](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] [1. Quicksort](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] [2. Selection](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. Duplicate Keys](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. System Sorts](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] UC Berkeley:
+ - [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] [CS 61B 2014-04-21: Radix Sort(video)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
+
- [ ] [Sắp xếp nổi bọt (Bubble Sort) - video](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
- [ ] [Phân tích thuật toán sắp xếp nổi bọt (Analyzing Bubble Sort) - video](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
@@ -897,11 +864,11 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [ ] [Sắp xếp nhanh (Quicksort) - video](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
- [ ] [Sắp xếp chọn (Selection Sort) - video](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
-- [ ] Cài đặt cho sắp xếp trộn:
+- [ ] Code cho sắp xếp trộn (Merge sort):
- [ ] [Sử dụng mảng đệm (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
- [ ] [Sử dụng mảng đệm (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
- [ ] [Sắp xếp tại chỗ, không dùng mảng đệm (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
-- [ ] Cài đặt cho sắp xếp nhanh:
+- [ ] Cài đặt cho sắp xếp nhanh (Quick sor):
- [ ] [C](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
- [ ] [Cài đặt khác dùng C](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- [ ] [Python](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
@@ -921,53 +888,59 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- Với sắp xếp vun đống, xem lại cấu trúc Heap ở trên.
- [ ] Không nhất thiết, nhưng tôi khuyến khích xem các phần sau:
- - [ ] [Sedgewick - Sắp xếp theo cơ số (Radix Sorts) (6 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [1. Chuỗi trong Java (Strings in Java)](https://www.youtube.com/watch?v=zRzU-FWsjNU&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=6)
- - [ ] [2. Đếm các khóa đã được lập chỉ mục (Key Indexed Counting)](https://www.youtube.com/watch?v=CtgKYmXs62w&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=5)
- - [ ] [3. Sắp xếp cơ số ưu tiên chữ số thấp nhất (Least Significant Digit First String Radix Sort)](https://www.youtube.com/watch?v=2pGVq_BwPKs&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=4)
- - [ ] [4. Sắp xếp cơ số ưu tiên chữ số cao nhất (Most Significant Digit First String Radix Sort)](https://www.youtube.com/watch?v=M3cYNY90R6c&index=3&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [5. 3-way Radix Quicksort](https://www.youtube.com/watch?v=YVl58kfE6i8&index=2&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53): Sắp xếp cơ số kết hợp sắp xếp nhanh, trong đó, chỉ chia mảng ban đầu thành 3 nhóm (thay vì chia theo R nhóm trong sắp xếp cơ số thông thường).
- - [ ] [6. Mảng hậu tố (Suffix Arrays)](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1)
- - [ ] [Sắp xếp cơ số](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- - [ ] [Sắp xếp cơ số (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] [Sedgewick - Sắp xếp theo cơ số (Radix Sorts) (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] [1. Chuỗi trong Java (Strings in Java)](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] [2. Đếm các khóa đã được lập chỉ mục (Key Indexed Counting)](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
+ - [ ] [3. Sắp xếp cơ số ưu tiên chữ số thấp nhất (Least Significant Digit First String Radix Sort)](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] [4. Sắp xếp cơ số ưu tiên chữ số cao nhất (Most Significant Digit First String Radix Sort)](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] [5. 3-way Radix Quicksort](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5): Sắp xếp cơ số kết hợp sắp xếp nhanh, trong đó, chỉ chia mảng ban đầu thành 3 nhóm (thay vì chia theo R nhóm trong sắp xếp cơ số thông thường).
+ - [ ] [6. Mảng hậu tố (Suffix Arrays)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Sắp xếp cơ số (Radix Sort)](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] [Sắp xếp cơ số (Radix Sort)(video)](https://www.youtube.com/watch?v=xhr26ia4k38)
- [ ] [Sắp xếp cơ số, sắp xếp đếm (Counting Sort, thực thi thời gian tuyến tính, nhưng có nhiều giới hạn đối với dự liệu)- video](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [Sự ngẫu nhiên: Phép nhân ma trận, Sắp xếp nhanh và thuật toán của Freivalds - video](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Sắp xếp trong thời gian tuyến tính (Sorting in Linear Time) - video](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
-Nếu bạn muốn biết thêm chi tiết trong chủ đề này, xem qua phần "Sắp xếp" trong [Đọc thêm về một số đề tài](đọc-thêm-về-một-số-đề-tài)
+Tóm lại, dưới đây là biểu đồ trực quan của [15 thuật toán sắp xếp](https://www.youtube.com/watch?v=kPRA0W1kECg).
+Nếu bạn cần thêm chi tiết về chủ đề này, xem qua phần "Sắp xếp" trong [Đọc thêm về một số đề tài](#đọc-thêm-về-một-số-đề-tài)
## Đồ thị
Đồ thị có thể được sử dụng để miêu tả nhiều bài toán trong khoa học máy tính, vậy nên phần này cũng khá dài, tương đương với [Cây](#cây) và [Sắp xếp](#sắp-xếp).
-- Ghi chú từ Yegge:
- - Có 3 cách cơ bản để thể hiện một đồ thị trong bộ nhớ:
+- Ghi chú:
+ - Có 4 cách cơ bản để biểu diễn một đồ thị trong bộ nhớ:
- Các đối tượng (objects) và con trỏ (pointers)
- - Ma trận
+ - ma trận kề
- Danh sách kề (adjacency list)
+ - bản đồ kề
- Hãy làm quen với mỗi cách thể hiện và nắm vững ưu, nhược của nó.
- BFS và DFS - biết về độ phức tạp tính toán của chúng, ước lượng những sự được và mất khi sử dụng, và cài đặt chúng như thế nào
- Khi được trao cho một bài toán, hãy thử tìm một giải thuật sử dụng đồ thị trước khi nghĩ đến các hướng giải quyết khác.
+- [ ] MIT(videos):
+ - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] [Depth-First Search](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
+
- [ ] Các bài giảng của giáo sư Skiena, tốt để dẫn nhập:
- - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - Lecture 13 - Graph Algorithms (video)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - Lecture 14 - Graph Algorithms (con't) (video)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2020 - Lecture 10 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] [CSE373 2020 - Lecture 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] [CSE373 2020 - Lecture 12 - Depth First Search (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] [CSE373 2020 - Lecture 13 - Minimum Spanning Trees (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] [CSE373 2020 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
- [ ] Đồ thị (ôn tập và mở rộng) (tên video được giữ nguyên vì có quá nhiều thuật ngữ và viết tắt):
+
- [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
+ - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
- [ ] [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- [ ] [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- [ ] [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- [ ] [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] [CS 61B 2014 (starting at 58:09) (video)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
- - [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
+ - [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
- [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
@@ -983,7 +956,7 @@ Nếu bạn muốn biết thêm chi tiết trong chủ đề này, xem qua phầ
- [ ] [Hướng dẫn cài đặt thuật toán tìm đường đi A* - video](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- [ ] [Thuật toán tìm đường A* (E01: giải thích thuật toán) - video](https://www.youtube.com/watch?v=-L-WgKMFuhE)
-- Tôi sẽ viết mã cài đặt:
+- Tôi sẽ viết code cài đặt:
- [ ] DFS với danh sách kề (đệ quy)
- [ ] DFS với danh sách kề (lặp với stack)
- [ ] DFS với ma trận kề (adjacency matrix) (đệ quy)
@@ -1014,17 +987,23 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- Đệ quy đuôi tốt hơn hay không như thế nào?
- [ ] [Đệ quy đuôi là gì Tại sao nó không tốt(What Is Tail Recursion Why Is It So Bad)?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [ ] [Đệ quy đuôi (Tail Recursion) (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] [5 bước đơn giản để giải quyết bất kỳ vấn đề đệ quy(video)](https://youtu.be/ngCos392W4w)
+
+ Backtracking Blueprint: [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partitioning))
+ [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
- ### Quy hoạch động
- - Chủ đề này có thể hơi khó, và các bài toán giải được bằng quy hoạch động (Dynamic Programming - DP) phải được định nghĩa ở dạng quan hệ hồi quy, và tìm ra giải pháp quy hoạch động cũng không đơn giản.
- - Tôi nghĩ rằng nên xem qua nhiều bài toán mẫu về quy hoạch động cho đến khi bạn hiểu rõ các dạng mô hình của chúng.
+ - Có thể bạn sẽ không gặp bất kỳ vấn đề lập trình động nào trong cuộc phỏng vấn của mình, nhưng đáng giá để nhận biết một
+ vấn đề có thể là ứng cử viên cho lập trình động.
+ - Chủ đề này có thể khá khó khăn, vì mỗi vấn đề có thể giải quyết bằng DP (Dynamic Programming) phải được định rõ là một mối quan hệ đệ quy, và việc đưa ra nó có thể khá khó khăn.
+ - Tôi đề nghị xem nhiều ví dụ về các vấn đề DP cho đến khi bạn có sự hiểu biết vững chắc về mô hình liên quan.
- [ ] Video:
- - Video của giáo sư Skiena có thể hơi khó theo kịp vì ông ấy sử dụng bảng đen để giảng bài, và chữ hơi nhỏ
- - [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
+ - [ ] [Skiena: CSE373 2020 - Lecture 19 - Introduction to Dynamic Programming (video)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [Skiena: CSE373 2020 - Lecture 22 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
- [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
@@ -1034,11 +1013,11 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
- [ ] Coursera:
- [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
- - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
+ - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
+ - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
- [ ] [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- [ ] [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
+ - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
- [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
- ### Lập trình hướng đối tượng
@@ -1084,12 +1063,9 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] iterator
- [ ] composite
- [ ] flyweight
- - [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [Bắt đầu với thiết kế mẫu(Head First Design Patterns)](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- - Tôi biết có một cuốn sách kinh điển là "Design Patterns: Elements of Reusable Object-Oriented Software" nhưng cuốn Bắt đầu với thiết kế mẫu(Head First Design Patterns là một lựa chọn tuyệt vời cho người mới bắt đầu với OO.
+ - [ ] [Book: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - Tôi biết có một cuốn sách kinh điển là "Design Patterns: Elements of Reusable Object-Oriented Software" nhưng cuốn Bắt đầu với thiết kế mẫu(Head First Design Patterns) là một lựa chọn tuyệt vời cho người mới bắt đầu với OO.
- [ ] [Ghi nhớ: 101 Thiết kế mẫu và lưu ý dành cho lập trình viên (Handy reference: 101 Design Patterns & Tips for Developers)](https://sourcemaking.com/design-patterns-and-tips)
- [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
@@ -1105,7 +1081,7 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- ### NP, NP-Complete và thuật toán xấp xỉ gần đúng
- Cần biết về các trường hợp nổi tiếng của NP-complete như chuyên du hành doanh nhân hay vấn đề túi đựng đồ nghề (traveling salesman and the knapsack problem) để có thể trả lời khi người phỏng vấn hỏi một cách ẩn ý.
- - Know what NP-complete means.
+ - Hiểu được NP-complete nghĩa là gì.
- [ ] [Tính toán độ phức tạp (Computational Complexity) (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- [ ] Simonson:
- [ ] [Thuật toán tham lam và giới thiệu NP-complete (Greedy Algs. II & Intro to NP Completeness) (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
@@ -1113,9 +1089,10 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- [ ] Skiena:
- - [ ] [CSE373 2012 - Lecture 23 - Giới thiệu về NP-Completeness (Introduction to NP-Completeness) (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - Lecture 24 - Chứng mình NP-Completeness (NP-Completeness Proofs) (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 25 - Thách thức với NP-Completeness (NP-Completeness Challenge) (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] [CSE373 2020 - Lecture 23 - NP-Completeness (video)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23)
+ - [ ] [CSE373 2020 - Lecture 24 - Satisfiability (video)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24)
+ - [ ] [CSE373 2020 - Lecture 25 - More NP-Completeness (video)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25)
+ - [ ] [CSE373 2020 - Lecture 26 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
- [ ] [Độ phức tạp: P, NP, NP-completeness, giảm (Complexity: P, NP, NP-completeness, Reductions) (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [ ] [Độ phức tạp: Thuật toán gần đúng (Complexity: Approximation Algorithms) (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [ ] [Độ phức tạp: Thuật toán cố định tham số (Complexity: Fixed-Parameter Algorithms) (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
@@ -1123,6 +1100,14 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- Trang 1048 - 1140 trong CLRS nếu bạn có nó.
+- ### Cách máy tính xử lý một chương trình
+
+ - [ ] [Cách CPU thực thi một chương trình (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [Cách máy tính tính toán - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [Các thanh ghi và RAM (video)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [Bộ xử lý trung tâm (CPU) (video)](https://youtu.be/FZGugFqdr60)
+ - [ ] [Hướng dẫn và Chương trình (video)](https://youtu.be/zltgXvg6r3k)
+
- ### Bộ nhớ cache
- [ ] LRU cache:
- [ ] [Điều kì diệu của LRU cache (100 ngày Google Dev) (The Magic of LRU Cache (100 Days of Google Dev)) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
@@ -1132,16 +1117,16 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] [MIT 6.004 L15: Phân cấp bộ nhớ (The Memory Hierarchy) (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- [ ] [MIT 6.004 L16: Các vấn đề với bộ nhớ cache (Cache Issues) (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
-- ### Tiến trình và tiểu trình
+- ### Process và Thread
- [ ] Khóa học "Khoa học máy tính 162 - Hệ điều hành" (25 video):
- - Về tiến trình và tiểu trình, xem video 1-11
- - [Hệ điều hành và lập trình hệ thống (video)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- - [Sự khác nhau giữa một tiến trình và một tiểu trình?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
+ - Về Process và Thread, xem video 1-11
+ - [Hệ điều hành và lập trình hệ thống (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [Sự khác nhau giữa một Process và một Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
- Học các chủ đề dưới đây:
- - Các vấn đề của tiến trình, tiểu trình và xử lý đồng thời
- - Sự khác nhau giữa tiến trình và tiểu trình
- - Tiến trình
- - Tiểu trình
+ - Các vấn đề của Process, Thread và xử lý đồng thời
+ - Sự khác nhau giữa Process và Thread
+ - Process
+ - Thread
- Locks
- Mutexes
- Semaphores
@@ -1151,47 +1136,24 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- Livelock
- Hoạt động của CPU, ngắt, chuyển ngữ cảnh
- Các kiến trúc xử lý đồng thời được sử dụng cùng với các bộ xử lý đa lõi
- - Tài nguyên mà tiến trình cần: (bộ nhớ: các đoạn mã, bộ lưu trữ tĩnh, stack, heap cũng như các mô tả của tập tin, nhập/xuất)
- - Tài nguyên mà tiểu trình cần: (chia sẻ các tài nguyên được liệt kê ở trên (trừ stack) với các tiểu trình khác trong cùng tiến trình nhưng mỗi tiểu trình có program counter, stack counter, thanh ghi (registers) và stack của riêng chúng)
- - Forking thực ra là [copy on write](https://en.wikipedia.org/wiki/Copy-on-write) cho đến khi tiến trình mới ghi vào bộ nhớ, sau đó nó thực hiện hành đồng full copy.
+ - [Paging, segmentation, và virtual memory (video)](https://youtu.be/O4nwUqQodAg)
+ - [Interrupts (video)](https://youtu.be/iKlAWIKEyuw)
+ - Tài nguyên mà Process cần: (bộ nhớ: các đoạn code, bộ lưu trữ tĩnh, stack, heap cũng như các mô tả của tập tin, nhập/xuất)
+ - Tài nguyên mà Thread cần: (chia sẻ các tài nguyên được liệt kê ở trên (trừ stack) với các Thread khác trong cùng Process nhưng mỗi Thread có program counter, stack counter, thanh ghi (registers) và stack của riêng chúng)
+ - Forking thực ra là [copy on write](https://en.wikipedia.org/wiki/Copy-on-write) cho đến khi Process mới ghi vào bộ nhớ, sau đó nó thực hiện hành đồng full copy.
- Chuyển ngữ cảnh
- - Chuyển ngữ cảnh được bắt đầu như thế nào bởi hệ điều hành và phần cứng bên dưới
- - [ ] [Tiểu trình trong C++ (danh sách 10 video)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [Chuyển ngữ cảnh được bắt đầu như thế nào bởi hệ điều hành và phần cứng bên dưới](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
+ - [ ] [Thread trong C++ (danh sách 10 video)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
- [ ] Xử lý đồng thời trong Python (video):
- - [ ] [Danh sách ngắn các video về tiểu trình (Short series on threads)](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- - [ ] [Tiểu trình của Python (Python Threads)](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] [Danh sách ngắn các video về Thread (Short series on threads)](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] [Thread của Python (Python Threads)](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- [ ] [Hiểu rõ về Python GIL (Understanding the Python GIL (2010))](https://www.youtube.com/watch?v=Obt-vMVdM8s)
- [Tham khảo](http://www.dabeaz.com/GIL)
- [ ] [David Beazley - Căn bản về xử lý đồng thời trong Python: TRỰC TIẾP! - PyCon 2015 (David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015)](https://www.youtube.com/watch?v=MCs5OvhV9S4)
- [ ] [Các điểm chính trong phần trình bày của David Beazley - Các vấn đề thú vị (Python Asyncio) (Keynote David Beazley - Topics of Interest (Python Asyncio))](https://www.youtube.com/watch?v=ZzfHjytDceU)
- [ ] [Mutex trong Python (Mutex in Python)](https://www.youtube.com/watch?v=0zaPs8OtyKY)
-- ### Các bài nghiên cứu
- - Có nhiều bài nghiên cứu của Google và các bài nghiên cứu rất nổi tiếng.
- - Đọc hết các bài nghiên cứu tốn rất nhiều thời gian, tôi khuyên bạn nên chọn lọc theo đề tài cụ thể.
- - [ ] [1978: Tiến trình giao tiếp tuần tự (1978: Communicating Sequential Processes)](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [Triển khai với Go (implemented in Go)](https://godoc.org/github.com/thomas11/csp)
- - [Yêu thích các nghiên cứu cũ (Love classic papers)?](https://www.cs.cmu.edu/~crary/819-f09/)
- - [ ] [2003: Hệ thống tập tin của Google (2003: The Google File System)](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - thay thế bởi Colossus năm 2012
- - [ ] [2004: MapReduce: Đơn giản hóa xử lý dữ liệu trên phân vùng lớn (Simplified Data Processing on Large Clusters)]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - gần như bị thay thế bởi Cloud Dataflow?
- - [ ] [2007: Những gì mà lập trình viên nên biết về bộ nhớ (rất dài, ngay cả tác giả cũng khuyến khích bỏ qua vài phần) (What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections))](https://www.akkadia.org/drepper/cpumemory.pdf)
- - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
- - Bài nghiên cứu không tồn tại
- - [ ] 2012: AddressSanitizer: Kiểm tra nhanh tính đúng đắn của địa chỉ (A Fast Address Sanity Checker):
- - [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- - [ ] 2013: Spanner: Google’s Globally-Distributed Database:
- - [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [video](https://www.usenix.org/node/170855)
- - [ ] [2014: Máy học: Lợi ích và những vấn đề cần tránh (Machine Learning: The High-Interest Credit Card of Technical Debt)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en/pubs/archive/43790.pdf)
- - [ ] [2015: Sẵn sàng cho thay đổi lớn: Xây dựng hạ tầng dữ liệu của Google dành cho quảng cáo (High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads)](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
- - [ ] [2015: Tensorflow: Áp dụng máy học với dữ liệu lớn trên hệ thống phân tán tính toán song song (Large-Scale Machine Learning on Heterogeneous Distributed Systems)](http://download.tensorflow.org/paper/whitepaper2015.pdf )
- - [ ] [2015: Lập trình viên tìm code như thế nào: Một trường hợp điển hình (How Developers Search for Code: A Case Study)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
- - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
-
- ### Kiểm thử phần mềm
- Cần ghi nhớ:
- Unit test thực hiện như thế nào
@@ -1202,55 +1164,45 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] [Bài giảng của James Bach về kiểm tra phần mềm (Open Lecture by James Bach on Software Testing) (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- [ ] [Steve Freeman - Lập trình hướng tới việc test( Không phải như chúng ta nghĩ) (Test-Driven Development (that’s not what we meant)) (video)](https://vimeo.com/83960706)
- [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- - [ ] [Lập trình hướng tới việc test đã chết. (TDD is dead. Long live testing.)](http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
- - [ ] [Lập trình hướng tới việc test có phải đã chết? (Is TDD dead?) (video)](https://www.youtube.com/watch?v=z9quxZsLcfo)
- - [ ] [Video series (152 videos) - Không phải tất cả đều cần thiết (not all are needed) (video)](https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
- - [ ] [Lập trình theo hướng test dành cho web với Python (Test-Driven Web Development with Python)](http://www.obeythetestinggoat.com/pages/book.html#toc)
- [ ] Dependency injection:
- [ ] [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- [ ] [Đạo trong kiểm tra (Tao Of Testing)](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- [ ] [Viết test thế nào(How to write tests)](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-- ### Lập lịch
- - Trong một hệ điều hành hoạt động như thế nào
- - Có thể tìm thấy trong các video về HĐH
-
-- ### Cài đặt các hàm hệ thống
- - Hiểu rõ cách thức hoạt động đằng sau của các API
- - Có thể triển khai chúng hay không?
- ### Tìm kiếm và xử lý chuỗi
- - [ ] [Sedgewick - Mảng tiền tố (Suffix Arrays) (video)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
- - [ ] [Sedgewick - Tìm và thay chuỗi (Substring Search) (videos)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [1. Giới thiệu tìm và thay chuỗi (Introduction to Substring Search)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [2. Tìm và thay chuỗi theo Brute-Force (Brute-Force Substring Search)](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
- - [ ] [3. Knuth-Morris Pratt](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
- - [ ] [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
+ - [ ] [Sedgewick - Mảng tiền tố (Suffix Arrays) (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [Sedgewick - Tìm và thay chuỗi (Substring Search) (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. Giới thiệu tìm và thay chuỗi (Introduction to Substring Search)](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
+ - [ ] [2. Tìm và thay chuỗi theo Brute-Force (Brute-Force Substring Search)](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
+ - [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
+ - [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
+ - [ ] [5. Rabin-Karp](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
- [ ] [Tìm kiếm mẫu trong văn bản (Search pattern in text) (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
- Nếu bạn cần thêm thông tin chi tiết, hãy đọc qua phần "So khớp chuỗi" trong các mục đọc thêm [Đọc thêm về một số đề tài](đọc-thêm-về-một-số-đề-tài)
+ Nếu bạn cần thêm thông tin chi tiết, hãy đọc qua phần "So khớp chuỗi" trong các mục đọc thêm [Đọc thêm về một số đề tài](#đọc-thêm-về-một-số-đề-tài)
- ### Tries
> Tries: cấu trúc dữ liệu dạng cây cho phép _chèn_ và _tìm kiếm_ một chuỗi con nhanh (`O(L)`) và một vài lợi thế khác, thích hợp cho một số dạng toán xử lý chuỗi.
- Chú ý rằng có những loại _trie_ khác nhau. Một vài có tiền tố (prefix), một vài loại thì không, và một số thì sử dụng chuỗi thay vì bit để lưu trử các con đường (từ gốc đến lá).
- - [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
+ - Tôi đã đọc qua code, nhưng sẽ không thực hiện
+
+ - [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
+ - [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
+ - [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
- - [ ] Short course videos:
+ - [ ] Các khóa video ngắn:
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
- - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [TopCoder - Using Tries](https://www.topcoder.com/thrive/articles/Using%20Tries)
+ - [ ] [Stanford Lecture (real-world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- ### Cách biểu diễn số thực
- [ ] Dạng 8-bit đơn giản: [Representation of Floating Point Numbers - 1 (video - có một lỗi nhỏ trong phần tính toán, xem thêm ở bên dưới video)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
- ### Unicode
- [ ] [Điểu tối thiểu nhất mà mọi lập trình viên bắt buộc phải biết về Unicode và các tập ký tự.]( http://www.joelonsoftware.com/articles/Unicode.html)
@@ -1260,8 +1212,8 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
> Endianness: thứ tự phiên dịch các byte của một chuỗi byte trong bộ nhớ máy tính sang dạng số (4 byte với `int` hoặc 8 byte với `double`). Ví dụ như với 2 byte `0x00` và `0x01` lưu trên bộ nhớ, đọc theo Big-Endian ta được số 1 (0x00001. Đọc theo Little-Endia ta được 256 (0x100). Xem thêm ở các đường link bên duới.
- - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
- - [ ] [Big Endian Vs Lxittle Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
+ - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- Rất nặng về mặt kỹ thuật, dành cho các lập trình viên làm việc với nhân Linux (kernels).
- Đừng quá bận tâm nếu phần lớn video vượt quá khả năng của bạn. Chỉ cần đoạn nửa đầu video là đủ.
@@ -1269,142 +1221,21 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- ### Mạng máy tính
- **Nếu bạn có kinh nghiệm với mạng máy tính hoặc muốn trở thành một kỹ sư hệ thống, sẽ có các câu hỏi về chúng**
- còn nếu không, biết thêm cũng tốt
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
- - [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8)
- - [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
- - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM)
- - [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
- - [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
- - [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
- - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
- - [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
- - [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] [Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] [SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] [Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
+ - [ ] [Subnetting Demystified - Part 5 CIDR Notation (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] Sockets:
+ - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
-
-## Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu
-- **Bạn có thể sẽ bị hỏi câu hỏi liên quan đến thiết kế hệ thống nếu có hơn 4 năm kinh nghiệm**
-- Khả năng mở rộng và Thiết kế hệ thống là các chủ đề rất rộng, với nhiều vấn đề và tài liệu liên quan, bởi vì có rất nhiều vấn đề cần phải giải quyết khi thiết kế các hệ thống phần mềm (hoặc phần cứng) có thể mở rộng được.
- Cần phải đầu tư một chút thời gian cho vấn đề này.
-- Lời khuyên từ Yegge:
- - Khả năng mở rộng
- - Trích xuất từ cơ sở dữ liệu lớn về một giá trị độc nhất
- - Chuyển đổi từ một tập dữ liệu sang tập khác
- - Xử lý một khối lượng dữ liệu đồ sộ
- - Thiết kế hệ thống
- - Tập hợp các tính năng
- - Giao diện
- - Lớp phân cấp
- - Thiết kế hệ thống dưới những ràng buộc
- - Đơn giản và vững chắc
- - Đánh đổi (từ gốc tradeoff, chấp nhận bỏ một vài tính năng nhỏ để có được những lợi ích khác như tốc độ xử lý...)
- - Phân tích và tối ưu hiệu suất sử dụng
-- [ ] **BÁT ĐẦU TỪ ĐÂY**: [System Design from HiredInTech - Thiết kế hệ thống bởi HiredInTech](http://www.hiredintech.com/system-design/)
-- [ ] [Làm thế nào để trả lời các câu hỏi liên quan tới thiết kế trong phỏng vấn kỹ thuật? (How Do I Prepare To Answer Design Questions In A Technical Inverview)](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [8 điều bạn nên biết trước khi bắt đầu một buổi phỏng vấn về Thiết kế hệ thống (8 Things You Need to Know Before a System Design Interview) ](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [Thiết kế thuật toán (Algorithm design)](http://www.hiredintech.com/algorithm-design/)
-- [ ] [Chuẩn hóa trong cơ sở dữ liệu (Database Normalization - 1NF, 2NF, 3NF and 4NF) (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [Phỏng vấn về thiết kế hệ thống (System Design Interview)](https://github.com/checkcheckzz/system-design-interview) - Có rất nhiều tài liệu trong link nay. Hãy đọc qua các bài viết và các ví dụ. Tôi có liệt kê sau đây:
-- [ ] [Làm thế nào để dẫn đầu trong cuộc phỏng vấn về thiết kế hệ thống (How to ace a systems design interview) ](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
-- [ ] [Những con số ai cũng nên biết (Numbers Everyone Should Know)](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
-- [ ] [Mất bao lâu để làm một chuyển đổi ngữ cảnh? (How long does it take to make a context switch) ](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
-- [ ] [Các luồng xử lý trong trung tâm dữ liệu (Transactions Across Datacenters)(video)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [Một hướng dẫn đơn giản về lý thuyết CAP (A plain English introduction to CAP Theorem)](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
-- [ ] Thuật toán đồng thuận của Paxos:
- - [video ngắn](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [Video mở rộng với trường hợp cụ thể và multi-paxos (extended video with use case and multi-paxos)](https://www.youtube.com/watch?v=JEpsBg0AO6o)
- - [Nghiên cứu](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)
-- [ ] [Băm nhất quán (Consistent Hashing)](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
-- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
-- [ ] Khả năng mở rộng:
- - [ ] [Tầm nhìn chung (Great overview)(video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- - [ ] Các seri ngắn:
- - [Nhân bản (Clones)](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- - [Cơ sỡ dữ liệu (Database)](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- - [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- - [Bất đồng bộ (Asynchronism)](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- - [ ] [Kiến trúc web và hệ thống phân tán có khả năng mở rộng (Scalable Web Architecture and Distributed Systems)](http://www.aosabook.org/en/distsys.html)
- - [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [Pragmatic Programming Techniques](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- - [Bổ sung: Google Pregel cho xử lý đồ thị (Google Pregel Graph Processing)](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- - [ ] [Jeff Dean - Xây dựng hệ thống phần mềm tại Google và các bài học rút ra được (Jeff Dean - Building Software Systems At Google and Lessons Learned)(video)](https://www.youtube.com/watch?v=modXC5IWTJI)
- - [ ] [Giới thiệu về kiến trúc hệ thống có thể mở rộng (Introduction to Architecting Systems for Scale)](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [Mở rộng game trên di động nhắm tới khách hàng trên toàn thế giới sử dụng App Engine và Cloud Datastore (Scaling mobile games to a global audience using App Engine and Cloud Datastore)(video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [Sự quan trọng của thuật toán (The Importance of Algorithms)](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
- - [ ] [Chia nhỏ cơ sở dữ liệu thành từng phần nhỏ và nhanh hơn, dễ quản lý hơn (Sharding)](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Khả năng mở rộng của Facebook (Scale at Facebook) - (2009)](https://www.infoq.com/presentations/Scale-at-Facebook)
- - [ ] [Khả năng mở rộng của Facebook (2012), "Xây dựng cho cả tỷ người dùng" (Scale at Facebook (2012), "Building for a Billion Users" - )(video)](https://www.youtube.com/watch?v=oodS71YtkGU)
- - [ ] [Lập trình cho cả khả năng phát triển trong tương lai (Engineering for the Long Game) - Astrid Atkinson Keynote - (video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- - [ ] [7 năm mở rộng của Youtube trong 30 phút (7 Years Of YouTube Scalability Lessons In 30 Minutes)](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
- - [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
- - [ ] [Paypal đã mở rộng thế nào để đáp ứng hơn tỷ lượt giao dịch mỗi ngày với 8VMs (How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs) ](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- - [ ] [Làm thế nào để xóa lặp trong dữ liệu (How to Remove Duplicates in Large Datasets)](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie) (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- - [ ] [Cùng nhìn nhận cách Etsy mở rộng và phong cách lập trình với Jon Cowie (What Led Amazon to its Own Microservices Architecture - Điều gì đưa Amazon tới kiến trúc microservices](http://thenewstack.io/led-amazon-microservices-architecture/)
- - [ ] [Nén hay không nén, đây là câu hỏi dành cho Uber (To Compress Or Not To Compress, That Was Uber's Question)](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [Asyncio Tarantool Queue, Get In The Queue](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
- - [ ] [Trong trường hợp nào truy vấn phỏng đoán được thực thi? (When Should Approximate Query Processing Be Used?)](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
- - [ ] [Kiến trúc Egnyte: Kinh nghiêm từ việc xây dụng và mở rộng hệ thống phân tán lên tới Petabyte (Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System) ](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html)
- - [ ] [Lập trình hướng máy học - Một cách lập trình mới trong thời đại mới (Machine Learning Driven Programming: A New Programming For A New World)](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
- - [ ] [Kỹ thuật tối ưu hình ảnh để phục vụ hàng triệu yêu cầu mỗi ngày (The Image Optimization Technology That Serves Millions Of Requests Per Day)](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- - [ ] [Trình bày ngắn về kiến trúc Patreon (A Patreon Architecture Short)](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- - [ ] [Tinder: Làm thế nào mà một trong những hệ thống hẹn hò lớn nhất quyết định bạn sẽ nhìn thấy ai tiếp theo (Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?)](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- - [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- - [ ] [Facebook đã mở rộng thế nào để đáp ứng việc trình diễn video trực tiếp (Live Video Streaming At Facebook Scale)](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- - [ ] [ Hướng dẫn cơ bản cho việc mở rộng đến hơn 11 triệu người dùng với Amazon AWS (A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS )](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [Sử dụng docker ảnh hưởng tới độ trễ như thế nào? (How Does The Use Of Docker Effect Latency?)](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
- - [ ] [Có thể xem AMP như 1 đối thủ với Google không? (Does AMP Counter An Existential Threat To Google?)](http://highscalability.com/blog/2015/12/14/does-amp-counter-an-existential-threat-to-google.html)
- - [ ] [Một cái nhìn 360 độ về toàn bộ Netflix Stack (A 360 Degree View Of The Entire Netflix Stack)](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- - [ ] [Độ trễ ảnh hưởng tới doanh thu của bạn - Làm sao để khắc phục? (Latency Is Everywhere And It Costs You Sales - How To Crush It)](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [Serverless (rất dài, chỉ nền dùng file gist)](http://martinfowler.com/articles/serverless.html)
- - [ ] [Điều gì làm nên sức mạnh của Instagram: Hàng trăm phần tử, hàng tá các công nghệ (What Powers Instagram: Hundreds of Instances, Dozens of Technologies )](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Kiến trúc Cinchcast - Tạo ra 1500 giờ âm thanh mỗi ngày (Cinchcast Architecture - Producing 1,500 Hours Of Audio Every Day)](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- - [ ] [Kiến trúc của chương trình phát sóng video trực tiếp Justin.Tv (Justin.Tv's Live Video Broadcasting Architecture)](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Kiến trúc của game cộng đồng Playfish - 50 triệu người sử dụng hàng tháng và vẫn tiếp tục tăng (Playfish's Social Gaming Architecture - 50 Million Monthly Users And Growing)](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- - [ ] [Kiến trúc của TripAdvisor - 40 triệu người viếng thăm, 200 triệu lượt xem, 30 Tb dữ liệu (TripAdvisor Architecture - 40M Visitors, 200M Dynamic Page Views, 30TB Data)](http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html)
- - [ ] [Kiến trúc của PlentyOfFish (PlentyOfFish Architecture)](http://highscalability.com/plentyoffish-architecture)
- - [ ] [Kiến trúc của Salesforce - Làm thế nào để xử lý 1.3 tỷ giao dịch mỗi ngày (Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day)](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- - [ ] [Kiến trúc của ESPN khi mở rộng - Xử lý 100000 thông tin mỗi giây (ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second)](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- - [ ] Xem qua "Messaging, Serialization, and Queueing Systems" phía dưới để hiểu các công nghệ có thể kết nối các dịch vụ cùng lúc thế nào.
- - [ ] Twitter:
- - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- - [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - Để có thêm thông tin, xem seri "Mining Massive Datasets" trong seri video.
-- [ ] Thực hành thêm về thiết kế hệ thống: Sau đây là vài ý tưởng có thể thực hiện trên giấy, mỗi ý tưởng đều có tư liệu đi cùng để hiểu rõ nó thực thi thế nào trong thế giới thực. [Thiết kế hệ thống bới HiredInTech (System Design from HiredInTech)](http://www.hiredintech.com/system-design/)
- - [cheat sheet](/extras/cheat%20sheets/system-design.pdf)
- - Các bước thực hiện:
- 1. Hiểu vấn đề và phạm vi của vấn đề:
- - Định nghĩa các trường hợp sử dụng cụ thể với sự trợ giúp từ người phỏng vấn
- - Đề xuất thêm tính năng
- - Bỏ đi những phần mà người phỏng vấn cho là không còn nằm trong phạm vi yêu cầu
- - Giả sử khả năng khả dụng cao, thêm vào như một tính năng
- 2. Suy nghĩ về các ràng buộc:
- - Hỏi xem có bao nhiêu yêu cầu mỗi tháng
- - Hỏi xem có bao nhiêu yêu cầu mỗi giây (hoặc họ đưa nó cho bạn hoặc bạn phải tự tính toán ra)
- - So sánh tần số đọc và ghi
- - Sử dụng luật 80/20 khi ước lượng
- - Bao nhiêu dữ liệu được viết mỗi giây
- - Toàn bộ kho lưu trữ dữ liệu cần cho 5 năm
- - Bao nhiêu dữ liệu được đọc mỗi giây
- 3. Thiết kế trừu tượng:
- - Lớp (dịch vụ, dữ liệu, caching)
- - Cấu trúc hệ thống: tải cân bằng, chuyển thông điệp
- - Cái nhìn tổng quan về thuật toán chủ chốt để chạy các dịch vụ
- - Đưa ra hướng giải quyết cho hiện tượng nghẽn cổ chai
- - Bài tập:
- - [Thiết kế một mạng CDN (Content Delivery Network) (Design a CDN network: old article) ](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- - [Thiết kê một hệ thống cung cấp ID ngẫu nhiên (Design a random unique ID generation system)](https://blog.twitter.com/2010/announcing-snowflake)
- - [Thiết kế một hệ thống chơi bài nhiều người online (Design an online multiplayer card game)](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
- - [Thiết kế một cơ sở dữ liệu khóa-giá trị (Design a key-value database)](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [Thiết kế một hàm để trả về những từ khóa được tìm kiếm nhiều nhất trong thời gian gần nhất (Design a function to return the top k requests during past time interval)]( https://icmi.cs.ucsb.edu/research/tech_reports/reports/2005-23.pdf)
- - [Thiết kế một hệ thống chia sẻ ảnh (Design a picture sharing system) ](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- - [Thiết kế một hệ thống hổ trợ ra quyết định (Design a recommendation system)](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- - [Thiết kế một hệ thống làm ngắn URL (Design a URL-shortener system: copied from above)](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [Thiết kế một hệ thống cache (Design a cache system)](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-
----
+---
## Tổng kết
@@ -1416,70 +1247,12 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] Các video ngắn 2-5 phút - Michael Sambol (46 video)
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
+- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
---
-## Thực hành các câu hỏi về lập trình
-
-Bây giờ bạn đã biết tất cả các chủ đề về khoa học máy tính, đây là lúc để thực hành các câu hỏi về lập trình.
-
-**Thực hành trả lời các câu hỏi về lập trình không phải là ghi nhớ cách trả lời các vấn đề trong lập trình**
-
-Tại sao bạn cần thực hành trả lời các vấn đề lập trình:
-- Nhận diện vấn đề, lựa chọn cấu trúc dữ liệu và thuật toán phù hợp
-- Xác định các yêu cầu của vấn đề
-- Trình bày cách suy nghĩ của bạn như thể bạn đang trong buổi phỏng vấn
-- Lập trình trên bảng trắng hoặc trên giấy, không phải với máy tính
-- Đưa ra được tính toán độ phức tạp về thời gian và không gian thực thi của giải pháp của bạn
-- Kiểm tra giải pháp của bạn
-
-Dưới đây là một bài viết tuyệt vời về phương thức luận, cách kết nối giải quyết vấn đề trong một bài phỏng vấn. Bạn có thể gặp các bài viết tương tự trong các sách hướng dẫn phỏng vấn nhưng tôi cho là bài này thật sự cực kì xuất sắc:
-[Thiết kế thuật toán (Algorithm design canvas)](http://www.hiredintech.com/algorithm-design/)
-
-[Các bước tôi xử lý cho các câu hỏi về lập trình trong phỏng vấn (My Process for Coding Interview (Book) Exercises)](https://googleyasheck.com/my-process-for-coding-interview-exercises/)
-
-Không có bảng trắng ở nhà? Cũng hợp lý chứ. Tôi có chút khác biệt và tôi có một cái bảng trắng rất to. Thay vì bảng trắng, bạn có thể chọn một tập sổ ký họa từ các cửa hàng nghệ thuật. Bạn có thể ngồi ở ghế salon và thực hành. Tôi gọi nó là "bảng trắng mềm mại". Tôi có bỏ vào cây bút để dễ ước lượng. Nếu bạn dùng bút mực, bạn sẽ mong chọn loại nào có thể tẩy được ấy, vì sớm muộn sẽ rối cả lên.
-
-
-
-Phụ lục:
-
-- [Toán học cho nhà lập trình hàng đầu (Mathematics for Topcoders)](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
-- [Quy hoạch động - Từ cơ bản đến nâng cao (Dynamic Programming – From Novice to Advanced)](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
-- [Các tài liệu liên quan tới phỏng vấn của MIT (MIT Interview Materials)](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
-
-**Đọc và làm các bài tập về lập trình (theo thứ tự sau):**
-
-- [ ] [Đi sâu vào các buổi phỏng vấn về lập trình: Bí mật để nhận được công việc mới (Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition)](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - Trả lời bằng C,C++, và Java
-- [ ] [Vượt qua các bài phỏng vấn về lập trình (Cracking the Coding Interview, 6th Edition)](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Trả lời bằng Java
-
-Đọc qua [Danh sách sách phía trên](#danh-sách-sách)
-
-
-## Giải bài tập lập trình
-
-Bạn nên để cho bộ não vận dụng các kiến thức đã học. Hãy thử sức với các bài toán lập trình hàng ngày, càng nhiều càng tốt.
-
-- [ ] [Làm thể nào để tìm lời giải](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
-- [ ] [Làm thể nào để phân tích đề bài trên TopCoder](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-Các trang giải toán lập trình:
-- [LeetCode](https://leetcode.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [Project Euler (nặng về toán học)](https://projecteuler.net/index.php?section=problems)
-- [Codewars](http://www.codewars.com)
-- [HackerRank](https://www.hackerrank.com/)
-- [Codility](https://codility.com/programmers/)
-- [InterviewCake](https://www.interviewcake.com/)
-- [Geeks for Geeks](http://www.geeksforgeeks.org/)
-- [InterviewBit](https://www.interviewbit.com)
-
-Xem thêm:
-- [Phỏng vấn thử nghiệm](http://www.gainlo.co/#!/)
-
## Lý lịch (Resume) của bạn
- [10 mẹo để Resume bớt (một chút) tào lao](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
@@ -1575,122 +1348,182 @@ Bạn không bao giờ thực sự học xong!
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- còn được gọi là "Sách của bộ tứ" (Gang Of Four, hoặc GOF)
- quyển sách cổ diển về mẫu thiết kế.
+
+- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - Quyển này được xuất bản năm 2004, phần nào đã lỗi thời, nhưng nó vẫn là một tài liệu tuyệt vời để tìm hiểu về máy tính một cách ngắn gọn.
+ - Tác giả phát minh ra HLA (High Level Assembly), vậy nên hãy hãy chú ý một chút về các ví dụ và định nghĩa trong sách. Tuy không được sử dụng rộng rãi, nhưng đó là một ví dụ hiện đại về hợp ngữ.
+ - Những chương này rất đáng đọc để xây dựng cho bạn một nền tảng tốt (giữ nguyên gốc tiếng Anh):
+ - Chapter 2 - Numeric Representation
+ - Chapter 3 - Binary Arithmetic and Bit Operations
+ - Chapter 4 - Floating-Point Representation
+ - Chapter 5 - Character Representation
+ - Chapter 6 - Memory Organization and Access
+ - Chapter 7 - Composite Data Types and Memory Objects
+ - Chapter 9 - CPU Architecture
+ - Chapter 10 - Instruction Set Architecture
+ - Chapter 11 - Memory Architecture and Organization
+
+- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
+ - **Chú ý:** Đọc cuốn này chỉ có một ít giá trị. Đây là một tổng hợp xuất sắc về giải thuật và cấu trúc dữ liệu, nhưng nó không dạy cho bạn cách viết code xuất sắc. Để làm một lập trình viên giỏi, bạn đồng thời phải có khả năng phát triển một giải pháp một cách hiệu quả nữa.
+ - Trích lời Yegge: "Nhưng nếu bạn muốn đến với buổi phỏng vấn một cách có chuẩn bị, vậy hãy hoãn đơn xin ứng tuyển lại cho đến khi bạn hoàn tất quyển sách này"
+ - Half.com là một trang hữu dụng để tìm sách với giá tốt.
+ - Đôi được gọi là CLR, hoặc là CLRS (trích chữ cái đầu trong tên của các tác giả), vì Stein (một trong 4 tác giả, S trong CLRS) nhập cuộc trễ
+
+- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - Như một tài liệu ôn tập và hỗ trợ nhận dạng vấn đề.
+ - Danh mục thuật toán thật sự vượt xa độ khó của một cuộc phỏng vấn.
+ - Cuốn sách có 2 phần:
+ - Giáo trình về cấu trúc dữ liệu và giải thuật:
+ - Ưu:
+ - Là một bài tổng quát tốt tương đương với các giáo trình khác.
+ - Nhiều câu chuyện thú vị từ kinh nghiệm của tác giả trong việc giải quyết các vấn đề thực tế và trong giới học thuật.
+ - Code mẫu bằng C.
+ - Nhược:
+ - Cô đặc và có thể khó hiểu ngang với CLRS, và trong một số chủ đề, CLRS có thể là một tài liệu tốt hơn để tham khảo.
+ - Các chương 7, 8, 9 có thể rất vất vả để theo được, vì một vài phần không được giải thích rõ, hoặc là yêu cầu nhiều não hơn những gì tôi có.
+ - Đừng hiểu lầm: Tôi thích Skiena, cách dạy học và phong các của ông ấy, nhưng tôi có lẽ không đủ khả năng để tốt nghiệp ở Stony Brook (nơi Skiena giảng dạy).
+ - Danh mục thuật toán:
+ - Đây là phần chính yếu mà bạn mua được từ quyển sách.
+ - Sắp đến được phần này rồi. Tôi sẽ cập nhật một khi tôi xong với nó.
+ - Trích dẫn từ Yegge: "Hơn hẳn những quyến sách khác, cuốn này giúp tôi hiểu rõ các bài toán về Graph phổ biến một cách đáng kinh ngạc và quan trọng như thế nào - chúng nên là một phần trong các công cụ của bất kỳ lập trình viên nào. Quyển sách đồng thời cũng bao phủ các cấu trúc dữ liệu cơ bản, các thuật toán sắp xếp. Đó là một điểm cộng. Nhưng phần quý giá thật sự nằm ở nửa sau, chính là bách khoa toàn thư ngắn gọn về hàng triệu bài toán hữu dụng và vô số cách để giải quyết chúng, trình bày sơ lược. Mỗi trang đều có một hình minh họa, giúp người đọc dễ ghi nhớ hơn. Đó là một cách tốt đề định dạng và phân loại các bài toán".
+ - Có thể thuê quyển sách này trên Kindle
+ - Half.com là một trang hữu dụng để tìm sách với giá tốt.
+ - Câu trả lời cho các bài tập trong sách:
+ - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
+ - [Danh mục lỗi của sách](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+
+
+
- [ ] [Site Reliability Engineering](https://landing.google.com/sre/book.html)
- [Site Reliability Engineering: Google chạy các hệ thống của họ như thế nào](https://landing.google.com/sre/)
- [ ] [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
-## System Design, Scalability, Data Handling
-
-**You can expect system design questions if you have 4+ years of experience.**
-
-- Scalability and System Design are very large topics with many topics and resources, since
- there is a lot to consider when designing a software/hardware system that can scale.
- Expect to spend quite a bit of time on this
-- Considerations:
- - Scalability
- - Distill large data sets to single values
- - Transform one data set to another
- - Handling obscenely large amounts of data
- - System design
- - features sets
- - interfaces
- - class hierarchies
- - designing a system under certain constraints
- - simplicity and robustness
- - tradeoffs
- - performance analysis and optimization
-- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
-- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
-- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [8 steps guide to ace your system design interview](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
-- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
-- [ ] [How to ace a systems design interview](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
-- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
-- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
-- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
-- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
-- [ ] Consensus Algorithms:
- - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
- - [ ] [Easy-to-read paper](https://raft.github.io/)
- - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
-- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+
+## Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu
+- **Bạn có thể sẽ bị hỏi câu hỏi liên quan đến thiết kế hệ thống nếu có hơn 4 năm kinh nghiệm**
+- Khả năng mở rộng và Thiết kế hệ thống là các chủ đề rất rộng, với nhiều vấn đề và tài liệu liên quan, bởi vì có rất nhiều vấn đề cần phải giải quyết khi thiết kế các hệ thống phần mềm (hoặc phần cứng) có thể mở rộng được.
+ Cần phải đầu tư một chút thời gian cho vấn đề này.
+- Lời khuyên từ Yegge:
+ - Khả năng mở rộng
+ - Trích xuất từ cơ sở dữ liệu lớn về một giá trị độc nhất
+ - Chuyển đổi từ một tập dữ liệu sang tập khác
+ - Xử lý một khối lượng dữ liệu đồ sộ
+ - Thiết kế hệ thống
+ - Tập hợp các tính năng
+ - Giao diện
+ - Lớp phân cấp
+ - Thiết kế hệ thống dưới những ràng buộc
+ - Đơn giản và vững chắc
+ - Đánh đổi (từ gốc tradeoff, chấp nhận bỏ một vài tính năng nhỏ để có được những lợi ích khác như tốc độ xử lý...)
+ - Phân tích và tối ưu hiệu suất sử dụng
+- [ ] **BÁT ĐẦU TỪ ĐÂY**: [System Design from HiredInTech - Thiết kế hệ thống bởi HiredInTech](http://www.hiredintech.com/system-design/)
+- [ ] [Làm thế nào để trả lời các câu hỏi liên quan tới thiết kế trong phỏng vấn kỹ thuật? (How Do I Prepare To Answer Design Questions In A Technical Inverview)](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [8 điều bạn nên biết trước khi bắt đầu một buổi phỏng vấn về Thiết kế hệ thống (8 Things You Need to Know Before a System Design Interview) ](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
+- [ ] [Thiết kế thuật toán (Algorithm design)](http://www.hiredintech.com/algorithm-design/)
+- [ ] [Chuẩn hóa trong cơ sở dữ liệu (Database Normalization - 1NF, 2NF, 3NF and 4NF) (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [Phỏng vấn về thiết kế hệ thống (System Design Interview)](https://github.com/checkcheckzz/system-design-interview) - Có rất nhiều tài liệu trong link nay. Hãy đọc qua các bài viết và các ví dụ. Tôi có liệt kê sau đây:
+- [ ] [Làm thế nào để dẫn đầu trong cuộc phỏng vấn về thiết kế hệ thống (How to ace a systems design interview) ](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [Những con số ai cũng nên biết (Numbers Everyone Should Know)](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [Mất bao lâu để làm một chuyển đổi ngữ cảnh? (How long does it take to make a context switch) ](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [Các luồng xử lý trong trung tâm dữ liệu (Transactions Across Datacenters)(video)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [Một hướng dẫn đơn giản về lý thuyết CAP (A plain English introduction to CAP Theorem)](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
+- [ ] Thuật toán đồng thuận của Paxos:
+ - [video ngắn](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [Video mở rộng với trường hợp cụ thể và multi-paxos (extended video with use case and multi-paxos)](https://www.youtube.com/watch?v=JEpsBg0AO6o)
+ - [Nghiên cứu](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)
+- [ ] [Băm nhất quán (Consistent Hashing)](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
-- [ ] Scalability:
- - You don't need all of these. Just pick a few that interest you.
- - [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- - [ ] Short series:
- - [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- - [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+- [ ] Khả năng mở rộng:
+ - [ ] [Tầm nhìn chung (Great overview)(video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] Các seri ngắn:
+ - [Nhân bản (Clones)](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [Cơ sỡ dữ liệu (Database)](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- - [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- - [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
+ - [Bất đồng bộ (Asynchronism)](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [Kiến trúc web và hệ thống phân tán có khả năng mở rộng (Scalable Web Architecture and Distributed Systems)](http://www.aosabook.org/en/distsys.html)
- [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
- - [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [Pragmatic Programming Techniques](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
+ - [Bổ sung: Google Pregel cho xử lý đồ thị (Google Pregel Graph Processing)](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
+ - [ ] [Jeff Dean - Xây dựng hệ thống phần mềm tại Google và các bài học rút ra được (Jeff Dean - Building Software Systems At Google and Lessons Learned)(video)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [Giới thiệu về kiến trúc hệ thống có thể mở rộng (Introduction to Architecting Systems for Scale)](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [Mở rộng game trên di động nhắm tới khách hàng trên toàn thế giới sử dụng App Engine và Cloud Datastore (Scaling mobile games to a global audience using App Engine and Cloud Datastore)(video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [The Importance of Algorithms](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
- - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- - [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [ ] [Sự quan trọng của thuật toán (The Importance of Algorithms)](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
+ - [ ] [Chia nhỏ cơ sở dữ liệu thành từng phần nhỏ và nhanh hơn, dễ quản lý hơn (Sharding)](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [Khả năng mở rộng của Facebook (Scale at Facebook) - (2009)](https://www.infoq.com/presentations/Scale-at-Facebook)
+ - [ ] [Khả năng mở rộng của Facebook (2012), "Xây dựng cho cả tỷ người dùng" (Scale at Facebook (2012), "Building for a Billion Users" - )(video)](https://www.youtube.com/watch?v=oodS71YtkGU)
+ - [ ] [Lập trình cho cả khả năng phát triển trong tương lai (Engineering for the Long Game) - Astrid Atkinson Keynote - (video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [7 năm mở rộng của Youtube trong 30 phút (7 Years Of YouTube Scalability Lessons In 30 Minutes)](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
- [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
- - [ ] [How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- - [ ] [How to Remove Duplicates in Large Datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- - [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
- - [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- - [ ] [Google's Transition From Single Datacenter To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- - [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- - [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
+ - [ ] [Paypal đã mở rộng thế nào để đáp ứng hơn tỷ lượt giao dịch mỗi ngày với 8VMs (How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs) ](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [Làm thế nào để xóa lặp trong dữ liệu (How to Remove Duplicates in Large Datasets)](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie) (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [Cùng nhìn nhận cách Etsy mở rộng và phong cách lập trình với Jon Cowie (What Led Amazon to its Own Microservices Architecture - Điều gì đưa Amazon tới kiến trúc microservices](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [Nén hay không nén, đây là câu hỏi dành cho Uber (To Compress Or Not To Compress, That Was Uber's Question)](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [Asyncio Tarantool Queue, Get In The Queue](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
+ - [ ] [Trong trường hợp nào truy vấn phỏng đoán được thực thi? (When Should Approximate Query Processing Be Used?)](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
+ - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
+ - [ ] [Kiến trúc Egnyte: Kinh nghiêm từ việc xây dụng và mở rộng hệ thống phân tán lên tới Petabyte (Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System) ](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html)
+ - [ ] [Lập trình hướng máy học - Một cách lập trình mới trong thời đại mới (Machine Learning Driven Programming: A New Programming For A New World)](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
+ - [ ] [Kỹ thuật tối ưu hình ảnh để phục vụ hàng triệu yêu cầu mỗi ngày (The Image Optimization Technology That Serves Millions Of Requests Per Day)](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [Trình bày ngắn về kiến trúc Patreon (A Patreon Architecture Short)](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [Tinder: Làm thế nào mà một trong những hệ thống hẹn hò lớn nhất quyết định bạn sẽ nhìn thấy ai tiếp theo (Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?)](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- - [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- - [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- - [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- - [ ] [ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- - [ ] See "Messaging, Serialization, and Queueing Systems" way below for info on some of the technologies that can glue services together
+ - [ ] [Facebook đã mở rộng thế nào để đáp ứng việc trình diễn video trực tiếp (Live Video Streaming At Facebook Scale)](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [ Hướng dẫn cơ bản cho việc mở rộng đến hơn 11 triệu người dùng với Amazon AWS (A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS )](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
+ - [ ] [Sử dụng docker ảnh hưởng tới độ trễ như thế nào? (How Does The Use Of Docker Effect Latency?)](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html)
+ - [ ] [Có thể xem AMP như 1 đối thủ với Google không? (Does AMP Counter An Existential Threat To Google?)](http://highscalability.com/blog/2015/12/14/does-amp-counter-an-existential-threat-to-google.html)
+ - [ ] [Một cái nhìn 360 độ về toàn bộ Netflix Stack (A 360 Degree View Of The Entire Netflix Stack)](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [Độ trễ ảnh hưởng tới doanh thu của bạn - Làm sao để khắc phục? (Latency Is Everywhere And It Costs You Sales - How To Crush It)](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [Serverless (rất dài, chỉ nền dùng file gist)](http://martinfowler.com/articles/serverless.html)
+ - [ ] [Điều gì làm nên sức mạnh của Instagram: Hàng trăm phần tử, hàng tá các công nghệ (What Powers Instagram: Hundreds of Instances, Dozens of Technologies )](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
+ - [ ] [Kiến trúc Cinchcast - Tạo ra 1500 giờ âm thanh mỗi ngày (Cinchcast Architecture - Producing 1,500 Hours Of Audio Every Day)](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
+ - [ ] [Kiến trúc của chương trình phát sóng video trực tiếp Justin.Tv (Justin.Tv's Live Video Broadcasting Architecture)](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
+ - [ ] [Kiến trúc của game cộng đồng Playfish - 50 triệu người sử dụng hàng tháng và vẫn tiếp tục tăng (Playfish's Social Gaming Architecture - 50 Million Monthly Users And Growing)](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
+ - [ ] [Kiến trúc của TripAdvisor - 40 triệu người viếng thăm, 200 triệu lượt xem, 30 Tb dữ liệu (TripAdvisor Architecture - 40M Visitors, 200M Dynamic Page Views, 30TB Data)](http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html)
+ - [ ] [Kiến trúc của PlentyOfFish (PlentyOfFish Architecture)](http://highscalability.com/plentyoffish-architecture)
+ - [ ] [Kiến trúc của Salesforce - Làm thế nào để xử lý 1.3 tỷ giao dịch mỗi ngày (Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day)](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [Kiến trúc của ESPN khi mở rộng - Xử lý 100000 thông tin mỗi giây (ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second)](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] Xem qua "Messaging, Serialization, and Queueing Systems" phía dưới để hiểu các công nghệ có thể kết nối các dịch vụ cùng lúc thế nào.
- [ ] Twitter:
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - For even more, see the "Mining Massive Datasets" video series in the [Video Series](#video-series) section
-- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
- - review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- - [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- - flow:
- 1. Understand the problem and scope:
- - Define the use cases, with the interviewer's help
- - Suggest additional features
- - Remove items that the interviewer deems out of scope
- - Assume high availability is required, add as a use case
- 2. Think about constraints:
- - Ask how many requests per month
- - Ask how many requests per second (they may volunteer it or make you do the math)
- - Estimate reads vs. writes percentage
- - Keep the 80/20 rule in mind when estimating
- - How much data is written per second
- - Total storage required over 5 years
- - How much data read per second
- 3. Abstract design:
- - Layers (service, data, caching)
- - Infrastructure: load balancing, messaging
- - Rough overview of any key algorithm that drives the service
- - Consider bottlenecks and determine solutions
- - Exercises:
- - [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
- - [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- - [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- - [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/)
+ - Để có thêm thông tin, xem seri "Mining Massive Datasets" trong seri video.
+- [ ] Thực hành thêm về thiết kế hệ thống: Sau đây là vài ý tưởng có thể thực hiện trên giấy, mỗi ý tưởng đều có tư liệu đi cùng để hiểu rõ nó thực thi thế nào trong thế giới thực. [Thiết kế hệ thống bới HiredInTech (System Design from HiredInTech)](http://www.hiredintech.com/system-design/)
+ - [cheat sheet](/extras/cheat%20sheets/system-design.pdf)
+ - Các bước thực hiện:
+ 1. Hiểu vấn đề và phạm vi của vấn đề:
+ - Định nghĩa các trường hợp sử dụng cụ thể với sự trợ giúp từ người phỏng vấn
+ - Đề xuất thêm tính năng
+ - Bỏ đi những phần mà người phỏng vấn cho là không còn nằm trong phạm vi yêu cầu
+ - Giả sử khả năng khả dụng cao, thêm vào như một tính năng
+ 2. Suy nghĩ về các ràng buộc:
+ - Hỏi xem có bao nhiêu yêu cầu mỗi tháng
+ - Hỏi xem có bao nhiêu yêu cầu mỗi giây (hoặc họ đưa nó cho bạn hoặc bạn phải tự tính toán ra)
+ - So sánh tần số đọc và ghi
+ - Sử dụng luật 80/20 khi ước lượng
+ - Bao nhiêu dữ liệu được viết mỗi giây
+ - Toàn bộ kho lưu trữ dữ liệu cần cho 5 năm
+ - Bao nhiêu dữ liệu được đọc mỗi giây
+ 3. Thiết kế trừu tượng:
+ - Lớp (dịch vụ, dữ liệu, caching)
+ - Cấu trúc hệ thống: tải cân bằng, chuyển thông điệp
+ - Cái nhìn tổng quan về thuật toán chủ chốt để chạy các dịch vụ
+ - Đưa ra hướng giải quyết cho hiện tượng nghẽn cổ chai
+ - Bài tập:
+ - [Thiết kế một mạng CDN (Content Delivery Network) (Design a CDN network: old article) ](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
+ - [Thiết kê một hệ thống cung cấp ID ngẫu nhiên (Design a random unique ID generation system)](https://blog.twitter.com/2010/announcing-snowflake)
+ - [Thiết kế một hệ thống chơi bài nhiều người online (Design an online multiplayer card game)](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
+ - [Thiết kế một cơ sở dữ liệu khóa-giá trị (Design a key-value database)](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [Thiết kế một hàm để trả về những từ khóa được tìm kiếm nhiều nhất trong thời gian gần nhất (Design a function to return the top k requests during past time interval)]( https://icmi.cs.ucsb.edu/research/tech_reports/reports/2005-23.pdf)
+ - [Thiết kế một hệ thống chia sẻ ảnh (Design a picture sharing system) ](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [Thiết kế một hệ thống hổ trợ ra quyết định (Design a recommendation system)](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [Thiết kế một hệ thống làm ngắn URL (Design a URL-shortener system: copied from above)](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [Thiết kế một hệ thống cache (Design a cache system)](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
+---
## Học thêm
@@ -2143,3 +1976,57 @@ Hãy ngồi xuống và thưởng thức. "Luyện kỹ năng với Netflix" :P
- [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)
+
+
+- ### Các bài nghiên cứu
+ - Có nhiều bài nghiên cứu của Google và các bài nghiên cứu rất nổi tiếng.
+ - Đọc hết các bài nghiên cứu tốn rất nhiều thời gian, tôi khuyên bạn nên chọn lọc theo đề tài cụ thể.
+ - [ ] [1978: Process giao tiếp tuần tự (1978: Communicating Sequential Processes)](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Triển khai với Go (implemented in Go)](https://godoc.org/github.com/thomas11/csp)
+ - [Yêu thích các nghiên cứu cũ (Love classic papers)?](https://www.cs.cmu.edu/~crary/819-f09/)
+ - [ ] [2003: Hệ thống tập tin của Google (2003: The Google File System)](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - thay thế bởi Colossus năm 2012
+ - [ ] [2004: MapReduce: Đơn giản hóa xử lý dữ liệu trên phân vùng lớn (Simplified Data Processing on Large Clusters)]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - gần như bị thay thế bởi Cloud Dataflow?
+ - [ ] [2007: Những gì mà lập trình viên nên biết về bộ nhớ (rất dài, ngay cả tác giả cũng khuyến khích bỏ qua vài phần) (What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections))](https://www.akkadia.org/drepper/cpumemory.pdf)
+ - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
+ - Bài nghiên cứu không tồn tại
+ - [ ] 2012: AddressSanitizer: Kiểm tra nhanh tính đúng đắn của địa chỉ (A Fast Address Sanity Checker):
+ - [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+ - [ ] 2013: Spanner: Google’s Globally-Distributed Database:
+ - [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [video](https://www.usenix.org/node/170855)
+ - [ ] [2014: Máy học: Lợi ích và những vấn đề cần tránh (Machine Learning: The High-Interest Credit Card of Technical Debt)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
+ - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en/pubs/archive/43790.pdf)
+ - [ ] [2015: Sẵn sàng cho thay đổi lớn: Xây dựng hạ tầng dữ liệu của Google dành cho quảng cáo (High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads)](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+ - [ ] [2015: Tensorflow: Áp dụng máy học với dữ liệu lớn trên hệ thống phân tán tính toán song song (Large-Scale Machine Learning on Heterogeneous Distributed Systems)](http://download.tensorflow.org/paper/whitepaper2015.pdf )
+ - [ ] [2015: Lập trình viên tìm code như thế nào: Một trường hợp điển hình (How Developers Search for Code: A Case Study)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+ - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
+
+
+
+## Papers
+
+- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [implemented in Go](https://godoc.org/github.com/thomas11/csp)
+- [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - replaced by Colossus in 2012
+- [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - mostly replaced by Cloud Dataflow?
+- [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - The Dynamo paper kicked off the NoSQL revolution
+- [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: A Fast Address Sanity Checker:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google’s Globally-Distributed Database:
+ - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [video](https://www.usenix.org/node/170855)
+- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [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)
From e897639239a003f29a20a49fc907ee61323f3c40 Mon Sep 17 00:00:00 2001
From: ducdongmg
Date: Wed, 15 Nov 2023 17:37:15 +0900
Subject: [PATCH 110/173] Update the remaining sections
---
translations/README-vi.md | 710 +++++++++++++++++++-------------------
1 file changed, 351 insertions(+), 359 deletions(-)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index e63310b1f8..4662c9e781 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -1255,31 +1255,51 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
## Lý lịch (Resume) của bạn
-- [10 mẹo để Resume bớt (một chút) tào lao](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
-- Xem các phần về chuẩn bị Resume trong [Cracking The Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/) và [Programming Interviews Exposed](https://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364)
-
-
+- Xem thông tin chuẩn bị CV trong các sách: "Cracking The Coding Interview" và "Programming Interviews Exposed"
+- ["Đây là những gì một CV TỐT nên có" của Gayle McDowell (tác giả của Cracking the Coding Interview)](https://www.careercup.com/resume),
+ - Lưu ý của tác giả: "Đây là cho một CV tập trung cho nước Mỹ. CV cho Ấn Độ và các quốc gia khác có những kỳ vọng khác nhau, mặc dù nhiều điểm sẽ giống nhau."
+- ["Hướng dẫn từng bước để tạo CV" của Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
+ - Hướng dẫn chi tiết về cách thiết lập CV của bạn từ đầu, viết nội dung CV hiệu quả, tối ưu hóa nó, và kiểm tra CV của bạn
## Khi bạn tiến gần đến kỳ phỏng vấn
- [ ] Cracking The Coding Interview, Phần 2 (video):
- [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
- [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
- - [Ask Me Anything: Gayle Laakmann McDowell (author of Cracking the Coding Interview)](https://www.youtube.com/watch?v=1fqxMuPmGak)
+
## Quy trình phỏng vấn & các bước chuẩn bị tổng quát
-- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [4 bước đến Google dù không có bằng cấp](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
-- [ ] [Whiteboarding (Giải toán lập trình trên bảng trắng)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Google nghĩ thế nào về Tuyển dụng, Quản lý và Văn hóa](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
-- [ ] Cracking The Coding Interview Set 1:
+- [ ] [Cách vượt qua cuộc phỏng vấn kỹ thuật năm 2021](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [Làm rõ việc tuyển dụng kỹ thuật](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] Cách nhận việc tại Big 4:
+ - [ ] [Cách nhận việc tại Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [Cách nhận việc tại Big 4.1 (Video tiếp theo)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] Bộ Cracking The Coding Interview 1:
- [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] Làm thế nào để lấy được công việc ở Big 4:
- - [ ] [Làm sao để lấy được công việc ở Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
-- [ ] [Thất bại trong cuộc phỏng vấn với Google](http://alexbowe.com/failing-at-google-interviews/)
-
+ - [ ] [Cracking the Coding Interview với tác giả Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Cracking the Facebook Coding Interview:
+ - [ ] [Phương pháp tiếp cận](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [Hướng dẫn giải quyết vấn đề](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+
+- Các khóa học chuẩn bị:
+ - [Python cho Cấu trúc dữ liệu, Thuật toán, và Phỏng vấn (khóa học trả phí)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - Một khóa học chuẩn bị phỏng vấn tập trung vào Python, bao gồm cấu trúc dữ liệu, thuật toán, phỏng vấn giả lập, và nhiều hơn nữa.
+ - [Giới thiệu về Cấu trúc dữ liệu và Thuật toán sử dụng Python (khóa học miễn phí của Udacity)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - Một khóa học miễn phí tập trung vào Python về cấu trúc dữ liệu và thuật toán.
+ - [Nanodegree Cấu trúc dữ liệu và Thuật toán! (Nanodegree trả phí của Udacity)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - Nhận thực hành trực tiếp với hơn 100 bài tập về cấu trúc dữ liệu và thuật toán và hướng dẫn từ một người hướng dẫn chuyên dụng để giúp bạn chuẩn bị cho phỏng vấn và tình huống trong công việc.
+ - [Hiểu rõ Phỏng vấn Hành vi (khóa học miễn phí của Educative)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - Nhiều lần, không phải năng lực kỹ thuật của bạn ngăn bạn không nhận được công việc mơ ước, mà là cách bạn thể hiện hành vi trong phỏng vấn.
+ - [AlgoMonster (khóa học trả phí với nội dung miễn phí)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - Khóa học tóm tắt cho LeetCode. Bao gồm tất cả các mô hình được tóm gọn từ hàng nghìn câu hỏi.
+
+Phỏng vấn mô phỏng:
+- [Gainlo.co: Người phỏng vấn mô phỏng từ các công ty lớn](http://www.gainlo.co/#!/) - Tôi đã sử dụng dịch vụ này và nó giúp tôi thư giãn cho phần phỏng vấn qua điện thoại và phỏng vấn trực tiếp
+- [Pramp: Phỏng vấn mô phỏng từ/ với đồng nghiệp](https://www.pramp.com/) - một mô hình ngang hàng để thực hành phỏng vấn
+- [interviewing.io: Thực hành phỏng vấn mô phỏng với các kỹ sư hàng đầu](https://interviewing.io) - phỏng vấn mô phỏng về thiết kế thuật toán/hệ thống với các kỹ sư hàng đầu từ FAANG một cách ẩn danh
+- [Meetapro: Phỏng vấn mô phỏng với những người phỏng vấn hàng đầu từ FAANG](https://meetapro.com/?utm_source=ciu) - một nền tảng phỏng vấn mô phỏng/phỏng vấn theo phong cách Airbnb.
+- [Hello Interview: Phỏng vấn mô phỏng với các huấn luyện viên chuyên nghiệp và AI](https://www.hellointerview.com/?utm_source=ciu) - phỏng vấn trực tiếp với AI hoặc với các kỹ sư và quản lý từ FAANG.
## Hãy nghĩ đến những thứ bạn sẽ được hỏi
@@ -1290,35 +1310,34 @@ Chuẩn bị 2 đến 3 câu trả lời cho mỗi câu hỏi. Hãy chuẩn bị
- Vấn đề khó chịu nhất bạn từng giải quyết là gì?
- Thử thách lớn nhất bạn từng đối mặt?
- Thiết kế (hệ thống) tốt nhất/tồi nhất bạn từng gặp?
-- Những ý tưởng để cải thiện các sản phẩm hiện giờ của Google.
+- Những ý tưởng để cải thiện các sản phẩm hiện có.
- Bạn sẽ làm việc như thế nào để đạt hiệu quả tốt nhất, trong trường hợp làm việc một mình và làm theo team?
- Kỹ năng hay kinh nghiệm nào của bạn thích hợp cho công việc này, và tại sao?
- Bạn thích điều gì nhất ở [công việc X/ dự án Y]?
-- Lỗi gấy ức chế nhất bạn từng gặp phải ở [công việc X/ dự án Y]?
+- Thách thức lớn nhất bạn từng gặp phải ở [công việc X/ dự án Y]?
+- Lỗi lớn nhất bạn từng gặp phải ở [công việc X/ dự án Y]?
- Bạn học được những gì ở [công việc X/ dự án Y]?
- Những gì bạn cho rằng mình đã có thể làm tốt hơn ở [công việc X/ dự án Y]?
-
## Chuẩn bị câu hỏi dành cho phỏng vấn viên
- Một vài câu hỏi của tôi (Tôi có thể đã tìm hiểu trước rồi, nhưng vẫn muốn được nghe ý kiến từ góc nhìn của người phỏng vấn):
+Một vài câu hỏi của tôi (Tôi có thể đã tìm hiểu trước rồi, nhưng vẫn muốn được nghe ý kiến từ góc nhìn của người phỏng vấn):
- Quy mô của team thế nào?
- Quy trình phát triển của bạn? Waterfall/sprints/agile?
- Áp lực deadline có phổ biến không? Liệu có sự linh hoạt nào không?
- Các quyết định của team được xây dựng như thế nào?
- Khoảng bao nhiêu cuộc họp hàng tuần?
-- Bạn có cho rằng môi trường làm việc giúp bạn tập trung hơn không?
-- Hiện tại bạn đang xây dựng những gì?
+- Bạn có cảm thấy môi trường làm việc của bạn giúp bạn tập trung không?
+- Hiện tại bạn đang làm gì?
- Bạn thích gì ở công việc này?
-- Sự cân bằng giữa công việc và cuộc sống của bạn có ổn không?
+- Cuộc sống làm việc như thế nào?
+- Sự cân bằng giữa công việc và cuộc sống của bạn ra sao?
## Khi bạn được nhận việc
Chúc mừng!
-- [10 điều tôi ước gì được biết trong ngày đầu tiên tại Google](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
-
Hãy tiếp tục rèn luyện.
Bạn không bao giờ thực sự học xong!
@@ -1329,7 +1348,9 @@ Bạn không bao giờ thực sự học xong!
*****************************************************************************************************
*****************************************************************************************************
- Học các chủ đề này sẽ giúp bạn hiểu sâu hơn về Khoa học máy tính, và sẵn sàng hơn cho bất kỳ công ty nào.
+ Mọi thứ dưới đây là tùy chọn. Nó không cần thiết cho một cuộc phỏng vấn ở cấp độ mới vào nghề.
+ Tuy nhiên, bằng cách nghiên cứu những điều này, bạn sẽ tiếp xúc nhiều hơn với các khái niệm CS và sẽ được chuẩn bị tốt hơn
+ cho bất kỳ công việc kỹ sư phần mềm nào. Bạn sẽ trở thành một kỹ sư phần mềm toàn diện hơn.
*****************************************************************************************************
*****************************************************************************************************
@@ -1338,6 +1359,8 @@ Bạn không bao giờ thực sự học xong!
## Sách bổ sung
+ Đây là nơi bạn có thể đào sâu vào các chủ đề bạn thấy hứng thú
+
- [ ] [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
- cũ nhưng mà tốt
- [ ] [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
@@ -1348,27 +1371,6 @@ Bạn không bao giờ thực sự học xong!
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- còn được gọi là "Sách của bộ tứ" (Gang Of Four, hoặc GOF)
- quyển sách cổ diển về mẫu thiết kế.
-
-- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- - Quyển này được xuất bản năm 2004, phần nào đã lỗi thời, nhưng nó vẫn là một tài liệu tuyệt vời để tìm hiểu về máy tính một cách ngắn gọn.
- - Tác giả phát minh ra HLA (High Level Assembly), vậy nên hãy hãy chú ý một chút về các ví dụ và định nghĩa trong sách. Tuy không được sử dụng rộng rãi, nhưng đó là một ví dụ hiện đại về hợp ngữ.
- - Những chương này rất đáng đọc để xây dựng cho bạn một nền tảng tốt (giữ nguyên gốc tiếng Anh):
- - Chapter 2 - Numeric Representation
- - Chapter 3 - Binary Arithmetic and Bit Operations
- - Chapter 4 - Floating-Point Representation
- - Chapter 5 - Character Representation
- - Chapter 6 - Memory Organization and Access
- - Chapter 7 - Composite Data Types and Memory Objects
- - Chapter 9 - CPU Architecture
- - Chapter 10 - Instruction Set Architecture
- - Chapter 11 - Memory Architecture and Organization
-
-- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
- - **Chú ý:** Đọc cuốn này chỉ có một ít giá trị. Đây là một tổng hợp xuất sắc về giải thuật và cấu trúc dữ liệu, nhưng nó không dạy cho bạn cách viết code xuất sắc. Để làm một lập trình viên giỏi, bạn đồng thời phải có khả năng phát triển một giải pháp một cách hiệu quả nữa.
- - Trích lời Yegge: "Nhưng nếu bạn muốn đến với buổi phỏng vấn một cách có chuẩn bị, vậy hãy hoãn đơn xin ứng tuyển lại cho đến khi bạn hoàn tất quyển sách này"
- - Half.com là một trang hữu dụng để tìm sách với giá tốt.
- - Đôi được gọi là CLR, hoặc là CLRS (trích chữ cái đầu trong tên của các tác giả), vì Stein (một trong 4 tác giả, S trong CLRS) nhập cuộc trễ
-
- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- Như một tài liệu ôn tập và hỗ trợ nhận dạng vấn đề.
- Danh mục thuật toán thật sự vượt xa độ khó của một cuộc phỏng vấn.
@@ -1383,25 +1385,41 @@ Bạn không bao giờ thực sự học xong!
- Các chương 7, 8, 9 có thể rất vất vả để theo được, vì một vài phần không được giải thích rõ, hoặc là yêu cầu nhiều não hơn những gì tôi có.
- Đừng hiểu lầm: Tôi thích Skiena, cách dạy học và phong các của ông ấy, nhưng tôi có lẽ không đủ khả năng để tốt nghiệp ở Stony Brook (nơi Skiena giảng dạy).
- Danh mục thuật toán:
- - Đây là phần chính yếu mà bạn mua được từ quyển sách.
- - Sắp đến được phần này rồi. Tôi sẽ cập nhật một khi tôi xong với nó.
+ - Đây là lý do thực sự bạn mua cuốn sách này.
+ - Cuốn sách này tốt hơn khi được sử dụng như một tài liệu tham khảo về thuật toán, chứ không phải là một thứ bạn đọc từ đầu đến cuối.
- Trích dẫn từ Yegge: "Hơn hẳn những quyến sách khác, cuốn này giúp tôi hiểu rõ các bài toán về Graph phổ biến một cách đáng kinh ngạc và quan trọng như thế nào - chúng nên là một phần trong các công cụ của bất kỳ lập trình viên nào. Quyển sách đồng thời cũng bao phủ các cấu trúc dữ liệu cơ bản, các thuật toán sắp xếp. Đó là một điểm cộng. Nhưng phần quý giá thật sự nằm ở nửa sau, chính là bách khoa toàn thư ngắn gọn về hàng triệu bài toán hữu dụng và vô số cách để giải quyết chúng, trình bày sơ lược. Mỗi trang đều có một hình minh họa, giúp người đọc dễ ghi nhớ hơn. Đó là một cách tốt đề định dạng và phân loại các bài toán".
- Có thể thuê quyển sách này trên Kindle
- - Half.com là một trang hữu dụng để tìm sách với giá tốt.
- Câu trả lời cho các bài tập trong sách:
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
- - [Danh mục lỗi của sách](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-
+ - [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
+- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - Quyển này được xuất bản năm 2004, phần nào đã lỗi thời, nhưng nó vẫn là một tài liệu tuyệt vời để tìm hiểu về máy tính một cách ngắn gọn.
+ - Tác giả phát minh ra HLA (High Level Assembly), vậy nên hãy hãy chú ý một chút về các ví dụ và định nghĩa trong sách. Tuy không được sử dụng rộng rãi, nhưng đó là một ví dụ hiện đại về hợp ngữ (assembly).
+ - Những chương này rất đáng đọc để xây dựng cho bạn một nền tảng tốt (giữ nguyên gốc tiếng Anh):
+ - Chapter 2 - Numeric Representation
+ - Chapter 3 - Binary Arithmetic and Bit Operations
+ - Chapter 4 - Floating-Point Representation
+ - Chapter 5 - Character Representation
+ - Chapter 6 - Memory Organization and Access
+ - Chapter 7 - Composite Data Types and Memory Objects
+ - Chapter 9 - CPU Architecture
+ - Chapter 10 - Instruction Set Architecture
+ - Chapter 11 - Memory Architecture and Organization
-- [ ] [Site Reliability Engineering](https://landing.google.com/sre/book.html)
- - [Site Reliability Engineering: Google chạy các hệ thống của họ như thế nào](https://landing.google.com/sre/)
-- [ ] [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/)
-
+- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - **Chú ý:** Đọc cuốn này chỉ có một ít giá trị. Đây là một tổng hợp xuất sắc về giải thuật và cấu trúc dữ liệu, nhưng nó không dạy cho bạn cách viết code xuất sắc. Để làm một lập trình viên giỏi, bạn đồng thời phải có khả năng phát triển một giải pháp một cách hiệu quả nữa.
+ - Trích lời Yegge: "Nhưng nếu bạn muốn đến với buổi phỏng vấn một cách có chuẩn bị, vậy hãy hoãn đơn xin ứng tuyển lại cho đến khi bạn hoàn tất quyển sách này"
+ - Half.com là một trang hữu dụng để tìm sách với giá tốt.
+ - Đôi được gọi là CLR, hoặc là CLRS (trích chữ cái đầu trong tên của các tác giả), vì Stein (một trong 4 tác giả, S trong CLRS) nhập cuộc trễ
+- [Kiến trúc Máy tính, Ấn bản thứ Sáu: Một cách tiếp cận định lượng](https://www.amazon.com/dp/0128119055)
+ - Đối với một cách tiếp cận phong phú hơn, cập nhật hơn (2017), nhưng dài hơn
## Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu
+
- **Bạn có thể sẽ bị hỏi câu hỏi liên quan đến thiết kế hệ thống nếu có hơn 4 năm kinh nghiệm**
+
- Khả năng mở rộng và Thiết kế hệ thống là các chủ đề rất rộng, với nhiều vấn đề và tài liệu liên quan, bởi vì có rất nhiều vấn đề cần phải giải quyết khi thiết kế các hệ thống phần mềm (hoặc phần cứng) có thể mở rộng được.
Cần phải đầu tư một chút thời gian cho vấn đề này.
- Lời khuyên từ Yegge:
@@ -1417,24 +1435,27 @@ Bạn không bao giờ thực sự học xong!
- Đơn giản và vững chắc
- Đánh đổi (từ gốc tradeoff, chấp nhận bỏ một vài tính năng nhỏ để có được những lợi ích khác như tốc độ xử lý...)
- Phân tích và tối ưu hiệu suất sử dụng
-- [ ] **BÁT ĐẦU TỪ ĐÂY**: [System Design from HiredInTech - Thiết kế hệ thống bởi HiredInTech](http://www.hiredintech.com/system-design/)
+- [ ] **BÁT ĐẦU TỪ ĐÂY**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [System Design from HiredInTech - Thiết kế hệ thống bởi HiredInTech](http://www.hiredintech.com/system-design/)
- [ ] [Làm thế nào để trả lời các câu hỏi liên quan tới thiết kế trong phỏng vấn kỹ thuật? (How Do I Prepare To Answer Design Questions In A Technical Inverview)](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [8 điều bạn nên biết trước khi bắt đầu một buổi phỏng vấn về Thiết kế hệ thống (8 Things You Need to Know Before a System Design Interview) ](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [Thiết kế thuật toán (Algorithm design)](http://www.hiredintech.com/algorithm-design/)
+- [ ] [8 điều bạn nên biết trước khi bắt đầu một buổi phỏng vấn về Thiết kế hệ thống (8 Things You Need to Know Before a System Design Interview) ](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
- [ ] [Chuẩn hóa trong cơ sở dữ liệu (Database Normalization - 1NF, 2NF, 3NF and 4NF) (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
- [ ] [Phỏng vấn về thiết kế hệ thống (System Design Interview)](https://github.com/checkcheckzz/system-design-interview) - Có rất nhiều tài liệu trong link nay. Hãy đọc qua các bài viết và các ví dụ. Tôi có liệt kê sau đây:
-- [ ] [Làm thế nào để dẫn đầu trong cuộc phỏng vấn về thiết kế hệ thống (How to ace a systems design interview) ](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [Làm thế nào để dẫn đầu trong cuộc phỏng vấn về thiết kế hệ thống (How to ace a systems design interview) ](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
- [ ] [Những con số ai cũng nên biết (Numbers Everyone Should Know)](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
- [ ] [Mất bao lâu để làm một chuyển đổi ngữ cảnh? (How long does it take to make a context switch) ](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
- [ ] [Các luồng xử lý trong trung tâm dữ liệu (Transactions Across Datacenters)(video)](https://www.youtube.com/watch?v=srOgpXECblk)
- [ ] [Một hướng dẫn đơn giản về lý thuyết CAP (A plain English introduction to CAP Theorem)](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
-- [ ] Thuật toán đồng thuận của Paxos:
- - [video ngắn](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [Video mở rộng với trường hợp cụ thể và multi-paxos (extended video with use case and multi-paxos)](https://www.youtube.com/watch?v=JEpsBg0AO6o)
- - [Nghiên cứu](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)
-- [ ] [Băm nhất quán (Consistent Hashing)](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] Thuật toán đồng thuận:
+ - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [Easy-to-read paper](https://raft.github.io/)
+ - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
+- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
- [ ] Khả năng mở rộng:
+ - Bạn không cần tất cả chúng. Chỉ cần chọn 1 vài cái bạn có hứng thú
- [ ] [Tầm nhìn chung (Great overview)(video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- [ ] Các seri ngắn:
- [Nhân bản (Clones)](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
@@ -1443,13 +1464,11 @@ Bạn không bao giờ thực sự học xong!
- [Bất đồng bộ (Asynchronism)](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- [ ] [Kiến trúc web và hệ thống phân tán có khả năng mở rộng (Scalable Web Architecture and Distributed Systems)](http://www.aosabook.org/en/distsys.html)
- [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [Pragmatic Programming Techniques](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html)
- - [Bổ sung: Google Pregel cho xử lý đồ thị (Google Pregel Graph Processing)](http://horicky.blogspot.com/2010/07/google-pregel-graph-processing.html)
- [ ] [Jeff Dean - Xây dựng hệ thống phần mềm tại Google và các bài học rút ra được (Jeff Dean - Building Software Systems At Google and Lessons Learned)(video)](https://www.youtube.com/watch?v=modXC5IWTJI)
- [ ] [Giới thiệu về kiến trúc hệ thống có thể mở rộng (Introduction to Architecting Systems for Scale)](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- [ ] [Mở rộng game trên di động nhắm tới khách hàng trên toàn thế giới sử dụng App Engine và Cloud Datastore (Scaling mobile games to a global audience using App Engine and Cloud Datastore)(video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [Sự quan trọng của thuật toán (The Importance of Algorithms)](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/)
+ - [ ] [Sự quan trọng của thuật toán (The Importance of Algorithms)](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
- [ ] [Chia nhỏ cơ sở dữ liệu thành từng phần nhỏ và nhanh hơn, dễ quản lý hơn (Sharding)](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- [ ] [Khả năng mở rộng của Facebook (Scale at Facebook) - (2009)](https://www.infoq.com/presentations/Scale-at-Facebook)
- [ ] [Khả năng mở rộng của Facebook (2012), "Xây dựng cho cả tỷ người dùng" (Scale at Facebook (2012), "Building for a Billion Users" - )(video)](https://www.youtube.com/watch?v=oodS71YtkGU)
@@ -1461,12 +1480,8 @@ Bạn không bao giờ thực sự học xong!
- [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie) (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- [ ] [Cùng nhìn nhận cách Etsy mở rộng và phong cách lập trình với Jon Cowie (What Led Amazon to its Own Microservices Architecture - Điều gì đưa Amazon tới kiến trúc microservices](http://thenewstack.io/led-amazon-microservices-architecture/)
- [ ] [Nén hay không nén, đây là câu hỏi dành cho Uber (To Compress Or Not To Compress, That Was Uber's Question)](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [Asyncio Tarantool Queue, Get In The Queue](http://highscalability.com/blog/2016/3/3/asyncio-tarantool-queue-get-in-the-queue.html)
- [ ] [Trong trường hợp nào truy vấn phỏng đoán được thực thi? (When Should Approximate Query Processing Be Used?)](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html)
- - [ ] [Kiến trúc Egnyte: Kinh nghiêm từ việc xây dụng và mở rộng hệ thống phân tán lên tới Petabyte (Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System) ](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html)
- - [ ] [Lập trình hướng máy học - Một cách lập trình mới trong thời đại mới (Machine Learning Driven Programming: A New Programming For A New World)](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html)
- [ ] [Kỹ thuật tối ưu hình ảnh để phục vụ hàng triệu yêu cầu mỗi ngày (The Image Optimization Technology That Serves Millions Of Requests Per Day)](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- [ ] [Trình bày ngắn về kiến trúc Patreon (A Patreon Architecture Short)](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- [ ] [Tinder: Làm thế nào mà một trong những hệ thống hẹn hò lớn nhất quyết định bạn sẽ nhìn thấy ai tiếp theo (Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?)](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
@@ -1479,20 +1494,17 @@ Bạn không bao giờ thực sự học xong!
- [ ] [Độ trễ ảnh hưởng tới doanh thu của bạn - Làm sao để khắc phục? (Latency Is Everywhere And It Costs You Sales - How To Crush It)](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- [ ] [Serverless (rất dài, chỉ nền dùng file gist)](http://martinfowler.com/articles/serverless.html)
- [ ] [Điều gì làm nên sức mạnh của Instagram: Hàng trăm phần tử, hàng tá các công nghệ (What Powers Instagram: Hundreds of Instances, Dozens of Technologies )](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Kiến trúc Cinchcast - Tạo ra 1500 giờ âm thanh mỗi ngày (Cinchcast Architecture - Producing 1,500 Hours Of Audio Every Day)](http://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html)
- - [ ] [Kiến trúc của chương trình phát sóng video trực tiếp Justin.Tv (Justin.Tv's Live Video Broadcasting Architecture)](http://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html)
- - [ ] [Kiến trúc của game cộng đồng Playfish - 50 triệu người sử dụng hàng tháng và vẫn tiếp tục tăng (Playfish's Social Gaming Architecture - 50 Million Monthly Users And Growing)](http://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html)
- - [ ] [Kiến trúc của TripAdvisor - 40 triệu người viếng thăm, 200 triệu lượt xem, 30 Tb dữ liệu (TripAdvisor Architecture - 40M Visitors, 200M Dynamic Page Views, 30TB Data)](http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html)
- - [ ] [Kiến trúc của PlentyOfFish (PlentyOfFish Architecture)](http://highscalability.com/plentyoffish-architecture)
- [ ] [Kiến trúc của Salesforce - Làm thế nào để xử lý 1.3 tỷ giao dịch mỗi ngày (Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day)](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- [ ] [Kiến trúc của ESPN khi mở rộng - Xử lý 100000 thông tin mỗi giây (ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second)](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- [ ] Xem qua "Messaging, Serialization, and Queueing Systems" phía dưới để hiểu các công nghệ có thể kết nối các dịch vụ cùng lúc thế nào.
- [ ] Twitter:
- [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - Để có thêm thông tin, xem seri "Mining Massive Datasets" trong seri video.
-- [ ] Thực hành thêm về thiết kế hệ thống: Sau đây là vài ý tưởng có thể thực hiện trên giấy, mỗi ý tưởng đều có tư liệu đi cùng để hiểu rõ nó thực thi thế nào trong thế giới thực. [Thiết kế hệ thống bới HiredInTech (System Design from HiredInTech)](http://www.hiredintech.com/system-design/)
- - [cheat sheet](/extras/cheat%20sheets/system-design.pdf)
+ - Để có thêm thông tin, xem seri "Mining Massive Datasets" trong [seri video](#Các-chuỗi-Video).
+- [ ] Thực hành thêm về thiết kế hệ thống: Sau đây là vài ý tưởng có thể thực hiện trên giấy, mỗi ý tưởng đều có tư liệu đi cùng để hiểu rõ nó thực thi thế nào trong thế giới thực.
+ - review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [Thiết kế hệ thống bới HiredInTech (System Design from HiredInTech)](http://www.hiredintech.com/system-design/)
+ - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- Các bước thực hiện:
1. Hiểu vấn đề và phạm vi của vấn đề:
- Định nghĩa các trường hợp sử dụng cụ thể với sự trợ giúp từ người phỏng vấn
@@ -1513,32 +1525,30 @@ Bạn không bao giờ thực sự học xong!
- Cái nhìn tổng quan về thuật toán chủ chốt để chạy các dịch vụ
- Đưa ra hướng giải quyết cho hiện tượng nghẽn cổ chai
- Bài tập:
- - [Thiết kế một mạng CDN (Content Delivery Network) (Design a CDN network: old article) ](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- [Thiết kê một hệ thống cung cấp ID ngẫu nhiên (Design a random unique ID generation system)](https://blog.twitter.com/2010/announcing-snowflake)
- - [Thiết kế một hệ thống chơi bài nhiều người online (Design an online multiplayer card game)](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
- [Thiết kế một cơ sở dữ liệu khóa-giá trị (Design a key-value database)](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [Thiết kế một hàm để trả về những từ khóa được tìm kiếm nhiều nhất trong thời gian gần nhất (Design a function to return the top k requests during past time interval)]( https://icmi.cs.ucsb.edu/research/tech_reports/reports/2005-23.pdf)
- [Thiết kế một hệ thống chia sẻ ảnh (Design a picture sharing system) ](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- [Thiết kế một hệ thống hổ trợ ra quyết định (Design a recommendation system)](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- [Thiết kế một hệ thống làm ngắn URL (Design a URL-shortener system: copied from above)](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [Thiết kế một hệ thống cache (Design a cache system)](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-
----
+ - [Thiết kế một hệ thống cache (Design a cache system)](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
## Học thêm
> Tiêu đề của các video, các thuật ngữ cao cấp xin được giữ nguyên. Một số thuật ngữ có thể dịch được, nhưng người dịch không đủ vốn từ đề diễn đạt chúng một cách ngắn gọn như trong tiếng Anh, nên cũng xin phép cho qua.
+ Tôi đã thêm chúng để giúp bạn trở thành một kỹ sư phần mềm toàn diện và để bạn biết về một số
+ công nghệ và thuật toán, vì vậy bạn sẽ có một bộ công cụ lớn hơn.
+
- ### Trình biên dịch
- - [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- - [ ] [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- - [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
- - [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+ - [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
+ - [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
- ### Emacs và vi(m)
- - Được đề xuất bởi Yegge, từ một bài đăng tuyển dụng cũ của Amazon: Phải nắm vững một trình chỉnh sửa văn bản thông dụng trên Unix.
+ - Phải nắm vững một trình chỉnh sửa văn bản thông dụng trên Unix.
- vi(m):
- - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [Editing With Vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- [VIM Adventures](http://vim-adventures.com/)
- 4 video:
- [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
@@ -1551,123 +1561,123 @@ Bạn không bao giờ thực sự học xong!
- 3 video:
- [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
- [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
- - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file, and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
- [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+ - [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
- ### Các công cụ chạy trên dòng lệnh của Unix
- - Được đề xuất bởi Yegge, từ một bài đăng tuyển dụng cũ của Amazon.
- - [ ] bash
- - [ ] cat
- - [ ] grep
- - [ ] sed
- - [ ] awk
- - [ ] curl or wget
- - [ ] sort
- - [ ] tr
- - [ ] uniq
- - [ ] [strace](https://en.wikipedia.org/wiki/Strace)
- - [ ] [tcpdump](https://danielmiessler.com/study/tcpdump/)
+ - bash
+ - cat
+ - grep
+ - sed
+ - awk
+ - curl or wget
+ - sort
+ - tr
+ - uniq
+ - [strace](https://en.wikipedia.org/wiki/Strace)
+ - [tcpdump](https://danielmiessler.com/study/tcpdump/)
- ### Lý thuyết thông tin
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
+ - [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
- [ ] Hiểu thêm về chuỗi Markov:
- - [ ] [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- - [ ] [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- - [ ] [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
+ - [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
+ - [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
+ - [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- Xem thêm ở chuỗi bài từ đại học MIT 6.050J Information và Entropy bên dưới.
- ### Parity & Hamming Code (videos)
- - [ ] [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
- - [ ] [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
- - [ ] Hamming Code:
+ - [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
+ - [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
+ - Hamming Code:
- [Error detection](https://www.youtube.com/watch?v=1A_NcXxdoCc)
- [Error correction](https://www.youtube.com/watch?v=JAMLuxdHH8o)
- - [ ] [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
-
-- ### Entropy
- - Xem các video bên dưới.
- - Hãy chăc chắn đã xem qua các video đề lý thuyết thông tin trước.
- - [ ] [Information Theory, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
+ - [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
- ### Mã hóa
+ - Xem các video bên dưới.
- Hãy chăc chắn đã xem qua các video đề lý thuyết thông tin trước.
- - [ ] [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
- - [ ] [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
- - [ ] [Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
+ - [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
+ - [Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- ### Thuật toán nén
- Hãy chăc chắn đã xem qua các video đề lý thuyết thông tin trước.
- [ ] Computerphile (videos):
- - [ ] [Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
- - [ ] [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
- - [ ] [Upside Down Trees (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
- - [ ] [EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
- - [ ] [Elegant Compression in Text (The LZ 77 Method)](https://www.youtube.com/watch?v=goOa3DGezUA)
- - [ ] [Text Compression Meets Probabilities](https://www.youtube.com/watch?v=cCDCfoHTsaU)
- - [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
- - [ ] [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
+ - [Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
+ - [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
+ - [Upside Down Trees (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
+ - [EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
+ - [Elegant Compression in Text (The LZ 77 Method)](https://www.youtube.com/watch?v=goOa3DGezUA)
+ - [Text Compression Meets Probabilities](https://www.youtube.com/watch?v=cCDCfoHTsaU)
+ - [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
+ - [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
- ### Bảo mật
- [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
- - [ ] [Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
- - [ ] [Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
- - [ ] [Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
+ - [Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
+ - [Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
+ - [Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- ### Trình dọn rác
> Trình dọn rác (garbage collection) là một tính năng của các ngôn ngữ lập trình cấp cao, trong đó hệ thông tự động thu hồi vùng nhớ của các data (biến, đối tượng) không còn được sử dụng nữa, và cấp phát chúng cho các data mới. Trước khi có tính năng này, lập trình viên phải quản lý vùng nhớ thủ công, tự xin cấp phát và tự giải phóng.
- - [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
- - [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
- - [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
- - [ ] [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+ - [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
+ - [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
+ - [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
- ### Lập trình song song
- - [ ] [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
- - [ ] [Efficient Python for High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+ - [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
+ - [Efficient Python for High-Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
- ### Messaging, Serialization, và Queueing Systems
- - [ ] [Thrift](https://thrift.apache.org/)
+ - [Thrift](https://thrift.apache.org/)
- [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
- - [ ] [Protocol Buffers](https://developers.google.com/protocol-buffers/)
+ - [Protocol Buffers](https://developers.google.com/protocol-buffers/)
- [Tutorials](https://developers.google.com/protocol-buffers/docs/tutorials)
- - [ ] [gRPC](http://www.grpc.io/)
+ - [gRPC](http://www.grpc.io/)
- [gRPC 101 for Java Developers (video)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
- - [ ] [Redis](http://redis.io/)
+ - [Redis](http://redis.io/)
- [Tutorial](http://try.redis.io/)
- - [ ] [Amazon SQS (queue)](https://aws.amazon.com/sqs/)
- - [ ] [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
- - [ ] [RabbitMQ](https://www.rabbitmq.com/)
+ - [Amazon SQS (queue)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
- [Get Started](https://www.rabbitmq.com/getstarted.html)
- - [ ] [Celery](http://www.celeryproject.org/)
+ - [Celery](http://www.celeryproject.org/)
- [First Steps With Celery](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
- - [ ] [ZeroMQ](http://zeromq.org/)
+ - [ZeroMQ](http://zeromq.org/)
- [Intro - Read The Manual](http://zeromq.org/intro:read-the-manual)
- - [ ] [ActiveMQ](http://activemq.apache.org/)
- - [ ] [Kafka](http://kafka.apache.org/documentation.html#introduction)
- - [ ] [MessagePack](http://msgpack.org/index.html)
- - [ ] [Avro](https://avro.apache.org/)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### A*
+ - [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
- ### Fast Fourier Transform
- - [ ] [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- - [ ] [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [ ] [What is the Fourier Transform? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [ ] [Divide & Conquer: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- - [ ] [Understanding The FFT](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+ - [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [What is the Fourier Transform? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Divide & Conquer: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [Understanding The FFT](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
- ### Bloom Filter
- - Given a Bloom filter with m bits and k hashing functions, both insertion and membership testing are O(k)
- - [Bloom Filters](https://www.youtube.com/watch?v=-SuTGoFYjZs)
- - [Bloom Filters | Mining of Massive Datasets | Stanford University](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - Cho một bộ lọc Bloom với m bit và k hàm băm, cả việc chèn và kiểm tra thành viên đều là O(k)
+ - [Bloom Filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Bloom Filters | Mining of Massive Datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78)
- [Tutorial](http://billmill.org/bloomfilter-tutorial/)
- [How To Write A Bloom Filter App](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
@@ -1680,35 +1690,35 @@ Bạn không bao giờ thực sự học xong!
- [Simhashing (hopefully) made simple](http://ferd.ca/simhashing-hopefully-made-simple.html)
- ### van Emde Boas Trees
- - [ ] [Divide & Conquer: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
- - [ ] [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
+ - [Divide & Conquer: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
- ### Augmented Data Structures
- - [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950)
+ - [CS 61B Lecture 39: Augmenting Data Structures](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
- ### Balanced search trees
- Biết ít nhất một dạng cây nhị phân tìm kiếm cân bằng (và biết cách cài đặt nó)
- - "Trong các loại cây nhị phân cân bằng, cây AVL và 2/3 đã "ra đi", và cây đỏ-đen (red-black) có vẻ khá phỏ biến. Một dạng cây tự quản khá thú vị là _splay tree_, sử dụng phép xoay nút để chuyển bất kỳ nút nào lên trên gốc" - Skiena
+ - "Trong các loại cây nhị phân cân bằng, cây AVL và 2/3 đã "ra đi", và cây đỏ-đen (red-black) có vẻ khá phổ biến. Một dạng cây tự quản khá thú vị là _splay tree_, sử dụng phép xoay nút để chuyển bất kỳ nút nào lên trên gốc" - Skiena
- Do đó, tôi quyết định cài đặt splay tree. Từ những gì tôi đọc được, bạn không cần phải cài đặt một cây nhị phân trong cuộc phỏng vấn. Nhưng tôi muốn chắc chắn về kiến thức của mình, và cũng phải đối diện với sự thật rằng splay tree khá khó.
- splay tree: insert, search, delete functions
- Nếu bạn muốn cài đặt cây đỏ-đen thì có thể thử sức các phép toán này: search and insertion functions, skipping delete
- Tôi muốn học nhiều hơn về B-Tree, bởi vì nó được sử dụng rộng rãi với các tập dữ liệu rất lớn.
- - [ ] [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
+ - [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
- [ ] **AVL trees**
- Trong thực tế:
Từ những gì mà tôi đọc được, chúng không được sử dụng nhiều, nhưng tôi có thể nghĩ đến vài ứng dụng: cây AVL hỗ trợ O(log n) cho tìm kiếm, chèn và xóa nút. Nó được cân bằng một cách chặt chẽ hơn so với cây đỏ-đen, dẫn đến việc chèn và xóa chậm hơn, nhưng tìm kiếm sẽ nhanh hơn. Điều đó khiến nó thích hơp với các bộ dữ liệu được xây dựng một lần và tái sử dụng nhiều lần, ví dụ như từ diển trong ngôn ngữ thông thường (hoặc các bộ từ vựng trong lập trình, biên dịch)
- - [ ] [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- - [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- - [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- - [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
- - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
+ - [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ - [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- [ ] **Splay trees**
- Trong thực tế:
Splay tree được sử dụng để cài đặt cache, bộ cấp phát bộ nhớ, định tuyến, bộ dọn rác, trình nén dữ liệu, ropes (thay thế hoặc đại diện cho một chuỗi lớn), trong Windows NT (bộ nhớ ảo, mạng và hệ thống file.)
- - [ ] [CS 61B: Splay Trees (video)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
- - [ ] MIT Lecture: Splay Trees:
+ - [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
+ - MIT Lecture: Splay Trees:
- Gets very mathy, but watch the last 10 minutes for sure.
- [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
@@ -1716,43 +1726,44 @@ Bạn không bao giờ thực sự học xong!
- Đây là một biến thể của cây 2/3 tree (xem bên dưới)
- Trong thực tế:
Cây Đỏ-đen đảm bảo tốc độ thực thi ok trong trường hợp xấu nhất cho các phép toán: chèn, xóa, tìm kiếm. Điều đó không chỉ khiến nó có giá trị trong các ứng dụng thời gian thực, mà còn là phần cơ bản đề xây dựng nhiều dạng cấu trúc dữ liệu nâng cao, ví dụ như, trong tính toán địa lý, nhiều cấu trúc dữ liệu được xây dựng dựa trên cây đỏ-đen, thuật toán Lập lịch tuyệt đối công bằng (Completely Fair Scheduler) sử dụng trong nhân Linux cũng dùng cây đỏ-đen. Trên Java 8, HashMap cũng được điều chỉnh lại, thay vi dùng LinkedList để chứa các phần tử giống nhau (trùng hashcode), nguời ta dùng một cây đỏ-đen.
- - [ ] [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- - [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- - [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- - [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
+ - [Aduni - Algorithms - Lecture 4 (link jumps to the starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
+ - [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
- [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- [ ] **2-3 search trees**
- Trong thực tế:
- cây 2-3 chèn nhanh hơn, nhưng tìm kiêm chậm hơn (chiều cao của cây cao hơn so với AVL)
+ cây 2-3 chèn nhanh hơn, nhưng tìm kiếm chậm hơn (chiều cao của cây cao hơn so với AVL)
- Bạn sẽ hiếm khi sử dụng cây 2-3, vì cài đặt của chúng sử dụng các dạng nút khác nhau. Vì vậy, người ta dùng cây đỏ-đen nhiều hơn.
- - [ ] [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- - [ ] [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [ ] **2-3-4 Trees (aka 2-4 trees)**
- Trong thực tế:
Với mỗi cây 2-4, có nhiều cây đỏ-đen tương ứng với cùng thứ tự nút. Phép chèn và xóa trên cây 2-4 cũng tương đương với phép đổi màu và xoay trên cây đỏ-đen. Nó khiến cho cây 2-4 trở thành một công cụ hiệu quả để hiểu được logic phía sau cây đỏ-đen, và đó là tại sao nhiều sách dẫn nhập thuật toán lại giới thiệu cây 2-4 trước cây đỏ-đen. **cây 2-4 không thường được dùng trong thực tế**
- - [ ] [CS 61B Lecture 26: Balanced Search Trees (video)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
- - [ ] [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
+ - [CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
+ - [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
- [ ] **N-ary (K-ary, M-ary) trees**
- chú ý: N hay K chính là yếu tố cho phân nhánh (số nhánh tối đa)
- Cây nhị phân là 2-ary, trong đó, số nhánh tối đa (branching factor) là 2
- Cây 2-3 là 3-ary
- - [ ] [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
+ - [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
- [ ] **B-Trees**
- fun fact: điều đó vẫn còn là một bí ẩn, nhưng B ở đây có thể là Boeing, Balanced (được cân bằng) hoặc Bayer (người đồng sáng tạo)
- Trong thực tế:
B-tree được sử dụng rộng rãi trong các cơ sở dữ liệu. Hầu hết các hệ thống file sử dụng B-tree (hoặc biến thể của nó). Thêm vào đó, loại cấu trúc cho phép truy cập ngẫu nhiên nhanh chóng vào một file bất kỳ. Vấn đề còn lại là điều chỉnh địa chỉ khổi vùng nhớ của file thành địa chỉ vật lý của ổ đĩa (hoặc địa chỉ _cylinder-head-sector_).
(or perhaps to a cylinder-head-sector) address.
- - [ ] [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- - [ ] [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
- - [ ] [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - [B-Tree](https://en.wikipedia.org/wiki/B-tree)
+ - [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html)
+ - [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- giải thích cache mau quên (cache-oblivious) B-Trees, một cấu trúc dữ liệu rất thú vị.
- 37 phút đầu tiên rất nặng kỹ thuật, có thể bỏ qua
- [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
@@ -1761,46 +1772,49 @@ Bạn không bao giờ thực sự học xong!
- ### k-D Trees
- Tốt đề tìm số điểm nằm trong một hình chữ nhật hoặc một đối tượng đa chiều.
- Rất thích hợp cho thuật toán tìm láng giềng gần nhất (k-nearest neighbors, một thuật toán trong khai thác dữ liệu)
- - [ ] [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk)
- - [ ] [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+ - [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
- ### Skip lists
- "Đó là một dạng cấu trúc dữ liệu được sùng bái" - Skiena
- - [ ] [Randomization: Skip Lists (video)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
+ - [Randomization: Skip Lists (video)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
- ### Network Flows
- - [ ] [Ford-Fulkerson in 5 minutes (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [ ] [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [ ] [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+ - [Ford-Fulkerson in 5 minutes — Step by step example (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
+ - [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
- ### Disjoint Sets & Union Find
- [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
- [Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
- ### Math for Fast Processing
- - [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+ - [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
- ### Treap
- Sự kết hợp giữa cây nhị phân và heap.
- - [ ] [Treap](https://en.wikipedia.org/wiki/Treap)
- - [ ] [Data Structures: Treaps explained (video)](https://www.youtube.com/watch?v=6podLUYinH8)
- - [ ] [Applications in set operations](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
+ - [Treap](https://en.wikipedia.org/wiki/Treap)
+ - [Data Structures: Treaps explained (video)](https://www.youtube.com/watch?v=6podLUYinH8)
+ - [Applications in set operations](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
- ### Linear Programming (videos)
- - [ ] [Linear Programming](https://www.youtube.com/watch?v=M4K6HYLHREQ)
- - [ ] [Finding minimum cost](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
- - [ ] [Finding maximum value](https://www.youtube.com/watch?v=8AA_81xI3ik)
- - [ ] [Solve Linear Equations with Python - Simplex Algorithm](https://www.youtube.com/watch?v=44pAWI7v5Zk)
+ - [Linear Programming](https://www.youtube.com/watch?v=M4K6HYLHREQ)
+ - [Finding minimum cost](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
+ - [Finding maximum value](https://www.youtube.com/watch?v=8AA_81xI3ik)
+ - [Solve Linear Equations with Python - Simplex Algorithm](https://www.youtube.com/watch?v=44pAWI7v5Zk)
- ### Geometry, Convex hull (videos)
- - [ ] [Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
- - [ ] [Geometric Algorithms: Graham & Jarvis - Lecture 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
+ - [Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
+ - [Geometric Algorithms: Graham & Jarvis - Lecture 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
- ### Discrete math
- - Xem các video bên dưới
+ - [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
+
+---
- ### Machine Learning
- [ ] Tại sao nên học ML?
@@ -1828,205 +1842,183 @@ Bạn không bao giờ thực sự học xong!
- [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- Data School: http://www.dataschool.io/
-- ### Go
- - [ ] Video:
- - [ ] [Why Learn Go?](https://www.youtube.com/watch?v=FTl0tl9BGdc)
- - [ ] [Go Programming](https://www.youtube.com/watch?v=CF9S4QZuV30)
- - [ ] [A Tour of Go](https://www.youtube.com/watch?v=ytEkHepK08c)
- - [ ] Sách:
- - [ ] [An Introduction to Programming in Go (read free online)](https://www.golang-book.com/books/intro)
- - [ ] [The Go Programming Language (Donovan & Kernighan)](https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440)
- - [ ] [Bootcamp](https://www.golang-book.com/guides/bootcamp)
-
--
## Đọc thêm về một số đề tài
Tôi thêm những phần này để củng cố các kiến thức đã được trình bày ở trên, nhưng không muốn đưa chúng vào danh sách trên, vì đã quá nhiều rồi. Cũng có hơi vượt mức cần thiết. Nhưng dù sao, bạn muốn trúng tuyển mà phải không?
-- [ ] **Union-Find**
- - [ ] [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
- - [ ] [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
- - [ ] [Trees](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
- - [ ] [Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
- - [ ] [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
- - [ ] [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
-
-- [ ] **Đi sâu hơn vào quy hoạch động** (videos)
- - [ ] [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- - [ ] [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- - [ ] [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
- - [ ] [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=tp4_UXaVyx8&index=22&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- - [ ] [6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
-
-- [ ] **Xử lý đồ thị nâng cao** (videos)
- - [ ] [Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
- - [ ] [Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
-
-- [ ] MIT **Xác suất** (nặng toán học, và hãy đi chậm chậm, sẽ tốt cho các vấn đề toán học khác) (videos):
- - [ ] [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
- - [ ] [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
-
-- [ ] [Simonson: Approximation Algorithms (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
-
-- [ ] **So khớp chuỗi**
- - [ ] Rabin-Karp (videos):
- - [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
+- **SOLID**
+ - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [Open/Closed Principle](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
+ - [ ] L - [Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ Principle](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
+ - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | Clients should not be forced to implement interfaces they don't use
+ - [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
+ - [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
+ - [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+
+
+- **Union-Find**
+ - [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
+ - [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
+ - [Trees](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
+ - [Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
+ - [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
+ - [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
+
+- **Đi sâu hơn vào quy hoạch động** (videos)
+ - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=r4-cftqTcdI&ab_channel=MITOpenCourseWare)
+ - [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=KLBCUx1is2c&ab_channel=MITOpenCourseWare)
+ - [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=TDo3r5M1LNo&ab_channel=MITOpenCourseWare)
+ - [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=i9OAOk0CUQE&ab_channel=MITOpenCourseWare)
+ - [6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
+ - [6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+
+- **Xử lý đồ thị nâng cao** (videos)
+ - [Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
+ - [Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+
+- MIT **Xác suất** (nặng toán học, và hãy đi chậm chậm, sẽ tốt cho các vấn đề toán học khác) (videos):
+ - [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
+ - [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+
+- [Simonson: Approximation Algorithms (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+
+- **So khớp chuỗi**
+ - Rabin-Karp (videos):
+ - [Rabin Karps Algorithm](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw)
- [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
- [Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
- [Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
- - [ ] Knuth-Morris-Pratt (KMP):
+ - Knuth-Morris-Pratt (KMP):
- [TThe Knuth-Morris-Pratt (KMP) String Matching Algorithm](https://www.youtube.com/watch?v=5i7oKodCRJo)
- - [ ] Boyer–Moore string search algorithm
+ - Boyer–Moore string search algorithm
- [Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
- [Advanced String Searching Boyer-Moore-Horspool Algorithms (video)](https://www.youtube.com/watch?v=QDZpzctPf10)
- - [ ] [Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
+ - [Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
- Khởi đầu khá tốt. Nhưng theo thời gian, khóa học đi qua thuật toán KMP, và trở nên phức tạp hơn mức cần thiết.
- Trình bày về trie rất hay.
- Có thể bỏ qua.
-- [ ] **Sắp xếp**
+- **Sắp xếp**
- - [ ] Bài giảng của Stanford về sắp xếp:
- - [ ] [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- - [ ] [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- - [ ] Shai Simonson, [Aduni.org](http://www.aduni.org/):
- - [ ] [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- - [ ] [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- - [ ] Steven Skiena lectures on sorting:
- - [ ] [lecture begins at 26:46 (video)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [ ] [lecture begins at 27:40 (video)](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [lecture begins at 35:00 (video)](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [lecture begins at 23:50 (video)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+ - Bài giảng của Stanford về sắp xếp:
+ - [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - Shai Simonson:
+ - [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - Steven Skiena lectures on sorting:
+ - [CSE373 2020 - Mergesort/Quicksort (video)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - Linear Sorting (video)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
-## Các chuỗi Video
+- NAND To Tetris: [Build a Modern Computer from First Principles](https://www.coursera.org/learn/build-a-computer)
-Hãy ngồi xuống và thưởng thức. "Luyện kỹ năng với Netflix" :P
-
-- [ ] [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
-
-- [ ] [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
-
-- [ ] [MIT 18.06 Linear Algebra, Spring 2005 (35 videos)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+## Các chuỗi Video
-- [ ] [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+Hãy ngồi xuống và thưởng thức.
-- [ ] [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](https://www.youtube.com/playlist?list=PL-XXv-cvA_iD8wQm8U0gG_Z1uHjImKXFy)
+- [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
-- [ ] [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+- [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
-- [ ] [Discrete Mathematics Part 1 by Sarada Herke (5 videos)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
+- [MIT 18.06 Linear Algebra, Spring 2005 (35 videos)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
-- [ ] CSE373 - Analysis of Algorithms (25 videos)
- - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+- [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
-- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://www.youtube.com/watch?v=mFPmKGIrQs4&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+- [Skiena lectures from Algorithm Design Manual - CSE373 2020 - Analysis of Algorithms (26 videos)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
-- [ ] [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C)
+- [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
-- [ ] [UC Berkeley 61C: Machine Structures (26 videos)](https://www.youtube.com/watch?v=gJJeUFyuvvg&list=PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+- [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
-- [ ] [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+- [UC Berkeley 61C: Machine Structures (26 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
-- [ ] [UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)
+- [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
-- [ ] [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+- [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
-- [ ] [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+- [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
-- [ ] [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+- [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
-- [ ] [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+- [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
-- [ ] [MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+- [MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
-- [ ] [MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+- [MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
-- [ ] [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+- [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-- [ ] [MIT 6.050J: Information and Entropy, Spring 2008 (19 videos)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7)
+- [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
-- [ ] [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+- [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
-- [ ] [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+- [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
-- [ ] [Harvard COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+- [Harvard COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
-- [ ] [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+- [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
-- [ ] [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+- [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
-- [ ] [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
+- [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
- [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/)
-- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+- [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
-- [ ] [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+- [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
## Các khóa học khoa học máy tính
- [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)
+## Algorithms implementation
-- ### Các bài nghiên cứu
+- [Multiple Algorithms implementation by Princeton University](https://algs4.cs.princeton.edu/code)
+
+
+- ## Các bài nghiên cứu
- Có nhiều bài nghiên cứu của Google và các bài nghiên cứu rất nổi tiếng.
- Đọc hết các bài nghiên cứu tốn rất nhiều thời gian, tôi khuyên bạn nên chọn lọc theo đề tài cụ thể.
- - [ ] [1978: Process giao tiếp tuần tự (1978: Communicating Sequential Processes)](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [Triển khai với Go (implemented in Go)](https://godoc.org/github.com/thomas11/csp)
- - [Yêu thích các nghiên cứu cũ (Love classic papers)?](https://www.cs.cmu.edu/~crary/819-f09/)
- - [ ] [2003: Hệ thống tập tin của Google (2003: The Google File System)](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - thay thế bởi Colossus năm 2012
- - [ ] [2004: MapReduce: Đơn giản hóa xử lý dữ liệu trên phân vùng lớn (Simplified Data Processing on Large Clusters)]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - gần như bị thay thế bởi Cloud Dataflow?
- - [ ] [2007: Những gì mà lập trình viên nên biết về bộ nhớ (rất dài, ngay cả tác giả cũng khuyến khích bỏ qua vài phần) (What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections))](https://www.akkadia.org/drepper/cpumemory.pdf)
- - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
- - Bài nghiên cứu không tồn tại
- - [ ] 2012: AddressSanitizer: Kiểm tra nhanh tính đúng đắn của địa chỉ (A Fast Address Sanity Checker):
+
+- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Process giao tiếp tuần tự (1978: Communicating Sequential Processes)](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Triển khai với Go (implemented in Go)](https://godoc.org/github.com/thomas11/csp)
+- [2003: Hệ thống tập tin của Google (2003: The Google File System)](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - thay thế bởi Colossus năm 2012
+- [2004: MapReduce: Đơn giản hóa xử lý dữ liệu trên phân vùng lớn (Simplified Data Processing on Large Clusters)]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - gần như bị thay thế bởi Cloud Dataflow?
+- [2006: Bigtable: Một Hệ thống Lưu trữ Phân tán cho Dữ liệu Cấu trúc](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: Dịch vụ Khóa Chubby cho Hệ thống Phân tán Kết nối Lỏng lẻo](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dynamo: Key-value store Có khả năng Sẵn sàng cao của Amazon](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Bài báo Dynamo đã khởi đầu cho cuộc cách mạng NoSQL
+- [2007: Những gì mà lập trình viên nên biết về bộ nhớ (rất dài, ngay cả tác giả cũng khuyến khích bỏ qua vài phần) (What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections))](https://www.akkadia.org/drepper/cpumemory.pdf)
+ - 2012: AddressSanitizer: Kiểm tra nhanh tính đúng đắn của địa chỉ (A Fast Address Sanity Checker):
- [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- - [ ] 2013: Spanner: Google’s Globally-Distributed Database:
+ - 2013: Spanner: Google’s Globally-Distributed Database:
- [Bài nghiên cứu](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- [video](https://www.usenix.org/node/170855)
- - [ ] [2014: Máy học: Lợi ích và những vấn đề cần tránh (Machine Learning: The High-Interest Credit Card of Technical Debt)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en/pubs/archive/43790.pdf)
- - [ ] [2015: Sẵn sàng cho thay đổi lớn: Xây dựng hạ tầng dữ liệu của Google dành cho quảng cáo (High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads)](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
- - [ ] [2015: Tensorflow: Áp dụng máy học với dữ liệu lớn trên hệ thống phân tán tính toán song song (Large-Scale Machine Learning on Heterogeneous Distributed Systems)](http://download.tensorflow.org/paper/whitepaper2015.pdf )
- - [ ] [2015: Lập trình viên tìm code như thế nào: Một trường hợp điển hình (How Developers Search for Code: A Case Study)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
- - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
-
-
-
-## Papers
-
-- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
-- [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [implemented in Go](https://godoc.org/github.com/thomas11/csp)
-- [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - replaced by Colossus in 2012
-- [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - mostly replaced by Cloud Dataflow?
-- [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
-- [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
-- [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- - The Dynamo paper kicked off the NoSQL revolution
-- [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- 2012: AddressSanitizer: A Fast Address Sanity Checker:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
-- 2013: Spanner: Google’s Globally-Distributed Database:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [video](https://www.usenix.org/node/170855)
-- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
-- [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- [2014: Máy học: Lợi ích và những vấn đề cần tránh (Machine Learning: The High-Interest Credit Card of Technical Debt)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
+- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en/pubs/archive/43790.pdf)
+- [2015: Sẵn sàng cho thay đổi lớn: Xây dựng hạ tầng dữ liệu của Google dành cho quảng cáo (High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads)](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Tensorflow: Áp dụng máy học với dữ liệu lớn trên hệ thống phân tán tính toán song song (Large-Scale Machine Learning on Heterogeneous Distributed Systems)](http://download.tensorflow.org/paper/whitepaper2015.pdf )
+- [2015: Lập trình viên tìm code như thế nào: Một trường hợp điển hình (How Developers Search for Code: A Case Study)](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
- More papers: [1,000 papers](https://github.com/0voice/computer_expert_paper)
From e39e7cf6ef3eac08c8a5b838762944fad5be33f2 Mon Sep 17 00:00:00 2001
From: Murat Can Sarkalkan
Date: Mon, 4 Dec 2023 23:43:25 +0300
Subject: [PATCH 111/173] Update README-tr.md
Translated few of the parts - more to come
---
translations/README-tr.md | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/translations/README-tr.md b/translations/README-tr.md
index cb240fc9a7..81f9c9f803 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -1390,20 +1390,20 @@ Have a story, not just data, about something you accomplished.
- [General Interview Questions and their Answers](https://ayedot.com/119/MiniBlog/General-Interview-Questions-and-their-Answers-for-Tech-Jobs)
-## Have questions for the interviewer
-
- Some of mine (I already may know answer to but want their opinion or team perspective):
-
-- How large is your team?
-- What does your dev cycle look like? Do you do waterfall/sprints/agile?
-- Are rushes to deadlines common? Or is there flexibility?
-- How are decisions made in your team?
-- How many meetings do you have per week?
-- Do you feel your work environment helps you concentrate?
-- What are you working on?
-- What do you like about it?
-- What is the work life like?
-- How is work/life balance?
+## Mülakatı yapan kişiye muhakkak sorularınız olsun
+
+ Benim bazı sorularım (cevabını bilsem de onların görüşünü veya takımın bakış açısını isteyebilirim):
+
+- Takımınız kaç kişi?
+- Geliştirici döngüsü nasıl? Waterfall/sprints/agile olarak mı çalışıyorsunuz?
+- Teslim tarihlerine yetişmeye çalışma yaygın mıdır? Yoksa esneklik mevcut mu?
+- Takımınızda kararlar nasıl verilir?
+- Haftada kaç toplantınız oluyor?
+- İş ortamınız odaklanmanıza yardımcı oluyor mu?
+- Neyin üzerinde çalışıyorsunuz?
+- İşinizle ilgili neyi seviyorsunuz?
+- İş hayatı nasıldır?
+- İş yaşam dengesi nasıldır?
## Once You've Got The Job
From d3f558188591d60a54327e57ce993860dad2221b Mon Sep 17 00:00:00 2001
From: kamegoro
Date: Sat, 16 Dec 2023 20:40:28 +0900
Subject: [PATCH 112/173] Complete migration of Japnanese translation update
---
translations/README-ja.md | 1223 ++++++++++++++++++++-----------------
1 file changed, 653 insertions(+), 570 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 386d907d75..ef2b0fad13 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1114,669 +1114,752 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ビデオ](https://www.youtube.com/@MichaelSambol)
- [コード例](https://github.com/msambol/dsa)
- [ ] [セッジウィック ビデオ - アルゴリズム I](https://www.coursera.org/learn/algorithms-part1)
-- [ ] [セッジウィック ビデオ - アルゴリズム II](https://www.coursera.org/learn/algorithms-part2) )
+- [ ] [セッジウィック ビデオ - アルゴリズム II](https://www.coursera.org/learn/algorithms-part2)
---
-## コーディングの質問練習
-
-上のすべてのコンピュータサイエンスのトピックを知ったので、コーディングの問題に答える練習をしましょう。
-
-**コーディング質問の練習は、プログラミング問題への回答を記憶することではありません。**
-
-プログラミングの問題を練習する必要がある理由
-- 問題の認識、そして適切なデータ構造とアルゴリズムの適合
-- 問題のための要件を集める
-- 面接であなたのように問題をあなたの方法で話している
-- コンピュータではなく、ホワイトボードや紙でのコーディング
-- ソリューションの時間と空間の複雑さが増す
-- ソリューションのテスト
-
-面接では、体系的でコミュニケーション的な問題解決の素晴らしいイントロがあります。あなたはプログラミングの面接の本からもこれを手に入れるでしょうが、私はこの優れた発見しました:
-[アルゴリズム設計キャンバス](http://www.hiredintech.com/algorithm-design/)
-
-自宅にホワイトボードはありませんか?それは理にかなっている。私は変わった人で、大きなホワイトボードを持っています。ホワイトボードの代わりに、
-アートストアから大きなドローイングパッドを拾い上げます。あなたはソファに座って練習することができます。これが私の「ソファホワイトボード」です。
-私はスケールの写真にペンを追加しました。ペンを使うと、あなたは消すことができます。すぐに厄介になる。
-
-
-
-補足:
-
-- [Topcodersの数学](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
-- [動的プログラミング - 初心者から上級者まで](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
-- [MIT面接資料](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
-
-**プログラミングの問題を読んでやる(この順番で):**
-
-- [ ] [プログラミング面接公開:あなたが次の仕事に着任する秘訣、第2版](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - C、C ++、Javaの回答
-- [ ] [コーディング面接をクラッキング、第6版](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Javaでの回答
-
-[上記のブックリスト](#ブックリスト)を参照してください
-
-## コード演習/挑戦
-
-あなたの脳を学んだら、脳を働かせてください。
-できるだけ多く、毎日コーディングの課題に取り組んでください。
-
-- [ ] [解決策を見つける方法](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
-- [ ] [Topcoderの問題を解読する方法](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-コーディング面接質問ビデオ:
-- [IDeserve(88ビデオ)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy(5プレイリスト)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
-
-チャレンジサイト:
-- [LeetCode](https://leetcode.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [プロジェクトオイラー(Math-focused)](https://projecteuler.net/index.php?section=problems)
-- [コードワード](http://www.codewars.com)
-- [HackerEarth](https://www.hackerearth.com/)
-- [HackerRank](https://www.hackerrank.com/)
-- [Codility](https://codility.com/programmers/)
-- [InterviewCake](https://www.interviewcake.com/)
-- [Geeks for Geeks](http://www.geeksforgeeks.org/)
-- [InterviewBit](https://www.interviewbit.com)
-- [Sphere(Sphere)](http://www.spoj.com/)
-
-チャレンジレポ:
-- [Pythonでインタラクティブなコーディング面接の課題](https://github.com/donnemartin/interactive-coding-challenges)
-
-疑似面接:
-- [Gainlo.co:大企業の疑似面接官](http://www.gainlo.co/#!/)
-- [Pramp:仲間との面接](https://www.pramp.com/)
-- [Refdash:疑似面接](https://refdash.com/)
-
-## 面接に近づいたら
-
-- [ ] クラッキングコーディング面接セット2(動画):
- - [コード面接をクラッキングする](https://www.youtube.com/watch?v=4NIb9l3imAo)
- - [コード面接をクラックする - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
-
-## あなたの履歴書
-
-- クラッキングでの準備項目の再開を参照してください。コーディング面接とプログラミング面接の公開
-
-
-## 面接が来たときに考えてください
-
-あなたが得る20の面接の質問と、以下の項目の行を考えてみましょう。
-それぞれ2-3の答えがあります。
-あなたが達成したことについての物語だけでなく、データを持ってください。
+## 履歴書を更新する
+
+- 書籍の履歴書準備情報を参照してください: 『コーディング面接の攻略』 「番組インタビュー暴露」
+- [「良い履歴書はこうあるべきだ」 Gayle McDowell (『Cracking thecoding Interview』の著者) 著](https://www.careercup.com/resume)、
+ - 著者による注: 「これは米国に焦点を当てた履歴書用です。インドと他の国の履歴書では、多くの点は同じですが、期待される内容は異なります。」
+- [「ステップバイステップの履歴書ガイド」 by Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
+ - 履歴書を最初から設定し、効果的な履歴書の内容を作成し、最適化し、履歴書をテストする方法に関する詳細なガイド
+
+## 面接プロセスと面接一般的な面接の準備
+
+- [ ] [2021 年のエンジニアリング面接に合格する方法](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [テクノロジー採用の謎を解く](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] ビッグ 4 に就職する方法:
+ - [ ] [ビッグ 4 で仕事を得る方法 - Amazon、Facebook、Google、およびMicrosoft (ビデオ)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [Big 4.1 で仕事を得る方法 (フォローアップ ビデオ)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] コーディング インタビュー セット 1 を解読:
+ - [ ] [ゲイル L マクダウェル - コーディング インタビューのクラッキング (ビデオ)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [著者ゲイル・ラークマン・マクダウェル氏のコーディングインタビューを解読 (ビデオ)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Facebook コーディングのインタビューを解読:
+ - [ ] [アプローチ](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [問題のチュートリアル](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- 準備コース:
+ - [データ構造、アルゴリズム、インタビューのための Python (有料コース)](https://www.udemy.com/python-for-data-structions-algorithms-and-interviews/):
+ - データ構造、アルゴリズム、模擬面接などをカバーする Python 中心の面接準備コース。
+ - [Python を使用したデータ構造とアルゴリズムの紹介 (Udacity 無料コース)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - Python 中心のデータ構造とアルゴリズムの無料コース。
+ - [【データ構造とアルゴリズムをナノレベルで解説! (Udacity 有料 Nanodegree)](https://www.udacity.com/course/data-structions-and-algorithms-nanodegree--nd256):
+ - 100 を超えるデータ構造とアルゴリズムの演習と、面接や実務シナリオの準備に役立つ専任のメンターからのガイダンスによる実践的な練習を行います。
+ - [行動面接のグロッキング (無料教育コース)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - 多くの場合、夢の仕事に就くのを妨げているのは技術的能力ではなく、行動面接での成績です。
+ - [AlgoMonster (無料コンテンツ付きの有料コース)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - LeetCode の短期集中コース。数千の質問から凝縮されたすべてのパターンを網羅。
+
+模擬面接:
+- [Gainlo.co: 大企業の面接官を模擬](http://www.gainlo.co/#!/) - これを使用したところ、電話での画面やオンサイトの面接に向けてリラックスするのに役立ちました
+- [Pramp: ピアとの模擬面接](https://www.pramp.com/) - 面接を練習するためのピアツーピア モデル
+- [interviewing.io: 上級エンジニアとの模擬面接の練習](https://interviewing.io) - FAANG の上級エンジニアとのアルゴリズム/システム設計匿名インタビュー
+- [Meetapro: FAANG トップ面接官との模擬面接](https://meetapro.com/?utm_source=ciu) - Airbnb スタイルの模擬面接/コーチング プラットフォーム。
+- [Hello Interview: Expert Coaches and AI との模擬面接](https://www.hellointerview.com/?utm_source=ciu) - AI または FAANG スタッフのエンジニアやマネージャーと直接面接します。
+
+## 面接が来るときのことを考えてください
+
+面接で聞かれる約 20 の質問と、以下の項目の内容を考えてください。それぞれに対して少なくとも 1 つの回答を用意してください。
+達成したことについて、単なるデータではなくストーリーを作成します。
- なぜあなたはこの仕事をしたいです?
-- あなたが解決した厳しい問題は何ですか?
-- 最大の課題に直面した?
-- ベスト/最悪のデザインが見られる?
-- 既存の製品を改善するためのアイデア。
-- 個人として、そしてチームの一員として、どのようにベストを尽くしていますか?
-- あなたのスキルや経験のうち、その役割の資産とその理由は?
-- [job x / project y]で一番楽しかったことは何ですか?
-- [job x / project y]に直面した最大の課題は何ですか?
-- [job x / project y]で直面した最も難しいバグは何でしたか?
-- [job x / project y]で何を学びましたか?
-- あなたは[job x / project y]で何を良くしていますか?
+- あなたが解決した難しい問題は何ですか?
+- 直面した最大の課題は何ですか?
+- 見た中で最高/最悪のデザインは何ですか?
+- 既存の製品を改善するためのアイデア
+- 個人としても、チームの一員としても、どのようにすれば最も効果的に働くことができますか?
+- あなたのスキルや経験のうち、その役割において資産となるものはどれですか、またその理由は何ですか?
+- [ジョブ x / プロジェクト y] で一番楽しかったことは何ですか?
+- [ジョブ x / プロジェクト y] で直面した最大の課題は何ですか?
+- [ジョブ x / プロジェクト y] で直面した最も困難なバグは何ですか?
+- [ジョブ x / プロジェクト y] で何を学びましたか?
+- [ジョブ x / プロジェクト y] でもっと良くできたことは何ですか?
## 面接官に質問があります
- 私の中には(私は既に知っているかもしれませんが、彼らの意見やチームの視点が必要です):
-
-あなたのチームはどれくらいの規模ですか?
-- あなたの開発サイクルはどのように見えるのですか?あなたはウォーターフォール/スプリント/アジャイルをしますか?
-- 締め切りまでのフローは共通ですか?それとも柔軟性はありますか?
-- あなたのチームではどのように意思決定が行われますか?
-- 週に何回会議がありますか?
-- あなたの仕事環境が集中するのに役立つと思いますか?
-- 何をしているの?
-- それについて何が好きですか?
-- 仕事の生活はどうですか?
+私の意見の一部 (答えはすでに知っているかもしれませんが、彼らの意見やチームの視点が欲しいです):
+
+- チームの規模はどれくらいですか?
+- 開発サイクルはどのような感じですか?ウォーターフォール/スプリント/アジャイルをやっていますか?
+- 締め切りに追われるのはよくあることですか?それとも柔軟性があるのでしょうか?
+- チーム内での意思決定はどのように行われますか?
+- 週に何回会議がありますか?
+- 職場環境は集中力を高めますか?
+-何に取り組んでいますか?
+- 何が気に入っていますか?
+- 仕事生活はどのような感じですか?
- ワークライフバランスはどうですか?
-## 一度あなたは仕事を得た
+## 仕事に就いたら
-おめでとう!
+おめでとう!
-学び続けてください。
+学び続けます。
-あなたは決して本当に終わらない。
+本当に終わったことはありません。
---
- *************************************************** *************************************************** *
- *************************************************** *************************************************** *
+ ************************************************* ************************************************* *
+ ************************************************* ************************************************* *
- この点以下のものはすべてオプションです。
- これらを勉強することで、より多くのCSコンセプトにさらされることになります。
- 任意のソフトウェアエンジニアリングジョブ。あなたはもっと豊富なソフトウェアエンジニアになるでしょう。
+ これより下はすべてオプションです。初心者レベルの面接には必要ありません。
+ ただし、これらを学習することで、より多くの CS 概念に詳しくなり、より適切な準備が整います。
+ ソフトウェアエンジニアリングの仕事なら何でも。あなたは、より総合的なソフトウェア エンジニアになるでしょう。
- *************************************************** *************************************************** *
- *************************************************** *************************************************** *
+ ************************************************* ************************************************* *
+ ************************************************* ************************************************* *
---
-
-## その他の書籍
-
-- [ ] [Unixプログラミング環境](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=情報)
- - 古き良き時代
-- [ ] [Linuxコマンドライン:完全な紹介](https://www.amazon.com/dp/1593273894/)
- - 現代的な選択肢
-- [ ] [TCP / IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
-- [ ] [ヘッドファーストデザインパターン](https://www.amazon.com/gp/product/0596007124/)
- - デザインパターンへの穏やかな紹介
-- [ ] [デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- - 別名「Gang Of Four」の本、またはGOF
- - 正式なデザインパターンの本
-- [ ] [UNIXおよびLinuxシステム管理ハンドブック、第4版](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/)
-
-## その他の学習
-
-これらの話題は面接では出てこないかもしれませんが、
-特定のテクノロジとアルゴリズムを認識するためには、より大きなツールボックスが必要になります。
-
-- [ ] [アルゴリズム設計マニュアル](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202)(Skiena)
-- [ ] [日本語版:アルゴリズム設計マニュアル](https://www.amazon.co.jp/dp/4621085107)
- - レビューと問題認識として
- - アルゴリズムのカタログ部分は、面接で得られる難易度の範囲をはるかに超えています。
- - この本は2パートに分かれます:
- - データ構造とアルゴリズムに関する教科書
- - 長所:
- - アルゴリズムの教科書はどんなものでも良いレビューです
- - 業界および学界の問題を解決した経験から得た素敵な話
- - Cのコード例
- - 短所:
- - Introduction to Algorithms(CLRS)と同様に密集しているか、侵入不可能な場合があります。場合によっては、CLRSが一部の科目にとってより良い選択肢になる可能性があります
- - 7章、8章、9章では、いくつかの項目がうまく説明されていないか、私が持っているよりも多くの脳を必要とするため、追跡しようとすると痛いことがあります
- - 誤解しないで:私はSkiena、彼の教え方、そしてマナーを好きですが、Stony Brookの教材ではないかもしれません。
- - アルゴリズムカタログ:
- - これがあなたがこの本を買う本当の理由です。
- - この部分に近づきます。一度私がそれを通り抜けたら、ここで更新されます。
- - Kindleで読むことが出来ます
- - Half.comは教科書のための良いリソースです。
- - 回答:
- - [ソリューション](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [ソリューション](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
+## 追加の書籍
+
+ これらは、興味のあるトピックに飛び込むことができるようにここにあります。
+
+- [Unix プログラミング環境](https://www.amazon.com/dp/013937681X)
+ - 懐かしいけどおいしい
+- [Linux コマンドライン: 完全な紹介](https://www.amazon.com/dp/1593273894/)
+ - 現代的なオプション
+- [TCP/IP 図解シリーズ](https://en.wikipedia.org/wiki/TCP/IP_図解)
+- [ヘッドファーストデザインパターン](https://www.amazon.com/gp/product/0596007124/)
+ - デザインパターンへの優しい入門書
+- [デザインパターン: 再利用可能なオブジェクト指向ソフトウェアの要素](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - 別名「ギャング・オブ・フォー」本またはGOF
+ - 正規のデザインパターンブック
+- [アルゴリズム設計マニュアル](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - 振り返りと問題認識として
+ - アルゴリズム カタログの部分は、面接で得られる難易度の範囲をはるかに超えています。
+ - この本は 2 つの部分から構成されています。
+ - データ構造とアルゴリズムに関する授業用教科書
+ - 長所:
+ - アルゴリズムの教科書と同様に、良いレビューです
+ - 産業界や学界の問題を解決した彼の経験からの素敵な話
+ - C でのコード例
+ - 短所:
+ - CLRS と同じくらい高密度または透過不可能である可能性があり、場合によっては、一部の被験者にとっては CLRS の方が優れた代替手段になる可能性があります。
+ - 第 7 章、第 8 章、および第 9 章は、いくつかの項目が十分に説明されていなかったり、私よりも多くの頭を必要としたりするため、理解しようとすると苦痛になる可能性があります。
+ - 誤解しないでください。私はスキエナと彼の教え方、マナーが好きですが、ストーニー ブルックの材料ではないかもしれません。
+ - アルゴリズムカタログ:
+ - これがこの本を購入する本当の理由です。
+ - この本はアルゴリズムのリファレンスとして優れており、最初から最後まで読むものではありません。
+ - Kindleでレンタルできる
+ - 答え:
+ - [ソリューション](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- [正誤表](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-
-- [ ] [アルゴリズムイントロダクション](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
-- [ ] [日本語版:アルゴリズムイントロダクション](https://www.amazon.co.jp/dp/B078WPYHGN/)
- - **重要:** この本を読む価値は限られています。この本はアルゴリズムとデータ構造の素晴らしいレビューですが、良いコードを書く方法を教えてくれません。まともなソリューションを効率的にコーディングすることができなければなりません。
- - Half.comは、良い価格で教科書のための素晴らしいリソースです。
- - スタインはゲームに遅れていたので、別名CLR、ときにはCLRSと呼ばれている
-
-- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
- - プログラミング上の問題(データテープを使っているものもあります)への巧妙な解決策を示していますが、これは単なるイントロです。
- これはプログラムの設計とアーキテクチャに関するガイドブックです。
- これはプログラムの設計とアーキテクチャに関するガイドブックです。Code Completeとよく似ていますが、はるかに短いものです。
-
-- ~~シェンの "アルゴリズムとプログラミング:問題と解決策"~~
- - 良い本ですが、いくつかのページで問題を解決した後、私はPascalに悩まされ、whileループ、1つのインデックス付き配列、不確実な事後条件の満足度結果を得ました。
- - むしろ別の本やオンラインのコーディングの問題からコーディングの問題に時間を費やすだろう
-
+- [アルゴリズム](http://jeffe.cs.illinois.edu/teaching/algorithms/) (ジェフ エリクソン)
+- [素晴らしいコードを書く: 第 1 巻: マシンを理解する](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - この本は 2004 年に出版されており、やや古いですが、コンピュータを簡単に理解するのに最適なリソースです。
+ - 著者は [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly) を発明したものであるため、HLA での言及と例については、話半分に聞いてください。広く使用されていませんが、アセンブリがどのようなものかを示す適切な例
+ - これらの章は、優れた基礎を築くために読む価値があります。
+ - 第 2 章 - 数値表現
+ - 第 3 章 - 2 進数演算とビット演算
+ - 第 4 章 - 浮動小数点表現
+ - 第 5 章 - キャラクター表現
+ - 第 6 章 - メモリの構成とアクセス
+ - 第 7 章 - 複合データ型とメモリ オブジェクト
+ - 第 9 章 - CPU アーキテクチャ
+ - 第 10 章 - 命令セットのアーキテクチャ
+ - 第 11 章 - メモリのアーキテクチャと構成
+- [アルゴリズム入門](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - **重要:** この本を読む価値は限られています。この本はアルゴリズムとデータ構造についての優れたレビューですが、優れたコードの書き方については教えてくれません。適切なソリューションを効率的にコーディングできなければなりません
+ - スタインがゲームに遅刻したため、別名 CLR、場合によっては CLRS
+- [コンピュータ アーキテクチャ、第 6 版: 定量的アプローチ](https://www.amazon.com/dp/0128119055)
+ - より充実した、より最新の (2017) が、より長い治療期間を必要とする場合
+
+## システム設計、スケーラビリティ、データ処理
+
+**4 年以上の経験がある場合は、システム設計に関する質問が予想されます。**
+
+- スケーラビリティとシステム設計は、多くのトピックとリソースを含む非常に大きなトピックです。
+ 拡張可能なソフトウェア/ハードウェア システムを設計する際には、考慮すべきことがたくさんあります。
+ これにはかなりの時間を費やすことが予想されます
+- 考慮事項:
+ - スケーラビリティ
+ - 大きなデータセットを単一の値に抽出します
+ - あるデータセットを別のデータセットに変換する
+ - 異常に大量のデータを扱うこと
+ - システムデザイン
+ - 機能セット
+ - インターフェース
+ - クラス階層
+ - 特定の制約の下でシステムを設計する
+ - シンプルさと堅牢性
+ - トレードオフ
+ - パフォーマンスの分析と最適化
+- [ ] **ここから始めてください**: [システム設計入門](https://github.com/donnemartin/system-design-primer)
+- [ ] [HiredInTech のシステム設計](http://www.hiredintech.com/system-design/)
+- [ ] [技術面接で設計に関する質問に答える準備はどのようにすればよいですか?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [システム設計面接に合格するための 8 つのステップ ガイド](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
+- [ ] [データベースの正規化 - 1NF、2NF、3NF、および 4NF (ビデオ)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [システム設計インタビュー](https://github.com/checkcheckzz/system-design-interview) - これには多くのリソースがあります。記事と例を確認してください。その一部を以下に載せておきます
+- [ ] [システム設計面接に合格する方法](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [誰もが知っておくべき数字](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-Should-know/)
+- [ ] [コンテキストスイッチを行うのにどのくらい時間がかかりますか?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [データセンター間のトランザクション (ビデオ)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [CAP 定理のわかりやすい英語の紹介](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: 分散システム、2020 年春 (ビデオ 20 本)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] コンセンサスアルゴリズム:
+ - [ ] Paxos - [Paxos 契約 - コンピューター愛好家 (ビデオ)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] Raft - [Raft 分散型コンセンサス アルゴリズムの概要 (ビデオ)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [読みやすい論文](https://raft.github.io/)
+ - [ ] [インフォグラフィック](http://thesecretlivesofdata.com/raft/)
+- [ ] [一貫したハッシュ](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL パターン](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] スケーラビリティ:
+ - これらすべてが必要なわけではありません。興味のあるものをいくつか選んでください。
+ - [ ] [素晴らしい概要 (ビデオ)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] 短編シリーズ:
+ - [クローン](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [データベース](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [キャッシュ](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [非同期](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [スケーラブルな Web アーキテクチャと分散システム](http://www.aosabook.org/en/distsys.html)
+ - [ ] [分散コンピューティングの誤った説明](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [Jeff Dean - Google でのソフトウェア システムの構築と得られた教訓 (ビデオ)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [大規模なシステムの設計入門](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [App Engine と Cloud Datastore を使用してモバイル ゲームを世界中の視聴者に拡張する (ビデオ)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [Google が地球規模のインフラ向けに惑星規模のエンジニアリングを行う方法 (ビデオ)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [アルゴリズムの重要性](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
+ - [ ] [シャーディング](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [長期戦に向けたエンジニアリング - アストリッド アトキンソン基調講演 (ビデオ)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [30 分でわかる YouTube のスケーラビリティに関する 7 年間のレッスン](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [ビデオ](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [PayPal がわずか 8VM を使用して毎日数十億のトランザクションに拡張した方法](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [大規模なデータセット内の重複を削除する方法](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [Jon Cowie による Etsy の規模とエンジニアリング文化の内部を見る (ビデオ)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [Amazon を独自のマイクロサービス アーキテクチャに導いたもの](http://thenewstack.io/led-amazon-microservices-architecture/)
+ - [ ] [圧縮するかしないか、それは Uber の質問でした](https://eng.uber.com/trip-data-squeeze/)
+ - [ ] [近似クエリ処理はどのような場合に使用する必要がありますか?](http://highscalability.com/blog/2016/2/25/when-Should-estimate-query-processing-be-used.html)
+ - [ ] [単一データセンターからフェイルオーバー、ネイティブ マルチホーム アーキテクチャへの Google の移行]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [1 日に何百万ものリクエストに対応する画像最適化テクノロジー](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [Patreon アーキテクチャの短編](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [Tinder: 最大規模のレコメンデーション エンジンの 1 つは、次に会う人をどのように決定しますか?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-最大の推奨エンジンのde.html)
+ - [ ] [最新のキャッシュの設計](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [Facebook 規模のライブ ビデオ ストリーミング](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [Amazon の AWS で 1,100 万人以上のユーザーに拡張するための初心者ガイド](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-amazons.htmlで1,100万ユーザーに拡大)
+ - [ ] [Netflix スタック全体の 360 度ビュー](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html )
+ - [ ] [レイテンシはどこにでも存在し、売上にコストがかかります - それを解消する方法](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [Instagram を動かすもの: 数百のインスタンス、数十のテクノロジー](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hunreds-of-instances)
+ - [ ] [Salesforce アーキテクチャ - 1 日あたり 13 億トランザクションを処理する方法](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html )
+ - [ ] [ESPN の大規模なアーキテクチャ - 毎秒 100,000 Duh Nuh Nuhs で動作](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] 「メッセージング、シリアル化、およびキュー システム」を参照してください。サービスを結合できるいくつかのテクノロジーについては、以下を参照してください。
+ - [ ] ツイッター:
+ - [O'MySQL CE 2011: Jeremy Cole、「@Twitter におけるビッグ データとスモール データ」」 (ビデオ)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [大規模なタイムライン](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - さらに詳しくは、「大規模なデータセットのマイニング」を参照してください。 [ビデオ シリーズ](#video-series) セクションのビデオ シリーズ
+- [ ] システム設計プロセスの練習: ここでは、紙の上で取り組んでみるいくつかのアイデアを示します。それぞれのアイデアには、現実世界でどのように処理されたかについてのドキュメントが含まれています。
+ - レビュー: [システム設計入門](https://github.com/donnemartin/system-design-primer)
+ - [HiredInTech のシステム設計](http://www.hiredintech.com/system-design/)
+ - [チートシート](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - 流れ:
+ 1. 問題と範囲を理解します。
+ - 面接官の助けを借りてユースケースを定義する
+ - 追加機能を提案する
+ - 面接官が範囲外と判断した項目は削除します。
+ - 高可用性が必要であると想定し、ユースケースとして追加します
+ 2. 制約について考えます。
+ - 月あたりのリクエスト数を尋ねる
+ - 1 秒あたりのリクエスト数を尋ねます (ボランティアで依頼したり、計算させたりすることもあります)
+ - 読み取りと書き込みの割合を見積もる
+ - 見積もりの際は 80/20 ルールを念頭に置いてください
+ - 1秒あたりに書き込まれるデータ量
+ - 5 年間に必要な合計ストレージ
+ - 1秒あたりに読み取られるデータ量
+ 3. 抽象的なデザイン:
+ - レイヤー (サービス、データ、キャッシュ)
+ - インフラストラクチャ: 負荷分散、メッセージング
+ - サービスを推進する主要なアルゴリズムの大まかな概要
+ - ボトルネックを検討し、解決策を決定します
+ - 演習:
+ - [ランダムな固有 ID 生成システムを設計する](https://blog.twitter.com/2010/payment-snowflake)
+ - [キーと値のデータベースを設計する](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [写真共有システムを設計する](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [推奨システムの設計](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [URL 短縮システムの設計: 上記からコピー](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [キャッシュ システムの設計](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
+
+## 追加の学習
+
+ これらは、あなたが総合的なソフトウェア エンジニアになるのに役立ち、次の点に注意するために追加しました。
+ テクノロジーとアルゴリズムを活用できるため、より大きなツールボックスが手に入ります。
- ### コンパイラ
- - [ ] [1分でコンパイラがどのように動作するか(動画)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- - [ ] [Harvard CS50 - コンパイラ(動画)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- - [ ] [C ++(video)](https://www.youtube.com/watch?v=twodd1KFfGk)
- - [ ] [コンパイラの最適化について(C ++)(動画)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
-
-- ### Emacsとvi(m)
- - UNIXベースのコードエディタに慣れましょう
- - vi(m):
- - [vim 01での編集 - インストール、設定、およびモード(動画)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- - [VIM Adventures](http://vim-adventures.com/)
- - 4ビデオのセット:
- - [vi / vimエディタ - レッスン1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
- - [vi / vimエディタ - レッスン2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
- - [vi / vimエディター - レッスン3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
- - [vi / vimエディタ - レッスン4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
- - [Emacsの代わりにViを使う](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
- - emacs:
- - [基本Emacsチュートリアル(動画)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
- - 3つのセット(動画):
- - [Emacsチュートリアル(初心者向け) - 第1部 - ファイルコマンド、カット/コピー/ペースト、カーソルコマンド](https://www.youtube.com/watch?v=ujODL7MD04Q)
- - [Emacsチュートリアル(初心者向け) - パート2 - バッファ管理、検索、M-grep、rgrepモード](https://www.youtube.com/watch?v=XWpsRupJ4II)
- - [Emacsチュートリアル(初心者) - 第3章式、ステートメント、〜/ .emacsファイルとパッケージ](https://www.youtube.com/watch?v=paSgzPso-yc)
- - [邪悪なモード:または、私がEmacsを気絶させ、愛する方法(動画)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- - [EmacsでCプログラムを書く](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- - [(多分)組織モードの詳細:構造の管理(動画)](https://www.youtube.com/watch?v=nsGYet02bEk)
-
-- ### Unixコマンドラインツール
- - 私は良いツールから下のリストに記入しました。
- - [ ] bash
- - [ ] cat
- - [ ] grep
- - [ ] sed
- - [ ] awk
- - [ ] カールまたはwget
- - [ ] ソート
- - [ ] tr
- - [ ] uniq
- - [ ] [strace](https://en.wikipedia.org/wiki/Strace)
- - [ ] [tcpdump](https://danielmiessler.com/study/tcpdump/)
-
-- ### 情報理論(動画)
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
- - [ ] Markovプロセスの詳細:
- - [ ] [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- - [ ] [Markov Text Generationを実装するコア](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- - [ ] [プロジェクト=マルコフテキスト生成ウォークスルー](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walkthroughs)
- - 下記のMIT 6.050J Information and Entropyシリーズを参照してください。
-
-- ### パリティ&ハミングコード(動画)
- - [ ] [イントロ](https://www.youtube.com/watch?v=q-3BctoUpHE)
- - [ ] [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
- - [ ] ハミングコード:
+ - [約 1 分でわかるコンパイラーの仕組み (ビデオ)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [ハーバード CS50 - コンパイラー (ビデオ)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [C++ (ビデオ)](https://www.youtube.com/watch?v=twodd1KFfGk)
+ - [コンパイラの最適化を理解する (C++) (ビデオ)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+
+- ### Emacs と vi(m)
+ - UNIX ベースのコード エディターに慣れる
+ - ヴィ(男):
+ - [Vim による編集 01 - インストール、セットアップ、およびモード (ビデオ)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [VIM アドベンチャー](http://vim-adventures.com/)
+ - 4 つのビデオのセット:
+ - [vi/vim エディター - レッスン 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
+ - [vi/vim エディタ - レッスン 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
+ - [vi/vim エディター - レッスン 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
+ - [vi/vim エディター - レッスン 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
+ - [Emacs の代わりに Vi を使用する](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
+ - emacs:
+ - [基礎 Emacs チュートリアル (ビデオ)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - 3 個セット (ビデオ):
+ - [Emacs チュートリアル (初心者向け) -その 1- ファイルコマンド、カット/コピー/ペースト、カーソルコマンド](https://www.youtube.com/watch?v=ujODL7MD04Q)
+ - [Emacs チュートリアル (初心者向け) -パート 2- バッファ管理、検索、M-x grep および rgrep モード](https://www.youtube.com/watch?v=XWpsRupJ4II)
+ - [Emacs チュートリアル (初心者向け) -パート 3- 式、ステートメント、~/.emacs ファイル、およびパッケージ](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [悪のモード: あるいは、心配をやめて Emacs を愛する方法を学んだ方法 (ビデオ)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
+ - [Emacs を使用した C プログラムの作成](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+ - [Emacs の完全初心者ガイド (David Wilson によるビデオ)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [Emacs の完全初心者ガイド (David Wilson によるメモ)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
+
+- ### Unix コマンドライン ツール
+ - 優れたツールから以下のリストを記入しました。
+ - バッシュ
+ - 猫
+ - grep
+ - セド
+ - ああ
+ - カールまたはウィジェット
+ - 選別
+ - tr
+ - ユニーク
+ - [strace](https://en.wikipedia.org/wiki/Strace)
+ - [tcpdump](https://danielmiessler.com/study/tcpdump/)
+
+- ### 情報理論 (ビデオ)
+ - [カーンアカデミー](https://www.khanacademy.org/computing/computer-science/informationtheory)
+ - マルコフ過程の詳細:
+ - [コアマルコフテキスト生成](https://www.coursera.org/learn/data-structions-optimizing-performance/lecture/waxgx/core-markov-text-generation)
+ - [マルコフ テキスト生成のコア実装](https://www.coursera.org/learn/data-structors-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
+ - [プロジェクト = マルコフ テキスト生成ウォークスルー](https://www.coursera.org/learn/data-structions-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
+ - 詳細については、以下の MIT 6.050J 情報とエントロピー シリーズを参照してください。
+
+- ### パリティとハミングコード (ビデオ)
+ - [紹介](https://www.youtube.com/watch?v=q-3BctoUpHE)
+ - [パリティ](https://www.youtube.com/watch?v=DdMcAUlxh1M)
+ - ハミングコード:
- [エラー検出](https://www.youtube.com/watch?v=1A_NcXxdoCc)
- - [エラー修正](https://www.youtube.com/watch?v=JAMLuxdHH8o)
- - [ ] [エラーチェック](https://www.youtube.com/watch?v=wbH2VxzmoZk)
+ - [誤り訂正](https://www.youtube.com/watch?v=JAMLuxdHH8o)
+ - [エラーチェック](https://www.youtube.com/watch?v=wbH2VxzmoZk)
- ### エントロピー
- - 下記の動画もご覧ください
- - 最初に情報理論ビデオを見てください
- - [情報理論、Claude Shannon、エントロピー、冗長性、データ圧縮およびビット(動画)](https://youtu.be/JnJq3Py0dyM?t=176)
+ - 以下のビデオもご覧ください
+ - 最初に情報理論のビデオを必ず視聴してください
+ - [情報理論、クロード シャノン、エントロピー、冗長性、データ圧縮とデータ圧縮ビッツ(ビデオ)](https://youtu.be/JnJq3Py0dyM?t=176)
- ### 暗号化
- - 下記の動画もご覧ください
- - 最初に情報理論ビデオを見てください
- - [ ] [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
- - [ ] [暗号化:ハッシュ関数](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
- - [ ] [暗号化:暗号化](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - 以下のビデオもご覧ください
+ - 最初に情報理論のビデオを必ず視聴してください
+ - [カーン アカデミー シリーズ](https://www.khanacademy.org/computing/computer-science/cryptography)
+ - [暗号化: ハッシュ関数](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
+ - [暗号化: 暗号化](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- ### 圧縮
- - 最初に情報理論ビデオを見てください
- - [ ] Computerphile(動画):
- - [ ] [圧縮](https://www.youtube.com/watch?v=Lto-ajuqW3w)
- - [ ] [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
- - [ ] [上向きの木(ハフマン木)](https://www.youtube.com/watch?v=umTbivyJoiI)
- - [ ] [エキストラビット/ TRITS - ハフマン木](https://www.youtube.com/watch?v=DV8efuB3h2g)
- - [ ] [テキストのエレガントな圧縮(LZ 77方式)](https://www.youtube.com/watch?v=goOa3DGezUA)
- - [ ] [テキスト圧縮が確率を満たす](https://www.youtube.com/watch?v=cCDCfoHTsaU)
- - [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
- - [ ] [(オプション)Google Developers Live:GZIPでは不十分です!](https://www.youtube.com/watch?v=whGwm0Lky2s)
+ - 最初に情報理論のビデオを必ず視聴してください
+ - コンピューターマニア (ビデオ):
+ - [圧縮](https://www.youtube.com/watch?v=Lto-ajuqW3w)
+ - [圧縮におけるエントロピー](https://www.youtube.com/watch?v=M5c_RFKVkko)
+ - [逆さまの木 (ハフマンの木)](https://www.youtube.com/watch?v=umTbivyJoiI)
+ - [おまけ/トリッツ - ハフマン ツリー](https://www.youtube.com/watch?v=DV8efuB3h2g)
+ - [テキストのエレガントな圧縮 (LZ 77 メソッド)](https://www.youtube.com/watch?v=goOa3DGezUA)
+ - [テキスト圧縮と確率の両立](https://www.youtube.com/watch?v=cCDCfoHTsaU)
+ - [コンプレッサーヘッドビデオ](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
+ - [(オプション) Google Developers Live: GZIP だけでは十分ではありません!](https://www.youtube.com/watch?v=whGwm0Lky2s)
- ### コンピュータセキュリティ
- - [MIT(23ビデオ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [はじめに、脅威モデル](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [ハイジャック攻撃の制御](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
- - [ ] [バッファオーバーフローの悪用と防御](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
- - [ ] [特権の分離](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [機能](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [サンドボックス化ネイティブコード](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
- - [ ] [ウェブセキュリティモデル](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [Webアプリケーションの保護](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [シンボリック実行](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [ネットワークセキュリティ](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [ネットワークプロトコル](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [ ] [サイドチャネル攻撃](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
-
-- ### ガベージコレクション
- - [ ] [ガベージコレクション(Java);データの拡張(動画)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
- - [ ] [コンパイラ(動画)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
- - [ ] [GC in Python(video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
- - [ ] [ディープダイブJava:ガーベッジコレクションは良いです!](https://www.infoq.com/presentations/garbage-collection-benefits)
- - [ ] [Deep Dive Python:CPythonでのガベージコレクション(動画)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
-
-- ### パラレルプログラミング
- - [ ] [Coursera(Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
- - [ ] [高性能並列計算のための効率的なPython(動画)](https://www.youtube.com/watch?v=uY85GkaYzBk)
-
-- ### メッセージング、シリアライゼーション、およびキューイングシステム
- - [ ] [Thrift](https://thrift.apache.org/)
- - [チュートリアル](http://thrift-tutorial.readthedocs.io/ja/latest/intro.html)
- - [ ] [プロトコルバッファ](https://developers.google.com/protocol-buffers/)
+ - [MIT (23 ビデオ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [概要、脅威モデル](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [コントロールハイジャック攻撃](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
+ - [バッファ オーバーフローの悪用と防御](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
+ - [権限の分離](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [機能](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [サンドボックス ネイティブ コード](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
+ - [Web セキュリティ モデル](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [Web アプリケーションの保護](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [シンボリック実行](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [ネットワーク セキュリティ](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [ネットワーク プロトコル](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [サイドチャネル攻撃](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- ### ガベージ コレクション
+ - [Python での GC (ビデオ)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
+ - [Java の詳細: ガベージ コレクションは優れています!](https://www.infoq.com/presentations/garbage-collection-benefits)
+ - [Python の詳細: CPython のガベージ コレクション (ビデオ)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+
+- ### 並列プログラミング
+ - [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
+ - [高性能並列コンピューティングのための効率的な Python (ビデオ)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+
+- ### メッセージング、シリアル化、およびキューイング システム
+ - [スリフト](https://thrift.apache.org/)
+ - [チュートリアル](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [プロトコル バッファ](https://developers.google.com/protocol-buffers/)
- [チュートリアル](https://developers.google.com/protocol-buffers/docs/tutorials)
- - [ ] [gRPC](http://www.grpc.io/)
- - [gRPC 101 for Java Developers(video)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
- - [ ] [Redis](http://redis.io/)
+ - [gRPC](http://www.grpc.io/)
+ - [Java 開発者のための gRPC 101 (ビデオ)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
- [チュートリアル](http://try.redis.io/)
- - [ ] [Amazon SQS(キュー)](https://aws.amazon.com/sqs/)
- - [ ] [Amazon SNS(pub-sub)](https://aws.amazon.com/sns/)
- - [ ] [RabbitMQ](https://www.rabbitmq.com/)
- - [はじめに](https://www.rabbitmq.com/getstarted.html)
- - [ ] [Celery](http://www.celeryproject.org/)
- - [セロリの最初のステップ](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
- - [ ] [ZeroMQ](http://zeromq.org/)
- - [イントロ - マニュアルを読む](http://zeromq.org/intro:read-the-manual)
- - [ ] [ActiveMQ](http://activemq.apache.org/)
- - [ ] [Kafka](http://kafka.apache.org/documentation.html#introduction)
- - [ ] [MessagePack](http://msgpack.org/index.html)
- - [ ] [Avro](https://avro.apache.org/)
-
-- ### A *
- - [ ] [検索アルゴリズム](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [ ] [A * Pathfinding Tutorial(video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- - [ ] [A *経路探索(E01:アルゴリズムの説明)(動画)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+ - [Amazon SQS (キュー)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [はじめる](https://www.rabbitmq.com/getstarted.html)
+ - [セロリ](http://www.celeryproject.org/)
+ - [Celery を使用した最初のステップ](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [はじめに - マニュアルを読む](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [メッセージパック](http://msgpack.org/index.html)
+ - [アブロ](https://avro.apache.org/)
+
+- ### A*
+ - [検索アルゴリズム](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Pathfinding (E01: アルゴリズムの説明) (ビデオ)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
- ### 高速フーリエ変換
- - [ ] [フーリエ変換のインタラクティブガイド](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- - [ ] [フーリエ変換とは何ですか?それは何のために使われますか?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [ ] [フーリエ変換とは何ですか? (動画)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [ ] [Divide&Conquer:FFT(動画)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- - [ ] [FFTの理解](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+ - [フーリエ変換の対話型ガイド](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [フーリエ変換とは何ですか?それは何に使われますか?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [フーリエ変換とは何ですか? (ビデオ)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [分割&分割 制覇: FFT (ビデオ)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [FFT を理解する](http://jakevdp.github.io/blog/2013/08/28/Understanding-the-fft/)
- ### ブルームフィルター
- - mビットとkハッシュ関数を持つBloomフィルタが与えられた場合、挿入とメンバーシップの両方のテストはO(k)
- - [Bloom Filters](https://www.youtube.com/watch?v=-SuTGoFYjZs)
- - [ブルームフィルター|大規模なデータセットのマイニング|スタンフォード大学](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - m ビットと k 個のハッシュ関数を持つブルーム フィルターを指定すると、挿入テストとメンバーシップ テストの両方が O(k) になります。
+ - [ブルームフィルター (ビデオ)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [ブルームフィルター |大規模なデータセットのマイニング |スタンフォード大学 (ビデオ)](https://www.youtube.com/watch?v=qBTdukbzc78)
- [チュートリアル](http://billmill.org/bloomfilter-tutorial/)
- - [Bloom Filter Appを書く方法](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+ - [ブルーム フィルター アプリの書き方](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
-- ### HyperLogLog
- - [わずか1.5KBのメモリを使用して10億の異なるオブジェクトを数える方法](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
+- ### ハイパーログログ
+ - [わずか 1.5KB のメモリを使用して 10 億個の異なるオブジェクトを数える方法](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
-- ### 局所性に敏感なハッシング
- - ドキュメントの類似性を判断するために使用されます。
- - 2つの文書/文字列がまったく同じかどうかを判断するために使用されるMD5またはSHAの反対。
- - [Simhashing(うまくいけば)シンプルに](http://ferd.ca/simhashing-hopefully-made-simple.html)
+- ### 局所性を考慮したハッシュ
+ - 文書の類似性を判断するために使用されます
+ - 2 つのドキュメント/文字列がまったく同じかどうかを判断するために使用される MD5 または SHA の逆です。
+ - [Simhashing (できれば) シンプルに](http://ferd.ca/simhashing-hopefull-made-simple.html)
-- ### ヴァンEmde Boasの木
- - [Divide&Conquer:van Emde Boas Trees(動画)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
- - [ ] [MIT講義ノート](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
+- ### ファン・エムデ・ボアスの木
+ - [分割&分割 征服: ファン エムデ ボアスの木 (ビデオ)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [MIT 講義ノート](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
- ### 拡張データ構造
- - [ ] [CS 61B講義39:データ構造の拡張](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950)
-
-- ### バランスの取れた検索木
- - 少なくとも1つのタイプの平衡二分木を知っている(そしてそれがどのように実装されているか知っている):
- - "バランスの取れた探索木の中で、AVLと2/3の樹木が通過し、赤黒の木がより人気があるようです。
- 特に興味深い自己組織化データ構造は、スプレイ木であり、回転を使用します
- アクセスされたキーをルートに移動する」 - Skiena
- これらのうち、私はスプレイ木を実装することを選択しました。私が読んだことから、あなたは
- あなたの面接でバランスの取れた検索木。しかし、私は1つのコーディングへの露出を望んでいた
- そしてそれに直面しましょう、スプレーの木はミツバチの膝です。私は赤黒の木のコードをたくさん読んだ。
- - スプレイ木:挿入、検索、削除機能
- あなたが赤/黒の木の実装を終わらせるならば、これらを試してみてください:
- - 検索と挿入機能、削除をスキップする
- B-Treeについては、非常に大規模なデータセットで非常に広く使用されているため、詳細を知りたい。
- - [ ] [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
-
- - [ ] **AVL木**
- - 実際には:
- 私が言うことから、これらは実際にはあまり使われていませんが、どこになるか分かります。
- AVL木は、O(log n)検索、挿入、および削除をサポートする別の構造です。より厳格に
- 赤黒の木よりもバランスがとれているため、挿入と取り出しが遅くなりますが、検索が速くなります。これにより
- 一度構築され、再構成なしでロードされる、例えば言語
- 辞書(または、アセンブラまたはインタプリタのオペコードなどのプログラム辞書)を含む。
- - [ ] [MIT AVL Trees / AVL Sort(動画)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- - [ ] [AVL木(動画)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- - [ ] [AVL木実装(動画)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- - [ ] [スプリットアンドマージ](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
- - [ ] [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
-
- - [ ] **スプレッド木**
- - 実際には:
- スプレイ・木は、キャッシュ、メモリ・アロケータ、ルータ、ガベージ・コレクタ、
- データ圧縮、ロープ(長いテキスト文字列に使用される文字列の置換)、Windows NT(仮想メモリ、
- ネットワークおよびファイルシステムコードなど)
- - [ ] [CS 61B:Splay Trees(video)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
- - [ ] MIT講義:Splay Trees:
- - 非常にマッシーになりますが、最後の10分を確かめてください。
- - [動画](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
-
- - [ ] **レッド/ブラックの木**
- - これらは2-3木の翻訳です(下記参照)
- - 実際には:
- 赤黒の木は、挿入時間、削除時間、および検索時間に対して最悪の場合の保証を提供します。
- これは、リアルタイムアプリケーションなどの時間に敏感なアプリケーションでは、これらを貴重なものにするだけでなく、
- それは最悪の場合の保証を提供する他のデータ構造における貴重なビルディングブロックになります。
- 例えば、計算幾何学で使用される多くのデータ構造は赤黒の木に基づくことができ、
- 現在のLinuxカーネルで使用されている完全に公正なスケジューラは赤黒の木を使用します。 Javaのバージョン8では、
- Collection HashMapが変更され、LinkedListを使用して同一の要素を貧弱に保存する代わりに
- ハッシュコードでは、赤黒の木が使用されます。
- - [Aduni - アルゴリズム - 講義4(リンク先のジャンプ先)(動画)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- - [Aduni - アルゴリズム - 講義5(動画)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- - [ ] [黒い木](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- - [ ] [バイナリサーチとレッドブラック木の紹介](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/)
- - [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
-
-- [ ] **2-3の検索木**
- - 実際には:
- 2〜3本の木は、検索が遅くなるため(AVL木よりも高さが高いため)、挿入が速くなります。
- - 2-3の木は非常にまれにしか使用しませんが、実装にはさまざまなタイプのノードが含まれるためです。代わりに、人々はレッドブラックの木を使用します。
- - [ ] [23木の直感と定義(動画)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- - [ ] [23-Treeのバイナリビュー](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [2-3木(学生の暗唱)(動画)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-
- - [ ] **2-3-4木(別名2-4木)**
- - 実際には:
- すべての2-4木には、同じ順序でデータ要素を持つ対応する赤黒の木があります。挿入と削除
- 2-4木の操作は、赤黒の木の色の反転と回転にも相当します。これは2-4の木を
- 赤黒の木の背後にある論理を理解するための重要なツールです。そのため、多くの導入アルゴリズムのテキストでは、
- 2〜4本の木は実用的ではありません**。
- - [ ] [CS 61B講義26:バランスの取れた検索木(動画)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C)
- - [ ] [ボトムアップ234-Trees(動画)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [トップダウン234木(動画)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
-
- - [ ] **N-ary(K-ary、M-ary)木**
- - 注記:NまたはKは分岐因子(最大分岐)であり、
- - 2分木は2分木であり、分岐因子= 2
- - 2-3本の木は3本である
- - [ ] [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
-
- - [ ] **B-Tree**
- - 楽しい事実:それは謎ですが、Bはボーイング、バランスの取れた、またはバイエル(共同発明家)のために立つことができます。
- - 実際には:
- B木はデータベースで広く使用されています。最近のファイルシステムのほとんどは、B-tree(またはVariants)を使用しています。に加えて
- B木はファイルシステムでも使用され、任意のデータベースへの迅速なランダムアクセスを可能にします
- 特定のファイル内のブロック基本的な問題は、ファイルブロックのiアドレスをディスクブロックに変換することです
- (またはおそらくシリンダーヘッドセクターへの)アドレスである。
- - [ ] [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- - [ ] [B木(動画)の紹介](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
- - [ ] [B木の定義と挿入(動画)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [B木削除(動画)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [MIT 6.851 - メモリ階層モデル(動画)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- - キャッシュに気付かないB木、非常に興味深いデータ構造
- - 最初の37分は非常に技術的であり、スキップすることができます(Bはブロックサイズ、キャッシュラインサイズです)
- - [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
-
-
-- ### k-D木
- - 矩形または高次元のオブジェクトの点数を見つけるのに最適
- - k最近接の隣人に適している
- - [ ] [Kd Trees(動画)](https://www.youtube.com/watch?v=W94M9D_yXKk)
- - [ ] [kNN K-d木アルゴリズム(動画)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+ - [CS 61B 講義 39: データ構造の拡張](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
+
+- ### バランスのとれた検索ツリー
+ - 少なくとも 1 つのタイプのバランスのとれたバイナリ ツリーを知っています (そして、それがどのように実装されているかを知っています):
+ - 「バランスの取れた検索ツリーの中で、AVL と 2/3 ツリーは時代遅れになり、赤黒ツリーの方が人気があるようです。」
+ 特に興味深い自己組織化データ構造は、回転を使用するスプレイ ツリーです。
+ アクセスされたキーをルートに移動します。」 - スキエナ
+ - このうち、私はスプレイツリーを実装することにしました。私が読んだ限りでは、
+ インタビューでのバランスの取れた検索ツリー。しかし、コーディングをもう一段階体験したかったのです
+ はっきり言って、枝分かれした木はミツバチの膝です。赤黒ツリーのコードをたくさん読みました
+ - スプレイツリー: 挿入、検索、削除機能
+ 赤/黒のツリーを実装することになった場合は、次のことを試してください。
+ - 検索および挿入機能、削除のスキップ
+ - B-Tree は非常に大規模なデータセットで広く使用されているため、B-Tree について詳しく知りたい
+ - [自己平衡二分探索木](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
+
+ - **AVL ツリー**
+ - 実際には:
+ 私の知る限り、これらは実際にはあまり使用されていませんが、どのような場所にあるのかはわかりました。
+ AVL ツリーは、O(log n) の検索、挿入、削除をサポートする別の構造です。より厳格です
+ 赤黒の木よりもバランスが取れているため、挿入と削除は遅くなりますが、取得は速くなります。これでできます
+ 言語など、一度構築すれば再構築せずにロードできるデータ構造にとって魅力的
+ 辞書 (またはアセンブラやインタプリタのオペコードなどのプログラム辞書)
+ - [MIT AVL ツリー / AVL ソート (ビデオ)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ - [AVL ツリー (ビデオ)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [AVL ツリーの実装 (ビデオ)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [分割とマージ](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[レビュー] 19 分でわかる AVL ツリー (プレイリスト) (ビデオ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
+
+ - **スプレーツリー**
+ - 実際には:
+ スプレイ ツリーは通常、キャッシュ、メモリ アロケータ、ルーター、ガベージ コレクター、
+ データ圧縮、ロープ (長いテキスト文字列に使用される文字列の置換)、Windows NT (仮想メモリ内、
+ ネットワークおよびファイル システム コード) など
+ - [CS 61B: スプレイ ツリー (ビデオ)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
+ - MIT 講義: スプレー ツリー:
+ - 非常に数学的になりますが、最後の 10 分を必ず見てください。
+ - [ビデオ](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
+
+ - **赤/黒の木**
+ - これらは 2-3 ツリーの翻訳です (下記を参照)。
+ - 実際には:
+ 赤黒ツリーは、挿入時間、削除時間、および検索時間について最悪の場合の保証を提供します。
+ これにより、リアルタイム アプリケーションなどの時間に敏感なアプリケーションで価値が高まるだけでなく、
+ しかし、それは、最悪の場合の保証を提供する他のデータ構造の貴重な構成要素になります。
+ たとえば、計算幾何学で使用される多くのデータ構造は、赤黒ツリーに基づくことができます。
+ 現在の Linux カーネルで使用されている Completely Fair Scheduler は、赤黒ツリーを使用します。 Java のバージョン 8 では、
+ コレクション ハッシュマップは、LinkedList を使用する代わりに、同じ要素を低品質で保存するように変更されました。
+ ハッシュコード、赤黒ツリーが使用されます
+ - [Aduni - アルゴリズム - レクチャー 4 (リンクは開始点にジャンプします) (ビデオ)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - アルゴリズム - レクチャー 5 (ビデオ)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [赤黒の木](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
+ - [二分探索と Red Black Tree の概要](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[レビュー] 30 分でわかる Red-Black Trees (プレイリスト) (ビデオ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
+
+ - **2-3 検索ツリー**
+ - 実際には:
+ 2 ~ 3 個のツリーでは、検索は遅くなりますが、挿入は高速になります (AVL ツリーと比較して高さが高いため)。
+ - 実装にはさまざまなタイプのノードが含まれるため、2 ~ 3 個のツリーを使用することはほとんどありません。代わりに、人々は赤黒の木を使います。
+ - [23 ツリーの直感と定義 (ビデオ)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [23 ツリーのバイナリ ビュー](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [2-3 Trees (学生朗読) (ビデオ)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+ - **2-3-4 ツリー (別名 2-4 ツリー)**
+ - 実際には:
+ 2 ~ 4 個のツリーごとに、同じ順序でデータ要素を持つ対応する赤と黒のツリーがあります。挿入と削除
+ 2 ~ 4 個のツリーに対する操作は、赤黒ツリーの色の反転と回転にも相当します。これにより、2 ~ 4 本の木が作成されます。
+ これは、赤黒ツリーの背後にあるロジックを理解するための重要なツールであり、これが、多くのアルゴリズム入門書で紹介されている理由です。
+ **実際には 2 ~ 4 本の木はあまり使用されません**が、赤黒の木の直前に 2 ~ 4 本の木。
+ - [CS 61B レクチャー 26: バランスのとれた検索ツリー (ビデオ)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
+ - [Bottom Up 234-Trees (ビデオ)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [トップダウン 234-Trees (ビデオ)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
+
+ - **N 配列 (K 配列、M 配列) ツリー**
+ - 注: N または K は分岐係数 (最大分岐) です。
+ - 二分木は、分岐係数 = 2 の 2 分木です。
+ - 2 ~ 3 本の木は 3 分木です
+ - [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
+
+ - **B ツリー**
+ - 面白い事実: それは謎ですが、B はボーイング、バランスド、またはバイエル (共同発明者) を表す可能性があります。
+ - 実際には:
+ B ツリーはデータベースで広く使用されています。最新のファイルシステムのほとんどは B ツリー (またはバリアント) を使用します。に加えて
+ B ツリーはデータベースで使用されるだけでなく、ファイル システムでも使用され、任意のファイルへの迅速なランダム アクセスを可能にします。
+ 特定のファイル内のブロック。基本的な問題は、ファイル ブロック アドレスをディスク ブロックに変換することです。
+ (またはおそらくシリンダーヘッドセクターへの) アドレス
+ - [B-Tree](https://en.wikipedia.org/wiki/B-tree)
+ - [B ツリー データ構造](http://btechsmartclass.com/data_structs/b-trees.html)
+ - [B-Tree の紹介 (ビデオ)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [B ツリーの定義と挿入 (ビデオ)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [B ツリーの削除 (ビデオ)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [MIT 6.851 - メモリ階層モデル (ビデオ)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+ - キャッシュを意識しない B ツリー、非常に興味深いデータ構造をカバーします
+ - 最初の 37 分は非常に専門的なため、スキップされる可能性があります (B はブロック サイズ、キャッシュ ライン サイズ)
+ - [[レビュー] 26 分でわかる B-Trees (プレイリスト) (ビデオ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
+
+- ### k-D ツリー
+ - 長方形または高次元のオブジェクト内の多数の点を見つけるのに最適です
+ - k 最近傍に適切に適合
+ - [kNN K-d ツリー アルゴリズム (ビデオ)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
- ### リストをスキップする
- - 「これは多少のカルトデータ構造です」 - Skiena
- - [ ] [ランダム化:リストをスキップ(動画)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [アニメーションともう少し詳しく](https://en.wikipedia.org/wiki/Skip_list)
+ - 「これらはややカルト的なデータ構造です。」 - スキエナ
+ - [ランダム化: スキップ リスト (ビデオ)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [アニメーションともう少し詳細については](https://en.wikipedia.org/wiki/Skip_list)
+
+- ### ネットワーク フロー
+ - [5 分でわかるフォード対フルカーソン — ステップバイステップの例 (ビデオ)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
+ - [フォード・フルカーソンアルゴリズム (ビデオ)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [ネットワーク フロー (ビデオ)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
-- ### ネットワークの流れ
- - [ ] [Ford-Fulkerson(動画)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [ ] [Ford-Fulkersonアルゴリズム(動画)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [ ] [ネットワークフロー(動画)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+- ### 素セットとユニオン検索
+ - [UCB 61B - 素セット;並べ替えと整理セレクション (ビデオ)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
+ - [Sedgewick アルゴリズム - Union-Find (6 ビデオ)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
- ### 高速処理のための数学
- - [ ] [整数演算、Karatsuba倍数(動画)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [中国の剰余定理(暗号で使用)(動画)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+ - [整数算術、からつばかけ算(動画)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [中国剰余定理 (暗号化で使用) (ビデオ)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
-- ### Treap
+- ### トレプ
- 二分探索木とヒープの組み合わせ
- - [ ] [Treap](https://en.wikipedia.org/wiki/Treap)
- - [ ] [データ構造:Treaps説明(動画)](https://www.youtube.com/watch?v=6podLUYinH8)
- - [ ] [セット操作のアプリケーション](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
+ - [Treap](https://en.wikipedia.org/wiki/Treap)
+ - [データ構造: Treaps の説明 (ビデオ)](https://www.youtube.com/watch?v=6podLUyingH8)
+ - [集合演算でのアプリケーション](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
-- ### リニアプログラミング(動画)
- - [ ] [線形計画法](https://www.youtube.com/watch?v=M4K6HYLHREQ)
- - [ ] [最小費用の見積もり](https://www.youtube.com/watch?v=2ACJ9EWUC6U)
- - [ ] [最大値の検索](https://www.youtube.com/watch?v=8AA_81xI3ik)
- - [ ] [Pythonで線形方程式を解く - シンプレックスアルゴリズム](https://www.youtube.com/watch?v=44pAWI7v5Zk)
+- ### 線形計画法 (ビデオ)
+ - [線形計画法](https://www.youtube.com/watch?v=M4K6HYLHREQ)
+ - [最低コストを調べる](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
+ - [最大値を見つける](https://www.youtube.com/watch?v=8AA_81xI3ik)
+ - [Python で線形方程式を解く - シンプレックス アルゴリズム](https://www.youtube.com/watch?v=44pAWI7v5Zk)
-- ### 幾何学、凸包(動画)
- - [ ] [Graph Alg。 IV:幾何学アルゴリズムの紹介 - 講義9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
- - [ ] [Geometric Algorithms:Graham&Jarvis - 講義10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [Divide&Conquer:Convex Hull、Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
+- ### ジオメトリ、凸包 (ビデオ)
+ - [グラフアルゴリズムIV: 幾何学的アルゴリズムの概要 - レクチャー 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
+ - [幾何アルゴリズム: Graham &ジャービス - 講義 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [分割&分割 征服: 凸包、中央値の検出](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
- ### 離散数学
- - 下のビデオを見る
-
-- ### 機械学習
- - [ ] なぜMLですか?
- - [ ] [Googleがどのように最初の企業を学習するマシンとして自分自身を作り直すか](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- - [ ] [知的コンピュータシステムのための大規模な深い学習(動画)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
- - [ ] [深い学習と理解度対ソフトウェア工学と検証、Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
- - [ ] [Googleのクラウドマシン学習ツール(動画)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
- - [ ] [Google Developers `Machine Learning Recipes(Scikit Learn&Tensorflow)(動画)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
- - [ ] [Tensorflow(video)](https://www.youtube.com/watch?v=oZikw5k_2FM)
- - [ ] [Tensorflowチュートリアル](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- - [ ] [Pythonでニューラルネットワークを実装する実践ガイド(Theanoを使用)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
- - コース:
- - [グレートスターターコース:機械学習](https://www.coursera.org/learn/machine-learning)
- - [動画のみ](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
- - 線形代数のレビューについてはビデオ12〜18を参照してください(14と15は重複しています)
- - [機械学習のためのニューラルネットワーク](https://www.coursera.org/learn/neural-networks)
- - [GoogleのDeep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730)
- - [Google / Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
- - [自己運転車技術者Nanodegree](https://www.udacity.com/drive)
- - リソース:
- - 書籍:
- - [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
- - [ゼロからのデータ科学:Pythonの第一原理](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
- - [Pythonによる機械学習入門](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
- - [ソフトウェアエンジニア向け機械学習](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- - データスクール:http://www.dataschool.io/
-
--
-
-## 追加科目の詳細
-
- 私は既に上記のいくつかのアイデアを強化するためにこれらを追加しましたが、それらを含めたくありませんでした
- それはちょうどあまりにも多くのためです。それは科目にそれを過ごすのは簡単です。
- あなたは今世紀に雇われたかったですね。
-
-- [ ] **連合検索**
- - [ ] [概要](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
- - [ ] [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
- - [ ] [木](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
- - [ ] [ランキングによる連合](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
- - [ ] [パス圧縮](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
- - [ ] [分析オプション](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
-
-- [ ] **もっとダイナミックなプログラミング**(動画)
- - [ ] [6.006:動的プログラミングI:フィボナッチ、最短経路](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- - [ ] [6.006:ダイナミックプログラミングII:テキストジャスティフィケーション、ブラックジャック](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- - [ ] [6.006:DP III:かっこ、編集距離、ナップザック](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
- - [6.006:DP IV:Guitar Fingering、Tetris、Super Mario Bros.](https://www.youtube.com/watch?v=tp4_UXaVyx8&index=22&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.046:Dynamic Programming&Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [6.046:ダイナミックプログラミング:オールペア最短パス](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- - [ ] [6.046:ダイナミックプログラミング(学生の暗唱)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+ - [コンピューター サイエンス 70,001 - 2015 年春 - 離散数学と確率理論](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [シャイ・サイモンソンによる離散数学 (19 ビデオ)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+ - [IIT Ropar NPTEL による離散数学](https://nptel.ac.in/courses/106/106/106106183/)
+
+---
+
+## 一部の主題に関する追加の詳細
+
+ これらは、上ですでに示したいくつかのアイデアを補強するために追加しましたが、含めたくはありませんでした
+ あまりにも多すぎるため、上記で説明しました。あるテーマについてやりすぎるのは簡単です。
+ 今世紀中に採用されたいですよね?
+
+- **固体**
+ - [ ] [Bob Martin オブジェクト指向とアジャイル設計の SOLID 原則 (ビデオ)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [単一責任の原則](http://www.oodesign.com/single-responsibility-principle.html) | [各オブジェクトに対する単一の責任](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [その他のフレーバー](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [オープン/クローズの原則](http://www.oodesign.com/open-close-principle.html) | [運用レベルでは、オブジェクトは拡張の準備ができていますが、変更の準備はできません](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [その他のフレーバー](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
+ - [ ] L - [リスコフ置換原則](http://www.oodesign.com/liskov-s-substitution-principle.html) | [基本クラスと派生クラスは「IS A」原則に従います](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [その他のフレーバー](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
+ - [ ] I - [インターフェイス分離の原則](http://www.oodesign.com/interface-segregation-principle.html) |クライアントは、使用しないインターフェイスの実装を強制されるべきではありません
+ - [5 分でわかるインターフェース分離の原則 (ビデオ)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [その他のフレーバー](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=ja)
+ - [ ] D -[依存性反転の原則](http://www.oodesign.com/dependency-inversion-principle.html) |オブジェクトの構成における依存関係を軽減します。
+ - [依存関係逆転の原則とその重要性](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [その他のフレーバー](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+
+- **ユニオン検索**
+ - [概要](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
+ - [単純な実装](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
+ - [木](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
+ - [ランク別ユニオン](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
+ - [パス圧縮](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
+ - [分析オプション](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
+
+- **さらに動的プログラミング** (ビデオ)
+ - [6.006: 動的計画法 I: フィボナッチ、最短経路](https://www.youtube.com/watch?v=r4-cftqTcdI&ab_channel=MITOpenCourseWare)
+ - [6.006: 動的プログラミング II: テキストの位置調整、ブラックジャック](https://www.youtube.com/watch?v=KLBCUx1is2c&ab_channel=MITOpenCourseWare)
+ - [6.006: DP III: 括弧、編集距離、ナップザック](https://www.youtube.com/watch?v=TDo3r5M1LNo&ab_channel=MITOpenCourseWare)
+ - [6.006: DP IV: ギターの運指、テトリス、スーパーマリオブラザーズ](https://www.youtube.com/watch?v=i9OAOk0CUQE&ab_channel=MITOpenCourseWare)
+ - [6.046: 動的プログラミングとアドバンスト DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [6.046: 動的プログラミング: 全ペアの最短パス](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
+ - [6.046: 動的プログラミング (学生の暗唱)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+
+- **高度なグラフ処理** (ビデオ)
+ - [同期分散アルゴリズム: 対称性の破壊。最短パス スパニング ツリー](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
+ - [非同期分散アルゴリズム: 最短パス スパニング ツリー](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+
+- MIT **確率** (数学的で、ゆっくり進めてください。これは数学的なことに適しています) (ビデオ):
+ - [MIT 6.042J - 確率の概要](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - 条件付き確率](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - 独立](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - 確率変数](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
+ - [MIT 6.042J - 期待 I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - 期待 II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - 大きな逸脱](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - ランダム ウォーク](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
-- [ ] **高度なグラフ処理**(動画)
- - [ ] [同期分散アルゴリズム:対称性を破る。木にまたがる最短パス](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
- - [ ] [非同期分散アルゴリズム:木にまたがる最短パス](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+- [Simonson: 近似アルゴリズム (ビデオ)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
-- [ ] MIT **確率**(mathy、ゆっくりと進み、数学的なことに良い)(動画):
- - [ ] [MIT 6.042J - 確率の紹介](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - 条件付き確率](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - 独立性](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - ランダム変数](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
- - [ ] [MIT 6.042J - 期待値I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - 大きな偏差](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
- - [ ] [MIT 6.042J - ランダムウォーク](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+- **文字列のマッチング**
+ - ラビン・カープ (ビデオ):
+ - [Rabin Karps アルゴリズム](https://www.coursera.org/lecture/data- Structures/rabin-karps-algorithm-c0Qkw)
+ - [事前計算](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
+ - [最適化: 実装と分析](https://www.coursera.org/learn/data- Structures/lecture/h4ZLc/optimization-implementation-and-analysis)
+ - [テーブル ダブリング、カープラビン](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
+ - [ローリング ハッシュ、償却分析](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
+ - クヌース・モリス・プラット (KMP):
+ - [Knuth-Morris-Pratt (KMP) 文字列マッチング アルゴリズム](https://www.youtube.com/watch?v=5i7oKodCRJo)
+ - Boyer-Moore 文字列検索アルゴリズム
+ - [Boyer-Moore 文字列検索アルゴリズム](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
+ - [Boyer-Moore-Horspool アルゴリズムによる高度な文字列検索 (ビデオ)](https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [Coursera: 文字列上のアルゴリズム](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
+ - 最初は素晴らしいですが、KMP を超えるまでに必要以上に複雑になります
+ - トライの素晴らしい説明
+ - スキップ可能
-- [ ] [Simonson:Approximation Algorithms(video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+- **並べ替え**
-- [ ] **文字列マッチング**
- - [ ] Rabin-Karp(動画):
- - [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
- - [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- - [最適化:実装と分析](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
- - [表倍増、Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
- - [ローリングハッシュ、償却分析](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
- - [ ] クヌース・モリス・プラット(KMP):
- - [Knuth-Morris-Pratt(KMP)文字列マッチングアルゴリズム](https://www.youtube.com/watch?v=5i7oKodCRJo)
- - [ ] Boyer-Moore文字列検索アルゴリズム
- - [Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
- - [高度な文字列検索Boyer-Moore-Horspoolアルゴリズム(動画)](https://www.youtube.com/watch?v=QDZpzctPf10)
- - [ ] [Coursera:文字列のアルゴリズム](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
- - すごく始まりますが、KMPを過ぎるまでには、必要以上に複雑になります
- - 試行の良い説明
- - スキップすることができます
+ - スタンフォード大学の分類に関する講義:
+ - [講義 15 |プログラミングの抽象化 (ビデオ)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [講義 16 |プログラミングの抽象化 (ビデオ)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - シャイ・サイモンソン:
+ - [アルゴリズム - 並べ替え - レクチャー 2 (ビデオ)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [アルゴリズム - 並べ替え II - 講義 3 (ビデオ)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - スティーブン・スキーナが分類について講義します:
+ - [CSE373 2020 - マージソート/クイックソート (ビデオ)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - 線形並べ替え (ビデオ)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
-- [ ] **ソート**
+- NAND からテトリスへ: [第一原理から最新のコンピューターを構築する](https://www.coursera.org/learn/build-a-computer)
- - [ ] スタンフォードのソーティングに関する講義:
- - [ ] [講義15 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- - [ ] [講義16 |プログラミングの抽象化(動画)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- - [ ] Shai Simonson、[Aduni.org](http://www.aduni.org/):
- - [ ] [アルゴリズム - ソート - 講義2(動画)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- - [ ] [アルゴリズム - ソートII - レクチャー3(動画)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- - [ ] Steven Skienaのソーティングに関する講義:
- - [ ] [講義は26:46に始まります(動画)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [ ] [講義は27:40(動画)から開始](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [講演は35:00(動画)から開始](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [講演は23:50から始まります(動画)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+## ビデオ シリーズ
+座って楽しんでください。
-## ビデオシリーズ
+- [動的計画法の問題の個別リスト (それぞれ短い)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
-座って楽しんでください。 「ネットフリックスとスキル」:P
+- [x86 アーキテクチャ、アセンブリ、アプリケーション (11 ビデオ)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
-- [ ] [個々の動的プログラミングの問題のリスト(それぞれ短いです)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+- [MIT 18.06 線形代数、2005 年春 (35 ビデオ)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
-- [ ] [x86アーキテクチャ、アセンブリ、アプリケーション(11ビデオ)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
+- [優れた - MIT 微積分再考: 単一変数微積分](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
-- [ ] [MIT 18.06線形代数、2005年春(35ビデオ)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+- [アルゴリズム設計マニュアルからの Skiena 講義 - CSE373 2020 - アルゴリズムの分析 (26 ビデオ)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
-- [ ] [優秀 - MIT Calculus Revisited:単一変数計算](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+- [UC Berkeley 61B (Spring 2014): データ構造 (25 ビデオ)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
-- [ ] [コンピュータサイエンス70,001 - 春2015 - 離散数学と確率論](https://www.youtube.com/playlist?list=PL-XXv-cvA_iD8wQm8U0gG_Z1uHjImKXFy)
+- [UC Berkeley 61B (2006 年秋): データ構造 (39 ビデオ)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
-- [ ] [Shai Simonsonによる離散数学(19ビデオ)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
+- [UC Berkeley 61C: 機械構造 (26 ビデオ)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
-- [ ] [離散数学第1部:Sarada Herke(5ビデオ)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
+- [OOSE: UML と Java を使用したソフトウェア開発 (21 ビデオ)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
-- [ ] CSE373 - アルゴリズムの分析(25ビデオ)
- - [アルゴリズム設計マニュアルのSkiena講義](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+- [MIT 6.004: 計算構造 (ビデオ 49 件)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
-- [UCバークレー61B(Spring 2014):データ構造(25ビデオ)](https://www.youtube.com/watch?v=mFPmKGIrQs4&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+- [カーネギー メロン - コンピューター アーキテクチャの講義 (ビデオ 39 件)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
-- [UC Berkeley 61B(2006年秋):データ構造(39ビデオ)](https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C)
+- [MIT 6.006: アルゴリズムの紹介 (47 ビデオ)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
-- [UC Berkeley 61C:機械構造物(26ビデオ)](https://www.youtube.com/watch?v=gJJUUFyuvvg&list=PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+- [MIT 6.033: コンピューター システム エンジニアリング (22 ビデオ)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
-- [ ] [OOSE:UMLとJavaを使用したソフトウェア開発(21ビデオ)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+- [MIT 6.034 人工知能、2010 年秋 (30 ビデオ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
-- [ ] [UC Berkeley CS 152:コンピュータアーキテクチャとエンジニアリング(20ビデオ)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)
+- [MIT 6.042J: コンピューター サイエンスのための数学、2010 年秋 (25 ビデオ)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
-- [ ] [MIT 6.004:計算構造(49ビデオ)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+- [MIT 6.046: アルゴリズムの設計と分析 (ビデオ 34 件)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-- [Carnegie Mellon - Computer Architecture Lectures(39ビデオ)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+- [MIT 6.824: 分散システム、2020 年春 (ビデオ 20 本)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
-- [ ] [MIT 6.006:アルゴリズム紹介(47ビデオ)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+- [MIT 6.851: 高度なデータ構造 (22 ビデオ)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
-- [ ] [MIT 6.033:コンピュータシステムエンジニアリング(22ビデオ)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+- [MIT 6.854: 高度なアルゴリズム、2016 年春 (24 動画eos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
-- [ ] [MIT 6.034人工知能、2010年秋(30ビデオ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+- [Harvard COMPSCI 224: 高度なアルゴリズム (25 ビデオ)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
-- [ ] [MIT 6.042J:コンピュータサイエンスの数学、2010年秋(25ビデオ)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+- [MIT 6.858 コンピューター システム セキュリティ、2014 年秋](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
-- [ ] [MIT 6.046:アルゴリズムの設計と分析(34ビデオ)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+- [スタンフォード: プログラミング パラダイム (27 ビデオ)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
-- [ ] [MIT 6.050J:情報とエントロピー、2008年春(19ビデオ)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7)
+- [クリストフ・パールによる暗号入門](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
+ - [スライドと問題セットを含むコース Web サイト](http://www.crypto-textbook.com/)
-- [ ] [MIT 6.851:高度なデータ構造(22ビデオ)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+- [大規模なデータセットのマイニング - スタンフォード大学 (94 ビデオ)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
-- [ ] [MIT 6.854:Advanced Algorithms、Spring 2016(24ビデオ)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+- [Sarada Herke によるグラフ理論 (67 ビデオ)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
-- [ ] [Harvard COMPSCI 224:Advanced Algorithms(25ビデオ)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+## コンピューター サイエンス コース
-- [ ] [MIT 6.858コンピュータシステムセキュリティ、2014年秋](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+- [オンライン CS コースのディレクトリ](https://github.com/open-source-society/computer-science)
+- [CS コースのディレクトリ (オンライン講義を含む多くのコース)](https://github.com/prakhar1989/awesome-courses)
-- [ ] [Stanford:Programming Paradigms(27ビデオ)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+## アルゴリズムの実装
-- [ ] [Christof Paarによる暗号の概要](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
- - [スライドと問題セットと一緒のコースウェブサイト](http://www.crypto-textbook.com/)
+- [プリンストン大学による複数のアルゴリズムの実装](https://algs4.cs.princeton.edu/code)
-- [ ] [Mining Massive Datasets - スタンフォード大学(94ビデオ)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+## 論文
-- [ ] [グラフ理論(Sarada Herke)(67ビデオ)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+- [古典的な論文は好きですか?](https://www.cs.cmu.edu/~cry/819-f09/)
+- [1978: 逐次プロセスの通信](http://spinroot.com/courses/Summer/Papers/hoare_1978.pdf)
+ - [Go で実装](https://godoc.org/github.com/thomas11/csp)
+- [2003: Google ファイル システム](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 年に Colossus に置き換えられました
+- [2004: MapReduce: 大規模クラスターでのデータ処理の簡素化](http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - ほとんどが Cloud Dataflow に置き換えられましたか?
+- [2006: Bigtable: 構造化データの分散ストレージ システム](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: 疎結合分散システム用の Chubby Lock サービス](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dynamo: Amazon の高可用性 Key-Value ストア](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Dynamo の論文が NoSQL 革命のきっかけとなった
+- [2007: What Every Programmer Should Know About Memory (非常に長いため、著者は一部のセクションをスキップすることを推奨しています)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: 高速アドレス健全性チェッカー:
+ - [論文](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [ビデオ](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google の世界的に分散されたデータベース:
+ - [論文](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [ビデオ](https://www.usenix.org/node/170855)
+- [2015: Google の継続的なパイプライン](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: 大規模な高可用性: Google の広告用データ インフラストラクチャの構築](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: 開発者がコードを検索する方法: ケーススタディ](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- その他の論文: [1,000 件の論文](https://github.com/0voice/computer_expert_paper)
-## コンピュータサイエンスコース
+## ライセンス
-- [オンラインCSコースのディレクトリ](https://github.com/open-source-society/computer-science)
-- [CSコースのディレクトリ(多くはオンライン講義あり)](https://github.com/prakhar1989/awesome-courses)
+[CC-BY-SA-4.0](./LICENSE.txt)
\ No newline at end of file
From 2f207e45a415347fcc42229a5a547712ee9ea6a7 Mon Sep 17 00:00:00 2001
From: Tomas Achaval <134091945+achaval-tomas@users.noreply.github.com>
Date: Sat, 30 Dec 2023 20:29:16 -0300
Subject: [PATCH 113/173] Corrected translations, added punctuation and fixed
spelling mistakes.
---
translations/README-es.md | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/translations/README-es.md b/translations/README-es.md
index 15e35fb731..830d1ac239 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -839,7 +839,7 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- Mapa adyacente.
- Familiarícese con cada representación y sus pros y contras.
- BFS and DFS – Conozca su complejidad computacional, sus compromisos y cómo implementarlos en código real.
- - Cuando se le haga una pregunta busqué una solución basada en grafos, si no encuentra continúe.
+ - Cuando se le haga una pregunta busque una solución basada en grafos. Si no la encuentra, continúe.
- [ ] Lecturas de Skiena – Gran introducción):
- [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
@@ -868,7 +868,7 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- Curso Completo de Coursera:
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
-- Implementaré:
+- Implementar:
- [ ] DFS con lista de adyacencia (recursión)
- [ ] DFS con la lista de adyacencia (iterativa con la pila)
- [ ] DFS con matriz de adyacencia (recursión)
@@ -880,8 +880,8 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- Algoritmos basados en DFS (ver videos de Aduni arriba):
- [ ] Comprobar el ciclo (necesario para el tipo topológico, ya que vamos a comprobar el ciclo antes de comenzar)
- [ ] Clasificación topológica.
- - [ ] Cuenta los componentes conectados en un grafo.
- - [ ] Lista de componentes fuertemente conectados.
+ - [ ] Cuenta los componentes conexos en un grafo.
+ - [ ] Lista de componentes fuertemente conexos.
- [ ] Verificación de grafo bipartito.
@@ -1102,11 +1102,11 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
- ### Planificador
- - En un SO, Como funciona
- - Se pueden obtener de los videos del sistema operativo
+ - En un SO, ¿Cómo funciona?
+ - Se pueden obtener de los videos del sistema operativo.
- ### Implementar rutinas del sistema
- - Entienda lo que hay debajo de las API de programación que usa
+ - Entienda lo que hay debajo de las API de programación que usa.
- ¿Puede implementarlas?
- ### Búsqueda de cadenas y manipulaciones
@@ -1146,7 +1146,7 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
- [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
-- ### Extremidad (Endianness)
+- ### Extremidad o "Endianismo" (Endianness)
- [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
- [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0):
@@ -1273,14 +1273,14 @@ Los grafos pueden ser usados para representar muchos problemas en las Ciencias d
- Asumir alta disponibilidad es necesario, añadir como un caso de uso.
2. Piense en las limitaciones:
- Preguntar cuántas solicitudes por mes.
- - Preguntar cuántas solicitudes por segundo (que pueden ser voluntario o hacer que usted haga las matemáticas)
+ - Preguntar cuántas solicitudes por segundo (que pueden ser voluntario o hacer que usted haga las matemáticas).
- Lectura de estimación vs. Escribir porcentajes.
- Tenga en cuenta la regla 80/20 al estimar.
- La cantidad de datos escritos por segundo.
- Almacenamiento total requerido durante 5 años.
- La cantidad de datos leídos por segundo.
3. Diseño abstracto:
- - Capas (servicio, datos, almacenamiento en caché)
+ - Capas (servicio, datos, almacenamiento en caché).
- Infraestructura: balanceo de carga, mensajería.
- Descripción aproximada de cualquier algoritmo clave que impulsa el servicio.
- Considerar los cuellos de botella y determinar las soluciones.
@@ -1308,13 +1308,13 @@ Es bueno si quieres repasar frecuentemente.
---
-## Practica de preguntas de codificación
+## Practica de preguntas de programación
-Ahora que conoce todos los tópicos de las Ciencias de la Computación mencionados anteriormente, es tiempo de practicar respondiendo algunos problemas de codificación.
+Ahora que conoce todos los tópicos de las Ciencias de la Computación mencionados anteriormente, es tiempo de practicar respondiendo algunos problemas de programación.
-**La practica de preguntas de codificación no es sobre memorizar respuestas a problemas de programación.**
+**La práctica de preguntas de programación no es sobre memorizar respuestas a problemas.**
-Porque necesita practicar haciendo problemas de programación:
+Por qué necesita practicar haciendo problemas de programación:
- El reconocimiento de problemas, y donde las estructuras de datos y algoritmos adecuados encajan.
- Reunir los requisitos para el problema.
- Hablar sobre su camino a través del problema como lo hará en la entrevista.
@@ -1324,16 +1324,16 @@ Porque necesita practicar haciendo problemas de programación:
Hay una gran introducción para la solución de problemas metódicos y comunicativos en una entrevista. Conseguirá esto de los libros para la entrevista de programación también, pero encontré esto excepcional:
[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-¿No tiene pizarrón en casa? Hace sentido. Soy un bicho raro y tengo una pizarra grande. En vez de una pizarra blanca, recoja un gran cuadernillo de dibujo de una tienda de arte. Puede sentarse en el sofá y practicar. Esta es mi "pizarra de sofá". He añadido la pluma en la foto para la escala. Si usa un bolígrafo, deseará poder borrarlo. Se ensucia rápido.
+¿No tiene pizarrón en casa? Tiene sentido. Soy un bicho raro y tengo una pizarra grande. En vez de una pizarra blanca, recoja un gran cuadernillo de dibujo de una tienda de arte. Puede sentarse en el sofá y practicar. Esta es mi "pizarra de sofá". He añadido la pluma en la foto para la escala. Si usa un bolígrafo, deseará poder borrarlo. Se ensucia rápido.

-Complementarios:
+Complementos:
- [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
-**Lea y haga problemas de programación (en ese orden):**
+**Lea y resuelva problemas de programación (en ese orden):**
- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html):
- Respuestas en C, C++ y Java
@@ -1342,9 +1342,9 @@ Complementarios:
Vea [Lista de libros](#lista-de-libros)
-## Ejercicios de codificación/Desafíos
+## Ejercicios de programación/Desafíos
Una vez haya aprendido, ponga ese cerebro a trabajar.
-Tome desafíos de codificación todos los días y tantos como pueda.
+Tome desafíos de programación todos los días y tantos como pueda.
- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
From e12a8990a22776f973e1d4bad7a2d57dfb8a7402 Mon Sep 17 00:00:00 2001
From: Shaon Sikder
Date: Mon, 1 Jan 2024 12:36:31 +0600
Subject: [PATCH 114/173] Updated README-bn(typo, formatting, linking issue).md
---
translations/README-bn.md | 310 +++++++++++++++++++-------------------
1 file changed, 155 insertions(+), 155 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 9d4ef81758..d07e04c787 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -521,9 +521,9 @@ https://github.com/jwasham/coding-interview-university
আমার প্রতিটি বিষয়ের জন্য এগুলি করার জন্য সময় নাও থাকতে পারে তবে আমি চেষ্টা করব।
আপনি আমার কোডটি এখানে দেখতে পারেন:
--[সি] (https://github.com/jwasham/pੈਕਟ-c)
--[সি ++] (https://github.com/jwasham/pੈਕਟ-cpp)
--[পাইথন] (https://github.com/jwasham/pੈਕਟ-python)
+- [সি] (https://github.com/jwasham/pੈਕਟ-c)
+- [সি ++] (https://github.com/jwasham/pੈਕਟ-cpp)
+- [পাইথন] (https://github.com/jwasham/pੈਕਟ-python)
আপনার প্রতিটি অ্যালগরিদমের সাহস মুখস্থ করার দরকার নেই।
@@ -534,14 +534,14 @@ https://github.com/jwasham/coding-interview-university
<সংশ্লেষ> পূর্বশর্ত জ্ঞান << সংক্ষিপ্ত>
-- ** সি ** শিখুন
+- **সি** শিখুন
-সি সর্বত্র আছে। আপনি অধ্যয়নরত অবস্থায় আপনি বই, বক্তৃতা, ভিডিও, * সর্বত্র * এর উদাহরণ দেখতে পাবেন।
- [সি প্রোগ্রামিং ল্যাঙ্গুয়েজ, খণ্ড ২] (https://www.amazon.com/Programming-Language-ব্রায়ান-ডব্লিউ-কর্নিগান/dp/0131103628)
-এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষায় দুর্দান্ত হ্যান্ডেল দেবে এবং যদি আপনি এটি কিছুটা অনুশীলন করেন
আপনি দ্রুত দক্ষ হয়ে উঠবেন। সি বোঝা আপনাকে প্রোগ্রাম এবং মেমরি কীভাবে কাজ করে তা বুঝতে সহায়তা করে।
-[প্রশ্নের উত্তর] (https://github.com/lekkas/c-algorithms)
-- ** কম্পিউটার কীভাবে কোনও প্রোগ্রাম প্রক্রিয়া করে: **
+- **কম্পিউটার কীভাবে কোনও প্রোগ্রাম প্রক্রিয়া করে:**
- [সিপিইউ কীভাবে একটি প্রোগ্রাম (ভিডিও) চালায়]] (https://www.youtube.com/watch?v=XM4lGflQFvA)
- [কম্পিউটারগুলি কীভাবে গণনা করে-ALU (ভিডিও)] (https://youtu.be/1I5ZMmrOfnA)
- [নিবন্ধসমূহ এবং র্যাম (ভিডিও)] (https://youtu.be/fpnE6UAfbtU)
@@ -750,12 +750,12 @@ https://github.com/jwasham/coding-interview-university
- [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- ইমপ্লিমেন্টের প্রয়োজন নাই।
--###স্ট্যাক
+- ### স্ট্যাক
- [স্ট্যাকস (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- ] বাস্তবায়ন করবে না। অ্যারের সাথে প্রয়োগ করা তুচ্ছ।
--###কিউ
+- ### কিউ
- [সারি (ভিডিও)] (https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [বিজ্ঞপ্তি বাফার / ফিফো] (https://en.wikedia.org/wiki/Circular_buffer)
- [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
@@ -775,7 +775,7 @@ https://github.com/jwasham/coding-interview-university
-প্রামাণ্য: ও (1) (লিঙ্কযুক্ত তালিকা এবং অ্যারে)
-খালি: O (1) (লিঙ্কযুক্ত তালিকা এবং অ্যারে)
--###হ্যাশ টেবিল
+- ### হ্যাশ টেবিল
- ভিডিওগুলি:
- [চেইনিংয়ের সাথে হ্যাশিং (ভিডিও)] (https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- [সারণী দ্বিগুণ, কার্প-রবিন (ভিডিও)] (https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
@@ -802,12 +802,12 @@ https://github.com/jwasham/coding-interview-university
-##আরও জ্ঞান
+## আরও জ্ঞান
আরও জ্ঞান << সংক্ষিপ্ত>
--###বাইনারি অনুসন্ধান
+- ### বাইনারি অনুসন্ধান
- [বাইনারি অনুসন্ধান (ভিডিও)] (https://www.youtube.com/watch?v=D5SrAga1pno)
- [বাইনারি সন্ধান (ভিডিও)] (https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [বিস্তারিত] (https://www.topcoder.com/commune/competitive-programming/tutorials/binary-search/)
@@ -816,7 +816,7 @@ https://github.com/jwasham/coding-interview-university
-বাইনারি অনুসন্ধান (পূর্ণসংখ্যার সাজানো অ্যারেতে)
-পুনরাবৃত্তি ব্যবহার করে বাইনারি অনুসন্ধান
--###বিটওয়াস অপারেশন
+- ### বিটওয়াস অপারেশন
- [বিটস চিট শিট] (https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bit-cheat-sheet.pdf)-আপনার অনেকগুলি জানা উচিত 2 এর ক্ষমতা (2 ^ 1 থেকে 2 ^ 16 এবং 2 ^ 32)
- এর সাথে বিটগুলি ম্যানিপুলেটেড সম্পর্কে সত্যই উপলব্ধি পান: &, |, ^, ~, >> >> <<
- [শব্দ] (https://en.wikedia.org/wiki/Word_ (কম্পিউটার_আরকিটেকচার))
@@ -829,56 +829,56 @@ https://github.com/jwasham/coding-interview-university
- [বিট টুইডলার] (https://bit.stephan-brumme.com/)
- [বিট টুইডলার ইন্টারেক্টিভ] (https://bit.stephan-brumme.com/interactive.html)
- 2 এস এবং 1 এস পরিপূরক
- -[বাইনারি: প্লাসসেস এবং মিনিনস (কেন আমরা দু'জনের কমপ্লিমেন্ট ব্যবহার করি) (ভিডিও)] (https://www.youtube.com/watch?v=lKTsv6iVxV4)
- -[১ এস পরিপূরক] (https://en.wikedia.org/wiki/Ones%27_complement)
- -[2 এস পরিপূরক] (https://en.wikedia.org/wiki/Two%27s_complement)
+ - [বাইনারি: প্লাসসেস এবং মিনিনস (কেন আমরা দু'জনের কমপ্লিমেন্ট ব্যবহার করি) (ভিডিও)] (https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [১ এস পরিপূরক] (https://en.wikedia.org/wiki/Ones%27_complement)
+ - [2 এস পরিপূরক] (https://en.wikedia.org/wiki/Two%27s_complement)
- সেট বিট গণনা করুন
- -[বাইট (ভিডিও) এ বিট গণনা করার 4 টি উপায়] (https://youtu.be/Hzuzo9NJrlc)
- -[বিট গণনা করুন) (https://ographicics.stanford.edu/~seender/bithacks.html#CountBitsSetKernighan)
- -[32 বিট পূর্ণসংখ্যায় সেট বিটের সংখ্যা কীভাবে গণনা করবেন] (http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-િટ-in-a-32-বিট-পূর্ণসংখ্যা)
+ - [বাইট (ভিডিও) এ বিট গণনা করার 4 টি উপায়] (https://youtu.be/Hzuzo9NJrlc)
+ - [বিট গণনা করুন) (https://ographicics.stanford.edu/~seender/bithacks.html#CountBitsSetKernighan)
+ - [32 বিট পূর্ণসংখ্যায় সেট বিটের সংখ্যা কীভাবে গণনা করবেন] (http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-િટ-in-a-32-বিট-পূর্ণসংখ্যা)
- পরের পাওয়ার 2 এর রাউন্ড:
- -[দু'জনের পরের শক্তিতে রাউন্ড আপ] (https://bit.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
+ - [দু'জনের পরের শক্তিতে রাউন্ড আপ] (https://bit.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
-[ অদলবদল মান:
- -[অদলবদল (https://bit.stephan-brumme.com/swap.html)
+ - [অদলবদল (https://bit.stephan-brumme.com/swap.html)
- নিখুঁত মান:
- -[নিখুঁত পূর্ণসংখ্যার] (https://bit.stephan-brumme.com/absInteger.html)
+ - [নিখুঁত পূর্ণসংখ্যার] (https://bit.stephan-brumme.com/absInteger.html)
-##গাছ
+## ট্রি/গাছ
-গাছ
+ট্রি/গাছ
--###গাছ-নোট ও পটভূমি
+- ### ট্রি-নোট ও পটভূমি
- [সিরিজ: গাছ (ভিডিও)] (https://www.coursera.org/learn/data-structures/ নির্বাচন / 95qda/trees)
- -মৌলিক গাছ নির্মাণ
- -traversal
- -ম্যানিপুলেশন আলগোরিদিম
+ - মৌলিক গাছ নির্মাণ
+ - traversal
+ - ম্যানিপুলেশন আলগোরিদিম
- [বিএফএস (প্রস্থের প্রথম সন্ধান) এবং ডিএফএস (গভীরতা-প্রথম অনুসন্ধান) (ভিডিও)] (https://www.youtube.com/watch?v=uWL6FJhq5fM)
- -বিএফএস নোট:
- -স্তর আদেশ (বিএফএস, সারি ব্যবহার করে)
- -সময়ের জটিলতা: ও (এন)
- -স্থান জটিলতা: সেরা: O (1), সবচেয়ে খারাপ: O (n / 2) = O (n)
- -ডিএফএস নোট:
- -সময়ের জটিলতা: ও (এন)
- -স্থান জটিলতা:
+ - বিএফএস নোট:
+ - স্তর আদেশ (বিএফএস, সারি ব্যবহার করে)
+ - সময়ের জটিলতা: ও (এন)
+ - স্থান জটিলতা: সেরা: O (1), সবচেয়ে খারাপ: O (n / 2) = O (n)
+ - ডিএফএস নোট:
+ - সময়ের জটিলতা: ও (এন)
+ - স্থান জটিলতা:
সেরা: ও (লগ এন)-গড়। গাছের উচ্চতা
সবচেয়ে খারাপ: ও (এন)
- -অর্ডার (ডিএফএস: বাম, স্ব, ডান)
- -পোস্টর্ডার (ডিএফএস: বাম, ডান, স্ব)
- -প্রির্ডার (ডিএফএস: স্ব, বাম, ডান)
+ - অর্ডার (ডিএফএস: বাম, স্ব, ডান)
+ - পোস্টর্ডার (ডিএফএস: বাম, ডান, স্ব)
+ - প্রির্ডার (ডিএফএস: স্ব, বাম, ডান)
- [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
--###বাইনারি অনুসন্ধান গাছ: বিএসটি
+- ### বাইনারি অনুসন্ধান গাছ: বিএসটি
- [বাইনারি অনুসন্ধান বৃক্ষ পর্যালোচনা (ভিডিও)] (https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [সিরিজ (ভিডিও)] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-intr پيداوار-to-binary-search-trees)
-প্রতীক টেবিল দিয়ে শুরু হয় এবং বিএসটি অ্যাপ্লিকেশনগুলির মধ্য দিয়ে যায়
- [পরিচিতি (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/E7cXP/intr پيداوار)
- [এমআইটি (ভিডিও)] (https://www.youtube.com/watch?v=9Jry5-82I68)
- -সি / সি ++:
+ - সি / সি ++:
- [বাইনারি অনুসন্ধান ট্রি-সি / সি ++ (ভিডিও) তে বাস্তবায়ন]] (https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- [বিএসটি বাস্তবায়ন-স্ট্যাক এবং হিপ (ভিডিও) এ মেমরি বরাদ্দ] (https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- [একটি বাইনারি অনুসন্ধান গাছে নূন্যতম এবং সর্বাধিক উপাদান সন্ধান করুন (ভিডিও)] (https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
@@ -902,8 +902,8 @@ https://github.com/jwasham/coding-interview-university
- মুছুন_মূল্য
- get_successor // প্রদত্ত মানের পরে গাছের পরবর্তী-সর্বোচ্চ মান প্রদান করে,-1 না হলে
--###গাদা / অগ্রাধিকার সারি / বাইনারি হিপ
- -গাছ হিসাবে ভিজ্যুয়ালাইজড, তবে সাধারণত সঞ্চয়স্থানে লিনিয়ার থাকে (অ্যারে, লিঙ্কযুক্ত তালিকা)
+- ### গাদা / অগ্রাধিকার সারি / বাইনারি হিপ
+ - গাছ হিসাবে ভিজ্যুয়ালাইজড, তবে সাধারণত সঞ্চয়স্থানে লিনিয়ার থাকে (অ্যারে, লিঙ্কযুক্ত তালিকা)
- [গাদা] (https://en.wikedia.org/wiki/Heap_ (ডেটা_ স্ট্রাস্ট্রাকচার))
- [ভূমিকা (ভিডিও)] (https://www.coursera.org/learn/data-structures/ নির্বাচন / 2 অপ্টস / সিন্ট্রোকশন)
- [নিষ্পাপ বাস্তবায়ন (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-বাস্তবায়ন)
@@ -918,7 +918,7 @@ https://github.com/jwasham/coding-interview-university
- [এমআইটি: হিপস এবং হিপ সাজান (ভিডিও)] (https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [সিএস 61 বি লেকচার 24: অগ্রাধিকার ক্যু (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [লিনিয়ার টাইম বিল্ডহীপ (সর্বাধিক হিপ)] (https://www.youtube.com/watch?v=MiyLo8adrWw)
- - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
+ - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- একটি সর্বোচ্চ গাদা প্রয়োগ করুন:
- sertোকান
- সিফ্ট_আপ-.োকানোর জন্য প্রয়োজনীয়
@@ -934,13 +934,13 @@ https://github.com/jwasham/coding-interview-university
-##শ্রেণীবিভাজন
+## শ্রেণীবিভাজন
বাছাইকরণ
-[ ] নোট:
- -প্রকারভেদ প্রয়োগ করুন এবং সর্বোত্তম কেস / নিকৃষ্টতম কেস, প্রত্যেকের গড় জটিলতা জানেন:
+ - প্রকারভেদ প্রয়োগ করুন এবং সর্বোত্তম কেস / নিকৃষ্টতম কেস, প্রত্যেকের গড় জটিলতা জানেন:
-কোনও বুদ্বুদ বাছাই নয়-এটি ভয়ানক-হে (n ^ 2), যখন এন <= 16 বাদে
- অ্যালগরিদম বাছাইয়ের স্থায়িত্ব ("কুইকসোর্ট স্থিতিশীল?")
-[অ্যালগোরিদম স্থিতিশীলতা বাছাই করা হচ্ছে) (https://en.wikedia.org/wiki/Sorting_algorithm#Stability)
@@ -951,7 +951,7 @@ https://github.com/jwasham/coding-interview-university
-আমি একটি লিঙ্কযুক্ত তালিকা বাছাইয়ের প্রস্তাব দেব না, তবে মার্জ সারণি করণীয়।
-[লিঙ্কযুক্ত তালিকার জন্য বাছাই করুন মার্জ করুন] (http://www.geeksforgeeks.org/ নিমেষে-অনুসারে-লিঙ্কড-তালিকা /)
--হিপসোর্টের জন্য, উপরে হ্যাপের ডেটা কাঠামোটি দেখুন। হিপ সাজানো দুর্দান্ত তবে স্থিতিশীল নয়।
+- হিপসোর্টের জন্য, উপরে হ্যাপের ডেটা কাঠামোটি দেখুন। হিপ সাজানো দুর্দান্ত তবে স্থিতিশীল নয়।
- [সেডজউইক-মার্জেসোর্ট (৫ টি ভিডিও)] (https://www.coursera.org/learn/algorithms-part1/home/week/3)
- [১। Mergesort] (https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
@@ -998,10 +998,10 @@ https://github.com/jwasham/coding-interview-university
- [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
- বাস্তবায়ন:
- - মার্জোর্ট: ও (এন লগ এন) গড় এবং সবচেয়ে খারাপ অবস্থা case
- - কুইকসোর্ট ও (এন লগ এন) গড় কেস
- -বাছাই বাছাই এবং সন্নিবেশ বাছাই উভয় হে (এন ^ 2) গড় এবং সবচেয়ে খারাপ ক্ষেত্রে
- -হিপসোর্টের জন্য, উপরে হ্যাপের ডেটা কাঠামোটি দেখুন।
+ - মার্জোর্ট: ও (এন লগ এন) গড় এবং সবচেয়ে খারাপ অবস্থা case
+ - কুইকসোর্ট ও (এন লগ এন) গড় কেস
+ - বাছাই বাছাই এবং সন্নিবেশ বাছাই উভয় হে (এন ^ 2) গড় এবং সবচেয়ে খারাপ ক্ষেত্রে
+ - হিপসোর্টের জন্য, উপরে হ্যাপের ডেটা কাঠামোটি দেখুন।
- প্রয়োজন হয় না, তবে আমি তাদের সুপারিশ করেছি:
- [সেডজউইক-র্যাডিক্স সোর্টস (6 টি ভিডিও)] (https://www.coursera.org/learn/algorithms-part2/home/week/3)
@@ -1022,7 +1022,7 @@ https://github.com/jwasham/coding-interview-university
-##গ্রাফ
+## গ্রাফ
গ্রাফ
@@ -1068,10 +1068,10 @@ https://github.com/jwasham/coding-interview-university
- [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
- [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
--সম্পূর্ণ কোর্সেরা কোর্স:
+- সম্পূর্ণ কোর্সেরা কোর্স:
- [গ্রাফগুলিতে অ্যালগরিদমগুলি (ভিডিও)] (https://www.coursera.org/learn/algorithms-on-অনুচ্ছেদ / হোম / উপস্ব)
--আমি বাস্তবায়ন করব:
+- আমি বাস্তবায়ন করব:
- সংলগ্ন তালিকার সাথে ডিএফএস (পুনরাবৃত্ত)
- সংলগ্ন তালিকার সাথে ডিএফএস (স্ট্যাক সহ পুনরাবৃত্ত)
- সংলগ্ন ম্যাট্রিক্স সহ ডিএফএস (পুনরাবৃত্ত)
@@ -1080,7 +1080,7 @@ https://github.com/jwasham/coding-interview-university
- সংলগ্ন ম্যাট্রিক্স সহ বিএফএস
- একক উত্সের সংক্ষিপ্ততম পথ (ডিজকস্ট্র)
- সর্বনিম্ন বিস্তৃত গাছ
- -ডিএফএস-ভিত্তিক অ্যালগরিদম (উপরে অ্যাডুনি ভিডিও দেখুন):
+ - ডিএফএস-ভিত্তিক অ্যালগরিদম (উপরে অ্যাডুনি ভিডিও দেখুন):
- চক্র পরীক্ষা করুন (টপোলজিকাল সাজানোর জন্য প্রয়োজনীয়, যেহেতু আমরা শুরু করার আগে চক্রটি পরীক্ষা করব)
- টপোলজিকাল সাজান
- একটি গ্রাফে সংযুক্ত উপাদানগুলি গণনা করুন
@@ -1089,28 +1089,28 @@ https://github.com/jwasham/coding-interview-university
-##আরও জ্ঞান
+## আরও জ্ঞান
আরও জ্ঞান << সংক্ষিপ্ত>
--###পুনরাবৃত্তি
+-### পুনরাবৃত্তি
- পুনরাবৃত্তি ও ব্যাকট্র্যাকিংয়ের উপর স্ট্যানফোর্ডের বক্তৃতা:
- [বক্তৃতা 8 | প্রোগ্রামিং বিমূর্তকরণ (ভিডিও)] (https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- [বক্তৃতা 9 | প্রোগ্রামিং বিমূর্তি (ভিডিও)] (https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- [বক্তৃতা 10 | প্রোগ্রামিং বিমূর্তি (ভিডিও)] (https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- [বক্তৃতা 11 | প্রোগ্রামিং বিমূর্তি (ভিডিও)] (https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- -যখন এটি ব্যবহার করা উপযুক্ত হবে
- -টেল রিকার্সন এর চেয়ে ভাল কীভাবে?
+ - যখন এটি ব্যবহার করা উপযুক্ত হবে
+ - টেল রিকার্সন এর চেয়ে ভাল কীভাবে?
- [লেজ পুনরাবৃত্তি কি এটি এত খারাপ কেন?] (Https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [টেল রিকার্সন (ভিডিও)] (https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
--###ডায়নামিক প্রোগ্রামিং
- -আপনি সম্ভবত আপনার সাক্ষাত্কারে কোনও গতিশীল প্রোগ্রামিং সমস্যা দেখতে পাবেন না, তবে ডায়নামিক প্রোগ্রামিংয়ের প্রার্থী হিসাবে কোনও সমস্যাটি স্বীকৃতি দেওয়ার পক্ষে এটি মূল্যবান।
- -এই বিষয়টি বেশ কঠিন হতে পারে, কারণ প্রতিটি ডিপি দ্রবণীয় সমস্যাটিকে অবশ্যই পুনরাবৃত্তির সম্পর্ক হিসাবে সংজ্ঞায়িত করা উচিত এবং এটির সাথে আসাটি জটিল হতে পারে।
- -আমি জড়িত প্যাটার্ন সম্পর্কে দৃ understanding় ধারণা না পাওয়া পর্যন্ত আমি ডিপি সমস্যার অনেক উদাহরণ দেখার পরামর্শ দিই।
+-### ডায়নামিক প্রোগ্রামিং
+ - আপনি সম্ভবত আপনার সাক্ষাত্কারে কোনও গতিশীল প্রোগ্রামিং সমস্যা দেখতে পাবেন না, তবে ডায়নামিক প্রোগ্রামিংয়ের প্রার্থী হিসাবে কোনও সমস্যাটি স্বীকৃতি দেওয়ার পক্ষে এটি মূল্যবান।
+ - এই বিষয়টি বেশ কঠিন হতে পারে, কারণ প্রতিটি ডিপি দ্রবণীয় সমস্যাটিকে অবশ্যই পুনরাবৃত্তির সম্পর্ক হিসাবে সংজ্ঞায়িত করা উচিত এবং এটির সাথে আসাটি জটিল হতে পারে।
+ - আমি জড়িত প্যাটার্ন সম্পর্কে দৃ understanding় ধারণা না পাওয়া পর্যন্ত আমি ডিপি সমস্যার অনেক উদাহরণ দেখার পরামর্শ দিই।
- ভিডিওগুলি:
- -স্কিয়েনা ভিডিওগুলি অনুসরণ করা শক্ত কারণ তিনি কখনও কখনও হোয়াইটবোর্ড ব্যবহার করেন যা দেখতে খুব ছোট
+ - স্কিয়েনা ভিডিওগুলি অনুসরণ করা শক্ত কারণ তিনি কখনও কখনও হোয়াইটবোর্ড ব্যবহার করেন যা দেখতে খুব ছোট
- [স্কিয়েনা: সিএসই 373 2012-বক্তৃতা 19-ডায়নামিক প্রোগ্রামিংয়ের পরিচিতি (ভিডিও)] (https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- [স্কিয়েনা: সিএসই 373 2012-বক্তৃতা 20-দূরত্ব সম্পাদনা করুন (ভিডিও)] (https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- [স্কিয়েনা: সিএসই 373 2012-লেকচার 21-গতিশীল প্রোগ্রামিং উদাহরণ (ভিডিও)] (https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
@@ -1131,7 +1131,7 @@ https://github.com/jwasham/coding-interview-university
- [গ্লোবাল পেয়ারওয়াইজ সিকোয়েন্স অ্যালাইনমেন্ট (ভিডিও)] (https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- [স্থানীয় যুগের ক্রম সারিবদ্ধকরণ প্রান্তিককরণ (ভিডিও)] (https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
--###অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
+- ### অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
- ptionচ্ছিক: ইউএমএল ২.০ সিরিজ (ভিডিও)] (https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- অবজেক্ট-ওরিয়েন্টেড সফটওয়্যার ইঞ্জিনিয়ারিং: ইউএমএল এবং জাভা ব্যবহার করে সফটওয়্যার ডেভ (21 টি ভিডিও):
-আপনার যদি OO এবং OO ডিজাইনের অনুশীলনগুলির দুর্দান্ত উপলব্ধি থাকে তবে এড়িয়ে যেতে পারেন।
@@ -1152,7 +1152,7 @@ https://github.com/jwasham/coding-interview-university
-[নির্ভরতা বিপরীতকরণের মূলনীতি কেন এবং কেন এটি গুরুত্বপূর্ণ] (http://stackoverflow.com/questions/62539/ কি-এটি-নির্ভরতা-রূপান্তর-নীতি-এবং-কেন-কেন-গুরুত্বপূর্ণ-গুরুত্বপূর্ণ)
-[আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjhhddlljrhmdlljrhmdlljdlmljrlm पर
--###নকশা নিদর্শন
+- ### নকশা নিদর্শন
- [কুইক ইউএমএল পর্যালোচনা (ভিডিও)] (https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- এই নিদর্শনগুলি শিখুন:
- কৌশল
@@ -1167,7 +1167,7 @@ https://github.com/jwasham/coding-interview-university
- প্রক্সি
- প্রতিনিধি
- আদেশ
- -[ ] অবস্থা
+ - [ ] অবস্থা
- স্মৃতিচারণ
- পুনরাবৃত্তিকারী
- সংমিশ্রিত
@@ -1182,20 +1182,20 @@ https://github.com/jwasham/coding-interview-university
- [মানুষের জন্য নকশার নকশাগুলি] (https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
--###সম্মিলক (n কে নির্বাচন করুন) এবং সম্ভাবনা
+- ### সম্মিলক (n কে নির্বাচন করুন) এবং সম্ভাবনা
- [গণিত দক্ষতা: কীভাবে ফ্যাক্টরিয়াল, অনুমান এবং সংমিশ্রণ (চয়ন করুন) (ভিডিও)] (https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- [স্কুল তৈরি করুন: সম্ভাবনা (ভিডিও)] (https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- [স্কুল তৈরি করুন: আরও সম্ভাবনা এবং মার্কভ চেইন (ভিডিও)] (https://www.youtube.com/watch?v=dNaJg-mLobQ)
- -[ ] খান একাডেমি:
+ - [ ] খান একাডেমি:
-কোর্স লেআউট:
- [বেসিক তাত্ত্বিক সম্ভাবনা] (https://www.khanacademy.org/math/probability/probability-and-combinatorics-টপিক)
-কেবল ভিডিওগুলি-41 (প্রতিটি সহজ এবং প্রতিটি স্বল্প):
- [সম্ভাব্যতার ব্যাখ্যা (ভিডিও)] (https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
--###এনপি, এনপি-সম্পূর্ণ এবং আনুমানিক অ্যালগরিদম
- -এনপি-সম্পূর্ণ সমস্যার সর্বাধিক বিখ্যাত শ্রেণীর সম্পর্কে জানুন, যেমন ভ্রমণ ভ্রমণ এবং ন্যাপস্যাক সমস্যা,
+- ### এনপি, এনপি-সম্পূর্ণ এবং আনুমানিক অ্যালগরিদম
+ - এনপি-সম্পূর্ণ সমস্যার সর্বাধিক বিখ্যাত শ্রেণীর সম্পর্কে জানুন, যেমন ভ্রমণ ভ্রমণ এবং ন্যাপস্যাক সমস্যা,
এবং যখন কোনও সাক্ষাত্কার আপনাকে ছদ্মবেশে জিজ্ঞাসা করে তখন সেগুলি সনাক্ত করতে সক্ষম হোন।
- -এনপি-সম্পূর্ণ অর্থ কী তা জানুন।
+ - এনপি-সম্পূর্ণ অর্থ কী তা জানুন।
- [গণনামূলক জটিলতা (ভিডিও)] (https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- সাইমনসন:
- [লোভী অ্যালগস। এনপি সম্পূর্ণতা (ভিডিও) তে II এবং ইন্ট্রো] (https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
@@ -1224,31 +1224,31 @@ https://github.com/jwasham/coding-interview-university
-###প্রক্রিয়া এবং থ্রেডস
- কম্পিউটার বিজ্ঞান 162-অপারেটিং সিস্টেম (25 টি ভিডিও):
- -প্রক্রিয়া এবং থ্রেডগুলির জন্য ভিডিওগুলি 1-11 দেখুন
+ - প্রক্রিয়া এবং থ্রেডগুলির জন্য ভিডিওগুলি 1-11 দেখুন
-[অপারেটিং সিস্টেমস এবং সিস্টেম প্রোগ্রামিং (ভিডিও)] (https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- -[প্রক্রিয়া এবং একটি থ্রেডের মধ্যে পার্থক্য কী?] (Https://www.quora.com/What-is-the-differences-between-a-process-and-a-thread)
- -কভার:
- -প্রক্রিয়াগুলি, থ্রেডগুলি, সমঝোতার বিষয়গুলি
- -প্রক্রিয়া এবং থ্রেড মধ্যে পার্থক্য
- -প্রক্রিয়া
- -থ্রেড
- -তালা
- -মিটেক্সেস
- -semaphores
- -মনিটর
- -তারা কীভাবে কাজ করে
- -অচলাবস্থা
- -লাইভলক
- -সিপিইউ ক্রিয়াকলাপ, বাধা, প্রসঙ্গের স্যুইচিং
- -মাল্টিকোর প্রসেসরগুলির সাথে আধুনিক একত্রীকরণ
- -[পেজিং, বিভাগকরণ এবং ভার্চুয়াল মেমোরি (ভিডিও)] (https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- -[বাধা (ভিডিও)] (https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
- -[শিডিং (ভিডিও)] (https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
- -প্রক্রিয়া সংস্থান প্রয়োজন (মেমরি: কোড, স্ট্যাটিক স্টোরেজ, স্ট্যাক, গাদা, এবং ফাইল বিবরণকারী, i / o)
- -থ্রেড রিসোর্সের প্রয়োজন (একই প্রক্রিয়ায় অন্যান্য থ্রেডের সাথে উপরের (বিয়োগ স্ট্যাক) তবে প্রতিটিটির নিজস্ব পিসি, স্ট্যাক কাউন্টার, রেজিস্টার এবং স্ট্যাক রয়েছে)
- -নতুন প্রক্রিয়া মেমরিটিতে লেখার আগ পর্যন্ত ফোর্কিং সত্যই লেখার অনুলিপি (কেবল পঠনযোগ্য) হয়, তবে এটি একটি সম্পূর্ণ অনুলিপি করে।
- -প্রসঙ্গে স্যুইচিং
- -কীভাবে প্রসঙ্গের স্যুইচিং অপারেটিং সিস্টেম এবং অন্তর্নিহিত হার্ডওয়্যার দ্বারা শুরু করা হয়
+ - [প্রক্রিয়া এবং একটি থ্রেডের মধ্যে পার্থক্য কী?] (Https://www.quora.com/What-is-the-differences-between-a-process-and-a-thread)
+ - কভার:
+ - প্রক্রিয়াগুলি, থ্রেডগুলি, সমঝোতার বিষয়গুলি
+ - প্রক্রিয়া এবং থ্রেড মধ্যে পার্থক্য
+ - প্রক্রিয়া
+ - থ্রেড
+ - তালা
+ - মিটেক্সেস
+ - semaphores
+ - মনিটর
+ - তারা কীভাবে কাজ করে
+ - অচলাবস্থা
+ - লাইভলক
+ - সিপিইউ ক্রিয়াকলাপ, বাধা, প্রসঙ্গের স্যুইচিং
+ - মাল্টিকোর প্রসেসরগুলির সাথে আধুনিক একত্রীকরণ
+ - [পেজিং, বিভাগকরণ এবং ভার্চুয়াল মেমোরি (ভিডিও)] (https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
+ - [বাধা (ভিডিও)] (https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
+ - [শিডিং (ভিডিও)] (https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
+ - প্রক্রিয়া সংস্থান প্রয়োজন (মেমরি: কোড, স্ট্যাটিক স্টোরেজ, স্ট্যাক, গাদা, এবং ফাইল বিবরণকারী, i / o)
+ - থ্রেড রিসোর্সের প্রয়োজন (একই প্রক্রিয়ায় অন্যান্য থ্রেডের সাথে উপরের (বিয়োগ স্ট্যাক) তবে প্রতিটিটির নিজস্ব পিসি, স্ট্যাক কাউন্টার, রেজিস্টার এবং স্ট্যাক রয়েছে)
+ - নতুন প্রক্রিয়া মেমরিটিতে লেখার আগ পর্যন্ত ফোর্কিং সত্যই লেখার অনুলিপি (কেবল পঠনযোগ্য) হয়, তবে এটি একটি সম্পূর্ণ অনুলিপি করে।
+ - প্রসঙ্গে স্যুইচিং
+ - কীভাবে প্রসঙ্গের স্যুইচিং অপারেটিং সিস্টেম এবং অন্তর্নিহিত হার্ডওয়্যার দ্বারা শুরু করা হয়
- [সি ++ (সিরিজ-10 টি ভিডিও) এর থ্রেড]] (https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- পাইথনে সম্মতি (ভিডিও):
- [থ্রেডগুলিতে সংক্ষিপ্ত সিরিজ] (https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
@@ -1259,8 +1259,8 @@ https://github.com/jwasham/coding-interview-university
- [মূল ডেভিড বেজলি-আগ্রহের বিষয় (পাইথন অ্যাসিনসিও)] (https://www.youtube.com/watch?v=ZzfHjytDceU)
- [পাইথনে নিবিড়] (https://www.youtube.com/watch?v=0zaPs8OtyKY)
--###পরীক্ষামূলক
- -ঢাকতে:
+- ### পরীক্ষামূলক
+ - ঢাকতে:
-ইউনিট টেস্টিং কীভাবে কাজ করে
-মক অবজেক্টস কী
-সংহতকরণ পরীক্ষা কি
@@ -1273,16 +1273,16 @@ https://github.com/jwasham/coding-interview-university
- [টিডিডি মারা গেছে? (ভিডিও)] (https://www.youtube.com/watch?v=z9quxZsLcfo)
- [ভিডিও সিরিজ (152 টি ভিডিও)-সবার প্রয়োজন নেই (ভিডিও)] (https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
- [পাইথনের সাথে পরীক্ষিত-চালিত ওয়েব বিকাশ] (http://www.obeythetestinggoat.com/pages/book.html#toc)
- -[ ] ইনজেকশন নির্ভরতা:
+ - [ ] ইনজেকশন নির্ভরতা:
- [ভিডিও] (https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- [পরীক্ষার তাও] (http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- [পরীক্ষাগুলি কীভাবে লিখবেন] (http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
--###তফসিল
- -কোনও ওএসে, এটি কীভাবে কাজ করে
- -অপারেটিং সিস্টেমের ভিডিওগুলি থেকে সংগ্রহ করা যায়
+- ### তফসিল
+ - কোনও ওএসে, এটি কীভাবে কাজ করে
+ - অপারেটিং সিস্টেমের ভিডিওগুলি থেকে সংগ্রহ করা যায়
--###স্ট্রিং অনুসন্ধান এবং ম্যানিপুলেশনগুলি
+- ### স্ট্রিং অনুসন্ধান এবং ম্যানিপুলেশনগুলি
- [সেডজউইক-প্রত্যয় অ্যারে (ভিডিও)] (https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- [সেডজউইক-সাবস্ট্রিং অনুসন্ধান (ভিডিও)] (https://www.coursera.org/learn/algorithms-part2/home/week/4)
- [১। সাবস্ট্রিং অনুসন্ধানের পরিচিতি] (https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/intr پيداوار-to-substring-search)
@@ -1294,10 +1294,10 @@ https://github.com/jwasham/coding-interview-university
আপনার যদি এই বিষয়ে আরও বিশদ প্রয়োজন, [কিছু বিষয়ের উপর অতিরিক্ত বিবরণ] "স্ট্রিং ম্যাচিং" বিভাগটি দেখুন (কিছু-বিষয়ে-কিছু-অতিরিক্ত)
--###চেষ্টা
- -নোট করুন বিভিন্ন ধরণের চেষ্টা আছে। কারও কারও কাছে উপসর্গ আছে, কারও কাছে কিছু নেই, আবার কিছু বিটের পরিবর্তে স্ট্রিং ব্যবহার করে
+- ### চেষ্টা
+ - নোট করুন বিভিন্ন ধরণের চেষ্টা আছে। কারও কারও কাছে উপসর্গ আছে, কারও কাছে কিছু নেই, আবার কিছু বিটের পরিবর্তে স্ট্রিং ব্যবহার করে
পথ ট্র্যাক।
- -আমি কোডের মাধ্যমে পড়েছি, তবে বাস্তবায়ন করব না।
+ - আমি কোডের মাধ্যমে পড়েছি, তবে বাস্তবায়ন করব না।
- [সেডজউইক-চেষ্টা (3 টি ভিডিও)] (https://www.coursera.org/learn/algorithms-part2/home/week/4)
- [১। আর ওয়ে চেষ্টা করে] (https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
- [২। টার্নারি অনুসন্ধানের চেষ্টা] (https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
@@ -1312,23 +1312,23 @@ https://github.com/jwasham/coding-interview-university
- [স্ট্যানফোর্ড লেকচার (রিয়েল ওয়ার্ল্ড ইউজ কেস) (ভিডিও)] (https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- [এমআইটি, উন্নত ডেটা স্ট্রাকচার, স্ট্রিংস (প্রায় অর্ধেক পথ ধরেই বেশ অস্পষ্টতা পেতে পারে) (ভিডিও)] (https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
--###ভাসমান পয়েন্ট নম্বর
+- ### ভাসমান পয়েন্ট নম্বর
- সাধারণ 8-বিট: [ভাসমান পয়েন্ট সংখ্যাগুলির প্রতিনিধিত্ব-1 (ভিডিও-গণনায় একটি ত্রুটি রয়েছে-ভিডিও বর্ণনা দেখুন)] (https://www.youtube.com/watch?v=ji3SfClm8TU)
- 32 বিট: [আইইইই 7575 32-বিট ভাসমান পয়েন্ট বাইনারি (ভিডিও)] (https://www.youtube.com/watch?v=50ZYcZebIec)
--###ইউনিকোড
+- ### ইউনিকোড
- [সর্বনিম্ন ন্যূনতম প্রতিটি সফ্টওয়্যার বিকাশকারী অবশ্যই, ইউনিকোড এবং চরিত্রের সেট সম্পর্কে ইতিবাচকভাবে অবশ্যই জানতে হবে] (http://www.joelonsoftware.com/articles/Unicode.html)
- [প্রতিটি প্রোগ্রামার একেবারে নিখুঁতভাবে, এনকোডিংগুলি এবং পাঠ্যের সাথে কাজ করার জন্য চরিত্রের সেটগুলি সম্পর্কে ইতিবাচক প্রয়োজন] [http://kunststube.net/encoding/)
--###শেষ
+- ### শেষ
- [বড় এবং ছোট এন্ডিয়ান] (https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian। এইচটিএমএল)
- [বিগ এন্ডিয়ান বনাম লিটল এন্ডিয়ান (ভিডিও)] (https://www.youtube.com/watch?v=JrNF0KRAlyo)
- [বিগ এবং লিটল এন্ডিয়ান ইনসাইড / আউট (ভিডিও)] (https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- -কার্নেল দেবদের জন্য খুব প্রযুক্তিগত আলাপ। বেশিরভাগ আপনার মাথার উপরে থাকলে চিন্তা করবেন না।
- -প্রথমার্ধ যথেষ্ট।
+ - কার্নেল দেবদের জন্য খুব প্রযুক্তিগত আলাপ। বেশিরভাগ আপনার মাথার উপরে থাকলে চিন্তা করবেন না।
+ - প্রথমার্ধ যথেষ্ট।
--###নেটওয়ার্কিং
- -** আপনার যদি নেটওয়ার্কিংয়ের অভিজ্ঞতা থাকে বা কোনও নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে প্রশ্নগুলি আশা করুন **
+- ### নেটওয়ার্কিং
+ - **আপনার যদি নেটওয়ার্কিংয়ের অভিজ্ঞতা থাকে বা কোনও নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে প্রশ্নগুলি আশা করুন**
-অন্যথায়, এটি জেনে রাখা ভাল
- [খান একাডেমি] (https://www.khanacademy.org/computing/computer-science/internet-intro)
- [ইউডিপি এবং টিসিপি: পরিবহন প্রোটোকলের তুলনা (ভিডিও)] (https://www.youtube.com/watch?v=Vdc8TCESIg8)
@@ -1346,30 +1346,30 @@ https://github.com/jwasham/coding-interview-university
-##সিস্টেম ডিজাইন, স্কেলিবিলিটি, ডেটা হ্যান্ডলিং
+## সিস্টেম ডিজাইন, স্কেলিবিলিটি, ডেটা হ্যান্ডলিং
<সুমারী> সিস্টেম ডিজাইন, স্কেলাবিলিটি, ডেটা হ্যান্ডলিং
-** আপনার 4+ বছরের অভিজ্ঞতা থাকলে আপনি সিস্টেম ডিজাইন প্রশ্নগুলি আশা করতে পারেন *
+**আপনার ৪+ বছরের অভিজ্ঞতা থাকলে আপনি সিস্টেম ডিজাইন প্রশ্নগুলি আশা করতে পারেন*
--স্কেলাবিলিটি এবং সিস্টেম ডিজাইন অনেকগুলি বিষয় এবং সংস্থান সহ অনেক বড় বিষয় since
+- স্কেলাবিলিটি এবং সিস্টেম ডিজাইন অনেকগুলি বিষয় এবং সংস্থান সহ অনেক বড় বিষয় since
এমন একটি সফ্টওয়্যার / হার্ডওয়্যার সিস্টেম ডিজাইন করার সময় বিবেচনা করার মতো অনেক কিছুই রয়েছে যা স্কেল করতে পারে।
এটিতে বেশ কিছুটা সময় ব্যয় করার প্রত্যাশা করুন।
--বিবেচনা:
- -স্কেলিবিলিটি
- -একক মানগুলিতে বড় ডেটা সেট স্থাপন করুন
- -একটি ডেটা সেট করে অন্যটিতে রূপান্তর করুন
- -অশ্লীলভাবে প্রচুর পরিমাণে ডেটা পরিচালনা করা
- -ব্যবস্থা পরিকল্পনা
- -বৈশিষ্ট্য সেট
- -ইন্টারফেস
- -শ্রেণি শ্রেণিবিন্যাস
- -নির্দিষ্ট সীমাবদ্ধতার অধীনে একটি সিস্টেম ডিজাইন করা
- -সরলতা এবং দৃust়তা
- -বাণিজ্য
- -কর্মক্ষমতা বিশ্লেষণ এবং অপ্টিমাইজেশন
-- ** এখানে শুরু করুন **: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
+- বিবেচনা:
+ - স্কেলিবিলিটি
+ - একক মানগুলিতে বড় ডেটা সেট স্থাপন করুন
+ - একটি ডেটা সেট করে অন্যটিতে রূপান্তর করুন
+ - অশ্লীলভাবে প্রচুর পরিমাণে ডেটা পরিচালনা করা
+ - ব্যবস্থা পরিকল্পনা
+ - বৈশিষ্ট্য সেট
+ - ইন্টারফেস
+ - শ্রেণি শ্রেণিবিন্যাস
+ - নির্দিষ্ট সীমাবদ্ধতার অধীনে একটি সিস্টেম ডিজাইন করা
+ - সরলতা এবং দৃust়তা
+ - বাণিজ্য
+ - কর্মক্ষমতা বিশ্লেষণ এবং অপ্টিমাইজেশন
+- **এখানে শুরু করুন**: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
- [হায়ারডিনটেক থেকে সিস্টেম ডিজাইন] (http://www.hiredintech.com/system-design/)
- [আমি কীভাবে কোনও প্রযুক্তিগত ইনভারভিউতে নকশার প্রশ্নের উত্তর দিতে প্রস্তুত করব?] (Https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview? redirected_qid = 1500023)
- [সিস্টেম ডিজাইনের সাক্ষাত্কারের আগে আপনার যে 8 টি বিষয়গুলি জানতে হবে]] (http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system ডিজাইন-সাক্ষাৎকার /)
@@ -1439,15 +1439,15 @@ https://github.com/jwasham/coding-interview-university
- [সেলসফোর্স আর্কিটেকচার-তারা কীভাবে একদিন ১.৩ বিলিয়ন লেনদেন পরিচালনা করে] [http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html )
- [ইএসপিএন এর আর্কিটেকচার স্কেল-100,000 ডুহ নুহ নুহ্হ্ প্রতি সেকেন্ডে অপারেটিং] [http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- পরিষেবাগুলিকে একসাথে আটকানো যেতে পারে এমন কয়েকটি প্রযুক্তির তথ্যের জন্য নীচে "বার্তা, সিরিয়ালাইজেশন এবং কুইউনিং সিস্টেম" দেখুন See
- -[ ] টুইটার:
- -[ও'রিলি মাইএসকিউএল সিই 2011: জেরেমি কোল, "টুইটারে বড় এবং ছোট তথ্য" (ভিডিও)] (https://www.youtube.com/watch?v=5cKTP36HVgI)
- -[স্কেলে টাইমলাইন] (https://www.infoq.com/preferencesations/Twitter-Timeline-সক্ষমতা)
- -আরও তথ্যের জন্য, [ভিডিও সিরিজ] (#ভিডিও-সিরিজ) বিভাগে "মাইনিং ম্যাসিভ ডেটাসেটস" ভিডিও সিরিজটি দেখুন।
+ - [ ] টুইটার:
+ - [ও'রিলি মাইএসকিউএল সিই 2011: জেরেমি কোল, "টুইটারে বড় এবং ছোট তথ্য" (ভিডিও)] (https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [স্কেলে টাইমলাইন] (https://www.infoq.com/preferencesations/Twitter-Timeline-সক্ষমতা)
+ - আরও তথ্যের জন্য, [ভিডিও সিরিজ] (#ভিডিও-সিরিজ) বিভাগে "মাইনিং ম্যাসিভ ডেটাসেটস" ভিডিও সিরিজটি দেখুন।
- সিস্টেম ডিজাইন প্রক্রিয়াটির অনুশীলন: কাগজে কাজ করার চেষ্টা করার জন্য এখানে কয়েকটি ধারণা দেওয়া হয়েছে, প্রত্যেকটি আসল বিশ্বে কীভাবে এটি পরিচালনা করা হয়েছিল সে সম্পর্কে কিছু ডকুমেন্টেশন সহ:
- -পর্যালোচনা: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
- -[হাইরেডইনটেক থেকে সিস্টেম ডিজাইন] (http://www.hiredintech.com/system-design/)
- -[চিট শিট] (https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- -প্রবাহ:
+ - পর্যালোচনা: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
+ - [হাইরেডইনটেক থেকে সিস্টেম ডিজাইন] (http://www.hiredintech.com/system-design/)
+ - [চিট শিট] (https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - প্রবাহ:
1. সমস্যা এবং সুযোগটি বুঝুন:
-সাক্ষাত্কারের সাহায্যে ব্যবহারের ক্ষেত্রে সংজ্ঞা দিন
-অতিরিক্ত বৈশিষ্ট্য প্রস্তাব
@@ -1466,21 +1466,21 @@ https://github.com/jwasham/coding-interview-university
-অবকাঠামো: লোড ব্যালেন্সিং, মেসেজিং
-পরিষেবা চালিত কোনও মূল অ্যালগরিদম সম্পর্কে মোটামুটি ওভারভিউ
-বাধা বিবেচনা করুন এবং সমাধান নির্ধারণ করুন
- -অনুশীলন:
- -[একটি সিডিএন নেটওয়ার্ক ডিজাইন করুন: পুরাতন নিবন্ধ] (http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
- -[একটি এলোমেলো আইডি জেনারেশন সিস্টেম ডিজাইন করুন] (https://blog.twitter.com/2010/annoucing-snowflake)
- -[একটি অনলাইন মাল্টিপ্লেয়ার কার্ড গেমটি ডিজাইন করুন] (http://www.indieflashblog.com/how-to-create-an-asynchronous-multplayer-game.html)
- -[একটি মূল-মান ডাটাবেস ডিজাইন করুন) (http://www.slideshare.net/dvirsky/intrration-to-redis)
- -[ছবি শেয়ারিং সিস্টেম ডিজাইন করুন] (http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- -[একটি সুপারিশ সিস্টেম ডিজাইন করুন) (http://ijcai13.org/files/tutorial_slides/td3.pdf)
- -[একটি ইউআরএল-শর্টনার সিস্টেম ডিজাইন করুন: উপর থেকে অনুলিপি করা হয়েছে) (http://www.hiredintech.com/system-design/the-system-design-process/)
- -[একটি ক্যাশে সিস্টেম ডিজাইন করুন) (https://www.adayinthelifeof.nl/2011/02/06/mmcache-internals/)
+ - অনুশীলন:
+ - [একটি সিডিএন নেটওয়ার্ক ডিজাইন করুন: পুরাতন নিবন্ধ] (http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
+ - [একটি এলোমেলো আইডি জেনারেশন সিস্টেম ডিজাইন করুন] (https://blog.twitter.com/2010/annoucing-snowflake)
+ - [একটি অনলাইন মাল্টিপ্লেয়ার কার্ড গেমটি ডিজাইন করুন] (http://www.indieflashblog.com/how-to-create-an-asynchronous-multplayer-game.html)
+ - [একটি মূল-মান ডাটাবেস ডিজাইন করুন) (http://www.slideshare.net/dvirsky/intrration-to-redis)
+ - [ছবি শেয়ারিং সিস্টেম ডিজাইন করুন] (http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [একটি সুপারিশ সিস্টেম ডিজাইন করুন) (http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [একটি ইউআরএল-শর্টনার সিস্টেম ডিজাইন করুন: উপর থেকে অনুলিপি করা হয়েছে) (http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [একটি ক্যাশে সিস্টেম ডিজাইন করুন) (https://www.adayinthelifeof.nl/2011/02/06/mmcache-internals/)
---
-##চূড়ান্ত পর্যালোচনা
+## চূড়ান্ত পর্যালোচনা
চূড়ান্ত পর্যালোচনা সংক্ষেপ>
@@ -1500,22 +1500,22 @@ https://github.com/jwasham/coding-interview-university
---
-##কোডিং প্রশ্ন অনুশীলন
+## কোডিং প্রশ্ন অনুশীলন
<সংশ্লেষ> কোডিং প্রশ্ন অনুশীলন << সংক্ষিপ্ত>
আপনি যেহেতু উপরের সমস্ত কম্পিউটার বিজ্ঞানের বিষয়গুলি জানেন, এখন কোডিং সমস্যার উত্তর দেওয়ার অনুশীলন করার সময় এসেছে।
-** কোডিং প্রশ্ন অনুশীলন প্রোগ্রামিং সমস্যার উত্তর মুখস্থ করার বিষয়ে নয় * **
+**কোডিং প্রশ্ন অনুশীলন প্রোগ্রামিং সমস্যার উত্তর মুখস্থ করার বিষয়ে নয়**
আপনার প্রোগ্রামিং সমস্যাগুলি করার অনুশীলন করা দরকার কেন:
--সমস্যা স্বীকৃতি এবং যেখানে সঠিক ডেটা স্ট্রাকচার এবং অ্যালগরিদম ফিট করে
--সমস্যার প্রয়োজনীয়তা সংগ্রহ করা
--আপনি যেমন সাক্ষাত্কারে যাবেন ঠিক তেমন সমস্যার মধ্য দিয়ে কথা বলা
--একটি হোয়াইটবোর্ড বা কাগজে কোডিং, কম্পিউটার নয়
--আপনার সমাধানের জন্য সময় এবং স্থান জটিলতার সাথে হাজির
--আপনার সমাধান পরীক্ষা করা
+- সমস্যা স্বীকৃতি এবং যেখানে সঠিক ডেটা স্ট্রাকচার এবং অ্যালগরিদম ফিট করে
+- সমস্যার প্রয়োজনীয়তা সংগ্রহ করা
+- আপনি যেমন সাক্ষাত্কারে যাবেন ঠিক তেমন সমস্যার মধ্য দিয়ে কথা বলা
+- একটি হোয়াইটবোর্ড বা কাগজে কোডিং, কম্পিউটার নয়
+- আপনার সমাধানের জন্য সময় এবং স্থান জটিলতার সাথে হাজির
+- আপনার সমাধান পরীক্ষা করা
একটি সাক্ষাত্কারে পদ্ধতিগত, যোগাযোগমূলক সমস্যা সমাধানের জন্য দুর্দান্ত ভূমিকা রয়েছে। আপনি প্রোগ্রামিং থেকে এটি পাবেন
সাক্ষাত্কারের বইগুলিও, তবে আমি এই অসামান্যটি পেয়েছি:
@@ -1533,7 +1533,7 @@ https://github.com/jwasham/coding-interview-university
-[ডায়নামিক প্রোগ্রামিং-নোভাইস থেকে অ্যাডভান্সড] (https://www.topcoder.com/commune/competitive-pogramming/tutorials/dynamic-programming-from-novice-to-advanced/
-[এমআইটি সাক্ষাত্কার উপকরণ] (https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/matorys.php)
-** প্রোগ্রামিং সমস্যাগুলি পড়ুন এবং করুন (এই ক্রমে): **
+**প্রোগ্রামিং সমস্যাগুলি পড়ুন এবং করুন (এই ক্রমে):**
- [প্রোগ্রামিং সাক্ষাত্কার উন্মোচিত: আপনার পরবর্তী কাজ ল্যান্ডিংয়ের গোপনীয়তা, ২ য় সংস্করণ] (http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
-সি, সি ++ এবং জাভাতে উত্তর
@@ -2220,7 +2220,7 @@ https://github.com/jwasham/coding-interview-university
- [২০১৪: মেশিন লার্নিং: প্রযুক্তিগত tণের উচ্চ-আগ্রহের ক্রেডিট কার্ড] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- [২০১৫: গুগলে অবিচ্ছিন্ন পাইপলাইন] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
- [২০১৫: বৃহত্তর স্কেলে উচ্চ-প্রাপ্যতা: বিজ্ঞাপনগুলির জন্য গুগলের ডেটা অবকাঠামো তৈরি করা] (https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [২০১৫: টেনসরফ্লো: বিজাতীয় বিতরণকারী সিস্টেমে বৃহত্তর স্কেল মেশিন লার্নিং] (http://download.tensorflow.org/paper/ whitepaper2015.pdf)
+- [২০১৫: টেনসরফ্লো: বিজাতীয় বিতরণকারী সিস্টেমে বৃহত্তর স্কেল মেশিন লার্নিং] (http://download.tensorflow.org/paper/whitepaper2015.pdf)
- [২০১৫: কীভাবে ডেভলপাররা কোড অনুসন্ধান করে: একটি কেস স্টাডি] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
- [২০১:: বোর্গ, ওমেগা এবং কুবারনেটস] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
From 60e18d4f5a47c83aa3961f73beead3c47bfc47a1 Mon Sep 17 00:00:00 2001
From: Shaon Sikder
Date: Mon, 1 Jan 2024 12:46:07 +0600
Subject: [PATCH 115/173] Updated README-bn(Typo, Formatting, linking
issues).md
---
translations/README-bn.md | 528 +++++++++++++++++++-------------------
1 file changed, 264 insertions(+), 264 deletions(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index d07e04c787..58de395e36 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -4,7 +4,7 @@
> তবে এটি আজ আপনি যে বৃহত তালিকা দেখতে পাচ্ছেন তাতে রুপ নিয়েছে এই শিক্ষা পরিকল্পনাটি পেরিয়ে যাওয়ার পরে, [আমি নিয়োগ পেয়েছি
> অ্যামাজনে সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার হিসাবে](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
>
-> **খেয়াল করুন** আপনাকে সম্ভবত আমার মতো পড়াশোনা করতে হবে না। যাইহোক, আপনার যা কিছু প্রয়োজন তা এখানেই।
+>**খেয়াল করুন**আপনাকে সম্ভবত আমার মতো পড়াশোনা করতে হবে না। যাইহোক, আপনার যা কিছু প্রয়োজন তা এখানেই।
>
> আমি বেশ কয়েক মাস ধরে প্রতিদিন প্রায় ৮-১২ ঘন্টা অধ্যয়ন করেছি। এটি আমার গল্প: [গুগল সাক্ষাত্কারের জন্য আমি কেন ৮ মাস পূর্ণ-সময় অধ্যয়ন করেছি](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
@@ -12,7 +12,7 @@
> যার মধ্যে থাকবে বৃহৎ প্রযুক্তি কোম্পানি যেমন: অ্যামাজন, ফেসবুক, গুগল বা মাইক্রোসফ্ট।
>
-> *আপনার জন্য শুভকামনা!*
+>*আপনার জন্য শুভকামনা!*
অনুবাদ:
@@ -67,11 +67,11 @@
এটি আমার বহু মাসের অধ্যয়ন পরিকল্পনা যার মাধ্যমে কোনো বড় প্রতিষ্ঠানের সফটওয়্যার ইঞ্জিনিয়ারের কাজে (স্ব-শিক্ষিত, কোনও সিএস ডিগ্রি ছাড়া) যোগ দেওয়া সম্ভব।
-**গুরুত্বপূর্নঃ**
+**গুরুত্বপূর্নঃ**
-* প্রোগ্রামিং এ সামান্য অভিজ্ঞতা (ভ্যারিয়েবলস,লুপ্স,মেথড/ফাংশন,ইত্যাদি)
-* ধৈর্য
-* সময়
+*প্রোগ্রামিং এ সামান্য অভিজ্ঞতা (ভ্যারিয়েবলস,লুপ্স,মেথড/ফাংশন,ইত্যাদি)
+*ধৈর্য
+*সময়
বিজ্ঞপ্তি এটি সফ্টওয়্যার ইঞ্জিনিয়ারিং এর অধ্যয়ন পরিকল্পনা, ওয়েব ডেভলপমেন্ট এর নয়। বড় বড় সফ্টওয়্যার কোম্পানি যেমন গুগল, অ্যামাজন,ফেসবুক এবং মাইক্রোসফ্ট সফ্টওয়্যার ইঞ্জিনিয়ারিং কে ওয়েব ডেভলপমেন্ট থেকে আলাদা হিসাবে দেখে। যেমন অ্যামাজন এর ফ্রন্ট এন্ড ইঞ্জিনিয়ার (এফইই) এবং সফ্টওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার (এফডিই) দুই ধরনের ইঞ্জিনিয়ার আছে। এই দুইটি আলাদা চাকরি এবং এদের ইন্টারভিউ ও আলাদা ধরনের হবে। কারন এই দুই ধরনের পেশার জন্য আলাদা দক্ষতা প্রয়োজন। এই প্রতিষ্ঠান গুলো সফ্টওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ার এর চাকরির জন্য কম্পিউটার সাইন্স এর জ্ঞান হাকা আবশ্যক মনে করে।
@@ -102,14 +102,14 @@
- [অ্যালগোরিদমিক জটিলতা / বিগ-ও / অ্যাসিম্পটোটিক বিশ্লেষণ](#অ্যালগোরিদমিক-জটিলতা-বিগ-ও-অ্যাসিপোটোটিক-বিশ্লেষণ)
- [ডেটা স্ট্রাকচার](#ডেটা-স্ট্রাকচার)
- -[অ্যারে](#অ্যারে)
- -[লিঙ্কলিস্ট](#লিঙ্কযুক্ত-তালিকাগুলি)
- -[স্ট্যাক](#স্ট্যাক)
- -[কিউ](#সারি)
- -[হ্যাশ টেবিল](#হ্যাশ-টেবিল)
+ - [অ্যারে](#অ্যারে)
+ - [লিঙ্কলিস্ট](#লিঙ্কযুক্ত-তালিকাগুলি)
+ - [স্ট্যাক](#স্ট্যাক)
+ - [কিউ](#সারি)
+ - [হ্যাশ টেবিল](#হ্যাশ-টেবিল)
- [আরও জ্ঞান](#আরও-জ্ঞান)
- -[বাইনারি সার্চ](#বাইনারি-অনুসন্ধান)
- -[বিটওয়াইজ অপারেশন](#বিটওয়াইস-অপারেশন)
+ - [বাইনারি সার্চ](#বাইনারি-অনুসন্ধান)
+ - [বিটওয়াইজ অপারেশন](#বিটওয়াইস-অপারেশন)
- [ট্রি](#গাছ)
- [ট্রি-নোট এবং পটভূমি](#গাছ-নোট-পটভূমি)
- [বাইনারি সার্চ গাছ: বিএসটি](#বাইনারি-অনুসন্ধান-গাছ-বুস্ট)
@@ -161,7 +161,7 @@
### ঐচ্ছিক অতিরিক্ত বিষয় ও রিসোর্স
--[অধিক বই](#অতিরিক্ত-বই)
+- [অধিক বই](#অতিরিক্ত-বই)
- [সিস্টেম ডিজাইন, স্কেলাবিলিটি, ডেটা হ্যান্ডলিং](#সিস্টেম-ডিজাইন-স্কেলাবিলিটি-ডেটা-হ্যান্ডলিং) (যদি আপনার 4+ বছরের অভিজ্ঞতা থাকে)
- [অধিক শিক্ষা](#অতিরিক্ত-শিক্ষণ)
- [কম্পাইলার্স](#সংকলক)
@@ -176,7 +176,7 @@
- [গারবেজ কালেকশন](#জঞ্জাল-সংগ্রহ)
- [প্যারালাল প্রোগ্রামিং](#সমান্তরাল-প্রোগ্রামিং)
- [মেসেজিং, সিরিয়ালাইজেশন, এবং কিউইং সিস্টেম](#মেসেজিং-সিরিয়ালাইজেশন-এবং-কুইউং-সিস্টেম)
- - [এ *](#ক)
+ - [এ*](#ক)
- [ফাস্ট ফুরিয়ার ট্রান্সফর্ম](#ফাস্ট-ফুরিয়ার-ট্রান্সফর্ম)
- [ব্লুম ফিল্টার](#ব্লুম-ফিল্টার)
- [হাইপারলগলগ](#হাইপারলগলগ)
@@ -407,7 +407,7 @@ https://github.com/jwasham/coding-interview-university
- [ফ্ল্যাশকার্ডস সাইটের রিপো](https://github.com/jwasham/computer-science-flash-cards)
-**আমি আমার ফ্ল্যাশকার্ডগুলি ব্যবহার করার পরামর্শ দিই না।** অনেকগুলি আছে এবং তাদের মধ্যে অনেকগুলি তুচ্ছ বিষয় যা আপনার প্রয়োজন নেই.
+**আমি আমার ফ্ল্যাশকার্ডগুলি ব্যবহার করার পরামর্শ দিই না।**অনেকগুলি আছে এবং তাদের মধ্যে অনেকগুলি তুচ্ছ বিষয় যা আপনার প্রয়োজন নেই.
তবু যদি আপনি আপনি আমার কথা শুনতে নাহ চান। এখানে ফ্ল্যাশ কার্ড গুলি পাবেন:
- [আমার ফ্ল্যাশ কার্ডের ডাটাবেস (পুরাতন-1200 কার্ড)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
@@ -415,7 +415,7 @@ https://github.com/jwasham/coding-interview-university
মনে রাখবেন আমি ওভারবোর্ডে গিয়েছিলাম এবং সমাবেশগুলির ভাষা এবং পাইথন ট্রিভিয়া থেকে শুরু করে মেশিন লার্নিং এবং পরিসংখ্যানের সমস্ত কিছুর জন্য কার্ড রয়েছে। যা প্রয়োজন তার জন্য এটি অনেক বেশি।
-**ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য:** আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
+**ফ্ল্যাশকার্ডগুলিতে দ্রষ্টব্য:**আপনি যখন প্রথমবার উত্তরটি জানেন তখন তা চিহ্নিত হিসাবে চিহ্নিত করবেন না। আপনাকে দেখতে হবে
একই কার্ড এবং এটি জেনে রাখার আগে বেশ কয়েকবার সঠিক উত্তর দিন। পুনরাবৃত্তি সেই জ্ঞানকে আরও গভীর করে দেবে
আপনার মস্তিষ্ক.
@@ -504,7 +504,7 @@ https://github.com/jwasham/coding-interview-university
কিছু বিষয় একদিন নেয়, এবং কিছুতে একাধিক দিন সময় লাগবে। কিছু বাস্তবায়নের কিছুই না দিয়ে কেবল শিখছে।
প্রতিদিন আমি নীচের তালিকা থেকে একটি বিষয় নিয়ে যাই, সেই বিষয় সম্পর্কে ভিডিও দেখি এবং একটি বাস্তবায়ন এখানে লিখি:
-- সি-স্ট্রাকস এবং ফাংশনগুলি ব্যবহার করে যা স্ট্রাক * এবং আরজ হিসাবে অন্য কোনও কিছু নেয়।
+- সি-স্ট্রাকস এবং ফাংশনগুলি ব্যবহার করে যা স্ট্রাক*এবং আরজ হিসাবে অন্য কোনও কিছু নেয়।
- সি ++-অন্তর্নির্মিত প্রকারগুলি ব্যবহার না করে
- সি ++-অন্তর্নির্মিত প্রকারগুলি যেমন STL এর std :: লিঙ্কযুক্ত তালিকার জন্য তালিকা ব্যবহার করে
- পাইথন-অন্তর্নির্মিত প্রকারগুলি (পাইথনের অনুশীলন চালিয়ে যেতে) ব্যবহার করে
@@ -534,14 +534,14 @@ https://github.com/jwasham/coding-interview-university
<সংশ্লেষ> পূর্বশর্ত জ্ঞান << সংক্ষিপ্ত>
-- **সি** শিখুন
- -সি সর্বত্র আছে। আপনি অধ্যয়নরত অবস্থায় আপনি বই, বক্তৃতা, ভিডিও, * সর্বত্র * এর উদাহরণ দেখতে পাবেন।
+- **সি**শিখুন
+ -সি সর্বত্র আছে। আপনি অধ্যয়নরত অবস্থায় আপনি বই, বক্তৃতা, ভিডিও,*সর্বত্র*এর উদাহরণ দেখতে পাবেন।
- [সি প্রোগ্রামিং ল্যাঙ্গুয়েজ, খণ্ড ২] (https://www.amazon.com/Programming-Language-ব্রায়ান-ডব্লিউ-কর্নিগান/dp/0131103628)
-এটি একটি সংক্ষিপ্ত বই, তবে এটি আপনাকে সি ভাষায় দুর্দান্ত হ্যান্ডেল দেবে এবং যদি আপনি এটি কিছুটা অনুশীলন করেন
আপনি দ্রুত দক্ষ হয়ে উঠবেন। সি বোঝা আপনাকে প্রোগ্রাম এবং মেমরি কীভাবে কাজ করে তা বুঝতে সহায়তা করে।
- -[প্রশ্নের উত্তর] (https://github.com/lekkas/c-algorithms)
+ - [প্রশ্নের উত্তর] (https://github.com/lekkas/c-algorithms)
-- **কম্পিউটার কীভাবে কোনও প্রোগ্রাম প্রক্রিয়া করে:**
+- **কম্পিউটার কীভাবে কোনও প্রোগ্রাম প্রক্রিয়া করে:**
- [সিপিইউ কীভাবে একটি প্রোগ্রাম (ভিডিও) চালায়]] (https://www.youtube.com/watch?v=XM4lGflQFvA)
- [কম্পিউটারগুলি কীভাবে গণনা করে-ALU (ভিডিও)] (https://youtu.be/1I5ZMmrOfnA)
- [নিবন্ধসমূহ এবং র্যাম (ভিডিও)] (https://youtu.be/fpnE6UAfbtU)
@@ -613,7 +613,7 @@ https://github.com/jwasham/coding-interview-university
আপনার বাড়িতে একটি হোয়াইটবোর্ড না থাকলে, একটি আর্ট স্টোর থেকে একটি বড় অঙ্কন প্যাড নিন। আপনি সোফায় বসে অনুশীলন করতে পারেন।
এটি আমার "সোফা হোয়াইটবোর্ড"। আমি শুধু স্কেলের জন্য ফটোতে কলম যোগ করেছি। যদি আপনি একটি কলম ব্যবহার করেন, আপনি মুছে দিতে পারেন.
-দ্রুত এলোমেলো হয়ে যায়। **আমি একটি পেন্সিল এবং ইরেজার ব্যবহার করি।**
+দ্রুত এলোমেলো হয়ে যায়।**আমি একটি পেন্সিল এবং ইরেজার ব্যবহার করি।**

@@ -713,7 +713,7 @@ https://github.com/jwasham/coding-interview-university
- O(n) to insert/remove elsewhere
- [ ] Space
- contiguous in memory, so proximity helps performance
- - space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
+ - space needed = (array capacity, which is >= n)*size of item, but even if 2n, still O(n)
- ### লিঙ্কড লিস্ট
- [ ] বিবরণ:
@@ -790,8 +790,8 @@ https://github.com/jwasham/coding-interview-university
- [ডেটা স্ট্রাকচার (ভিডিও)] (https://www.coursera.org/learn/data-structures/home/week/3)
- [ফোন বুক সমস্যা (ভিডিও)] (https://www.coursera.org/learn/data-structures/ নির্বাচন / NYZZP/ iPhone-book-সমস্যা)
- হ্যাশ টেবিল বিতরণ:
- -[ড্রপবক্সে তাত্ক্ষণিক আপলোড এবং স্টোরেজ অপ্টিমাইজেশন (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-stores-optimization-in-rodbox)
- -[বিতরণ করা হ্যাশ টেবিলগুলি (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributes-hash-tables)
+ - [ড্রপবক্সে তাত্ক্ষণিক আপলোড এবং স্টোরেজ অপ্টিমাইজেশন (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-stores-optimization-in-rodbox)
+ - [বিতরণ করা হ্যাশ টেবিলগুলি (ভিডিও)] (https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributes-hash-tables)
- লিনিয়ার প্রোব ব্যবহার করে অ্যারে প্রয়োগ করুন
-হ্যাশ (কে, মি)-মি হ্যাশ টেবিলের আকার
@@ -838,7 +838,7 @@ https://github.com/jwasham/coding-interview-university
- [32 বিট পূর্ণসংখ্যায় সেট বিটের সংখ্যা কীভাবে গণনা করবেন] (http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-િટ-in-a-32-বিট-পূর্ণসংখ্যা)
- পরের পাওয়ার 2 এর রাউন্ড:
- [দু'জনের পরের শক্তিতে রাউন্ড আপ] (https://bit.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
- -[ অদলবদল মান:
+ - [ অদলবদল মান:
- [অদলবদল (https://bit.stephan-brumme.com/swap.html)
- নিখুঁত মান:
- [নিখুঁত পূর্ণসংখ্যার] (https://bit.stephan-brumme.com/absInteger.html)
@@ -894,7 +894,7 @@ https://github.com/jwasham/coding-interview-university
- get_node_count // সঞ্চিত মানের গণনা পান
- মুদ্রণ_মূল্য // গাছের মানগুলি ন্যূনতম থেকে সর্বোচ্চ পর্যন্ত মুদ্রণ করে
- মোছা_ট্রি
- -[ is_in_tree // টি দেওয়া যদি গাছটিতে থাকে তবে তা সত্য হয় returns
+ - [ is_in_tree // টি দেওয়া যদি গাছটিতে থাকে তবে তা সত্য হয় returns
- get_height // নোডগুলিতে উচ্চতা ফেরায় (একক নোডের উচ্চতা 1)
- get_min // গাছে সঞ্চিত সর্বনিম্ন মান প্রদান করে
- get_max // গাছের মধ্যে সঞ্চিত সর্বোচ্চ মান প্রদান করে returns
@@ -939,17 +939,17 @@ https://github.com/jwasham/coding-interview-university
বাছাইকরণ
--[ ] নোট:
+- [ ] নোট:
- প্রকারভেদ প্রয়োগ করুন এবং সর্বোত্তম কেস / নিকৃষ্টতম কেস, প্রত্যেকের গড় জটিলতা জানেন:
-কোনও বুদ্বুদ বাছাই নয়-এটি ভয়ানক-হে (n ^ 2), যখন এন <= 16 বাদে
- অ্যালগরিদম বাছাইয়ের স্থায়িত্ব ("কুইকসোর্ট স্থিতিশীল?")
- -[অ্যালগোরিদম স্থিতিশীলতা বাছাই করা হচ্ছে) (https://en.wikedia.org/wiki/Sorting_algorithm#Stability)
- -[অ্যালগরিদমগুলি বাছাইয়ে স্থিতিশীলতা] (http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
- -[অ্যালগোরিদম বাছাইয়ে স্থায়িত্ব] (http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
- -[অ্যালগরিদম বাছাই-স্থিতিশীলতা] (http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+ - [অ্যালগোরিদম স্থিতিশীলতা বাছাই করা হচ্ছে) (https://en.wikedia.org/wiki/Sorting_algorithm#Stability)
+ - [অ্যালগরিদমগুলি বাছাইয়ে স্থিতিশীলতা] (http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+ - [অ্যালগোরিদম বাছাইয়ে স্থায়িত্ব] (http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+ - [অ্যালগরিদম বাছাই-স্থিতিশীলতা] (http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
- লিঙ্কযুক্ত তালিকায় কোন অ্যালগরিদম ব্যবহার করা যেতে পারে? অ্যারেতে কোনটি? উভয় উপর?
-আমি একটি লিঙ্কযুক্ত তালিকা বাছাইয়ের প্রস্তাব দেব না, তবে মার্জ সারণি করণীয়।
- -[লিঙ্কযুক্ত তালিকার জন্য বাছাই করুন মার্জ করুন] (http://www.geeksforgeeks.org/ নিমেষে-অনুসারে-লিঙ্কড-তালিকা /)
+ - [লিঙ্কযুক্ত তালিকার জন্য বাছাই করুন মার্জ করুন] (http://www.geeksforgeeks.org/ নিমেষে-অনুসারে-লিঙ্কড-তালিকা /)
- হিপসোর্টের জন্য, উপরে হ্যাপের ডেটা কাঠামোটি দেখুন। হিপ সাজানো দুর্দান্ত তবে স্থিতিশীল নয়।
@@ -1094,7 +1094,7 @@ https://github.com/jwasham/coding-interview-university
আরও জ্ঞান << সংক্ষিপ্ত>
--### পুনরাবৃত্তি
+- ### পুনরাবৃত্তি
- পুনরাবৃত্তি ও ব্যাকট্র্যাকিংয়ের উপর স্ট্যানফোর্ডের বক্তৃতা:
- [বক্তৃতা 8 | প্রোগ্রামিং বিমূর্তকরণ (ভিডিও)] (https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- [বক্তৃতা 9 | প্রোগ্রামিং বিমূর্তি (ভিডিও)] (https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
@@ -1105,7 +1105,7 @@ https://github.com/jwasham/coding-interview-university
- [লেজ পুনরাবৃত্তি কি এটি এত খারাপ কেন?] (Https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- [টেল রিকার্সন (ভিডিও)] (https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
--### ডায়নামিক প্রোগ্রামিং
+- ### ডায়নামিক প্রোগ্রামিং
- আপনি সম্ভবত আপনার সাক্ষাত্কারে কোনও গতিশীল প্রোগ্রামিং সমস্যা দেখতে পাবেন না, তবে ডায়নামিক প্রোগ্রামিংয়ের প্রার্থী হিসাবে কোনও সমস্যাটি স্বীকৃতি দেওয়ার পক্ষে এটি মূল্যবান।
- এই বিষয়টি বেশ কঠিন হতে পারে, কারণ প্রতিটি ডিপি দ্রবণীয় সমস্যাটিকে অবশ্যই পুনরাবৃত্তির সম্পর্ক হিসাবে সংজ্ঞায়িত করা উচিত এবং এটির সাথে আসাটি জটিল হতে পারে।
- আমি জড়িত প্যাটার্ন সম্পর্কে দৃ understanding় ধারণা না পাওয়া পর্যন্ত আমি ডিপি সমস্যার অনেক উদাহরণ দেখার পরামর্শ দিই।
@@ -1135,22 +1135,22 @@ https://github.com/jwasham/coding-interview-university
- ptionচ্ছিক: ইউএমএল ২.০ সিরিজ (ভিডিও)] (https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- অবজেক্ট-ওরিয়েন্টেড সফটওয়্যার ইঞ্জিনিয়ারিং: ইউএমএল এবং জাভা ব্যবহার করে সফটওয়্যার ডেভ (21 টি ভিডিও):
-আপনার যদি OO এবং OO ডিজাইনের অনুশীলনগুলির দুর্দান্ত উপলব্ধি থাকে তবে এড়িয়ে যেতে পারেন।
- -[ওওএসই: ইউএমএল এবং জাভা ব্যবহার করে সফটওয়্যার ডেভ (ভিডিও)] (https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+ - [ওওএসই: ইউএমএল এবং জাভা ব্যবহার করে সফটওয়্যার ডেভ (ভিডিও)] (https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- সলিড ওওপি নীতিগুলি:
- [বব মার্টিন সলিউড অবজেক্ট অরিয়েন্টেড অ্যান্ড এগ্রিল ডিজাইনের নীতি (ভিডিও)] (https://www.youtube.com/watch?v=TMuno5RZNeE)
- [সলাইড নীতি (ভিডিও)] (https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- - এস-[একক দায়িত্বের নীতি] (http://www.oodesign.com/single-দায়িত্বজ্ঞাপন-প্রিন্সিপাল html) | [প্রতিটি বস্তুর একক দায়িত্ব] (http://www.javacodegeeks.com/2011/11/solid-single-দায়বদ্ধতা-নীতি-নীতি html)
- -[আরও স্বাদ] (https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - ও-[ওপেন / ক্লোজড অধ্যক্ষ] (http://www.oodesign.com/open-close-prصولle.html) | [উত্পাদন স্তরে অবজেক্টগুলি এক্সটেনশনের জন্য প্রস্তুত তবে পরিবর্তনের জন্য নয়] (https://en.wikedia.org/wiki/Open/closed_prصول)
- -[আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUTNThhGG1Y&hzGiY)
- - এল-[লিসকোভ সাবস্টিটিউশন অধ্যক্ষ] (http://www.oodesign.com/liskov-s-substedia-prصولle.html) | [বেস ক্লাস এবং ডারাইভড ক্লাস 'আইএস এ' প্রিন্সিপাল অনুসরণ করে] (http://stackoverflow.com/questions/56860/ কি-is-the-liskov-subst येशू-প্রিন্সিপাল)
- -[আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtTDhhenU5ZZll55)
- - আমি-[ইন্টারফেস বিভাজন নীতি] (http://www.oodesign.com/interface-segregation-prصولle.html) | ক্লায়েন্টরা তাদের ব্যবহার না করে এমন ইন্টারফেস প্রয়োগ করতে বাধ্য করা উচিত নয়
- -[5 মিনিটের মধ্যে ইন্টারফেস পৃথককরণের নীতি (ভিডিও)] (https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- -[আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5i&jdc5i&jdc5i)
- - ডি-[নির্ভরতা বিপরীতার নীতি] (http://www.oodesign.com/d dependency-inversion-prصولle.html) | নির্ভরতা হ্রাস করুন বস্তুর সংমিশ্রণে।
- -[নির্ভরতা বিপরীতকরণের মূলনীতি কেন এবং কেন এটি গুরুত্বপূর্ণ] (http://stackoverflow.com/questions/62539/ কি-এটি-নির্ভরতা-রূপান্তর-নীতি-এবং-কেন-কেন-গুরুত্বপূর্ণ-গুরুত্বপূর্ণ)
- -[আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjhhddlljrhmdlljrhmdlljdlmljrlm पर
+ - এস- [একক দায়িত্বের নীতি] (http://www.oodesign.com/single-দায়িত্বজ্ঞাপন-প্রিন্সিপাল html) | [প্রতিটি বস্তুর একক দায়িত্ব] (http://www.javacodegeeks.com/2011/11/solid-single-দায়বদ্ধতা-নীতি-নীতি html)
+ - [আরও স্বাদ] (https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - ও- [ওপেন / ক্লোজড অধ্যক্ষ] (http://www.oodesign.com/open-close-prصولle.html) | [উত্পাদন স্তরে অবজেক্টগুলি এক্সটেনশনের জন্য প্রস্তুত তবে পরিবর্তনের জন্য নয়] (https://en.wikedia.org/wiki/Open/closed_prصول)
+ - [আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUTNThhGG1Y&hzGiY)
+ - এল- [লিসকোভ সাবস্টিটিউশন অধ্যক্ষ] (http://www.oodesign.com/liskov-s-substedia-prصولle.html) | [বেস ক্লাস এবং ডারাইভড ক্লাস 'আইএস এ' প্রিন্সিপাল অনুসরণ করে] (http://stackoverflow.com/questions/56860/ কি-is-the-liskov-subst येशू-প্রিন্সিপাল)
+ - [আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtTDhhenU5ZZll55)
+ - আমি- [ইন্টারফেস বিভাজন নীতি] (http://www.oodesign.com/interface-segregation-prصولle.html) | ক্লায়েন্টরা তাদের ব্যবহার না করে এমন ইন্টারফেস প্রয়োগ করতে বাধ্য করা উচিত নয়
+ - [5 মিনিটের মধ্যে ইন্টারফেস পৃথককরণের নীতি (ভিডিও)] (https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5i&jdc5i&jdc5i)
+ - ডি- [নির্ভরতা বিপরীতার নীতি] (http://www.oodesign.com/d dependency-inversion-prصولle.html) | নির্ভরতা হ্রাস করুন বস্তুর সংমিশ্রণে।
+ - [নির্ভরতা বিপরীতকরণের মূলনীতি কেন এবং কেন এটি গুরুত্বপূর্ণ] (http://stackoverflow.com/questions/62539/ কি-এটি-নির্ভরতা-রূপান্তর-নীতি-এবং-কেন-কেন-গুরুত্বপূর্ণ-গুরুত্বপূর্ণ)
+ - [আরও স্বাদ] (http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BWCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjhhddlljrhmdlljrhmdlljdlmljrlm पर
- ### নকশা নিদর্শন
- [কুইক ইউএমএল পর্যালোচনা (ভিডিও)] (https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
@@ -1210,10 +1210,10 @@ https://github.com/jwasham/coding-interview-university
- [জটিলতা: আনুমানিক অ্যালগরিদম (ভিডিও)] (https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [জটিলতা: স্থির-প্যারামিটার অ্যালগরিদম (ভিডিও)] (https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-পিটার নরভিগ বিক্রয়কর্মী সমস্যার ভ্রমণের নিকটতম সর্বোত্তম সমাধানগুলি নিয়ে আলোচনা করেছেন:
- -[বৃহস্পতি নোটবুক] (http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
+ - [বৃহস্পতি নোটবুক] (http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
-সিএলআরএসে 1048-1140 পৃষ্ঠা রয়েছে যদি তা থাকে।
--###ক্যাচ
+- ### ক্যাচ
- এলআরইউ ক্যাশে:
- [এলআরইউ ক্যাশে যাদু (গুগল দেবের 100 দিন) (ভিডিও)] (https://www.youtube.com/watch?v=R5ON3iwx78M)
- [এলআরইউ বাস্তবায়ন করছে (ভিডিও)] (https://www.youtube.com/watch?v=bq6N7Ym81iI)
@@ -1222,10 +1222,10 @@ https://github.com/jwasham/coding-interview-university
- [এমআইটি 6.004 এল 15: মেমোরি হায়ারার্কি (ভিডিও)] (https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- [এমআইটি 00.০০৪ এল এল: ক্যাশে ইস্যু (ভিডিও)] (https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
--###প্রক্রিয়া এবং থ্রেডস
+- ### প্রক্রিয়া এবং থ্রেডস
- কম্পিউটার বিজ্ঞান 162-অপারেটিং সিস্টেম (25 টি ভিডিও):
- প্রক্রিয়া এবং থ্রেডগুলির জন্য ভিডিওগুলি 1-11 দেখুন
- -[অপারেটিং সিস্টেমস এবং সিস্টেম প্রোগ্রামিং (ভিডিও)] (https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [অপারেটিং সিস্টেমস এবং সিস্টেম প্রোগ্রামিং (ভিডিও)] (https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- [প্রক্রিয়া এবং একটি থ্রেডের মধ্যে পার্থক্য কী?] (Https://www.quora.com/What-is-the-differences-between-a-process-and-a-thread)
- কভার:
- প্রক্রিয়াগুলি, থ্রেডগুলি, সমঝোতার বিষয়গুলি
@@ -1254,7 +1254,7 @@ https://github.com/jwasham/coding-interview-university
- [থ্রেডগুলিতে সংক্ষিপ্ত সিরিজ] (https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- [পাইথন থ্রেডস] (https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- [পাইথন জিআইএল বোঝা (২০১০)] (https://www.youtube.com/watch?v=Obt-vMVdM8s)
- -[রেফারেন্স] (http://www.dabeaz.com/GIL)
+ - [রেফারেন্স] (http://www.dabeaz.com/GIL)
- [ডেভিড বেজলি-গ্রাউন্ড আপ থেকে পাইথন কনক্যুরન્સી: লাইভ!-পাইকন 2015] (https://www.youtube.com/watch?v=MCs5OvhV9S4)
- [মূল ডেভিড বেজলি-আগ্রহের বিষয় (পাইথন অ্যাসিনসিও)] (https://www.youtube.com/watch?v=ZzfHjytDceU)
- [পাইথনে নিবিড়] (https://www.youtube.com/watch?v=0zaPs8OtyKY)
@@ -1268,7 +1268,7 @@ https://github.com/jwasham/coding-interview-university
- [জেমস বাচ (ভিডিও) এর সাথে চতুর সফ্টওয়্যার পরীক্ষা করা] (https://www.youtube.com/watch?v=SAhJf36_u5U)
- [সফটওয়্যার টেস্টিং (ভিডিও) এ জেমস বাচের লিখিত বক্তব্য খুলুন] (https://www.youtube.com/watch?v=ILkT_HV9DVU)
- [স্টিভ ফ্রিম্যান-টেস্ট-চালিত বিকাশ (এটি আমরা বোঝাতে চাইনি) (ভিডিও)] (https://vimeo.com/83960706)
- -[স্লাইডস] (http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDe વિકાસmentThatNotWhatWeMeant.pdf)
+ - [স্লাইডস] (http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDe વિકાસmentThatNotWhatWeMeant.pdf)
- [টিডিডি মারা গেছে। দীর্ঘ লাইভ টেস্টিং।] (Http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
- [টিডিডি মারা গেছে? (ভিডিও)] (https://www.youtube.com/watch?v=z9quxZsLcfo)
- [ভিডিও সিরিজ (152 টি ভিডিও)-সবার প্রয়োজন নেই (ভিডিও)] (https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
@@ -1328,7 +1328,7 @@ https://github.com/jwasham/coding-interview-university
- প্রথমার্ধ যথেষ্ট।
- ### নেটওয়ার্কিং
- - **আপনার যদি নেটওয়ার্কিংয়ের অভিজ্ঞতা থাকে বা কোনও নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে প্রশ্নগুলি আশা করুন**
+ -**আপনার যদি নেটওয়ার্কিংয়ের অভিজ্ঞতা থাকে বা কোনও নির্ভরযোগ্যতা প্রকৌশলী বা অপারেশন ইঞ্জিনিয়ার হতে চান তবে প্রশ্নগুলি আশা করুন**
-অন্যথায়, এটি জেনে রাখা ভাল
- [খান একাডেমি] (https://www.khanacademy.org/computing/computer-science/internet-intro)
- [ইউডিপি এবং টিসিপি: পরিবহন প্রোটোকলের তুলনা (ভিডিও)] (https://www.youtube.com/watch?v=Vdc8TCESIg8)
@@ -1369,7 +1369,7 @@ https://github.com/jwasham/coding-interview-university
- সরলতা এবং দৃust়তা
- বাণিজ্য
- কর্মক্ষমতা বিশ্লেষণ এবং অপ্টিমাইজেশন
-- **এখানে শুরু করুন**: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
+- **এখানে শুরু করুন**: [সিস্টেম ডিজাইন প্রাইমার] (https://github.com/donnemartin/system-design-primer)
- [হায়ারডিনটেক থেকে সিস্টেম ডিজাইন] (http://www.hiredintech.com/system-design/)
- [আমি কীভাবে কোনও প্রযুক্তিগত ইনভারভিউতে নকশার প্রশ্নের উত্তর দিতে প্রস্তুত করব?] (Https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview? redirected_qid = 1500023)
- [সিস্টেম ডিজাইনের সাক্ষাত্কারের আগে আপনার যে 8 টি বিষয়গুলি জানতে হবে]] (http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system ডিজাইন-সাক্ষাৎকার /)
@@ -1382,8 +1382,8 @@ https://github.com/jwasham/coding-interview-university
- [ডাটাসেন্টারস জুড়ে লেনদেন (ভিডিও)] (https://www.youtube.com/watch?v=srOgpXECblk)
- [সিএপি উপপাদ্যের একটি সরল ইংরেজী ভূমিকা] (http://ksat.me/a-plain-english-intr پيداوار-to-cap-theorem/)
- সম্মতিসূচক অ্যালগরিদম:
- - প্যাক্সোস-[প্যাকসোস চুক্তি-কম্পিউটারফিলি (ভিডিও)] (https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - ভেলা-[রাফট বিতরণ সম্মতি অ্যালগরিদমের একটি পরিচিতি (ভিডিও)] (https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - প্যাক্সোস- [প্যাকসোস চুক্তি-কম্পিউটারফিলি (ভিডিও)] (https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - ভেলা- [রাফট বিতরণ সম্মতি অ্যালগরিদমের একটি পরিচিতি (ভিডিও)] (https://www.youtube.com/watch?v=P9Ydif5_qvE)
- [সহজেই পঠনযোগ্য কাগজ] (https://raft.github.io/)
- [ইনফোগ্রাফিক] (http://thesecretlivesofdata.com/raft/)
- [ধারাবাহিকভাবে হ্যাশিং] (http://www.tom-e-white.com/2007/11/cons Contin-hashing.html)
@@ -1392,14 +1392,14 @@ https://github.com/jwasham/coding-interview-university
-আপনার এসবের দরকার নেই। আপনার আগ্রহের কিছু বেছে নিন।
- [দুর্দান্ত ওভারভিউ (ভিডিও)] (https://www.youtube.com/watch?v=-W9F__D3oY4)
- সংক্ষিপ্ত সিরিজ:
- -[ক্লোনস] (http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- -[ডাটাবেস] (http://www.lecloud.net/post/7994751381/scalability-জন্য-ডামি-পার্ট ২--ডেটাবেস)
- -[ক্যাশে] (http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- -[অ্যাসিক্রোনিজম] (http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ক্লোনস] (http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [ডাটাবেস] (http://www.lecloud.net/post/7994751381/scalability-জন্য-ডামি-পার্ট ২--ডেটাবেস)
+ - [ক্যাশে] (http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [অ্যাসিক্রোনিজম] (http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- [স্কেলযোগ্য ওয়েব আর্কিটেকচার এবং বিতরণ সিস্টেমসমূহ] (http://www.aosabook.org/en/distsys.html)
- [বিতরণকৃত কম্পিউটিংয়ের ভুল ব্যাখ্যা] (https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- [প্র্যাকমেটিক প্রোগ্রামিং কৌশল] (http://horicky.blogspot.com/2010/10/scalable-সিস্টেমে-ডিজাইন-পত্রিকা html)
- -[অতিরিক্ত: গুগল প্রেগেল গ্রাফ প্রসেসিং] (http://horicky.blogspot.com/2010/07/google-pregel-راف-প্রসেসিং html)
+ - [অতিরিক্ত: গুগল প্রেগেল গ্রাফ প্রসেসিং] (http://horicky.blogspot.com/2010/07/google-pregel-راف-প্রসেসিং html)
- [জেফ ডিন-গুগল এ বিল্ডিং সফটওয়্যার সিস্টেম এবং পাঠ শিখেছে (ভিডিও)] (https://www.youtube.com/watch?v=modXC5IWTJI)
- [আকারের জন্য আর্কিটেকটিং সিস্টেমের পরিচিতি] (http://lethain.com/intr Productions-to-architecting-সিস্টেমে-for-স্কেল/)
- [অ্যাপ ইঞ্জিন এবং ক্লাউড ডেটাস্টোর (ভিডিও) ব্যবহার করে বিশ্বব্যাপী দর্শকদের কাছে মোবাইল গেমস স্কেলিং]] (https://www.youtube.com/watch?v=9nWyWwY2Onc)
@@ -1409,7 +1409,7 @@ https://github.com/jwasham/coding-interview-university
- [ফেসবুকে স্কেল (2012), "বিলিয়ন ব্যবহারকারীদের জন্য বিল্ডিং" (ভিডিও)] (https://www.youtube.com/watch?v=oodS71YtkGU)
- [লং গেমের জন্য ইঞ্জিনিয়ারিং-অ্যাস্ট্রিড অ্যাটকিনসন কীনোট (ভিডিও)] (https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- [৩০ মিনিটের মধ্যে ইউটিউব স্কেলিবিলিটি পাঠের 7 বছরের বছর] (http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html )
- -[ভিডিও] (https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ভিডিও] (https://www.youtube.com/watch?v=G-lGCC4KKok)
- [পেপাল কীভাবে দৈনিক মাত্র 8 ভিএম ব্যবহার করে বিলিয়ন বিলিয়ন লেনদেনের পরিমাণকে বাড়িয়েছে] (http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transferences-daily-using-ju.html)
- [বৃহত্তর ডেটাসেটে নকলগুলি কীভাবে সরানো যায়] (https://blog.clevertap.com/how-to-remove-d નકલ-in-large-datasets/)
- [জোন কাউই (ভিডিও) এর সাথে এটসির স্কেল এবং ইঞ্জিনিয়ারিং সংস্কৃতির ভিতরে এক ঝলক দেখুন] (https://www.youtube.com/watch?v=3vV4YiqKm1o)
@@ -1489,7 +1489,7 @@ https://github.com/jwasham/coding-interview-university
আপনি প্রায়শই একটি রিফ্রেশার চাইলে এটি দুর্দান্ত।
- শর্ট সাবজেক্টের ২-৩ মিনিটের সিরিজ (২৩ টি ভিডিও)
- -[ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+ - [ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (46 টি ভিডিও):
- [ভিডিও](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
@@ -1529,9 +1529,9 @@ https://github.com/jwasham/coding-interview-university
প্রাসঙ্গিক:
--[টপকোডারদের জন্য গণিত] (https://www.topcoder.com / সম্প্রদায় / কমপিটিটিভ-প্রোগ্রামিং / টিউটোরিয়ালস / ম্যাথেমেটিক্সের জন্য-ট্যাপকোডার /)
--[ডায়নামিক প্রোগ্রামিং-নোভাইস থেকে অ্যাডভান্সড] (https://www.topcoder.com/commune/competitive-pogramming/tutorials/dynamic-programming-from-novice-to-advanced/
--[এমআইটি সাক্ষাত্কার উপকরণ] (https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/matorys.php)
+- [টপকোডারদের জন্য গণিত] (https://www.topcoder.com / সম্প্রদায় / কমপিটিটিভ-প্রোগ্রামিং / টিউটোরিয়ালস / ম্যাথেমেটিক্সের জন্য-ট্যাপকোডার /)
+- [ডায়নামিক প্রোগ্রামিং-নোভাইস থেকে অ্যাডভান্সড] (https://www.topcoder.com/commune/competitive-pogramming/tutorials/dynamic-programming-from-novice-to-advanced/
+- [এমআইটি সাক্ষাত্কার উপকরণ] (https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/matorys.php)
**প্রোগ্রামিং সমস্যাগুলি পড়ুন এবং করুন (এই ক্রমে):**
@@ -1556,38 +1556,38 @@ https://github.com/jwasham/coding-interview-university
- [কীভাবে টপকোডার সমস্যার বিবরণটি সংক্রামিত করবেন] (https://www.topcoder.com/commune/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
কোডিং সাক্ষাত্কার প্রশ্ন ভিডিও:
--[আইডিজার (৮৮ টি ভিডিও)] (https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
--[তুষার রায় (৫ টি প্লেলিস্ট)] (https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+- [আইডিজার (৮৮ টি ভিডিও)] (https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [তুষার রায় (৫ টি প্লেলিস্ট)] (https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
চ্যালেঞ্জ সাইটগুলি:
--[লেটকোড] (https://leetcode.com/)
--[টপকোডার] (https://www.topcoder.com/)
--[প্রকল্পের এলিউর (গণিত-কেন্দ্রিক)] (https://projecteuler.net/index.php?section=problems)
--[কোডওয়ারস] (http://www.codewars.com)
--[হ্যাকারআর্থ] (https://www.haakerrearth.com/)
--[হ্যাকারর্যাঙ্ক] (https://www.hackerrank.com/)
--[কোডলিটি] (https://codility.com / প্রোগ্রামার /)
--[ইন্টারভিউকেক] (https://www.interviewcake.com/)
--[গিক্সের জন্য গিগস] (http://www.geeksforgeeks.org/)
--[সাক্ষাত্কার বিট] (https://www.interviewbit.com)
--[স্ফিয়ার অনলাইন জজ (স্পোজ)] (http://www.spoj.com/)
--[কোডেফ] (https://www.codechef.com/)
+- [লেটকোড] (https://leetcode.com/)
+- [টপকোডার] (https://www.topcoder.com/)
+- [প্রকল্পের এলিউর (গণিত-কেন্দ্রিক)] (https://projecteuler.net/index.php?section=problems)
+- [কোডওয়ারস] (http://www.codewars.com)
+- [হ্যাকারআর্থ] (https://www.haakerrearth.com/)
+- [হ্যাকারর্যাঙ্ক] (https://www.hackerrank.com/)
+- [কোডলিটি] (https://codility.com / প্রোগ্রামার /)
+- [ইন্টারভিউকেক] (https://www.interviewcake.com/)
+- [গিক্সের জন্য গিগস] (http://www.geeksforgeeks.org/)
+- [সাক্ষাত্কার বিট] (https://www.interviewbit.com)
+- [স্ফিয়ার অনলাইন জজ (স্পোজ)] (http://www.spoj.com/)
+- [কোডেফ] (https://www.codechef.com/)
চ্যালেঞ্জ রেপো:
--[পাইথনে ইন্টারেক্টিভ কোডিং সাক্ষাত্কারের চ্যালেঞ্জগুলি] (https://github.com/donnemartin/interactive-coding-challenges)
+- [পাইথনে ইন্টারেক্টিভ কোডিং সাক্ষাত্কারের চ্যালেঞ্জগুলি] (https://github.com/donnemartin/interactive-coding-challenges)
মক সাক্ষাত্কার:
--[গেইনলোক.কম: বড় সংস্থাগুলির মক সাক্ষাত্কার]] (http://www.gainlo.co/#!/)-আমি এটি ব্যবহার করেছি এবং এটি আমাকে ফোনের স্ক্রিন এবং সাইটে সাক্ষাত্কারের জন্য শিথিল করতে সহায়তা করেছে।
--[প্র্যাম্প: সহকর্মীদের কাছ থেকে / সাথে মক সাক্ষাত্কার] (https://www.pramp.com/)-অনুশীলন সাক্ষাত্কারগুলির পিয়ার-টু-পিয়ার মডেল
--[রেফড্যাশ: মক সাক্ষাত্কার এবং তাত্ক্ষণিক সাক্ষাত্কার]] (https://refdash.com/)-প্রযুক্তিবিদদের সাথে একাধিক সাক্ষাত্কার এড়িয়ে প্রার্থীদের দ্রুত ট্র্যাক করতে সহায়তা করে।
+- [গেইনলোক.কম: বড় সংস্থাগুলির মক সাক্ষাত্কার]] (http://www.gainlo.co/#!/)-আমি এটি ব্যবহার করেছি এবং এটি আমাকে ফোনের স্ক্রিন এবং সাইটে সাক্ষাত্কারের জন্য শিথিল করতে সহায়তা করেছে।
+- [প্র্যাম্প: সহকর্মীদের কাছ থেকে / সাথে মক সাক্ষাত্কার] (https://www.pramp.com/)-অনুশীলন সাক্ষাত্কারগুলির পিয়ার-টু-পিয়ার মডেল
+- [রেফড্যাশ: মক সাক্ষাত্কার এবং তাত্ক্ষণিক সাক্ষাত্কার]] (https://refdash.com/)-প্রযুক্তিবিদদের সাথে একাধিক সাক্ষাত্কার এড়িয়ে প্রার্থীদের দ্রুত ট্র্যাক করতে সহায়তা করে।
##একবার আপনি সাক্ষাত্কারের কাছাকাছি চলে আসবেন
- কোডিং সাক্ষাত্কার সেট 2 (ভিডিও) ক্র্যাক করা:
- -[কোড সাক্ষাত্কারে ক্র্যাকিং] (https://www.youtube.com/watch?v=4NIb9l3imAo)
- -[কোডিং সাক্ষাত্কার ক্র্যাকিং-ফুলস্ট্যাক স্পিকার সিরিজ] (https://www.youtube.com/watch?v=Eg5-tdAwclo)
+ - [কোড সাক্ষাত্কারে ক্র্যাকিং] (https://www.youtube.com/watch?v=4NIb9l3imAo)
+ - [কোডিং সাক্ষাত্কার ক্র্যাকিং-ফুলস্ট্যাক স্পিকার সিরিজ] (https://www.youtube.com/watch?v=Eg5-tdAwclo)
##আপনার সারসংকলন
@@ -1606,11 +1606,11 @@ https://github.com/jwasham/coding-interview-university
-একটি বিদ্যমান পণ্য উন্নত করার জন্য ধারণা।
-আপনি ব্যক্তিগতভাবে এবং একটি দলের অংশ হিসাবে কীভাবে সেরা কাজ করেন?
-আপনার দক্ষতা বা অভিজ্ঞতাগুলির মধ্যে কোনটি ভূমিকায় সম্পদ হবে এবং কেন?
--[জব x / প্রজেক্ট y] এ আপনি সবচেয়ে বেশি কী উপভোগ করেছেন?
--[জব x / প্রজেক্ট y] এ আপনি যে সবচেয়ে বড় চ্যালেঞ্জের মুখোমুখি হয়েছিলেন?
+- [জব x / প্রজেক্ট y] এ আপনি সবচেয়ে বেশি কী উপভোগ করেছেন?
+- [জব x / প্রজেক্ট y] এ আপনি যে সবচেয়ে বড় চ্যালেঞ্জের মুখোমুখি হয়েছিলেন?
-আপনি [জব এক্স / প্রজেক্ট ওয়াই]-এ সবচেয়ে কঠিন বাগটি কীসের মুখোমুখি হয়েছিল?
-আপনি [জব x / প্রজেক্ট y] এ কী শিখলেন?
--[জব এক্স / প্রজেক্ট ওয়াই] তে আপনি কী আরও ভাল করতে পারতেন?
+- [জব এক্স / প্রজেক্ট ওয়াই] তে আপনি কী আরও ভাল করতে পারতেন?
##সাক্ষাত্কারকারীর জন্য প্রশ্ন রয়েছে
@@ -1636,72 +1636,72 @@ https://github.com/jwasham/coding-interview-university
---
- ************************************************** ************************************************** *
- ************************************************** ************************************************** *
+ *****************************************************************************************************
+ *****************************************************************************************************
এই বিন্দু নীচে সবকিছু Everythingচ্ছিক।
এগুলি অধ্যয়ন করে আপনি আরও সিএস ধারণাগুলির আরও বেশি প্রকাশ পেয়ে যাবেন এবং এর জন্য আরও ভাল প্রস্তুত থাকবেন
কোনও সফ্টওয়্যার ইঞ্জিনিয়ারিং কাজ। আপনি অনেক বেশি গোলাকার সফটওয়্যার ইঞ্জিনিয়ার হবেন।
- ************************************************** ************************************************** *
- ************************************************** ************************************************** *
+ *****************************************************************************************************
+ *****************************************************************************************************
---
-##অতিরিক্ত বই
+## অতিরিক্ত বই
অতিরিক্ত বই স্মৃতি>
--[ইউনিক্স প্রোগ্রামিং পরিবেশ] (https://www.amazon.com/dp/013937681X)
+- [ইউনিক্স প্রোগ্রামিং পরিবেশ] (https://www.amazon.com/dp/013937681X)
-একজন বয়স্ক কিন্তু গুডি
--[লিনাক্স কমান্ড লাইন: একটি সম্পূর্ণ ভূমিকা] (https://www.amazon.com/dp/1593273894/)
+- [লিনাক্স কমান্ড লাইন: একটি সম্পূর্ণ ভূমিকা] (https://www.amazon.com/dp/1593273894/)
-একটি আধুনিক বিকল্প
--[টিসিপি / আইপি সচিত্র সিরিজ] (https://en.wikedia.org/wiki/TCP/IP_ ইলাস্ট্রেটেড)
--[প্রথম নকশার প্রধান শিরোনাম] (https://www.amazon.com/gp/product/0596007124/)
+- [টিসিপি / আইপি সচিত্র সিরিজ] (https://en.wikedia.org/wiki/TCP/IP_ ইলাস্ট্রেটেড)
+- [প্রথম নকশার প্রধান শিরোনাম] (https://www.amazon.com/gp/product/0596007124/)
-নকশা নিদর্শন একটি মৃদু ভূমিকা
--[নকশার প্যাটার্নস: পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টে ডি সফ্টওয়্যার এর উপাদানসমূহ] (https://www.amazon.com/ ডিজাইন-প্যাটার্নস-উপাদানসমূহ-পুনরায় ব্যবহারযোগ্য-অবজেক্ট-ওরিয়েন্টড / ডিপি / ২০১২ 36৩6363১২)
+- [নকশার প্যাটার্নস: পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টে ডি সফ্টওয়্যার এর উপাদানসমূহ] (https://www.amazon.com/ ডিজাইন-প্যাটার্নস-উপাদানসমূহ-পুনরায় ব্যবহারযোগ্য-অবজেক্ট-ওরিয়েন্টড / ডিপি / ২০১২ 36৩6363১২)
-ওরফে "গ্যাং অফ ফোর" বই, বা জিওএফ
-ক্যানোনিকাল ডিজাইন নিদর্শন বই
--[ইউনিক্স এবং লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেশন হ্যান্ডবুক, 5 তম সংস্করণ] (https://www.amazon.com/UNIX-Linux-System-প্রশাসক-হ্যান্ডবুক/dp/0134277554/)
--[অ্যালগোরিদম ডিজাইন ম্যানুয়াল] (http://www.amazon.com/Algorithm-ডিজাইন-ম্যানুয়াল-স্টিভেন-স্কিয়েনা / ডিপি / 1849967202) (স্কিয়েনা)
- -একটি পর্যালোচনা এবং সমস্যা স্বীকৃতি হিসাবে
- -অ্যালগোরিদম ক্যাটালগ অংশটি আপনি একটি সাক্ষাত্কারে পাবেন এমন অসুবিধার সুযোগের বাইরেও।
- -এই বইয়ের 2 টি অংশ রয়েছে:
- -ডেটা স্ট্রাকচার এবং অ্যালগরিদমের উপর ক্লাসের পাঠ্যপুস্তক
- -পেশাদার:
- -যে কোনও অ্যালগরিদম পাঠ্যপুস্তক যেমন হবে তেমন একটি ভাল পর্যালোচনা
- -শিল্প ও একাডেমিয়ার সমস্যা সমাধানের জন্য তাঁর অভিজ্ঞতা থেকে দুর্দান্ত গল্প
- -সি কোড কোড
- -কনস:
- -সিএলআরএসের মতো ঘন বা দুর্ভেদ্য হতে পারে এবং কিছু ক্ষেত্রে সিএলআরএস কিছু বিষয়ের জন্য আরও ভাল বিকল্প হতে পারে
- -অধ্যায় 7, 8, 9 অনুসরণ করার চেষ্টা করা বেদনাদায়ক হতে পারে, কারণ কিছু আইটেম ভালভাবে ব্যাখ্যা করা হয়নি বা আমার চেয়ে বেশি মস্তিষ্কের প্রয়োজন নেই
- -আমাকে ভুল মনে করবেন না: আমি স্কিয়েনা, তার শিক্ষার ধরন এবং পদ্ধতিগুলি পছন্দ করি তবে আমি স্টনি ব্রুকের উপাদান নাও হতে পারি।
- -অ্যালগরিদম ক্যাটালগ:
- -আপনি এই বইটি কেনার আসল কারণ।
- -এই অংশে পেতে। এটির মাধ্যমে একবার আমার পথ তৈরি হয়ে গেলে এখানে আপডেট হবে।
- -কিন্ডেল এ ভাড়া দিতে পারেন
- -উত্তর:
- -[সমাধান] (http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_ ডিজাইন_ ম্যানুয়াল_ (দ্বিতীয়_ সংস্করণ)
- -[সমাধান] (http://blog.panictank.net/category/algorithmndesignmanoutsolutions/page/2/)
- -[এরেতা] (http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-
--[অ্যালগরিদমের ভূমিকা] (https://www.amazon.com/Intr Productions-আলগোরিদিমস ৩ য়আর-এমআইটি-প্রেস / ডিপি/0262033844)
- -** গুরুত্বপূর্ণ: ** এই বইটি পড়ার কেবল মূল্য সীমিত থাকবে। এই বইটি অ্যালগরিদম এবং ডেটা স্ট্রাকচারের দুর্দান্ত পর্যালোচনা, তবে কীভাবে ভাল কোড লিখতে হয় তা শেখায় না। আপনি দক্ষতার সাথে একটি শালীন সমাধান কোড করতে সক্ষম হতে হবে।
- -ওরফে সিএলআর, কখনও কখনও সিএলআরএস, কারণ স্টেইন খেলায় দেরি করেছিল
-
--[কম্পিউটার আর্কিটেকচার, ষষ্ঠ সংস্করণ: একটি পরিমাণগত পদ্ধতির] (https://www.amazon.com/dp/0128119055)
- -আরও সমৃদ্ধের জন্য আরও আধুনিক (2017), তবে দীর্ঘতর চিকিত্সা
-
--[প্রোগ্রামিং পার্লস] (http://www.amazon.com/Programming-Pearls-2nd-জন-Bentley/dp/0201657880)
- -প্রথম অধ্যায় দুটি প্রোগ্রামিং সমস্যার চতুর সমাধান উপস্থাপন করে (কিছু ডেটা টেপ ব্যবহার করে খুব পুরানো) তবে
+- [ইউনিক্স এবং লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেশন হ্যান্ডবুক, 5 তম সংস্করণ] (https://www.amazon.com/UNIX-Linux-System-প্রশাসক-হ্যান্ডবুক/dp/0134277554/)
+- [অ্যালগোরিদম ডিজাইন ম্যানুয়াল] (http://www.amazon.com/Algorithm-ডিজাইন-ম্যানুয়াল-স্টিভেন-স্কিয়েনা / ডিপি / 1849967202) (স্কিয়েনা)
+ - একটি পর্যালোচনা এবং সমস্যা স্বীকৃতি হিসাবে
+ - অ্যালগোরিদম ক্যাটালগ অংশটি আপনি একটি সাক্ষাত্কারে পাবেন এমন অসুবিধার সুযোগের বাইরেও।
+ - এই বইয়ের 2 টি অংশ রয়েছে:
+ - ডেটা স্ট্রাকচার এবং অ্যালগরিদমের উপর ক্লাসের পাঠ্যপুস্তক
+ - পেশাদার:
+ - যে কোনও অ্যালগরিদম পাঠ্যপুস্তক যেমন হবে তেমন একটি ভাল পর্যালোচনা
+ - শিল্প ও একাডেমিয়ার সমস্যা সমাধানের জন্য তাঁর অভিজ্ঞতা থেকে দুর্দান্ত গল্প
+ - সি কোড কোড
+ - কনস:
+ - সিএলআরএসের মতো ঘন বা দুর্ভেদ্য হতে পারে এবং কিছু ক্ষেত্রে সিএলআরএস কিছু বিষয়ের জন্য আরও ভাল বিকল্প হতে পারে
+ - অধ্যায় 7, 8, 9 অনুসরণ করার চেষ্টা করা বেদনাদায়ক হতে পারে, কারণ কিছু আইটেম ভালভাবে ব্যাখ্যা করা হয়নি বা আমার চেয়ে বেশি মস্তিষ্কের প্রয়োজন নেই
+ - আমাকে ভুল মনে করবেন না: আমি স্কিয়েনা, তার শিক্ষার ধরন এবং পদ্ধতিগুলি পছন্দ করি তবে আমি স্টনি ব্রুকের উপাদান নাও হতে পারি।
+ - অ্যালগরিদম ক্যাটালগ:
+ - আপনি এই বইটি কেনার আসল কারণ।
+ - এই অংশে পেতে। এটির মাধ্যমে একবার আমার পথ তৈরি হয়ে গেলে এখানে আপডেট হবে।
+ - কিন্ডেল এ ভাড়া দিতে পারেন
+ - উত্তর:
+ - [সমাধান] (http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_ ডিজাইন_ ম্যানুয়াল_ (দ্বিতীয়_ সংস্করণ)
+ - [সমাধান] (http://blog.panictank.net/category/algorithmndesignmanoutsolutions/page/2/)
+ - [এরেতা] (http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+
+- [অ্যালগরিদমের ভূমিকা] (https://www.amazon.com/Intr Productions-আলগোরিদিমস ৩ য়আর-এমআইটি-প্রেস / ডিপি/0262033844)
+ -**গুরুত্বপূর্ণ:**এই বইটি পড়ার কেবল মূল্য সীমিত থাকবে। এই বইটি অ্যালগরিদম এবং ডেটা স্ট্রাকচারের দুর্দান্ত পর্যালোচনা, তবে কীভাবে ভাল কোড লিখতে হয় তা শেখায় না। আপনি দক্ষতার সাথে একটি শালীন সমাধান কোড করতে সক্ষম হতে হবে।
+ - ওরফে সিএলআর, কখনও কখনও সিএলআরএস, কারণ স্টেইন খেলায় দেরি করেছিল
+
+- [কম্পিউটার আর্কিটেকচার, ষষ্ঠ সংস্করণ: একটি পরিমাণগত পদ্ধতির] (https://www.amazon.com/dp/0128119055)
+ - আরও সমৃদ্ধের জন্য আরও আধুনিক (2017), তবে দীর্ঘতর চিকিত্সা
+
+- [প্রোগ্রামিং পার্লস] (http://www.amazon.com/Programming-Pearls-2nd-জন-Bentley/dp/0201657880)
+ - প্রথম অধ্যায় দুটি প্রোগ্রামিং সমস্যার চতুর সমাধান উপস্থাপন করে (কিছু ডেটা টেপ ব্যবহার করে খুব পুরানো) তবে
এটি কেবল একটি ভূমিকা প্রোগ্রামের নকশা এবং আর্কিটেকচারের জন্য এটি একটি গাইডবুক, অনেকটা কোড কমপ্লিটের মতো, তবে আরও ছোট।
-##অতিরিক্ত শিক্ষা
+## অতিরিক্ত শিক্ষা
অতিরিক্ত পড়াশুনা <সংক্ষিপ্ত>
@@ -1709,34 +1709,34 @@ https://github.com/jwasham/coding-interview-university
এই বিষয়গুলি সম্ভবত কোনও সাক্ষাত্কারে উঠে আসবে না, তবে আপনাকে সুদৃ .় হতে সাহায্য করার জন্য আমি এগুলি যুক্ত করেছি
সফ্টওয়্যার ইঞ্জিনিয়ার, এবং নির্দিষ্ট প্রযুক্তি এবং অ্যালগরিদম সম্পর্কে সচেতন হতে যাতে আপনার কাছে একটি বড় টুলবক্স থাকে।
--###সংকলক
+- ### সংকলক
- [একটি সংকলক কীভাবে ~ 1 মিনিটে (ভিডিও) কাজ করে] [https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- [হার্ভার্ড সিএস 50-সংকলক (ভিডিও)] (https://www.youtube.com/watch?v=CSZLNYF4Klo)
- [সি ++ (ভিডিও)] (https://www.youtube.com/watch?v=twodd1KFfGk)
- [সংকলন অপ্টিমাইজেশন (সি ++) (ভিডিও) বোঝা] (https://www.youtube.com/watch?v=FnGCDLhaxKU)
--###ইম্যাক্স এবং ভিআই (মি)
- -ইউনিক্স ভিত্তিক কোড সম্পাদকের সাথে নিজেকে পরিচিত করুন
- -vi (এম):
- -[ভিএম 01 সহ সম্পাদনা-ইনস্টলেশন, সেটআপ, এবং মোডগুলি (ভিডিও)] (https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- -[ভিআইএম অ্যাডভেঞ্চারস] (http://vim-ad مہم.com/)
- -4 টি ভিডিওর সেট:
- -[দ্বি / ভিআইএম সম্পাদক-পাঠ 1] (https://www.youtube.com/watch?v=SI8TeVMX8pk)
- -[দ্বি / ভিআইএম সম্পাদক-পাঠ 2] (https://www.youtube.com/watch?v=F3OO7ZIOaEE)
- -[দ্বি / ভিআইএম সম্পাদক-পাঠ 3] (https://www.youtube.com/watch?v=ZYEccA_nMaI)
- -[দ্বি / ভিআইএম সম্পাদক-পাঠ 4] (https://www.youtube.com/watch?v=1lYD5gwgZIA)
- -[ইমাসের পরিবর্তে ভী ব্যবহার করা] [http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#ব্যবহার_ভি_ইনস্টিড_ও_এম্যাকস)
- -ইমাস:
- -[বুনিয়াদি ইম্যাকস টিউটোরিয়াল (ভিডিও)] (https://www.youtube.com/watch?v=hbmV1bnQ-i0)
- -3 সেট (ভিডিও):
- -[ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পার্ট 1-ফাইল কমান্ড, কাট / অনুলিপি / পেস্ট করুন, কার্সার কমান্ড] (https://www.youtube.com/watch?v=ujODL7MD04Q)
- -[ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পার্ট 2-বাফার পরিচালনা, অনুসন্ধান, এমএক্স গ্রেপ এবং আরগ্রিপ মোড] (https://www.youtube.com/watch?v=XWpsRupJ4II)
- -[ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পর্ব 3-এক্সপ্রেশন, বিবৃতি, ~ / .emacs ফাইল এবং প্যাকেজ] (https://www.youtube.com/watch?v=paSgzPso-yc)
- -[এভিল মোড: বা, আমি কীভাবে উদ্বেগ বন্ধ করতে এবং ইমাসকে ভালোবাসতে শিখেছি (ভিডিও)] (https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- -[ইমাস সহ সি প্রোগ্রাম রচনা] [http://www.cs.yale.edu/homes/aspnes/class/223/notes.html#রাইটিং_সি_প্রগ্রাম_উইথ_এম্যাকস)
- -[(হতে পারে) অরগ মোড গভীরতায়: কাঠামো পরিচালনার (ভিডিও)] (https://www.youtube.com/watch?v=nsGYet02bEk)
-
--###ইউনিক্স কমান্ড লাইন সরঞ্জাম
+- ### ইম্যাক্স এবং ভিআই (মি)
+ - ইউনিক্স ভিত্তিক কোড সম্পাদকের সাথে নিজেকে পরিচিত করুন
+ - vi (এম):
+ - [ভিএম 01 সহ সম্পাদনা-ইনস্টলেশন, সেটআপ, এবং মোডগুলি (ভিডিও)] (https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [ভিআইএম অ্যাডভেঞ্চারস] (http://vim-ad مہم.com/)
+ - 4 টি ভিডিওর সেট:
+ - [দ্বি / ভিআইএম সম্পাদক-পাঠ 1] (https://www.youtube.com/watch?v=SI8TeVMX8pk)
+ - [দ্বি / ভিআইএম সম্পাদক-পাঠ 2] (https://www.youtube.com/watch?v=F3OO7ZIOaEE)
+ - [দ্বি / ভিআইএম সম্পাদক-পাঠ 3] (https://www.youtube.com/watch?v=ZYEccA_nMaI)
+ - [দ্বি / ভিআইএম সম্পাদক-পাঠ 4] (https://www.youtube.com/watch?v=1lYD5gwgZIA)
+ - [ইমাসের পরিবর্তে ভী ব্যবহার করা] [http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#ব্যবহার_ভি_ইনস্টিড_ও_এম্যাকস)
+ - ইমাস:
+ - [বুনিয়াদি ইম্যাকস টিউটোরিয়াল (ভিডিও)] (https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - 3 সেট (ভিডিও):
+ - [ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পার্ট 1-ফাইল কমান্ড, কাট / অনুলিপি / পেস্ট করুন, কার্সার কমান্ড] (https://www.youtube.com/watch?v=ujODL7MD04Q)
+ - [ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পার্ট 2-বাফার পরিচালনা, অনুসন্ধান, এমএক্স গ্রেপ এবং আরগ্রিপ মোড] (https://www.youtube.com/watch?v=XWpsRupJ4II)
+ - [ইমাস টিউটোরিয়াল (প্রারম্ভিক)-পর্ব 3-এক্সপ্রেশন, বিবৃতি, ~ / .emacs ফাইল এবং প্যাকেজ] (https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [এভিল মোড: বা, আমি কীভাবে উদ্বেগ বন্ধ করতে এবং ইমাসকে ভালোবাসতে শিখেছি (ভিডিও)] (https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
+ - [ইমাস সহ সি প্রোগ্রাম রচনা] [http://www.cs.yale.edu/homes/aspnes/class/223/notes.html#রাইটিং_সি_প্রগ্রাম_উইথ_এম্যাকস)
+ - [(হতে পারে) অরগ মোড গভীরতায়: কাঠামো পরিচালনার (ভিডিও)] (https://www.youtube.com/watch?v=nsGYet02bEk)
+
+- ### ইউনিক্স কমান্ড লাইন সরঞ্জাম
-আমি ভাল সরঞ্জামগুলি থেকে নীচে তালিকায় পূর্ণ করেছি।
- বাশ
- বিড়াল
@@ -1744,41 +1744,41 @@ https://github.com/jwasham/coding-interview-university
- সেড
- অজানা
- কার্ল বা উইজেট
- -[ ] সাজান
+ - [ ] সাজান
- ট্র
- ইউনিক
- [স্ট্রেস] (https://en.wikedia.org/wiki/Strace)
- [tcpdump] (https://danielmiessler.com/study/tcpdump/)
--###তথ্য তত্ত্ব (ভিডিও)
+- ### তথ্য তত্ত্ব (ভিডিও)
- [খান একাডেমি] (https://www.khanacademy.org/computing/computer-s विज्ञान / তথ্যসূত্র)
- মার্কভ প্রক্রিয়া সম্পর্কে আরও:
- [কোর মার্কভ টেক্সট জেনারেশন] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- [মার্কেভ টেক্সট জেনারেশনের মূল প্রয়োগকারী] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- [প্রকল্প = মার্কভ টেক্সট জেনারেশন ওয়াক থ্রো] (https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- -নীচে এমআইটি 6.050J তথ্য এবং এন্ট্রপি সিরিজে আরও দেখুন।
+ - নীচে এমআইটি 6.050J তথ্য এবং এন্ট্রপি সিরিজে আরও দেখুন।
--###সমতা এবং হামিং কোড (ভিডিও)
+- ### সমতা এবং হামিং কোড (ভিডিও)
- [পরিচয়] (https://www.youtube.com/watch?v=q-3BctoUpHE)
- [সমতা] (https://www.youtube.com/watch?v=DdMcAUlxh1M)
- হামিং কোড:
- -[ত্রুটি সনাক্তকরণ] (https://www.youtube.com/watch?v=1A_NcXxdoCc)
- -[ত্রুটি সংশোধন] (https://www.youtube.com/watch?v=JAMLuxdHH8o)
+ - [ত্রুটি সনাক্তকরণ] (https://www.youtube.com/watch?v=1A_NcXxdoCc)
+ - [ত্রুটি সংশোধন] (https://www.youtube.com/watch?v=JAMLuxdHH8o)
- [ত্রুটি পরীক্ষা করা] (https://www.youtube.com/watch?v=wbH2VxzmoZk)
--###এন্ট্রপি
- -নীচে ভিডিও দেখুন
- -প্রথমে তথ্য তত্ত্বের ভিডিওগুলি নিশ্চিত করে দেখুন
+- ### এন্ট্রপি
+ - নীচে ভিডিও দেখুন
+ - প্রথমে তথ্য তত্ত্বের ভিডিওগুলি নিশ্চিত করে দেখুন
- [তথ্য তত্ত্ব, ক্লড শ্যানন, এন্ট্রপি, রিডানডেন্সি, ডেটা সংক্ষেপণ এবং বিটস (ভিডিও)] (https://youtu.be/JnJq3Py0dyM?t=176)
--###ক্রিপ্টোগ্রাফি
- -নীচে ভিডিও দেখুন
- -প্রথমে তথ্য তত্ত্বের ভিডিওগুলি নিশ্চিত করে দেখুন
+- ### ক্রিপ্টোগ্রাফি
+ - নীচে ভিডিও দেখুন
+ - প্রথমে তথ্য তত্ত্বের ভিডিওগুলি নিশ্চিত করে দেখুন
- [খান একাডেমি সিরিজ] (https://www.khanacademy.org/computing/computer-s विज्ञान/cryptography)
- [ক্রিপ্টোগ্রাফি: হ্যাশ ফাংশন] (https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
- [ক্রিপ্টোগ্রাফি: এনক্রিপশন] (https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
--###সঙ্কোচন
+- ### সঙ্কোচন
-প্রথমে তথ্য তত্ত্বের ভিডিওগুলি নিশ্চিত করে দেখুন
- কম্পিউটারফিল (ভিডিও):
- [সংক্ষেপণ] (https://www.youtube.com/watch?v=Lto-ajuqW3w)
@@ -1790,8 +1790,8 @@ https://github.com/jwasham/coding-interview-university
- [সংক্ষেপক প্রধান ভিডিও] (https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
- [(alচ্ছিক) গুগল বিকাশকারীদের লাইভ: জিজেপআইপি যথেষ্ট নয়!] (https://www.youtube.com/watch?v=whGwm0Lky2s)
--###কম্পিউটার নিরাপত্তা
- -[এমআইটি (২৩ টি ভিডিও)] (https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+- ### কম্পিউটার নিরাপত্তা
+ - [এমআইটি (২৩ টি ভিডিও)] (https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- [ভূমিকা, হুমকির মডেল] (https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- [হাইজ্যাকিং আক্রমণকে নিয়ন্ত্রণ করুন] (https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
- [বাফার ওভারফ্লো শোষণ এবং প্রতিরক্ষা] (https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
@@ -1805,74 +1805,74 @@ https://github.com/jwasham/coding-interview-university
- [নেটওয়ার্ক প্রোটোকল] (https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- [সাইড-চ্যানেল আক্রমণগুলি) (https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
--###আবর্জনা সংগ্রহ
+- ### আবর্জনা সংগ্রহ
- [পাইথনে জিসি (ভিডিও)] (https://www.youtube.com/watch?v=iHVs_HkjdmI)
- [ডিপ ডাইভ জাভা: আবর্জনা সংগ্রহ ভাল!] (Https://www.infoq.com/preferencesations/garbage-colલેક્--সুবিধা)
- [ডিপ ডাইভ পাইথন: সিপিথনে আবর্জনা সংগ্রহ (ভিডিও)] (https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
--###সমান্তরাল প্রোগ্রামিং
+- ### সমান্তরাল প্রোগ্রামিং
- [কোর্সেরা (স্কালা)] (https://www.coursera.org/learn/parprog1/home/week/1)
- [উচ্চ পারফরম্যান্স প্যারালাল কম্পিউটিংয়ের জন্য দক্ষ পাইথন (ভিডিও)] (https://www.youtube.com/watch?v=uY85GkaYzBk)
--###মেসেজিং, সিরিয়ালাইজেশন এবং কুইউিং সিস্টেম
+- ### মেসেজিং, সিরিয়ালাইজেশন এবং কুইউিং সিস্টেম
- [থ্রিফট] (https://thrift.apache.org/)
- -[টিউটোরিয়াল] (http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [টিউটোরিয়াল] (http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
- [প্রোটোকল বাফারস) (https://developers.google.com/protocol-buffers/)
- -[টিউটোরিয়াল] (https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [টিউটোরিয়াল] (https://developers.google.com/protocol-buffers/docs/tutorials)
- [জিআরপিসি] (http://www.grpc.io/)
- -[জাভা ডেভেলপারদের (ভিডিও) জন্য জিআরপিসি 101] (https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJOL&index=1)
+ - [জাভা ডেভেলপারদের (ভিডিও) জন্য জিআরপিসি 101] (https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJOL&index=1)
- [রেডিস] (http://redis.io/)
- -[টিউটোরিয়াল] (http://try.redis.io/)
+ - [টিউটোরিয়াল] (http://try.redis.io/)
- [আমাজন এসকিউএস (সারি)] (https://aws.amazon.com/sqs/)
- [অ্যামাজন এসএনএস (পাব সাব)] (https://aws.amazon.com/sns/)
- [র্যাবিট এমকিউ] (https://www.rabbitmq.com/)
- -[শুরু করুন] (https://www.rabbitmq.com/getstarted.html)
+ - [শুরু করুন] (https://www.rabbitmq.com/getstarted.html)
- [সেলারি] (http://www.celeryproject.org/)
- -[সিলারির সাথে প্রথম পদক্ষেপ] (http://docs.celeryproject.org/en/latest/getting-st সূত্র / প্রথম পদক্ষেপ-উইথ-সিলারি html)
+ - [সিলারির সাথে প্রথম পদক্ষেপ] (http://docs.celeryproject.org/en/latest/getting-st সূত্র / প্রথম পদক্ষেপ-উইথ-সিলারি html)
- [জিরো কিউ] (http://zeromq.org/)
- -[পরিচয়-ম্যানুয়াল পড়ুন] (http://zeromq.org/intro:read-the-manual)
+ - [পরিচয়-ম্যানুয়াল পড়ুন] (http://zeromq.org/intro:read-the-manual)
- [অ্যাক্টিভ এমকিউ] (http://activemq.apache.org/)
- [কাফকা] (http://kafka.apache.org/docamentation.html#intr پيداوار)
- [বার্তা প্যাক] (http://msgpack.org/index.html)
- [অভ্র] (https://avro.apache.org/)
--###এ *
+- ### এ*
- [একটি অনুসন্ধান অ্যালগরিদম] (https://en.wikedia.org/wiki/A*_search_algorithm)
- - [একটি * প্যাথফাইন্ডিং টিউটোরিয়াল (ভিডিও)] (https://www.youtube.com/watch?v=KNXfSOx4eEE)
- - [এ * প্যাথফাইন্ডিং (E01: অ্যালগরিদম ব্যাখ্যা) (ভিডিও)] (https://www.youtube.com/watch?v=-L-WgKMFuhE)
+ - [একটি*প্যাথফাইন্ডিং টিউটোরিয়াল (ভিডিও)] (https://www.youtube.com/watch?v=KNXfSOx4eEE)
+ - [এ*প্যাথফাইন্ডিং (E01: অ্যালগরিদম ব্যাখ্যা) (ভিডিও)] (https://www.youtube.com/watch?v=-L-WgKMFuhE)
--###ফাস্ট ফোরিয়ার ট্রান্সফর্ম
+- ### ফাস্ট ফোরিয়ার ট্রান্সফর্ম
- [ফুরিয়ার ট্রান্সফর্মের জন্য একটি ইন্টারেক্টিভ গাইড] (https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- [ফুরিয়ার রূপান্তর কী? এটি কীসের জন্য ব্যবহার করা হয়েছে?] (Http://www.askamathematician.com/2012/09/q-কি-is-a-fourier-transform-কি-is-it-used-for/)
- [ফুরিয়ার ট্রান্সফর্ম কী? (ভিডিও)] (https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- [ভাগ করুন এবং বিজয়: এফএফটি (ভিডিও)] (https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- [এফএফটি বোঝা] (http://jakevdp.github.io/blog/2013/08/28/ বোঝা-the-fft/)
--###ব্লুম ফিল্টার
- -এম বিট এবং কে হ্যাশিং ফাংশন সহ একটি ব্লুম ফিল্টার দেওয়া, সন্নিবেশ এবং সদস্যপদ পরীক্ষা উভয়ই হ'ল (কে)
- -[ব্লুম ফিল্টার (ভিডিও)] (https://www.youtube.com/watch?v=-SUTGoFYjZs)
- -[ব্লুম ফিল্টার | ম্যাসিভ ডেটাসেটের খনন | স্ট্যানফোর্ড বিশ্ববিদ্যালয় (ভিডিও)] (https://www.youtube.com/watch?v=qBTdukbzc78)
- -[টিউটোরিয়াল] (http://billmill.org/bloomfilter-tutorial/)
- -[ব্লুম ফিল্টার অ্যাপ কীভাবে লিখবেন] (http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+- ### ব্লুম ফিল্টার
+ - এম বিট এবং কে হ্যাশিং ফাংশন সহ একটি ব্লুম ফিল্টার দেওয়া, সন্নিবেশ এবং সদস্যপদ পরীক্ষা উভয়ই হ'ল (কে)
+ - [ব্লুম ফিল্টার (ভিডিও)] (https://www.youtube.com/watch?v=-SUTGoFYjZs)
+ - [ব্লুম ফিল্টার | ম্যাসিভ ডেটাসেটের খনন | স্ট্যানফোর্ড বিশ্ববিদ্যালয় (ভিডিও)] (https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [টিউটোরিয়াল] (http://billmill.org/bloomfilter-tutorial/)
+ - [ব্লুম ফিল্টার অ্যাপ কীভাবে লিখবেন] (http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
--###হাইপারলগলগ
- -[কেবল মাত্র 1.5 কেবি মেমরি ব্যবহার করে এক বিলিয়ন স্বতন্ত্র বিষয়গুলি কীভাবে গণনা করতে হবে) (http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
+- ### হাইপারলগলগ
+ - [কেবল মাত্র 1.5 কেবি মেমরি ব্যবহার করে এক বিলিয়ন স্বতন্ত্র বিষয়গুলি কীভাবে গণনা করতে হবে) (http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
--###লোকালয়-সংবেদনশীল হ্যাশিং
- -নথির সাদৃশ্য নির্ধারণ করতে ব্যবহৃত
- -MD5 বা SHA এর বিপরীত যা 2 টি নথি / স্ট্রিং ঠিক একই কিনা তা নির্ধারণ করতে ব্যবহৃত হয়।
- -[সিমহাশিং (আশাবাদী) সহজ করে]] (http://ferd.ca/simhashing-hopefully-made-simple.html)
+- ### লোকালয়-সংবেদনশীল হ্যাশিং
+ - নথির সাদৃশ্য নির্ধারণ করতে ব্যবহৃত
+ - MD5 বা SHA এর বিপরীত যা 2 টি নথি / স্ট্রিং ঠিক একই কিনা তা নির্ধারণ করতে ব্যবহৃত হয়।
+ - [সিমহাশিং (আশাবাদী) সহজ করে]] (http://ferd.ca/simhashing-hopefully-made-simple.html)
--###ভ্যান এমডে বোস ট্রি
+- ### ভ্যান এমডে বোস ট্রি
- [ভাগ করুন এবং জয়লাভ করুন: ভ্যান এমডে বোস ট্রি (ভিডিও)] (https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
- [এমআইটি লেকচার নোটস] (https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes / MIT6_046JS12_lec15.pdf)
--###সংযুক্ত ডেটা কাঠামো
+- ### সংযুক্ত ডেটা কাঠামো
- [সিএস 61 বি লেকচার 39: ডেটা স্ট্রাকচারগুলিকে বাড়িয়ে তোলা] (https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
--###ভারসাম্যযুক্ত অনুসন্ধান গাছ
- -কমপক্ষে এক ধরণের সুষম বাইনারি ট্রি জানুন (এবং এটি কীভাবে প্রয়োগ করা হয় তা জানুন):
- -"সুষম অনুসন্ধান গাছগুলির মধ্যে, এভিএল এবং ২/৩ টি গাছ এখন পাস é এবং লাল-কালো গাছগুলি আরও জনপ্রিয় বলে মনে হচ্ছে।
+- ### ভারসাম্যযুক্ত অনুসন্ধান গাছ
+ - কমপক্ষে এক ধরণের সুষম বাইনারি ট্রি জানুন (এবং এটি কীভাবে প্রয়োগ করা হয় তা জানুন):
+ - "সুষম অনুসন্ধান গাছগুলির মধ্যে, এভিএল এবং ২/৩ টি গাছ এখন পাস é এবং লাল-কালো গাছগুলি আরও জনপ্রিয় বলে মনে হচ্ছে।
একটি বিশেষ আকর্ষণীয় স্ব-সংগঠিত ডেটা কাঠামো হ'ল স্প্লে ট্রি, যা ঘূর্ণন ব্যবহার করে
যে কোনও অ্যাক্সেসযুক্ত কীটি রুটে নিয়ে যেতে ""-স্কিয়েনা
-এর মধ্যে আমি একটি স্প্লে গাছকে বাস্তবায়ন করতে বেছে নিয়েছি। আমি যা পড়েছি তা থেকে আপনি একটি বাস্তবায়ন করবেন না
@@ -1884,7 +1884,7 @@ https://github.com/jwasham/coding-interview-university
-আমি বি-ট্রি সম্পর্কে আরও জানতে চাই যেহেতু এটি খুব বড় ডেটা সেটগুলির সাথে এত ব্যাপকভাবে ব্যবহৃত হয়।
- [স্ব-ভারসাম্য বাইনারি অনুসন্ধান বৃক্ষ] (https://en.wikedia.org/wiki/S سیل-ব্যালেন্সিং_বাইনারি_সার্চ_ট্রি)
- - ** এভিএল গাছ **
+ - **এভিএল গাছ**
-প্রস্তুতিতে:
আমি যা বলতে পারি, সেগুলি থেকে অনুশীলনে এগুলি বেশি ব্যবহার করা হয় না, তবে আমি দেখতে পেতাম তারা কোথায় থাকবে:
এভিএল ট্রি ও (লগ এন) অনুসন্ধান, সন্নিবেশ এবং অপসারণকে সমর্থনকারী আরেকটি কাঠামো। এটি আরও কঠোরভাবে হয়
@@ -1897,7 +1897,7 @@ https://github.com/jwasham/coding-interview-university
- [স্প্লিট এবং মার্জ করুন] (https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-विसর)
- [[Review] AVL Trees (playlist) in 19 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOUFgdIeOPuH6cfSnNRMau-)
- - ** গাছ স্প্লে **
+ - **গাছ স্প্লে**
-প্রস্তুতিতে:
স্প্লে গাছগুলি সাধারণত ক্যাশে, মেমরি বরাদ্দকারী, রাউটার, আবর্জনা সংগ্রহকারী,
উইন্ডোজ এনটি-তে (ভার্চুয়াল মেমরির মধ্যে, ডেটা সংক্ষেপণ, দড়ি (দীর্ঘ পাঠ্য স্ট্রিংয়ের জন্য ব্যবহৃত স্ট্রিংয়ের প্রতিস্থাপন))
@@ -1905,9 +1905,9 @@ https://github.com/jwasham/coding-interview-university
- [সিএস 61 বি: স্প্লে ট্রি (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
- এমআইটি বক্তৃতা: স্প্লে ট্রি:
-খুব ম্যাথী পেয়েছে তবে নিশ্চিত হয়ে 10 মিনিট দেখুন।
- -[ভিডিও] (https://www.youtube.com/watch?v=QnPl_Y6EqMo)
+ - [ভিডিও] (https://www.youtube.com/watch?v=QnPl_Y6EqMo)
- - ** লাল / কালো গাছ **
+ - **লাল / কালো গাছ**
-এটি একটি 2-3 গাছের অনুবাদ (নীচে দেখুন)
-প্রস্তুতিতে:
লাল – কালো গাছগুলি সন্নিবেশের সময়, মোছার সময় এবং অনুসন্ধানের সময়ের জন্য সবচেয়ে খারাপ গ্যারান্টি সরবরাহ করে।
@@ -1923,7 +1923,7 @@ https://github.com/jwasham/coding-interview-university
- [বাইনারি অনুসন্ধান এবং লাল কালো গাছের পরিচিতি] (https://www.topcoder.com/commune/competitive-pogramming/tutorials/an-intr Produc-to-binary-search-and-red-black-trees /)
- [[Review] Red-Black Trees (playlist) in 30 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
- - ** ২-৩ টি অনুসন্ধান গাছ **
+ - **২-৩ টি অনুসন্ধান গাছ**
-প্রস্তুতিতে:
ধীরে ধীরে অনুসন্ধানের ব্যয়ে 2-3 টি গাছে দ্রুত সন্নিবেশ থাকে (যেহেতু এভিএল গাছের তুলনায় উচ্চতা বেশি)।
-আপনি খুব সহজেই 2-3 গাছ ব্যবহার করবেন কারণ এর প্রয়োগে নোডের বিভিন্ন ধরণের জড়িত। পরিবর্তে লোকে লোহিত কালো গাছ ব্যবহার করে।
@@ -1931,23 +1931,23 @@ https://github.com/jwasham/coding-interview-university
- [২৩-গাছের দ্বিখণ্ডিত ভিউ] (https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [২-৩ টি গাছ (ছাত্র আবৃত্তি) (ভিডিও)] (https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - ** ২-৩-৪ টি গাছ (ওরফ ২-৪ টি গাছ) **
+ - **২-৩-৪ টি গাছ (ওরফ ২-৪ টি গাছ)**
-প্রস্তুতিতে:
প্রতি 2-4 টি গাছের জন্য, একই ক্রমে ডেটা উপাদানগুলির সাথে সম্পর্কিত লাল – কালো গাছ রয়েছে। সন্নিবেশ এবং মোছা
2-4 টি গাছের ক্রিয়াকলাপগুলি রঙ-ফ্লিপিং এবং লাল-কালো গাছে ঘূর্ণনের সমতুল্য। এটি 2-4 গাছ একটি করে
লাল-কালো গাছগুলির পিছনে যুক্তি বোঝার জন্য গুরুত্বপূর্ণ সরঞ্জাম এবং এ কারণেই অনেক সূচনা অ্যালগরিদম পাঠগুলি প্রবর্তন করে
- লাল-কালো গাছের ঠিক আগে 2-4 টি গাছ, যদিও ** 2-4 টি গাছ সাধারণত অনুশীলনে ব্যবহৃত হয় না **।
+ লাল-কালো গাছের ঠিক আগে 2-4 টি গাছ, যদিও**2-4 টি গাছ সাধারণত অনুশীলনে ব্যবহৃত হয় না**।
- [সিএস 61 বি লেকচার 26: ভারসাম্যযুক্ত অনুসন্ধান গাছ (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
- [নীচে 234-গাছ (ভিডিও)] (https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- [শীর্ষস্থানীয় 234-গাছ (ভিডিও)] (https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
- - ** এন-অ্যারি (কে-আরি, এম-আরি) গাছগুলি **
+ - **এন-অ্যারি (কে-আরি, এম-আরি) গাছগুলি**
-দ্রষ্টব্য: এন বা কে শাখা প্রশাখার উপাদান (সর্বাধিক শাখা)
-বাইনারি গাছগুলি একটি 2-অ্যারি গাছ, যার শাখা ফ্যাক্টর = 2 থাকে
-2-3 গাছ 3-ary হয়
- [কে-আর্য গাছ] (https://en.wikedia.org/wiki/K-ary_tree)
- - ** বি-ট্রিস **
+ - **বি-ট্রিস**
-মজার ঘটনা: এটি একটি রহস্য, তবে বি বোয়িং, ভারসাম্যহীন বা বায়ারের পক্ষে (সহ-উদ্ভাবক) দাঁড়াতে পারে
-প্রস্তুতিতে:
বি-ট্রিগুলি ডেটাবেজে ব্যাপকভাবে ব্যবহৃত হয়। বেশিরভাগ আধুনিক ফাইল সিস্টেমগুলি বি-ট্রি (বা ভেরিয়েন্ট) ব্যবহার করে। এ ছাড়াও
@@ -1965,51 +1965,51 @@ https://github.com/jwasham/coding-interview-university
- [[Review] B-Trees (playlist) in 26 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
--###কেডি গাছ
- -একটি আয়তক্ষেত্র বা উচ্চ মাত্রার অবজেক্টে পয়েন্ট সংখ্যা সন্ধানের জন্য দুর্দান্ত
- -কে-নিকটতম প্রতিবেশীদের জন্য ভাল ফিট
+- ### কেডি গাছ
+ - একটি আয়তক্ষেত্র বা উচ্চ মাত্রার অবজেক্টে পয়েন্ট সংখ্যা সন্ধানের জন্য দুর্দান্ত
+ - কে-নিকটতম প্রতিবেশীদের জন্য ভাল ফিট
- [কেডি ট্রিস (ভিডিও)] (https://www.youtube.com/watch?v=W94M9D_yXKk)
- [কেএনএন কেডি ট্রি অ্যালগোরিদম (ভিডিও)] (https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
--###তালিকা বাদ দিন
- -"এগুলি কিছুটা কাল্ট ডেটা কাঠামো"-স্কিয়েনা
+- ### তালিকা বাদ দিন
+ - "এগুলি কিছুটা কাল্ট ডেটা কাঠামো"-স্কিয়েনা
- [র্যান্ডমাইজেশন: তালিকাগুলি বাদ দিন (ভিডিও)] (https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [অ্যানিমেশন এবং আরও বিশদ জন্য] (https://en.wikedia.org/wiki/Skip_list)
--###নেটওয়ার্ক প্রবাহ
+- ### নেটওয়ার্ক প্রবাহ
- [5 মিনিটে ফোর্ড-ফুলকারসন-ধাপে ধাপে উদাহরণ (ভিডিও)] (https://www.youtube.com/watch?v=Tl90tNtKvxs)
- [ফোর্ড-ফুলকারসন অ্যালগরিদম (ভিডিও)] (https://www.youtube.com/watch?v=v1VgJmkEJW0)
- [নেটওয়ার্ক প্রবাহ (ভিডিও)] (https://www.youtube.com/watch?v=2vhN4Ice5jI)
--###অসম্পূর্ণ সেট ও ইউনিয়ন অনুসন্ধান করুন
+- ### অসম্পূর্ণ সেট ও ইউনিয়ন অনুসন্ধান করুন
- [ইউসিবি 61 বি-বিচ্ছিন্ন সেটগুলি; বাছাই ও নির্বাচন (ভিডিও)] (https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
- [সেডজউইক অ্যালগরিদম-ইউনিয়ন-সন্ধান (6 টি ভিডিও)] (https://www.coursera.org/learn/algorithms-part1/home/week/1)
--###দ্রুত প্রক্রিয়াজাতকরণের জন্য গণিত
+- ### দ্রুত প্রক্রিয়াজাতকরণের জন্য গণিত
- [পূর্ণসংখ্যার গাণিতিক, করাতসুবা গুণ (ভিডিও)] (https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [চীনা রেমেন্ডার উপপাদ্য (ক্রিপ্টোগ্রাফিতে ব্যবহৃত) (ভিডিও)] (https://www.youtube.com/watch?v=ru7mWZJlRQg)
--###ট্রেপ
+- ### ট্রেপ
-একটি বাইনারি অনুসন্ধান গাছ এবং একটি গাদা সংমিশ্রণ
- [ট্রেপ] (https://en.wikedia.org/wiki/Treap)
- [ডেটা স্ট্রাকচার: ট্র্যাপগুলি ব্যাখ্যা করা হয়েছে (ভিডিও)] (https://www.youtube.com/watch?v=6podLUYinH8)
- [সেট অপারেশনে অ্যাপ্লিকেশন] (https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
--###লিনিয়ার প্রোগ্রামিং (ভিডিও)
+- ### লিনিয়ার প্রোগ্রামিং (ভিডিও)
- [লিনিয়ার প্রোগ্রামিং] (https://www.youtube.com/watch?v=M4K6HYLHREQ)
- [সর্বনিম্ন ব্যয় সন্ধান করা] (https://www.youtube.com/watch?v=2ACJ9ewUC6U)
- [সর্বাধিক মান সন্ধান করা] (https://www.youtube.com/watch?v=8AA_81xI3ik)
- [পাইথনের সাথে লিনিয়ার সমীকরণগুলি সমাধান করুন-সিম্প্লেক্স অ্যালগরিদম] (https://www.youtube.com/watch?v=44pAWI7v5Zk)
--###জ্যামিতি, উত্তল হাল (ভিডিও)
+- ### জ্যামিতি, উত্তল হাল (ভিডিও)
- [গ্রাফ আলগ চতুর্থ: জ্যামিতিক অ্যালগোরিদমগুলিতে পরিচিতি-বক্তৃতা 9] (https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
- [জ্যামিতিক অ্যালগোরিদম: গ্রাহাম এবং জার্ভিস-প্রবন্ধ 10] (https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [ভাগ করুন এবং জয়লাভ করুন: উত্তল হাল, মিডিয়ান ফাইন্ডিং] (https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
--###স্বতন্ত্র গণিত
+- ### স্বতন্ত্র গণিত
-নীচে ভিডিও দেখুন
--###মেশিন লার্নিং
+- ### মেশিন লার্নিং
- কেন এমএল?
- [গুগল নিজেকে মেশিন লার্নিং ফার্স্ট সংস্থা হিসাবে নিজেকে কীভাবে স্মরণ করছে] (https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- [ইন্টেলিজেন্ট কম্পিউটার সিস্টেমের জন্য বৃহত্তর স্কেল গভীর শিক্ষা (ভিডিও)] (https://www.youtube.com/watch?v=QSaZGT4-6EY)
@@ -2020,20 +2020,20 @@ https://github.com/jwasham/coding-interview-university
- [টেনসরফ্লো টিউটোরিয়াল] (https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- [পাইথনে নিউরাল নেটওয়ার্ক বাস্তবায়নের ব্যবহারিক গাইড (থিওনো ব্যবহার করে)] (http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
-কোর্স:
- -[দুর্দান্ত স্টার্টার কোর্স: মেশিন লার্নিং] (https://www.coursera.org/learn/machine-learning)
- -[কেবলমাত্র ভিডিও] (https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
+ - [দুর্দান্ত স্টার্টার কোর্স: মেশিন লার্নিং] (https://www.coursera.org/learn/machine-learning)
+ - [কেবলমাত্র ভিডিও] (https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
-লিনিয়ার বীজগণিতের পর্যালোচনার জন্য ভিডিওগুলি 12-18 দেখুন (14 এবং 15 টি সদৃশ)
- -[মেশিন লার্নিংয়ের জন্য নিউরাল নেটওয়ার্ক] (https://www.coursera.org/learn/neural-নেট ওয়ার্কস)
- -[গুগলের ডিপ লার্নিং ন্যানোডগ্রি] (https://www.udacity.com/course/DP-learning--ud730)
- -[গুগল / কাগল মেশিন লার্নিং ইঞ্জিনিয়ার ন্যানোডগ্রি] (https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
- -[স্ব-চালনা কার ইঞ্জিনিয়ার ন্যানোডগ্রি] (https://www.udacity.com/drive)
- -[মেটিস অনলাইন কোর্স (2 মাসের জন্য 99 ডলার)] (http://www.thisismetis.com / এক্সপ্লোর-ডেটা-বিজ্ঞান)
+ - [মেশিন লার্নিংয়ের জন্য নিউরাল নেটওয়ার্ক] (https://www.coursera.org/learn/neural-নেট ওয়ার্কস)
+ - [গুগলের ডিপ লার্নিং ন্যানোডগ্রি] (https://www.udacity.com/course/DP-learning--ud730)
+ - [গুগল / কাগল মেশিন লার্নিং ইঞ্জিনিয়ার ন্যানোডগ্রি] (https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
+ - [স্ব-চালনা কার ইঞ্জিনিয়ার ন্যানোডগ্রি] (https://www.udacity.com/drive)
+ - [মেটিস অনলাইন কোর্স (2 মাসের জন্য 99 ডলার)] (http://www.thisismetis.com / এক্সপ্লোর-ডেটা-বিজ্ঞান)
-সংস্থানসমূহ:
-বই:
- -[পাইথন মেশিন লার্নিং] (https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
- -[স্ক্র্যাচ থেকে ডেটা সায়েন্স: পাইথন সহ প্রথম নীতিগুলি] (https://www.amazon.com/Data-Sज्ञान-Scratch-প্রিন্সিপালস-পাইথন/dp/149190142X)
- -[পাইথনের সাথে মেশিন লার্নিংয়ের পরিচিতি] (https://www.amazon.com/Intr Productions-Machine-Learning-পাইথন-বিজ্ঞানী / dp/1449369413/)
- -[সফটওয়্যার ইঞ্জিনিয়ারদের জন্য মেশিন লার্নিং] (https://github.com/ZuzooVn/machine-learning-for-software-engineers)
+ - [পাইথন মেশিন লার্নিং] (https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
+ - [স্ক্র্যাচ থেকে ডেটা সায়েন্স: পাইথন সহ প্রথম নীতিগুলি] (https://www.amazon.com/Data-Sज्ञान-Scratch-প্রিন্সিপালস-পাইথন/dp/149190142X)
+ - [পাইথনের সাথে মেশিন লার্নিংয়ের পরিচিতি] (https://www.amazon.com/Intr Productions-Machine-Learning-পাইথন-বিজ্ঞানী / dp/1449369413/)
+ - [সফটওয়্যার ইঞ্জিনিয়ারদের জন্য মেশিন লার্নিং] (https://github.com/ZuzooVn/machine-learning-for-software-engineers)
-ডেটা স্কুল: http://www.dataschool.io/
@@ -2049,7 +2049,7 @@ https://github.com/jwasham/coding-interview-university
উপরে কারণ এটি ঠিক অনেক বেশি। কোনও বিষয়ে এটি অতিরিক্ত পরিমাণে নেওয়া সহজ।
আপনি এই শতাব্দীতে ভাড়া পেতে চান, তাই না?
-- ** ইউনিয়ন-সন্ধান করুন **
+- **ইউনিয়ন-সন্ধান করুন**
- [ওভারভিউ] (https://www.coursera.org/learn/data-structures/ নির্বাচন / জেএসএসওয়াই / ওভারভিউ)
- [নিষ্পাপ বাস্তবায়ন] (https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-আইনীকরণ)
- [গাছগুলি] (https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
@@ -2057,7 +2057,7 @@ https://github.com/jwasham/coding-interview-university
- [পথ সংক্ষেপণ] (https://www.coursera.org/learn/data-structures/ নির্বাচন / Q9CVI/path-compression)
- [বিশ্লেষণ বিকল্পসমূহ) (https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
-- ** আরও ডায়নামিক প্রোগ্রামিং ** (ভিডিও)
+- **আরও ডায়নামিক প্রোগ্রামিং**(ভিডিও)
- 6..০০০০: ডায়নামিক প্রোগ্রামিং আই: ফিবোনাচি, সবচেয়ে ছোট পাথ] (https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- 6..০০০০: ডায়নামিক প্রোগ্রামিং II: পাঠ্য সমর্থন, ব্ল্যাকজ্যাক] (https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- 6..০০০০: ডিপি তৃতীয়: প্যারেন্টেসাইজেশন, দূরত্ব সম্পাদনা, ন্যাপস্যাক] (https://www.youtube.com/watch?v=ocZMDMZWCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
@@ -2066,11 +2066,11 @@ https://github.com/jwasham/coding-interview-university
- [.0.০4646: ডায়নামিক প্রোগ্রামিং: সর্ব-সংক্ষিপ্ততম পথ] [https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- 6.০4646: ডায়নামিক প্রোগ্রামিং (শিক্ষার্থী আবৃত্তি)] (https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
-- ** উন্নত গ্রাফ প্রসেসিং ** (ভিডিও)
+- **উন্নত গ্রাফ প্রসেসিং**(ভিডিও)
- [সিঙ্ক্রোনাস বিতরণ করা অ্যালগরিদম: প্রতিসাম্যতা-ব্রেকিং। সংক্ষিপ্ততম পথগুলি ছড়িয়ে পড়া গাছ] (https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
- [অ্যাসিনক্রোনাস বিতরণ করা অ্যালগরিদম: সংক্ষিপ্ততম পথগুলি ছড়িয়ে পড়া গাছ] (https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
-- এমআইটি ** সম্ভাবনা ** (ম্যাথি, এবং ধীরে ধীরে যান, যা ম্যাথিক জিনিসগুলির পক্ষে ভাল) (ভিডিও):
+- এমআইটি**সম্ভাবনা**(ম্যাথি, এবং ধীরে ধীরে যান, যা ম্যাথিক জিনিসগুলির পক্ষে ভাল) (ভিডিও):
- [এমআইটি 6.042 জ-সম্ভাবনার পরিচিতি] (https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
- [এমআইটি 6.042 জে-শর্তাধীন সম্ভাবনা] (https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
- [এমআইটি 6.042 জ-স্বাধীনতা] (https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
@@ -2082,24 +2082,24 @@ https://github.com/jwasham/coding-interview-university
- [সিমসন: আনুমানিক অ্যালগরিদম (ভিডিও)] (https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
-- ** স্ট্রিং ম্যাচিং **
+- **স্ট্রিং ম্যাচিং**
- রবিন-কার্প (ভিডিও):
- -[রবিন কার্পস অ্যালগরিদম] (https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
- -[প্রিকম্পুটিং] (https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- -[অপ্টিমাইজেশন: বাস্তবায়ন এবং বিশ্লেষণ] (https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-বাস্তবায়ন-এবং-বিশ্লেষণ)
- -[টেবিল ডাবলিং, কার্প-রবিন] (https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
- -[রোলিং হ্যাশস, ইমোর্টাইজড বিশ্লেষণ] (https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
+ - [রবিন কার্পস অ্যালগরিদম] (https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
+ - [প্রিকম্পুটিং] (https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
+ - [অপ্টিমাইজেশন: বাস্তবায়ন এবং বিশ্লেষণ] (https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-বাস্তবায়ন-এবং-বিশ্লেষণ)
+ - [টেবিল ডাবলিং, কার্প-রবিন] (https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
+ - [রোলিং হ্যাশস, ইমোর্টাইজড বিশ্লেষণ] (https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
- নুথ-মরিস-প্র্যাট (কেএমপি):
- -[টিউথ-মরিস-প্র্যাট (কেএমপি) স্ট্রিং ম্যাচিং অ্যালগরিদম] (https://www.youtube.com/watch?v=5i7oKodCRJo)
+ - [টিউথ-মরিস-প্র্যাট (কেএমপি) স্ট্রিং ম্যাচিং অ্যালগরিদম] (https://www.youtube.com/watch?v=5i7oKodCRJo)
- বায়ার – মুর স্ট্রিং অনুসন্ধানের অ্যালগরিদম
- -[বয়ূর-মুর স্ট্রিং অনুসন্ধান অ্যালগরিদম] (https://en.wikedia.org/wiki/Boyer%E2%80%93 মুর_স্ট্রিং_সার্চ_ালগোরিদম)
- -[অ্যাডভান্সড স্ট্রিং বয়েয়ার-মুর-হর্সপুল অ্যালগরিদমস (ভিডিও) অনুসন্ধান করছে] [https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [বয়ূর-মুর স্ট্রিং অনুসন্ধান অ্যালগরিদম] (https://en.wikedia.org/wiki/Boyer%E2%80%93 মুর_স্ট্রিং_সার্চ_ালগোরিদম)
+ - [অ্যাডভান্সড স্ট্রিং বয়েয়ার-মুর-হর্সপুল অ্যালগরিদমস (ভিডিও) অনুসন্ধান করছে] [https://www.youtube.com/watch?v=QDZpzctPf10)
- [কোর্সেরা: স্ট্রিংগুলিতে অ্যালগরিদম] (https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
-দুর্দান্ত শুরু হয় তবে কেএমপি কেটে যাওয়ার সময় এটি যতটা প্রয়োজন তত বেশি জটিল হয়ে যায়
-চেষ্টা সুন্দর ব্যাখ্যা
-এড়িয়ে যেতে পারে
--[ ] **শ্রেণীবিভাজন**
+- [ ]**শ্রেণীবিভাজন**
- স্ট্যানফোর্ড বাছাই সম্পর্কিত বক্তৃতা:
- [বক্তৃতা 15 | প্রোগ্রামিং বিমূর্তি (ভিডিও)] (https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
@@ -2107,7 +2107,7 @@ https://github.com/jwasham/coding-interview-university
- শাই সায়মনসন, [অ্যাডুনি.আর।] (Http://www.aduni.org/):
- [অ্যালগরিদম-বাছাই-লেকচার 2 (ভিডিও)] (https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- [অ্যালগরিদম-দ্বিতীয়টি বাছাই-লেকচার 3 (ভিডিও)] (https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- -[ স্টিভেন স্কিয়েনা বাছাই সম্পর্কিত বক্তৃতা:
+ - [ স্টিভেন স্কিয়েনা বাছাই সম্পর্কিত বক্তৃতা:
- [বক্তৃতা 26:46 এ শুরু হয় (ভিডিও)] (https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- [বক্তৃতা 27:40 এ শুরু হয় (ভিডিও)] (https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- [বক্তৃতা শুরু হয় ৩৫:০০ এ (ভিডিও)] (https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
@@ -2137,7 +2137,7 @@ https://github.com/jwasham/coding-interview-university
- [সারদা হার্কের স্বতন্ত্র গণিতের প্রথম ভাগ (৫ টি ভিডিও)] (https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
- সিএসই 373-অ্যালগরিদমের বিশ্লেষণ (25 টি ভিডিও)
- -[আলগোরিদম ডিজাইন ম্যানুয়াল থেকে স্কিয়েনা বক্তৃতা] (https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+ - [আলগোরিদম ডিজাইন ম্যানুয়াল থেকে স্কিয়েনা বক্তৃতা] (https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
- [ইউসি বার্কলে 61 বি (স্প্রিং 2014): ডেটা স্ট্রাকচার (25 টি ভিডিও)] (https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
@@ -2176,7 +2176,7 @@ https://github.com/jwasham/coding-interview-university
- [স্ট্যানফোর্ড: প্রোগ্রামিং প্যারাডিজমস (২ videos টি ভিডিও)] (https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
- [ক্রিস্টোফ পার দ্বারা ক্রিপ্টোগ্রাফির পরিচিতি] (https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
- -[স্লাইডস এবং সমস্যা সেটের পাশাপাশি কোর্স ওয়েবসাইট] (http://www.crypto-textbook.com/)
+ - [স্লাইডস এবং সমস্যা সেটের পাশাপাশি কোর্স ওয়েবসাইট] (http://www.crypto-textbook.com/)
- [মাইনিং ম্যাসিভ ডেটাসেটস-স্ট্যানফোর্ড বিশ্ববিদ্যালয় (৯৯ টি ভিডিও)] (https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
@@ -2186,23 +2186,23 @@ https://github.com/jwasham/coding-interview-university
##কম্পিউটার সায়েন্স কোর্স
--[অনলাইন সিএস কোর্সগুলির ডিরেক্টরি] (https://github.com/open-source-sociversity/computer-s विज्ञान)
--[সিএস কোর্সের ডিরেক্টরী (অনেকগুলি অনলাইন লেকচার সহ)] (https://github.com/prakhar1989/awesome-courses)
+- [অনলাইন সিএস কোর্সগুলির ডিরেক্টরি] (https://github.com/open-source-sociversity/computer-s विज्ञान)
+- [সিএস কোর্সের ডিরেক্টরী (অনেকগুলি অনলাইন লেকচার সহ)] (https://github.com/prakhar1989/awesome-courses)
##কাগজপত্র
পেপারস
--[ক্লাসিক কাগজগুলি ভালবাসেন?] (Https://www.cs.cmu.edu/~crary/819-f09/)
+- [ক্লাসিক কাগজগুলি ভালবাসেন?] (Https://www.cs.cmu.edu/~crary/819-f09/)
- [1978: সিক্যুয়ালাল প্রক্রিয়াগুলি যোগাযোগ করে] (http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- -[গো প্রয়োগ করা হয়েছে] (https://godoc.org/github.com/thomas11/csp)
+ - [গো প্রয়োগ করা হয়েছে] (https://godoc.org/github.com/thomas11/csp)
- [2003: গুগল ফাইল সিস্টেম] (http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
-2012 সালে কলসাস দ্বারা প্রতিস্থাপিত
- [২০০৪: ম্যাপ্রেডস: বড় ক্লাস্টারগুলিতে সরলীকৃত ডেটা প্রসেসিং] (http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
-বেশিরভাগ ক্লাউড ডেটাফ্লো দ্বারা প্রতিস্থাপিত হয়?
- [২০০:: বিগ টেবিল: স্ট্রাকচার্ড ডেটার জন্য বিতরণযোগ্য স্টোরেজ সিস্টেম] (https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
- -[গুগল বিগকুইয়ারির অভ্যন্তরীণ চেহারা] (https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
+ - [গুগল বিগকুইয়ারির অভ্যন্তরীণ চেহারা] (https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
- [২০০:: আলগা-কাপল ডিস্ট্রিবিউটেড সিস্টেমগুলির জন্য নিবিড় লক পরিষেবা] (https://research.google.com/archive/chubby-osdi06.pdf)
- [২০০:: ডায়নামো: অ্যামাজনের সর্বোচ্চ উপলব্ধ কী-মান স্টোর] (http://s3.amazonaws.com/AllThingsDistributes/sosp/amazon-dynamo-sosp2007.pdf)
-ডায়নামো কাগজটি নোএসকিউএল বিপ্লবটিকে সরিয়ে দিয়েছে
@@ -2212,11 +2212,11 @@ https://github.com/jwasham/coding-interview-university
- [২০১২: গুগলের কলসাস] (https://www.wired.com/2012/07/google-colossus/)
-কাগজ পাওয়া যায় না
- 2012: অ্যাড্রেস স্যানিটাইজার: একটি দ্রুত ঠিকানা স্যানিটি পরীক্ষক:
- -[কাগজ] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- -[ভিডিও] (https://www.usenix.org/conferences/atc12/technical-sessions/preferencesation/serebryany)
+ - [কাগজ] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [ভিডিও] (https://www.usenix.org/conferences/atc12/technical-sessions/preferencesation/serebryany)
- 2013: স্প্যানার: গুগলের বিশ্বব্যাপী বিতরণ ডেটাবেস:
- -[কাগজ] (http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- -[ভিডিও] (https://www.usenix.org/node/170855)
+ - [কাগজ] (http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [ভিডিও] (https://www.usenix.org/node/170855)
- [২০১৪: মেশিন লার্নিং: প্রযুক্তিগত tণের উচ্চ-আগ্রহের ক্রেডিট কার্ড] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- [২০১৫: গুগলে অবিচ্ছিন্ন পাইপলাইন] (http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
- [২০১৫: বৃহত্তর স্কেলে উচ্চ-প্রাপ্যতা: বিজ্ঞাপনগুলির জন্য গুগলের ডেটা অবকাঠামো তৈরি করা] (https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
@@ -2226,7 +2226,7 @@ https://github.com/jwasham/coding-interview-university
-##লাইসেন্স
+## লাইসেন্স
[সিসি-বাই-এসএ-4.0] (./ LICENSE.txt)
From acc12e09a09c132aa138858731bf9aebb2ca2efb Mon Sep 17 00:00:00 2001
From: Michael Sambol
Date: Sat, 6 Jan 2024 12:08:41 -0600
Subject: [PATCH 116/173] Update video count
---
README.md | 2 +-
translations/README-af.md | 2 +-
translations/README-ar.md | 2 +-
translations/README-bg.md | 2 +-
translations/README-bn.md | 2 +-
translations/README-cn.md | 2 +-
translations/README-de.md | 2 +-
translations/README-es.md | 2 +-
translations/README-fa.md | 2 +-
translations/README-fr.md | 2 +-
translations/README-he.md | 2 +-
translations/README-hi.md | 2 +-
translations/README-id.md | 2 +-
translations/README-it.md | 2 +-
translations/README-ja.md | 2 +-
translations/README-kh.md | 2 +-
translations/README-ko.md | 2 +-
translations/README-pl.md | 2 +-
translations/README-ptbr.md | 2 +-
translations/README-ru.md | 2 +-
translations/README-th.md | 2 +-
translations/README-tr.md | 2 +-
translations/README-tw.md | 2 +-
translations/README-uk.md | 2 +-
translations/README-ur.md | 2 +-
translations/README-uz.md | 2 +-
translations/README-vi.md | 2 +-
27 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
index 6c53a3d243..a2d9eedc5c 100644
--- a/README.md
+++ b/README.md
@@ -1199,7 +1199,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-af.md b/translations/README-af.md
index 804154d1ea..a9c8f66aaf 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -1201,7 +1201,7 @@ Grafieke kan gebruik word om baie problmeme in rekenaar wetenskap te verteenwoor
- [ ] Reeks van 2-3 minute kort onderwerp videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (46 videos):
+- [ ] Reeks van 2-5 minute kort onderwerp videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-ar.md b/translations/README-ar.md
index a7e3c6907b..8012d11433 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -1277,7 +1277,7 @@ Graphs can be used to represent many problems in computer science, so this secti
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 5c32b86e95..708fc924f6 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -1213,7 +1213,7 @@ pобхождам графи. Ако трябваше да напиша сорт
- [ ] Серия от 2-3 минутни кратки клипове по различни теми (23 клипа)
- [Клипове](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (46 клипа):
+- [ ] Серия от 2-5 минутни кратки клипове по различни теми - Michael Sambol (48 клипа):
- [Клипове](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Алгоритми I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 9d4ef81758..28d35535ab 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -1490,7 +1490,7 @@ https://github.com/jwasham/coding-interview-university
- শর্ট সাবজেক্টের ২-৩ মিনিটের সিরিজ (২৩ টি ভিডিও)
-[ভিডিও] (https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (46 টি ভিডিও):
+- 2-5 মিনিটের সংক্ষিপ্ত বিষয় ভিডিওর সিরিজ-মাইকেল সাম্বোল - Michael Sambol (48 টি ভিডিও):
- [ভিডিও](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [সেজেজউইক ভিডিও-অ্যালগোরিদম আই] (https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 2e6beed115..e95106a5eb 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1154,7 +1154,7 @@
- [ ] 一系列2-3分钟的短主题视频(共23个视频)
- [视频链接](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 一系列2-5分钟的短主题视频 - Michael Sambol(共46个视频):
+- [ ] 一系列2-5分钟的短主题视频 - Michael Sambol(共48个视频):
- [视频链接](https://www.youtube.com/@MichaelSambol)
- [代码示例](https://github.com/msambol/dsa)
- [ ] [Sedgewick的算法课程视频 - 算法I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-de.md b/translations/README-de.md
index 937a4b28c5..6cfdc560b6 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -1367,7 +1367,7 @@ Graphen können genutzt werden, um damit viele verschiedene Probleme in der Info
- [ ] Reihe mit kurzen 2-3 Minuten Videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (46 videos):
+- [ ] Reihe mit kurzen 2-5 Minuten Videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-es.md b/translations/README-es.md
index 830d1ac239..b1bbafd1c1 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -1302,7 +1302,7 @@ Es bueno si quieres repasar frecuentemente.
- [ ] Series de videos cortos sobre temas de 2-3 minutos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (46 videos):
+- [ ] Series de videos cortos sobre temas de 2-5 minutos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 7cb3895eeb..866f91cba5 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -1181,7 +1181,7 @@ Choose one:
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 85902de35c..2a5e2e9501 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -1275,7 +1275,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-he.md b/translations/README-he.md
index 43ded72815..f0d632cfb3 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -1286,7 +1286,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [סרטונים](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [סרטונים](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 520d340666..a2de5e83f2 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -1202,7 +1202,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [ ] 2-3 मिनट के लघु विषय वीडियो की श्रृंखला (23 वीडियो)
- [वीडियो](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (46 वीडियो):
+- [ ] 2-5 मिनट के लघु विषय वीडियो की श्रृंखला - Michael Sambol (48 वीडियो):
- [वीडियो](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [सेजविक वीडियो - एल्गोरिदम I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-id.md b/translations/README-id.md
index 51e1b097cd..20badf9ca4 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -1200,7 +1200,7 @@ Graf (Graphs) dapat digunakan untuk merepresentasikan banyak masalah dalam ilmu
- [ ] Seri video subjek pendek berdurasi 2-3 menit (23 video)
- [Video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (46 video):
+- [ ] Seri video subjek pendek berdurasi 2-5 menit - Michael Sambol (48 video):
- [Video](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Video Sedgewick - Algoritma I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-it.md b/translations/README-it.md
index 14a87f3e45..73bfe42841 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -1208,7 +1208,7 @@ I grafi possono essere usati per rappresentare molti problemi in informatica, pe
- [ ] Series of 2-3 minutes short subject video (23 video)
- [video](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject video - Michael Sambol (46 video):
+- [ ] Series of 2-5 minutes short subject video - Michael Sambol (48 video):
- [video](https://www.youtube.com/@MichaelSambol)
- [code examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick video - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index ef2b0fad13..7f01ffdc90 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -1110,7 +1110,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [ ] 2 ~ 3 分の短い主題ビデオ シリーズ (23 動画)
- [ビデオ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2 ~ 5 分のシリーズ短い主題のビデオ - Michael Sambol (動画 46 件):
+- [ ] 2 ~ 5 分のシリーズ短い主題のビデオ - Michael Sambol (動画 48 件):
- [ビデオ](https://www.youtube.com/@MichaelSambol)
- [コード例](https://github.com/msambol/dsa)
- [ ] [セッジウィック ビデオ - アルゴリズム I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-kh.md b/translations/README-kh.md
index e6bca72b14..2b05dda51e 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -1266,7 +1266,7 @@ Graphs អាចត្រូវបានប្រើដើម្បីបង្
- [ ] Series of 2-3 minutes short subject videos (23 វីដេអូ)
- [វីដេអូ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 វីដេអូ):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 វីដេអូ):
- [វីដេអូ](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [វីដេអូ Sedgewick - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 4d8a53727b..66c2089d31 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -1285,7 +1285,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그
- [ ] 2-3분 분량의 주제별 짧은 영상 시리즈 (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (46 videos):
+- [ ] 2-5분 분량의 주제별 짧은 영상 시리즈 - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 98295aa719..3ed30ea006 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -1239,7 +1239,7 @@ Trie to drzewo węzłów, które obsługuje operacje Znajdź i Wstaw [etc (...)]
- [ ] Seria 2-3 minutowych, krótkich filmów tematycznych (23 wideo)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (46 wideo):
+- [ ] Seria 2–5 minutowych, krótkich filmów tematycznych - Michael Sambol (48 wideo):
- [Wideo](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorytmy I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 69a394713b..14086098e1 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -1308,7 +1308,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] Séries de vídeos curtos (2 - 3 minutos) sobre o assunto (23 vídeos)
- [Vídeos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (46 vídeos):
+- [ ] Séries de vídeos curtos (2 - 5 minutos) sobre o assunto - Michael Sambol (48 vídeos):
- [Vídeos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 1fb7e919f1..3bf2126131 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -1288,7 +1288,7 @@ Google не возьмёт тебя на работу.
- [ ] Серия 2-3 минутных короткие видео по темам (23 видео)
- [Видео](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (46 видео):
+- [ ] Серия коротких 2-5 минутных видео - Michael Sambol (48 видео):
- [Видео](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-th.md b/translations/README-th.md
index 3c507b365f..bc75d66566 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -1282,7 +1282,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 81f9c9f803..0d1bf43701 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -1254,7 +1254,7 @@ Graflar, bilgisayar bilimlerinde birçok sorunu temsil etmek için kullanılabil
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 3508158202..f7bcf7e0d3 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -1232,7 +1232,7 @@
- [ ] 2-3分鐘快速複習影片系列(23個影片)
- [影片](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (46個影片)
+- [ ] 2-5分鐘快速複習影片系列-Michael Sambol (48個影片)
- [影片](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 00c9464e63..72be106e59 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -1332,7 +1332,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] Series of 2-3 minutes short subject videos (23 videos)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (46 videos):
+- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 702cb9866c..259930900e 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -1183,7 +1183,7 @@ If you need more detail on this subject, see "Sorting" section in [Additional De
- [ ] 2-3 منٹ کی مختصر سبجیکٹ ویڈیوز کی سیریز (23 ویڈیوز)
- [ویڈیوز](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (46 ویڈیوز):
+- [ ] 2-5 منٹ کی مختصر موضوع ویڈیوز کی سیریز - مائیکل سمبول (48 ویڈیوز):
- [ویڈیوز](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-uz.md b/translations/README-uz.md
index d4e44265a0..7b73aa5ebd 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -1243,7 +1243,7 @@ Computer science da graflar bir talay masalalarni tasvirlashda ishlatiladi. Shun
- [ ] 2-3 minutlik qisqa mavzuga oid videolar seriyasi (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (46 video):
+- [ ] 2-5 minutlik qisqa mavzuga oid videolar seriyasi - Michael Sambol (48 video):
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 4662c9e781..a156ead91a 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -1244,7 +1244,7 @@ Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của
- [ ] Các video ngắn 2-3 phút (23 video)
- [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Các video ngắn 2-5 phút - Michael Sambol (46 video)
+- [ ] Các video ngắn 2-5 phút - Michael Sambol (48 video)
- [Videos](https://www.youtube.com/@MichaelSambol)
- [Code Examples](https://github.com/msambol/dsa)
- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
From 681c4b73669069b13e63d06a1a0f3d41971ce3e7 Mon Sep 17 00:00:00 2001
From: Michael Sambol
Date: Sat, 6 Jan 2024 12:14:40 -0600
Subject: [PATCH 117/173] Update algo analysis playlist
---
README.md | 2 +-
translations/README-af.md | 2 +-
translations/README-ar.md | 2 +-
translations/README-bg.md | 2 +-
translations/README-bn.md | 2 +-
translations/README-cn.md | 2 +-
translations/README-de.md | 2 +-
translations/README-el.md | 2 +-
translations/README-es.md | 2 +-
translations/README-fa.md | 2 +-
translations/README-fr.md | 2 +-
translations/README-he.md | 2 +-
translations/README-hi.md | 2 +-
translations/README-id.md | 2 +-
translations/README-it.md | 2 +-
translations/README-ja.md | 2 +-
translations/README-kh.md | 2 +-
translations/README-ko.md | 2 +-
translations/README-pl.md | 2 +-
translations/README-ptbr.md | 2 +-
translations/README-ru.md | 2 +-
translations/README-th.md | 2 +-
translations/README-tr.md | 2 +-
translations/README-tw.md | 2 +-
translations/README-uk.md | 2 +-
translations/README-ur.md | 2 +-
translations/README-uz.md | 2 +-
translations/README-vi.md | 2 +-
28 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/README.md b/README.md
index a2d9eedc5c..60b14455b7 100644
--- a/README.md
+++ b/README.md
@@ -569,7 +569,7 @@ But don't forget to do coding problems from above while you learn!
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Well, that's about enough of that.
diff --git a/translations/README-af.md b/translations/README-af.md
index a9c8f66aaf..cab069db32 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -571,7 +571,7 @@ Maar moet nie vergeet om kode probleme op te los terwyl jy leer nie!
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Well, dis genoeg van daardie.
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 8012d11433..6aaa53a15c 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -525,7 +525,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## Data Structures
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 708fc924f6..241d25b5d7 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -565,7 +565,7 @@ pобхождам графи. Ако трябваше да напиша сорт
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Пищови](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Е, това е достатъчно за тази тема.
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 28d35535ab..fea671475e 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -673,7 +673,7 @@ https://github.com/jwasham/coding-interview-university
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
ওয়েল, যে যথেষ্ট যে সম্পর্কে.
diff --git a/translations/README-cn.md b/translations/README-cn.md
index e95106a5eb..ccb3e869cc 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -525,7 +525,7 @@
- [计算复杂性:第1部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [计算复杂性:第2部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [速查表](http://bigocheatsheet.com/)
-- [ ] [[复习] 5分钟内了解大O符号(视频)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
好吧,差不多就到这里了。
diff --git a/translations/README-de.md b/translations/README-de.md
index 6cfdc560b6..e57346e72c 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -549,7 +549,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Spickzettel](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
diff --git a/translations/README-el.md b/translations/README-el.md
index a3057e19d4..c679fd7706 100644
--- a/translations/README-el.md
+++ b/translations/README-el.md
@@ -456,7 +456,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Εάν μερικές διαλέξεις είναι πολύ μαθηματικές, μπορείς να μεταβείς προς τα κάτω και να παρακολουθήσεις μερικά βίντεο σχετικά με τα διακριτά μαθηματικά για να πάρεις όλες τις γνώσεις που απαιτούνται.
diff --git a/translations/README-es.md b/translations/README-es.md
index b1bbafd1c1..995fce0397 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -520,7 +520,7 @@ Escriba código en un pizarrón o en papel, pero no en la computadora. Pruebe co
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Si algunas de las lecturas son muy matemáticas, puede saltar a la parte inferior y ver las matemáticas discretas para tener el conocimiento base.
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 866f91cba5..dfcaa1a646 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -552,7 +552,7 @@ Choose one:
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
بسیارخب، فکر کنم در همین حد کافی باشه.
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 2a5e2e9501..964d90bab6 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -560,7 +560,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
If some of the lectures are too mathy, you can jump down to the bottom and
watch the discrete mathematics videos to get the background knowledge.
diff --git a/translations/README-he.md b/translations/README-he.md
index f0d632cfb3..2b02e12859 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -571,7 +571,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
If some of the lectures are too mathy, you can jump down to the bottom and
diff --git a/translations/README-hi.md b/translations/README-hi.md
index a2de5e83f2..531af59775 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -579,7 +579,7 @@ Anki प्रारूप में मेरा फ्लैशकार्ड
- [कम्प्यूटेशनल जटिलता: सेक्शन 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [कम्प्यूटेशनल जटिलता: धारा 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [चीट शीट] (http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
खैर, बस इतना ही काफी है।
diff --git a/translations/README-id.md b/translations/README-id.md
index 20badf9ca4..5c480e3bce 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -442,7 +442,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## Struktur Data
diff --git a/translations/README-it.md b/translations/README-it.md
index 73bfe42841..d3c97f1e97 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -575,7 +575,7 @@ Ma non dimenticare di esercitarti con i problemi, anche durante lo studio!
- [Complessità Computazionale: Sezione 1 (Articolo in Inglese)](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Complessità Computazionale: Sezione 2 (Articolo in Inglese)](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat-Sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Bene, direi che può bastare.
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 7f01ffdc90..e77a518a1e 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -481,7 +481,7 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
- [計算の複雑さ: セクション 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [計算の複雑さ: セクション 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [チートシート](http://bigocheatsheet.com/)
-- [ ] [【復習】5分でわかるBig-O記譜法(動画)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
まあ、それだけで十分です。
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 2b05dda51e..2cf649ee4a 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -496,7 +496,7 @@ Data Structure ទាំងអស់ដែលខ្ញុំធ្លាប់
- [ភាពស្មុគស្មាញនៃការគណនា៖ ផ្នែកទី ១](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [ភាពស្មុគស្មាញនៃការគណនា៖ ផ្នែកទី ២](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [សន្លឹកជំនួយ](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
---
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 66c2089d31..3329d429df 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -531,7 +531,7 @@ Anki 형식의 내 요약집 데이터베이스: https://ankiweb.net/shared/info
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## 자료구조
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 3ed30ea006..c9a81d08c9 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -483,7 +483,7 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Ściągawka](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## Struktury danych
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index 14086098e1..b5cda2ac42 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -512,7 +512,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/) (Complexidade Computacional: Seção 1)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/) (Complexidade Computacional: Seção 2)
- [ ] [Cheat sheet](http://bigocheatsheet.com/) (Folha de Consultas)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Se alguma das aulas forem muito "matemáticas", você pode pular para o final e
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 3bf2126131..0b6f308c9d 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -565,7 +565,7 @@ Google не возьмёт тебя на работу.
- [Вычислительная сложность: Часть 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Вычислительная сложность: Часть 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Шпаргалка](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Если в некоторых лекциях слишком много математики, вы можете ниже найти и посмотреть
лекции по дискретной математике для получения базовых знаний.
diff --git a/translations/README-th.md b/translations/README-th.md
index bc75d66566..9b6379f73b 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -492,7 +492,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
If some of the lectures are too mathy, you can jump down to the bottom and
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 0d1bf43701..706b52bb5a 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -510,7 +510,7 @@ Kodları beyaz tahtaya ya da kağıda yazın, bilgisayara değil. Örnek girdile
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## Veri Yapıları
diff --git a/translations/README-tw.md b/translations/README-tw.md
index f7bcf7e0d3..70222509f1 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -482,7 +482,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## 資料結構
- ### 陣列
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 72be106e59..d7fc004cf7 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -539,7 +539,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
- [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
If some of the lectures are too mathy, you can jump down to the bottom and
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 259930900e..8ed5285ad1 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -555,7 +555,7 @@
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
یہ اس کے بارے میں کافی ہے.
diff --git a/translations/README-uz.md b/translations/README-uz.md
index 7b73aa5ebd..ed9e722d13 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -486,7 +486,7 @@ Birinchi kodizni doskada yoki qog'ozda yozing, kompyuterda emas. Og'zaki test qi
- [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
- [ ] [Cheat varaq](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
## Ma'lumotlar tuzilmasi (Data structures)
diff --git a/translations/README-vi.md b/translations/README-vi.md
index a156ead91a..3e14a27829 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -571,7 +571,7 @@ Nhưng đừng quên làm các bài toán lập trình ở phía trên trong khi
- [Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Big-O notation in 5 minutes (video)](https://youtu.be/__vX2sjlpXU)
+- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
Ồ, chắc cũng đủ rồi.
From 86ffe5e37d5504a1ddfb60eeacce1d4bd506f72e Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Fri, 2 Feb 2024 12:02:30 +0100
Subject: [PATCH 118/173] Fix order and orientation
I've sorted the entries alphabetically and this fixed the backwards
orientation in the region.
---
README.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 60b14455b7..03c636cb92 100644
--- a/README.md
+++ b/README.md
@@ -17,22 +17,22 @@
Translations:
-- [اردو - Urdu](translations/README-ur.md)
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
-
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
+- [Bahasa Indonesia](translations/README-id.md)
From a70fc388e3f6931419ada967486221f30c033e17 Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Fri, 2 Feb 2024 12:04:04 +0100
Subject: [PATCH 119/173] Fix order
This just fixes the alphabetical order of the entries.
---
README.md | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 03c636cb92..1acc80ea5f 100644
--- a/README.md
+++ b/README.md
@@ -32,26 +32,25 @@
- [ខ្មែរ - Khmer](translations/README-kh.md)
- [中文版本](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
-- [Bahasa Indonesia](translations/README-id.md)
Translations in progress:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
From 61a9f31fda56738ab3ac02185c010853528ece3e Mon Sep 17 00:00:00 2001
From: kiwib0y
Date: Fri, 2 Feb 2024 12:19:03 +0100
Subject: [PATCH 120/173] Update every translation details
I've updated the translations status, for each of the markdown files
and made them as they're in the original english markdown.
---
translations/README-af.md | 39 ++++++++++++++---------------
translations/README-ar.md | 46 +++++++++++++++++++---------------
translations/README-bg.md | 41 +++++++++++++++----------------
translations/README-bn.md | 39 +++++++++++++++--------------
translations/README-de.md | 37 ++++++++++++++++------------
translations/README-es.md | 38 +++++++++++++++-------------
translations/README-fa.md | 39 +++++++++++++++--------------
translations/README-hi.md | 40 +++++++++++++++---------------
translations/README-kh.md | 41 ++++++++++++++++++-------------
translations/README-pl.md | 38 ++++++++++++++++------------
translations/README-ptbr.md | 36 +++++++++++++++++----------
translations/README-tr.md | 45 ++++++++++++++++++----------------
translations/README-tw.md | 49 ++++++++++++++++++-------------------
translations/README-uk.md | 36 +++++++++++++++------------
translations/README-ur.md | 40 +++++++++++++++---------------
15 files changed, 326 insertions(+), 278 deletions(-)
diff --git a/translations/README-af.md b/translations/README-af.md
index cab069db32..b9631bdc0d 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -17,41 +17,40 @@
Vertalings:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
-
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Vertalings aan die gang:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 6aaa53a15c..9f1bd01081 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -22,34 +22,40 @@
الترجمات:
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - الفيتنامبة](translations/README-vi.md)
-- [الإسبانية](translations/README-es.md)
-- [(البرتغالية (البرازيلية](translations/README-ptbr.md)
-- [البولندية](translations/README-pl.md)
- [繁體中文](translations/README-tw.md)
-- [اليابانية (日本語)](translations/README-ja.md)
-- [الروسية](translations/README-ru.md)
-
ترجمات تحت الإعداد:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [الإندونيسية](https://github.com/jwasham/coding-interview-university/issues/101)
-- [العربية](https://github.com/jwasham/coding-interview-university/issues/98)
-- [التركية](https://github.com/jwasham/coding-interview-university/issues/90)
-- [الفرنسية](https://github.com/jwasham/coding-interview-university/issues/89)
-- [الأكرانية](https://github.com/jwasham/coding-interview-university/issues/106)
-- [الكورية(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [أردو](https://github.com/jwasham/coding-interview-university/issues/140)
-- [التايلندية](https://github.com/jwasham/coding-interview-university/issues/156)
-- [اليونانية](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index eb58b1e76c..06ef98f1ff 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -4,7 +4,7 @@
>
> Учих между 8-12 часа на ден в продължение на няколко месеца. Това е историята ми: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> **Моля обърнете внимание:** Няма да Ви се налага да учите колкото мен. Загубих много време, учейки неща, които нямах нужда да знам. Може да прочетете повече за това надолу. Ще Ви помогна да достигнете до крайната цел без да прахосвате скъпото си време.
+> **Моля обърнете внимание:** Няма да Ви се налага да учите колкото мен. Загубих много време, учейки неща, които няма нужда да знам. Може да прочетете повече за това надолу. Ще Ви помогна да достигнете до крайната цел без да прахосвате скъпото си време.
>
> Темите, изредени тук, ще Ви подготвят добре за техническо интервю за почти всяка една компания, включително гигантите Amazon, Facebook, Google и Microsoft
>
@@ -13,41 +13,40 @@
Преводи:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
-
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Текущи преводи:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 1bf2624ab9..3cb1325d15 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -17,39 +17,40 @@
অনুবাদ:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
-
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
অনুবাদ অগ্রগতি:
-
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-de.md b/translations/README-de.md
index e57346e72c..ba1463d89f 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -15,33 +15,40 @@
Übersetzungen:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
- [Português Brasileiro](translations/README-ptbr.md)
-
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Übersetzungen in Bearbeitung:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Polish](https://github.com/jwasham/coding-interview-university/issues/122)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Japanese (日本語)](https://github.com/jwasham/coding-interview-university/issues/257)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-es.md b/translations/README-es.md
index 995fce0397..298563407a 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -14,36 +14,40 @@
Traducciones:
-
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Traducciones en progreso:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-fa.md b/translations/README-fa.md
index dfcaa1a646..b0e8fdb113 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -17,37 +17,40 @@
ترجمه ها:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
در حال ترجمه:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
@@ -1972,4 +1975,4 @@ Sit back and enjoy.
## LICENSE
-[CC-BY-SA-4.0](./LICENSE.txt)
\ No newline at end of file
+[CC-BY-SA-4.0](./LICENSE.txt)
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 531af59775..8e18e05f36 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -18,41 +18,41 @@
अनुवाद:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
-
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
अनुवाद जारी है:
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 2cf649ee4a..6c6a222da7 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -17,33 +17,40 @@
ការបកប្រែ៖
-- [ភាសារចិន - 中文版本](translations/README-cn.md)
-- [ភាសារវៀតណាម - Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [ភាសារអេស្ប៉ាញ - Español](translations/README-es.md)
-- [ភាសារព័រទុយហ្កាល់ - Português Brasileiro](translations/README-ptbr.md)
-- [ភាសារប៉ូឡូញ - Polish](translations/README-pl.md)
-
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
ភាសារដែលកំពុងបកប្រែ:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Japanese (日本語)](https://github.com/jwasham/coding-interview-university/issues/257)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-pl.md b/translations/README-pl.md
index c9a81d08c9..7f5696c103 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -13,34 +13,40 @@
Tłumaczenia:
-
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](https://github.com/mbiesiad/coding-interview-university/blob/master/translations/README-pl.md)
-
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Tłumaczenia w trakcie:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Japanese (日本語)](https://github.com/jwasham/coding-interview-university/issues/257)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index b5cda2ac42..c1ebca0c38 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -17,27 +17,37 @@
**Tradutores**: [Marlon Aviz](https://github.com/avizmarlon) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=avizmarlon)), [marceloogeda](https://github.com/marceloogeda) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=marceloogeda)), [laris151](https://github.com/laris151) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=laris151))
Traduções:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](README-ptbr.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Traduções em progresso:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
-- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Polish](https://github.com/jwasham/coding-interview-university/issues/122)
-- [German](https://github.com/jwasham/coding-interview-university/issues/135)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 706b52bb5a..5d8fdf6fce 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -16,37 +16,40 @@
Translations:
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamca](translations/README-vi.md)
-- [İspanyolca](translations/README-es.md)
-- [Brezilya Portekizcesi](translations/README-ptbr.md)
-- [Lehçe](translations/README-pl.md)
- [繁體中文](translations/README-tw.md)
-- [Japonca (日本語)](translations/README-ja.md)
-- [Rusça](translations/README-ru.md)
-- [Almanca](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Kmer](translations/README-kh.md)
-- [Özbekçe](translations/README-uz.md)
-
Translations in progress:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Arapça](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Türkçe](https://github.com/jwasham/coding-interview-university/issues/90)
-- [Fransızca](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Yunanca](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 70222509f1..7ca08068a6 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -14,41 +14,40 @@
翻譯:
-- [中文版本](README-cn.md)
-- [Tiếng Việt - Vietnamese](README-vi.md)
-- [Español](README-es.md)
-- [Português Brasileiro](README-ptbr.md)
-- [Polish](README-pl.md)
-- [繁體中文](README-tw.md)
-- [Japanese (日本語)](README-ja.md)
-- [Russian](README-ru.md)
-- [German](README-de.md)
-- [Bahasa Indonesia](README-id.md)
-- [ខ្មែរ - Khmer](README-kh.md)
-- [Uzbek](README-uz.md)
-- [Bulgarian](README-bg.md)
-- [বাংলা - Bangla](README-bn.md)
-
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
正在翻譯的項目:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index d7fc004cf7..f7f900aff2 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -20,36 +20,40 @@ Microsoft.
Переклади:
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
Переклади в процесі:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 8ed5285ad1..867e306b7d 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -13,41 +13,41 @@
ترجمہ:
-
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
+- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [中文版本](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
ترجمہ جاری ہے:
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
-
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
From aea2f5cb57d8c98017435bb7016afdb2a1d47440 Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Thu, 22 Feb 2024 19:25:26 +0800
Subject: [PATCH 121/173] docs: update Chinese translation for algorithm
analysis video URL
---
translations/README-cn.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index ccb3e869cc..b8ae4a33d5 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -525,7 +525,7 @@
- [计算复杂性:第1部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
- [计算复杂性:第2部分](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
- [ ] [速查表](http://bigocheatsheet.com/)
-- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
+- [ ] [[回顾] 在 18 分钟内分析算法(播放列表)(视频)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
好吧,差不多就到这里了。
From 0437f2c080c4d38c7275f227d505986554f2711a Mon Sep 17 00:00:00 2001
From: Mark Qian
Date: Fri, 1 Mar 2024 21:00:23 -0500
Subject: [PATCH 122/173] Update README.md to include Codemia as a tool to
practice system design problems
codemia.io is a platform for practicing and studying system design problem. Users can practice alone via AI tool or share their solution on the platform to get human feedback as well.
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 1acc80ea5f..17a70999e2 100644
--- a/README.md
+++ b/README.md
@@ -1245,6 +1245,7 @@ Mock Interviews:
- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
- [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.
## Be thinking of for when the interview comes
From e7ba3825058a8c200e0f058074deb2ab1b403024 Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Tue, 5 Mar 2024 21:00:01 +0800
Subject: [PATCH 123/173] docs: Add new resource for practicing system design
problems
---
translations/README-cn.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index b8ae4a33d5..1d29ed3813 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -1201,6 +1201,7 @@
- [interviewing.io:与资深工程师进行模拟面试 ](https://interviewing.io) - 匿名算法/系统设计面试,与FAANG公司的资深工程师进行。
- [Meetapro:与顶级FAANG面试官进行模拟面试 ](https://meetapro.com/?utm_source=ciu) - 类似Airbnb的模拟面试/指导平台。
- [Hello Interview:与专家教练和人工智能模拟面试](https://www.hellointerview.com/?utm_source=ciu) - 直接与人工智能或 FAANG 员工工程师和经理面试。
+- [Codemia:通过人工智能或社区解决方案和反馈来练习系统设计问题](https://codemia.io/?utm_source=ciu) - 通过AI练习工具来解决系统设计问题。与社区分享你的解决方案,以获得反馈。.
## 当面试来临的时候
From 6a01ab5037306ff8761be3b81a1e0d4b783dab81 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:28:28 +0800
Subject: [PATCH 124/173] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 17a70999e2..e31e5b01c9 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From cd1c1037f6f6de3e67b51f46bd0760fb3ba1599a Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:33:53 +0800
Subject: [PATCH 125/173] Update README-af.md
---
translations/README-af.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-af.md b/translations/README-af.md
index b9631bdc0d..41d8f57fb0 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -30,7 +30,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 2dc9229a6e6cb7b882cde6b1fabd551f5b6dead2 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:34:01 +0800
Subject: [PATCH 126/173] Update README-ar.md
---
translations/README-ar.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 9f1bd01081..14d7b3e293 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -35,7 +35,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From d213042c813be9a71c5f3ce3701c913d55e1792a Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:34:10 +0800
Subject: [PATCH 127/173] Update README-bg.md
---
translations/README-bg.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 06ef98f1ff..0ac2b95a7d 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -26,7 +26,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From e09e79ca562bd500782d7efe35f108a6446ba779 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:34:20 +0800
Subject: [PATCH 128/173] Update README-bn.md
---
translations/README-bn.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-bn.md b/translations/README-bn.md
index 3cb1325d15..de98566ffb 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -30,7 +30,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 513b8cd4d1bcd6dc1994f8683457eb4789a0c1ee Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:34:47 +0800
Subject: [PATCH 129/173] Update README-de.md
---
translations/README-de.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-de.md b/translations/README-de.md
index ba1463d89f..d3479e6bb3 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -28,7 +28,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 0d5804a0a9ec3caf8a7966603be255883a3689d8 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:35:00 +0800
Subject: [PATCH 130/173] Update README-es.md
---
translations/README-es.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-es.md b/translations/README-es.md
index 298563407a..d4a3600884 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -27,7 +27,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 4da2bff9b825f68976e4a155978f51206c6189e0 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:35:10 +0800
Subject: [PATCH 131/173] Update README-fa.md
---
translations/README-fa.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-fa.md b/translations/README-fa.md
index b0e8fdb113..2a4e5296db 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -30,7 +30,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 4d0a4cff79bfa277ee22a738bca15f15e90d7083 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:35:33 +0800
Subject: [PATCH 132/173] Update README-hi.md
---
translations/README-hi.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 8e18e05f36..7b19b2296c 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -31,7 +31,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 8019a4a1e6002781ac468262b0e90f49b4438e1a Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:36:02 +0800
Subject: [PATCH 133/173] Update README-ja.md
---
translations/README-ja.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-ja.md b/translations/README-ja.md
index e77a518a1e..4b85e59a5f 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -12,7 +12,7 @@
> *あなたに最高の幸運がありますように!*
翻訳:
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [TiếngViệt - ベトナム語](translations/README-vi.md)
- [Español](translations/README-es.md)
@@ -1862,4 +1862,4 @@ Anki 形式のフラッシュカード データベース: https://ankiweb.net/s
## ライセンス
-[CC-BY-SA-4.0](./LICENSE.txt)
\ No newline at end of file
+[CC-BY-SA-4.0](./LICENSE.txt)
From c45dba6e09aa321aa2f334b41435ffb88e43e5df Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:36:12 +0800
Subject: [PATCH 134/173] Update README-kh.md
---
translations/README-kh.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-kh.md b/translations/README-kh.md
index 6c6a222da7..23a2a16df0 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -30,7 +30,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 8117685dc705374ffa0913fc2e415b2b59a3b294 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:36:28 +0800
Subject: [PATCH 135/173] Update README-pl.md
---
translations/README-pl.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 7f5696c103..56e964f107 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -26,7 +26,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From d6074a5a99370b111976282a989e2d5b581c66b7 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:36:45 +0800
Subject: [PATCH 136/173] Update README-th.md
---
translations/README-th.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-th.md b/translations/README-th.md
index 9b6379f73b..32e4acea79 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -6,7 +6,7 @@
> *ขอให้คุณโชคดี!*
ภาษาอื่นๆ:
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- กำลังดำเนินการแปลภาษา:
- [Español](https://github.com/jwasham/coding-interview-university/issues/80)
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
From ad26ad9a9f3ddc00ed7c333049439559c6bc9e42 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:36:55 +0800
Subject: [PATCH 137/173] Update README-tr.md
---
translations/README-tr.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-tr.md b/translations/README-tr.md
index 5d8fdf6fce..a7dd4dd3e0 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -29,7 +29,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 47894f68cc50febdbc6aa93b067375e5b00bcce4 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:37:05 +0800
Subject: [PATCH 138/173] Update README-tw.md
---
translations/README-tw.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 7ca08068a6..f88aca81ca 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -27,7 +27,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From d1f140c2556fddb280e20463248c99278a9803e1 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:37:14 +0800
Subject: [PATCH 139/173] Update README-uk.md
---
translations/README-uk.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index f7f900aff2..4fba162e4e 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -33,7 +33,7 @@ Microsoft.
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 9be6a0c67b45e152eb942ef02e07665a5995251d Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:37:23 +0800
Subject: [PATCH 140/173] Update README-ur.md
---
translations/README-ur.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-ur.md b/translations/README-ur.md
index 867e306b7d..a50f85c88f 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -27,7 +27,7 @@
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [中文版本](translations/README-cn.md)
+- [简体中文](translations/README-cn.md)
- [繁體中文](translations/README-tw.md)
From 43aa5a0f0a0cb01cbd35097ff0834d36ad9e5da9 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:43:38 +0800
Subject: [PATCH 141/173] Update README-tw.md
---
translations/README-tw.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index f88aca81ca..c7c60bfc52 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -1,13 +1,13 @@
# Coding Interview University
> 原先我為了成為一個軟體工程師而建立這份簡單的讀書主題清單(To-do list),
-> 但這份To-do list隨著時間而膨脹成這個樣子。 [做完這份To-do list上的每個目標後,我成為了Amazon的工程師](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> 但這份To-do list隨著時間而儼然成為了一個很大的清單。 [做完這份To-do list上的每個目標後,我成為了Amazon的工程師](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
> 你或許不需要像我讀一樣多。但是,每個讓你成為一位稱職工程師所需要的知識都在這裡了。
>
> 我每天讀8~12小時的書,這樣持續了好幾個月。這是我的故事:[為什麼我為了Google面試而讀了8個月](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
> 在這份To-do list內的主題會讓你擁有足夠的知識去面對幾乎每家軟體公司的專業面試,
-> 這些公司包含了科技巨獸,例如Amazon、Facebook、Google,或者是Microsoft。
+> 這些公司包含了諸多科技巨獸,例如Amazon、Facebook、Google,或者是Microsoft。
>
> *祝你好運!*
From c752a8fa52f6acf099ca78163c48720dc4f390e0 Mon Sep 17 00:00:00 2001
From: "Andy Lu (Lu, Yu-An)"
Date: Tue, 16 Apr 2024 10:44:00 +0800
Subject: [PATCH 142/173] Update README-tw.md
---
translations/README-tw.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/translations/README-tw.md b/translations/README-tw.md
index c7c60bfc52..05c156f84a 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -1,7 +1,7 @@
# Coding Interview University
> 原先我為了成為一個軟體工程師而建立這份簡單的讀書主題清單(To-do list),
-> 但這份To-do list隨著時間而儼然成為了一個很大的清單。 [做完這份To-do list上的每個目標後,我成為了Amazon的工程師](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> 但這份To-do list儼然隨著時間成為了一個很長的清單。 [做完這份To-do list上的每個目標後,我成為了Amazon的工程師](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
> 你或許不需要像我讀一樣多。但是,每個讓你成為一位稱職工程師所需要的知識都在這裡了。
>
> 我每天讀8~12小時的書,這樣持續了好幾個月。這是我的故事:[為什麼我為了Google面試而讀了8個月](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
From 3af861bad03e9ff5c97e903dbd73687e5236d841 Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 02:45:15 +0530
Subject: [PATCH 143/173] Create README-mr.md
---
translations/README-mr.md | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 translations/README-mr.md
diff --git a/translations/README-mr.md b/translations/README-mr.md
new file mode 100644
index 0000000000..8188df40cf
--- /dev/null
+++ b/translations/README-mr.md
@@ -0,0 +1,14 @@
+# कोडिंग साक्षात्कार विद्यापीठ
+
+> मी प्रारंभिकपणे ह्या सॉफ्टवेअर इंजिनिअर बनण्याच्या अभ्यास विषयांची संक्षिप्त सूची म्हणून हे निर्माण केलं होतं,
+> परंतु ते आता आपण दिसतं असं मोठं सूची व्हायला वाढलं. या अभ्यास योजनेवर पास केल्यानंतर, [मी Amazon वर सॉफ्टवेअर विकास अभियंता म्हणून नोकरी मिळवली](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> आपल्याला असं अधिक अभ्यास करण्याची आवश्यकता नसेल. काहीही आपल्याला येऊ शकणार नाही म्हणून आम्ही दाखवणार आहोत.
+
+> मी दिवसात 8-12 तास अभ्यास केले, काही महिन्यांसाठी. या माझ्या कथेचं असं आहे: [Google साक्षात्कारासाठी मी 8 महिन्यांसाठी पूर्ण वेळ अभ्यास केलं आहे का नाही हे का](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+
+> **कृपया लक्षात घ्या:** आपल्याला मला अधिक अभ्यास करण्याची आवश्यकता नसेल. मी अनावश्यक गोष्टींवर अनेक वेळा वेळा अवधी निघाली. त्याबद्दल अधिक माहिती खाली आहे. आपल्या मौल्यवान वेळाची व्यर्थ झाली नाही, मी आपल्याला त्यांच्या अभ्यासात येण्यासाठी मदत करेन.
+
+> येथील आयटम्स आपल्याला केवळ किटकिटायला तक्रारी साक्षात्कारासाठी अचूक तयार करतील,
+> समाविष्ट: Amazon, Facebook, Google, आणि Microsoft जस्ती राजकारणी कंपन्या.
+
+> _तुम्हाला शुभेच्छा!_
From cc68ad1e52d0356c17b38bd1bf56fad50885c36b Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 03:07:24 +0530
Subject: [PATCH 144/173] wip marathi translation
---
translations/README-mr.md | 68 +++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/translations/README-mr.md b/translations/README-mr.md
index 8188df40cf..b8bcde2360 100644
--- a/translations/README-mr.md
+++ b/translations/README-mr.md
@@ -12,3 +12,71 @@
> समाविष्ट: Amazon, Facebook, Google, आणि Microsoft जस्ती राजकारणी कंपन्या.
> _तुम्हाला शुभेच्छा!_
+
+
+भाषांतर:
+
+- [Bahasa Indonesia](translations/README-id.md)
+- [Bulgarian](translations/README-bg.md)
+- [Español](translations/README-es.md)
+- [German](translations/README-de.md)
+- [Japanese (日本語)](translations/README-ja.md)
+- [Polish](translations/README-pl.md)
+- [Português Brasileiro](translations/README-ptbr.md)
+- [Russian](translations/README-ru.md)
+- [Tiếng Việt - Vietnamese](translations/README-vi.md)
+- [Urdu - اردو](tanslations/README-ur.md)
+- [Uzbek](translations/README-uz.md)
+- [বাংলা - Bangla](translations/README-bn.md)
+- [ខ្មែរ - Khmer](translations/README-kh.md)
+- [简体中文](translations/README-cn.md)
+- [繁體中文](translations/README-tw.md)
+
+
+
+भाषांतर कार्यात आहे:
+
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
+- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
+- [French](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
+- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
+- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
+- [मराठी](https://github.com/jwasham/coding-interview-university/issues/1002)
+
+
+
+
+## हे काय आहे?
+
+
+
+हे माझ्या अनेक महिन्यांचे अभ्यास योजना आहे, ज्यामध्ये मी एक मोठ्या कंपनीसाठी सॉफ्टवेअर इंजिनिअर बनण्यासाठी प्रयत्नशील असेल.
+
+**आवश्यक:**
+
+- कोडिंगसह थोड्या अनुभवासह (वेरिअबल्स, लूप्स, मेथड्स/फंक्शन्स, इत्यादी)
+- धैर्य
+- वेळ
+
+ध्यान द्या कि ही सॉफ्टवेअर इंजिनिअरिंगसाठी अभ्यास योजना आहे, असे की फ्रंटएंड इंजिनिअरिंग किंवा फुल-स्टॅक डेव्हलपमेंटसाठी नाही. हे वास्तविकपणे
+त्या करियर मार्गांसाठी अनेक रोडमॅप आणि पाठ्यक्रम इतर कुठल्या ठिकाणी उपलब्ध आहेत (https://roadmap.sh/ पाहा).
+
+कॉलेज कॉम्प्युटर सायन्स कार्यक्रममध्ये शिकायला खूप काही आहे, परंतु मुलाखतसाठी 75% जाणून असल्यास ह्याची काही पुरेशी माहिती आहे, म्हणजे मला येथे आवर्जू केलेले आहे.
+पूर्ण CS स्वतःशिक्षित कार्यक्रमसाठी, माझ्या अभ्यास योजनेतील संसाधने कामरान अहमदच्या कॉम्प्युटर सायन्स रोडमॅपमध्ये समाविष्ट केली गेली आहेत: https://roadmap.sh/computer-science
+
+---
From d2c19ba4ba013ded2b6022116425d4b1e27a3c4a Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 03:18:33 +0530
Subject: [PATCH 145/173] wip marathi translation
Why use it?
How to use it
Don't feel you aren't smart enough
A Note About Video Resources
Choose a Programming Language
Optional Extra Topics & Resources
Table of Contents
---
translations/README-mr.md | 246 ++++++++++++++++++++++++++++++++++++++
1 file changed, 246 insertions(+)
diff --git a/translations/README-mr.md b/translations/README-mr.md
index b8bcde2360..196c65556b 100644
--- a/translations/README-mr.md
+++ b/translations/README-mr.md
@@ -80,3 +80,249 @@
पूर्ण CS स्वतःशिक्षित कार्यक्रमसाठी, माझ्या अभ्यास योजनेतील संसाधने कामरान अहमदच्या कॉम्प्युटर सायन्स रोडमॅपमध्ये समाविष्ट केली गेली आहेत: https://roadmap.sh/computer-science
---
+
+## विषयाची सूच
+
+### अभ्यास योजना
+
+- [हे काय आहे?](#what-is-it)
+- [ते का वापरावे?](#why-use-it)
+- [ते कसे वापरावे](#how-to-use-it)
+- [तुम्हाला तुम्हाला मोठा प्रतिबंधित वाटत नसावं](#dont-feel-you-arent-smart-enough)
+- [व्हिडिओ संसाधनांबद्दल एक नोट](#a-note-about-video-resources)
+- [प्रोग्रामिंग भाषा निवडा](#choose-a-programming-language)
+- [डेटा संरचनांसाठी पुस्तके आणि अल्गोरिदम्स](#books-for-data-structures-and-algorithms)
+- [मुलाखत सज्जा पुस्तके](#interview-prep-books)
+- [माझे चुकीचे का न करा](#dont-make-my-mistakes)
+- [तुम्हाला काहीही दिसेल नाही याबद्दल](#what-you-wont-see-covered)
+- [दैनिक योजना](#the-daily-plan)
+- [कोडिंग प्रश्नांचे अभ्यास](#coding-question-practice)
+- [कोडिंग समस्या](#coding-problems)
+
+### Topics of Study
+
+- [अल्गोरिदमिक जटिलता / बिग-ओ / अनिन्द्य विश्लेषण](#algorithmic-complexity--big-o--asymptotic-analysis)
+- [डेटा संरचना](#data-structures)
+ - [अॅरे](#arrays)
+ - [लिंक्ड लिस्ट](#linked-lists)
+ - [स्टॅक](#stack)
+ - [क्यू](#queue)
+ - [हॅश टेबल](#hash-table)
+- [अधिक माहिती](#more-knowledge)
+ - [बायनरी शोध](#binary-search)
+ - [बिटव्हाइझ कार्ये](#bitwise-operations)
+- [झाडे](#trees)
+ - [झाडे - परिचय](#trees---intro)
+ - [बायनरी शोध झाडे: बीएसटी](#binary-search-trees-bsts)
+ - [हीप / प्राथमिक क्यू / बायनरी हीप](#heap--priority-queue--binary-heap)
+ - संतुलित शोध झाडे (सामान्य अवधारणा, तपशील नाही)
+ - पट्ट्यांतरण: प्रीऑर्डर, इनॉर्डर, पोस्टऑर्डर, बीएफएस, डीएफएस
+- [क्रमवार सामुग्री व्यवस्थापन](#sorting)
+ - निवड
+ - उत्पादन
+ - हीपसॉर्ट
+ - क्विकसॉर्ट
+ - मर्जसॉर्ट
+- [ग्राफ](#graphs)
+ - प्रेषित
+ - अप्रेषित
+ - अजॅसेन्सी मॅट्रिक्स
+ - अजॅसेन्सी लिस्ट
+ - पट्ट्यांतरण: बीएफएस, डीएफएस
+- [अधिक माहिती](#even-more-knowledge)
+ - [पुनरावर्तन](#recursion)
+ - [डायनॅमिक प्रोग्रामिंग](#dynamic-programming)
+ - [नमूद प्रकार](#design-patterns)
+ - [कॉम्बिनेटोरिक्स (न निवडा क) आणि प्रायव्हबिलिटी](#combinatorics-n-choose-k--probability)
+ - [एनपी, एनपी-संपूर्ण आणि अंदाज अल्गोरिदम](#np-np-complete-and-approximation-algorithms)
+ - [कसे कंप्यूटर प्रोग्राम प्रक्रिया](#how-computers-process-a-program)
+ - [कॅश](#caches)
+ - [प्रक्रिया आणि थ्रेड](#processes-and-threads)
+ - [Testing](#testing)
+ - [स्पर्श आणि संदेशांचे शोध](#string-searching--manipulations)
+ - [त्राय](#tries)
+ - [फ्लोटिंग पॉइंट नंबर्स](#floating-point-numbers)
+ - [यूनिकोड](#unicode)
+ - [एंडियनेस](#endianness)
+ - [नेटवर्किंग](#networking)
+- [निवड अभ्यास](#final-review)
+
+### नोकरी मिळवणे
+
+- [तुमचा रिझ्यूमे अद्यतन करा](#update-your-resume)
+- [नोकरी शोधा](#find-a-job)
+- [मुलाखत प्रक्रिया आणि सामान्य मुलाखत साजरी](#interview-process--general-interview-prep)
+- [मुलाखत येत्या वेळेसाठी ध्यानात असल्याचं का](#be-thinking-of-for-when-the-interview-comes)
+- [मुलाखतादारांसाठी प्रश्न](#have-questions-for-the-interviewer)
+- [एकदा तुम्हाला नोकरी मिळाली नंतर](#once-youve-got-the-job)
+
+**---------------- सर्व खालीलपैकी विचारण्यात आणणे ऐच्छिक आहे. ----------------**
+
+### ऐच्छिक अतिरिक्त विषय आणि संसाधने
+
+- [अतिरिक्त पुस्तके](#additional-books)
+- [सिस्टम डिझाइन, स्केलेबिलिटी, डेटा हॅंडलिंग](#system-design-scalability-data-handling) (जेव्हा तुम्हाला 4+ वर्षांचा अनुभव आहे)
+- [अधिक शिक्षण](#additional-learning)
+ - [कॉम्पायलर्स](#compilers)
+ - [इमॅक्स आणि व्हाई(एम)](#emacs-and-vim)
+ - [यूनिक्स कमांड लाईन टूल्स](#unix-command-line-tools)
+ - [माहिती सिद्धांत](#information-theory-videos)
+ - [पॅरिटी & हमिंग कोड](#parity--hamming-code-videos)
+ - [एन्ट्रॉपी](#entropy)
+ - [क्रिप्टोग्राफी](#cryptography)
+ - [संपीडन](#compression)
+ - [कंप्यूटर सुरक्षा](#computer-security)
+ - [कचरा संग्रह](#garbage-collection)
+ - [समान कार्यक्रमीकरण](#parallel-programming)
+ - [संदेशपाठ, सिरिअलिझेशन, आणि कतार प्रणाली](#messaging-serialization-and-queueing-systems)
+ - [ए\*](#a)
+ - [फास्ट फूरियर ट्रांसफॉर्म](#fast-fourier-transform)
+ - [ब्लूम फिल्टर](#bloom-filter)
+ - [हायपरलॉगलॉग](#hyperloglog)
+ - [स्थानिकता-संवेगी ह्याशिंग](#locality-sensitive-hashing)
+ - [वॅन एम्डे बोस झाडे](#van-emde-boas-trees)
+ - [अभिवृद्धित डेटा संरचना](#augmented-data-structures)
+ - [संतुलित शोध झाडे](#balanced-search-trees)
+ - AVL झाडे
+ - स्प्ले झाडे
+ - लाल/काळ झाडे
+ - 2-3 शोध झाडे
+ - 2-3-4 झाडे (किंवा 2-4 झाडे)
+ - N-अरे (K-अरे, M-अरे) झाडे
+ - B-झाडे
+ - [k-D झाडे](#k-d-trees)
+ - [स्किप झाडे](#skip-lists)
+ - [नेटवर्क फ्लो](#network-flows)
+ - [विभाजित सेट्स & युनियन फिंड](#disjoint-sets--union-find)
+ - [फास्ट प्रोसेसिंगसाठी गणित](#math-for-fast-processing)
+ - [ट्रेप](#treap)
+ - [लीनियर प्रोग्रामिंग](#linear-programming-videos)
+ - [ज्यामिती, कोणज्यात्मक कवळ](#geometry-convex-hull-videos)
+ - [विचारमगारी गणित](#discrete-math)
+- [काही विषयांवर अतिरिक्त माहिती](#additional-detail-on-some-subjects)
+- [व्हिडिओ सिरिज](#video-series)
+- [कॉम्प्यूटर विज्ञान पाठ्यक्रम](#computer-science-courses)
+- [पेपर्स](#papers)
+
+---
+
+## ते का वापरावे?
+
+जर तुम्ही एक मोठ्या कंपनीसाठी सॉफ्टवेअर इंजिनिअर म्हणून काम करण्याची इच्छा असेल, तर तुम्हाला हे गोष्टी माहित असणे आवश्यक आहे.
+
+जर तुम्ही कॉम्प्युटर सायन्समधील डिग्री मिस केली असेल, जसे मला झालेलं, तर हे तुम्हाला पूर्ण करून चार वर्ष तुमचे आयुष्य उजवावे.
+
+जेव्हा मी हा प्रकल्प सुरू केला, तेव्हा मला एक स्टॅक आणि एक हिपचा फरक माहित नसलेलं, बिग-ओ काहीही नसलेलं, किव्हा वृक्षांचे काहीही माहित नसलेलं, किंवा ग्राफ कसे अनुवर्तन करावा ते. जर मला कोणत्याही स्थितीत सॉर्टिंग अॅल्गोरिथम कोड करायचा होता, तर मी तुम्हाला सांगू शकतो की तो खूप खराब होता. माझ्याकडून विकसित केलेल्या प्रत्येक डेटा संरचनेला भाषेतून बनवले गेले होते, आणि मला त्यांचं कसं काम करतं याचं माहित नसलं. मला कधीही मेमरी व्यवस्थापित करायची असते नाही, जर काही प्रक्रिया जी चालू होती त्याच्यावेळी "मेमरी आउट ऑफ मेमरी" चुका देतात, आणि तर मी काही मल्टीडिमेंशनल अॅरे वापरलेले होते आणि हजारों एसोसिएटिव्ह अॅरे, पण मला कधीही त्यांची संरचना सुरूसुरू करण्याची गरज नसली.
+
+हा एक लांब प्लॅन आहे. तो तुमच्या अवधीत महिन्यां लागू शकतो. जर तुम्ही आधीच बरेच काही ओळखत असाल, तर तुम्हाला ते चांगल्या वेळेत अधिक काही नसेल.
+
+## ते कसे वापरावे
+
+सर्व काहीच्या खाली एक आउटलाईन आहे, आणि तुम्हाला पायासाठी प्रवृत्त करण्यासाठी वस्तुंची अगदीची क्रमवारी नक्कीच उघडवायची आहे.
+
+मी GitHubचा विशेष मार्कडाउन फ्लेवर वापरत आहे, जिथे प्रगतीसाठी कामाच्या याद्या ट्रॅक करण्यासाठी कार्य सूची आहेत.
+
+- [जास्तीत जास्त गिटहब-फ्लेवर्ड मार्कडाउनबद्दल अधिक माहिती](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### जर तुम्हाला गिट वापरायला आवडत नसेल
+
+या पानावर, प्रथमत: कोड बटणावर क्लिक करा, त्यानंतर "Download ZIP" वर क्लिक करा. झिप फाइल डाउनलोड करा आणि तुम्ही टेक्स्ट फाइलसह काम करू शकता.
+
+जर तुम्ही मार्कडाउन काही समजता कोड एडिटरमध्ये उघडला असेल, तर तुम्हाला सर्व काही सुंदरपणे फॉर्मॅट केलेलं दिसेल.
+
+
+
+### जर तुम्हाला गिट वापरायला सोपं असतं
+
+नविन शाखा तयार करण्यासाठी, तुम्हाला हे प्रमाणित करण्यासाठी, फक्त ब्रॅकेट्समध्ये x ठेवा: [x]
+
+1. **_GitHub रेपोची फोर्किंग:_** `https://github.com/jwasham/coding-interview-university` ला जाऊन फोर्क करा बटणावर क्लिक करून.
+
+ 
+
+1. तुमच्या स्थानिक रेपोवर क्लोन करा:
+
+ ```bash
+ git clone https://github.com/<तुमचे_GitHub_वापरकर्तानावा>/coding-interview-university.git
+ cd coding-interview-university
+ git remote add upstream https://github.com/jwasham/coding-interview-university.git
+ git remote set-url --push upstream DISABLE # तुमचे व्यक्तिगत प्रगती मूळ रेपोवर पुश करण्यासाठी
+ ```
+
+1. बदलांची प्रगती पूर्ण केल्यानंतर सर्व बॉक्सवर X चिन्हांनी चिन्हांकित करा:
+
+ ```bash
+ git commit -am "माझी व्यक्तिगत प्रगती चिन्हांकित केली"
+ git pull upstream main # तुमचा फॉर्क आपडेट ठेवा, मूळ रेपोमध्ये बदलांसाठी
+
+ git push # फक्त तुमच्या फोर्कमध्ये पुश करते
+ ```
+
+## तुम्हाला अशा वाटत नाही की तुम्ही पर्यायी आहात
+
+- सफळ सॉफ्टवेअर इंजिनियर तेजस्वी आहेत, परंतु अनेकांना त्यांना अनेक तेजस्वी असल्याचं असंवेदनशीलतेवर विश्वास आहे.
+- खालील व्हिडिओंमध्ये तुम्हाला ह्या असंवेदनशीलतेवर नियंत्रण मिळवायला मदत करू शकतील:
+ - [तेजस्वी प्रोग्रामर चा मिथ](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [एकल्यांना जाणवणं खतरंयक](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+
+## व्हिडिओ संसाधनांबद्दल टीका
+
+काही व्हिडिओंची उपलब्धता केवळ Coursera किंवा EdX वर नोंदवली जाते. ते MOOCs म्हणतात.
+कधी कधी क्लास सत्र चालू नसत्या असताना तुम्हाला काही महिने थांबायला लागतात, त्यामुळे तुम्हाला प्रवेश मिळत नाही.
+
+ह्या ऑनलाइन कोर्स संसाधनांवर, विनामूल्य आणि सर्वदा उपलब्ध सार्वजनिक स्रोतांमध्ये, YouTube व्हिडिओ (आणि आता उनिव्हर्सिटी लेक्चर्स प्रियतम) चे विचार करावे ह्याचं चांगलं असेल. त्यासाठी कि लोक येथे नेहमीच अध्ययन करू शकतात, केवळ काही ऑनलाइन कोर्स चालू असताना नाही.
+
+## प्रोग्रामिंग भाषा निवडा
+
+तुम्हाला कोडिंग साक्षात्कारांसाठी एक प्रोग्रामिंग भाषा निवडणे आवश्यक आहे,
+परंतु संगणक विज्ञानाच्या अवधारणांसाठी एक भाषा साठवणे आवश्यक आहे.
+
+प्रेफरेब्ली, भाषा समान असावी, तसेच तुम्ही फक्त एकाची प्रतिष्ठा असणे आवश्यक आहे.
+
+### ह्या अभ्यास योजनेसाठी
+
+मला अभ्यास योजना केल्यानंतर जास्तीत जास्त लष्करांसाठी मी २ भाषांचा वापर केला: C आणि Python
+
+- C: खूप कमी स्तरावर. तुम्हाला पॉइंटर्स आणि मेमरी विभाजन / मेमरी साहित्य करण्यास मांडतो, म्हणजे तुम्ही डेटा संरचना
+ आणि अॅल्गोरिदमची अनुभव करता. उच्च स्तरावरील भाषांमध्ये जसे की Python किंवा Java, ते तुमच्यावरून लपवलेले आहेत. दिवसांतील कामात, हे अद्भुत आहे,
+ परंतु केवळ जेणेकरून तुम्ही या खाली स्थितीकिंवा अॅल्गोरिदमच्या खूप कमी स्तरावरील डेटा संरचना कसे तयार केले हे समजून घेणे अद्भुत आहे.
+ - C व्यापारच्या आहे. तुम्हाला पुस्तके, व्याख्याने, व्हिडिओ, _सर्वजगात_ दरम्यान उदाहरणे दिसेल जेणेकरून तुम्ही अभ्यास करत असताना.
+ - [The C Programming Language, 2nd Edition](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - ही लहान पुस्तक आहे, परंतु ती तुम्हाला C भाषेत एक महत्त्वाची परिपूर्ण प्रतिष्ठा देईल आणि जर तुम्ही थोडी कसरत करता
+ तर तुम्ही लवकरच उत्तम होईल. C समजल्याने तुम्हाला कसं काम करतं हे समजायला मदत करतं.
+ - तुम्हाला पुस्तकात खूप जास्त अगाऊ जाऊन आवश्यक नाही (किंवा त्याच्यातून संपूर्ण केले जाऊन). फक्त ह्या अंतर्गत जाऊन येत आहे की तुम्हाला सीतीत वाचणे आणि लिहिणे कशी करावे हे आत्ता तुमच्याकडून समजले जाईल.
+- Python: आधुनिक आणि खूप व्याक्तिपूर्ण, मी त्याला शिकला कारण हे फक्त खूप उपयुक्त आहे आणि आपल्याला साक्षात्कारात कमी कोड लिहायला परवानगी देते.
+
+ह्या माझी प्राधान्य. प्रियंकर तुम्ही काय करू इच्छिता, नातं.
+
+तुम्हाला ती आवश्यक असणार नसेल, परंतु एक नवीन भाषा शिकण्यासाठी काही साइट्स आहेत:
+
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
+
+### तुमच्या कोडिंग साक्षात्कारासाठी
+
+तुम्ही कोडिंग भागात तुम्हाला आराम असलेली भाषा वापरू शकता, परंतु मोठ्या कंपन्यांसाठी, ह्या ठिकाणी दिलेल्या भाषांमध्ये स्थिर निवड:
+
+- C++
+- Java
+- Python
+
+तुम्ही ह्या वापरू शकता, परंतु सुरुवातीत जाणून घ्या. त्यांमध्ये अवघडारे नुकसान असू शकतात:
+
+- JavaScript
+- Ruby
+
+येथे माझं एक लेख आहे जेव्हा तुम्हाला साक्षात्कारासाठी भाषा निवडण्याबद्दल:
+[साक्षात्कारासाठी एक भाषा निवडा](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+हा माझा लेख ऑरिजिनल लेख आहे ज्याचा आधार माझं पोस्ट केला गेला होता: [साक्षात्कारासाठी प्रोग्रामिंग भाषा निवडणे](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
+
+तुम्हाला ह्या भाषांमध्ये खूप आराम असणे आणि संज्ञान असणे आवश्यक आहे.
+
+निवडीसाठी अधिक माहिती वाचा:
+
+- [तुमच्या कोडिंग साक्षात्कारासाठी योग्य भाषा निवडा](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+
+[भाषा-विशिष्ट संसाधनांसाठी येथे पहा](programming-language-resources.md)
From 8d889b6393ae015cc1b22009ad36cf2556f7d179 Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 03:38:15 +0530
Subject: [PATCH 146/173] wip marathi translation
Data Structures
Sorting
Graphs
More Knowledge
Trees
What you won't see covered
The Daily Plan
Coding Question Practice
Coding Problems
Let's Get Started
Algorithmic complexity / Big-O / Asymptotic analysis
Books for Data Structures and Algorithms
Interview Prep Books
Don't Make My Mistakes
---
translations/README-mr.md | 625 ++++++++++++++++++++++++++++++++++++++
1 file changed, 625 insertions(+)
diff --git a/translations/README-mr.md b/translations/README-mr.md
index 196c65556b..6ad9961808 100644
--- a/translations/README-mr.md
+++ b/translations/README-mr.md
@@ -326,3 +326,628 @@
- [तुमच्या कोडिंग साक्षात्कारासाठी योग्य भाषा निवडा](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
[भाषा-विशिष्ट संसाधनांसाठी येथे पहा](programming-language-resources.md)
+
+## डेटा संरचना आणि अॅल्गोरिदमसाठी पुस्तके
+
+ह्या पुस्तकांनी कॉम्प्यूटर विज्ञानात आपले आधार रचले जाईल.
+
+फक्त एक निवडा, ज्यात तुम्ही स्वत: आराम असेल भाषेत.
+
+### C
+
+- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - मूलभूत, डेटा संरचना, क्रमवार्ता, शोध, आणि ग्राफ अॅल्गोरिदम
+
+### Python
+
+- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - Goodrich, Tamassia, Goldwasser यांचे
+ - मला ह्या पुस्तकांविषयी आवडलं. हे सर्व काही आणि अधिक कवर केलं.
+ - पायथनिक कोड
+ - माझं चमकदार पुस्तक अहवाल: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+
+### Java
+
+तुमची निवड:
+
+- Goodrich, Tamassia, Goldwasser
+ - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick आणि Wayne:
+ - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - विनामूल्य Coursera कोर्स ज्याचा पुस्तकावर अध्यापन केला जातो (लेखकांद्वारे शिकवलेलं!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+
+### C++
+
+तुमची निवड:
+
+- Goodrich, Tamassia, आणि Mount
+ - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick आणि Wayne
+ - [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/)
+
+## साक्षात्कार साजोवट पुस्तके
+
+तुम्हाला आणखी बर्याच नकाशी करण्याची आवश्यकता नाही. खरं "क्रॅकिंग द कोडिंग इंटरव्ह्यू" किती ह्या तरी अॅल्गोरिदम बराबरीचं काही किती पर्याय खरेदी केली जाऊ शकते,
+परंतु मला अधिक प्रशिक्षण देण्यासाठी आणि मला आदतें आली असतात.
+
+मी दोन्ही खरेदी केली. त्यांनी मला प्रचंड प्रशिक्षण दिलं.
+
+- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - उत्तर C++ आणि जावा मध्ये
+ - विशेषत: Cracking the Coding Interviewसाठी चांगलं वार्म-अप
+ - खूप कठीण नाही. जेव्हा तुम्ही एक साक्षात्कारात दिसणार प्रश्नांच्या प्रमाणाच्या जास्तीत जास्त किती मजेशीर प्रश्न मिळवतात (मला काहीचं वाचलं आहे)
+- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - उत्तर जावा मध्ये
+
+### जर आपल्याकडे अत्याधिक वेळ असेल:
+
+एक निवडा:
+
+- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [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)
+
+## आपल्याकडे अशा चूका नका
+
+ह्या यादीत अनेक महिन्यांच्या अंतर्गत वाढले आहे, आणि होय, ह्या यादीत काहीतरी अधिक झाले आहे.
+
+येथे माझ्यांनी चुका केल्या आहेत त्यामुळे तुम्हाला एक चांगली अनुभवासाठी हवं. आणि तुम्ही महिन्यांच्या वेळांची जतन करेल.
+
+### 1. तुम्ही सर्व काही आतापर्यंत ओळखायला असाल ते आपल्याला आत्मविश्वास आहे का?
+
+मी आयचं व्हिडिओ पाहिलं आणि कॉपियस नोट्स घेतले, आणि महिन्यांनंतर अनेक काही मला आठवलं. मला आमच्या नोटसबद्दल 3 दिवसं वेळं लागलं, परंतु मला त्यांचं अधिक माहिती हवं नसलं.
+
+कृपया, हे वाचा आणि तुम्हाला माझ्या चुकांचं तयारी करून घ्यायला येणार नाही.
+
+[कॉम्प्यूटर विज्ञानाचे ज्ञान राखणे](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+
+### 2. फ्लॅशकार्ड्स वापरा
+
+मी समस्या सोडण्यासाठी एक छोटं फ्लॅशकार्ड साइट बनवलं, ज्यावर मी 2 प्रकारच्या फ्लॅशकार्ड जोडवू शकतो: सामान्य आणि कोड.
+प्रत्येक कार्डांनी वेगवेगळी स्वरुपणं आहेत. मी मोबाइल-पहिलं वेबसाइट बनवलं, म्हणजे मी आपल्या फोन किंवा टॅबलेटवर पुनरावलोकन करू शकतो, आता कोठे आहे.
+
+विनामूल्यसेच बनवा:
+
+- [फ्लॅशकार्ड साइट रेपो](https://github.com/jwasham/computer-science-flash-cards)
+
+**मला माझ्या फ्लॅशकार्ड साइटवर वापरण्याची शिफारस करत नाही.** येथे खूप आहेत आणि अधिकांश ते उत्तररूप नसलेल्या ते तुम्हाला आवडणार नाही.
+
+परंतु जर तुम्हाला मला ऐकायला नको, तर इथे आहे:
+
+- [माझे फ्लॅशकार्ड डेटाबेस (1200 कार्ड)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [माझे फ्लॅशकार्ड डेटाबेस (अत्यंत - 1800 कार्ड)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+
+आणि नक्की काळजी करा की मी अत्यंतात जास्त काही कवर करत आहे. यात सर्व कुठल्या आसंतात आणि मला यात आवडते, मनोबद्धतेच्या तत्त्वांनी सामान्यतः ते वापरतात.
+ज्ञान गहाळ करण्यासाठी करून घेणे.
+
+अन्किच्या फ्लॅशकार्डवर किंवा त्यातील व्हिडिओ पाहून माहिती कच्च करण्याची एक वैकल्पिक उपाय आहे. ते तुम्हाला लक्ष देण्यासाठी आहे, अन्की पुनरावलोकन प्रणाली वापरतात. ते वापरकर्ता मित्रवत, सर्व प्लेटफॉर्म्सवर उपलब्ध आहे, आणि एक क्लाउड सिंक प्रणाली असते.
+iOS वर $25 खर्च होते परंतु इतर प्लेटफॉर्म्सवर विनामूल्य आहे.
+
+अन्की फॉर्मॅटमध्ये माझ्या फ्लॅशकार्ड डेटाबेस: https://ankiweb.net/shared/info/25173560 (आभार [@xiewenya](https://github.com/xiewenya)).
+
+काही विद्यार्थ्यांना श्वेत जागा विचारांसह फॉर्मॅटिंग समस्या आल्या आहेत की ते खालीलप्रमाणे सुधारणे केले जाऊ शकतात: डेक उघडा, कार्ड संपादित करा, कार्ड्स क्लिक करा, "स्टाइलिंग" रेडिओ बटण निवडा, आणि "स्टाइलिंग" रेडिओ बटण निवडा, आणि त्या कार्ड क्लासला "सफेद अंतराळ: प्री;" घाला.
+
+### 3. तुम्हाला कोडिंग इंटरव्यू प्रश्न करताना
+
+ह्या विषयाच्या अध्ययनात आहत तेव्हा कोडिंग इंटरव्यू प्रश्नांचं करा.
+
+तुम्हाला समस्यांचं समाधान करण्यास आवश्यक आहे, किंवा तुम्ही विसरलं जाऊ शकता. मी ही चूक केली.
+
+एकदा आपल्याला एक विषय शिकला आहे, आणि तुम्ही त्यात काही पर्याय अनुभवत आहात, उदाहरणार्थ, **लिंक्ड लिस्ट**:
+
+1. [कोडिंग इंटरव्यू पुस्तके](#interview-prep-books) (किंवा कोडिंग समस्या वेबसाइट, खाली दिलेल्या)
+1. 2 किंवा 3 प्रश्नांचा उत्तर द्या लिंक्ड लिस्टसाठी.
+1. पुढील शिकण्याच्या विषयात प्रवेश करा.
+1. नंतर, पुन्हा जाऊन आपल्याला दुसऱ्या 2 किंवा 3 लिंक्ड लिस्ट समस्यांचं उत्तर द्या.
+1. नवीन विषयासोबत हे करा आपल्याला प्रत्येक नवीन विषय शिकण्याच्या वेळी.
+
+**तुम्हाला तुमच्या सर्व या प्रश्नांना शिकताना समस्यांचं समाधान करत राहावं लागेल, शिकताना नंतर नाही.**
+
+तुम्हाला ज्ञानासाठी नाही, पण तुम्ही ज्ञान कसं लागू करायला तुम्हाला नोकरी मिळवण्यासाठी.
+
+ह्यात कोडिंग समस्यांचे अनेक स्रोत आहेत, खालील लिंक्समध्ये आहेत. चालू राहा.
+
+### 4. लक्ष द्या
+
+आहे काहीतरी मोठ्या महत्त्वाच्या वेळांचं सापडतात. ध्यान आणि एकाग्रता कठीण आहेत. ते संगीत सुरू करा
+शब्दनिर्देश असं अनुमति आहे आणि तुम्ही काही सुस्त सुद्धा लक्षात ठेवू शकता.
+
+## तुम्हाला आपल्याला कळवू शकत नाही की
+
+ह्या अभ्यासक्रमात असलेली प्रमुख तंत्रज्ञाने पण त्यांचा अभ्यास समाविष्ट नाहीत:
+
+- जावास्क्रिप्ट (Javascript)
+- एचटीएमएल, सीएसएस, आणि इतर फ्रंट-एंड तंत्रज्ञाने
+- एसक्यूएल (SQL)
+
+## दैनिक योजना
+
+ह्या पाठ्यक्रमात अनेक विषय आहेत. प्रत्येकाची संभाव्यतः काही दिवसं, किंवा कधी काही आणि अधिक आणि दिवसांत अवलंबू शकते. याचे तुमच्या कार्यक्रमावर निर्भर आहे.
+
+प्रत्येक दिवस, यादीतील पुढील विषय घ्या, त्याविषयावर काही व्हिडिओ पाहा, आणि नंतर त्या डेटा संरचनेचे किंवा ऍल्गोरिदमचे संवाद तुमच्या निवडलेल्या भाषेत लिहा.
+
+तुमचं कोड येथे पाहू शकता:
+
+- [सी](https://github.com/jwasham/practice-c)
+- [सी++](https://github.com/jwasham/practice-cpp)
+- [पायथन](https://github.com/jwasham/practice-python)
+
+तुम्हाला प्रत्येक ऍल्गोरिदम याद ठेवण्याची गरज नाही. तुम्हाला त्याची समज येण्यासाठी पर्याय असणे आवश्यक आहे किंवा तुम्ही स्वतःचं संवाद लिहू शकता.
+
+## कोडिंग प्रश्न अभ्यास
+
+ आम्हाला ह्याचं का आवडतं? मी साक्षात्कारासाठी तयार नाही.
+
+[तर जा आणि ह्याचं वाचा.](#3-do-coding-interview-questions-while-youre-learning)
+
+तुम्हाला कोडिंग समस्यांचा अभ्यास करण्याची गरज का आहे:
+
+- समस्या स्वीकृती, आणि कुठल्या सर्वोत्तम डेटा संरचनांसाठी आणि ऍल्गोरिदम्समध्ये कसं फिट होईल हे ओळखणे
+- समस्येसाठी आवश्यक अटी संग्रहण करणे
+- साक्षात्कारात आपल्या मार्गाचं बोलणं, जसं तुम्ही साक्षात्कारात करेल
+- कॉम्प्यूटरवर नक्कीचं व्हायटबोर्ड किंवा कागदावर कोड लिहणे, कॉम्प्यूटरवर नाही
+- तुमच्या सोडलेल्या संदर्भांसाठी समय आणि स्थान जटिलता येण्याचे कल्पना करणे (मोठं-ओ खाली पहा)
+- तुमच्या निवडलेल्या सोडांची किंवा ऍल्गोरिदमची टेस्टिंग करणे
+
+साक्षात्कारातील पद्धतीसाठी एक योग्य, संवेदनशील समस्या-सोडवणे साठवण्यात येतं. तुम्ही ज्या कोडिंग साक्षात्कारात बुक्स मधून मिळवता, त्यापुढे ह्या प्रशिक्षणांचं अद्भुत आरंभ आहे:
+[ऍल्गोरिदम डिझाइन कॅनव्हस](http://www.hiredintech.com/algorithm-design/)
+
+कोड व्हायटबोर्ड किंवा कागदावर लिहा, कॉम्प्यूटरवर नक्कीचं वाचवा. काही उदाहरणांसह परीक्षण करा. नंतर तो टाइप करा आणि ते कॉम्प्यूटरवर परीक्षण करा.
+
+जर तुम्हाला घरात व्हायटबोर्ड नसेल, तर आर्ट स्टोरमधून एक मोठं ड्रॉइंग पॅड घ्या. तुम्हाला सोफावर बसुन अभ्यास करायचं आहे. हा माझा "सोफा व्हायटबोर्ड" आहे. मला फोटोत आढळवून दिलं. जेव्हा तुम्ही कलम वापरता, तुम्हाला मिटवायला इच्छित असेल. वेगवेगळ्या गोष्टींना जलगं झालं. **मी कलम आणि मिटवा वापरतो.**
+
+
+
+**कोडिंग प्रश्न अभ्यास इतरांच्या प्रोग्रामिंग समस्यांच्या उत्तर मेमराइझ करण्याबद्दल नसतं.**
+
+## कोडिंग समस्या
+
+तुमचं कोडिंग साक्षात्कार पुस्तके विसरू नका [इथे](#interview-prep-books).
+
+समस्या सोडणे:
+
+- [समाधान कसे शोधायचं](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- [टॉपकोडर समस्या विवरण कसे विभाजू](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
+
+कोडिंग साक्षात्कार प्रश्न व्हिडिओ:
+
+- [IDeserve (88 व्हिडिओ)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- [टुशार रॉय (5 प्लेलिस्ट)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - समस्या समाधानांच्या पूर्ण व्हॉकथ्रूसाठी उत्तम
+- [निक व्हाइट - लीटकोड समाधान (187 व्हिडिओ)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - समाधान आणि कोड चे चांगले स्पष्टीकरण
+ - तुम्हाला थोडं वेळ मध्ये अनेक पाहू शकता
+- [फिशरकोडर - लीटकोड समाधान](https://youtube.com/FisherCoder)
+
+चॅलेंज / अभ्यास संकेत:
+
+- [लीटकोड](https://leetcode.com/)
+ - माझं आवडतं कोडिंग समस्या संकेत. तुमच्याला साक्षात्कारासाठी १-२ महिने तयारीसाठी पैसे वसूल आहेत.
+ - कोड वॉकथ्रूसाठी निक व्हाइट आणि फिशरकोडर व्हिडिओ पहा.
+- [हॅकरँक](https://www.hackerrank.com/)
+- [टॉपकोडर](https://www.topcoder.com/)
+- [कोडफोर्स](https://codeforces.com/)
+- [कोडिलिटी](https://codility.com/programmers/)
+- [गीक्स फॉर गीक्स](https://practice.geeksforgeeks.org/explore/?page=1)
+- [ऍल्गोएक्सपर्ट](https://www.algoexpert.io/product)
+ - गूगल इंजिनिअर्सने तयार केलेला, हे तुमच्या कौशल्ये तयार करण्यासाठी सर्वोत्तम स्रोत आहे.
+- [प्रोजेक्ट युलर](https://projecteuler.net/)
+ - खूप माहितीसंवेदनशील आहे, आणि कोडिंग साक्षात्कारासाठी खूप उपयुक्त नसते
+
+## प्रारंभ करूया
+
+ठीक आहे, खूप बोलणं, लेकी शिकूया!
+
+परंतु तुम्हाला शिकताना उपरोक्त कोडिंग समस्यांसह सुरू करण्याचं विसरू नका!
+
+## ऍल्गोरिदमिक कंप्लेक्सिटी / बिग-ओ / असिंप्टोटिक विश्लेषण
+
+- येथे काही अमलात घेण्याची गरज नाही, तुम्ही केवळ व्हिडिओ पहा आणि टीके काढा! वाह!
+- येथे खूप व्हिडिओ आहेत. तुम्हाला समजताना पर्यंत पर्याप्त व्हिडिओ पहायला लागेल. तुम्ही नेहमी परत येऊ शकता आणि पुनरावलोकन करू शकता.
+- जर तुम्हाला हा सर्व गणित समजत नसेल, तर घाबरू नका.
+- तुम्हाला केवळ ऍल्गोरिदमचं कंप्लेक्सिटी बिग-ओ च्या प्रकारात कसं व्यक्त करायचं हे समजून घ्यायचं आहे.
+- [ ] [हार्वर्ड सीएस50 - असिंप्टोटिक नोटेशन (व्हिडिओ)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] [बिग ओ नोटेशन (सामान्य जलद ट्यूटोरियल) (व्हिडिओ)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] [बिग ओ नोटेशन (आणि ओमेगा आणि थेटा) - सर्वात उत्तम गणितीय स्पष्टीकरण (व्हिडिओ)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] [स्किना (व्हिडिओ)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
+- [ ] [यूसी बर्कली बिग ओ (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
+- [ ] [अमॉर्टिज्ड विश्लेषण (व्हिडिओ)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] टॉपकोडर (पुनरावलोकन नियमन आणि मास्टर थिओरेम समाविष्ट):
+ - [गणकीय कंप्लेक्सिटी: विभाग 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
+ - [गणकीय कंप्लेक्सिटी: विभाग 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
+- [ ] [चीट शीट](http://bigocheatsheet.com/)
+- [ ] [[पुनरावलोकन] ऍल्गोरिदम विश्लेषण (प्लेलिस्ट) १८ मिनिटांत (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
+
+वेगवेगळं नसेल आणि.
+
+तुम्हाला "क्रॅकिंग द सीडी इंटर्व्ह्यू" असल्यास, त्याच्या एका अध्यायात ह्या विषयावर आहे, आणि शेवटी त्यात विविध ऍल्गोरिदमचं क्रमसंबंधी रनटाईम कंप्लेक्सिटी ओळखून पाहण्याची क्षमता असल्याचं काहीतरी चाचणीचं आहे. हे एक चांगले पुनरावलोकन आणि चाचणी आहे.
+
+- ### डेटा संरचना
+
+- ### अॅरे
+
+ - [ ] अॅरे बद्दल:
+ - [हार्वर्ड विद्यापीठावरील अॅरे CS50](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - [अॅरे (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - [UC बर्कली CS61B - लिनियर आणि मल्टी-डिम अॅरे (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (15 मिनिट 32 सेकंदपासून पाहा)
+ - [डायनॅमिक अॅरे (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - [जॅग्ड अॅरे (व्हिडिओ)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+ - [ ] एक वेक्टर अॅरे (परिवर्तनशील अॅरे स्वत:चं रेसायजिंगसह):
+ - [ ] अॅरे आणि पॉईंटर्स वापरून कोडिंग करण्याची अभ्यास करा, आणि निर्देशांकांचा वापर करून सूचकांक करा.
+ - [ ] नवीन कच्चे डेटा अॅरे नेहमीची आता आवंटित संदर्भ
+ - अंत: एंट अॅरे आवंटित करू शकता, केव्हा त्याचे वैशिष्ट्य वापरू शकत नाहीत
+ - १६सह प्रारंभ करा, किंवा प्रारंभीक अंक जास्त असल्यास, १६, ३२, ६४, १२८ च्या सकलांमध्ये वापरा
+ - [ ] साईज() - आयटमची संख्या
+ - [ ] कॅपॅसिटी() - तो आयटम कित्येक ठाऊक ठेवू शकतो
+ - [ ] एस_खाली()
+ - [ ] अँट(संदर्भ) - दिलेल्या संदर्भातील आयटम परत करतो, जर संदर्भ अंतर्दृष्टीत नसेल तर वायरला जातो
+ - [ ] पुश(आयटम)
+ - [ ] इन्सर्ट(संदर्भ, आयटम) - संदर्भातील आयटममध्ये आयटम जोडते, त्या संदर्भाच्या मूल्य आणि परतलेल्या आयटमांच्या पाठीवर जातो
+ - [ ] प्रिपेंड(आयटम) - उपरी संदर्भात इन्सर्ट वापरू शकता
+ - [ ] पॉप() - शेवटीच्या पासून काढतो, मूल्य परत करतो
+ - [ ] डिलीट(संदर्भ) - दिलेल्या संदर्भातील आयटम काढतो, परतलेल्या सर्व आयटम डावीकडे सायकल करतो
+ - [ ] रिमूव(आयटम) - मूल्य बघतो आणि त्याच्या मूल्याच्या संदर्भातील प्रथम आयटम काढतो (जर एकाधिक स्थानांमध्ये असेल, तरीही)
+ - [ ] फिंड(आयटम) - मूल्य बघतो आणि त्यामध्ये पहिला संदर्भातील स्थान परत करतो, जर नसेल तर -१
+ - [ ] रिसाईझ(नवीन_कॅपॅसिटी) // खाजगी कार्य
+ - आपल्याला कॅपॅसिटी पर्यंत पोचण्यासाठी जर आपल्याला पर्याय होतं, तर दगडी किती वेळा
+ - काढत असल्यास एकाधिक पॉप करण्यासाठी, जर साईज कॅपॅसिटीची चौथी असेल तर, अर्धे कितीवर्षी त्याची आकारिक करणे
+ - [ ] काळ
+ - अॅंडिंगला विनिमेष करण्यासाठी O(1) (अधिकार्यस्थवादी करण्यासाठी जागा आवंटन करण्यासाठी), संदर्भ, किंवा अद्यतन करण्यासाठी
+ - इतर क्षेत्रात डाळणे / काढणे करण्यासाठी O(n)
+ - [ ] जागा
+ - मेमोरीत एकत्रित, म्हणजे संबंध उत्कृष्टता मदत करते
+ - आवश्यक जागा = (अॅरे क्षमता, ज्याप्रमाणे >= n असेल) \* आयटमची आकारे, पण किंवा जर २एनची आहे, तरीही O(n)
+
+- ### लिंक्ड लिस्ट्स
+
+ - [ ] वर्णन:
+ - [ ] [लिंक्ड लिस्ट्स CS50 हार्वर्ड विद्यापीठ](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - हे इंट्यूइशन तयार करते.
+ - [ ] [सिंगली लिंक्ड लिस्ट्स (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] [सीएस 61B - लिंक्ड लिस्ट्स 1 (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] [सीएस 61B - लिंक्ड लिस्ट्स 2 (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[पुनरावलोकन] ४ मिनिटात लिंक्ड लिस्ट्स (व्हिडिओ)](https://youtu.be/F8AbOfQwl1c)
+ - [ ] [सी कोड (व्हिडिओ)](https://www.youtube.com/watch?v=QN6FPiD0Gzo) - पूर्ण व्हिडिओ नाही, फक्त नोड स्ट्रक्चर आणि मेमोरी आवंटनबद्दल कितीतरी भागांच्या बद्दल
+ - [ ] लिंक्ड लिस्ट बनावण्याचा प्रयत्न किंवा आणखी विचारांसाठी संदर्भ:
+ - [ ] साईज() - लिस्टमध्ये डेटा घटकांची संख्या परत करते
+ - [ ] एम्प्टी() - रिक्त असल्यास true परत करतो
+ - [ ] व्हॅल्यू_अँट(संदर्भ) - प्रथमाच्या आयटमचे मूल्य परत करतो (पहिल्यासाठी ०वरून सुरू करा)
+ - [ ] पुश_फ्रंट(मूल्य) - लिस्टच्या सुरूतीला एक आयटम जोडतो
+ - [ ] पॉप_फ्रंट() - फ्रंट आयटम काढतो आणि त्याचा मूल्य परत करतो
+ - [ ] पुश_बॅक(मूल्य) - शेवटीला एक आयटम जोडतो
+ - [ ] पॉप_बॅक() - शेवटीचा आयटम काढतो आणि त्याचा मूल्य परत करतो
+ - [ ] फ्रंट() - फ्रंट आयटमचा मूल्य मिळवा
+ - [ ] बॅक() - शेवटीच्या आयटमचा मूल्य मिळवा
+ - [ ] इन्सर्ट(संदर्भ, मूल्य) - संदर्भात मूल्य अंक इन्सर्ट करते, म्हणजे त्या संदर्भाच्या नवीन आयटमातील अंक दिलेल्या आयटमाच्या संदर्भात जातो
+ - [ ] इरेस(संदर्भ) - दिलेल्या संदर्भातील नोड काढतो
+ - [ ] व्हॅल्यू*न*फ्रॉम_एंड(न) - न थेट आयटमाचा मूल्य परत करतो
+ - [ ] रिव्हर्स() - लिस्ट उलटते
+ - [ ] रिमूव_वॅल्यू(मूल्य) - लिस्टमध्ये त्याच्या मूल्यानुसार प्रथम आयटम काढतो
+ - [ ] डब्ल्यू-लिंक्ड लिस्ट
+ - [वर्णन (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
+ - कोणत्याही अट लागत नाही
+
+- ### स्टॅक
+
+ - [ ] [स्टॅक (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
+ - [ ] [[पुनरावलोकन] ३ मिनिटात स्टॅक्स (व्हिडिओ)](https://youtu.be/KcT3aVgrrpU)
+ - [ ] अॅरे सह अॅरे वापरणे सोपं आहे
+
+- ### क्यू
+
+ - [ ] [क्यू (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
+ - [ ] [सर्कुलर बफर / एफआयएफओ](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [[पुनरावलोकन] ३ मिनिटात क्यू (व्हिडिओ)](https://youtu.be/D6gu-_tmEpQ)
+ - [ ] लिंक्ड-लिस्ट वापरून कार्यान्वयन करा, प्लॅनर संदर्भाने:
+ - इन्क्यू(मूल्य) - पायास एक स्थानावर मूल्य जोडतो
+ - डेक्यू() - खाली होताना मूल्य परत करतो आणि किमान वेळी जोडलेला पायावरतीत मूल्य काढतो (फ्रंट)
+ - एंप्टी()
+ - [ ] एक नियमित आकाराच्या अॅरे वापरून कार्यान्वयन करा:
+ - इन्क्यू(मूल्य) - उपलब्ध संचयाच्या शेवटीला आयटम जोडतो
+ - डेक्यू() - मूल्य परत करतो आणि किमान वेळी जोडलेला आयटम काढतो
+ - एंप्टी()
+ - फुल()
+
+- ### हॅश टेबल
+
+ - [ ] व्हिडिओ:
+ - [ ] [चेनिंगसह एचिंग (व्हिडिओ)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [टेबल डबलिंग, कारप-रॅबिन (व्हिडिओ)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [ओपन अॅड्रेसिंग, क्रिप्टोग्राफिक हॅशिंग (व्हिडिओ)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [पायकॉन 2010: माईटी डिक्शनरी (व्हिडिओ)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [पायकॉन 2017: डिक्शनरी इव्हेन मायटीअर (व्हिडिओ)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(उन्नत) यादृच्छिकीकरण: युनिव्हर्सल आणि परिपूर्ण हॅशिंग (व्हिडिओ)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(उन्नत) परिपूर्ण हॅशिंग (व्हिडिओ)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [[पुनरावलोकन] ४ मिनिटात हॅश टेबल्स (व्हिडिओ)](https://youtu.be/knV86FlSXJ8)
+ - [ ] ऑनलाईन कोर्सेस:
+
+ - [ ] [कोर हॅश टेबल्स (व्हिडिओ)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [डेटा संरचना (व्हिडिओ)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [फोन बुक प्रॉब्लेम (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] वितरित हॅश टेबल्स:
+ - [ड्रॉपबॉक्समध्ये त्वरित अपलोड्स आणि स्टोरेज अद्यतन (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [वितरित हॅश टेबल्स (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] अॅरे वापरून लिनिअर प्रोबिंग वापरून कार्यान्वित करा
+ - हॅश(k, m) - m हॅश टेबलचा आकार आहे
+ - जोडणे(की, मूल्य) - जर की आधीच अस्तित्वात असेल, मूल्य सुधारित करा
+ - अस्तित्व आहे(की)
+ - प्राप्त(की)
+
+## अधिक ज्ञान
+
+- ### बायनरी शोध
+
+ - [ ] [बायनरी शोध (व्हिडिओ)](https://www.youtube.com/watch?v=D5SrAga1pno)
+ - [ ] [बायनरी शोध (व्हिडिओ)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] [विवर](https://www.topcoder.com/thrive/articles/Binary%20Search)
+ - [ ] [रूपरेखा](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
+ - [ ] [[समीक्षा] बायनरी शोध 4 मिनिटांत (व्हिडिओ)](https://youtu.be/fDKIpRe8GW4)
+ - [ ] कार्यान्वित करा:
+ - क्रमवार सादर केलेल्या पूर्णांकांच्या ऍरेअयात बायनरी शोध
+ - पुनरावृत्ती वापरून बायनरी शोध
+
+- ### बिटवायज क्रिया
+ - [ ] [बिट्स चीट शीट](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf)
+ - आपल्याला (2^1 ते 2^16 आणि 2^32 पर्यंत 2च्या अनेक घातांची माहिती असावी)
+ - [ ] & | ^ ~ >> << सह बिट्स व्यवस्थापनाची खुपच चांगली समज मिळाली पाहिजे
+ - [ ] [शब्द]()
+ - [ ] चांगले प्रारंभ:
+ [बिट व्यवस्थापन (व्हिडिओ)](https://www.youtube.com/watch?v=7jkIUgLC29I)
+ - [ ] [सी प्रोग्रामिंग ट्यूटोरियल 2-10: बिटवायज ऑपरेटर्स (व्हिडिओ)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [बिट व्यवस्थापन](https://en.wikipedia.org/wiki/Bit_manipulation)
+ - [ ] [बिटवायज क्रिया](https://en.wikipedia.org/wiki/Bitwise_operation)
+ - [ ] [बिटहॅक्स](https://graphics.stanford.edu/~seander/bithacks.html)
+ - [ ] [द बिट ट्विड्लर](https://bits.stephan-brumme.com/)
+ - [ ] [द बिट ट्विड्लर इंटरऍक्टिव](https://bits.stephan-brumme.com/interactive.html)
+ - [ ] [बिट हॅक्स (व्हिडिओ)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
+ - [ ] [अभ्यास क्रिया](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
+ - [ ] 2s आणि 1s पूरक
+ - [बायनरी: प्लसेस आणि माइनस (आपण दोन्ही दुईच्या पूरकाचा वापर का करतो) (व्हिडिओ)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - [1s पूरक](https://en.wikipedia.org/wiki/Ones%27_complement)
+ - [2s पूरक](https://en.wikipedia.org/wiki/Two%27s_complement)
+ - [ ] सेट बिटची गणना
+ - [बाईटमध्ये बिट्सची गणना करण्यासाठी 4 पद्धती (व्हिडिओ)](https://youtu.be/Hzuzo9NJrlc)
+ - [बिट गणना](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - [32 बिट अंकाच्या सेट बिट्सची संख्या कसे गणवू](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
+ - [ ] मूल्ये बदला:
+ - [मूल्ये बदला](https://bits.stephan-brumme.com/swap.html)
+ - [ ] पूर्णांक मान:
+ - [पूर्णांक बिट](https://bits.stephan-brumme.com/absInteger.html)
+
+## झाडे
+
+- ### झाडे - परिचय
+
+ - [ ] [झाडांचा परिचय (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - [ ] [झाड ट्रावर्सल (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
+ - [ ] [BFS(ब्रेड्थ-फर्स्ट सर्च) आणि DFS(डेप्थ-फर्स्ट सर्च) (व्हिडिओ)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - BFS नोट:
+ - स्तर क्रम (BFS, क्यूच वापरून)
+ - काळजीच्या समय: O(n)
+ - जागा काळजी: सर्वोत्तम: O(1), वास्तविक: O(n/2)=O(n)
+ - DFS नोट:
+ - काळजीच्या समय: O(n)
+ - जागा काळजी:
+ सर्वोत्तम: O(log n) - झाडाचे सरासरी उंची
+ वास्तविक: O(n)
+ - inorder (DFS: डावी, स्वयं, उजवी)
+ - postorder (DFS: डावी, उजवी, स्वयं)
+ - preorder (DFS: स्वयं, डावी, उजवी)
+ - [ ] [[समीक्षा] 4 मिनिटांत ब्रेड्थ-फर्स्ट सर्च (व्हिडिओ)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [[समीक्षा] 4 मिनिटांत डेप्थ-फर्स्ट सर्च (व्हिडिओ)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [[समीक्षा] झाड ट्रावर्सल (प्लेलिस्ट) 11 मिनिटांत (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+
+- ### बायनरी शोध झाडे: BSTs
+
+ - [ ] [बायनरी शोध झाड समीक्षा (व्हिडिओ)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] [परिचय (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] [MIT (व्हिडिओ)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
+ - C/C++:
+ - [ ] [बायनरी शोध झाड - C/C++ मध्ये कार्यान्वितीकरण (व्हिडिओ)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] [BST कार्यान्विती - स्टॅक आणि हिपमध्ये स्मृति काळजी (व्हिडिओ)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] [बायनरी शोध झाडातील किमान आणि जास्त मूल्य शोधा (व्हिडिओ)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [एक बायनरी झाडाची उंची कसे शोधायची (व्हिडिओ)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] [बायनरी झाडाचा ट्रावर्सल - स्थिरता-प्रथम आणि डेप्थ-प्रथम युक्तियां (व्हिडिओ)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] [बायनरी झाड: स्तर क्रम ट्रावर्सल (व्हिडिओ)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [बायनरी झाडाचा ट्रावर्सल: प्रीऑर्डर, इनऑर्डर, पोस्टऑर्डर (व्हिडिओ)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [बायनरी शोध झाड आहे का नाही ते तपासा (व्हिडिओ)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] [बायनरी शोध झाडातून मूल्य काढा (व्हिडिओ)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] [बायनरी शोध झाडातील आगामी स्वयं (व्हिडिओ)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] कार्यान्वित:
+ - [ ] [insert // झाडात मूल्य घाला](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
+ - [ ] get_node_count // संग्रहित मूल्यांची कोणतीही संख्या मिळवा
+ - [ ] print_values // मूल्यांचा झाडातून प्रिंट करा, किमान ते जास्त
+ - [ ] delete_tree
+ - [ ] is_in_tree // दिलेल्या मूल्याला झाडात असल्यास त्रुटी आहे आपल्याला true कळवा
+ - [ ] [get_height // नोड्यांमध्ये उंची परत मिळवा (एकचा नोडचा उंची 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
+ - [ ] get_min // झाडात संग्रहित किमान मूल्य मिळवा
+ - [ ] get_max // झाडात संग्रहित किमान मूल्य मिळवा
+ - [ ] [is_binary_search_tree](https://leetcode.com/problems/validate-binary-search-tree/)
+ - [ ] delete_value
+ - [ ] get_successor // दिलेल्या मूल्यानंतर झाडातील आगामी स्वयं मिळवा, कोणतेही नसल्यास -1
+
+- ### हिप / प्रायरिटी क्यू / बायनरी हिप
+ - झाड म्हणून विज्ञान केले जाते, परंतु सामान्यतः संग्रह (एरे, लिंक्ड सूची) मध्ये लीनियर आहे
+ - [ ] [हिप]()
+ - [ ] [परिचय (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
+ - [ ] [बायनरी झाड (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+ - [ ] [झाड उंची टिप (व्हिडिओ)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] [मूल्यांची बुनणी (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+ - [ ] [पूर्ण बायनरी झाड (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+ - [ ] [उपनामकोड (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+ - [ ] [हिप क्रमवार क्रमणी (व्हिडिओ)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] [हिप क्रमवार (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] [हिप निर्माण (व्हिडिओ)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
+ - [ ] [MIT: हिप आणि हिप क्रमवार (व्हिडिओ)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [CS 61B लेक्चर 24: प्रायरिटी क्यू (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
+ - [ ] [लीनियर वेळ बनवा (मॅक्स-हिपमध्ये)](https://www.youtube.com/watch?v=MiyLo8adrWw)
+ - [ ] [[समीक्षा] हिप (प्लेलिस्ट) 13 मिनिटांत (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
+ - [ ] एक मॅक्स-हिपसाठी कार्यान्वित:
+ - [ ] insert
+ - [ ] sift_up - insert साठी आवश्यक
+ - [ ] get_max - त्याच्यापासून माझ्या वस्तू मिळते, ते काढून टाकून नको
+ - [ ] get_size() - संग्रहित घटकांची संख्या परत द्या
+ - [ ] is_empty() - सत्रात कोणतेही घटक असल्यास त्रुटी द्या
+ - [ ] extract_max - माझ्या घटकापासून माझ्या घटक मिळते, तो काढून टाकून नको
+ - [ ] sift_down - extract_max साठी आवश्यक
+ - [ ] remove(x) - स्थिती x पासून वस्तू काढा
+ - [ ] heapify - घटकांच्या एक संचयापासून एक हिप तयार करा, heap_sort साठी आवश्यक
+ - [ ] heap_sort() - एक क्रमरहित संचय घेऊन तो एक क्रमरहित संचय बनवा
+
+## छांटणी
+
+- [ ] नोट्स:
+
+ - सॉर्ट्स अमल करा आणि प्रत्येकाच्या सर्वोत्तम/अत्यधिक, सरासरी संघटनाची कसे आहे हे जाणून घ्या:
+ - बबल सॉर्ट करू नका - तो वाईट आहे - O(n^2), केवळ जेम्हाने n <= 16 असल्यास
+ - [ ] सॉर्टिंग अल्गोरिदम्स मध्ये स्थिरता कोणत्या आहेत? ("क्विक्सॉर्ट स्थिर आहे का?")
+ - [सॉर्टिंग अल्गोरिदम स्थिरता](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
+ - [सॉर्टिंग अल्गोरिदम मध्ये स्थिरता](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+ - [सॉर्टिंग अल्गोरिदम मध्ये स्थिरता](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+ - [सॉर्टिंग अल्गोरिदम्स - स्थिरता](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+ - [ ] कोणत्या अल्गोरिदम्स कस्टोडीत वापरू शकतात? कोणत्या अॅरे वापरू शकतात? कोणत्या अॅन्ड बोथ?
+ - मला एक लिंक्ड लिस्ट सॉर्ट करण्याचं सांगणं शक्य नाही, परंतु मर्ज सॉर्ट संभव आहे.
+ - [मर्ज सॉर्ट फॉर लिंक्ड लिस्ट](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
+
+- हीप सॉर्टसाठी, खालील हीप डेटा संरचना पहा. हिप सॉर्ट म्हणजे चांगलं आहे, परंतु थेट नसलेलं
+
+- [ ] [सेजविक - मर्जसॉर्ट (5 व्हिडिओ)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+
+ - [ ] [1. मर्जसॉर्ट](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] [2. बॉटम-अप मर्जसॉर्ट](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] [3. सॉर्टिंग संघटना](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] [4. कंपरेटर्स](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] [5. स्थिरता](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] [सेजविक - क्विकसॉर्ट (4 व्हिडिओ)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+
+ - [ ] [1. क्विकसॉर्ट](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] [2. सेलेक्शन](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] [3. डुप्लिकेट कीज](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] [4. सिस्टम सॉर्ट्स](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] UC Berkeley:
+
+ - [ ] [CS 61B लेक्चर 29: सॉर्टिंग I (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] [CS 61B लेक्चर 30: सॉर्टिंग II (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] [CS 61B लेक्चर 32: सॉर्टिंग III (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] [CS 61B लेक्चर 33: सॉर्टिंग V (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] [CS 61B 2014-04-21: रॅडिक्स सॉर्ट(व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
+
+- [ ] [बबल सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
+- [ ] [बबल सॉर्टचा विश्लेषण (व्हिडिओ)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
+- [ ] [इन्सर्शन सॉर्ट, मर्ज सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+- [ ] [इन्सर्शन सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
+- [ ] [मर्ज सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
+- [ ] [क्विकसॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
+- [ ] [सेलेक्शन सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
+
+- [ ] मर्ज सॉर्ट कोड:
+ - [ ] [आउटपुट अरेंजमेंट वापरून (सी)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+ - [ ] [आउटपुट अरेंजमेंट वापरून (पायथन)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+ - [ ] [इन-प्लेस (सी++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+- [ ] क्विक सॉर्ट कोड:
+
+ - [ ] [कार्यान्वयन (सी)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+ - [ ] [कार्यान्वयन (सी)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+ - [ ] [कार्यान्वयन (पायथन)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+- [ ] [[समीक्षा] १८ मिनिटांत सॉर्टिंग (प्लेलिस्ट)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+
+ - [ ] [क्विक सॉर्ट ४ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] [हीप सॉर्ट ४ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] [मर्ज सॉर्ट ३ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] [बबल सॉर्ट २ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/xli_FI7CuzA)
+ - [ ] [सेलेक्शन सॉर्ट ३ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/g-PGLbMth_g)
+ - [ ] [इन्सर्शन सॉर्ट २ मिनिटमध्ये (व्हिडिओ)](https://youtu.be/JU767SDMDvA)
+
+- [ ] कार्यान्वित करा:
+
+ - [ ] मर्जसॉर्ट: O(n log n) औसत आणि अत्यधिक चणजी
+ - [ ] क्विकसॉर्ट O(n log n) औसत चणजी
+ - सेलेक्शन सॉर्ट आणि इन्सर्शन सॉर्ट दोन्ही O(n^2) औसत आणि अत्यधिक चणजी
+ - हिप सॉर्टसाठी, खालील हिप डेटा संरचना पहा
+
+- [ ] आवश्यक नाही, परंतु मी त्यांना शिफारस करतो:
+ - [ ] [सेजविक - रॅडिक्स सॉर्ट (६ व्हिडिओ)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] [1. जावात स्ट्रिंग्स](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] [2. की इंडेक्स्ड काउंटिंग](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
+ - [ ] [3. लीस्ट सिग्निफिकंट डिजिट फर्स्ट स्ट्रिंग रॅडिक्स सॉर्ट](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] [4. मोस्ट सिग्निफिकंट डिजिट फर्स्ट स्ट्रिंग रॅडिक्स सॉर्ट](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] [5. ३ वे रॅडिक्स क्विकसॉर्ट](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
+ - [ ] [6. सफ्फिक्स अॅरे](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [रॅडिक्स सॉर्ट](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] [रॅडिक्स सॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] [रॅडिक्स सॉर्ट, काउंटिंग सॉर्ट (कनिष्ठ समय दिल्याप्रमाणे सीमांकित) (व्हिडिओ)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [रॅडिक्स सॉर्ट, आरंडमीकरण: मॅट्रिक्स मल्टिप्लाई, क्विकसॉर्ट, फ्रेवाल्ड्सचा अल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [सॉर्टिंग इन लिनियर टाइम (व्हिडिओ)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+सारांशात, येथे असलेल्या [१५ सॉर्टिंग अल्गोरिदम्स](https://www.youtube.com/watch?v=kPRA0W1kECg)ची एक दृश्यात्मक प्रतिनिधीत्व केली आहे. जर आपल्याला या विषयावर अधिक माहिती आवश्यक असेल, तर "[कितीही विषयांवर अतिरिक्त माहिती](#additional-detail-on-some-subjects)" मध्ये "सॉर्टिंग" विभाग पहा
+
+## ग्राफ
+
+कंप्यूटर विज्ञानात कोणत्याही समस्या प्रतिस्थापित करण्यासाठी ग्राफ वापरले जाऊ शकतात, म्हणून ह्या विभागात तोड, कळवणे आणि क्रमवारीस असे लांब असतात.
+
+- नोट:
+
+ - मेमोरीमध्ये ग्राफ प्रतिनिधित्व करण्याचे ४ मूल विधान आहेत:
+ - ऑब्जेक्ट्स आणि पॉईंटर्स
+ - परिसराचे संबंधचित्र
+ - अजेसन्सी लिस्ट
+ - अजेसन्सी मॅप
+ - प्रत्येक प्रतिनिधित्वाची आपल्याला ओळखा आणि त्याचे फायदे आणि दुष्करता
+ - BFS आणि DFS - त्यांची संगणनात्मक जटिलता, त्यांच्या सूट, आणि त्यांना वास्तविक कोडमध्ये कसे कार्यान्वित करायचे याची ओळख असल्याचे
+ - प्रश्न केल्यावर, पहिल्यांसाठी ग्राफ-आधारित सोड शोधा, नंतर वळण
+
+- [ ] MIT(व्हिडिओ):
+
+ - [ ] [ब्रेड्थ-फर्स्ट सर्च](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] [डेप्थ-फर्स्ट सर्च](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
+
+- [ ] स्कीना व्याख्यान - महान परिचय:
+
+ - [ ] [CSE373 2020 - लेक्चर 10 - ग्राफ डेटा संरचना (व्हिडिओ)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] [CSE373 2020 - लेक्चर 11 - ग्राफ वर्तन (व्हिडिओ)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] [CSE373 2020 - लेक्चर 12 - डेप्थ फर्स्ट सर्च (व्हिडिओ)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] [CSE373 2020 - लेक्चर 13 - किमी स्पॅनिंग ट्रीज (व्हिडिओ)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] [CSE373 2020 - लेक्चर 14 - किमी स्पॅनिंग ट्रीज (सुरू) (व्हिडिओ)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] [CSE373 2020 - लेक्चर 15 - ग्राफ अल्गोरिदम (टेलीमोठ टू) (व्हिडिओ)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
+
+- [ ] ग्राफ (पुनरावलोकन आणि अधिक):
+
+ - [ ] [६.००६ एकट्यांचा सर्वोत्तम मार्ग समस्या (व्हिडिओ)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [६.००६ डायक्स्ट्रा (व्हिडिओ)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ] [६.००६ बेल्मन-फॉर्ड (व्हिडिओ)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
+ - [ ] [६.००६ डायक्स्ट्रा वेगवेगळ्या (व्हिडिओ)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] [अडुनी: ग्राफ अल्गोरिदम I - टोपोलॉजिकल सॉर्टिंग, किमी स्पॅनिंग ट्रीज, प्रिम्स अल्गोरिदम - लेक्चर 6 (व्हिडिओ)](https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [अडुनी: ग्राफ अल्गोरिदम II - DFS, BFS, क्रस्कल्स अल्गोरिदम, युनियन फाइंड डेटा संरचना - लेक्चर 7 (व्हिडिओ)](https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
+ - [ ] [अडुनी: ग्राफ अल्गोरिदम III: किमी स्पॅनिंग - लेक्चर 8 (व्हिडिओ)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] [अडुनी: ग्राफ अल्गोरिदम IV: भौमिती अल्गोरिदम्सकरणासाठी परिचय - लेक्चर 9 (व्हिडिओ)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] [CS 61B 2014: वेटेड ग्राफ (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] [लालाच अल्गोरिदम्स: किमी स्पॅनिंग ट्री (व्हिडिओ)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] [स्ट्रॉन्ग्ली कनेक्टेड कॉम्पोनेंट्स कोसराजूचा अल्गोरिदम ग्राफ अल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [[पुनरावलोकन] सर्वोत्तम मार्ग अल्गोरिदम (playlist) १६ मिनिटांमध्ये (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [[पुनरावलोकन] किमी स्पॅनिंग ट्री (playlist) ४ मिनिटांमध्ये (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
+
+- पूर्ण Coursera कोर्स:
+
+ - [ ] [ग्राफ अल्गोरिदम (व्हिडिओ)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
+
+- मी अमला करेन:
+ - [ ] अजेसन्सी लिस्टसह DFS (आवृत्तीद्वारे)
+ - [ ] अजेसन्सी लिस्टसह DFS (स्टॅकसह आवृत्तीद्वारे)
+ - [ ] अजेसन्सी मॅट्रिक्ससह DFS (आवृत्तीद्वारे)
+ - [ ] अजेसन्सी मॅट्रिक्ससह DFS (स्टॅकसह आवृत्तीद्वारे)
+ - [ ] अजेसन्सी लिस्टसह BFS
+ - [ ] अजेसन्सी मॅट्रिक्ससह BFS
+ - [ ] एकट्यांच्या सर्वोत्तम मार्ग (डायक्स्ट्रा)
+ - [ ] किमी स्पॅनिंग ट्री
+ - DFS-आधारित अल्गोरिदम (वरील Aduni व्हिडिओ पहा):
+ - [ ] सायकलासाठी तपासा (तोपोलॉजिकल सॉर्टिंगसाठी आम्ही सायकलाची तपासणी सुरू करण्यापूर्वी सायकल तपासणे आवश्यक आहे, कारण आम्ही सुरू करण्यापूर्वी सायकलाची तपासणी करण्याची तपासणी करीत आहोत)
+ - [ ] तोपोलॉजिकल सॉर्ट
+ - [ ] ग्राफमध्ये कनेक्टेड संघटनांची संख्या काउंट करा
+ - [ ] कड़क संघटनांची सूची
+ - [ ] बायपार्टाईट ग्राफसाठी तपासा
From 21fe23946bcc6f297ffaac2f9d94f3d646d7341a Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 04:30:15 +0530
Subject: [PATCH 147/173] README-mr.md Marathi translation
Additional Detail on Some Subjects
Video Series
Computer Science Courses
Algorithms implementation
Papers
LICENSE
System Design, Scalability, Data Handling
Additional Learning
Be thinking of for when the interview comes
Have questions for the interviewer
Once You've Got The Job
Additional Books
Update Your Resume
Interview Process & General Interview Prep
Even More Knowledge
Final Review
---
translations/README-mr.md | 980 ++++++++++++++++++++++++++++++++++++++
1 file changed, 980 insertions(+)
diff --git a/translations/README-mr.md b/translations/README-mr.md
index 6ad9961808..567e08705a 100644
--- a/translations/README-mr.md
+++ b/translations/README-mr.md
@@ -951,3 +951,983 @@ iOS वर $25 खर्च होते परंतु इतर प्ले
- [ ] ग्राफमध्ये कनेक्टेड संघटनांची संख्या काउंट करा
- [ ] कड़क संघटनांची सूची
- [ ] बायपार्टाईट ग्राफसाठी तपासा
+
+## आणखी ज्ञान
+
+- ### पुनरावर्तन (Recursion)
+
+ - [ ] पुनरावर्तन आणि परत्यायीकरणाच्या Stanford व्याख्यानपट्टी:
+ - [ ] [व्हिडिओ 8 | कार्यपद्धती (व्हिडिओ)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] [व्हिडिओ 9 | कार्यपद्धती (व्हिडिओ)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] [व्हिडिओ 10 | कार्यपद्धती (व्हिडिओ)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] [व्हिडिओ 11 | कार्यपद्धती (व्हिडिओ)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - कोणत्याही स्थितीत ते वापरण्याचे कधी योग्य आहे?
+ - टेल पुनरावर्तन कसे विचारले जाते?
+ - [ ] [टेल पुनरावर्तन काय आहे, ते का वापरण्याचे खरे कारण आहे?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
+ - [ ] [टेल पुनरावर्तन (व्हिडिओ)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] [कोणत्याही पुनरावर्तन समस्येचे विचार कसे करावे (व्हिडिओ)](https://youtu.be/ngCos392W4w)
+
+ परत्यायीकरणाची शारीरिक नकाशा: [Java]()
+ [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
+
+- ### डायनॅमिक प्रोग्रामिंग
+
+ - तुम्हाला तुमच्या साक्षात्कारात कोणत्याही डायनॅमिक प्रोग्रामिंग समस्या पाहायला मिळाली नाही, परंतु हे एक डायनॅमिक प्रोग्रामिंग समस्या म्हणून मान्यता देण्यास अनुरूप आहे हे महत्त्वाचं आहे.
+ - या विषयाचं अत्यंत कठीण असू शकतं, कारण प्रत्येक डीपी अंतग्रहणकर्त्याची चूकीची देवाण करणे आवश्यक आहे, आणि त्याचा साधन करणे कठीण असू शकतं.
+ - मी तुम्हाला डीपी समस्यांच्या अनेक उदाहरणे पाहून पैटर्नचं ठसा समजलं पर्यंत तुम्हाला सुचना देतो.
+ - [ ] व्हिडिओ:
+ - [ ] [स्किना: CSE373 2020 - व्याख्यान 19 - डायनॅमिक प्रोग्रामिंगचे परिचय (व्हिडिओ)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] [स्किना: CSE373 2020 - व्याख्यान 20 - संपादन अंतर (व्हिडिओ)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] [स्किना: CSE373 2020 - व्याख्यान 20 - संपादन अंतर (सुरुवात) (व्हिडिओ)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] [स्किना: CSE373 2020 - व्याख्यान 21 - डायनॅमिक प्रोग्रामिंग (व्हिडिओ)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] [स्किना: CSE373 2020 - व्याख्यान 22 - डायनॅमिक प्रोग्रामिंग आणि पुनरावलोकन (व्हिडिओ)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
+ - [ ] [साइमन्सन: डायनॅमिक प्रोग्रामिंग 0 (59:18 पासून सुरू) (व्हिडिओ)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] [साइमन्सन: डायनॅमिक प्रोग्रामिंग I - व्याख्यान 11 (व्हिडिओ)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [साइमन्सन: डायनॅमिक प्रोग्रामिंग II - व्याख्यान 12 (व्हिडिओ)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] व्यक्तिगत डीपी समस्यांची यादी (प्रत्येक संक्षिप्त आहे):
+ [डायनॅमिक प्रोग्रामिंग (व्हिडिओ)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] येल व्याख्यान नोट्स:
+ - [ ] [डायनॅमिक प्रोग्रामिंग](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
+ - [ ] कोर्सेरा:
+ - [ ] [RNA सेकंडरी संरचना समस्या (व्हिडिओ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
+ - [ ] [एक डायनॅमिक प्रोग्रामिंग अल्गोरिदम (व्हिडिओ)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
+ - [ ] [डीपी अल्गोरिदमचा चित्रण (व्हिडिओ)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
+ - [ ] [डीपी अल्गोरिदमची चालनाची वेळ (व्हिडिओ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
+ - [ ] [डीपी बनाम पुनरावलोकन अंमलावणी (व्हिडिओ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] [ग्लोबल पेअरवायस सिक्वेन्स अलायनमेंट (व्हिडिओ)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
+ - [ ] [स्थानिक पेअरवायस सिक्वेन्स अलायनमेंट (व्हिडिओ)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
+
+- ### डिझाइन पॅटर्न्स
+
+ - [ ] [व्हिडिओ: त्वरीत UML पुनरावलोकन (व्हिडिओ)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] ह्या पॅटर्न्सचा अभ्यास करा:
+ - [ ] स्ट्रॅटेजी
+ - [ ] सिंगलटन
+ - [ ] ऍडॅप्टर
+ - [ ] प्रोटोटाईप
+ - [ ] डेकोरेटर
+ - [ ] विजिटर
+ - [ ] फॅक्टरी, अॅब्सट्रॅक्ट फॅक्टरी
+ - [ ] फेसेड
+ - [ ] ऑब्झर्व्हर
+ - [ ] प्रॉक्सी
+ - [ ] डेलीगेट
+ - [ ] कमांड
+ - [ ] स्टेट
+ - [ ] मेमेंटो
+ - [ ] आयटरेटर
+ - [ ] कॉम्पोझिट
+ - [ ] फ्लायवेट
+ - [ ] [संच: व्हिडिओ सिरीज (27 व्हिडिओ)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
+ - [ ] [पुस्तक: हेड फर्स्ट डिझाइन पॅटर्न्स](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - मला माहित आहे की कॅनॉनिकल पुस्तक "डिझाइन पॅटर्न्स: ओब्जेक्ट-ओरिएंटेड सॉफ्टवेअरचे घटक" आहे, परंतु हेड फर्स्ट ही सुरुवातीकडून अवघड प्रारंभकांसाठी उत्तम आहे.
+ - [हॅंडी संदर्भ: डेव्हलपर्ससाठी 101 डिझाइन पॅटर्न्स आणि सूचना](https://sourcemaking.com/design-patterns-and-tips)
+
+- ### संयुक्तिशास्त्र (n निवडा k) आणि प्रायोगिकी
+
+ - [ ] [गणित कौशल्य: फॅक्टोरियल, पर्म्युटेशन, आणि कॉम्बिनेशन (निवडा) कसे शोधायचं (व्हिडिओ)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] [मेक स्कूल: प्रायोगिकी (व्हिडिओ)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] [मेक स्कूल: अधिक प्रायोगिकी आणि मार्कोव श्रॅइन्स (व्हिडिओ)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] खान एकेडेमी:
+ - कोर्स लेआउट:
+ - [ ] [मूल थ्योरेटिकल प्रायोगिकी](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
+ - केवळ व्हिडिओ - 41 (प्रत्येक सोपे आणि प्रत्येक संक्षिप्त आहेत):
+ - [ ] [प्रायोगिकी समजलेलं (व्हिडिओ)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+
+- ### एनपी, एनपी-पूर्ण आणि अनुमापन अल्गोरिदम
+
+ - एनपी-पूर्ण समस्यांच्या सर्वात प्रसिद्ध वर्गांची ओळख करा, उदा. यात्रा करणारा विक्रेता आणि बटवारे समस्या, आणि त्यांना ओळखू शकण्यात यावं जेव्हा साक्षात्कारदाता तुम्हाला त्यांचं उपाय करण्याचं म्हणेल.
+ - एनपी-पूर्ण असे काय म्हणतात, हे ओळखा.
+ - [ ] [संज्ञानात घेण्याची सोपीता (व्हिडिओ)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] सायमन्सन:
+ - [ ] [लालची एल्गोरिदम्स II आणि एनपी-पूर्णता साठी परिचय (व्हिडिओ)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] [एनपी-पूर्णता II आणि घटक (व्हिडिओ)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [एनपी-पूर्णता III (व्हिडिओ)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] [एनपी-पूर्णता IV (व्हिडिओ)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] स्कीना:
+ - [ ] [CSE373 2020 - व्याख्यान 23 - एनपी-पूर्णता (व्हिडिओ)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=23)
+ - [ ] [CSE373 2020 - व्याख्यान 24 - संतोषपद (व्हिडिओ)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=24)
+ - [ ] [CSE373 2020 - व्याख्यान 25 - अधिक एनपी-पूर्णता (व्हिडिओ)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=25)
+ - [ ] [CSE373 2020 - व्याख्यान 26 - एनपी-पूर्णता चॅलेंज (व्हिडिओ)](https://www.youtube.com/watch?v=_EzetTkG_Cc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=26)
+ - [ ] [जटिलता: पी, एनपी, एनपी-पूर्णता, घटक (व्हिडिओ)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] [जटिलता: अनुमापन अल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] [जटिलता: निश्चित-पॅरामीटर अल्गोरिदम्स (व्हिडिओ)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - पीटर नॉर्विग यांनी यात्रा करणार्या विक्रेता समस्येसाठी करीब करीब उत्तम सोडलेले निर्धारण:
+ - [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
+ - तुमच्याकडे आहे का तो CLRS चा पृष्ठ 1048 - 1140.
+
+- ### कसे कंप्यूटर प्रोग्राम प्रक्रिया करते
+ - [ ] [कसे सीपीयू प्रोग्राम कार्यान्वित करतो (व्हिडिओ)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] [कसे कंप्यूटर गणना करते - एएलयु (व्हिडिओ)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] [रजिस्टर आणि रॅम (व्हिडिओ)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] [केंद्रीय प्रोसेसिंग युनिट (सीपीयू) (व्हिडिओ)](https://youtu.be/FZGugFqdr60)
+ - [ ] [निर्देशन आणि कार्यक्रम (व्हिडिओ)](https://youtu.be/zltgXvg6r3k)
+- ### कॅशेस
+
+ - [ ] LRU कॅश:
+ - [ ] [LRU कॅशाची जादू (100 दिवस ऑफ गूगल डेव) (व्हिडिओ)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] [LRU अंमलात घेणे (व्हिडिओ)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] [LeetCode - 146 LRU कॅश (सी++) (व्हिडिओ)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
+ - [ ] सीपीयू कॅश:
+ - [ ] [MIT 6.004 L15: मेमरी हायरार्की (व्हिडिओ)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] [MIT 6.004 L16: कॅश समस्या (व्हिडिओ)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+
+- ### प्रक्रिया आणि थ्रेड्स
+
+ - [ ] कॉम्प्यूटर सायन्स 162 - ऑपरेटिंग सिस्टम्स (25 व्हिडिओ):
+ - प्रक्रिया आणि थ्रेड्ससाठी 1-11 व्हिडिओ पहा
+ - [ऑपरेटिंग सिस्टम्स आणि सिस्टम प्रोग्रामिंग (व्हिडिओ)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - [प्रक्रिया आणि थ्रेड्समध्ये अंतर काय आहे?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
+ - आवरण करते:
+ - प्रक्रिया, थ्रेड्स, एकत्रता समस्या
+ - प्रक्रिया आणि थ्रेड्स विचार
+ - प्रक्रिया
+ - थ्रेड्स
+ - लॉक्स
+ - म्यूटेक्स
+ - सेमाफोर्स
+ - मॉनिटर्स
+ - ते कसे कार्य करतात?
+ - डेडलॉक
+ - लायव्हलॉक
+ - सीपीयू चालना, इंटरप्ट्स, संदर्भ परिवर्तन
+ - मल्टीकोर प्रोसेसर्ससह सध्याची एकत्रता संरचना
+ - [पेजिंग, सेग्मेंटेशन, आणि वर्च्युअल मेमरी (व्हिडिओ)](https://youtu.be/O4nwUqQodAg)
+ - [इंटरप्ट्स (व्हिडिओ)](https://youtu.be/iKlAWIKEyuw)
+ - प्रक्रिया संसाधन आवश्यकता (मेमरी: कोड, स्थैतिक संचयन, स्टॅक, हिप, आणि संदर्भांचा फाईल दर्शक, आयओ)
+ - थ्रेड्स संसाधन आवश्यकता (समावेश करते (स्टॅक समावेश केलेला बाहेर) आणि प्रक्रियेमध्ये इतर थ्रेड्ससह सामायिक असताना प्रत्येकाचं नवीन पीसी, स्टॅक काउंटर, नोंदणी, आणि स्टॅक असतं.)
+ - फोर्किंग खरोखर लिहिते किंवा नवीन प्रक्रियेमध्ये लिहिते (वाचण्यासाठी) तोते कोपी.
+ - संदर्भ परिवर्तन
+ - [ऑपरेटिंग सिस्टम्स आणि त्यातील कनेक्टिंग व्हार्डवेअरद्वारे संदर्भ परिवर्तन कसे प्रारंभ होतं?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
+ - [ ] [सी++मध्ये थ्रेड्स (संचिका - 10 व्हिडिओ)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] [मेसाचुसेट्स युनिवर्सिटीनंचे CS 377 Spring '14: ऑपरेटिंग सिस्टम्स](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
+ - [ ] पायथनमध्ये एकत्रता (व्हिडिओ):
+ - [ ] [थ्रेड्सवरील लघु संचिका](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] [पायथन थ्रेड्स](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] [पायथन GILचा समज (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
+ - [संदर्भ](http://www.dabeaz.com/GIL)
+ - [ ] [डेविड Beazley - पायथन एकत्रता एवढं वाचा LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] [कीनोट डेविड Beazley - विषय आहेत (पायथन एसिंक्रोनॉस्टिका)](https://www.youtube.com/watch?v=ZzfHjytDceU)
+ - [ ] [पायथनमध्ये म्यूटेक्स](https://www.youtube.com/watch?v=0zaPs8OtyKY)
+
+- ### चाचणी
+
+ - कवर करण्यासाठी:
+ - कसे युनिट चाचणी कार्य करते
+ - काय मॉक ऑब्जेक्ट आहेत
+ - काय एकत्रता चाचणी आहे
+ - काय डिपेंडेन्सी इन्जेक्शन आहे
+ - [ ] [जेम्स बाच सोबत Agile सॉफ्टवेअर टेस्टिंग (व्हिडिओ)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] [सॉफ्टवेअर टेस्टिंगवर जेम्स बाच द्वारे खुला व्याख्यान (व्हिडिओ)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] [स्टीव फ्रीमॅन - टेस्ट-ड्रायव्ह्ड डेव्हलपमेंट (ते काय आम्ही म्हणत होतो) (व्हिडिओ)](https://vimeo.com/83960706)
+ - [स्लाइड्स](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
+ - [ ] डिपेंडेन्सी इन्जेक्शन:
+ - [ ] [व्हिडिओ](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
+ - [ ] [चाचणी कसे लिहावी](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
+ - [ ] [चाचण्यांसाठी कसे लिहावं](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
+
+- ### स्ट्रिंग शोध आणि व्यवस्थापन
+
+ - [ ] [सेजविक - सफ्फिक्स अॅरेस (व्हिडिओ)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] [सेजविक - उपस्थिती शोध (व्हिडिओ)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. उपस्थिती शोधास परिचय](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
+ - [ ] [2. ब्र्यूट-फोर्स उपस्थिती शोध](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
+ - [ ] [3. क्नूथ-मोरिस प्रॅट](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
+ - [ ] [4. बोयर-मोर](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
+ - [ ] [5. राबिन-कार्प](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
+ - [ ] [टेक्स्टमध्ये पॅटर्न शोध (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+
+ जर आपल्याला या विषयावर अधिक माहिती आवडत असेल तर, "कितीकोटी विषयांवर अतिरिक्त माहिती" मध्ये "स्ट्रिंग मॅचिंग" अनुभाग पहा.
+
+- ### ट्राय्स
+
+ - नोंद: विविध प्रकारांचे ट्राय आहेत. काहीतरींना प्रिफिक्स आहेत, काहीतरींना नाही, आणि काही बिट्ससाठी स्ट्रिंग्स वापरतात
+ मार्गाचे ट्रॅक
+ - मी कोडमध्ये वाचले, परंतु कार्यान्वित केले नाही
+ - [ ] [सेजविक - ट्राय (3 व्हिडिओ)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
+ - [ ] [1. आर-वे ट्राय](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
+ - [ ] [2. तेर्नरी सर्च ट्राय](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
+ - [ ] [3. अक्षराधारित प्रक्रिया](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
+ - [ ] [डेटा संरचना आणि प्रोग्रामिंग तंत्रे वरचे नोंद](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
+ - [ ] लघु कोर्स व्हिडिओ:
+ - [ ] [ट्राय सर्व परिचय (व्हिडिओ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] [ट्राय संचयनाची प्रदर्शनी (व्हिडिओ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] [ट्राय अंमलबजावणी कसे करावी (व्हिडिओ)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
+ - [ ] [ट्राय: एक अवधृत डेटा संरचना](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
+ - [ ] [टॉपकोडर - ट्रायज वापरणे](https://www.topcoder.com/thrive/articles/Using%20Tries)
+ - [ ] [स्टॅनफोर्ड व्हिडिओ (वास्तविक वापराची केस) (व्हिडिओ)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] [MIT, प्रगत डेटा संरचना, स्ट्रिंग्स (ह्या अर्धवट विडीओमध्ये खूप अविष्कारी होतात) (व्हिडिओ)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+
+- ### फ्लोटिंग पॉईंट नंबर्स
+
+ - [ ] सोप्पा 8-बिट: [फ्लोटिंग पॉईंट नंबर्सची प्रतिस्थापन - 1 (व्हिडिओ - गणनांतरात एक त्रुटी आहे - व्हिडिओची वर्णन पहा)](https://www.youtube.com/watch?v=ji3SfClm8TU)
+
+- ### यूनिकोड
+
+ - [ ] [प्रत्येक सॉफ्टवेअर डेव्हलपरने यूनिकोड आणि वर्णसंचार सेट्सबद्दल निश्चितपणे माहितीवान काहीच नाही](http://www.joelonsoftware.com/articles/Unicode.html)
+ - [ ] [प्रत्येक प्रोग्रामरने काम करण्यासाठी अवश्य असलेल्या कोडिंग्स आणि वर्णसंचार सेट्सबद्दल माहितीवान काहीच नाही](http://kunststube.net/encoding/)
+
+- ### एंडियनेस
+
+ - [ ] [बिग आणि लिटिल एंडियन](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
+ - [ ] [बिग एंडियन विरुद्ध लिटिल एंडियन (व्हिडिओ)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] [बिग आणि लिटिल एंडियन इन्साइड/आउट (व्हिडिओ)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - कर्नेल डेव्हलपर्ससाठी खूप तांत्रिक चर्चा. आपल्या मागीलच्या विचारांची काळजी घ्यायला लागली तर चिंता नका.
+ - पहिल्या अर्धात आपल्याला सुद्धा काही काही योग्य वाटतील.
+
+- ### नेटवर्किंग
+ - **जर आपल्याकडे नेटवर्किंग अनुभव आहे किंवा संचारविज्ञानी किंवा कार्याचे प्रचार अभियंता होण्याची इच्छा आहे, तर प्रश्न अपेक्षित करा**
+ - इतरथील ते फक्त माहितीचे आहे
+ - [ ] [खान एकेडमी](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] [UDP आणि TCP: परिवहन संरचनांचा तुलनात्मक (व्हिडिओ)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] [TCP/IP आणि OSI मॉडेल स्पष्टीकरण! (व्हिडिओ)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] [इंटरनेटवर पॅकेट प्रेषण. नेटवर्किंग आणि TCP/IP ट्यूटोरियल. (व्हिडिओ)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] [HTTP (व्हिडिओ)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] [SSL आणि HTTPS (व्हिडिओ)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] [SSL/TLS (व्हिडिओ)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] [HTTP 2.0 (व्हिडिओ)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] [व्हिडिओ सीरीज (21 व्हिडिओ) (व्हिडिओ)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
+ - [ ] [सबनेटिंगचे अनाधिकृतीकरण - भाग 5 सीआयडीआर सूची (व्हिडिओ)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] सॉकेट्स:
+ - [ ] [जावा - सॉकेट्स - परिचय (व्हिडिओ)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] [सॉकेट प्रोग्रामिंग (व्हिडिओ)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+
+## अंतिम समीक्षा
+
+ ह्या विभागात, आपल्याला प्रामुख्यांच्या अधिक महत्त्वाच्या धारणांची पुनरावलोकन करण्यासाठी लवकर लवकर पहायला मिळणारे लघु व्हिडिओ असतील.
+ हे खूप छान आहे जर आपल्याला अक्षरश: अक्षर वापरायला आवडते.
+
+- [ ] 2-3 मिनिटांचे लघु विषय व्हिडिओ सिरीज (23 व्हिडिओ)
+ - [व्हिडिओ](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] 2-5 मिनिटांचे लघु विषय व्हिडिओ सिरीज - मायकल संबोल (48 व्हिडिओ):
+ - [व्हिडिओ](https://www.youtube.com/@MichaelSambol)
+ - [कोड उदाहरणे](https://github.com/msambol/dsa)
+- [ ] [सेजविक व्हिडिओ - अल्गोरिदम्स I](https://www.coursera.org/learn/algorithms-part1)
+- [ ] [सेजविक व्हिडिओ - अल्गोरिदम्स II](https://www.coursera.org/learn/algorithms-part2)
+
+## तुमचा रेझ्युम अपडेट करा
+
+- "Cracking The Coding Interview" आणि "Programming Interviews Exposed" हे पुस्तके पहा
+- ["चांगला रेझ्युम कसं दिसतं" गेल मॅकडॉनेल (Cracking the Coding Interview ची लेखिका)](https://www.careercup.com/resume),
+ - लेखिकेचा अभिप्राय: "हा संगणक संयंत्र युएस अँड अन्य देशांसाठी अनेक वेळा वेगवेगळ्या अपेक्षा असतात, हाताळणीच्या बाजूचे प्रमुख असतात, परंतु अनेक बिंदू सामान्य असतील."
+- ["चरणावरील रेझ्युम मार्गदर्शन" टेक इंटरव्ह्यू हँडबुक](https://www.techinterviewhandbook.org/resume/guide)
+ - रेझ्युम सामग्री कसे तयार करायची, प्रभावी रेझ्युम सामग्री कसे लिहायची, ती ऑप्टिमाईझ कसे करायची, आणि तुमचा रेझ्युम कसं चाचणी करायचं हे मार्गदर्शित करणारं विस्तृत मार्गदर्शिका.
+
+## इंटरव्ह्यू प्रक्रिया आणि सामान्य प्रिपरेशन
+
+- [ ] [2021 मध्ये इंजिनिअरिंग इंटरव्ह्यू कशात काढायचं ते कसं पार पडायचं](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
+- [ ] [टेक रिक्रूटिंगच्या आजवळल्या मिस्ट्री](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] बिग 4 मध्ये नोकरी कसं मिळवायचं:
+ - [ ] [बिग 4 - अमेझॉन, फेसबुक, गूगल आणि मायक्रोसॉफ्ट (व्हिडिओ)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [बिग 4.1 नोकरी कसं मिळवायचं (अनुसरण व्हिडिओ)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] क्रॅकिंग दि कोडिंग इंटरव्ह्यू सेट 1:
+ - [ ] [गेल लॅकमॅन मॅकडॉनेल - क्रॅकिंग दि कोडिंग इंटरव्ह्यू (व्हिडिओ)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [क्रॅकिंग दि कोडिंग इंटरव्ह्यू - लेखिकेसह गेल लाक्मॅन मॅकडॉनेल (व्हिडिओ)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] फेसबुक क्रॅकिंग दि कोडिंग इंटरव्ह्यू:
+ - [ ] [प्रस्ताव](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [समस्या चर्चा](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- प्रिप कोर्सेस:
+ - [पायथन फॉर डेटा स्ट्रक्चर्स, अल्गोरिदम्स, आणि इंटरव्ह्यूस (पेड कोर्स)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - डेटा स्ट्रक्चर्स, अल्गोरिदम्स, मॉक इंटरव्ह्यूस, आणि अधिक प्रकारच्या पायथनसंबंधित इंटरव्ह्यू प्रिप कोर्स.
+ - [पायथन वापरून डेटा स्ट्रक्चर्स आणि अल्गोरिदम्स साठी परिचय (उदासिती विनामूल्य कोर्स)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - विनामूल्य पायथन सेंट्रिक डेटा स्ट्रक्चर्स आणि अल्गोरिदम्स कोर्स.
+ - [डेटा स्ट्रक्चर्स आणि अल्गोरिदम्स नॅनोडिग्री! (उदासिती अनुलग्न कोर्स)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - इंटरव्ह्यूज आणि ऑन-दि-जॉब स्थित्यांसाठी तुम्हाला तयार करण्यासाठी वेळांचं मार्गदर्शन करत असलेले बोलणे आणि अल्गोरिदम्स अभ्यास घेणे.
+ - [बिहेव्ह्योरल इंटरव्ह्यूला ग्रोकिंग (एज्युकेटिव्ह विनामूल्य कोर्स)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - अधिकतर वेळेस तुमच्या तांत्रिक क्षमतेमध्ये तुम्हाला तुमच्या स्वप्नांच्या नोकरीला मिळवण्याचं अवरोधक नसतं, ते कसं आपण बर्तायचं ते हा बिहेव्ह्योरल इंटरव्ह्यू कसं करतात ते अभ्यास घेणे.
+ - [एल्गोमॉन्स्टर (विनामूल्य कोर्स सह पेड कोर्स)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - LeetCode साठी धडकधडकी असणे. हजारों प्रश्नांमधून संकल्पित सर्व पॅटर्न्सची आवृत्ती करते.
+
+मॉक इंटरव्ह्यू:
+
+- [Gainlo.co: मोक इंटरव्ह्यूअर्स सह बड्याच्या कंपनीतून](http://www.gainlo.co/#!/) - मी हे वापरलं आणि हे माझ्याला फोन स्क्रीन आणि ऑन-साइट इंटरव्ह्यूसाठी थंड करण्यास मदत केलं
+- [Pramp: मोक इंटरव्ह्यूअर्स सह/सह करणार्](https://www.pramp.com/) - इंटरव्ह्यूचे सह/सह करण्यासाठी समुदायामध्ये पीर-पर-पीर मॉडेल
+- [interviewing.io: वरिष्ठ इंजिनिअर्ससह मोक इंटरव्ह्यू प्रॅक्टिस](https://interviewing.io) - FAANGमधील वरिष्ठ अभियंत्यांसोबत अनामिक अल्गोरिदमिक/सिस्टम डिझाईन इंटरव्ह्यू
+- [Meetapro: टॉप FAANG इंटरव्ह्यूअर्ससह मोक इंटरव्ह्यूस](https://meetapro.com/?utm_source=ciu) - एअरबीअनची अंतर्गत मोक इंटरव्ह्यू/कोचिंग प्लॅटफॉर्म.
+- [Hello Interview: ऍक्सपर्ट कोचेससोबत आणि AI सोबत मोक इंटरव्ह्यूस](https://www.hellointerview.com/?utm_source=ciu) - AIसह किंवा FAANG स्टाफ अभियंते आणि व्यवस्थापकांसोबत इंटरव्ह्यू.
+- [Codemia: AI किंवा समुदाय समाधानांसोबत प्रणाली डिझाईन समस्यांचे प्रॅक्टिस करा आणि मूल्यमापन घ्या](https://codemia.io/?utm_source=ciu) - सिस्टम डिझाईन समस्या AI प्रॅक्टिस टूलवर मूल्यमापन करा. समुदायातील आपले समाधान सामुदायिक हैक तपासा.
+
+## 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.
+Have a story, not just data, about something you accomplished.
+
+- Why do you want this job?
+- What's a tough problem you've solved?
+- Biggest challenges faced?
+- Best/worst designs seen?
+- Ideas for improving an existing product
+- How do you work best, as an individual and as part of a team?
+- Which of your skills or experiences would be assets in the role and why?
+- What did you most enjoy at [job x / project y]?
+- What was the biggest challenge you faced at [job x / project y]?
+- What was the hardest bug you faced at [job x / project y]?
+- What did you learn at [job x / project y]?
+- What would you have done better at [job x / project y]?
+
+## बारवा प्रश्न असल्यास आण्यासाठी
+
+माझ्यात असणारी काही (मला आधीच प्रत्युत्तरे मिळू शकतात, परंतु त्यांच्या मत वा टीमच्या दृष्टिकोनातून इच्छा आहे):
+
+- तुमच्या टीमचे किती वेळी?
+- तुमचे डेव सायकल कसे असते? तुम्ही वॉटरफॉल / स्प्रिंट्स / एजाइल करता का?
+- कालावधीला धडे सामायिक होतात का? किंवा त्यांच्यावर प्रासंगिकता आहे का?
+- तुमच्या टीममध्ये निर्णय कसे घेतले जातात?
+- तुमच्या टीममध्ये प्रत्येक आठवड्याला किती बैठके झाली जातात?
+- तुम्हाला वातावरणात काम करण्याची मदत कसं वाटतं?
+- तुम्ही काय करीत आहात?
+- तुम्हाला ह्याच्यावर काय आवडतं?
+- कामाचा जीवन कसं आहे?
+- काम / लायफ बॅलन्स कसं आहे?
+
+## नोकरी मिळाल्यानंतर
+
+अभिनंदन!
+
+शिका जारी ठेवा.
+
+तुम्ही वास्तविकपणे समाप्त नाहीत.
+
+---
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+ हे बद्दल काही खालील बिंदू ऐकले पाहिजे. प्रवेश स्तराच्या साक्षात्कारासाठी हे आवश्यक नाही.
+ परंतु, यांचे अभ्यास करण्याने, आपल्याला अधिक CS संकल्पांच्या विस्तारात विचारल्याचा संधी देते आणि
+ कोणत्याही सॉफ्टवेअर इंजिनियरिंग नोकरीसाठी तयार केल्यावर तुम्ही एक अधिक समर्थ सॉफ्टवेअर इंजिनियर बनणार आहात.
+ आपण एक काहीशे विचारातून एक अधिक वेल-राउंडेड सॉफ्टवेअर इंजिनियर आहात.
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+---
+
+## अतिरिक्त पुस्तके
+
+ या पुस्तकांच्यातून तुम्ही आपल्याला आवडणारा विषयांमध्ये संपलं तर काम करू शकता.
+
+- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
+ - जुना परंतु चांगला
+- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
+ - आधुनिक पर्याय
+- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
+- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
+ - डिझाईन पॅटर्न्सचे सोपे परिचय
+- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - गॅंग ऑफ फोर पुस्तक किंवा GOF
+ - गॅंग ऑफ फोर प्रमाणिक डिझाईन पॅटर्न्स पुस्तक
+- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - एक पुनरावलोकन आणि समस्या-ओळख
+ - आल्गोरिदम कॅटलॉग भागातील विषय हा साक्षात्कारात मिळवण्यास खूप मोठं आहे
+- [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
+- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - हे पुस्तक 2004 मध्ये प्रकाशित झाले होते, आणि काहीवेळेस अपडेट नाहीत, परंतु एक चांगला संसाधन आहे कंप्यूटर चे समजावून
+- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - महत्त्वाचं: ह्या पुस्तकाची वाचने केवळ सीमित मूल्य असेल. ह्या पुस्तकात आल्गोरिदम आणि डेटा संरचना चं खूप छान समाविष्ट केलं आहे, परंतु तुम्हाला चांगलं कोड कसं लिहायला हवं आहे
+- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
+ - अधिक अर्थशास्त्रिक, अधिक अद्ययावत (2017), परंतु लांब व्याख्या साठी
+
+## सिस्टम डिझाईन, स्केलेबिलिटी, डेटा हॅंडलिंग
+
+**जर तुम्हाला 4+ वर्षांचा अनुभव असेल तर तुम्हाला सिस्टम डिझाईनचे प्रश्न अपेक्षित आहेत.**
+
+- स्केलेबिलिटी आणि सिस्टम डिझाईन हे खूप मोठे विषय आहेत आणि त्यात काही विषय आणि संसाधने आहेत, कारण
+ कॉम्प्युटर / हार्डवेअर सिस्टम डिझाईन करताना अनेक गोष्टी ध्यानात ठेवण्याची आहे की कसे स्केल करावे.
+ यावर आपल्याला काही वेळ खर्च होणार आहे
+- विचारणे:
+ - स्केलेबिलिटी
+ - मोठ्या डेटा सेटला एकदा माने घेऊन घेणे
+ - एक डेटा सेटला दुसर्याकडे बदलणे
+ - अत्यंत मोठ्या प्रमाणात डेटा संचयन
+ - सिस्टम डिझाईन
+ - सुविधा संचयन
+ - इंटरफेसेस
+ - वर्ग वर्गांचा वारसा
+ - निश्चित प्रतिबंधांत एका सिस्टमचा डिझाईन
+ - सरलता आणि प्रतिस्थापन
+ - तपशील विचारांची
+ - कार्यक्षमता विश्लेषण आणि अद्ययावधीकरण
+- [ ] **इथे सुरू करा**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+- [ ] [HiredInTech मध्ये सिस्टम डिझाईन](http://www.hiredintech.com/system-design/)
+- [ ] [तकनीकी साक्षात्कारात डिझाईन प्रश्नांना कसं उत्तर द्यायचं?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
+- [ ] [सिस्टम डिझाईन साक्षात्कारासाठी 8 धडे मार्गदर्शिका](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
+- [ ] [डेटाबेस नॉर्मलायझेशन - 1NF, 2NF, 3NF आणि 4NF (व्हिडिओ)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
+- [ ] [सिस्टम डिझाईन साक्षात्कार](https://github.com/checkcheckzz/system-design-interview) - इथेच अनेक संसाधन आहेत. लेख आणि उदाहरण पाहा. माझ्याकडून काहीतरीही खालील आहेत
+- [ ] [सिस्टम डिझाईन साक्षात्कारासाठी कसं धडे मार्गदर्शिका](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
+- [ ] [प्रत्येकाला पाहिजेल अंक](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
+- [ ] [एका संदर्भ पदलाचं तर किती वेळ लागतं?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
+- [ ] [डेटासेंटर्स व्यवस्थांना ट्रान्झॅक्शन्स (व्हिडिओ)](https://www.youtube.com/watch?v=srOgpXECblk)
+- [ ] [CAP सिद्धांताचा एक सादर इंग्रजी परिचय](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
+- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 व्हिडिओ)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+- [ ] समरसता अल्गोरिदम:
+ - [ ] पॅक्सोस - [Paxos सममती - Computerphile (व्हिडिओ)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
+ - [ ] रफ्ट - [एक दावाने समरस्मीद केलेला परिचय (व्हिडिओ)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
+ - [ ] [सोप्यासारखा कागद](https://raft.github.io/)
+ - [ ] [इन्फोग्राफिक](http://thesecretlivesofdata.com/raft/)
+- [ ] [समरसता हॅशिंग](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
+- [ ] [NoSQL पॅटर्न्स](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
+- [ ] स्केलेबिलिटी:
+ - तुम्हाला हे सर्व लागेणार नाही. फक्त तुमच्याकडून आवडलेले काही निवडा.
+ - [ ] [महत्त्वाचा अवलोकन (व्हिडिओ)](https://www.youtube.com/watch?v=-W9F__D3oY4)
+ - [ ] लहान श्रृंखला:
+ - [क्लोन्स](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
+ - [डेटाबेस](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
+ - [कॅश](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
+ - [अयसिन्क्रोनिझम](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
+ - [ ] [स्केलेबिल वेब आर्किटेक्चर आणि वितारित सिस्टम](http://www.aosabook.org/en/distsys.html)
+ - [ ] [वितारित कॉम्प्युटिंगची खोटींची धारणा स्पष्टीकरण](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
+ - [ ] [जेफ डीन - Google असा सॉफ्टवेअर सिस्टम निर्माण आणि शिक्षण कसं करतो? (व्हिडिओ)](https://www.youtube.com/watch?v=modXC5IWTJI)
+ - [ ] [स्केल असलेल्या प्रणालीसाठी सिस्टम डिझाईनचा परिचय](http://lethain.com/introduction-to-architecting-systems-for-scale/)
+ - [ ] [App Engine आणि Cloud Datastore वापरून एक जागतिक प्रेक्षक संचालनात मोबाइल गेमस कसं स्केल करायचं? (व्हिडिओ)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
+ - [ ] [Google आणि जमिनच्या आकारासाठी कसं प्लॅनेट-स्केल इंजिनियरिंग करतो? (व्हिडिओ)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
+ - [ ] [अल्गोरिदमांची महत्त्वाचीता](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
+ - [ ] [शार्डिंग](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
+ - [ ] [लांडातील खेळांसाठी इंजिनियरिंग करण्याची गोष्ट](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
+ - [ ] [YouTube स्केलेबिलिटी सवय व 30 मिनिटांत दस वर्ष](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
+ - [व्हिडिओ](https://www.youtube.com/watch?v=G-lGCC4KKok)
+ - [ ] [कसं PayPal रोजच्या गतिविधींसाठी 8VMs वापरून बिलियन व्यवहार कसं स्केल केलं?](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
+ - [ ] [कसं मोठ्या डेटासेंटरमध्ये डुप्लिकेट्स काढाव्यात?](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
+ - [ ] [एक Instagram च्या प्रमाणात कसं अभिप्राय सांगावं?](https://www.youtube.com/watch?v=3vV4YiqKm1o)
+ - [ ] [एक Patreon आर्किटेक्चर कसं टिकवून ठेवायचं हे अत्यंत कमी](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
+ - [ ] [तिंडर: एकाचा पर्याय शोधाव्याचं कसं? लाखां मिळवणार कोणा पाहून?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
+ - [ ] [एका आधुनिक कॅशचे डिझाईन](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
+ - [ ] [फेसबुक स्केलबिलीत लाईव्ह व्हिडिओ स्ट्रिमिंग](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
+ - [ ] [Amazon चा एका न्यायलेल्या आकारातील सिस्टम डिझाईनावर का पोहोच?](http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
+ - [ ] [मिलियन व्यवहारांपर्यंत कसं प्लॅनेट-स्केल इंजिनियरिंग करतात परिपाटी इमेज ऑप्टिमायझन टेक्नॉलॉजी](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
+ - [ ] [Amazon AWS वापरून 11 मिलियन वापरकर्त्यांकडे कसं स्केल करायचं?](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
+ - [ ] [नेटफ्लिक्स स्टॅकची पूर्ण 360 डिग्री पाहणी](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
+ - [ ] [ल्याटेंसी सर्वत्र आहे आणि तुम्हाला विक्रींसाठी खर्च करतं](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
+ - [ ] [सेल्सफोर्स आर्किटेक्चर - त्यांनी कसं दिवसात 1.3 बिलियन व्यवहार केलं?](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
+ - [ ] [ESPN ची आर्किटेक्चर स्केलचा आकार - प्रतिसेकंडाला 100,000 दु नु नु आणि अधिक](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
+ - [ ] सेवा संचालन करण्याच्या काही तंत्रज्ञानांसाठी "संदेशसंचार, सिरिअलायझेशन, आणि क्यूसिंग प्रणाली" हे पाहा
+ - [ ] Twitter:
+ - [ओरेली MySQL CE 2011: जेरेमी कोल, "@Twitter वरचे मोठे आणि लहान डेटा" (व्हिडिओ)](https://www.youtube.com/watch?v=5cKTP36HVgI)
+ - [टाइमलायन्स यातना](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
+ - आणखी प्रमाणांसाठी, "व्हिडिओ सिरीज" येथील "माइनिंग मॅसिव्ह डेटासेट्स" ला पाहा
+- [ ] सिस्टम डिझाईन प्रक्रियेचे अभ्यास करणे: येथे कागदावर काम करण्यासाठी काही विचारांची प्रक्रिया दिली आहे, प्रत्येकाला कसं वापरलं होतं त्याबद्दल काही कागदपत्रे आणि त्याच्या वास्तविक जगात कसं वापरलं होतं ते दिलं आहे:
+ - पुनरावृत्ती: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
+ - [HiredInTech मध्ये सिस्टम डिझाईन](http://www.hiredintech.com/system-design/)
+ - [धोखादणीपत्र](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
+ - प्रवाह:
+ 1. समस्या आणि परिधीचे समजा:
+ - वापर घटनांचे परिभाषित करा, परीक्षकाची मदत घ्या
+ - अतिरिक्त सुविधा सुचवा
+ - परीक्षक अख्खाप ठरवलेली निरीक्षित वस्तू वगळा
+ - उच्च प्रवलगत्ता आवश्यक आहे, ती एक वापरण्याची अपेक्षा करा
+ 2. प्रतिबंधांचे विचार करा:
+ - प्रतिमांचा म्हणजे महिन्यात किती विनंत्यांची माहिती असेल
+ - प्रतिमांचा म्हणजे किती विनंत्या प्रतिसेकंद असेल (ते तुम्हाला स्वतः सांगितले जाईल किव्हा तुम्ही गणना करावी)
+ - मागील 80/20 नियमाचा ध्यान धरा विनंत्यांची अंदाज लागू करताना
+ - प्रतिसेकंद लिहिलेलं डेटा आवश्यक असलेलं डेटा किती असलं
+ - 5 वर्षांतील कुल भंडारण आवश्यक आहे
+ - प्रतिसेकंद वाचलेली माहिती किती असली
+ 3. व्याख्यानशील डिझाईन:
+ - पर्याय (सेवा, डेटा, कॅशिंग)
+ - इंफ्रास्ट्रक्चर: लोड बॅलन्सिंग, संदेशदारी
+ - तंत्रज्ञान: सेवेच्या प्रवाहाची कुंडली
+ - बंदरघर आणि त्याचे समाधाने
+ - अभ्यास:
+ - [किसी बरची उदाहरणीकरण तंत्रज्ञान डिझाईन](https://blog.twitter.com/2010/announcing-snowflake)
+ - [किसी की-मूल्य डेटाबेस डिझाईन करा](http://www.slideshare.net/dvirsky/introduction-to-redis)
+ - [किसी चित्र सामायिक करण्याची प्रणाली डिझाईन करा](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
+ - [किसी सल्लागार प्रणाली डिझाईन करा](http://ijcai13.org/files/tutorial_slides/td3.pdf)
+ - [किसी URL लुटिपेकरण प्रणाली डिझाईन करा: पूर्वानुमानित कियामध्ये से](http://www.hiredintech.com/system-design/the-system-design-process/)
+ - [किसी कॅश प्रणाली डिझाईन करा](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
+
+## अतिरिक्त शिक्षण
+
+ मी तुम्हाला एक चांगला सॉफ्टवेअर इंजिनिअर बनवण्यासाठी आणि कितीतरी तंत्रज्ञान आणि
+ अल्गोरिदम्सविषयी जागरूक होऊन, तुमच्याकडे एक विशाल टूलबॉक्स असावं.
+
+- ### कॉम्पायलर्स
+
+ - [कसा कॉम्पायलर काम करतो (व्हिडिओ)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
+ - [हार्वर्ड सीएस50 - कॉम्पायलर्स (व्हिडिओ)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
+ - [सी++ (व्हिडिओ)](https://www.youtube.com/watch?v=twodd1KFfGk)
+ - [कॉम्पायलर ऑप्टिमिझेशन समजून घ्या (सी++) (व्हिडिओ)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
+
+- ### Emacs आणि vi(m)
+
+ - एक UNIX-आधारित कोड संपादकाशी परिचित व्हा
+ - vi(m):
+ - [Vim 01 - स्थापना, सेटअप, आणि मोड्स संपादन (व्हिडिओ)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
+ - [VIM Adventures](http://vim-adventures.com/)
+ - एक सेट ऑफ 4 व्हिडिओ:
+ - [vi/vim संपादक - धडे 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
+ - [vi/vim संपादक - धडे 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
+ - [vi/vim संपादक - धडे 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
+ - [vi/vim संपादक - धडे 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
+ - [Emacs वापरण्यासाठी vi बदला](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
+ - emacs:
+ - [मूल Emacs ट्यूटोरियल (व्हिडिओ)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
+ - एक सेट ऑफ 3 (व्हिडिओ):
+ - [Emacs ट्यूटोरियल (प्रारंभिक) - भाग 1- फाइल कमांड, कट/कॉपी/पेस्ट, कर्सर कमांड](https://www.youtube.com/watch?v=ujODL7MD04Q)
+ - [Emacs ट्यूटोरियल (प्रारंभिक) - भाग 2- बफर मॅनेजमेंट, शोध, M-x grep आणि rgrep मोड्स](https://www.youtube.com/watch?v=XWpsRupJ4II)
+ - [Emacs ट्यूटोरियल (प्रारंभिक) - भाग 3- व्यक्तीकरण, वाक्ये, ~/.emacs फाइल, आणि पॅकेज](https://www.youtube.com/watch?v=paSgzPso-yc)
+ - [Evil Mode: किंवा, मी एमॅक्सला प्रेम कसं जणू शिकलं (व्हिडिओ)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
+ - [Emacsसह C कार्यक्रमे लिहिणे](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
+ - [Emacsसाठी नवीन प्रारंभिक पूर्ण मार्गदर्शन (व्हिडिओ द्वारा डेव्हिड विल्सन)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
+ - [Emacsसाठी नवीन प्रारंभिक पूर्ण मार्गदर्शन (डेव्हिड विल्सन नोट्स)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
+
+- ### UNIX कमांड पंक्ती उपकरण
+
+ - मी खालील चांगल्या उपकरणांपासून यादी भरली.
+ - bash
+ - cat
+ - grep
+ - sed
+ - awk
+ - curl किंवा wget
+ - sort
+ - tr
+ - uniq
+ - [strace](https://en.wikipedia.org/wiki/Strace)
+ - [tcpdump](https://danielmiessler.com/study/tcpdump/)
+
+- ### माहिती सिद्धांत (व्हिडिओ)
+
+ - [खान अकॅडेमी](https://www.khanacademy.org/computing/computer-science/informationtheory)
+ - अधिक मार्कोव प्रक्रियांच्याबद्दल:
+ - [मूळ मार्कोव मजकूर प्रक्रिया](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
+ - [मूळ मार्कोव मजकूर प्रक्रिया कार्यान्वयन](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
+ - [प्रकल्प = मार्कोव मजकूर उत्पादन सरळ मार्गदर्शन](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
+ - खालील MIT 6.050J माहिती आणि एंट्रोपी सिरीजमध्ये अधिक पहा
+
+- ### पॅरिटी आणि हॅमिंग कोड (व्हिडिओ)
+
+ - [परिचय](https://www.youtube.com/watch?v=q-3BctoUpHE)
+ - [पॅरिटी](https://www.youtube.com/watch?v=DdMcAUlxh1M)
+ - हॅमिंग कोड:
+ - [त्रुटी ओळखणे](https://www.youtube.com/watch?v=1A_NcXxdoCc)
+ - [त्रुटी सुधारणे](https://www.youtube.com/watch?v=JAMLuxdHH8o)
+ - [त्रुटी कसे तपासावे](https://www.youtube.com/watch?v=wbH2VxzmoZk)
+
+- ### अंतवर्तीता
+
+ - खालील व्हिडिओपणे पहा
+ - सूर्यप्रकाश सिद्धांत व्हिडिओंची पहिलीच वाचन करा
+ - [माहिती सिद्धांत, क्लोड शॅनन, अंतवर्तीता, अतिरिक्तता, डेटा संक्षेपण आणि बिट्स (व्हिडिओ)](https://youtu.be/JnJq3Py0dyM?t=176)
+
+- ### संरक्षणाशास्त्र
+
+ - खालील व्हिडिओपणे पहा
+ - सूर्यप्रकाश सिद्धांत व्हिडिओंची पहिलीच वाचन करा
+ - [खान अकॅडेमी सिरीज](https://www.khanacademy.org/computing/computer-science/cryptography)
+ - [संरक्षणाशास्त्र: हॅश फंक्शन्स](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
+ - [संरक्षणाशास्त्र: एन्क्रिप्शन](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- ### संपीढन
+
+ - सूर्यप्रकाश सिद्धांत व्हिडिओंची पहिलीच वाचन करा
+ - Computerphile (व्हिडिओ):
+ - [संपीढन](https://www.youtube.com/watch?v=Lto-ajuqW3w)
+ - [संपीढनमध्ये अंतवर्तीता](https://www.youtube.com/watch?v=M5c_RFKVkko)
+ - [उपरोक्त झाडे (हफमन झाडे)](https://www.youtube.com/watch?v=umTbivyJoiI)
+ - [EXTRA BITS/TRITS - हफमन झाडे](https://www.youtube.com/watch?v=DV8efuB3h2g)
+ - [मजकूरातील सुंदर संपीढन (LZ 77 पद्धत)](https://www.youtube.com/watch?v=goOa3DGezUA)
+ - [मजकूरातील संपीढन संधीका प्रायद्विप्प्राप्ती](https://www.youtube.com/watch?v=cCDCfoHTsaU)
+ - [कंप्रेसर हेड व्हिडिओ](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
+ - [(पर्यायी) गूगल डेव्हलपर्स लाइव: GZIP योग्य नाही!](https://www.youtube.com/watch?v=whGwm0Lky2s)
+
+- ### कंप्यूटर सुरक्षा
+
+ - [MIT (23 व्हिडिओ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [परिचय, धोका मॉडेल्स](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [नियंत्रण बरळवा आच्छादन](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
+ - [बफर ओव्हरफ्लो गोळा आच्छादन आणि पराधीनता](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
+ - [विशेषाधिकार विभाग](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [क्षमतांची](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [सॅंडबॉक्सिंग नेटिव कोड](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
+ - [वेब सुरक्षा मॉडेल](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [वेब अनुप्रयोग सुरक्षित करणे](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [प्रतिक्रियांकी निर्देश](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [नेटवर्क सुरक्षा](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [नेटवर्क प्रोटोकॉल्स](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+ - [साइड-चॅनल हलवा](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- ### कचऱ्या संग्रहण
+
+ - [पायथनमध्ये GC (व्हिडिओ)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
+ - [आळवणी जावा: कचरा संग्रहण चांगले आहे!](https://www.infoq.com/presentations/garbage-collection-benefits)
+ - [आळवणी पायथन: CPython मधील कचरा संग्रहण (व्हिडिओ)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
+
+- ### पॅरलेल प्रोग्रामिंग
+
+ - [Coursera (स्काला)](https://www.coursera.org/learn/parprog1/home/week/1)
+ - [उच्च-प्रदर्शन पॅरलेल संगणनासाठी पायथन (व्हिडिओ)](https://www.youtube.com/watch?v=uY85GkaYzBk)
+
+- ### संदेशपट, सिरिअलाइझेशन, आणि क्यूइंग प्रणाली
+
+ - [Thrift](https://thrift.apache.org/)
+ - [ट्यूटोरियल](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Protocol Buffers](https://developers.google.com/protocol-buffers/)
+ - [ट्यूटोरियल](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [Java डेव्हलपर्स साठी gRPC 101 (व्हिडिओ)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [ट्यूटोरियल](http://try.redis.io/)
+ - [Amazon SQS (क्यू)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (पब-सब)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [प्रारंभ करा](https://www.rabbitmq.com/getstarted.html)
+ - [Celery](http://www.celeryproject.org/)
+ - [सेलरीसह पहिली कदमे](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [परिचय - मॅन्युअल वाचा](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
+
+- ### A\*
+
+ - [A शोध अल्गोरिदम](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A\* पॅथफाइंडिंग (E01: अल्गोरिदम समज) (व्हिडिओ)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### फास्ट फूरियर ट्रांसफॉर्म
+
+ - [फूरियर ट्रांसफॉर्मसाठी एक इंटरॅक्टिव्ह गायड](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [फूरियर ट्रांसफॉर्म काय आहे? ते काय वापरले जाते?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [फूरियर ट्रांसफॉर्म काय आहे? (व्हिडिओ)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [विभाजन आणि विजेक्टर: FFT (व्हिडिओ)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [FFT समज (व्हिडिओ)](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### ब्लूम फिल्टर
+
+ - m बिट्स आणि k हॅशिंग फंक्शनसह दिलेल्या ब्लूम फिल्टरमध्ये अंचन आणि सदस्यता चाचणी O(k) आहेत
+ - [ब्लूम फिल्टर (व्हिडिओ)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [ब्लूम फिल्टर | महासंख्याची खाणी | स्टॅनफोर्ड युनिव्हर्सिटी (व्हिडिओ)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [ट्यूटोरियल](http://billmill.org/bloomfilter-tutorial/)
+ - [ब्लूम फिल्टर App कसे लिहावा](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+
+- ### हायपरलॉगलॉग
+
+ - [कसे 1.5KB च्या मेमरी वापरून एक बिलियन विविध ऑब्जेक्ट्स गणना करायची](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
+
+- ### स्थानिकता-संबंधी हॅशिंग
+
+ - कागदपत्रांच्या समानतेचे निर्धारण करण्यासाठी वापरले जाते
+ - एमडी5 किंवा एसएचएसासारख्या नावांतरीत कागदपत्रांच्या विश्वातल्या नावांची सुरक्षितता करण्यासाठी वापरले जाते
+ - [सिमहॅशिंग (आशा करत आहे) सोपे केले](http://ferd.ca/simhashing-hopefully-made-simple.html)
+
+- ### व्हॅन एम्डे बोस झाडे
+
+ - [विभाजन आणि विजेक्टर: व्हॅन एम्डे बोस झाडे (व्हिडिओ)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
+ - [MIT लेक्चर नोट्स](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
+
+- ### अग्निवर्धनशील डेटा संरचना
+
+ - [CS 61B लेक्चर 39: डेटा संरचना अग्निवर्धन](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
+
+- ### संतुलित शोध झाडे
+
+ - कमीत कमी एक प्रकारची संतुलित दोन वनबीज झाड (आणि ते कसे अंमलात आहे हे ओळखा):
+ - "संतुलित शोध झाडांमध्ये, AVL आणि 2/3 झाड आता passé आहेत आणि रेड-ब्लॅक झाडांचं दिसणं अधिक प्रसिद्ध दिसतं.
+ विशेषतः विचारले तरी, एसप्ले झाड हे एक विशेषतः आकर्षक स्वत: संगणना संरचना आहे, जे स्पिन जोडतात
+ कोणत्याही पहुचताचे की निकष किंवा विस्तार त्यातील विलिन विवाहरू. मला आवडतं आहे
+ आपण आपल्या अंशकात्मकतेत कोणत्याही असंख्य संरचना तयार करताना विचारलं पाहिजे
+ खूप विचारलं जातं, रेड-ब्लॅक झाडांमध्ये पूर्णत्वसाठी आवश्यक असतात.
+ उदाहरणार्थ, गणितीय ज्यामितीतील विविध डेटा संरचन लागू करण्यासाठी अनेक डेटा संरचनांमध्ये आधारित
+ रेड-ब्लॅक झाडे, आणि वर्तमान लिनक्स करनेल्समध्ये वापरले जातात
+ पूर्णत्वसाठी ग्राहकांचा न्याय पाहतात. जावाच्या 8 आवृत्यात,
+ संगणना हॅशमॅपविजेच्या संगणकावर संरक्षण अजेंडा एसएनएसमध्ये विनिर्मित केले जाते"
+ - [MIT AVL झाड / AVL क्रम (व्हिडिओ)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
+ - [AVL झाड (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
+ - [AVL झाड अंमलबजावणी (व्हिडिओ)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
+ - [विभाजन आणि संयोजन](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
+ - [[पुनरावलोकन] AVL झाडे (प्लेलिस्ट) 19 मिनिटंमध्ये (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
+
+ - **एसप्ले झाडे**
+
+ - प्रयोगात:
+ स्वयं संगणना संरचनांमध्ये साधारणतः एसप्ले झाडे वापरले जातात, कॅशेस, मेमरी आवंटर, रूटर्स, कचरा संग्राहक,
+ डेटा संकुचन, रोप (लांबी मजकुरांसाठी वापरलेले स्ट्रिंगस चे स्थानांतरण), Windows NT (मध्ये आवृत्ती मेमरी,
+ नेटवर्किंग आणि फायल सिस्टम कोड) इ. - [CS 61B: एसप्ले झाडे (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
+ - MIT लेक्चर: एसप्ले झाडे:
+ - खूप मॅथी असते, परंतु आशा करा की शेवटचे 10 मिनिटं नक्की पाहा.
+ - [व्हिडिओ](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
+
+ - **रेड-ब्लॅक झाडे**
+
+ - आपल्या सुरुवातीत:
+ रेड-ब्लॅक झाडांनी निवड करण्यासाठी अनेक अप्रत्यक्ष अनुमतियां देतात, विशेषत: एका संगणकीय ज्यामितीय अप्रत्यक्ष डेटा संरचना आहे;
+ उदाहरणार्थ, कॉम्प्यूटेशनल ज्यामितीमधील अनेक डेटा संरचने रेड-ब्लॅक झाडांमध्ये आधारित असू शकतात, आणि हे काही मूळ आहे
+ ब्लॅक स्वरुपांमध्ये रूपांतर करण्यास रेड-ब्लॅक झाडे वापरली जातात.
+ - [Aduni - अल्गोरिदम - लेक्चर 4 (लिंक प्रारंभिक ठिकाणी जातो) (व्हिडिओ)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
+ - [Aduni - अल्गोरिदम - लेक्चर 5 (व्हिडिओ)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
+ - [रेड-ब्लॅक झाड (विकिपीडिया)](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
+ - [द्विनांतर शोध आणि रेड-ब्लॅक झाड (लेख)](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
+ - [[पुनरावलोकन] रेड-ब्लॅक झाडे (प्लेलिस्ट) 30 मिनिटंमध्ये (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNqDI8qfOZgzbqahCUmUEin)
+
+ - **2-3 शोध झाडे**
+
+ - प्रयोगात:
+ 2-3 झाडे वेगवेगळ्या संरचनांमध्ये शीघ्र मजकूर देण्यासाठी वापरले जातात.
+ - [23-Tree Intuition आणि परिभाषा (व्हिडिओ)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
+ - [2-3 झाडे (विक्षिप्त अभ्यास) (व्हिडिओ)](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [2-3 झाडे (विद्यार्थी उपस्थिती) (व्हिडिओ)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+
+ - **2-3-4 झाडे (2-4 झाडे म्हणूनही)**
+
+ - प्रयोगात:
+ प्रत्येक 2-4 झाडासाठी, त्यांच्या दिलेल्या डेटा घटकांसह संबंधित रेड-ब्लॅक झाडे आहेत. संग्रहणा आणि अपवाद
+ 2-4 झाडांवरील ऑपरेशन्सह रेड-ब्लॅक झाडांमध्ये रंग-फ्लिपिंग आणि परिस्थिती बदलार्यांसमध्ये समाविष्ट केले जाते. हे
+ रेड-ब्लॅक झाड्या समजण्यासाठी महत्त्वाचे उपकरण बनवतात, आणि याचं कारण अधिकांश प्रारंभिक अल्गोरिदम पुस्तके
+ 2-4 झाड्यांना आधी रेड-ब्लॅक झाड्यांच्या आधारावर परिचित करतात, याचं कारण **2-4 झाडे प्रयोगात कमी किंवा आत्ता नाहीत**.
+ - [CS 61B लेक्चर 26: संतुलित शोध झाडे (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
+ - [Bottom Up 234-Trees (व्हिडिओ)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [Top Down 234-Trees (व्हिडिओ)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
+
+ - **N-अरे (K-अरे, M-अरे) झाडे**
+
+ - टीप: N किंवा K हे ब्रांचिंग फॅक्टर (जास्तीत जास्त शाखा) आहे
+ - द्विआधार झाडे एका 2-अर्य झाड्यामध्ये शाखा किंवा ब्रांचिंग फॅक्टर = 2 सह
+
+ - **बी-झाडे**
+ - मजकूर: हे एक रहस्य आहे, परंतु बी किंवा बॉईंग, संतुलित, किंवा बेयर (सहवासी विक्रेता) ची माझी असते.
+ - प्रयोगात:
+ डेटाबेसमध्ये बी-झाडे वापरले जातात. अधिक आधुनिक फायलसिस्टम्स बी-झाड्यांमध्ये वापरले जातात (किंवा वॅरिअंट्स). संग्रहणा
+ व्यास आणि बॉकसातील कोणत्याही एक ब्लॉकमध्ये एक विशिष्ट ब्लॉकमध्ये झपाटीपासून किंवा
+ (किंवा व्यासाच्या दोनदा) पर्यंतीचा डिस्क ब्लॉकमध्ये नक्ष बदलार्यांसाठी त्याची मुख्य समस्या आहे.
+ - [बी-झाडे](https://en.wikipedia.org/wiki/B-tree)
+ - [बी-झाडे डेटास्ट्रक्चर (व्हिडिओ)](http://btechsmartclass.com/data_structures/b-trees.html)
+ - [बी-झाड्यांच्या परिचय (व्हिडिओ)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
+ - [बी-झाडे परिभाषा आणि संयोजन (व्हिडिओ)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [बी-झाडे डिलीशन (व्हिडिओ)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [MIT 6.851 - मेमरी हायरार्की मॉडेल (व्हिडिओ)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) - कॅश-ओब्लिव्हिअस बी-झाड्यांवर मिंट्यात तात्पुरत्या माहितीसह पाहिलं जातं, आणि अत्यंत आकर्षक डेटा संरचने आहेत - पहिले 37 मिनिटं खूप तंत्रज्ञान असतं, आणि ते वगळा जाऊ शकतं (बी ब्लॉक आकार आहे, कॅश लायन आकार)
+ - [[पुनरावलोकन] बी-झाडे (प्लेलिस्ट) 26 मिनिटंमध्ये (व्हिडिओ)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNFPPv98DjTdD9X6UI9KMHz)
+
+- ### k-D झाडे
+
+ - एकाच आकारातल्या किंवा उच्च-आयामी वस्तूतील किंवा अंकांचे कुठलेही नंबर शोधण्यासाठी उत्कृष्ट आहेत
+ - k-निकटतम पडद्या साठी एक चांगला मिळवा
+ - [kNN K-d झाड अल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
+
+- ### स्किप यादी
+
+ - "ये काही सोसायटी डेटा संरचन आहेत" - स्कीना
+ - [क्रमांकवाचन: स्किप यादी (व्हिडिओ)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [अनिमेशनसह आणि थोडं अधिक तपशीलांसाठी](https://en.wikipedia.org/wiki/Skip_list)
+
+- ### नेटवर्क फ्लो
+
+ - [Ford-Fulkerson in 5 minutes — Step by step example (व्हिडिओ)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
+ - [Ford-Fulkerson Algorithm (व्हिडिओ)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
+ - [नेटवर्क फ्लो (व्हिडिओ)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
+
+- ### विभाजित सेट्स आणि संघटना शोधा
+
+ - [UCB 61B - विभाजित सेट्स; क्रमवारी & निवड (व्हिडिओ)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
+ - [सेजविक अल्गोरिदम - संघटना शोधा (6 व्हिडिओ)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
+
+- ### फास्ट प्रोसेसिंगसाठी गणित
+
+ - [पूर्णांक अंकगणित, कारात्सुबा गुणाकार (व्हिडिओ)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [चाईनीज बाकी ठेवा उपप्रमाण (संरक्षिततेमध्ये वापरला जातो) (व्हिडिओ)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
+
+- ### ट्रेप
+
+ - एक बाइनरी शोध झाड आणि एक कोळीची संरचना
+ - [ट्रेप](https://en.wikipedia.org/wiki/Treap)
+ - [डेटा संरचना: ट्रेप समजले (व्हिडिओ)](https://www.youtube.com/watch?v=6podLUYinH8)
+ - [सेट ऑपरेशनमध्ये अर्ज सापडले](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
+
+- ### लिनिअर प्रोग्रामिंग (व्हिडिओ)
+
+ - [लिनिअर प्रोग्रामिंग](https://www.youtube.com/watch?v=M4K6HYLHREQ)
+ - [किमान किंमत शोधणे](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
+ - [किमान मौल्य शोधणे](https://www.youtube.com/watch?v=8AA_81xI3ik)
+ - [पायथनसह लिनिअर समीकरणे सोडा - सिम्प्लेक्स अल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=44pAWI7v5Zk)
+
+- ### ज्यामिती, उत्तोल घे (व्हिडिओ)
+
+ - [ग्राफ अल्गो. IV: ज्यामिती अल्गोरिदमसाठी परिचय - व्याख्यान 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
+ - [ज्यामिती अल्गोरिदम: ग्रहाम & जार्विस - व्याख्यान 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [विभाजित आणि साधा करा: उत्तोल घे, मध्यम शोधा (व्हिडिओ)](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
+
+- ### विशेष गणित
+ - [कॉम्प्युटर सायन्स 70, 001 - स्प्रिंग 2015 - विशेष गणित आणि प्रायद्विपकता सिद्धांत](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
+ - [शाई सिमन्सन द्वारे विशेष गणित (19 व्हिडिओ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [IIT रोपर NPTEL द्वारे विशेष गणित](https://nptel.ac.in/courses/106/106/106106183/)
+
+## काही विषयांवर अधिक माहिती
+
+ मी खालीलपैकी काही विचारे सुरक्षित करण्यात यावीत कारण हे अधिकाधिक सांगितले तर काही क्षेत्रात अत्यधिक आवडायला सक्तो. एक शतकात तुम्ही नोकरी सापडायला इच्छितात ना?
+
+- **SOLID**
+
+ - [ ] [बॉब मार्टिन SOLID ऑब्जेक्ट ओरिएंटेड आणि एजाइल डिझायनचे सिद्धांत (व्हिडिओ)](https://www.youtube.com/watch?v=TMuno5RZNeE)
+ - [ ] S - [एकल जबाबदारीवर्गीय सिद्धांत](http://www.oodesign.com/single-responsibility-principle.html) | [प्रत्येक ऑब्जेक्टवर एकल जबाबदारी](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
+ - [अधिक आकार](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
+ - [ ] O - [ओपन/क्लोज्ड सिद्धांत](http://www.oodesign.com/open-close-principle.html) | [तयार ऑब्जेक्ट विस्तारसाठी तयार आहेत पण संशोधनसाठी नाहीत](https://en.wikipedia.org/wiki/Open/closed_principle)
+ - [अधिक आकार](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
+ - [ ] L - [लिस्कोव सब्स्टिट्यूशन प्रिन्सिपल](http://www.oodesign.com/liskov-s-substitution-principle.html) | [आधार क्लास आणि व्युत्पन्न क्लास 'IS A' सिद्धांतांचा पालन](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
+ - [अधिक आकार](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
+ - [ ] I - [इंटरफेस विभाजन सिद्धांत](http://www.oodesign.com/interface-segregation-principle.html) | ग्राहक वापरत नसलेल्या इंटरफेस्स लागू कराव्याचे प्रतिबद्ध नसावे
+ - [इंटरफेस विभाजन सिद्धांत 5 मिनिटांत (व्हिडिओ)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
+ - [अधिक आकार](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
+ - [ ] D -[डिपेंडन्सी इन्वर्शन सिद्धांत](http://www.oodesign.com/dependency-inversion-principle.html) | वस्तुदेहाच्या संरचनेत डिपेंडेन्सी कमी करा.
+ - [डिपेंडेन्सी इन्वर्शन प्रिन्सिपल म्हणजे काय आणि हे किती महत्वाचे आहे](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
+ - [अधिक आकार](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+
+- **युनियन-फाइंड**
+
+ - [अवलोकन](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
+ - [नैव्हेज इम्प्लिमेंटेशन](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
+ - [वृक्षे](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
+ - [श्रेणीद्वारे एकीकरण](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
+ - [पॅथ कम्प्रेशन](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
+ - [विश्लेषण पर्याय](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
+
+- **अधिक डायनॅमिक प्रोग्रामिंग** (व्हिडिओ)
+
+ - [6.006: डायनॅमिक प्रोग्रामिंग I: फिबोनाची, लहान फाटके](https://www.youtube.com/watch?v=r4-cftqTcdI&ab_channel=MITOpenCourseWare)
+ - [6.006: डायनॅमिक प्रोग्रामिंग II: मजकूर ठेवणे, ब्लॅकजॅक](https://www.youtube.com/watch?v=KLBCUx1is2c&ab_channel=MITOpenCourseWare)
+ - [6.006: DP III: पॅरेन्थेसिझेशन, एडिट डिस्टन्स, नॅप्सॅक](https://www.youtube.com/watch?v=TDo3r5M1LNo&ab_channel=MITOpenCourseWare)
+ - [6.006: DP IV: गिटार फिंगरिंग, टेट्रिस, सुपर मारियो ब्रोस.](https://www.youtube.com/watch?v=i9OAOk0CUQE&ab_channel=MITOpenCourseWare)
+ - [6.046: डायनॅमिक प्रोग्रामिंग आणि उन्नत DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [6.046: डायनॅमिक प्रोग्रामिंग: सर्व पॅअर्स लहान फाटके](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
+ - [6.046: डायनॅमिक प्रोग्रामिंग (विद्यार्थी उच्चारण)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+
+- **उन्नत ग्राफ प्रक्रिया** (व्हिडिओ)
+
+ - [सिंक्रोनस वितरित ऍल्गोरिदम्स: सममितीची उत्कृष्टता. सर्वात कमी फाटके स्पॅनिंग झाडे](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
+ - [असिंक्रोनस वितरित ऍल्गोरिदम्स: सर्वात कमी फाटके स्पॅनिंग झाडे](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+
+- MIT **प्रायव्हाबिलिटी** (मॅथी, आणि धीरे जाऊन, ज्याने गणितीय प्राण्यांसाठी चांगलं आहे) (व्हिडिओ):
+
+ - [MIT 6.042J - प्रायव्हाबिलिटी परिचय](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - अटील प्रायव्हाबिलिटी](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - स्वतंत्रता](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - रॅन्डम व्हेरिअबल्स](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
+ - [MIT 6.042J - अपेक्षिती I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - अपेक्षिती II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - मोठी दुर्व्यासने](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
+ - [MIT 6.042J - रॅन्डम वॉक्स](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+
+- [साइमन्सन: परिसंचारी ऍल्गोरिदम (व्हिडिओ)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+
+- **स्ट्रिंग मॅचिंग**
+ - रबिन-कार्प (व्हिडिओ):
+ - [रबिन कार्प ऍल्गोरिदम](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw)
+ - [पूर्वगणना](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
+ - [ऑप्टिमायझेशन: अंमलाने आणि विश्लेषण](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
+ - [टेबल डबलिंग, कार्प-रबिन](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
+ - [रोलिंग हॅशेस, अमोर्टाईज्ड विश्लेषण](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
+ - क्नुथ-मोर्रिस-प्रॅट (केएमपी):
+ - [क्नुथ-मोर्रिस-प्रॅट (केएमपी) स्ट्रिंग मॅचिंग ऍल्गोरिदम](https://www.youtube.com/watch?v=5i7oKodCRJo)
+ - बॉयर-मूर स्ट्रिंग शोध ऍल्गोरिदम
+ - [बॉयर-मूर स्ट्रिंग शोध ऍल्गोरिदम](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
+ - [अधिक स्त्रिंग शोध बॉयर-मूर-हॉर्सपूल ऍल्गोरिदम्स (व्हिडिओ)](https://www.youtube.com/watch?v=QDZpzctPf10)
+ - [Coursera: स्ट्रिंग्सवरील ऍल्गोरिदम](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
+ - कडेवार, पण कडे केएमपी प्रोक्रियेबद्दल आधीच जात असताना हे अधिक जटिल झाले आहे.
+ - ट्रायज़बद्दल छान स्पष्टीकरण.
+ - वजनाबद्दल जाणून घेण्यात आलं.
+- **क्रमवारी**
+
+ - स्टॅनफोर्ड कक्षा याद्यासृष्टी:
+ - [व्याख्यान 15 | प्रोग्रामिंग अलगोरिथम्स (व्हिडिओ)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
+ - [व्याख्यान 16 | प्रोग्रामिंग अलगोरिथम्स (व्हिडिओ)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
+ - शै साइमन्सन:
+ - [ऍल्गोरिदम्स - क्रमवारी - व्याख्यान 2 (व्हिडिओ)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
+ - [ऍल्गोरिदम्स - क्रमवारी II - व्याख्यान 3 (व्हिडिओ)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
+ - स्टीवन स्कीना कक्षा याद्यासृष्टी:
+ - [CSE373 2020 - मर्जसॉर्ट/क्विकसॉर्ट (व्हिडिओ)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=8)
+ - [CSE373 2020 - लिनिअर क्रमवारी (व्हिडिओ)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=9)
+
+- NAND टू टेट्रिस: [प्रथम सिद्धांतांपासून एक सजीव कंप्युटर बांधा](https://www.coursera.org/learn/build-a-computer)
+
+## व्हिडिओ सिरीज
+
+आराम करा आणि आनंद घ्या.
+
+- [व्यक्तिमत्व प्रकल्पनांची सूची (प्रत्येक लघु आहेत)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+
+- [x86 आर्किटेक्चर, अॅसेंबली, अॅप्लिकेशन्स (११ व्हिडिओ)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
+
+- [MIT 18.06 लिनिअर अॅल्जेब्रा, स्प्रिंग २००५ (३५ व्हिडिओ)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+
+- [उत्कृष्ट - MIT कॅलकुलस पुनरावलोकन: एकच परिवर्तक कॅलकुलस](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+
+- [Algorithm Design Manual येथून Skiena व्हिडिओंचे व्याख्यान - CSE373 २०२० - अॅनालिसिस ऑफ अॅल्गोरिदम्स (२६ व्हिडिओ)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=1)
+
+- [UC Berkeley 61B (स्प्रिंग २०१४): डेटा संरचनांचे (२५ व्हिडिओ)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+
+- [UC Berkeley 61B (फॉल २००६): डेटा संरचनांचे (३९ व्हिडिओ)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
+
+- [UC Berkeley 61C: मशीन संरचनांचे (२६ व्हिडिओ)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+
+- [OOSE: UML आणि जावा वापरून सॉफ्टवेअर विकास (२१ व्हिडिओ)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+
+- [MIT 6.004: संगणक संरचना (४९ व्हिडिओ)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
+
+- [Carnegie Mellon - कॉम्प्यूटर आर्किटेक्चर व्याख्यान (३९ व्हिडिओ)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+
+- [MIT 6.006: अॅल्गोरिदम्समध्ये परिचय (४७ व्हिडिओ)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+
+- [MIT 6.033: कॉम्प्यूटर सिस्टम इंजिनिअरिंग (२२ व्हिडिओ)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+
+- [MIT 6.034 Artificial Intelligence, फॉल २०१० (३० व्हिडिओ)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+
+- [MIT 6.042J: कॉम्प्यूटर सायन्ससाठी गणित, फॉल २०१० (२५ व्हिडिओ)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+
+- [MIT 6.046: अॅल्गोरिदम डिझाईन आणि विश्लेषण (३४ व्हिडिओ)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+
+- [MIT 6.824: वितारीत प्रणाली, स्प्रिंग २०२० (२० व्हिडिओ)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+
+- [MIT 6.851: उन्नत डेटा संरचना (२२ व्हिडिओ)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+
+- [MIT 6.854: उन्नत अॅल्गोरिदम्स, स्प्रिंग २०१६ (२४ व्हिडिओ)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+
+- [हार्वर्ड COMPSCI 224: उन्नत अॅल्गोरिदम्स (२५ व्हिडिओ)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+
+- [MIT 6.858 कॉम्प्यूटर सिस्टम सुरक्षा, फॉल २०१४](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+
+- [स्टॅनफोर्ड: प्रोग्रामिंग पॅरॅडाईम्स (२७ व्हिडिओ)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+
+- [क्रिप्टोग्राफीला परिचय Christof Paar यांकडून](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
+
+ - [पाठ्यक्रम वेबसाइट सह स्लाइड्ज आणि समस्या सेट्स](http://www.crypto-textbook.com/)
+
+- [Mining Massive Datasets - स्टॅनफोर्ड युनिव्हर्सिटी (९४ व्हिडिओ)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+
+- [ग्राफ थियरी Sarada Herke यांकडून (६७ व्हिडिओ)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## संगणक विज्ञान पाठ्यक्रम
+
+- [ऑनलाइन संगणक विज्ञान पाठ्यक्रमांची निर्देशिका](https://github.com/open-source-society/computer-science)
+- [संगणक विज्ञान पाठ्यक्रमांची निर्देशिका (अनेकांसह ऑनलाइन व्याख्यान)](https://github.com/prakhar1989/awesome-courses)
+
+## अल्गोरिदम अमलात्मककरण
+
+- [प्रिंसटन विश्वविद्यालयने अनेक अल्गोरिदम अमलात्मककरण](https://algs4.cs.princeton.edu/code)
+
+## कागदपत्रे
+
+- [क्लासिक कागदपत्रांची प्रेमक्षेत्रं?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: संचारण सरलक्रम प्रक्रिया](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Go मध्ये अमलात्मक](https://godoc.org/github.com/thomas11/csp)
+- [2003: गूगल फाइल प्रणाली](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 मध्ये कॉलोसस स्थानांतरित
+- [2004: मॅपरिड्यूस: मोठ्या क्लस्टरवर सरलीकृत डेटा प्रक्रिया](http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - अधिकांशतः क्लाउड डेटाफ्लोव्हवर बदलले?
+- [2006: बिगटेबल: संरचित डेटासाठी वितरित संग्रहण प्रणाली](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: छट्टी फडकन सेवा: संलग्न वितरित प्रणालीसाठी](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: डिनामो: अमेझॉनची अत्यंत उपलब्ध की-मूल्य मालमत्ता केंद्र](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - डिनामो कागदपत्राने नोएस्क्यूएल क्रांतीचे सुरवात केले
+- [2007: प्रत्येक कंप्यूटर चा मेमोरीवारी जाणारा वाचनीय असलेलं काही (अत्यंत लांब, आणि लेखक काही विभागांचा कड़काट जाहीर करण्याचा प्रोत्साहन करतो)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: एक वेगवान पत्ता स्वास्थ्य तपासणीकर्ता:
+ - [कागदपत्र](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [व्हिडिओ](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: स्पॅनर: गूगलचं जागतिकपटल डेटाबेस:
+ - [कागदपत्र](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [व्हिडिओ](https://www.usenix.org/node/170855)
+- [2015: गूगलवरील सतत पायपलाइन्स](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: मोठ्या पैमान्यात उपलब्ध: गूगलच्या विज्ञापनांसाठी डेटा संरचना इंफ्रास्ट्रक्चर तयार करणे](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: डेव्हलपर्स कोड सारख्या शोधतात कसं: एक प्रकरण अभ्यास](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- अधिक कागदपत्र: [1,000 कागदपत्र](https://github.com/0voice/computer_expert_paper)
+
+## परवाना
+
+[CC-BY-SA-4.0](./LICENSE.txt)
From 9e98396bf0b52b9b9e65d48ca70f921e63f37df8 Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 06:09:36 +0530
Subject: [PATCH 148/173] Kazakh translations
From j0pgrm's Kazakh branch
Co-Authored-By: j0pgrm <109052480+j0pgrm@users.noreply.github.com>
---
translations/README-kk.md | 2692 +++++++++++++------------------------
1 file changed, 936 insertions(+), 1756 deletions(-)
diff --git a/translations/README-kk.md b/translations/README-kk.md
index 655d241c92..b857da2ae5 100644
--- a/translations/README-kk.md
+++ b/translations/README-kk.md
@@ -1,37 +1,74 @@
-# Coding Interview University
+# Кодтау сұхбат университеті
-> I originally created this as a short to-do list of study topics for becoming a software engineer,
-> but it grew to the large list you see today. After going through this study plan, [I got hired
-> as a Software Development Engineer at Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> You probably won't have to study as much as I did. Anyway, everything you need is here.
+> Мен мұны бастапқыда бағдарламалық жасақтама инженері болу үшін оқу тақырыптарының қысқаша тізімі ретінде жасадым,
+> бірақ ол бүгін көріп отырған үлкен тізімге дейін өсті. Осы оқу жоспарын орындағаннан кейін [мен жұмысқа қабылдандым
+> Amazon-да бағдарламалық жасақтаманы әзірлеу инженері ретінде](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Мен сияқты көп оқудың қажеті жоқ шығар. Қалай болғанда да, сізге қажет нәрсенің бәрі осында.
>
-> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+> Мен бірнеше ай бойы күніне 8-12 сағат оқыдым. Бұл менің оқиғам: [Google сұхбаты үшін неліктен мен 8 ай бойы толық уақытты оқыдым](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
>
-> **Please Note:** You won't need to study as much as I did. I wasted a lot of time on things I didn't need to know. More info about that below. I'll help you get there without wasting your precious time.
+> **Назар аударыңыз:** Сізге мен сияқты көп оқудың қажеті жоқ. Мен көп уақытымды қажет емес нәрселерге жұмсадым. Бұл туралы қосымша ақпарат төменде. Мен сізге қымбат уақытыңызды жоғалтпай жетуге көмектесемін.
>
-> The items listed here will prepare you well for a technical interview at just about any software company,
-> including the giants: Amazon, Facebook, Google, and Microsoft.
+> Мұнда келтірілген элементтер сізді кез келген бағдарламалық жасақтама компаниясында техникалық сұхбатқа жақсы дайындайды,
+> алыптарды қоса алғанда: Amazon, Facebook, Google және Microsoft.
+# Kodtaw suxbat wnïversïteti
+
+> Men munı bastapqıda bağdarlamalıq jasaqtama ïnjeneri bolw üşin oqw taqırıptarınıñ qısqaşa tizimi retinde jasadım,
+> biraq ol bügin körip otırğan ülken tizimge deyin östi. Osı oqw josparın orındağannan keyin [men jumısqa qabıldandım
+> Amazon-da bağdarlamalıq jasaqtamanı äzirlew ïnjeneri retinde](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+> Men sïyaqtı köp oqwdıñ qajeti joq şığar. Qalay bolğanda da, sizge qajet närseniñ bäri osında.
>
-> *Best of luck to you!*
+> Men birneşe ay boyı künine 8-12 sağat oqıdım. Bul meniñ oqïğam: [Google suxbatı üşin nelikten men 8 ay boyı tolıq waqıttı oqıdım](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
+>
+> **Nazar awdarıñız:** Sizge men sïyaqtı köp oqwdıñ qajeti joq. Men köp waqıtımdı qajet emes närselerge jumsadım. Bul twralı qosımşa aqparat tömende. Men sizge qımbat waqıtıñızdı joğaltpay jetwge kömektesemin.
+>
+> Munda keltirilgen élementter sizdi kez kelgen bağdarlamalıq jasaqtama kompanïyasında texnïkalıq suxbatqa jaqsı dayındaydı,
+> alıptardı qosa alğanda: Amazon, Facebook, Google jäne Microsoft.
-
-Translations:
-
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Polish](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
-- [Japanese (日本語)](translations/README-ja.md)
-- [Russian](translations/README-ru.md)
-- [German](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [Uzbek](translations/README-uz.md)
-- [Bulgarian](translations/README-bg.md)
+
+>
+> *Сәттілік сізге!*
+
+<толығырақ>
+Аудармалар:
+
+- [中文版本](аудармалар/README-cn.md)
+- [Tiếng Việt - вьетнамша](аудармалар/README-vi.md)
+- [Español](аудармалар/README-es.md)
+- [Português Brasileiro](аудармалар/README-ptbr.md)
+- [Польша](аудармалар/README-pl.md)
+- [繁體中文](аудармалар/README-tw.md)
+- [Жапондық (日本語)](аудармалар/README-ja.md)
+- [Орыс](аудармалар/README-ru.md)
+- [Неміс](аудармалар/README-de.md)
+- [Бахаса Индонезия](аудармалар/README-id.md)
+- [ខ្មែរ - кхмер](аудармалар/README-kh.md)
+- [Өзбек](аудармалар/README-uz.md)
+- [Болгар](аудармалар/README-bg.md)
- [বাংলা - Bangla](translations/README-bn.md)
+
+>
+> *Sättilik sizge!*
+
+
+Awdarmalar:
+
+- [zhōng wén bǎn běn](awdarmalar/README-cn.md)
+- [Tiếng Việt - vetnamşa](awdarmalar/README-vi.md)
+- [Español](awdarmalar/README-es.md)
+- [Português Brasileiro](awdarmalar/README-ptbr.md)
+- [Polşa](awdarmalar/README-pl.md)
+- [fán tǐ zhōng wén](awdarmalar/README-tw.md)
+- [Japondıq (rì běn yǔ)](awdarmalar/README-ja.md)
+- [Orıs](awdarmalar/README-ru.md)
+- [Nemis](awdarmalar/README-de.md)
+- [Baxasa Ïndonezïya](awdarmalar/README-id.md)
+- [ខ្មែរ - kxmer](awdarmalar/README-kh.md)
+- [Özbek](awdarmalar/README-uz.md)
+- [Bolgar](awdarmalar/README-bg.md)
+- [bānlā - Bangla](translations/README-bn.md)
+
@@ -50,6 +87,7 @@
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
@@ -61,17 +99,6 @@
Special thanks to:
-
-
-
-

-
-
- Founded in 2018, OSS Capital is the first and only venture capital platform focused
exclusively on supporting early-stage COSS (commercial open source) startup founders.
-
-
-
-
@@ -90,1902 +117,1055 @@
-## What is it?
+## Бұл не?
+
+
+
+Бұл менің ірі компанияда бағдарламалық жасақтама инженері болу үшін көп айлық оқу жоспарым.
+
+**Міндетті:**
+* Кодтау бойынша аз тәжірибе (айнымалылар, циклдар, әдістер/функциялар және т.б.)
+* Сабыр
+* Уақыт
+
+Бұл веб-әзірлеуге емес, **бағдарламалық қамтамасыз ету инженериясына** арналған оқу жоспары екенін ескеріңіз. Google, Amazon сияқты ірі бағдарламалық қамтамасыз ету компаниялары,
+Facebook және Microsoft бағдарламалық жасақтаманы веб-әзірлеуден өзгеше деп санайды. Мысалы, Amazon бар
+Frontend инженерлері (FEE) және бағдарламалық жасақтаманы әзірлеу инженерлері (SDE). Бұл 2 бөлек рөл және сұхбат
+олар бірдей болмайды, өйткені әрқайсысының өз құзыреті бар. Бұл компаниялар үшін информатика білімі қажет
+бағдарламалық қамтамасыз етуді әзірлеу/инженерлік рөлдер.
-
+---
+
+## Мазмұны
+
+### Оқу жоспары
-This is my multi-month study plan for becoming a software engineer for a large company.
+- [Бұл не?](#не-ол)
+- [Неге оны пайдалану керек?](#why-use-it)
+- [Қалай пайдалану керек](#қалай-пайдалану керек)
+- [Өзіңізді жеткілікті ақылды емес деп санамаңыз](#сізді жеткілікті түрде ақылды-сезінбеңіз)
+- [Бейне ресурстары туралы ескертпе](#a-note-about-video-resources)
+- [Бағдарламалау тілін таңдау](#choose-a-programming-language)
+- [Дерек құрылымдары мен алгоритмдеріне арналған кітаптар](#деректер құрылымдары мен алгоритмдеріне арналған кітаптар)
+- [Интервьюге дайындық кітаптары](#interview-prep-books)
+- [Менің қателіктерімді жасамаңыз](#қателіктерімді-жасамаңыз)
+- [Жабықпен сіз көрмейсіз](#сіз-көрмейтін-қамтылған)
+- [Күнделікті жоспар](#күнделікті-жоспар)
+- [Сұрақтарды кодтау тәжірибесі](#coding-question-practice)
+- [Кодтау мәселелері](#coding-problems)
+## Bul ne?
-**Required:**
-* A little experience with coding (variables, loops, methods/functions, etc)
-* Patience
-* Time
+
-Note this is a study plan for **software engineering**, not web development. Large software companies like Google, Amazon,
-Facebook and Microsoft view software engineering as different from web development. For example, Amazon has
-Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 separate roles and the interviews for
-them will not be the same, as each has its own competencies. These companies require computer science knowledge for
-software development/engineering roles.
+Bul meniñ iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolw üşin köp aylıq oqw josparım.
+
+**Mindetti:**
+* Kodtaw boyınşa az täjirïbe (aynımalılar, cïkldar, ädister/fwnkcïyalar jäne t.b.)
+* Sabır
+* Waqıt
+
+Bul veb-äzirlewge emes, **bağdarlamalıq qamtamasız etw ïnjenerïyasına** arnalğan oqw josparı ekenin eskeriñiz. Google, Amazon sïyaqtı iri bağdarlamalıq qamtamasız etw kompanïyaları,
+Facebook jäne Microsoft bağdarlamalıq jasaqtamanı veb-äzirlewden özgeşe dep sanaydı. Mısalı, Amazon bar
+Frontend ïnjenerleri (FEE) jäne bağdarlamalıq jasaqtamanı äzirlew ïnjenerleri (SDE). Bul 2 bölek röl jäne suxbat
+olar birdey bolmaydı, öytkeni ärqaysısınıñ öz quzıreti bar. Bul kompanïyalar üşin ïnformatïka bilimi qajet
+bağdarlamalıq qamtamasız etwdi äzirlew/ïnjenerlik rölder.
---
-## Table of Contents
-
-### The Study Plan
-
-- [What is it?](#what-is-it)
-- [Why use it?](#why-use-it)
-- [How to use it](#how-to-use-it)
-- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
-- [A Note About Video Resources](#a-note-about-video-resources)
-- [Choose a Programming Language](#choose-a-programming-language)
-- [Books for Data Structures and Algorithms](#books-for-data-structures-and-algorithms)
-- [Interview Prep Books](#interview-prep-books)
-- [Don't Make My Mistakes](#dont-make-my-mistakes)
-- [What you Won't See Covered](#what-you-wont-see-covered)
-- [The Daily Plan](#the-daily-plan)
-- [Coding Question Practice](#coding-question-practice)
-- [Coding Problems](#coding-problems)
-
-### Topics of Study
-
-- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
-- [Data Structures](#data-structures)
- - [Arrays](#arrays)
- - [Linked Lists](#linked-lists)
- - [Stack](#stack)
- - [Queue](#queue)
- - [Hash table](#hash-table)
-- [More Knowledge](#more-knowledge)
- - [Binary search](#binary-search)
- - [Bitwise operations](#bitwise-operations)
-- [Trees](#trees)
- - [Trees - Notes & Background](#trees---notes--background)
- - [Binary search trees: BSTs](#binary-search-trees-bsts)
- - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- - balanced search trees (general concept, not details)
- - traversals: preorder, inorder, postorder, BFS, DFS
-- [Sorting](#sorting)
- - selection
- - insertion
- - heapsort
- - quicksort
- - merge sort
-- [Graphs](#graphs)
- - directed
- - undirected
- - adjacency matrix
- - adjacency list
- - traversals: BFS, DFS
-- [Even More Knowledge](#even-more-knowledge)
- - [Recursion](#recursion)
- - [Dynamic Programming](#dynamic-programming)
- - [Design Patterns](#design-patterns)
- - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- - [How computers process a program](#how-computers-process-a-program)
- - [Caches](#caches)
- - [Processes and Threads](#processes-and-threads)
- - [Testing](#testing)
- - [String searching & manipulations](#string-searching--manipulations)
- - [Tries](#tries)
- - [Floating Point Numbers](#floating-point-numbers)
- - [Unicode](#unicode)
+## Mazmunı
+
+### Oqw josparı
+
+- [Bul ne?](#ne-ol)
+- [Nege onı paydalanw kerek?](#why-use-it)
+- [Qalay paydalanw kerek](#qalay-paydalanw kerek)
+- [Öziñizdi jetkilikti aqıldı emes dep sanamañız](#sizdi jetkilikti türde aqıldı-sezinbeñiz)
+- [Beyne reswrstarı twralı eskertpe](#a-note-about-video-resources)
+- [Bağdarlamalaw tilin tañdaw](#choose-a-programming-language)
+- [Derek qurılımdarı men algorïtmderine arnalğan kitaptar](#derekter qurılımdarı men algorïtmderine arnalğan kitaptar)
+- [Ïntervyuge dayındıq kitaptarı](#interview-prep-books)
+- [Meniñ qatelikterimdi jasamañız](#qatelikterimdi-jasamañız)
+- [Jabıqpen siz körmeysiz](#siz-körmeytin-qamtılğan)
+- [Kündelikti jospar](#kündelikti-jospar)
+- [Suraqtardı kodtaw täjirïbesi](#coding-question-practice)
+- [Kodtaw mäseleleri](#coding-problems)
+
+### Оқу тақырыптары
+
+- [Алгоритмдік күрделілік / Үлкен-О / Асимптотикалық талдау](#алгоритмдік-күрделілік--үлкен-о--ассимптотикалық-анализ)
+- [Дерек құрылымдары](#деректер құрылымдары)
+ - [Массивтер](#массив)
+ - [Байланыстырылған тізімдер](#linked-lists)
+ - [Стек](#стек)
+ - [Кезек](#кезек)
+ - [Хэш кестесі](#хэш-кесте)
+- [Қосымша білім](#көп-білім)
+ - [Екілік іздеу](#екілік іздеу)
+ - [биттік операциялар](#биттік операциялар)
+- [Ағаштар](#ағаштар)
+ - [Ағаштар - Жазбалар және фон](#ағаштар---жазбалар--фон)
+ - [Екілік іздеу ағаштары: BSTs](#binary-search-trees-bsts)
+ - [Үйме / Басымдық кезек / Екілік үйме](#үйме--басымдылық-кезегі--екілік-үйме)
+ - теңдестірілген іздеу ағаштары (детальдар емес, жалпы түсінік)
+ - өтулер: алдын ала тапсырыс, тапсырыс, кейінгі тапсырыс, BFS, DFS
+- [Сұрыптау](#сұрыптау)
+ - таңдау
+ - кірістіру
+ - үйінді сұрыптау
+ - жылдам сұрыптау
+ - біріктіру сұрыптауы
+- [Графиктер](#график)
+ - бағыттады
+ - бағытталмаған
+ - көршілестік матрицасы
+ - іргелес тізім
+ - өтулер: BFS, DFS
+- [Одан да көп білім](#ven-more-bilgi)
+ - [Рекурсия](#рекурсия)
+ - [Динамикалық бағдарламалау](#динамикалық-бағдарламалау)
+ - [Дизайн үлгілері](#design-patterns)
+ - [Комбинаторика (n таңдау k) & Ықтималдық](#комбинаторика-n-таңдау-k--ықтималдық)
+ - [NP, NP-Толық және жуықтау алгоритмдері](#np-np-толық-және жуықтау-алгоритмдері)
+ - [Компьютерлер бағдарламаны қалай өңдейді](#қалай-компьютерлер-бағдарламаны өңдейді)
+ - [Кэштер](#кэштер)
+ - [Процестер мен ағындар](#processes-and-threads)
+ - [Тестілеу](#тестілеу)
+ - [Жолды іздеу және манипуляциялар](#string-searching--манипуляциялар)
+ - [Әрекет](# тырысады)
+ - [Жылжымалы нүкте сандары](#жылжымалы нүкте сандары)
+ - [Юникод](#уникод)
- [Endianness](#endianness)
- [Networking](#networking)
-- [Final Review](#final-review)
-
-### Getting the Job
-
-- [Update Your Resume](#update-your-resume)
-- [Find a Job](#find-a-job)
-- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
-- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
-- [Have questions for the interviewer](#have-questions-for-the-interviewer)
-- [Once You've Got The Job](#once-youve-got-the-job)
-
-**---------------- Everything below this point is optional ----------------**
-
-### Optional Extra Topics & Resources
-
-- [Additional Books](#additional-books)
-- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
-- [Additional Learning](#additional-learning)
- - [Compilers](#compilers)
- - [Emacs and vi(m)](#emacs-and-vim)
- - [Unix command line tools](#unix-command-line-tools)
- - [Information theory](#information-theory-videos)
- - [Parity & Hamming Code](#parity--hamming-code-videos)
- - [Entropy](#entropy)
- - [Cryptography](#cryptography)
- - [Compression](#compression)
- - [Computer Security](#computer-security)
- - [Garbage collection](#garbage-collection)
- - [Parallel Programming](#parallel-programming)
- - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
+- [Қорытынды шолу](#соңғы шолу)
+
+### Жұмысқа орналасу
+
+- [Түйіндемеңізді жаңарту](#жаңарту-өз түйіндемеңіз)
+- [Жұмыс табу](#жұмыс табу)
+- [Интервью процесі және жалпы сұхбатқа дайындық](#interview-process--жалпы-интервью-дайындық)
+- [Сұхбат қашан келетінін ойлаңыз](#сұхбат келгенде-ойланыңыз)
+- [Сұхбат алушыға сұрақтарыңыз бар](#сұхбат алушыға-сұрақтарыңыз бар)
+- [Жұмысқа қол жеткізгеннен кейін](#бір рет-жұмысқа-алғаннан кейін)
+
+**---------------- Осы тармақтың астындағылардың барлығы міндетті емес ----------------**
+### Oqw taqırıptarı
+
+- [Algorïtmdik kürdelilik / Ülken-O / Asïmptotïkalıq taldaw](#algorïtmdik-kürdelilik--ülken-o--assïmptotïkalıq-analïz)
+- [Derek qurılımdarı](#derekter qurılımdarı)
+ - [Massïvter](#massïv)
+ - [Baylanıstırılğan tizimder](#linked-lists)
+ - [Stek](#stek)
+ - [Kezek](#kezek)
+ - [Xéş kestesi](#xéş-keste)
+- [Qosımşa bilim](#köp-bilim)
+ - [Ekilik izdew](#ekilik izdew)
+ - [bïttik operacïyalar](#bïttik operacïyalar)
+- [Ağaştar](#ağaştar)
+ - [Ağaştar - Jazbalar jäne fon](#ağaştar---jazbalar--fon)
+ - [Ekilik izdew ağaştarı: BSTs](#binary-search-trees-bsts)
+ - [Üyme / Basımdıq kezek / Ekilik üyme](#üyme--basımdılıq-kezegi--ekilik-üyme)
+ - teñdestirilgen izdew ağaştarı (detaldar emes, jalpı tüsinik)
+ - ötwler: aldın ala tapsırıs, tapsırıs, keyingi tapsırıs, BFS, DFS
+- [Surıptaw](#surıptaw)
+ - tañdaw
+ - kiristirw
+ - üyindi surıptaw
+ - jıldam surıptaw
+ - biriktirw surıptawı
+- [Grafïkter](#grafïk)
+ - bağıttadı
+ - bağıttalmağan
+ - körşilestik matrïcası
+ - irgeles tizim
+ - ötwler: BFS, DFS
+- [Odan da köp bilim](#ven-more-bilgi)
+ - [Rekwrsïya](#rekwrsïya)
+ - [Dïnamïkalıq bağdarlamalaw](#dïnamïkalıq-bağdarlamalaw)
+ - [Dïzayn ülgileri](#design-patterns)
+ - [Kombïnatorïka (n tañdaw k) & Iqtïmaldıq](#kombïnatorïka-n-tañdaw-k--ıqtïmaldıq)
+ - [NP, NP-Tolıq jäne jwıqtaw algorïtmderi](#np-np-tolıq-jäne jwıqtaw-algorïtmderi)
+ - [Kompyuterler bağdarlamanı qalay öñdeydi](#qalay-kompyuterler-bağdarlamanı öñdeydi)
+ - [Kéşter](#kéşter)
+ - [Procester men ağındar](#processes-and-threads)
+ - [Testilew](#testilew)
+ - [Joldı izdew jäne manïpwlyacïyalar](#string-searching--manïpwlyacïyalar)
+ - [Äreket](# tırısadı)
+ - [Jıljımalı nükte sandarı](#jıljımalı nükte sandarı)
+ - [Yunïkod](#wnïkod)
+ - [Endianness](#endianness)
+ - [Networking](#networking)
+- [Qorıtındı şolw](#soñğı şolw)
+
+### Jumısqa ornalasw
+
+- [Tüyindemeñizdi jañartw](#jañartw-öz tüyindemeñiz)
+- [Jumıs tabw](#jumıs tabw)
+- [Ïntervyu procesi jäne jalpı suxbatqa dayındıq](#interview-process--jalpı-ïntervyu-dayındıq)
+- [Suxbat qaşan keletinin oylañız](#suxbat kelgende-oylanıñız)
+- [Suxbat alwşığa suraqtarıñız bar](#suxbat alwşığa-suraqtarıñız bar)
+- [Jumısqa qol jetkizgennen keyin](#bir ret-jumısqa-alğannan keyin)
+
+**---------------- Osı tarmaqtıñ astındağılardıñ barlığı mindetti emes ----------------**
+
+### Қосымша қосымша тақырыптар мен ресурстар
+
+- [Қосымша кітаптар](#қосымша кітаптар)
+- [Жүйені жобалау, масштабтау, деректерді өңдеу](#жүйе дизайны-масштабтау-деректерді өңдеу) (4 жылдан астам тәжірибеңіз болса)
+- [Қосымша оқыту](#қосымша-оқыту)
+ - [Құрастырушылар](#компиляторлар)
+ - [Emacs және vi(m)](#emacs-and-vim)
+ - [Unix пәрмен жолы құралдары](#unix-командалық жол құралдары)
+ - [Ақпарат теориясы](#ақпарат-теория-бейнелер)
+ - [Паритет және Хамминг коды](#parity--hamming-code-videos)
+ - [Энтропия](#энтропия)
+ - [Криптография](#криптография)
+ - [Сығу](#қысу)
+ - [Компьютер қауіпсіздігі](#компьютер қауіпсіздігі)
+ - [Қоқыс жинау](#қоқыс жинау)
+ - [Параллельді бағдарламалау](#параллельді бағдарламалау)
+ - [Хабар алмасу, сериялау және кезекке қою жүйелері](#хабарлама-серияландыру-және-кезектеу-жүйелері)
- [A*](#a)
- - [Fast Fourier Transform](#fast-fourier-transform)
- - [Bloom Filter](#bloom-filter)
+ - [Fast Furier Transform](#fast-fourier-transform)
+ - [Блум сүзгісі](#блум-сүзгісі)
- [HyperLogLog](#hyperloglog)
- - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- - [van Emde Boas Trees](#van-emde-boas-trees)
- - [Augmented Data Structures](#augmented-data-structures)
- - [Balanced search trees](#balanced-search-trees)
- - AVL trees
- - Splay trees
- - Red/black trees
- - 2-3 search trees
- - 2-3-4 Trees (aka 2-4 trees)
- - N-ary (K-ary, M-ary) trees
- - B-Trees
- - [k-D Trees](#k-d-trees)
- - [Skip lists](#skip-lists)
- - [Network Flows](#network-flows)
- - [Disjoint Sets & Union Find](#disjoint-sets--union-find)
- - [Math for Fast Processing](#math-for-fast-processing)
- - [Treap](#treap)
- - [Linear Programming](#linear-programming-videos)
- - [Geometry, Convex hull](#geometry-convex-hull-videos)
- - [Discrete math](#discrete-math)
- - [Machine Learning](#machine-learning)
-- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
-- [Video Series](#video-series)
-- [Computer Science Courses](#computer-science-courses)
-- [Papers](#papers)
+ - [Жергілікті-сезімтал хэштеу](#жергілікті-сезімтал-хэшинг)
+ - [ван Эмде Боас ағаштары](#ван-емде-боас-ағаштар)
+ - [Толықтырылған деректер құрылымдары](#augmented-data-structures)
+ - [Балансталған іздеу ағаштары](#балансталған іздеу ағаштары)
+ - AVL ағаштары
+ - Ағаштар
+ - қызыл/қара ағаштар
+ - 2-3 іздеу ағаштары
+ - 2-3-4 ағаш (2-4 ағаш)
+ - N-ары (Қ-ары, М-ары) ағаштары
+ - В-ағаштар
+ - [k-D ағаштары](#k-d-ағаштар)
+ - [Тізімдерді өткізіп жіберу](#өткізу тізімдері)
+ - [Желі ағындары](#желі ағындары)
+ - [Ажыратылған жиындар және одақтарды табу](#disjoint-жинақтар--одақ-табу)
+ - [Жылдам өңдеуге арналған математика](#жылдам өңдеуге арналған математика)
+ - [Треап](#treap)
+ - [Сызықтық бағдарламалау](#linear-бағдарламалау-бейнелер)
+ - [Геометрия, дөңес корпус](#геометрия-дөңес-корпус-бейнелері)
+ - [Дискретті математика](#дискретті-математика)
+- [Кейбір тақырыптар бойынша қосымша мәліметтер](кейбір тақырыптар бойынша #қосымша-деталь)
+- [Бейне сериясы](#бейне сериясы)
+- [Информатика курстары](#компьютер-ғылым-курстары)
+- [Қағаздар](#қағаз)
+### Qosımşa qosımşa taqırıptar men reswrstar
+
+- [Qosımşa kitaptar](#qosımşa kitaptar)
+- [Jüyeni jobalaw, masştabtaw, derekterdi öñdew](#jüye dïzaynı-masştabtaw-derekterdi öñdew) (4 jıldan astam täjirïbeñiz bolsa)
+- [Qosımşa oqıtw](#qosımşa-oqıtw)
+ - [Qurastırwşılar](#kompïlyatorlar)
+ - [Emacs jäne vi(m)](#emacs-and-vim)
+ - [Unix pärmen jolı quraldarı](#unix-komandalıq jol quraldarı)
+ - [Aqparat teorïyası](#aqparat-teorïya-beyneler)
+ - [Parïtet jäne Xammïng kodı](#parity--hamming-code-videos)
+ - [Éntropïya](#éntropïya)
+ - [Krïptografïya](#krïptografïya)
+ - [Sığw](#qısw)
+ - [Kompyuter qawipsizdigi](#kompyuter qawipsizdigi)
+ - [Qoqıs jïnaw](#qoqıs jïnaw)
+ - [Paralleldi bağdarlamalaw](#paralleldi bağdarlamalaw)
+ - [Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri](#xabarlama-serïyalandırw-jäne-kezektew-jüyeleri)
+ - [A*](#a)
+ - [Fast Furier Transform](#fast-fourier-transform)
+ - [Blwm süzgisi](#blwm-süzgisi)
+ - [HyperLogLog](#hyperloglog)
+ - [Jergilikti-sezimtal xéştew](#jergilikti-sezimtal-xéşïng)
+ - [van Émde Boas ağaştarı](#van-emde-boas-ağaştar)
+ - [Tolıqtırılğan derekter qurılımdarı](#augmented-data-structures)
+ - [Balanstalğan izdew ağaştarı](#balanstalğan izdew ağaştarı)
+ - AVL ağaştarı
+ - Ağaştar
+ - qızıl/qara ağaştar
+ - 2-3 izdew ağaştarı
+ - 2-3-4 ağaş (2-4 ağaş)
+ - N-arı (Q-arı, M-arı) ağaştarı
+ - V-ağaştar
+ - [k-D ağaştarı](#k-d-ağaştar)
+ - [Tizimderdi ötkizip jiberw](#ötkizw tizimderi)
+ - [Jeli ağındarı](#jeli ağındarı)
+ - [Ajıratılğan jïındar jäne odaqtardı tabw](#disjoint-jïnaqtar--odaq-tabw)
+ - [Jıldam öñdewge arnalğan matematïka](#jıldam öñdewge arnalğan matematïka)
+ - [Treap](#treap)
+ - [Sızıqtıq bağdarlamalaw](#linear-bağdarlamalaw-beyneler)
+ - [Geometrïya, döñes korpws](#geometrïya-döñes-korpws-beyneleri)
+ - [Dïskretti matematïka](#dïskretti-matematïka)
+- [Keybir taqırıptar boyınşa qosımşa mälimetter](keybir taqırıptar boyınşa #qosımşa-detal)
+- [Beyne serïyası](#beyne serïyası)
+- [Ïnformatïka kwrstarı](#kompyuter-ğılım-kwrstarı)
+- [Qağazdar](#qağaz)
+
+## Оны не үшін қолдану керек?
+
+Егер сіз ірі компанияда бағдарламалық жасақтама инженері болып жұмыс істегіңіз келсе, бұл сізге білу керек нәрселер.
+
+Егер сіз мен сияқты информатика бойынша ғылыми дәреже алуды жіберіп алсаңыз, бұл сізді қуып жетіп, өміріңіздің төрт жылын сақтайды.
+
+Мен бұл жобаны бастаған кезде, мен үйіндіден стекті білмедім, Big-O ештеңе білмедім, ағаштар туралы ештеңе білмедім немесе қалай істеу керектігін білмедім.
+графикті айналып өту. Егер мен сұрыптау алгоритмін кодтауым керек болса, бұл қорқынышты болар еді деп айта аламын.
+Мен пайдаланған әрбір деректер құрылымы тілге салынған және мен олардың қалай жұмыс істейтінін білмедім
+мүлде капюшонның астында. Мен іске қосып жатқан процесс «шығын» бермейінше, жадты ешқашан басқаруға тура келмеді
+жад» қатесі пайда болды, содан кейін уақытша шешім табуым керек еді. Мен өмірімде бірнеше көп өлшемді массивтерді қолдандым және
+мыңдаған ассоциативті массивтер, бірақ мен ешқашан деректер құрылымдарын нөлден жасаған емеспін.
+
+Бұл ұзақ жоспар. Бұл сізге айлар алуы мүмкін. Егер сіз мұның көп бөлігімен таныс болсаңыз, бұл сізге әлдеқайда аз уақыт алады.
+
+## Оны қалай пайдалануға болады
+
+Төмендегілердің бәрі контур, сондықтан элементтерді жоғарыдан төменге қарай ретімен шешу керек.
+
+Мен GitHub-тың арнайы белгілеу дәмін, соның ішінде орындалу барысын бақылау үшін тапсырмалар тізімдерін пайдаланамын.
+ - [GitHub-flavored markdown туралы толығырақ](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+
+### Егер сіз git қолданбасын пайдаланғыңыз келмесе
+
+Бұл бетте жоғарғы жағындағы Код түймесін басыңыз, содан кейін «ZIP жүктеп алу» түймесін басыңыз. Файлды ашыңыз және мәтіндік файлдармен жұмыс істей аласыз.
+
+Белгілеуді түсінетін код өңдегішінде ашық болсаңыз, барлығы жақсы пішімделгенін көресіз.
+
+
+
+### Егер сіз gitпен ыңғайлы болсаңыз
+
+Мынадай элементтерді тексеру үшін жаңа тармақ жасаңыз, жақшаға x белгісін қойыңыз: [x]
+
+1. ***GitHub репосын ашыңыз:*** `https://github.com/jwasham/coding-interview-university` Fork түймесін басу арқылы.
+## Onı ne üşin qoldanw kerek?
+
+Eger siz iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolıp jumıs istegiñiz kelse, bul sizge bilw kerek närseler.
----
+Eger siz men sïyaqtı ïnformatïka boyınşa ğılımï däreje alwdı jiberip alsañız, bul sizdi qwıp jetip, ömiriñizdiñ tört jılın saqtaydı.
-## Why use it?
+Men bul jobanı bastağan kezde, men üyindiden stekti bilmedim, Big-O eşteñe bilmedim, ağaştar twralı eşteñe bilmedim nemese qalay istew kerektigin bilmedim.
+grafïkti aynalıp ötw. Eger men surıptaw algorïtmin kodtawım kerek bolsa, bul qorqınıştı bolar edi dep ayta alamın.
+Men paydalanğan ärbir derekter qurılımı tilge salınğan jäne men olardıñ qalay jumıs isteytinin bilmedim
+mülde kapyuşonnıñ astında. Men iske qosıp jatqan process «şığın» bermeyinşe, jadtı eşqaşan basqarwğa twra kelmedi
+jad» qatesi payda boldı, sodan keyin waqıtşa şeşim tabwım kerek edi. Men ömirimde birneşe köp ölşemdi massïvterdi qoldandım jäne
+mıñdağan assocïatïvti massïvter, biraq men eşqaşan derekter qurılımdarın nölden jasağan emespin.
-If you want to work as a software engineer for a large company, these are the things you have to know.
+Bul uzaq jospar. Bul sizge aylar alwı mümkin. Eger siz munıñ köp böligimen tanıs bolsañız, bul sizge äldeqayda az waqıt aladı.
-If you missed out on getting a degree in computer science, like I did, this will catch you up and save four years of your life.
+## Onı qalay paydalanwğa boladı
-When I started this project, I didn't know a stack from a heap, didn't know Big-O anything, or anything about trees, or how to
-traverse a graph. If I had to code a sorting algorithm, I can tell ya it would have been terrible.
-Every data structure I had ever used was built into the language, and I didn't know how they worked
-under the hood at all. I never had to manage memory unless a process I was running would give an "out of
-memory" error, and then I'd have to find a workaround. I used a few multidimensional arrays in my life and
-thousands of associative arrays, but I never created data structures from scratch.
+Tömendegilerdiñ bäri kontwr, sondıqtan élementterdi joğarıdan tömenge qaray retimen şeşw kerek.
-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.
+Men GitHub-tıñ arnayı belgilew dämin, sonıñ işinde orındalw barısın baqılaw üşin tapsırmalar tizimderin paydalanamın.
+ - [GitHub-flavored markdown twralı tolığıraq](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
-## How to use it
+### Eger siz git qoldanbasın paydalanğıñız kelmese
-Everything below is an outline, and you should tackle the items in order from top to bottom.
+Bul bette joğarğı jağındağı Kod tüymesin basıñız, sodan keyin «ZIP jüktep alw» tüymesin basıñız. Fayldı aşıñız jäne mätindik fayldarmen jumıs istey alasız.
-I'm using GitHub's special markdown flavor, including tasks lists to track progress.
+Belgilewdi tüsinetin kod öñdegişinde aşıq bolsañız, barlığı jaqsı pişimdelgenin köresiz.
-**Create a new branch so you can check items like this, just put an x in the brackets: [x]**
+
- Fork a branch and follow the commands below
+### Eger siz gitpen ıñğaylı bolsañız
-Fork the GitHub repo https://github.com/jwasham/coding-interview-university by clicking on the Fork button.
+Mınaday élementterdi tekserw üşin jaña tarmaq jasañız, jaqşağa x belgisin qoyıñız: [x]
-Clone to your local repo:
+1. ***GitHub reposın aşıñız:*** `https://github.com/jwasham/coding-interview-university` Fork tüymesin basw arqılı.
+
+
+
+1. Жергілікті репоға клондау:
+
+ ```
git clone git@github.com:/coding-interview-university.git
- git checkout -b progress
- git remote add jwasham https://github.com/jwasham/coding-interview-university
- git fetch --all
+ CD кодтау-сұхбат-университет
+ git checkout -b прогресс
+ git қашықтан jwasham қосу https://github.com/jwasham/coding-interview-university
+ git fetch --барлығы
+ ```
-Mark all boxes with X after you completed your changes:
+1. Өзгерістерді аяқтағаннан кейін барлық ұяшықтарды X белгісімен белгілеңіз:
- git add .
- git commit -m "Marked x"
+ ```
+ git қосу.
+ git commit -m «X белгіленген»
git rebase jwasham/main
- git push --set-upstream origin progress
+ git push --set-upstream бастапқы прогресті
git push --force
+ ```
+
+## Өзіңді жеткілікті ақылды емес деп санама
+
+- Табысты бағдарламалық жасақтама инженерлері ақылды, бірақ олардың көпшілігі жеткілікті ақылды емес деген сенімсіздікке ие.
+- Келесі бейнелер осы сенімсіздікті жеңуге көмектесуі мүмкін:
+ - [Данышпан программист туралы миф](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [Жалғыз жүру қауіпті: технологиядағы көрінбейтін құбыжықтармен күресу](https://www.youtube.com/watch?v=1i8ylq4j_EY)
+
+## Бейне ресурстар туралы ескертпе
+
+Кейбір бейнелер Coursera немесе EdX сыныбына тіркелу арқылы ғана қолжетімді. Бұлар MOOC деп аталады.
+Кейде сабақтар сессияда болмайды, сондықтан сізге бірнеше ай күтуге тура келеді, сондықтан сізде кіру мүмкіндігі болмайды.
+
+Онлайн курс ресурстарын тегін және әрқашан қолжетімді жалпыға қолжетімді көздермен алмастыру тамаша болар еді,
+мысалы, YouTube бейнелері (жақсырақ университет лекциялары), сондықтан сіз кез келген уақытта оларды оқи аласыз,
+белгілі бір онлайн курс сессияда болғанда ғана емес.
+
+## Бағдарламалау тілін таңдаңыз
+
+Сізге кодтау сұхбаттары үшін бағдарламалау тілін таңдау керек,
+бірақ сізге информатика ұғымдарын зерттеу үшін қолдануға болатын тілді табу қажет болады.
+
+Тіл бірдей болғаны дұрыс, сондықтан сізге тек біреуін білу керек.
+
+### Осы оқу жоспары үшін
+
+Мен оқу жоспарын жасаған кезде оның көп бөлігінде 2 тілді қолдандым: C және Python
-[More about GitHub-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+* C: Өте төмен деңгей. Көрсеткіштермен және жадты бөлу/бөлумен жұмыс істеуге мүмкіндік береді, осылайша деректер құрылымдарын сезінесіз
+ және сүйектеріңіздегі алгоритмдер. Python немесе Java сияқты жоғары деңгейлі тілдерде олар сізден жасырылады. Күнделікті жұмыста бұл керемет,
+ бірақ сіз осы төмен деңгейлі деректер құрылымдарының қалай салынғанын үйреніп жатқанда, металға жақын сезіну өте жақсы.
+ - C барлық жерде бар. Сіз оқу кезінде мысалдарды кітаптардан, лекциялардан, бейнелерден, *барлық жерде* көресіз.
+ - [The C бағдарламалау тілі, 2-том](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+
-## Don't feel you aren't smart enough
+1. Jergilikti repoğa klondaw:
-- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
-- [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)
+ ```
+ git clone git@github.com:/coding-interview-university.git
+ CD kodtaw-suxbat-wnïversïtet
+ git checkout -b progress
+ git qaşıqtan jwasham qosw https://github.com/jwasham/coding-interview-university
+ git fetch --barlığı
+ ```
-## A Note About Video Resources
+1. Özgeristerdi ayaqtağannan keyin barlıq uyaşıqtardı X belgisimen belgileñiz:
-Some videos are available only by enrolling in a Coursera or EdX class. These are called MOOCs.
-Sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
+ ```
+ git qosw.
+ git commit -m «X belgilengen»
+ git rebase jwasham/main
+ git push --set-upstream bastapqı progresti
+ git push --force
+ ```
-It would be great to replace the online course resources with free and always-available public sources,
-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.
+## Öziñdi jetkilikti aqıldı emes dep sanama
-## Choose a Programming Language
+- Tabıstı bağdarlamalıq jasaqtama ïnjenerleri aqıldı, biraq olardıñ köpşiligi jetkilikti aqıldı emes degen senimsizdikke ïe.
+- Kelesi beyneler osı senimsizdikti jeñwge kömekteswi mümkin:
+ - [Danışpan programmïst twralı mïf](https://www.youtube.com/watch?v=0SARbwvhupQ)
+ - [Jalğız jürw qawipti: texnologïyadağı körinbeytin qubıjıqtarmen küresw](https://www.youtube.com/watch?v=1i8ylq4j_EY)
-You'll need to choose a programming language for the coding interviews you do,
-but you'll also need to find a language that you can use to study computer science concepts.
+## Beyne reswrstar twralı eskertpe
-Preferably the language would be the same, so that you only need to be proficient in one.
+Keybir beyneler Coursera nemese EdX sınıbına tirkelw arqılı ğana qoljetimdi. Bular MOOC dep ataladı.
+Keyde sabaqtar sessïyada bolmaydı, sondıqtan sizge birneşe ay kütwge twra keledi, sondıqtan sizde kirw mümkindigi bolmaydı.
-### For this Study Plan
+Onlayn kwrs reswrstarın tegin jäne ärqaşan qoljetimdi jalpığa qoljetimdi közdermen almastırw tamaşa bolar edi,
+mısalı, YouTube beyneleri (jaqsıraq wnïversïtet lekcïyaları), sondıqtan siz kez kelgen waqıtta olardı oqï alasız,
+belgili bir onlayn kwrs sessïyada bolğanda ğana emes.
-When I did the study plan, I used 2 languages for most of it: C and Python
+## Bağdarlamalaw tilin tañdañız
-* C: Very low level. Allows you to deal with pointers and memory allocation/deallocation, so you feel the data structures
- and algorithms in your bones. In higher level languages like Python or Java, these are hidden from you. In day to day work, that's terrific,
- but when you're learning how these low-level data structures are built, it's great to feel close to the metal.
- - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
- - [The C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
- you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- - You don't need to go super deep in the book (or even finish it). Just get to where you're comfortable reading and writing in C.
- - [Answers to questions in the book](https://github.com/lekkas/c-algorithms)
-* Python: Modern and very expressive, I learned it because it's just super useful and also allows me to write less code in an interview.
+Sizge kodtaw suxbattarı üşin bağdarlamalaw tilin tañdaw kerek,
+biraq sizge ïnformatïka uğımdarın zerttew üşin qoldanwğa bolatın tildi tabw qajet boladı.
-This is my preference. You do what you like, of course.
+Til birdey bolğanı durıs, sondıqtan sizge tek birewin bilw kerek.
-You may not need it, but here are some sites for learning a new language:
-- [Exercism](https://exercism.org/tracks)
+### Osı oqw josparı üşin
+
+Men oqw josparın jasağan kezde onıñ köp böliginde 2 tildi qoldandım: C jäne Python
+
+* C: Öte tömen deñgey. Körsetkiştermen jäne jadtı bölw/bölwmen jumıs istewge mümkindik beredi, osılayşa derekter qurılımdarın sezinesiz
+ jäne süyekteriñizdegi algorïtmder. Python nemese Java sïyaqtı joğarı deñgeyli tilderde olar sizden jasırıladı. Kündelikti jumısta bul keremet,
+ biraq siz osı tömen deñgeyli derekter qurılımdarınıñ qalay salınğanın üyrenip jatqanda, metalğa jaqın sezinw öte jaqsı.
+ - C barlıq jerde bar. Siz oqw kezinde mısaldardı kitaptardan, lekcïyalardan, beynelerden, *barlıq jerde* köresiz.
+ - [The C bağdarlamalaw tili, 2-tom](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+
+ - Бұл қысқа кітап, бірақ ол сізге Си тілін жақсы меңгеруге мүмкіндік береді және егер сіз оны аздап үйренсеңіз
+ тез шеберлікке ие боласыз. Си түсіну бағдарламалар мен жадтың қалай жұмыс істейтінін түсінуге көмектеседі.
+ - Кітаптың тереңіне барудың (тіпті оны аяқтаудың) қажеті жоқ. Си тілінде оқуға және жазуға ыңғайлы жерге жетіңіз.
+ - [Кітаптағы сұрақтарға жауаптар](https://github.com/lekkas/c-algorithms)
+* Python: Заманауи және өте мәнерлі, мен оны білдім, себебі бұл өте пайдалы және сұхбатта азырақ код жазуға мүмкіндік береді.
+
+Бұл менің басымдылығым. Сіз өзіңізге ұнайтын нәрсені жасайсыз, әрине.
+
+Бұл сізге қажет болмауы мүмкін, бірақ жаңа тілді үйренуге арналған бірнеше сайттар:
+- [Жаттығу](https://exercism.org/tracks)
- [Codewars](http://www.codewars.com)
- [Codility](https://codility.com/programmers/)
- [HackerEarth](https://www.hackerearth.com/)
- [Sphere Online Judge (spoj)](http://www.spoj.com/)
- [Codechef](https://www.codechef.com/)
-- [Codeforces](https://codeforces.com/)
+- [Код күштері](https://codeforces.com/)
+- [Scaler тақырыптары](https://www.scaler.com/topics/)
-### For your Coding Interview
+### Кодтау сұхбаты үшін
-You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
+Сұхбаттың кодтау бөлігін орындау үшін өзіңізге ыңғайлы тілді пайдалануға болады, бірақ ірі компаниялар үшін бұл дұрыс таңдау:
- C++
- Java
- Python
-You could also use these, but read around first. There may be caveats:
+Сіз оларды да пайдалана аласыз, бірақ алдымен оқып шығыңыз. Ескертулер болуы мүмкін:
- JavaScript
-- Ruby
+- Рубин
-Here is an article I wrote about choosing a language for the interview:
-[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
-This is the original article my post was based on: http://blog.codingforinterviews.com/best-programming-language-jobs/
+Сұхбат үшін тілді таңдау туралы жазған мақалам:
+[Кодтау сұхбаты үшін бір тілді таңдаңыз](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+Бұл менің постыма негізделген түпнұсқа мақала: [Сұхбаттар үшін бағдарламалау тілін таңдау](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- жұмыс/)
-You need to be very comfortable in the language and be knowledgeable.
+Сіз тілде өте ыңғайлы және білімді болуыңыз керек.
+- Bul qısqa kitap, biraq ol sizge Sï tilin jaqsı meñgerwge mümkindik beredi jäne eger siz onı azdap üyrenseñiz
+ tez şeberlikke ïe bolasız. Sï tüsinw bağdarlamalar men jadtıñ qalay jumıs isteytinin tüsinwge kömektesedi.
+ - Kitaptıñ tereñine barwdıñ (tipti onı ayaqtawdıñ) qajeti joq. Sï tilinde oqwğa jäne jazwğa ıñğaylı jerge jetiñiz.
+ - [Kitaptağı suraqtarğa jawaptar](https://github.com/lekkas/c-algorithms)
+* Python: Zamanawï jäne öte mänerli, men onı bildim, sebebi bul öte paydalı jäne suxbatta azıraq kod jazwğa mümkindik beredi.
-Read more about choices:
-- [Choose the Right Language for Your Coding Interview](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
+Bul meniñ basımdılığım. Siz öziñizge unaytın närseni jasaysız, ärïne.
-[See language-specific resources here](programming-language-resources.md)
+Bul sizge qajet bolmawı mümkin, biraq jaña tildi üyrenwge arnalğan birneşe sayttar:
+- [Jattığw](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [Codility](https://codility.com/programmers/)
+- [HackerEarth](https://www.hackerearth.com/)
+- [Sphere Online Judge (spoj)](http://www.spoj.com/)
+- [Codechef](https://www.codechef.com/)
+- [Kod küşteri](https://codeforces.com/)
+- [Scaler taqırıptarı](https://www.scaler.com/topics/)
-## Books for Data Structures and Algorithms
+### Kodtaw suxbatı üşin
-This book will form your foundation for computer science.
+Suxbattıñ kodtaw böligin orındaw üşin öziñizge ıñğaylı tildi paydalanwğa boladı, biraq iri kompanïyalar üşin bul durıs tañdaw:
-Just choose one, in a language that you will be comfortable with. You'll be doing a lot of reading and coding.
+- C++
+- Java
+- Python
-### C
+Siz olardı da paydalana alasız, biraq aldımen oqıp şığıñız. Eskertwler bolwı mümkin:
-- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- - Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
+- JavaScript
+- Rwbïn
-### Python
+Suxbat üşin tildi tañdaw twralı jazğan maqalam:
+[Kodtaw suxbatı üşin bir tildi tañdañız](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
+Bul meniñ postıma negizdelgen tüpnusqa maqala: [Suxbattar üşin bağdarlamalaw tilin tañdaw](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- jumıs/)
-- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - by Goodrich, Tamassia, Goldwasser
- - I loved this book. It covered everything and more.
- - Pythonic code
- - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+Siz tilde öte ıñğaylı jäne bilimdi bolwıñız kerek.
-### Java
-Your choice:
+Таңдау туралы толығырақ оқыңыз:
+- [Кодтау сұхбаты үшін дұрыс тілді таңдаңыз](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-- Goodrich, Tamassia, Goldwasser
- - [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
-- Sedgewick and Wayne:
- - [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - Free Coursera course that covers the book (taught by the authors!):
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- - [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+[Тілге қатысты ресурстарды осы жерден қараңыз](programming-language-resources.md)
-### C++
+## Деректер құрылымдары мен алгоритмдерге арналған кітаптар
-Your choice:
+Бұл кітап сіздің информатика ғылымының негізін қалады.
-- Goodrich, Tamassia, and Mount
- - [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
-- Sedgewick and Wayne
- - [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/)
+Сізге ыңғайлы тілде біреуін ғана таңдаңыз. Сіз көп оқумен және кодтаумен айналысатын боласыз.
-## Interview Prep Books
+### C
-You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
-but I bought more to give myself more practice. But I always do too much.
+- [C тіліндегі алгоритмдер, 1-5 бөліктері (бума), 3-ші басылым](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Негіздер, деректер құрылымдары, сұрыптау, іздеу және графикалық алгоритмдер
-I bought both of these. They gave me plenty of practice.
+### Python
-- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - Answers in C++ and Java
- - This is a good warm-up for Cracking the Coding Interview
- - Not too difficult. Most problems may be easier than what you'll see in an interview (from what I've read)
-- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - answers in Java
+- [Python тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - Гудрих, Тамассия, Голдвассер
+ - Маған бұл кітап ұнады. Ол барлығын және т.б. қамтыды.
+ - Питоникалық код
+ - менің жарқыраған кітабым туралы есеп: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-### If you have tons of extra time:
+### Java
-Choose one:
+Сенің таңдауың:
-- [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
-- [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)
+- Гудрих, Тамассия, Голдвассер
+ - [Java тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Седжвик пен Уэйн:
+ - [Алгоритмдер](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Кітапты қамтитын тегін Coursera курсы (авторлар үйретеді!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Алгоритмдер II](https://www.coursera.org/learn/algorithms-part2)
-## Don't Make My Mistakes
+### C++
+Tañdaw twralı tolığıraq oqıñız:
+- [Kodtaw suxbatı üşin durıs tildi tañdañız](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-This list grew over many months, and yes, it got out of hand.
+[Tilge qatıstı reswrstardı osı jerden qarañız](programming-language-resources.md)
-Here are some mistakes I made so you'll have a better experience. And you'll save months of time.
+## Derekter qurılımdarı men algorïtmderge arnalğan kitaptar
-### 1. You Won't Remember it All
+Bul kitap sizdiñ ïnformatïka ğılımınıñ negizin qaladı.
-I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
-through my notes and making flashcards, so I could review. I didn't need all of that knowledge.
+Sizge ıñğaylı tilde birewin ğana tañdañız. Siz köp oqwmen jäne kodtawmen aynalısatın bolasız.
-Please, read so you won't make my mistakes:
+### C
-[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/).
+- [C tilindegi algorïtmder, 1-5 bölikteri (bwma), 3-şi basılım](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Negizder, derekter qurılımdarı, surıptaw, izdew jäne grafïkalıq algorïtmder
-### 2. Use Flashcards
+### Python
-To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
-Each card has different formatting. I made a mobile-first website, so I could review on my phone or tablet, wherever I am.
+- [Python tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - Gwdrïx, Tamassïya, Goldvasser
+ - Mağan bul kitap unadı. Ol barlığın jäne t.b. qamtıdı.
+ - Pïtonïkalıq kod
+ - meniñ jarqırağan kitabım twralı esep: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-Make your own for free:
+### Java
-- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
+Seniñ tañdawıñ:
-**I DON'T RECOMMEND using my flashcards.** There are too many and many of them are trivia that you don't need.
+- Gwdrïx, Tamassïya, Goldvasser
+ - [Java tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedjvïk pen Wéyn:
+ - [Algorïtmder](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Kitaptı qamtïtın tegin Coursera kwrsı (avtorlar üyretedi!):
+ - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - [Algorïtmder II](https://www.coursera.org/learn/algorithms-part2)
-But if you don't want to listen to me, here you go:
-- [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+### C++
-Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics.
-It's way too much for what's required.
+Сенің таңдауың:
-**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
-same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
-your brain.
+- Гудрих, Тамассия және тау
+ - [C++ тіліндегі деректер құрылымдары мен алгоритмдері, 2-ші басылым](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Седжвик пен Уэйн
+ - [C++ тіліндегі алгоритмдер, 1-4 бөлімдер: негіздері, деректер құрылымы, сұрыптау, іздеу](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - [C++ тіліндегі алгоритмдер 5-бөлім: Графикалық алгоритмдер](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times.
-It uses a repetition system to help you remember. It's user-friendly, available on all platforms and has a cloud sync system.
-It costs $25 on iOS but is free on other platforms.
+## Сұхбатқа дайындық кітаптары
-My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya)).
+Сізге бұлардың жиынтығын сатып алудың қажеті жоқ. Шынымды айтсам, «кодтау сұхбатын бұзу» жеткілікті шығар,
+бірақ мен өзіме көбірек тәжірибе беру үшін көбірек сатып алдым. Бірақ мен әрқашан тым көп істеймін.
-Some students have mentioned formatting issues with white space that can be fixed by doing the following: open deck, edit card, click cards, select the "styling" radio button, add the member "white-space: pre;" to the card class.
+Мен бұл екеуін де сатып алдым. Олар маған көп тәжірибе берді.
-### 3. Do Coding Interview Questions While You're Learning
+- [Ашық болған сұхбаттарды бағдарламалау: сұхбат арқылы жолыңызды кодтау, 4-ші басылым](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - C++ және Java тілінде жауаптар
+ - Бұл кодтау сұхбатын бұзу үшін жақсы қыздыру
+ - Өте қиын емес. Көптеген мәселелер сұхбатта көретіннен оңай болуы мүмкін (мен оқығанымнан)
+- [Кодтау сұхбатын бұзу, 6-шы басылым](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Java тілінде жауаптар
-THIS IS VERY IMPORTANT.
+### Егер сізде қосымша уақыт болса:
-Start doing coding interview questions while you're learning data structures and algorithms.
+Біреуін таңдаңыз:
-You need to apply what you're learning to solving problems, or you'll forget. I made this mistake.
+- [Бағдарламалау сұхбаттарының элементтері (C++ нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Python тіліндегі сұхбаттарды бағдарламалау элементтері](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [Бағдарламалау сұхбаттарының элементтері (Java нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+Seniñ tañdawıñ:
-Once you've learned a topic, and feel somewhat comfortable with it, for example, **linked lists**:
-1. Open one of the [coding interview books](#interview-prep-books) (or coding problem websites, listed below)
-1. Do 2 or 3 questions regarding linked lists.
-1. Move on to the next learning topic.
-1. Later, go back and do another 2 or 3 linked list problems.
-1. Do this with each new topic you learn.
+- Gwdrïx, Tamassïya jäne taw
+ - [C++ tilindegi derekter qurılımdarı men algorïtmderi, 2-şi basılım](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedjvïk pen Wéyn
+ - [C++ tilindegi algorïtmder, 1-4 bölimder: negizderi, derekter qurılımı, surıptaw, izdew](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - [C++ tilindegi algorïtmder 5-bölim: Grafïkalıq algorïtmder](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-**Keep doing problems while you're learning all this stuff, not after.**
+## Suxbatqa dayındıq kitaptarı
-You're not being hired for knowledge, but how you apply the knowledge.
+Sizge bulardıñ jïıntığın satıp alwdıñ qajeti joq. Şınımdı aytsam, «kodtaw suxbatın buzw» jetkilikti şığar,
+biraq men özime köbirek täjirïbe berw üşin köbirek satıp aldım. Biraq men ärqaşan tım köp isteymin.
-There are many resources for this, listed below. Keep going.
+Men bul ekewin de satıp aldım. Olar mağan köp täjirïbe berdi.
-### 4. Focus
+- [Aşıq bolğan suxbattardı bağdarlamalaw: suxbat arqılı jolıñızdı kodtaw, 4-şi basılım](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - C++ jäne Java tilinde jawaptar
+ - Bul kodtaw suxbatın buzw üşin jaqsı qızdırw
+ - Öte qïın emes. Köptegen mäseleler suxbatta köretinnen oñay bolwı mümkin (men oqığanımnan)
+- [Kodtaw suxbatın buzw, 6-şı basılım](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - Java tilinde jawaptar
-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.
+### Eger sizde qosımşa waqıt bolsa:
-## What you won't see covered
+Birewin tañdañız:
-These are prevalent technologies but not part of this study plan:
+- [Bağdarlamalaw suxbattarınıñ élementteri (C++ nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- [Python tilindegi suxbattardı bağdarlamalaw élementteri](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- [Bağdarlamalaw suxbattarınıñ élementteri (Java nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
-- SQL
-- Javascript
-- HTML, CSS, and other front-end technologies
+- [Компаньон жобасы - Кітаптағы әрбір мәселеге арналған әдістемелер мен сынақ жағдайлары](https://github.com/gardncl/elements-of-programming-interviews)
-## 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.
+Бұл тізім бірнеше ай бойы өсті және иә, ол бақылаудан шықты.
-Each day, take the next subject in the list, watch some videos about that subject, and then write an implementation
-of that data structure or algorithm in the language you chose for this course.
+Сізге жақсырақ тәжірибе алу үшін мен бірнеше қателіктер жібердім. Ал сіз айлар уақытыңызды үнемдейсіз.
-You can see my code here:
- - [C](https://github.com/jwasham/practice-c)
- - [C++](https://github.com/jwasham/practice-cpp)
- - [Python](https://github.com/jwasham/practice-python)
+### 1. Сіз мұның бәрін есте сақтамайсыз
-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.
-
-## Coding Question Practice
-
- Why is this here? I'm not ready to interview.
-
-[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
-
-Why you need to practice doing programming problems:
-- Problem recognition, and where the right data structures and algorithms fit in
-- Gathering requirements for the problem
-- Talking your way through the problem like you will in the interview
-- Coding on a whiteboard or paper, not a computer
-- Coming up with time and space complexity for your solutions (see Big-O below)
-- Testing your solutions
-
-There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
-interview books, too, but I found this outstanding:
-[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-
-Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then type it and test it out on a computer.
-
-If you don't have a whiteboard at home, pick up a large drawing pad from an art store. You can sit on the couch and practice.
-This is my "sofa whiteboard". I added the pen in the photo just for scale. If you use a pen, you'll wish you could erase.
-Gets messy quick. **I use a pencil and eraser.**
-
-
-
-**Coding question practice is not about memorizing answers to programming problems.**
-
-## Coding Problems
-
-Don't forget your key coding interview books [here](#interview-prep-books).
-
-Solving Problems:
-- [How to Find a Solution](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-find-a-solution/)
-- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/competitive-programming/tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-Coding Interview Question Videos:
-- [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
- - Super for walkthroughs of problem solutions
-- [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
- - Good explanations of solution and the code
- - You can watch several in a short time
-- [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
-
-Challenge sites:
-- [LeetCode](https://leetcode.com/)
- - My favorite coding problem site. It's worth the subscription money for the 1-2 months you'll likely be preparing.
- - See Nick White and FisherCoder Videos above for code walk-throughs.
-- [HackerRank](https://www.hackerrank.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
-- [InterviewBit](https://www.interviewbit.com/)
-- [Project Euler](https://projecteuler.net/)
-
-## Let's Get Started
-
-Alright, enough talk, let's learn!
-
-But don't forget to do coding problems from above while you learn!
-
-## Algorithmic complexity / Big-O / Asymptotic analysis
-
-- Nothing to implement here, you're just watching videos and taking notes! Yay!
-- There are a lot of videos here. Just watch enough until you understand it. You can always come back and review.
-- Don't worry if you don't understand all the math behind it.
-- You just need to understand how to express the complexity of an algorithm in terms of Big-O.
-- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [slides](https://archive.org/details/lecture2_202008)
-- [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
-- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] TopCoder (includes recurrence relations and master theorem):
- - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/)
- - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/)
-- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-
-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.
-
-## Data Structures
-
-- ### Arrays
- - [ ] About Arrays:
- - [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- - [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
- - [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - [ ] Implement a vector (mutable array with automatic resizing):
- - [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
- - [ ] New raw data array with allocated memory
- - can allocate int array under the hood, just not use its features
- - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
- - [ ] size() - number of items
- - [ ] capacity() - number of items it can hold
- - [ ] is_empty()
- - [ ] at(index) - returns item at given index, blows up if index out of bounds
- - [ ] push(item)
- - [ ] insert(index, item) - inserts item at index, shifts that index's value and trailing elements to the right
- - [ ] prepend(item) - can use insert above at index 0
- - [ ] pop() - remove from end, return value
- - [ ] delete(index) - delete item at index, shifting all trailing elements left
- - [ ] remove(item) - looks for value and removes index holding it (even if in multiple places)
- - [ ] find(item) - looks for value and returns first index with that value, -1 if not found
- - [ ] resize(new_capacity) // private function
- - when you reach capacity, resize to double the size
- - when popping an item, if size is 1/4 of capacity, resize to half
- - [ ] Time
- - O(1) to add/remove at end (amortized for allocations for more space), index, or update
- - O(n) to insert/remove elsewhere
- - [ ] Space
- - contiguous in memory, so proximity helps performance
- - space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
-
-- ### Linked Lists
- - [ ] Description:
- - [ ] [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
- - [ ] [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
- - [ ] [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
- - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- - not the whole video, just portions about Node struct and memory allocation
- - [ ] Linked List vs Arrays:
- - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
- - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
- - [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - [ ] Gotcha: you need pointer to pointer knowledge:
- (for when you pass a pointer to a function that may change the address where that pointer points)
- This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
- - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- - [ ] Implement (I did with tail pointer & without):
- - [ ] size() - returns number of data elements in list
- - [ ] empty() - bool returns true if empty
- - [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
- - [ ] push_front(value) - adds an item to the front of the list
- - [ ] pop_front() - remove front item and return its value
- - [ ] push_back(value) - adds an item at the end
- - [ ] pop_back() - removes end item and returns its value
- - [ ] front() - get value of front item
- - [ ] back() - get value of end item
- - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index
- - [ ] erase(index) - removes node at given index
- - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
- - [ ] reverse() - reverses the list
- - [ ] remove_value(value) - removes the first item in the list with this value
- - [ ] Doubly-linked List
- - [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
- - No need to implement
-
-- ### Stack
- - [ ] [Stacks (video)](https://www.coursera.org/lecture/data-structures/stacks-UdKzQ)
- - [ ] Will not implement. Implementing with array is trivial
-
-- ### Queue
- - [ ] [Queue (video)](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- - [ ] Implement using linked-list, with tail pointer:
- - enqueue(value) - adds value at position at tail
- - dequeue() - returns value and removes least recently added element (front)
- - empty()
- - [ ] Implement using fixed-sized array:
- - enqueue(value) - adds item at end of available storage
- - dequeue() - returns value and removes least recently added element
- - empty()
- - full()
- - [ ] Cost:
- - a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n)
- because you'd need the next to last element, causing a full traversal each dequeue
- - enqueue: O(1) (amortized, linked list and array [probing])
- - dequeue: O(1) (linked list and array)
- - empty: O(1) (linked list and array)
-
-- ### Hash table
- - [ ] Videos:
- - [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
-
- - [ ] Online Courses:
- - [ ] [Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- - [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/4)
- - [ ] [Phone Book Problem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- - [ ] distributed hash tables:
- - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
- - [Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
-
- - [ ] Implement with array using linear probing
- - hash(k, m) - m is size of hash table
- - add(key, value) - if key already exists, update value
- - exists(key)
- - get(key)
- - remove(key)
-
-## More Knowledge
-
-- ### Binary search
- - [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- - [ ] [detail](https://www.topcoder.com/community/competitive-programming/tutorials/binary-search/)
- - [ ] [blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
- - [ ] Implement:
- - binary search (on sorted array of integers)
- - binary search using recursion
-
-- ### Bitwise operations
- - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
- - [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
- - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- - [ ] Good intro:
- [Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)
- - [ ] [C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
- - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
- - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
- - [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- - [ ] [The Bit Twiddler](https://bits.stephan-brumme.com/)
- - [ ] [The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
- - [ ] [Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXcz_ac)
- - [ ] [Practice Operations](https://pconrad.github.io/old_pconrad_cs16/topics/bitOps/)
- - [ ] 2s and 1s complement
- - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
- - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
- - [ ] Count set bits
- - [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
- - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- - [ ] Swap values:
- - [Swap](https://bits.stephan-brumme.com/swap.html)
- - [ ] Absolute value:
- - [Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
-
-## Trees
-
-- ### Trees - Notes & Background
- - [ ] [Series: Trees (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
- - basic tree construction
- - traversal
- - manipulation algorithms
- - [ ] [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- - BFS notes:
- - level order (BFS, using queue)
- - time complexity: O(n)
- - space complexity: best: O(1), worst: O(n/2)=O(n)
- - DFS notes:
- - time complexity: O(n)
- - space complexity:
- best: O(log n) - avg. height of tree
- worst: O(n)
- - inorder (DFS: left, self, right)
- - postorder (DFS: left, right, self)
- - preorder (DFS: self, left, right)
-
-- ### Binary search trees: BSTs
- - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT (video)](https://www.youtube.com/watch?v=9Jry5-82I68)
- - C/C++:
- - [ ] [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- - [ ] [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- - [ ] [Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Find height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
- - [ ] [Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
- - [ ] [Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Check if a binary tree is binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- - [ ] [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] Implement:
- - [ ] insert // insert value into tree
- - [ ] get_node_count // get count of values stored
- - [ ] print_values // prints the values in the tree, from min to max
- - [ ] delete_tree
- - [ ] is_in_tree // returns true if given value exists in the tree
- - [ ] get_height // returns the height in nodes (single node's height is 1)
- - [ ] get_min // returns the minimum value stored in the tree
- - [ ] get_max // returns the maximum value stored in the tree
- - [ ] is_binary_search_tree
- - [ ] delete_value
- - [ ] get_successor // returns next-highest value in tree after given value, -1 if none
-
-- ### Heap / Priority Queue / Binary Heap
- - visualized as a tree, but is usually linear in storage (array, linked list)
- - [ ] [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
- - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- - [ ] [Naive Implementations (video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
- - [ ] [Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- - [ ] [Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- - [ ] [Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- - [ ] [Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- - [ ] [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- - [ ] [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- - [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- - [ ] Implement a max-heap:
- - [ ] insert
- - [ ] sift_up - needed for insert
- - [ ] get_max - returns the max item, without removing it
- - [ ] get_size() - return number of elements stored
- - [ ] is_empty() - returns true if heap contains no elements
- - [ ] extract_max - returns the max item, removing it
- - [ ] sift_down - needed for extract_max
- - [ ] remove(x) - removes item at index x
- - [ ] 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
-
-## Sorting
-
-- [ ] Notes:
- - Implement sorts & know best case/worst case, average complexity of each:
- - no bubble sort - it's terrible - O(n^2), except when n <= 16
- - [ ] Stability in sorting algorithms ("Is Quicksort stable?")
- - [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
- - [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
- - [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
- - [Sorting Algorithms - Stability](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
- - [ ] Which algorithms can be used on linked lists? Which on arrays? Which on both?
- - I wouldn't recommend sorting a linked list, but merge sort is doable.
- - [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
-
-- For heapsort, see Heap data structure above. Heap sort is great, but not stable
-
-- [ ] [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] [1. Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/ARWDq/mergesort)
- - [ ] [2. Bottom up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
- - [ ] [3. Sorting Complexity](https://www.coursera.org/learn/algorithms-part1/lecture/xAltF/sorting-complexity)
- - [ ] [4. Comparators](https://www.coursera.org/learn/algorithms-part1/lecture/9FYhS/comparators)
- - [ ] [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
-
-- [ ] [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
- - [ ] [1. Quicksort](https://www.coursera.org/learn/algorithms-part1/lecture/vjvnC/quicksort)
- - [ ] [2. Selection](https://www.coursera.org/learn/algorithms-part1/lecture/UQxFT/selection)
- - [ ] [3. Duplicate Keys](https://www.coursera.org/learn/algorithms-part1/lecture/XvjPd/duplicate-keys)
- - [ ] [4. System Sorts](https://www.coursera.org/learn/algorithms-part1/lecture/QBNZ7/system-sorts)
-
-- [ ] UC Berkeley:
- - [ ] [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
- - [ ] [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
- - [ ] [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
- - [ ] [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
-
-- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
-- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
-- [ ] [Insertion Sort, Merge Sort (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
-- [ ] [Insertion Sort (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
-- [ ] [Merge Sort (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
-- [ ] [Quicksort (video)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
-- [ ] [Selection Sort (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
-
-- [ ] Merge sort code:
- - [ ] [Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
- - [ ] [Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
- - [ ] [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
-- [ ] Quick sort code:
- - [ ] [Implementation (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
- - [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- - [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
-
-- [ ] Implement:
- - [ ] Mergesort: O(n log n) average and worst case
- - [ ] Quicksort O(n log n) average case
- - Selection sort and insertion sort are both O(n^2) average and worst case
- - For heapsort, see Heap data structure above
-
-- [ ] Not required, but I recommended them:
- - [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
- - [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
- - [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
- - [ ] [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
- - [ ] [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
- - [ ] [5. 3 Way Radix Quicksort](https://www.coursera.org/learn/algorithms-part2/lecture/crkd5/3-way-radix-quicksort)
- - [ ] [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- - [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- - [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
- - [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
-
-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 "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
-
-## Graphs
-
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
-
-- Notes:
- - There are 4 basic ways to represent a graph in memory:
- - objects and pointers
- - adjacency matrix
- - adjacency list
- - adjacency map
- - Familiarize yourself with each representation and its pros & cons
- - BFS and DFS - know their computational complexity, their trade offs, and how to implement them in real code
- - When asked a question, look for a graph-based solution first, then move on if none
-
-- [ ] MIT(videos):
- - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - [ ] [Depth-First Search](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
-
-- [ ] Skiena Lectures - great intro:
- - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - Lecture 13 - Graph Algorithms (video)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - Lecture 14 - Graph Algorithms (con't) (video)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
-
-- [ ] Graphs (review and more):
-
- - [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
- - [ ] [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- - [ ] [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- - [ ] [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- - [ ] [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] ~~[CS 61B 2014 (starting at 58:09) (video)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)~~
- - [ ] [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
- - [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
-
-- Full Coursera Course:
- - [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
-
-- I'll implement:
- - [ ] DFS with adjacency list (recursive)
- - [ ] DFS with adjacency list (iterative with stack)
- - [ ] DFS with adjacency matrix (recursive)
- - [ ] DFS with adjacency matrix (iterative with stack)
- - [ ] BFS with adjacency list
- - [ ] BFS with adjacency matrix
- - [ ] single-source shortest path (Dijkstra)
- - [ ] minimum spanning tree
- - DFS-based algorithms (see Aduni videos above):
- - [ ] check for cycle (needed for topological sort, since we'll check for cycle before starting)
- - [ ] topological sort
- - [ ] count connected components in a graph
- - [ ] list strongly connected components
- - [ ] check for bipartite graph
-
-## Even More Knowledge
-
-- ### Recursion
- - [ ] Stanford lectures on recursion & backtracking:
- - [ ] [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- - [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- - [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- - [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- - When it is appropriate to use it?
- - How is tail recursion better than not?
- - [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- - [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
-
-- ### Dynamic Programming
- - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a
- problem as being a candidate for dynamic programming.
- - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
- - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
- - [ ] Videos:
- - the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
- - [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
- - [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- - [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
- - [ ] List of individual DP problems (each is short):
- [Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
- - [ ] Yale Lecture notes:
- - [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
- - [ ] Coursera:
- - [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
- - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
- - [ ] [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- - [ ] [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- - [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
-
-- ### Design patterns
- - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- - [ ] Learn these patterns:
- - [ ] strategy
- - [ ] singleton
- - [ ] adapter
- - [ ] prototype
- - [ ] decorator
- - [ ] visitor
- - [ ] factory, abstract factory
- - [ ] facade
- - [ ] observer
- - [ ] proxy
- - [ ] delegate
- - [ ] command
- - [ ] state
- - [ ] memento
- - [ ] iterator
- - [ ] composite
- - [ ] flyweight
- - [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [Book: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
- - [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
-
-- ### Combinatorics (n choose k) & Probability
- - [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- - [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- - [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- - [ ] Khan Academy:
- - Course layout:
- - [ ] [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
- - Just the videos - 41 (each are simple and each are short):
- - [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
-
-- ### NP, NP-Complete and Approximation Algorithms
- - Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
- and be able to recognize them when an interviewer asks you them in disguise.
- - Know what NP-complete means.
- - [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- - [ ] Simonson:
- - [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- - [ ] [NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- - [ ] Skiena:
- - [ ] [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- - [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- - [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - Peter Norvig discusses near-optimal solutions to traveling salesman problem:
- - [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- - Pages 1048 - 1140 in CLRS if you have it.
-
-- ### How computers process a program
-
- - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
- - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
- - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
- - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
- - [ ] [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
-
-- ### Caches
- - [ ] LRU cache:
- - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
- - [ ] [Implementing LRU (video)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
- - [ ] [LeetCode - 146 LRU Cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
- - [ ] CPU cache:
- - [ ] [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- - [ ] [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
-
-- ### Processes and Threads
- - [ ] Computer Science 162 - Operating Systems (25 videos):
- - for processes and threads see videos 1-11
- - [Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- - [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
- - Covers:
- - Processes, Threads, Concurrency issues
- - Difference between processes and threads
- - Processes
- - Threads
- - Locks
- - Mutexes
- - Semaphores
- - Monitors
- - How they work?
- - Deadlock
- - Livelock
- - CPU activity, interrupts, context switching
- - Modern concurrency constructs with multicore processors
- - [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
- - Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
- - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
- - Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
- - Context switching
- - How context switching is initiated by the operating system and underlying hardware?
- - [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- - [ ] [CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k)
- - [ ] concurrency in Python (videos):
- - [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- - [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- - [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
- - [reference](http://www.dabeaz.com/GIL)
- - [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
- - [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
- - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
-
-- ### Testing
- - To cover:
- - how unit testing works
- - what are mock objects
- - what is integration testing
- - what is dependency injection
- - [ ] [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
- - [ ] [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- - [ ] [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
- - [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- - [ ] Dependency injection:
- - [ ] [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- - [ ] [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- - [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-
-- ### String searching & manipulations
- - [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
- - [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
- - [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
- - [ ] [2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
- - [ ] [3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
- - [ ] [4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
- - [ ] [5. Rabin-Karp](https://www.coursera.org/learn/algorithms-part2/lecture/3KiqT/rabin-karp)
- - [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
-
- If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects).
-
-- ### Tries
- - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
- to track the path
- - I read through code, but will not implement
- - [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
- - [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
- - [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
- - [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
- - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
- - [ ] Short course videos:
- - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
- - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/competitive-programming/tutorials/using-tries/)
- - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
-
-- ### Floating Point Numbers
- - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
-
-- ### Unicode
- - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
- - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
-
-- ### Endianness
- - [ ] [Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
- - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- - Very technical talk for kernel devs. Don't worry if most is over your head.
- - The first half is enough.
-
-- ### Networking
- - **if you have networking experience or want to be a reliability engineer or operations engineer, expect questions**
- - Otherwise, this is just good to know
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
- - [ ] [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
- - [ ] [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
- - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
- - [ ] [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
- - [ ] [SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
- - [ ] [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
- - [ ] [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
- - [ ] [Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
- - [ ] [Subnetting Demystified - Part 5 CIDR Notation (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
- - [ ] Sockets:
- - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+Мен бірнеше сағат бейнелерді көрдім және көптеген жазбалар алдым, ал бірнеше ай өткен соң есімде жоқ көп нәрсе болды. Мен 3 күн жүрдім
+Жазбаларым арқылы және флешкарталар жасау арқылы, мен қарап шығу үшін. Маған бұл білімнің бәрі қажет емес еді.
----
+Менің қателіктерімді жібермеу үшін оқыңыз:
-## Final Review
+[Информатика білімін сақтау](https://startupnextdoor.com/retaining-computer-science-knowledge/).
- This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
- It's nice if you want a refresher often.
+### 2. Flashcards пайдаланыңыз
-- [ ] Series of 2-3 minutes short subject videos (23 videos)
- - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (18 videos):
- - [Videos](https://www.youtube.com/channel/UCzDJwLWoYCUQowF_nG3m5OQ)
-- [ ] [Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
-- [ ] [Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
+Мәселені шешу үшін мен шағын флэшкарталар сайтын жасадым, онда мен 2 түрдегі флэшкарталарды қоса аламын: жалпы және код.
+Әр картаның пішімі әртүрлі. Мен қай жерде болсам да, телефонда немесе планшетте қарап шығу үшін мобильді веб-сайт жасадым.
----
+Өзіңізді тегін жасаңыз:
-## Update Your Resume
-
-- See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed"
-- I don't know how important this is (you can do your own research) but here is an article on making your resume ATS Compliant:
- - [How to Create or Check if your Resume is ATS Compliant](https://ayedot.com/97/MiniBlog/Meaning-of-ATS-compliant-resume-and-How-to-create-ATS-Resume-for-Free)
-- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
- - Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
-
-
-## Find a Job
-
-- [Sites for Finding Jobs](https://ayedot.com/151/MiniBlog/Top-10-Best-Websites-for-Careers--Jobs)
-
-## 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)
-- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
-- [ ] How to Get a Job at the Big 4:
- - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
- - [ ] [How to Get a Job at the Big 4.1 (Follow-up video)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
-- [ ] Cracking The Coding Interview Set 1:
- - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] Cracking the Facebook Coding Interview:
- - [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
- - [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
-- Prep Courses:
- - [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
- - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- - [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
- - [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
- - A free Python centric data structures and algorithms course.
- - [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
- - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
- - [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
- - Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview.
-
-Mock Interviews:
-- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
-- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - peer-to-peer model of practice interviews
-- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
-
-## 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.
-Have a story, not just data, about something you accomplished.
-
-- Why do you want this job?
-- What's a tough problem you've solved?
-- Biggest challenges faced?
-- Best/worst designs seen?
-- Ideas for improving an existing product
-- How do you work best, as an individual and as part of a team?
-- Which of your skills or experiences would be assets in the role and why?
-- What did you most enjoy at [job x / project y]?
-- What was the biggest challenge you faced at [job x / project y]?
-- What was the hardest bug you faced at [job x / project y]?
-- What did you learn at [job x / project y]?
-- What would you have done better at [job x / project y]?
-
-- If you find it hard to come up with good answers of these types of interview questions, here are some ideas:
- - [General Interview Questions and their Answers](https://ayedot.com/119/MiniBlog/General-Interview-Questions-and-their-Answers-for-Tech-Jobs)
-
-## Have questions for the interviewer
-
-Some of mine (I already may know the answers, but want their opinion or team perspective):
-
-- How large is your team?
-- What does your dev cycle look like? Do you do waterfall/sprints/agile?
-- Are rushes to deadlines common? Or is there flexibility?
-- How are decisions made in your team?
-- How many meetings do you have per week?
-- Do you feel your work environment helps you concentrate?
-- What are you working on?
-- What do you like about it?
-- What is the work life like?
-- How is the work/life balance?
-
-## Once You've Got The Job
-
-Congratulations!
-
-Keep learning.
-
-You're never really done.
+- [Flashcards сайтының репосы](https://github.com/jwasham/computer-science-flash-cards)
----
+**Флешкарталарымды пайдалануды ұсынбаймын.** Олардың саны тым көп және олардың көпшілігі сізге қажет емес ұсақ-түйектер.
- *****************************************************************************************************
- *****************************************************************************************************
+Бірақ мені тыңдағың келмесе, мынаны айтасың:
+- [Менің флэш карталарымның дерекқорым (1200 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Менің флэш карталарымның дерекқорым (экстремалды - 1800 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+- [Kompanon jobası - Kitaptağı ärbir mäselege arnalğan ädistemeler men sınaq jağdayları](https://github.com/gardncl/elements-of-programming-interviews)
- Everything below this point is optional. It is NOT needed for an entry-level interview.
- However, by studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
- any software engineering job. You'll be a much more well-rounded software engineer.
-
- *****************************************************************************************************
- *****************************************************************************************************
+## Meniñ qatelikterimdi jasama
----
+Bul tizim birneşe ay boyı östi jäne ïä, ol baqılawdan şıqtı.
-## Additional Books
-
- These are here so you can dive into a topic you find interesting.
-
-- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
- - An oldie but a goodie
-- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
- - A modern option
-- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
-- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
- - A gentle introduction to design patterns
-- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- - AKA the "Gang Of Four" book, or GOF
- - The canonical design patterns book
-- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- - As a review and problem recognition
- - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
- - This book has 2 parts:
- - Class textbook on data structures and algorithms
- - Pros:
- - Is a good review as any algorithms textbook would be
- - Nice stories from his experiences solving problems in industry and academia
- - Code examples in C
- - Cons:
- - Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
- - Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
- - Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
- - Algorithm catalog:
- - This is the real reason you buy this book.
- - This book is better as an algorithm reference, and not something you read cover to cover.
- - Can rent it on Kindle
- - Answers:
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
- - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
-- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
- - The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
- - These chapters are worth the read to give you a nice foundation:
- - Chapter 2 - Numeric Representation
- - Chapter 3 - Binary Arithmetic and Bit Operations
- - Chapter 4 - Floating-Point Representation
- - Chapter 5 - Character Representation
- - Chapter 6 - Memory Organization and Access
- - Chapter 7 - Composite Data Types and Memory Objects
- - Chapter 9 - CPU Architecture
- - Chapter 10 - Instruction Set Architecture
- - Chapter 11 - Memory Architecture and Organization
-- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
- - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently
- - AKA CLR, sometimes CLRS, because Stein was late to the game
-- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
- - For a richer, more up-to-date (2017), but longer treatment
-
-## System Design, Scalability, Data Handling
-
-**You can expect system design questions if you have 4+ years of experience.**
-
-- Scalability and System Design are very large topics with many topics and resources, since
- there is a lot to consider when designing a software/hardware system that can scale.
- Expect to spend quite a bit of time on this
-- Considerations:
- - Scalability
- - Distill large data sets to single values
- - Transform one data set to another
- - Handling obscenely large amounts of data
- - System design
- - features sets
- - interfaces
- - class hierarchies
- - designing a system under certain constraints
- - simplicity and robustness
- - tradeoffs
- - performance analysis and optimization
-- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
-- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
-- [ ] [How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
-- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
-- [ ] [Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
-- [ ] [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
-- [ ] [How to ace a systems design interview](http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
-- [ ] [Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
-- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
-- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
-- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
-- [ ] [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
-- [ ] Consensus Algorithms:
- - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
- - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
- - [ ] [Easy-to-read paper](https://raft.github.io/)
- - [ ] [Infographic](http://thesecretlivesofdata.com/raft/)
-- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
-- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
-- [ ] Scalability:
- - You don't need all of these. Just pick a few that interest you.
- - [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
- - [ ] Short series:
- - [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
- - [Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
- - [Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
- - [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
- - [ ] [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
- - [ ] [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf)
- - [ ] [Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
- - [ ] [Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
- - [ ] [Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
- - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
- - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/)
- - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
- - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4)
- - [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
- - [video](https://www.youtube.com/watch?v=G-lGCC4KKok)
- - [ ] [How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
- - [ ] [How to Remove Duplicates in Large Datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
- - [ ] [A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
- - [ ] [What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
- - [ ] [To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
- - [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
- - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html)
- - [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
- - [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
- - [ ] [Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
- - [ ] [Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
- - [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
- - [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
- - [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
- - [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
- - [ ] [What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
- - [ ] [Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
- - [ ] [ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
- - [ ] See "Messaging, Serialization, and Queueing Systems" way below for info on some of the technologies that can glue services together
- - [ ] Twitter:
- - [O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
- - [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
- - For even more, see "Mining Massive Datasets" video series in the [Video Series](#video-series) section
-- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
- - review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
- - [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
- - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
- - flow:
- 1. Understand the problem and scope:
- - Define the use cases, with interviewer's help
- - Suggest additional features
- - Remove items that interviewer deems out of scope
- - Assume high availability is required, add as a use case
- 2. Think about constraints:
- - Ask how many requests per month
- - Ask how many requests per second (they may volunteer it or make you do the math)
- - Estimate reads vs. writes percentage
- - Keep 80/20 rule in mind when estimating
- - How much data written per second
- - Total storage required over 5 years
- - How much data read per second
- 3. Abstract design:
- - Layers (service, data, caching)
- - Infrastructure: load balancing, messaging
- - Rough overview of any key algorithm that drives the service
- - Consider bottlenecks and determine solutions
- - Exercises:
- - [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
- - [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
- - [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
- - [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
- - [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
- - [Design a cache system](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
-
-## Additional Learning
-
- I added them to help you become a well-rounded software engineer, and to be aware of certain
- technologies and algorithms, so you'll have a bigger toolbox.
-
-- ### Compilers
- - [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- - [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- - [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
- - [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
-
-- ### Emacs and vi(m)
- - Familiarize yourself with a unix-based code editor
- - vi(m):
- - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
- - [VIM Adventures](http://vim-adventures.com/)
- - set of 4 videos:
- - [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
- - [The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
- - [The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccA_nMaI)
- - [The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
- - [Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs)
- - emacs:
- - [Basics Emacs Tutorial (video)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
- - set of 3 (videos):
- - [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
- - [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
- - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
- - [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
- - [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs)
- - [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
- - [The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
-
-- ### Unix command line tools
- - I filled in the list below from good tools.
- - bash
- - cat
- - grep
- - sed
- - awk
- - curl or wget
- - sort
- - tr
- - uniq
- - [strace](https://en.wikipedia.org/wiki/Strace)
- - [tcpdump](https://danielmiessler.com/study/tcpdump/)
-
-- ### Information theory (videos)
- - [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
- - More about Markov processes:
- - [Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
- - [Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
- - [Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
- - See more in MIT 6.050J Information and Entropy series below
-
-- ### Parity & Hamming Code (videos)
- - [Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
- - [Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
- - Hamming Code:
- - [Error detection](https://www.youtube.com/watch?v=1A_NcXxdoCc)
- - [Error correction](https://www.youtube.com/watch?v=JAMLuxdHH8o)
- - [Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
-
-- ### Entropy
- - Also see videos below
- - Make sure to watch information theory videos first
- - [Information Theory, Claude Shannon, Entropy, Redundancy, Data Compression & Bits (video)](https://youtu.be/JnJq3Py0dyM?t=176)
-
-- ### Cryptography
- - Also see videos below
- - Make sure to watch information theory videos first
- - [Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
- - [Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
- - [Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-
-- ### Compression
- - Make sure to watch information theory videos first
- - Computerphile (videos):
- - [Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
- - [Entropy in Compression](https://www.youtube.com/watch?v=M5c_RFKVkko)
- - [Upside Down Trees (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
- - [EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
- - [Elegant Compression in Text (The LZ 77 Method)](https://www.youtube.com/watch?v=goOa3DGezUA)
- - [Text Compression Meets Probabilities](https://www.youtube.com/watch?v=cCDCfoHTsaU)
- - [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
- - [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
-
-- ### Computer Security
- - [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
- - [Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
- - [Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
- - [Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
- - [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
-
-- ### Garbage collection
- - [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
- - [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
- - [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
-
-- ### Parallel Programming
- - [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
- - [Efficient Python for High Performance Parallel Computing (video)](https://www.youtube.com/watch?v=uY85GkaYzBk)
-
-- ### Messaging, Serialization, and Queueing Systems
- - [Thrift](https://thrift.apache.org/)
- - [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
- - [Protocol Buffers](https://developers.google.com/protocol-buffers/)
- - [Tutorials](https://developers.google.com/protocol-buffers/docs/tutorials)
- - [gRPC](http://www.grpc.io/)
- - [gRPC 101 for Java Developers (video)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
- - [Redis](http://redis.io/)
- - [Tutorial](http://try.redis.io/)
- - [Amazon SQS (queue)](https://aws.amazon.com/sqs/)
- - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
- - [RabbitMQ](https://www.rabbitmq.com/)
- - [Get Started](https://www.rabbitmq.com/getstarted.html)
- - [Celery](http://www.celeryproject.org/)
- - [First Steps With Celery](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
- - [ZeroMQ](http://zeromq.org/)
- - [Intro - Read The Manual](http://zeromq.org/intro:read-the-manual)
- - [ActiveMQ](http://activemq.apache.org/)
- - [Kafka](http://kafka.apache.org/documentation.html#introduction)
- - [MessagePack](http://msgpack.org/index.html)
- - [Avro](https://avro.apache.org/)
+Sizge jaqsıraq täjirïbe alw üşin men birneşe qatelikter jiberdim. Al siz aylar waqıtıñızdı ünemdeysiz.
-- ### A*
- - [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
- - [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
-
-- ### Fast Fourier Transform
- - [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- - [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [What is the Fourier Transform? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [Divide & Conquer: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- - [Understanding The FFT](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
-
-- ### Bloom Filter
- - Given a Bloom filter with m bits and k hashing functions, both insertion and membership testing are O(k)
- - [Bloom Filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
- - [Bloom Filters | Mining of Massive Datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78)
- - [Tutorial](http://billmill.org/bloomfilter-tutorial/)
- - [How To Write A Bloom Filter App](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
-
-- ### HyperLogLog
- - [How To Count A Billion Distinct Objects Using Only 1.5KB Of Memory](http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html)
-
-- ### Locality-Sensitive Hashing
- - Used to determine the similarity of documents
- - The opposite of MD5 or SHA which are used to determine if 2 documents/strings are exactly the same
- - [Simhashing (hopefully) made simple](http://ferd.ca/simhashing-hopefully-made-simple.html)
-
-- ### van Emde Boas Trees
- - [Divide & Conquer: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
- - [MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6_046JS12_lec15.pdf)
-
-- ### Augmented Data Structures
- - [CS 61B Lecture 39: Augmenting Data Structures](https://archive.org/details/ucberkeley_webcast_zksIj9O8_jc)
-
-- ### Balanced search trees
- - Know at least one type of balanced binary tree (and know how it's implemented):
- - "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
- A particularly interesting self-organizing data structure is the splay tree, which uses rotations
- to move any accessed key to the root." - Skiena
- - Of these, I chose to implement a splay tree. From what I've read, you won't implement a
- balanced search tree in your interview. But I wanted exposure to coding one up
- and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code
- - Splay tree: insert, search, delete functions
- If you end up implementing red/black tree try just these:
- - Search and insertion functions, skipping delete
- - I want to learn more about B-Tree since it's used so widely with very large data sets
- - [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
-
- - **AVL trees**
- - In practice:
- From what I can tell, these aren't used much in practice, but I could see where they would be:
- The AVL tree is another structure supporting O(log n) search, insertion, and removal. It is more rigidly
- balanced than red–black trees, leading to slower insertion and removal but faster retrieval. This makes it
- attractive for data structures that may be built once and loaded without reconstruction, such as language
- dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter)
- - [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- - [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- - [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
- - [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
-
- - **Splay trees**
- - In practice:
- Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors,
- data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory,
- networking and file system code) etc
- - [CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeley_webcast_G5QIXywcJlY)
- - MIT Lecture: Splay Trees:
- - Gets very mathy, but watch the last 10 minutes for sure.
- - [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
-
- - **Red/black trees**
- - These are a translation of a 2-3 tree (see below).
- - In practice:
- Red–black trees offer worst-case guarantees for insertion time, deletion time, and search time.
- Not only does this make them valuable in time-sensitive applications such as real-time applications,
- but it makes them valuable building blocks in other data structures which provide worst-case guarantees;
- for example, many data structures used in computational geometry can be based on red–black trees, and
- the Completely Fair Scheduler used in current Linux kernels uses red–black trees. In the version 8 of Java,
- the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor
- hashcodes, a Red-Black tree is used
- - [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
- - [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
- - [Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree)
- - [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
-
- - **2-3 search trees**
- - In practice:
- 2-3 trees have faster inserts at the expense of slower searches (since height is more compared to AVL trees).
- - You would use 2-3 tree very rarely because its implementation involves different types of nodes. Instead, people use Red Black trees.
- - [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
- - [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
-
- - **2-3-4 Trees (aka 2-4 trees)**
- - In practice:
- For every 2-4 tree, there are corresponding red–black trees with data elements in the same order. The insertion and deletion
- operations on 2-4 trees are also equivalent to color-flipping and rotations in red–black trees. This makes 2-4 trees an
- important tool for understanding the logic behind red–black trees, and this is why many introductory algorithm texts introduce
- 2-4 trees just before red–black trees, even though **2-4 trees are not often used in practice**.
- - [CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeley_webcast_zqrqYXkth6Q)
- - [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
-
- - **N-ary (K-ary, M-ary) trees**
- - note: the N or K is the branching factor (max branches)
- - binary trees are a 2-ary tree, with branching factor = 2
- - 2-3 trees are 3-ary
- - [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree)
-
- - **B-Trees**
- - Fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor).
- - In Practice:
- B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to
- its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary
- block in a particular file. The basic problem is turning the file block i address into a disk block
- (or perhaps to a cylinder-head-sector) address
- - [B-Tree](https://en.wikipedia.org/wiki/B-tree)
- - [B-Tree Datastructure](http://btechsmartclass.com/data_structures/b-trees.html)
- - [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
- - [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
- - covers cache-oblivious B-Trees, very interesting data structures
- - the first 37 minutes are very technical, may be skipped (B is block size, cache line size)
-
-
-- ### k-D Trees
- - Great for finding number of points in a rectangle or higher dimension object
- - A good fit for k-nearest neighbors
- - [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk)
- - [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg)
-
-- ### Skip lists
- - "These are somewhat of a cult data structure" - Skiena
- - [Randomization: Skip Lists (video)](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [For animations and a little more detail](https://en.wikipedia.org/wiki/Skip_list)
-
-- ### Network Flows
- - [Ford-Fulkerson in 5 minutes — Step by step example (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
- - [Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
- - [Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
-
-- ### Disjoint Sets & Union Find
- - [UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeley_webcast_MAEGXTwmUsI)
- - [Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
-
-- ### Math for Fast Processing
- - [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
-
-- ### Treap
- - Combination of a binary search tree and a heap
- - [Treap](https://en.wikipedia.org/wiki/Treap)
- - [Data Structures: Treaps explained (video)](https://www.youtube.com/watch?v=6podLUYinH8)
- - [Applications in set operations](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf)
-
-- ### Linear Programming (videos)
- - [Linear Programming](https://www.youtube.com/watch?v=M4K6HYLHREQ)
- - [Finding minimum cost](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
- - [Finding maximum value](https://www.youtube.com/watch?v=8AA_81xI3ik)
- - [Solve Linear Equations with Python - Simplex Algorithm](https://www.youtube.com/watch?v=44pAWI7v5Zk)
-
-- ### Geometry, Convex hull (videos)
- - [Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
- - [Geometric Algorithms: Graham & Jarvis - Lecture 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
-
-- ### Discrete math
- - [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
- - [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZo_sNlSWRMVIh6kfTjolNaZ8t)
- - [Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
-
-- ### Machine Learning
- - Why ML?
- - [How Google Is Remaking Itself As A Machine Learning First Company](https://backchannel.com/how-google-is-remaking-itself-as-a-machine-learning-first-company-ada63defcb70)
- - [Large-Scale Deep Learning for Intelligent Computer Systems (video)](https://www.youtube.com/watch?v=QSaZGT4-6EY)
- - [Deep Learning and Understandability versus Software Engineering and Verification by Peter Norvig](https://www.youtube.com/watch?v=X769cyzBNVw)
- - [Google's Cloud Machine learning tools (video)](https://www.youtube.com/watch?v=Ja2hxBAwG_0)
- - [Google Developers' Machine Learning Recipes (Scikit Learn & Tensorflow) (video)](https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal)
- - [Tensorflow (video)](https://www.youtube.com/watch?v=oZikw5k_2FM)
- - [Tensorflow Tutorials](https://www.tensorflow.org/versions/r0.11/tutorials/index.html)
- - [Practical Guide to implementing Neural Networks in Python (using Theano)](http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)
- - Courses:
- - [Great starter course: Machine Learning](https://www.coursera.org/learn/machine-learning)
- - [videos only](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW)
- - see videos 12-18 for a review of linear algebra (14 and 15 are duplicates)
- - [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks)
- - [Google's Deep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730)
- - [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009)
- - [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive)
- - [Metis Online Course ($99 for 2 months)](http://www.thisismetis.com/explore-data-science)
- - Resources:
- - Books:
- - [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/)
- - [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X)
- - [Introduction to Machine Learning with Python](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/)
- - [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
- - Data School: http://www.dataschool.io/
+### 1. Siz munıñ bärin este saqtamaysız
----
+Men birneşe sağat beynelerdi kördim jäne köptegen jazbalar aldım, al birneşe ay ötken soñ esimde joq köp närse boldı. Men 3 kün jürdim
+Jazbalarım arqılı jäne fleşkartalar jasaw arqılı, men qarap şığw üşin. Mağan bul bilimniñ bäri qajet emes edi.
+
+Meniñ qatelikterimdi jibermew üşin oqıñız:
+
+[Ïnformatïka bilimin saqtaw](https://startupnextdoor.com/retaining-computer-science-knowledge/).
-## Additional Detail on Some Subjects
-
- I added these to reinforce some ideas already presented above, but didn't want to include them
- above because it's just too much. It's easy to overdo it on a subject.
- You want to get hired in this century, right?
-
-- **SOLID**
- - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- - [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - [ ] O - [Open/Closed Principle](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- - [ ] L - [Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ Principle](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
- - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
- - [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
- - [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
- - [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
+### 2. Flashcards paydalanıñız
+Mäseleni şeşw üşin men şağın fléşkartalar saytın jasadım, onda men 2 türdegi fléşkartalardı qosa alamın: jalpı jäne kod.
+Är kartanıñ pişimi ärtürli. Men qay jerde bolsam da, telefonda nemese planşette qarap şığw üşin mobïldi veb-sayt jasadım.
-- **Union-Find**
- - [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
- - [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
- - [Trees](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
- - [Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
- - [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
- - [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
+Öziñizdi tegin jasañız:
-- **More Dynamic Programming** (videos)
- - [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
- - [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
- - [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
- - [6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=tp4_UXaVyx8&index=22&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
- - [6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
+- [Flashcards saytınıñ reposı](https://github.com/jwasham/computer-science-flash-cards)
-- **Advanced Graph Processing** (videos)
- - [Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
- - [Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
+**Fleşkartalarımdı paydalanwdı usınbaymın.** Olardıñ sanı tım köp jäne olardıñ köpşiligi sizge qajet emes usaq-tüyekter.
-- MIT **Probability** (mathy, and go slowly, which is good for mathy things) (videos):
- - [MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
- - [MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
- - [MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
+Biraq meni tıñdağıñ kelmese, mınanı aytasıñ:
+- [Meniñ fléş kartalarımnıñ derekqorım (1200 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- [Meniñ fléş kartalarımnıñ derekqorım (ékstremaldı - 1800 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-- [Simonson: Approximation Algorithms (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
+Есіңізде болсын, мен шектен шығып кеттім және ассемблер тілі мен Python тривиасынан бастап машиналық оқыту мен статистикаға дейін барлығын қамтитын карталарым бар.
+Бұл талап етілетін нәрсе үшін тым көп.
-- **String Matching**
- - Rabin-Karp (videos):
- - [Rabin Karps Algorithm](https://www.coursera.org/learn/data-structures/lecture/c0Qkw/rabin-karps-algorithm)
- - [Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
- - [Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
- - [Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
- - [Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=32)
- - Knuth-Morris-Pratt (KMP):
- - [TThe Knuth-Morris-Pratt (KMP) String Matching Algorithm](https://www.youtube.com/watch?v=5i7oKodCRJo)
- - Boyer–Moore string search algorithm
- - [Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm)
- - [Advanced String Searching Boyer-Moore-Horspool Algorithms (video)](https://www.youtube.com/watch?v=QDZpzctPf10)
- - [Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
- - starts off great, but by the time it gets past KMP it gets more complicated than it needs to be
- - nice explanation of tries
- - can be skipped
+**Флешкарталар туралы ескертпе:** Жауапты білетіндігіңізді бірінші рет танысаңыз, оны белгілі деп белгілемеңіз. Сіз көруіңіз керек
+сол картаны және оны шынымен білмей тұрып, оған бірнеше рет дұрыс жауап беріңіз. Қайталау бұл білімді тереңдетеді
+сіздің миыңыз.
-- **Sorting**
+Менің флэшкарта сайтымды пайдаланудың баламасы [Anki](http://ankisrs.net/), ол маған бірнеше рет ұсынылды.
+Ол есте сақтауға көмектесу үшін қайталау жүйесін пайдаланады. Бұл пайдаланушыға ыңғайлы, барлық платформаларда қол жетімді және бұлтты синхрондау жүйесі бар.
+Оның құны iOS жүйесінде $25, бірақ басқа платформаларда тегін.
- - Stanford lectures on sorting:
- - [Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
- - [Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
- - Shai Simonson, [Aduni.org](http://www.aduni.org/):
- - [Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
- - [Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
- - Steven Skiena lectures on sorting:
- - [lecture begins at 26:46 (video)](https://youtu.be/ute-pmMkyuk?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1600)
- - [lecture begins at 27:40 (video)](https://www.youtube.com/watch?v=yLvp-pB8mak&index=8&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [lecture begins at 35:00 (video)](https://www.youtube.com/watch?v=q7K9otnzlfE&index=9&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [lecture begins at 23:50 (video)](https://www.youtube.com/watch?v=TvqIGu9Iupw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=10)
+Anki пішіміндегі флэшкарта дерекқорым: https://ankiweb.net/shared/info/25173560 (рахмет [@xiewenya](https://github.com/xiewenya)).
-## Video Series
+Кейбір студенттер бос орынмен пішімдеу мәселелерін атап өтті, оларды келесі әрекеттерді орындау арқылы шешуге болады: палубаны ашу, картаны өңдеу, карталарды басу, «стильдеу» радио түймешігін таңдау, «ақ кеңістік: pre;» мүшесін қосу. карта класына.
-Sit back and enjoy.
+### 3. Оқу барысында сұхбат сұрақтарын кодтаңыз
-- [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+БҰЛ ӨТЕ МАҢЫЗДЫ.
-- [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
+Деректер құрылымдары мен алгоритмдерін үйрену кезінде сұхбат сұрақтарын кодтауды бастаңыз.
-- [MIT 18.06 Linear Algebra, Spring 2005 (35 videos)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
+Сіз үйреніп жатқан нәрсені мәселелерді шешуге қолдануыңыз керек, әйтпесе ұмытып кетесіз. Мен бұл қателік жасадым.
-- [Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
+Тақырыпты біліп болғаннан кейін және онымен өзіңізді біршама ыңғайлы сезінесіз, мысалы, **байланысты тізімдер**:
+1. [кодтау сұхбат кітаптарының] (#interview-prep-books) бірін ашыңыз (немесе төменде берілген кодтау мәселесіне арналған веб-сайттар)
+1. Байланыстырылған тізімдерге қатысты 2 немесе 3 сұрақ қойыңыз.
+1. Келесі оқу тақырыбына көшу.
+1. Кейінірек кері оралып, басқа 2 немесе 3 байланыстырылған тізім мәселесін орындаңыз.
+1. Мұны әрбір жаңа тақырыпты үйренген сайын орындаңыз.
-- CSE373 - Analysis of Algorithms (25 videos)
- - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
+**Мәселелерді кейін емес, осының бәрін үйреніп жатқанда жасай беріңіз.**
-- [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
+Сіз білім үшін емес, білімді қалай қолданасыз.
-- [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
+Бұл үшін төменде келтірілген көптеген ресурстар бар. Жалғастыру.
-- [UC Berkeley 61C: Machine Structures (26 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)
+### 4. Фокус
-- [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+Қымбат уақытты алатын көптеген алаңдаушылықтар бар. Фокус пен шоғырлану қиын. Музыканы қосыңыз
+мәтінсіз және сіз өте жақсы назар аудара аласыз.
-- ~~[UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr)~~
+## Нені көрмейсіз
-- [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6we_Yu)
+Бұл кең таралған технологиялар, бірақ осы зерттеу жоспарының бөлігі емес:
-- [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
+- SQL
+- Javascript
+- HTML, CSS және басқа интерфейстік технологиялар
-- [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False)
+## Күнделікті жоспар
-- [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
+Бұл курс көптеген тақырыптарды қамтиды. Олардың әрқайсысы сізге бірнеше күн немесе тіпті бір апта немесе одан да көп уақытты алады. Бұл сіздің кестеңізге байланысты.
-- [MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi)
+Күн сайын тізімдегі келесі тақырыпты алыңыз, сол тақырып бойынша бірнеше бейнелерді қараңыз, содан кейін іске асыруды жазыңыз
+осы курс үшін таңдаған тілдегі деректер құрылымы немесе алгоритм.
+Esiñizde bolsın, men şekten şığıp kettim jäne assembler tili men Python trïvïasınan bastap maşïnalıq oqıtw men statïstïkağa deyin barlığın qamtïtın kartalarım bar.
+Bul talap etiletin närse üşin tım köp.
-- [MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
+**Fleşkartalar twralı eskertpe:** Jawaptı biletindigiñizdi birinşi ret tanısañız, onı belgili dep belgilemeñiz. Siz körwiñiz kerek
+sol kartanı jäne onı şınımen bilmey turıp, oğan birneşe ret durıs jawap beriñiz. Qaytalaw bul bilimdi tereñdetedi
+sizdiñ mïıñız.
-- [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+Meniñ fléşkarta saytımdı paydalanwdıñ balaması [Anki](http://ankisrs.net/), ol mağan birneşe ret usınıldı.
+Ol este saqtawğa kömektesw üşin qaytalaw jüyesin paydalanadı. Bul paydalanwşığa ıñğaylı, barlıq platformalarda qol jetimdi jäne bulttı sïnxrondaw jüyesi bar.
+Onıñ qunı iOS jüyesinde $25, biraq basqa platformalarda tegin.
-- [MIT 6.050J: Information and Entropy, Spring 2008 (19 videos)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7)
+Anki pişimindegi fléşkarta derekqorım: https://ankiweb.net/shared/info/25173560 (raxmet [@xiewenya](https://github.com/xiewenya)).
-- [MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB)
+Keybir stwdentter bos orınmen pişimdew mäselelerin atap ötti, olardı kelesi äreketterdi orındaw arqılı şeşwge boladı: palwbanı aşw, kartanı öñdew, kartalardı basw, «stïldew» radïo tüymeşigin tañdaw, «aq keñistik: pre;» müşesin qosw. karta klasına.
-- [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
+### 3. Oqw barısında suxbat suraqtarın kodtañız
-- [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
+BUL ÖTE MAÑIZDI.
-- [Harvard COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
+Derekter qurılımdarı men algorïtmderin üyrenw kezinde suxbat suraqtarın kodtawdı bastañız.
-- [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
+Siz üyrenip jatqan närseni mäselelerdi şeşwge qoldanwıñız kerek, äytpese umıtıp ketesiz. Men bul qatelik jasadım.
-- [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
+Taqırıptı bilip bolğannan keyin jäne onımen öziñizdi birşama ıñğaylı sezinesiz, mısalı, **baylanıstı tizimder**:
+1. [kodtaw suxbat kitaptarınıñ] (#interview-prep-books) birin aşıñız (nemese tömende berilgen kodtaw mäselesine arnalğan veb-sayttar)
+1. Baylanıstırılğan tizimderge qatıstı 2 nemese 3 suraq qoyıñız.
+1. Kelesi oqw taqırıbına köşw.
+1. Keyinirek keri oralıp, basqa 2 nemese 3 baylanıstırılğan tizim mäselesin orındañız.
+1. Munı ärbir jaña taqırıptı üyrengen sayın orındañız.
-- [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
- - [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/)
+**Mäselelerdi keyin emes, osınıñ bärin üyrenip jatqanda jasay beriñiz.**
-- [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
+Siz bilim üşin emes, bilimdi qalay qoldanasız.
-- [Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+Bul üşin tömende keltirilgen köptegen reswrstar bar. Jalğastırw.
-## Computer Science Courses
+### 4. Fokws
-- [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)
+Qımbat waqıttı alatın köptegen alañdawşılıqtar bar. Fokws pen şoğırlanw qïın. Mwzıkanı qosıñız
+mätinsiz jäne siz öte jaqsı nazar awdara alasız.
-## Algorithms implementation
+## Neni körmeysiz
-- [Multiple Algorithms implementation by Princeton University](https://algs4.cs.princeton.edu/code)
+Bul keñ taralğan texnologïyalar, biraq osı zerttew josparınıñ böligi emes:
+- SQL
+- Javascript
+- HTML, CSS jäne basqa ïnterfeystik texnologïyalar
+
+## Kündelikti jospar
+
+Bul kwrs köptegen taqırıptardı qamtïdı. Olardıñ ärqaysısı sizge birneşe kün nemese tipti bir apta nemese odan da köp waqıttı aladı. Bul sizdiñ kesteñizge baylanıstı.
+
+Kün sayın tizimdegi kelesi taqırıptı alıñız, sol taqırıp boyınşa birneşe beynelerdi qarañız, sodan keyin iske asırwdı jazıñız
+osı kwrs üşin tañdağan tildegi derekter qurılımı nemese algorïtm.
+
+- ### Хэш кестесі
+ - [ ] Бейнелер:
+ - [ ] [Тізбекпен хэштеу (бейне)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Кестені еселеу, Карп-Рабин (бейне)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Ашық адрестеу, криптографиялық хэштеу (бейне)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: Құдіретті сөздік (бейне)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (бейне)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Жетілдірілген) рандомизация: әмбебап және тамаша хэштеу (бейне)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Жетілдірілген) Керемет хэштеу (бейне)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Онлайн курстар:
+ - [ ] [Негізгі хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Дерек құрылымдары (бейне)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Телефон кітапшасының мәселесі (бейне)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] таратылған хэш кестелері:
+ - [Dropbox жүйесінде жылдам жүктеп салулар және жадты оңтайландыру (бейне)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Таратылған хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Сызықтық зондтау арқылы массивпен орындаңыз
+ - хэш(k, m) - m хэш кестесінің өлшемі
+ - қосу(кілт, мән) - кілт бұрыннан бар болса, мәнді жаңартыңыз
+ - бар (кілт)
+ - алу (кілт)
+ - жою (кілт)
+- ### Xéş kestesi
+ - [ ] Beyneler:
+ - [ ] [Tizbekpen xéştew (beyne)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] [Kesteni eselew, Karp-Rabïn (beyne)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [Aşıq adrestew, krïptografïyalıq xéştew (beyne)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [PyCon 2010: Qudiretti sözdik (beyne)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] [PyCon 2017: The Dictionary Even Mightier (beyne)](https://www.youtube.com/watch?v=66P5FMkWoVU)
+ - [ ] [(Jetildirilgen) randomïzacïya: ämbebap jäne tamaşa xéştew (beyne)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] [(Jetildirilgen) Keremet xéştew (beyne)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+
+ - [ ] Onlayn kwrstar:
+ - [ ] [Negizgi xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
+ - [ ] [Derek qurılımdarı (beyne)](https://www.coursera.org/learn/data-structures/home/week/4)
+ - [ ] [Telefon kitapşasınıñ mäselesi (beyne)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
+ - [ ] taratılğan xéş kesteleri:
+ - [Dropbox jüyesinde jıldam jüktep salwlar jäne jadtı oñtaylandırw (beyne)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
+ - [Taratılğan xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
+
+ - [ ] Sızıqtıq zondtaw arqılı massïvpen orındañız
+ - xéş(k, m) - m xéş kestesiniñ ölşemi
+ - qosw(kilt, män) - kilt burınnan bar bolsa, mändi jañartıñız
+ - bar (kilt)
+ - alw (kilt)
+ - joyu (kilt)
+
+- ### Хабар алмасу, сериялау және кезекке қою жүйелері
+ - [Үнемдеу](https://thrift.apache.org/)
+ - [Оқулық](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Протокол буферлері](https://developers.google.com/protocol-buffers/)
+ - [Оқулықтар](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [Java әзірлеушілеріне арналған gRPC 101 (бейне)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Оқулық](http://try.redis.io/)
+ - [Amazon SQS (кезек)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Бастау](https://www.rabbitmq.com/getstarted.html)
+ - [Сельдерей](http://www.celeryproject.org/)
+ - [Сельдереймен алғашқы қадамдар](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Кіріспе - Нұсқаулықты оқу](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Кафка](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
-## Papers
+- ### A*
+ - [Іздеу алгоритмі](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Жолды табу (E01: алгоритмді түсіндіру) (бейне)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Жылдам Фурье түрлендіруі
+ - [Фурье түрлендіруіне арналған интерактивті нұсқаулық](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [Фурье түрлендіруі дегеніміз не? Ол не үшін қолданылады?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [Фурье түрлендіруі дегеніміз не? (бейне)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Бөліңіз және жеңіңіз: FFT (бейне)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [ФФТ-ны түсіну](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Блум сүзгісі
+ - m бит және k хэштеу функциялары бар Блум сүзгісін ескере отырып, кірістіру және мүшелік сынағы O(k) болып табылады.
+ - [Блум сүзгілері (бейне)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Блум сүзгілері | Жаппай деректер жиынын өндіру | Стэнфорд университеті (бейне)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Оқулық](http://billmill.org/bloomfilter-tutorial/)
+ - [Блум сүзгісі қолданбасын қалай жазуға болады](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+- ### Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri
+ - [Ünemdew](https://thrift.apache.org/)
+ - [Oqwlıq](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
+ - [Protokol bwferleri](https://developers.google.com/protocol-buffers/)
+ - [Oqwlıqtar](https://developers.google.com/protocol-buffers/docs/tutorials)
+ - [gRPC](http://www.grpc.io/)
+ - [Java äzirlewşilerine arnalğan gRPC 101 (beyne)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
+ - [Redis](http://redis.io/)
+ - [Oqwlıq](http://try.redis.io/)
+ - [Amazon SQS (kezek)](https://aws.amazon.com/sqs/)
+ - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
+ - [RabbitMQ](https://www.rabbitmq.com/)
+ - [Bastaw](https://www.rabbitmq.com/getstarted.html)
+ - [Selderey](http://www.celeryproject.org/)
+ - [Seldereymen alğaşqı qadamdar](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
+ - [ZeroMQ](http://zeromq.org/)
+ - [Kirispe - Nusqawlıqtı oqw](http://zeromq.org/intro:read-the-manual)
+ - [ActiveMQ](http://activemq.apache.org/)
+ - [Kafka](http://kafka.apache.org/documentation.html#introduction)
+ - [MessagePack](http://msgpack.org/index.html)
+ - [Avro](https://avro.apache.org/)
-- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
-- [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [implemented in Go](https://godoc.org/github.com/thomas11/csp)
-- [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - replaced by Colossus in 2012
-- [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - mostly replaced by Cloud Dataflow?
-- [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
-- [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
-- [2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- - The Dynamo paper kicked off the NoSQL revolution
-- [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- 2012: AddressSanitizer: A Fast Address Sanity Checker:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
-- 2013: Spanner: Google’s Globally-Distributed Database:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [video](https://www.usenix.org/node/170855)
-- [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
-- [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
-- [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf )
-- [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)
+- ### A*
+ - [Izdew algorïtmi](https://en.wikipedia.org/wiki/A*_search_algorithm)
+ - [A* Joldı tabw (E01: algorïtmdi tüsindirw) (beyne)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
+
+- ### Jıldam Fwre türlendirwi
+ - [Fwre türlendirwine arnalğan ïnteraktïvti nusqawlıq](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
+ - [Fwre türlendirwi degenimiz ne? Ol ne üşin qoldanıladı?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
+ - [Fwre türlendirwi degenimiz ne? (beyne)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
+ - [Böliñiz jäne jeñiñiz: FFT (beyne)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
+ - [FFT-nı tüsinw](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
+
+- ### Blwm süzgisi
+ - m bït jäne k xéştew fwnkcïyaları bar Blwm süzgisin eskere otırıp, kiristirw jäne müşelik sınağı O(k) bolıp tabıladı.
+ - [Blwm süzgileri (beyne)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
+ - [Blwm süzgileri | Jappay derekter jïının öndirw | Sténford wnïversïteti (beyne)](https://www.youtube.com/watch?v=qBTdukbzc78)
+ - [Oqwlıq](http://billmill.org/bloomfilter-tutorial/)
+ - [Blwm süzgisi qoldanbasın qalay jazwğa boladı](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
+
+- [Сарада Херкенің графикалық теориясы (67 бейне)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## Информатика курстары
+
+- [Онлайн CS курстары каталогы](https://github.com/open-source-society/computer-science)
+- [CS курстарының каталогы (көптеген онлайн дәрістер бар)](https://github.com/prakhar1989/awesome-courses)
+
+## Алгоритмдерді енгізу
+
+- [Принстон университетінің бірнеше алгоритмдерді енгізуі](https://algs4.cs.princeton.edu/code)
+
+
+## Қағаздар
+
+- [Классикалық қағаздарды ұнатасыз ба?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Тізбекті процестермен байланысу](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Go жүйесінде жүзеге асырылды](https://godoc.org/github.com/thomas11/csp)
+- [2003: Google файлдық жүйесі](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 жылы Колосспен ауыстырылды
+- [2004: MapReduce: Үлкен кластерлерде оңайлатылған деректерді өңдеу]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - негізінен Cloud Dataflow ауыстырылды ма?
+- [2006: Bigtable: құрылымдық деректерге арналған таратылған сақтау жүйесі](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: Біріктірілген таратылған жүйелерге арналған Chubby Lock қызметі](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Динамо: Amazon-ның жоғары қолжетімді кілттер дүкені](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Динамо қағазы NoSQL революциясын бастады
+- [2007: Әрбір бағдарламашы жад туралы не білуі керек (өте ұзақ және автор кейбір бөлімдерді өткізіп жіберуді ұсынады)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: жылдам мекенжай санитарлық тексерушісі:
+ - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [бейне](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google-дың ғаламдық таралған дерекқоры:
+ - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [бейне](https://www.usenix.org/node/170855)
+- [2015: Google-дағы үздіксіз құбырлар](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: Жаппай ауқымда жоғары қолжетімділік: Google-дың жарнамалар үшін деректер инфрақұрылымын құру](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Әзірлеушілер кодты қалай іздейді: жағдайды зерттеу](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- Қосымша қағаздар: [1000 қағаз](https://github.com/0voice/computer_expert_paper)
+
+## ЛИЦЕНЗИЯ
-## LICENSE
+[CC-BY-SA-4.0](./LICENSE.txt)
+- [Sarada Xerkeniñ grafïkalıq teorïyası (67 beyne)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
+
+## Ïnformatïka kwrstarı
+
+- [Onlayn CS kwrstarı katalogı](https://github.com/open-source-society/computer-science)
+- [CS kwrstarınıñ katalogı (köptegen onlayn därister bar)](https://github.com/prakhar1989/awesome-courses)
+
+## Algorïtmderdi engizw
+
+- [Prïnston wnïversïtetiniñ birneşe algorïtmderdi engizwi](https://algs4.cs.princeton.edu/code)
+
+
+## Qağazdar
+
+- [Klassïkalıq qağazdardı unatasız ba?](https://www.cs.cmu.edu/~crary/819-f09/)
+- [1978: Tizbekti procestermen baylanısw](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
+ - [Go jüyesinde jüzege asırıldı](https://godoc.org/github.com/thomas11/csp)
+- [2003: Google fayldıq jüyesi](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
+ - 2012 jılı Kolosspen awıstırıldı
+- [2004: MapReduce: Ülken klasterlerde oñaylatılğan derekterdi öñdew]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
+ - negizinen Cloud Dataflow awıstırıldı ma?
+- [2006: Bigtable: qurılımdıq derekterge arnalğan taratılğan saqtaw jüyesi](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
+- [2006: Biriktirilgen taratılğan jüyelerge arnalğan Chubby Lock qızmeti](https://research.google.com/archive/chubby-osdi06.pdf)
+- [2007: Dïnamo: Amazon-nıñ joğarı qoljetimdi kiltter dükeni](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
+ - Dïnamo qağazı NoSQL revolyucïyasın bastadı
+- [2007: Ärbir bağdarlamaşı jad twralı ne bilwi kerek (öte uzaq jäne avtor keybir bölimderdi ötkizip jiberwdi usınadı)](https://www.akkadia.org/drepper/cpumemory.pdf)
+- 2012: AddressSanitizer: jıldam mekenjay sanïtarlıq tekserwşisi:
+ - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
+ - [beyne](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
+- 2013: Spanner: Google-dıñ ğalamdıq taralğan derekqorı:
+ - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
+ - [beyne](https://www.usenix.org/node/170855)
+- [2015: Google-dağı üzdiksiz qubırlar](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
+- [2015: Jappay awqımda joğarı qoljetimdilik: Google-dıñ jarnamalar üşin derekter ïnfraqurılımın qurw](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
+- [2015: Äzirlewşiler kodtı qalay izdeydi: jağdaydı zerttew](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
+- Qosımşa qağazdar: [1000 qağaz](https://github.com/0voice/computer_expert_paper)
+
+## LÏCENZÏYa
[CC-BY-SA-4.0](./LICENSE.txt)
From 0cb930e95371afffc1a919375a810756a8c65ab5 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Sat, 27 Apr 2024 17:46:37 -0700
Subject: [PATCH 149/173] Added link to Marathi translation.
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index e31e5b01c9..644c53da3e 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,7 @@
- [Español](translations/README-es.md)
- [German](translations/README-de.md)
- [Japanese (日本語)](translations/README-ja.md)
+- [Marathi](translations/README-mr.md)
- [Polish](translations/README-pl.md)
- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
From f847fecac75af33f58e89637fa30b9cbeb240bf3 Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 06:36:42 +0530
Subject: [PATCH 150/173] Isolating Dutch Translation & renaming to
README-nl.md
Co-Authored-By: j0pgrm <109052480+j0pgrm@users.noreply.github.com>
---
README_KAZAKH.md | 1171 ------------------
README_DUTCH.md => translations/README-nl.md | 0
2 files changed, 1171 deletions(-)
delete mode 100644 README_KAZAKH.md
rename README_DUTCH.md => translations/README-nl.md (100%)
diff --git a/README_KAZAKH.md b/README_KAZAKH.md
deleted file mode 100644
index b857da2ae5..0000000000
--- a/README_KAZAKH.md
+++ /dev/null
@@ -1,1171 +0,0 @@
-# Кодтау сұхбат университеті
-
-> Мен мұны бастапқыда бағдарламалық жасақтама инженері болу үшін оқу тақырыптарының қысқаша тізімі ретінде жасадым,
-> бірақ ол бүгін көріп отырған үлкен тізімге дейін өсті. Осы оқу жоспарын орындағаннан кейін [мен жұмысқа қабылдандым
-> Amazon-да бағдарламалық жасақтаманы әзірлеу инженері ретінде](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> Мен сияқты көп оқудың қажеті жоқ шығар. Қалай болғанда да, сізге қажет нәрсенің бәрі осында.
->
-> Мен бірнеше ай бойы күніне 8-12 сағат оқыдым. Бұл менің оқиғам: [Google сұхбаты үшін неліктен мен 8 ай бойы толық уақытты оқыдым](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
->
-> **Назар аударыңыз:** Сізге мен сияқты көп оқудың қажеті жоқ. Мен көп уақытымды қажет емес нәрселерге жұмсадым. Бұл туралы қосымша ақпарат төменде. Мен сізге қымбат уақытыңызды жоғалтпай жетуге көмектесемін.
->
-> Мұнда келтірілген элементтер сізді кез келген бағдарламалық жасақтама компаниясында техникалық сұхбатқа жақсы дайындайды,
-> алыптарды қоса алғанда: Amazon, Facebook, Google және Microsoft.
-# Kodtaw suxbat wnïversïteti
-
-> Men munı bastapqıda bağdarlamalıq jasaqtama ïnjeneri bolw üşin oqw taqırıptarınıñ qısqaşa tizimi retinde jasadım,
-> biraq ol bügin körip otırğan ülken tizimge deyin östi. Osı oqw josparın orındağannan keyin [men jumısqa qabıldandım
-> Amazon-da bağdarlamalıq jasaqtamanı äzirlew ïnjeneri retinde](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> Men sïyaqtı köp oqwdıñ qajeti joq şığar. Qalay bolğanda da, sizge qajet närseniñ bäri osında.
->
-> Men birneşe ay boyı künine 8-12 sağat oqıdım. Bul meniñ oqïğam: [Google suxbatı üşin nelikten men 8 ay boyı tolıq waqıttı oqıdım](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a -google-interview-cc662ce9bb13)
->
-> **Nazar awdarıñız:** Sizge men sïyaqtı köp oqwdıñ qajeti joq. Men köp waqıtımdı qajet emes närselerge jumsadım. Bul twralı qosımşa aqparat tömende. Men sizge qımbat waqıtıñızdı joğaltpay jetwge kömektesemin.
->
-> Munda keltirilgen élementter sizdi kez kelgen bağdarlamalıq jasaqtama kompanïyasında texnïkalıq suxbatqa jaqsı dayındaydı,
-> alıptardı qosa alğanda: Amazon, Facebook, Google jäne Microsoft.
-
-
->
-> *Сәттілік сізге!*
-
-<толығырақ>
-Аудармалар:
-
-- [中文版本](аудармалар/README-cn.md)
-- [Tiếng Việt - вьетнамша](аудармалар/README-vi.md)
-- [Español](аудармалар/README-es.md)
-- [Português Brasileiro](аудармалар/README-ptbr.md)
-- [Польша](аудармалар/README-pl.md)
-- [繁體中文](аудармалар/README-tw.md)
-- [Жапондық (日本語)](аудармалар/README-ja.md)
-- [Орыс](аудармалар/README-ru.md)
-- [Неміс](аудармалар/README-de.md)
-- [Бахаса Индонезия](аудармалар/README-id.md)
-- [ខ្មែរ - кхмер](аудармалар/README-kh.md)
-- [Өзбек](аудармалар/README-uz.md)
-- [Болгар](аудармалар/README-bg.md)
-- [বাংলা - Bangla](translations/README-bn.md)
-
-
->
-> *Sättilik sizge!*
-
-
-Awdarmalar:
-
-- [zhōng wén bǎn běn](awdarmalar/README-cn.md)
-- [Tiếng Việt - vetnamşa](awdarmalar/README-vi.md)
-- [Español](awdarmalar/README-es.md)
-- [Português Brasileiro](awdarmalar/README-ptbr.md)
-- [Polşa](awdarmalar/README-pl.md)
-- [fán tǐ zhōng wén](awdarmalar/README-tw.md)
-- [Japondıq (rì běn yǔ)](awdarmalar/README-ja.md)
-- [Orıs](awdarmalar/README-ru.md)
-- [Nemis](awdarmalar/README-de.md)
-- [Baxasa Ïndonezïya](awdarmalar/README-id.md)
-- [ខ្មែរ - kxmer](awdarmalar/README-kh.md)
-- [Özbek](awdarmalar/README-uz.md)
-- [Bolgar](awdarmalar/README-bg.md)
-- [bānlā - Bangla](translations/README-bn.md)
-
-
-
-
-Translations in progress:
-
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
-- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Urdu](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-
-
-
-
-
-## Бұл не?
-
-
-
-Бұл менің ірі компанияда бағдарламалық жасақтама инженері болу үшін көп айлық оқу жоспарым.
-
-**Міндетті:**
-* Кодтау бойынша аз тәжірибе (айнымалылар, циклдар, әдістер/функциялар және т.б.)
-* Сабыр
-* Уақыт
-
-Бұл веб-әзірлеуге емес, **бағдарламалық қамтамасыз ету инженериясына** арналған оқу жоспары екенін ескеріңіз. Google, Amazon сияқты ірі бағдарламалық қамтамасыз ету компаниялары,
-Facebook және Microsoft бағдарламалық жасақтаманы веб-әзірлеуден өзгеше деп санайды. Мысалы, Amazon бар
-Frontend инженерлері (FEE) және бағдарламалық жасақтаманы әзірлеу инженерлері (SDE). Бұл 2 бөлек рөл және сұхбат
-олар бірдей болмайды, өйткені әрқайсысының өз құзыреті бар. Бұл компаниялар үшін информатика білімі қажет
-бағдарламалық қамтамасыз етуді әзірлеу/инженерлік рөлдер.
-
----
-
-## Мазмұны
-
-### Оқу жоспары
-
-- [Бұл не?](#не-ол)
-- [Неге оны пайдалану керек?](#why-use-it)
-- [Қалай пайдалану керек](#қалай-пайдалану керек)
-- [Өзіңізді жеткілікті ақылды емес деп санамаңыз](#сізді жеткілікті түрде ақылды-сезінбеңіз)
-- [Бейне ресурстары туралы ескертпе](#a-note-about-video-resources)
-- [Бағдарламалау тілін таңдау](#choose-a-programming-language)
-- [Дерек құрылымдары мен алгоритмдеріне арналған кітаптар](#деректер құрылымдары мен алгоритмдеріне арналған кітаптар)
-- [Интервьюге дайындық кітаптары](#interview-prep-books)
-- [Менің қателіктерімді жасамаңыз](#қателіктерімді-жасамаңыз)
-- [Жабықпен сіз көрмейсіз](#сіз-көрмейтін-қамтылған)
-- [Күнделікті жоспар](#күнделікті-жоспар)
-- [Сұрақтарды кодтау тәжірибесі](#coding-question-practice)
-- [Кодтау мәселелері](#coding-problems)
-## Bul ne?
-
-
-
-Bul meniñ iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolw üşin köp aylıq oqw josparım.
-
-**Mindetti:**
-* Kodtaw boyınşa az täjirïbe (aynımalılar, cïkldar, ädister/fwnkcïyalar jäne t.b.)
-* Sabır
-* Waqıt
-
-Bul veb-äzirlewge emes, **bağdarlamalıq qamtamasız etw ïnjenerïyasına** arnalğan oqw josparı ekenin eskeriñiz. Google, Amazon sïyaqtı iri bağdarlamalıq qamtamasız etw kompanïyaları,
-Facebook jäne Microsoft bağdarlamalıq jasaqtamanı veb-äzirlewden özgeşe dep sanaydı. Mısalı, Amazon bar
-Frontend ïnjenerleri (FEE) jäne bağdarlamalıq jasaqtamanı äzirlew ïnjenerleri (SDE). Bul 2 bölek röl jäne suxbat
-olar birdey bolmaydı, öytkeni ärqaysısınıñ öz quzıreti bar. Bul kompanïyalar üşin ïnformatïka bilimi qajet
-bağdarlamalıq qamtamasız etwdi äzirlew/ïnjenerlik rölder.
-
----
-
-## Mazmunı
-
-### Oqw josparı
-
-- [Bul ne?](#ne-ol)
-- [Nege onı paydalanw kerek?](#why-use-it)
-- [Qalay paydalanw kerek](#qalay-paydalanw kerek)
-- [Öziñizdi jetkilikti aqıldı emes dep sanamañız](#sizdi jetkilikti türde aqıldı-sezinbeñiz)
-- [Beyne reswrstarı twralı eskertpe](#a-note-about-video-resources)
-- [Bağdarlamalaw tilin tañdaw](#choose-a-programming-language)
-- [Derek qurılımdarı men algorïtmderine arnalğan kitaptar](#derekter qurılımdarı men algorïtmderine arnalğan kitaptar)
-- [Ïntervyuge dayındıq kitaptarı](#interview-prep-books)
-- [Meniñ qatelikterimdi jasamañız](#qatelikterimdi-jasamañız)
-- [Jabıqpen siz körmeysiz](#siz-körmeytin-qamtılğan)
-- [Kündelikti jospar](#kündelikti-jospar)
-- [Suraqtardı kodtaw täjirïbesi](#coding-question-practice)
-- [Kodtaw mäseleleri](#coding-problems)
-
-### Оқу тақырыптары
-
-- [Алгоритмдік күрделілік / Үлкен-О / Асимптотикалық талдау](#алгоритмдік-күрделілік--үлкен-о--ассимптотикалық-анализ)
-- [Дерек құрылымдары](#деректер құрылымдары)
- - [Массивтер](#массив)
- - [Байланыстырылған тізімдер](#linked-lists)
- - [Стек](#стек)
- - [Кезек](#кезек)
- - [Хэш кестесі](#хэш-кесте)
-- [Қосымша білім](#көп-білім)
- - [Екілік іздеу](#екілік іздеу)
- - [биттік операциялар](#биттік операциялар)
-- [Ағаштар](#ағаштар)
- - [Ағаштар - Жазбалар және фон](#ағаштар---жазбалар--фон)
- - [Екілік іздеу ағаштары: BSTs](#binary-search-trees-bsts)
- - [Үйме / Басымдық кезек / Екілік үйме](#үйме--басымдылық-кезегі--екілік-үйме)
- - теңдестірілген іздеу ағаштары (детальдар емес, жалпы түсінік)
- - өтулер: алдын ала тапсырыс, тапсырыс, кейінгі тапсырыс, BFS, DFS
-- [Сұрыптау](#сұрыптау)
- - таңдау
- - кірістіру
- - үйінді сұрыптау
- - жылдам сұрыптау
- - біріктіру сұрыптауы
-- [Графиктер](#график)
- - бағыттады
- - бағытталмаған
- - көршілестік матрицасы
- - іргелес тізім
- - өтулер: BFS, DFS
-- [Одан да көп білім](#ven-more-bilgi)
- - [Рекурсия](#рекурсия)
- - [Динамикалық бағдарламалау](#динамикалық-бағдарламалау)
- - [Дизайн үлгілері](#design-patterns)
- - [Комбинаторика (n таңдау k) & Ықтималдық](#комбинаторика-n-таңдау-k--ықтималдық)
- - [NP, NP-Толық және жуықтау алгоритмдері](#np-np-толық-және жуықтау-алгоритмдері)
- - [Компьютерлер бағдарламаны қалай өңдейді](#қалай-компьютерлер-бағдарламаны өңдейді)
- - [Кэштер](#кэштер)
- - [Процестер мен ағындар](#processes-and-threads)
- - [Тестілеу](#тестілеу)
- - [Жолды іздеу және манипуляциялар](#string-searching--манипуляциялар)
- - [Әрекет](# тырысады)
- - [Жылжымалы нүкте сандары](#жылжымалы нүкте сандары)
- - [Юникод](#уникод)
- - [Endianness](#endianness)
- - [Networking](#networking)
-- [Қорытынды шолу](#соңғы шолу)
-
-### Жұмысқа орналасу
-
-- [Түйіндемеңізді жаңарту](#жаңарту-өз түйіндемеңіз)
-- [Жұмыс табу](#жұмыс табу)
-- [Интервью процесі және жалпы сұхбатқа дайындық](#interview-process--жалпы-интервью-дайындық)
-- [Сұхбат қашан келетінін ойлаңыз](#сұхбат келгенде-ойланыңыз)
-- [Сұхбат алушыға сұрақтарыңыз бар](#сұхбат алушыға-сұрақтарыңыз бар)
-- [Жұмысқа қол жеткізгеннен кейін](#бір рет-жұмысқа-алғаннан кейін)
-
-**---------------- Осы тармақтың астындағылардың барлығы міндетті емес ----------------**
-### Oqw taqırıptarı
-
-- [Algorïtmdik kürdelilik / Ülken-O / Asïmptotïkalıq taldaw](#algorïtmdik-kürdelilik--ülken-o--assïmptotïkalıq-analïz)
-- [Derek qurılımdarı](#derekter qurılımdarı)
- - [Massïvter](#massïv)
- - [Baylanıstırılğan tizimder](#linked-lists)
- - [Stek](#stek)
- - [Kezek](#kezek)
- - [Xéş kestesi](#xéş-keste)
-- [Qosımşa bilim](#köp-bilim)
- - [Ekilik izdew](#ekilik izdew)
- - [bïttik operacïyalar](#bïttik operacïyalar)
-- [Ağaştar](#ağaştar)
- - [Ağaştar - Jazbalar jäne fon](#ağaştar---jazbalar--fon)
- - [Ekilik izdew ağaştarı: BSTs](#binary-search-trees-bsts)
- - [Üyme / Basımdıq kezek / Ekilik üyme](#üyme--basımdılıq-kezegi--ekilik-üyme)
- - teñdestirilgen izdew ağaştarı (detaldar emes, jalpı tüsinik)
- - ötwler: aldın ala tapsırıs, tapsırıs, keyingi tapsırıs, BFS, DFS
-- [Surıptaw](#surıptaw)
- - tañdaw
- - kiristirw
- - üyindi surıptaw
- - jıldam surıptaw
- - biriktirw surıptawı
-- [Grafïkter](#grafïk)
- - bağıttadı
- - bağıttalmağan
- - körşilestik matrïcası
- - irgeles tizim
- - ötwler: BFS, DFS
-- [Odan da köp bilim](#ven-more-bilgi)
- - [Rekwrsïya](#rekwrsïya)
- - [Dïnamïkalıq bağdarlamalaw](#dïnamïkalıq-bağdarlamalaw)
- - [Dïzayn ülgileri](#design-patterns)
- - [Kombïnatorïka (n tañdaw k) & Iqtïmaldıq](#kombïnatorïka-n-tañdaw-k--ıqtïmaldıq)
- - [NP, NP-Tolıq jäne jwıqtaw algorïtmderi](#np-np-tolıq-jäne jwıqtaw-algorïtmderi)
- - [Kompyuterler bağdarlamanı qalay öñdeydi](#qalay-kompyuterler-bağdarlamanı öñdeydi)
- - [Kéşter](#kéşter)
- - [Procester men ağındar](#processes-and-threads)
- - [Testilew](#testilew)
- - [Joldı izdew jäne manïpwlyacïyalar](#string-searching--manïpwlyacïyalar)
- - [Äreket](# tırısadı)
- - [Jıljımalı nükte sandarı](#jıljımalı nükte sandarı)
- - [Yunïkod](#wnïkod)
- - [Endianness](#endianness)
- - [Networking](#networking)
-- [Qorıtındı şolw](#soñğı şolw)
-
-### Jumısqa ornalasw
-
-- [Tüyindemeñizdi jañartw](#jañartw-öz tüyindemeñiz)
-- [Jumıs tabw](#jumıs tabw)
-- [Ïntervyu procesi jäne jalpı suxbatqa dayındıq](#interview-process--jalpı-ïntervyu-dayındıq)
-- [Suxbat qaşan keletinin oylañız](#suxbat kelgende-oylanıñız)
-- [Suxbat alwşığa suraqtarıñız bar](#suxbat alwşığa-suraqtarıñız bar)
-- [Jumısqa qol jetkizgennen keyin](#bir ret-jumısqa-alğannan keyin)
-
-**---------------- Osı tarmaqtıñ astındağılardıñ barlığı mindetti emes ----------------**
-
-### Қосымша қосымша тақырыптар мен ресурстар
-
-- [Қосымша кітаптар](#қосымша кітаптар)
-- [Жүйені жобалау, масштабтау, деректерді өңдеу](#жүйе дизайны-масштабтау-деректерді өңдеу) (4 жылдан астам тәжірибеңіз болса)
-- [Қосымша оқыту](#қосымша-оқыту)
- - [Құрастырушылар](#компиляторлар)
- - [Emacs және vi(m)](#emacs-and-vim)
- - [Unix пәрмен жолы құралдары](#unix-командалық жол құралдары)
- - [Ақпарат теориясы](#ақпарат-теория-бейнелер)
- - [Паритет және Хамминг коды](#parity--hamming-code-videos)
- - [Энтропия](#энтропия)
- - [Криптография](#криптография)
- - [Сығу](#қысу)
- - [Компьютер қауіпсіздігі](#компьютер қауіпсіздігі)
- - [Қоқыс жинау](#қоқыс жинау)
- - [Параллельді бағдарламалау](#параллельді бағдарламалау)
- - [Хабар алмасу, сериялау және кезекке қою жүйелері](#хабарлама-серияландыру-және-кезектеу-жүйелері)
- - [A*](#a)
- - [Fast Furier Transform](#fast-fourier-transform)
- - [Блум сүзгісі](#блум-сүзгісі)
- - [HyperLogLog](#hyperloglog)
- - [Жергілікті-сезімтал хэштеу](#жергілікті-сезімтал-хэшинг)
- - [ван Эмде Боас ағаштары](#ван-емде-боас-ағаштар)
- - [Толықтырылған деректер құрылымдары](#augmented-data-structures)
- - [Балансталған іздеу ағаштары](#балансталған іздеу ағаштары)
- - AVL ағаштары
- - Ағаштар
- - қызыл/қара ағаштар
- - 2-3 іздеу ағаштары
- - 2-3-4 ағаш (2-4 ағаш)
- - N-ары (Қ-ары, М-ары) ағаштары
- - В-ағаштар
- - [k-D ағаштары](#k-d-ағаштар)
- - [Тізімдерді өткізіп жіберу](#өткізу тізімдері)
- - [Желі ағындары](#желі ағындары)
- - [Ажыратылған жиындар және одақтарды табу](#disjoint-жинақтар--одақ-табу)
- - [Жылдам өңдеуге арналған математика](#жылдам өңдеуге арналған математика)
- - [Треап](#treap)
- - [Сызықтық бағдарламалау](#linear-бағдарламалау-бейнелер)
- - [Геометрия, дөңес корпус](#геометрия-дөңес-корпус-бейнелері)
- - [Дискретті математика](#дискретті-математика)
-- [Кейбір тақырыптар бойынша қосымша мәліметтер](кейбір тақырыптар бойынша #қосымша-деталь)
-- [Бейне сериясы](#бейне сериясы)
-- [Информатика курстары](#компьютер-ғылым-курстары)
-- [Қағаздар](#қағаз)
-### Qosımşa qosımşa taqırıptar men reswrstar
-
-- [Qosımşa kitaptar](#qosımşa kitaptar)
-- [Jüyeni jobalaw, masştabtaw, derekterdi öñdew](#jüye dïzaynı-masştabtaw-derekterdi öñdew) (4 jıldan astam täjirïbeñiz bolsa)
-- [Qosımşa oqıtw](#qosımşa-oqıtw)
- - [Qurastırwşılar](#kompïlyatorlar)
- - [Emacs jäne vi(m)](#emacs-and-vim)
- - [Unix pärmen jolı quraldarı](#unix-komandalıq jol quraldarı)
- - [Aqparat teorïyası](#aqparat-teorïya-beyneler)
- - [Parïtet jäne Xammïng kodı](#parity--hamming-code-videos)
- - [Éntropïya](#éntropïya)
- - [Krïptografïya](#krïptografïya)
- - [Sığw](#qısw)
- - [Kompyuter qawipsizdigi](#kompyuter qawipsizdigi)
- - [Qoqıs jïnaw](#qoqıs jïnaw)
- - [Paralleldi bağdarlamalaw](#paralleldi bağdarlamalaw)
- - [Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri](#xabarlama-serïyalandırw-jäne-kezektew-jüyeleri)
- - [A*](#a)
- - [Fast Furier Transform](#fast-fourier-transform)
- - [Blwm süzgisi](#blwm-süzgisi)
- - [HyperLogLog](#hyperloglog)
- - [Jergilikti-sezimtal xéştew](#jergilikti-sezimtal-xéşïng)
- - [van Émde Boas ağaştarı](#van-emde-boas-ağaştar)
- - [Tolıqtırılğan derekter qurılımdarı](#augmented-data-structures)
- - [Balanstalğan izdew ağaştarı](#balanstalğan izdew ağaştarı)
- - AVL ağaştarı
- - Ağaştar
- - qızıl/qara ağaştar
- - 2-3 izdew ağaştarı
- - 2-3-4 ağaş (2-4 ağaş)
- - N-arı (Q-arı, M-arı) ağaştarı
- - V-ağaştar
- - [k-D ağaştarı](#k-d-ağaştar)
- - [Tizimderdi ötkizip jiberw](#ötkizw tizimderi)
- - [Jeli ağındarı](#jeli ağındarı)
- - [Ajıratılğan jïındar jäne odaqtardı tabw](#disjoint-jïnaqtar--odaq-tabw)
- - [Jıldam öñdewge arnalğan matematïka](#jıldam öñdewge arnalğan matematïka)
- - [Treap](#treap)
- - [Sızıqtıq bağdarlamalaw](#linear-bağdarlamalaw-beyneler)
- - [Geometrïya, döñes korpws](#geometrïya-döñes-korpws-beyneleri)
- - [Dïskretti matematïka](#dïskretti-matematïka)
-- [Keybir taqırıptar boyınşa qosımşa mälimetter](keybir taqırıptar boyınşa #qosımşa-detal)
-- [Beyne serïyası](#beyne serïyası)
-- [Ïnformatïka kwrstarı](#kompyuter-ğılım-kwrstarı)
-- [Qağazdar](#qağaz)
-
-## Оны не үшін қолдану керек?
-
-Егер сіз ірі компанияда бағдарламалық жасақтама инженері болып жұмыс істегіңіз келсе, бұл сізге білу керек нәрселер.
-
-Егер сіз мен сияқты информатика бойынша ғылыми дәреже алуды жіберіп алсаңыз, бұл сізді қуып жетіп, өміріңіздің төрт жылын сақтайды.
-
-Мен бұл жобаны бастаған кезде, мен үйіндіден стекті білмедім, Big-O ештеңе білмедім, ағаштар туралы ештеңе білмедім немесе қалай істеу керектігін білмедім.
-графикті айналып өту. Егер мен сұрыптау алгоритмін кодтауым керек болса, бұл қорқынышты болар еді деп айта аламын.
-Мен пайдаланған әрбір деректер құрылымы тілге салынған және мен олардың қалай жұмыс істейтінін білмедім
-мүлде капюшонның астында. Мен іске қосып жатқан процесс «шығын» бермейінше, жадты ешқашан басқаруға тура келмеді
-жад» қатесі пайда болды, содан кейін уақытша шешім табуым керек еді. Мен өмірімде бірнеше көп өлшемді массивтерді қолдандым және
-мыңдаған ассоциативті массивтер, бірақ мен ешқашан деректер құрылымдарын нөлден жасаған емеспін.
-
-Бұл ұзақ жоспар. Бұл сізге айлар алуы мүмкін. Егер сіз мұның көп бөлігімен таныс болсаңыз, бұл сізге әлдеқайда аз уақыт алады.
-
-## Оны қалай пайдалануға болады
-
-Төмендегілердің бәрі контур, сондықтан элементтерді жоғарыдан төменге қарай ретімен шешу керек.
-
-Мен GitHub-тың арнайы белгілеу дәмін, соның ішінде орындалу барысын бақылау үшін тапсырмалар тізімдерін пайдаланамын.
- - [GitHub-flavored markdown туралы толығырақ](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
-
-### Егер сіз git қолданбасын пайдаланғыңыз келмесе
-
-Бұл бетте жоғарғы жағындағы Код түймесін басыңыз, содан кейін «ZIP жүктеп алу» түймесін басыңыз. Файлды ашыңыз және мәтіндік файлдармен жұмыс істей аласыз.
-
-Белгілеуді түсінетін код өңдегішінде ашық болсаңыз, барлығы жақсы пішімделгенін көресіз.
-
-
-
-### Егер сіз gitпен ыңғайлы болсаңыз
-
-Мынадай элементтерді тексеру үшін жаңа тармақ жасаңыз, жақшаға x белгісін қойыңыз: [x]
-
-1. ***GitHub репосын ашыңыз:*** `https://github.com/jwasham/coding-interview-university` Fork түймесін басу арқылы.
-## Onı ne üşin qoldanw kerek?
-
-Eger siz iri kompanïyada bağdarlamalıq jasaqtama ïnjeneri bolıp jumıs istegiñiz kelse, bul sizge bilw kerek närseler.
-
-Eger siz men sïyaqtı ïnformatïka boyınşa ğılımï däreje alwdı jiberip alsañız, bul sizdi qwıp jetip, ömiriñizdiñ tört jılın saqtaydı.
-
-Men bul jobanı bastağan kezde, men üyindiden stekti bilmedim, Big-O eşteñe bilmedim, ağaştar twralı eşteñe bilmedim nemese qalay istew kerektigin bilmedim.
-grafïkti aynalıp ötw. Eger men surıptaw algorïtmin kodtawım kerek bolsa, bul qorqınıştı bolar edi dep ayta alamın.
-Men paydalanğan ärbir derekter qurılımı tilge salınğan jäne men olardıñ qalay jumıs isteytinin bilmedim
-mülde kapyuşonnıñ astında. Men iske qosıp jatqan process «şığın» bermeyinşe, jadtı eşqaşan basqarwğa twra kelmedi
-jad» qatesi payda boldı, sodan keyin waqıtşa şeşim tabwım kerek edi. Men ömirimde birneşe köp ölşemdi massïvterdi qoldandım jäne
-mıñdağan assocïatïvti massïvter, biraq men eşqaşan derekter qurılımdarın nölden jasağan emespin.
-
-Bul uzaq jospar. Bul sizge aylar alwı mümkin. Eger siz munıñ köp böligimen tanıs bolsañız, bul sizge äldeqayda az waqıt aladı.
-
-## Onı qalay paydalanwğa boladı
-
-Tömendegilerdiñ bäri kontwr, sondıqtan élementterdi joğarıdan tömenge qaray retimen şeşw kerek.
-
-Men GitHub-tıñ arnayı belgilew dämin, sonıñ işinde orındalw barısın baqılaw üşin tapsırmalar tizimderin paydalanamın.
- - [GitHub-flavored markdown twralı tolığıraq](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
-
-### Eger siz git qoldanbasın paydalanğıñız kelmese
-
-Bul bette joğarğı jağındağı Kod tüymesin basıñız, sodan keyin «ZIP jüktep alw» tüymesin basıñız. Fayldı aşıñız jäne mätindik fayldarmen jumıs istey alasız.
-
-Belgilewdi tüsinetin kod öñdegişinde aşıq bolsañız, barlığı jaqsı pişimdelgenin köresiz.
-
-
-
-### Eger siz gitpen ıñğaylı bolsañız
-
-Mınaday élementterdi tekserw üşin jaña tarmaq jasañız, jaqşağa x belgisin qoyıñız: [x]
-
-1. ***GitHub reposın aşıñız:*** `https://github.com/jwasham/coding-interview-university` Fork tüymesin basw arqılı.
-
-
-
-
-1. Жергілікті репоға клондау:
-
- ```
- git clone git@github.com:/coding-interview-university.git
- CD кодтау-сұхбат-университет
- git checkout -b прогресс
- git қашықтан jwasham қосу https://github.com/jwasham/coding-interview-university
- git fetch --барлығы
- ```
-
-1. Өзгерістерді аяқтағаннан кейін барлық ұяшықтарды X белгісімен белгілеңіз:
-
- ```
- git қосу.
- git commit -m «X белгіленген»
- git rebase jwasham/main
- git push --set-upstream бастапқы прогресті
- git push --force
- ```
-
-## Өзіңді жеткілікті ақылды емес деп санама
-
-- Табысты бағдарламалық жасақтама инженерлері ақылды, бірақ олардың көпшілігі жеткілікті ақылды емес деген сенімсіздікке ие.
-- Келесі бейнелер осы сенімсіздікті жеңуге көмектесуі мүмкін:
- - [Данышпан программист туралы миф](https://www.youtube.com/watch?v=0SARbwvhupQ)
- - [Жалғыз жүру қауіпті: технологиядағы көрінбейтін құбыжықтармен күресу](https://www.youtube.com/watch?v=1i8ylq4j_EY)
-
-## Бейне ресурстар туралы ескертпе
-
-Кейбір бейнелер Coursera немесе EdX сыныбына тіркелу арқылы ғана қолжетімді. Бұлар MOOC деп аталады.
-Кейде сабақтар сессияда болмайды, сондықтан сізге бірнеше ай күтуге тура келеді, сондықтан сізде кіру мүмкіндігі болмайды.
-
-Онлайн курс ресурстарын тегін және әрқашан қолжетімді жалпыға қолжетімді көздермен алмастыру тамаша болар еді,
-мысалы, YouTube бейнелері (жақсырақ университет лекциялары), сондықтан сіз кез келген уақытта оларды оқи аласыз,
-белгілі бір онлайн курс сессияда болғанда ғана емес.
-
-## Бағдарламалау тілін таңдаңыз
-
-Сізге кодтау сұхбаттары үшін бағдарламалау тілін таңдау керек,
-бірақ сізге информатика ұғымдарын зерттеу үшін қолдануға болатын тілді табу қажет болады.
-
-Тіл бірдей болғаны дұрыс, сондықтан сізге тек біреуін білу керек.
-
-### Осы оқу жоспары үшін
-
-Мен оқу жоспарын жасаған кезде оның көп бөлігінде 2 тілді қолдандым: C және Python
-
-* C: Өте төмен деңгей. Көрсеткіштермен және жадты бөлу/бөлумен жұмыс істеуге мүмкіндік береді, осылайша деректер құрылымдарын сезінесіз
- және сүйектеріңіздегі алгоритмдер. Python немесе Java сияқты жоғары деңгейлі тілдерде олар сізден жасырылады. Күнделікті жұмыста бұл керемет,
- бірақ сіз осы төмен деңгейлі деректер құрылымдарының қалай салынғанын үйреніп жатқанда, металға жақын сезіну өте жақсы.
- - C барлық жерде бар. Сіз оқу кезінде мысалдарды кітаптардан, лекциялардан, бейнелерден, *барлық жерде* көресіз.
- - [The C бағдарламалау тілі, 2-том](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
-
-
-1. Jergilikti repoğa klondaw:
-
- ```
- git clone git@github.com:/coding-interview-university.git
- CD kodtaw-suxbat-wnïversïtet
- git checkout -b progress
- git qaşıqtan jwasham qosw https://github.com/jwasham/coding-interview-university
- git fetch --barlığı
- ```
-
-1. Özgeristerdi ayaqtağannan keyin barlıq uyaşıqtardı X belgisimen belgileñiz:
-
- ```
- git qosw.
- git commit -m «X belgilengen»
- git rebase jwasham/main
- git push --set-upstream bastapqı progresti
- git push --force
- ```
-
-## Öziñdi jetkilikti aqıldı emes dep sanama
-
-- Tabıstı bağdarlamalıq jasaqtama ïnjenerleri aqıldı, biraq olardıñ köpşiligi jetkilikti aqıldı emes degen senimsizdikke ïe.
-- Kelesi beyneler osı senimsizdikti jeñwge kömekteswi mümkin:
- - [Danışpan programmïst twralı mïf](https://www.youtube.com/watch?v=0SARbwvhupQ)
- - [Jalğız jürw qawipti: texnologïyadağı körinbeytin qubıjıqtarmen küresw](https://www.youtube.com/watch?v=1i8ylq4j_EY)
-
-## Beyne reswrstar twralı eskertpe
-
-Keybir beyneler Coursera nemese EdX sınıbına tirkelw arqılı ğana qoljetimdi. Bular MOOC dep ataladı.
-Keyde sabaqtar sessïyada bolmaydı, sondıqtan sizge birneşe ay kütwge twra keledi, sondıqtan sizde kirw mümkindigi bolmaydı.
-
-Onlayn kwrs reswrstarın tegin jäne ärqaşan qoljetimdi jalpığa qoljetimdi közdermen almastırw tamaşa bolar edi,
-mısalı, YouTube beyneleri (jaqsıraq wnïversïtet lekcïyaları), sondıqtan siz kez kelgen waqıtta olardı oqï alasız,
-belgili bir onlayn kwrs sessïyada bolğanda ğana emes.
-
-## Bağdarlamalaw tilin tañdañız
-
-Sizge kodtaw suxbattarı üşin bağdarlamalaw tilin tañdaw kerek,
-biraq sizge ïnformatïka uğımdarın zerttew üşin qoldanwğa bolatın tildi tabw qajet boladı.
-
-Til birdey bolğanı durıs, sondıqtan sizge tek birewin bilw kerek.
-
-### Osı oqw josparı üşin
-
-Men oqw josparın jasağan kezde onıñ köp böliginde 2 tildi qoldandım: C jäne Python
-
-* C: Öte tömen deñgey. Körsetkiştermen jäne jadtı bölw/bölwmen jumıs istewge mümkindik beredi, osılayşa derekter qurılımdarın sezinesiz
- jäne süyekteriñizdegi algorïtmder. Python nemese Java sïyaqtı joğarı deñgeyli tilderde olar sizden jasırıladı. Kündelikti jumısta bul keremet,
- biraq siz osı tömen deñgeyli derekter qurılımdarınıñ qalay salınğanın üyrenip jatqanda, metalğa jaqın sezinw öte jaqsı.
- - C barlıq jerde bar. Siz oqw kezinde mısaldardı kitaptardan, lekcïyalardan, beynelerden, *barlıq jerde* köresiz.
- - [The C bağdarlamalaw tili, 2-tom](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
-
- - Бұл қысқа кітап, бірақ ол сізге Си тілін жақсы меңгеруге мүмкіндік береді және егер сіз оны аздап үйренсеңіз
- тез шеберлікке ие боласыз. Си түсіну бағдарламалар мен жадтың қалай жұмыс істейтінін түсінуге көмектеседі.
- - Кітаптың тереңіне барудың (тіпті оны аяқтаудың) қажеті жоқ. Си тілінде оқуға және жазуға ыңғайлы жерге жетіңіз.
- - [Кітаптағы сұрақтарға жауаптар](https://github.com/lekkas/c-algorithms)
-* Python: Заманауи және өте мәнерлі, мен оны білдім, себебі бұл өте пайдалы және сұхбатта азырақ код жазуға мүмкіндік береді.
-
-Бұл менің басымдылығым. Сіз өзіңізге ұнайтын нәрсені жасайсыз, әрине.
-
-Бұл сізге қажет болмауы мүмкін, бірақ жаңа тілді үйренуге арналған бірнеше сайттар:
-- [Жаттығу](https://exercism.org/tracks)
-- [Codewars](http://www.codewars.com)
-- [Codility](https://codility.com/programmers/)
-- [HackerEarth](https://www.hackerearth.com/)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-- [Codechef](https://www.codechef.com/)
-- [Код күштері](https://codeforces.com/)
-- [Scaler тақырыптары](https://www.scaler.com/topics/)
-
-### Кодтау сұхбаты үшін
-
-Сұхбаттың кодтау бөлігін орындау үшін өзіңізге ыңғайлы тілді пайдалануға болады, бірақ ірі компаниялар үшін бұл дұрыс таңдау:
-
-- C++
-- Java
-- Python
-
-Сіз оларды да пайдалана аласыз, бірақ алдымен оқып шығыңыз. Ескертулер болуы мүмкін:
-
-- JavaScript
-- Рубин
-
-Сұхбат үшін тілді таңдау туралы жазған мақалам:
-[Кодтау сұхбаты үшін бір тілді таңдаңыз](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
-Бұл менің постыма негізделген түпнұсқа мақала: [Сұхбаттар үшін бағдарламалау тілін таңдау](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- жұмыс/)
-
-Сіз тілде өте ыңғайлы және білімді болуыңыз керек.
-- Bul qısqa kitap, biraq ol sizge Sï tilin jaqsı meñgerwge mümkindik beredi jäne eger siz onı azdap üyrenseñiz
- tez şeberlikke ïe bolasız. Sï tüsinw bağdarlamalar men jadtıñ qalay jumıs isteytinin tüsinwge kömektesedi.
- - Kitaptıñ tereñine barwdıñ (tipti onı ayaqtawdıñ) qajeti joq. Sï tilinde oqwğa jäne jazwğa ıñğaylı jerge jetiñiz.
- - [Kitaptağı suraqtarğa jawaptar](https://github.com/lekkas/c-algorithms)
-* Python: Zamanawï jäne öte mänerli, men onı bildim, sebebi bul öte paydalı jäne suxbatta azıraq kod jazwğa mümkindik beredi.
-
-Bul meniñ basımdılığım. Siz öziñizge unaytın närseni jasaysız, ärïne.
-
-Bul sizge qajet bolmawı mümkin, biraq jaña tildi üyrenwge arnalğan birneşe sayttar:
-- [Jattığw](https://exercism.org/tracks)
-- [Codewars](http://www.codewars.com)
-- [Codility](https://codility.com/programmers/)
-- [HackerEarth](https://www.hackerearth.com/)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-- [Codechef](https://www.codechef.com/)
-- [Kod küşteri](https://codeforces.com/)
-- [Scaler taqırıptarı](https://www.scaler.com/topics/)
-
-### Kodtaw suxbatı üşin
-
-Suxbattıñ kodtaw böligin orındaw üşin öziñizge ıñğaylı tildi paydalanwğa boladı, biraq iri kompanïyalar üşin bul durıs tañdaw:
-
-- C++
-- Java
-- Python
-
-Siz olardı da paydalana alasız, biraq aldımen oqıp şığıñız. Eskertwler bolwı mümkin:
-
-- JavaScript
-- Rwbïn
-
-Suxbat üşin tildi tañdaw twralı jazğan maqalam:
-[Kodtaw suxbatı üşin bir tildi tañdañız](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
-Bul meniñ postıma negizdelgen tüpnusqa maqala: [Suxbattar üşin bağdarlamalaw tilin tañdaw](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language- jumıs/)
-
-Siz tilde öte ıñğaylı jäne bilimdi bolwıñız kerek.
-
-
-Таңдау туралы толығырақ оқыңыз:
-- [Кодтау сұхбаты үшін дұрыс тілді таңдаңыз](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-
-[Тілге қатысты ресурстарды осы жерден қараңыз](programming-language-resources.md)
-
-## Деректер құрылымдары мен алгоритмдерге арналған кітаптар
-
-Бұл кітап сіздің информатика ғылымының негізін қалады.
-
-Сізге ыңғайлы тілде біреуін ғана таңдаңыз. Сіз көп оқумен және кодтаумен айналысатын боласыз.
-
-### C
-
-- [C тіліндегі алгоритмдер, 1-5 бөліктері (бума), 3-ші басылым](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- - Негіздер, деректер құрылымдары, сұрыптау, іздеу және графикалық алгоритмдер
-
-### Python
-
-- [Python тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - Гудрих, Тамассия, Голдвассер
- - Маған бұл кітап ұнады. Ол барлығын және т.б. қамтыды.
- - Питоникалық код
- - менің жарқыраған кітабым туралы есеп: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-
-### Java
-
-Сенің таңдауың:
-
-- Гудрих, Тамассия, Голдвассер
- - [Java тіліндегі деректер құрылымдары мен алгоритмдері](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
-- Седжвик пен Уэйн:
- - [Алгоритмдер](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - Кітапты қамтитын тегін Coursera курсы (авторлар үйретеді!):
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- - [Алгоритмдер II](https://www.coursera.org/learn/algorithms-part2)
-
-### C++
-Tañdaw twralı tolığıraq oqıñız:
-- [Kodtaw suxbatı üşin durıs tildi tañdañız](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-
-[Tilge qatıstı reswrstardı osı jerden qarañız](programming-language-resources.md)
-
-## Derekter qurılımdarı men algorïtmderge arnalğan kitaptar
-
-Bul kitap sizdiñ ïnformatïka ğılımınıñ negizin qaladı.
-
-Sizge ıñğaylı tilde birewin ğana tañdañız. Siz köp oqwmen jäne kodtawmen aynalısatın bolasız.
-
-### C
-
-- [C tilindegi algorïtmder, 1-5 bölikteri (bwma), 3-şi basılım](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- - Negizder, derekter qurılımdarı, surıptaw, izdew jäne grafïkalıq algorïtmder
-
-### Python
-
-- [Python tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - Gwdrïx, Tamassïya, Goldvasser
- - Mağan bul kitap unadı. Ol barlığın jäne t.b. qamtıdı.
- - Pïtonïkalıq kod
- - meniñ jarqırağan kitabım twralı esep: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-
-### Java
-
-Seniñ tañdawıñ:
-
-- Gwdrïx, Tamassïya, Goldvasser
- - [Java tilindegi derekter qurılımdarı men algorïtmderi](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
-- Sedjvïk pen Wéyn:
- - [Algorïtmder](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - Kitaptı qamtïtın tegin Coursera kwrsı (avtorlar üyretedi!):
- - [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
- - [Algorïtmder II](https://www.coursera.org/learn/algorithms-part2)
-
-### C++
-
-Сенің таңдауың:
-
-- Гудрих, Тамассия және тау
- - [C++ тіліндегі деректер құрылымдары мен алгоритмдері, 2-ші басылым](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
-- Седжвик пен Уэйн
- - [C++ тіліндегі алгоритмдер, 1-4 бөлімдер: негіздері, деректер құрылымы, сұрыптау, іздеу](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
- - [C++ тіліндегі алгоритмдер 5-бөлім: Графикалық алгоритмдер](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-
-## Сұхбатқа дайындық кітаптары
-
-Сізге бұлардың жиынтығын сатып алудың қажеті жоқ. Шынымды айтсам, «кодтау сұхбатын бұзу» жеткілікті шығар,
-бірақ мен өзіме көбірек тәжірибе беру үшін көбірек сатып алдым. Бірақ мен әрқашан тым көп істеймін.
-
-Мен бұл екеуін де сатып алдым. Олар маған көп тәжірибе берді.
-
-- [Ашық болған сұхбаттарды бағдарламалау: сұхбат арқылы жолыңызды кодтау, 4-ші басылым](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - C++ және Java тілінде жауаптар
- - Бұл кодтау сұхбатын бұзу үшін жақсы қыздыру
- - Өте қиын емес. Көптеген мәселелер сұхбатта көретіннен оңай болуы мүмкін (мен оқығанымнан)
-- [Кодтау сұхбатын бұзу, 6-шы басылым](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Java тілінде жауаптар
-
-### Егер сізде қосымша уақыт болса:
-
-Біреуін таңдаңыз:
-
-- [Бағдарламалау сұхбаттарының элементтері (C++ нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [Python тіліндегі сұхбаттарды бағдарламалау элементтері](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
-- [Бағдарламалау сұхбаттарының элементтері (Java нұсқасы)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
-Seniñ tañdawıñ:
-
-- Gwdrïx, Tamassïya jäne taw
- - [C++ tilindegi derekter qurılımdarı men algorïtmderi, 2-şi basılım](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
-- Sedjvïk pen Wéyn
- - [C++ tilindegi algorïtmder, 1-4 bölimder: negizderi, derekter qurılımı, surıptaw, izdew](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
- - [C++ tilindegi algorïtmder 5-bölim: Grafïkalıq algorïtmder](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-
-## Suxbatqa dayındıq kitaptarı
-
-Sizge bulardıñ jïıntığın satıp alwdıñ qajeti joq. Şınımdı aytsam, «kodtaw suxbatın buzw» jetkilikti şığar,
-biraq men özime köbirek täjirïbe berw üşin köbirek satıp aldım. Biraq men ärqaşan tım köp isteymin.
-
-Men bul ekewin de satıp aldım. Olar mağan köp täjirïbe berdi.
-
-- [Aşıq bolğan suxbattardı bağdarlamalaw: suxbat arqılı jolıñızdı kodtaw, 4-şi basılım](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- - C++ jäne Java tilinde jawaptar
- - Bul kodtaw suxbatın buzw üşin jaqsı qızdırw
- - Öte qïın emes. Köptegen mäseleler suxbatta köretinnen oñay bolwı mümkin (men oqığanımnan)
-- [Kodtaw suxbatın buzw, 6-şı basılım](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - Java tilinde jawaptar
-
-### Eger sizde qosımşa waqıt bolsa:
-
-Birewin tañdañız:
-
-- [Bağdarlamalaw suxbattarınıñ élementteri (C++ nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [Python tilindegi suxbattardı bağdarlamalaw élementteri](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
-- [Bağdarlamalaw suxbattarınıñ élementteri (Java nusqası)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
-
-- [Компаньон жобасы - Кітаптағы әрбір мәселеге арналған әдістемелер мен сынақ жағдайлары](https://github.com/gardncl/elements-of-programming-interviews)
-
-## Менің қателіктерімді жасама
-
-Бұл тізім бірнеше ай бойы өсті және иә, ол бақылаудан шықты.
-
-Сізге жақсырақ тәжірибе алу үшін мен бірнеше қателіктер жібердім. Ал сіз айлар уақытыңызды үнемдейсіз.
-
-### 1. Сіз мұның бәрін есте сақтамайсыз
-
-Мен бірнеше сағат бейнелерді көрдім және көптеген жазбалар алдым, ал бірнеше ай өткен соң есімде жоқ көп нәрсе болды. Мен 3 күн жүрдім
-Жазбаларым арқылы және флешкарталар жасау арқылы, мен қарап шығу үшін. Маған бұл білімнің бәрі қажет емес еді.
-
-Менің қателіктерімді жібермеу үшін оқыңыз:
-
-[Информатика білімін сақтау](https://startupnextdoor.com/retaining-computer-science-knowledge/).
-
-### 2. Flashcards пайдаланыңыз
-
-Мәселені шешу үшін мен шағын флэшкарталар сайтын жасадым, онда мен 2 түрдегі флэшкарталарды қоса аламын: жалпы және код.
-Әр картаның пішімі әртүрлі. Мен қай жерде болсам да, телефонда немесе планшетте қарап шығу үшін мобильді веб-сайт жасадым.
-
-Өзіңізді тегін жасаңыз:
-
-- [Flashcards сайтының репосы](https://github.com/jwasham/computer-science-flash-cards)
-
-**Флешкарталарымды пайдалануды ұсынбаймын.** Олардың саны тым көп және олардың көпшілігі сізге қажет емес ұсақ-түйектер.
-
-Бірақ мені тыңдағың келмесе, мынаны айтасың:
-- [Менің флэш карталарымның дерекқорым (1200 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [Менің флэш карталарымның дерекқорым (экстремалды - 1800 карта)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-- [Kompanon jobası - Kitaptağı ärbir mäselege arnalğan ädistemeler men sınaq jağdayları](https://github.com/gardncl/elements-of-programming-interviews)
-
-## Meniñ qatelikterimdi jasama
-
-Bul tizim birneşe ay boyı östi jäne ïä, ol baqılawdan şıqtı.
-
-Sizge jaqsıraq täjirïbe alw üşin men birneşe qatelikter jiberdim. Al siz aylar waqıtıñızdı ünemdeysiz.
-
-### 1. Siz munıñ bärin este saqtamaysız
-
-Men birneşe sağat beynelerdi kördim jäne köptegen jazbalar aldım, al birneşe ay ötken soñ esimde joq köp närse boldı. Men 3 kün jürdim
-Jazbalarım arqılı jäne fleşkartalar jasaw arqılı, men qarap şığw üşin. Mağan bul bilimniñ bäri qajet emes edi.
-
-Meniñ qatelikterimdi jibermew üşin oqıñız:
-
-[Ïnformatïka bilimin saqtaw](https://startupnextdoor.com/retaining-computer-science-knowledge/).
-
-### 2. Flashcards paydalanıñız
-
-Mäseleni şeşw üşin men şağın fléşkartalar saytın jasadım, onda men 2 türdegi fléşkartalardı qosa alamın: jalpı jäne kod.
-Är kartanıñ pişimi ärtürli. Men qay jerde bolsam da, telefonda nemese planşette qarap şığw üşin mobïldi veb-sayt jasadım.
-
-Öziñizdi tegin jasañız:
-
-- [Flashcards saytınıñ reposı](https://github.com/jwasham/computer-science-flash-cards)
-
-**Fleşkartalarımdı paydalanwdı usınbaymın.** Olardıñ sanı tım köp jäne olardıñ köpşiligi sizge qajet emes usaq-tüyekter.
-
-Biraq meni tıñdağıñ kelmese, mınanı aytasıñ:
-- [Meniñ fléş kartalarımnıñ derekqorım (1200 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [Meniñ fléş kartalarımnıñ derekqorım (ékstremaldı - 1800 karta)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-
-Есіңізде болсын, мен шектен шығып кеттім және ассемблер тілі мен Python тривиасынан бастап машиналық оқыту мен статистикаға дейін барлығын қамтитын карталарым бар.
-Бұл талап етілетін нәрсе үшін тым көп.
-
-**Флешкарталар туралы ескертпе:** Жауапты білетіндігіңізді бірінші рет танысаңыз, оны белгілі деп белгілемеңіз. Сіз көруіңіз керек
-сол картаны және оны шынымен білмей тұрып, оған бірнеше рет дұрыс жауап беріңіз. Қайталау бұл білімді тереңдетеді
-сіздің миыңыз.
-
-Менің флэшкарта сайтымды пайдаланудың баламасы [Anki](http://ankisrs.net/), ол маған бірнеше рет ұсынылды.
-Ол есте сақтауға көмектесу үшін қайталау жүйесін пайдаланады. Бұл пайдаланушыға ыңғайлы, барлық платформаларда қол жетімді және бұлтты синхрондау жүйесі бар.
-Оның құны iOS жүйесінде $25, бірақ басқа платформаларда тегін.
-
-Anki пішіміндегі флэшкарта дерекқорым: https://ankiweb.net/shared/info/25173560 (рахмет [@xiewenya](https://github.com/xiewenya)).
-
-Кейбір студенттер бос орынмен пішімдеу мәселелерін атап өтті, оларды келесі әрекеттерді орындау арқылы шешуге болады: палубаны ашу, картаны өңдеу, карталарды басу, «стильдеу» радио түймешігін таңдау, «ақ кеңістік: pre;» мүшесін қосу. карта класына.
-
-### 3. Оқу барысында сұхбат сұрақтарын кодтаңыз
-
-БҰЛ ӨТЕ МАҢЫЗДЫ.
-
-Деректер құрылымдары мен алгоритмдерін үйрену кезінде сұхбат сұрақтарын кодтауды бастаңыз.
-
-Сіз үйреніп жатқан нәрсені мәселелерді шешуге қолдануыңыз керек, әйтпесе ұмытып кетесіз. Мен бұл қателік жасадым.
-
-Тақырыпты біліп болғаннан кейін және онымен өзіңізді біршама ыңғайлы сезінесіз, мысалы, **байланысты тізімдер**:
-1. [кодтау сұхбат кітаптарының] (#interview-prep-books) бірін ашыңыз (немесе төменде берілген кодтау мәселесіне арналған веб-сайттар)
-1. Байланыстырылған тізімдерге қатысты 2 немесе 3 сұрақ қойыңыз.
-1. Келесі оқу тақырыбына көшу.
-1. Кейінірек кері оралып, басқа 2 немесе 3 байланыстырылған тізім мәселесін орындаңыз.
-1. Мұны әрбір жаңа тақырыпты үйренген сайын орындаңыз.
-
-**Мәселелерді кейін емес, осының бәрін үйреніп жатқанда жасай беріңіз.**
-
-Сіз білім үшін емес, білімді қалай қолданасыз.
-
-Бұл үшін төменде келтірілген көптеген ресурстар бар. Жалғастыру.
-
-### 4. Фокус
-
-Қымбат уақытты алатын көптеген алаңдаушылықтар бар. Фокус пен шоғырлану қиын. Музыканы қосыңыз
-мәтінсіз және сіз өте жақсы назар аудара аласыз.
-
-## Нені көрмейсіз
-
-Бұл кең таралған технологиялар, бірақ осы зерттеу жоспарының бөлігі емес:
-
-- SQL
-- Javascript
-- HTML, CSS және басқа интерфейстік технологиялар
-
-## Күнделікті жоспар
-
-Бұл курс көптеген тақырыптарды қамтиды. Олардың әрқайсысы сізге бірнеше күн немесе тіпті бір апта немесе одан да көп уақытты алады. Бұл сіздің кестеңізге байланысты.
-
-Күн сайын тізімдегі келесі тақырыпты алыңыз, сол тақырып бойынша бірнеше бейнелерді қараңыз, содан кейін іске асыруды жазыңыз
-осы курс үшін таңдаған тілдегі деректер құрылымы немесе алгоритм.
-Esiñizde bolsın, men şekten şığıp kettim jäne assembler tili men Python trïvïasınan bastap maşïnalıq oqıtw men statïstïkağa deyin barlığın qamtïtın kartalarım bar.
-Bul talap etiletin närse üşin tım köp.
-
-**Fleşkartalar twralı eskertpe:** Jawaptı biletindigiñizdi birinşi ret tanısañız, onı belgili dep belgilemeñiz. Siz körwiñiz kerek
-sol kartanı jäne onı şınımen bilmey turıp, oğan birneşe ret durıs jawap beriñiz. Qaytalaw bul bilimdi tereñdetedi
-sizdiñ mïıñız.
-
-Meniñ fléşkarta saytımdı paydalanwdıñ balaması [Anki](http://ankisrs.net/), ol mağan birneşe ret usınıldı.
-Ol este saqtawğa kömektesw üşin qaytalaw jüyesin paydalanadı. Bul paydalanwşığa ıñğaylı, barlıq platformalarda qol jetimdi jäne bulttı sïnxrondaw jüyesi bar.
-Onıñ qunı iOS jüyesinde $25, biraq basqa platformalarda tegin.
-
-Anki pişimindegi fléşkarta derekqorım: https://ankiweb.net/shared/info/25173560 (raxmet [@xiewenya](https://github.com/xiewenya)).
-
-Keybir stwdentter bos orınmen pişimdew mäselelerin atap ötti, olardı kelesi äreketterdi orındaw arqılı şeşwge boladı: palwbanı aşw, kartanı öñdew, kartalardı basw, «stïldew» radïo tüymeşigin tañdaw, «aq keñistik: pre;» müşesin qosw. karta klasına.
-
-### 3. Oqw barısında suxbat suraqtarın kodtañız
-
-BUL ÖTE MAÑIZDI.
-
-Derekter qurılımdarı men algorïtmderin üyrenw kezinde suxbat suraqtarın kodtawdı bastañız.
-
-Siz üyrenip jatqan närseni mäselelerdi şeşwge qoldanwıñız kerek, äytpese umıtıp ketesiz. Men bul qatelik jasadım.
-
-Taqırıptı bilip bolğannan keyin jäne onımen öziñizdi birşama ıñğaylı sezinesiz, mısalı, **baylanıstı tizimder**:
-1. [kodtaw suxbat kitaptarınıñ] (#interview-prep-books) birin aşıñız (nemese tömende berilgen kodtaw mäselesine arnalğan veb-sayttar)
-1. Baylanıstırılğan tizimderge qatıstı 2 nemese 3 suraq qoyıñız.
-1. Kelesi oqw taqırıbına köşw.
-1. Keyinirek keri oralıp, basqa 2 nemese 3 baylanıstırılğan tizim mäselesin orındañız.
-1. Munı ärbir jaña taqırıptı üyrengen sayın orındañız.
-
-**Mäselelerdi keyin emes, osınıñ bärin üyrenip jatqanda jasay beriñiz.**
-
-Siz bilim üşin emes, bilimdi qalay qoldanasız.
-
-Bul üşin tömende keltirilgen köptegen reswrstar bar. Jalğastırw.
-
-### 4. Fokws
-
-Qımbat waqıttı alatın köptegen alañdawşılıqtar bar. Fokws pen şoğırlanw qïın. Mwzıkanı qosıñız
-mätinsiz jäne siz öte jaqsı nazar awdara alasız.
-
-## Neni körmeysiz
-
-Bul keñ taralğan texnologïyalar, biraq osı zerttew josparınıñ böligi emes:
-
-- SQL
-- Javascript
-- HTML, CSS jäne basqa ïnterfeystik texnologïyalar
-
-## Kündelikti jospar
-
-Bul kwrs köptegen taqırıptardı qamtïdı. Olardıñ ärqaysısı sizge birneşe kün nemese tipti bir apta nemese odan da köp waqıttı aladı. Bul sizdiñ kesteñizge baylanıstı.
-
-Kün sayın tizimdegi kelesi taqırıptı alıñız, sol taqırıp boyınşa birneşe beynelerdi qarañız, sodan keyin iske asırwdı jazıñız
-osı kwrs üşin tañdağan tildegi derekter qurılımı nemese algorïtm.
-
-- ### Хэш кестесі
- - [ ] Бейнелер:
- - [ ] [Тізбекпен хэштеу (бейне)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [Кестені еселеу, Карп-Рабин (бейне)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Ашық адрестеу, криптографиялық хэштеу (бейне)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: Құдіретті сөздік (бейне)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [PyCon 2017: The Dictionary Even Mightier (бейне)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- - [ ] [(Жетілдірілген) рандомизация: әмбебап және тамаша хэштеу (бейне)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(Жетілдірілген) Керемет хэштеу (бейне)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
-
- - [ ] Онлайн курстар:
- - [ ] [Негізгі хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- - [ ] [Дерек құрылымдары (бейне)](https://www.coursera.org/learn/data-structures/home/week/4)
- - [ ] [Телефон кітапшасының мәселесі (бейне)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- - [ ] таратылған хэш кестелері:
- - [Dropbox жүйесінде жылдам жүктеп салулар және жадты оңтайландыру (бейне)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
- - [Таратылған хэш кестелері (бейне)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
-
- - [ ] Сызықтық зондтау арқылы массивпен орындаңыз
- - хэш(k, m) - m хэш кестесінің өлшемі
- - қосу(кілт, мән) - кілт бұрыннан бар болса, мәнді жаңартыңыз
- - бар (кілт)
- - алу (кілт)
- - жою (кілт)
-- ### Xéş kestesi
- - [ ] Beyneler:
- - [ ] [Tizbekpen xéştew (beyne)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [Kesteni eselew, Karp-Rabïn (beyne)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Aşıq adrestew, krïptografïyalıq xéştew (beyne)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: Qudiretti sözdik (beyne)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [PyCon 2017: The Dictionary Even Mightier (beyne)](https://www.youtube.com/watch?v=66P5FMkWoVU)
- - [ ] [(Jetildirilgen) randomïzacïya: ämbebap jäne tamaşa xéştew (beyne)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(Jetildirilgen) Keremet xéştew (beyne)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
-
- - [ ] Onlayn kwrstar:
- - [ ] [Negizgi xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
- - [ ] [Derek qurılımdarı (beyne)](https://www.coursera.org/learn/data-structures/home/week/4)
- - [ ] [Telefon kitapşasınıñ mäselesi (beyne)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
- - [ ] taratılğan xéş kesteleri:
- - [Dropbox jüyesinde jıldam jüktep salwlar jäne jadtı oñtaylandırw (beyne)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
- - [Taratılğan xéş kesteleri (beyne)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
-
- - [ ] Sızıqtıq zondtaw arqılı massïvpen orındañız
- - xéş(k, m) - m xéş kestesiniñ ölşemi
- - qosw(kilt, män) - kilt burınnan bar bolsa, mändi jañartıñız
- - bar (kilt)
- - alw (kilt)
- - joyu (kilt)
-
-- ### Хабар алмасу, сериялау және кезекке қою жүйелері
- - [Үнемдеу](https://thrift.apache.org/)
- - [Оқулық](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
- - [Протокол буферлері](https://developers.google.com/protocol-buffers/)
- - [Оқулықтар](https://developers.google.com/protocol-buffers/docs/tutorials)
- - [gRPC](http://www.grpc.io/)
- - [Java әзірлеушілеріне арналған gRPC 101 (бейне)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
- - [Redis](http://redis.io/)
- - [Оқулық](http://try.redis.io/)
- - [Amazon SQS (кезек)](https://aws.amazon.com/sqs/)
- - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
- - [RabbitMQ](https://www.rabbitmq.com/)
- - [Бастау](https://www.rabbitmq.com/getstarted.html)
- - [Сельдерей](http://www.celeryproject.org/)
- - [Сельдереймен алғашқы қадамдар](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
- - [ZeroMQ](http://zeromq.org/)
- - [Кіріспе - Нұсқаулықты оқу](http://zeromq.org/intro:read-the-manual)
- - [ActiveMQ](http://activemq.apache.org/)
- - [Кафка](http://kafka.apache.org/documentation.html#introduction)
- - [MessagePack](http://msgpack.org/index.html)
- - [Avro](https://avro.apache.org/)
-
-- ### A*
- - [Іздеу алгоритмі](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [A* Жолды табу (E01: алгоритмді түсіндіру) (бейне)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
-
-- ### Жылдам Фурье түрлендіруі
- - [Фурье түрлендіруіне арналған интерактивті нұсқаулық](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- - [Фурье түрлендіруі дегеніміз не? Ол не үшін қолданылады?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [Фурье түрлендіруі дегеніміз не? (бейне)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [Бөліңіз және жеңіңіз: FFT (бейне)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- - [ФФТ-ны түсіну](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
-
-- ### Блум сүзгісі
- - m бит және k хэштеу функциялары бар Блум сүзгісін ескере отырып, кірістіру және мүшелік сынағы O(k) болып табылады.
- - [Блум сүзгілері (бейне)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
- - [Блум сүзгілері | Жаппай деректер жиынын өндіру | Стэнфорд университеті (бейне)](https://www.youtube.com/watch?v=qBTdukbzc78)
- - [Оқулық](http://billmill.org/bloomfilter-tutorial/)
- - [Блум сүзгісі қолданбасын қалай жазуға болады](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
-- ### Xabar almasw, serïyalaw jäne kezekke qoyu jüyeleri
- - [Ünemdew](https://thrift.apache.org/)
- - [Oqwlıq](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
- - [Protokol bwferleri](https://developers.google.com/protocol-buffers/)
- - [Oqwlıqtar](https://developers.google.com/protocol-buffers/docs/tutorials)
- - [gRPC](http://www.grpc.io/)
- - [Java äzirlewşilerine arnalğan gRPC 101 (beyne)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9n_dieN0k1nSeN36Z_ppKnvMJoly&index=1)
- - [Redis](http://redis.io/)
- - [Oqwlıq](http://try.redis.io/)
- - [Amazon SQS (kezek)](https://aws.amazon.com/sqs/)
- - [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
- - [RabbitMQ](https://www.rabbitmq.com/)
- - [Bastaw](https://www.rabbitmq.com/getstarted.html)
- - [Selderey](http://www.celeryproject.org/)
- - [Seldereymen alğaşqı qadamdar](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-cellery.html)
- - [ZeroMQ](http://zeromq.org/)
- - [Kirispe - Nusqawlıqtı oqw](http://zeromq.org/intro:read-the-manual)
- - [ActiveMQ](http://activemq.apache.org/)
- - [Kafka](http://kafka.apache.org/documentation.html#introduction)
- - [MessagePack](http://msgpack.org/index.html)
- - [Avro](https://avro.apache.org/)
-
-- ### A*
- - [Izdew algorïtmi](https://en.wikipedia.org/wiki/A*_search_algorithm)
- - [A* Joldı tabw (E01: algorïtmdi tüsindirw) (beyne)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
-
-- ### Jıldam Fwre türlendirwi
- - [Fwre türlendirwine arnalğan ïnteraktïvti nusqawlıq](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
- - [Fwre türlendirwi degenimiz ne? Ol ne üşin qoldanıladı?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
- - [Fwre türlendirwi degenimiz ne? (beyne)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
- - [Böliñiz jäne jeñiñiz: FFT (beyne)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
- - [FFT-nı tüsinw](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
-
-- ### Blwm süzgisi
- - m bït jäne k xéştew fwnkcïyaları bar Blwm süzgisin eskere otırıp, kiristirw jäne müşelik sınağı O(k) bolıp tabıladı.
- - [Blwm süzgileri (beyne)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
- - [Blwm süzgileri | Jappay derekter jïının öndirw | Sténford wnïversïteti (beyne)](https://www.youtube.com/watch?v=qBTdukbzc78)
- - [Oqwlıq](http://billmill.org/bloomfilter-tutorial/)
- - [Blwm süzgisi qoldanbasın qalay jazwğa boladı](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
-
-- [Сарада Херкенің графикалық теориясы (67 бейне)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
-
-## Информатика курстары
-
-- [Онлайн CS курстары каталогы](https://github.com/open-source-society/computer-science)
-- [CS курстарының каталогы (көптеген онлайн дәрістер бар)](https://github.com/prakhar1989/awesome-courses)
-
-## Алгоритмдерді енгізу
-
-- [Принстон университетінің бірнеше алгоритмдерді енгізуі](https://algs4.cs.princeton.edu/code)
-
-
-## Қағаздар
-
-- [Классикалық қағаздарды ұнатасыз ба?](https://www.cs.cmu.edu/~crary/819-f09/)
-- [1978: Тізбекті процестермен байланысу](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [Go жүйесінде жүзеге асырылды](https://godoc.org/github.com/thomas11/csp)
-- [2003: Google файлдық жүйесі](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - 2012 жылы Колосспен ауыстырылды
-- [2004: MapReduce: Үлкен кластерлерде оңайлатылған деректерді өңдеу]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - негізінен Cloud Dataflow ауыстырылды ма?
-- [2006: Bigtable: құрылымдық деректерге арналған таратылған сақтау жүйесі](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
-- [2006: Біріктірілген таратылған жүйелерге арналған Chubby Lock қызметі](https://research.google.com/archive/chubby-osdi06.pdf)
-- [2007: Динамо: Amazon-ның жоғары қолжетімді кілттер дүкені](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- - Динамо қағазы NoSQL революциясын бастады
-- [2007: Әрбір бағдарламашы жад туралы не білуі керек (өте ұзақ және автор кейбір бөлімдерді өткізіп жіберуді ұсынады)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- 2012: AddressSanitizer: жылдам мекенжай санитарлық тексерушісі:
- - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [бейне](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
-- 2013: Spanner: Google-дың ғаламдық таралған дерекқоры:
- - [қағаз](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [бейне](https://www.usenix.org/node/170855)
-- [2015: Google-дағы үздіксіз құбырлар](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
-- [2015: Жаппай ауқымда жоғары қолжетімділік: Google-дың жарнамалар үшін деректер инфрақұрылымын құру](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: Әзірлеушілер кодты қалай іздейді: жағдайды зерттеу](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
-- Қосымша қағаздар: [1000 қағаз](https://github.com/0voice/computer_expert_paper)
-
-## ЛИЦЕНЗИЯ
-
-[CC-BY-SA-4.0](./LICENSE.txt)
-- [Sarada Xerkeniñ grafïkalıq teorïyası (67 beyne)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelf_id=5&view=50&sort=dd)
-
-## Ïnformatïka kwrstarı
-
-- [Onlayn CS kwrstarı katalogı](https://github.com/open-source-society/computer-science)
-- [CS kwrstarınıñ katalogı (köptegen onlayn därister bar)](https://github.com/prakhar1989/awesome-courses)
-
-## Algorïtmderdi engizw
-
-- [Prïnston wnïversïtetiniñ birneşe algorïtmderdi engizwi](https://algs4.cs.princeton.edu/code)
-
-
-## Qağazdar
-
-- [Klassïkalıq qağazdardı unatasız ba?](https://www.cs.cmu.edu/~crary/819-f09/)
-- [1978: Tizbekti procestermen baylanısw](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [Go jüyesinde jüzege asırıldı](https://godoc.org/github.com/thomas11/csp)
-- [2003: Google fayldıq jüyesi](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - 2012 jılı Kolosspen awıstırıldı
-- [2004: MapReduce: Ülken klasterlerde oñaylatılğan derekterdi öñdew]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - negizinen Cloud Dataflow awıstırıldı ma?
-- [2006: Bigtable: qurılımdıq derekterge arnalğan taratılğan saqtaw jüyesi](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
-- [2006: Biriktirilgen taratılğan jüyelerge arnalğan Chubby Lock qızmeti](https://research.google.com/archive/chubby-osdi06.pdf)
-- [2007: Dïnamo: Amazon-nıñ joğarı qoljetimdi kiltter dükeni](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- - Dïnamo qağazı NoSQL revolyucïyasın bastadı
-- [2007: Ärbir bağdarlamaşı jad twralı ne bilwi kerek (öte uzaq jäne avtor keybir bölimderdi ötkizip jiberwdi usınadı)](https://www.akkadia.org/drepper/cpumemory.pdf)
-- 2012: AddressSanitizer: jıldam mekenjay sanïtarlıq tekserwşisi:
- - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [beyne](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
-- 2013: Spanner: Google-dıñ ğalamdıq taralğan derekqorı:
- - [qağaz](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [beyne](https://www.usenix.org/node/170855)
-- [2015: Google-dağı üzdiksiz qubırlar](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
-- [2015: Jappay awqımda joğarı qoljetimdilik: Google-dıñ jarnamalar üşin derekter ïnfraqurılımın qurw](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
-- [2015: Äzirlewşiler kodtı qalay izdeydi: jağdaydı zerttew](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
-- Qosımşa qağazdar: [1000 qağaz](https://github.com/0voice/computer_expert_paper)
-
-## LÏCENZÏYa
-
-[CC-BY-SA-4.0](./LICENSE.txt)
diff --git a/README_DUTCH.md b/translations/README-nl.md
similarity index 100%
rename from README_DUTCH.md
rename to translations/README-nl.md
From c70402ec56a754d1412a4aa4c09bda3d74e561cc Mon Sep 17 00:00:00 2001
From: abhijeetsatpute
Date: Sun, 28 Apr 2024 06:42:26 +0530
Subject: [PATCH 151/173] Delete README-bu.md
---
translations/README-bu.md | 106 --------------------------------------
1 file changed, 106 deletions(-)
delete mode 100644 translations/README-bu.md
diff --git a/translations/README-bu.md b/translations/README-bu.md
deleted file mode 100644
index 63f499b8af..0000000000
--- a/translations/README-bu.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# Кодиране Интервю университет
-
-> Първоначално създадох това като кратък списък с учебни теми за ставане на софтуерен инженер,
-> но той се разрасна до големия списък, който виждате днес. След като преминах през този учебен план, [ме наеха на работа
-> като инженер по разработка на софтуер в Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
-> Вероятно няма да ви се наложи да учите толкова много, колкото на мен. Така или иначе, всичко, от което се нуждаете, е тук.
->
-> Учех по около 8-12 часа на ден в продължение на няколко месеца. Това е моята история: [Защо учих 8 месеца на пълен работен ден за интервю в Google](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
->
-> **Забележете:** Няма да ви се наложи да учите толкова много, колкото на мен. Изгубих много време за неща, които не трябваше да знам. Повече информация за това ще намерите по-долу. Ще ви помогна да стигнете дотам, без да губите ценното си време.
->
-> Изброените тук елементи ще ви подготвят добре за техническо интервю в почти всяка софтуерна компания,
-> включително гигантите: Amazon, Facebook, Google и Microsoft.
->
-> *Най-добър късмет за вас!*
-
-
-Преводи:
-
-- [中文版本](translations/README-cn.md)
-- [Tiếng Việt - Виетнамски](translations/README-vi.md)
-- [Español](translations/README-es.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Полски](translations/README-pl.md)
-- [繁體中文](translations/README-tw.md)
-- [Японски (日本語)](translations/README-ja.md)
-- [Руски](translations/README-ru.md)
-- [Немски](translations/README-de.md)
-- [Bahasa Indonesia](translations/README-id.md)
-- [ខ្មែរ - Кхмер](translations/README-kh.md)
-- [узбекски](translations/README-uz.md)
-- [Български](translations/README-bg.md)
-- [বাংলা - Bangla](translations/README-bn.md)
-
-
-
-
-Преводите в процес на изпълнение:
-
-- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
-- [арабски](https://github.com/jwasham/coding-interview-university/issues/98)
-- [турски](https://github.com/jwasham/coding-interview-university/issues/90)
-- [Френски](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
-- [Корейски(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Телугу](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Урду](https://github.com/jwasham/coding-interview-university/issues/519)
-- [Тайландски](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Гръцки](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Малаялам](https://github.com/jwasham/coding-interview-university/issues/239)
-- [персийски - фарси](https://github.com/jwasham/coding-interview-university/issues/186)
-- [африканс](https://github.com/jwasham/coding-interview-university/issues/1164)
-
-
-
-
-
-## What is it?
-
-
-
-This is my multi-month study plan for becoming a software engineer for a large company.
-
-**Required:**
-* A little experience with coding (variables, loops, methods/functions, etc)
-* Patience
-* Time
-
-Note this is a study plan for **software engineering**, not web development. Large software companies like Google, Amazon,
-Facebook and Microsoft view software engineering as different from web development. For example, Amazon has
-Frontend Engineers (FEE) and Software Development Engineers (SDE). These are 2 separate roles and the interviews for
-them will not be the same, as each has its own competencies. These companies require computer science knowledge for
-software development/engineering roles.
-
----
-
-## Table of Contents
-
-### The Study Plan
-
-- [Какво е това?] (#what-is
\ No newline at end of file
From a0f2dd262583fab8b0857b5cb582c79f59a79958 Mon Sep 17 00:00:00 2001
From: awalrujaa
Date: Mon, 13 May 2024 16:28:49 +0545
Subject: [PATCH 152/173] Added Programiz PRO Community Challenges where you
can practice coding challenges for free
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 644c53da3e..d98ba66927 100644
--- a/README.md
+++ b/README.md
@@ -306,6 +306,7 @@ You may not need it, but here are some sites for learning a new language:
- [Codewars](http://www.codewars.com)
- [HackerEarth](https://www.hackerearth.com/for-developers/)
- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
+- [Programiz PRO Community Challenges)](https://app.programiz.pro/community-challenges)
### For your Coding Interview
From d66e8f3c36435d8eb1205dfaac3ea1a21d71d468 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Mon, 13 May 2024 11:24:01 -0700
Subject: [PATCH 153/173] Updates link.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d98ba66927..b7f93c0b9f 100644
--- a/README.md
+++ b/README.md
@@ -306,7 +306,7 @@ You may not need it, but here are some sites for learning a new language:
- [Codewars](http://www.codewars.com)
- [HackerEarth](https://www.hackerearth.com/for-developers/)
- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
-- [Programiz PRO Community Challenges)](https://app.programiz.pro/community-challenges)
+- [Programiz PRO Community Challenges)](https://programiz.pro/)
### For your Coding Interview
From dc34e01954f1105e70e402525e670305c39edd94 Mon Sep 17 00:00:00 2001
From: hashcookie
Date: Fri, 17 May 2024 17:30:15 +0800
Subject: [PATCH 154/173] docs: Add Programiz PRO Community Challenges to list
of coding platforms
---
translations/README-cn.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index 1d29ed3813..ed67588f09 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -262,6 +262,7 @@
- [Codewars](http://www.codewars.com)
- [HackerEarth](https://www.hackerearth.com/for-developers/)
- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
+- [Programiz PRO Community Challenges)](https://programiz.pro/)
### 对于你的编程面试
From 9f604c6ac4df3d123a8821e006e95ea1d6abb604 Mon Sep 17 00:00:00 2001
From: Vahan Minasian
Date: Mon, 3 Jun 2024 18:59:26 +0400
Subject: [PATCH 155/173] add ukrainian translation
---
translations/README-uk.md | 733 ++++++++++++++++++++------------------
1 file changed, 378 insertions(+), 355 deletions(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 4fba162e4e..4798277fab 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -1,16 +1,18 @@
# Coding Interview University
-Original in [English](README.md)
+Оригінал [англійською](../README.md)
> Спочатку я створив це як короткий список завдань для вивчення тем, щоб стати
-інженером-програмістом, але він збільшився до великого списку, який ви бачите
+інженером програмного забезпечення, але він збільшився до великого списку, який ви бачите
сьогодні. Пройшовши цей навчальний план,
-[мене найняли розробником програмного забезпечення в Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
+[мене найняли розробником програмного забезпечення в Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)! Можливо, вам не доведеться вчитися так багато, як мені. У будь-якому випадку, все, що тобі потрібно, є тут.
>
> Я навчався приблизно 8-12 годин на день, протягом декількох місяців. Це моя
історія:
[Чому я навчався очно протягом 8 місяців для інтерв’ю в Google](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13).
>
+> **Зверніть Увагу:** вам не потрібно буде вчитися так багато, як мені. Я витратив багато часу на речі, які мені не потрібно було знати. Більше інформації про це нижче. Я допоможу вам досягти мети, не витрачаючи ваш дорогоцінний час.
+>
> Перелічені тут ресурси добре підготують вас до технічної співбесіди практично
в будь-якій компанії, включаючи гігантів: Amazon, Facebook, Google та
Microsoft.
@@ -20,37 +22,38 @@ Microsoft.
Переклади:
-- [Bahasa Indonesia](translations/README-id.md)
-- [Bulgarian](translations/README-bg.md)
-- [Español](translations/README-es.md)
-- [German](translations/README-de.md)
-- [Japanese (日本語)](translations/README-ja.md)
-- [Polish](translations/README-pl.md)
-- [Português Brasileiro](translations/README-ptbr.md)
-- [Russian](translations/README-ru.md)
-- [Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [Urdu - اردو](tanslations/README-ur.md)
-- [Uzbek](translations/README-uz.md)
-- [বাংলা - Bangla](translations/README-bn.md)
-- [ខ្មែរ - Khmer](translations/README-kh.md)
-- [简体中文](translations/README-cn.md)
-- [繁體中文](translations/README-tw.md)
+- [Бахаса Індонезія](translations/README-id.md)
+- [Болгарська](translations/README-bg.md)
+- [Іспанська](translations/README-es.md)
+- [Німецька](translations/README-de.md)
+- [Японська (日本語)](translations/README-ja.md)
+- [Маратхі](translations/README-mr.md)
+- [Польська](translations/README-pl.md)
+- [Бразильська португальська](translations/README-ptbr.md)
+- [Російська](translations/README-ru.md)
+- [Tiếng Việt - В'єтнамська](translations/README-vi.md)
+- [Урду - اردو](tanslations/README-ur.md)
+- [Узбецька](translations/README-uz.md)
+- [বাংলা - Бангла](translations/README-bn.md)
+- [ខ្មែរ - Кхмерська](translations/README-kh.md)
+- [简体中文 - Спрощена Китайська](translations/README-cn.md)
+- [繁體中文 - Традиційна Китайська](translations/README-tw.md)
Переклади в процесі:
-- [Afrikaans](https://github.com/jwasham/coding-interview-university/issues/1164)
-- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
-- [French](https://github.com/jwasham/coding-interview-university/issues/89)
-- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
-- [Italian](https://github.com/jwasham/coding-interview-university/issues/1030)
-- [Korean(한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
-- [Malayalam](https://github.com/jwasham/coding-interview-university/issues/239)
-- [Persian - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
-- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
-- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
+- [Африка́анс](https://github.com/jwasham/coding-interview-university/issues/1164)
+- [Арабська](https://github.com/jwasham/coding-interview-university/issues/98)
+- [Французька](https://github.com/jwasham/coding-interview-university/issues/89)
+- [Грецька](https://github.com/jwasham/coding-interview-university/issues/166)
+- [Італійська](https://github.com/jwasham/coding-interview-university/issues/1030)
+- [Корейська (한국어)](https://github.com/jwasham/coding-interview-university/issues/118)
+- [Малайська](https://github.com/jwasham/coding-interview-university/issues/239)
+- [Перська - Farsi](https://github.com/jwasham/coding-interview-university/issues/186)
+- [Телугу](https://github.com/jwasham/coding-interview-university/issues/117)
+- [Тайська](https://github.com/jwasham/coding-interview-university/issues/156)
+- [Турецька](https://github.com/jwasham/coding-interview-university/issues/90)
- [Українська](https://github.com/jwasham/coding-interview-university/issues/106)
- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
@@ -59,470 +62,490 @@ Microsoft.
## Що це?
-Це мій багатомісячний план навчання для переходу від веб-розробника (самоука,
-без ступеня з комп'ютерних наук) до інженера програмного забезпечення для
-великої компанії.
-

-Цей список призначено
-**для піонерів у сфері розробки програмного забезпечення** або
-тих, хто переходить від кодування/веб-розробки до більш архітектурних,
-інженерних рішень (де потрібні знання комп'ютерних наук). Якщо у вас
-багаторічний досвід і ви стверджуєте, що він таким є, очікуйте більш важкого
-інтерв’ю.
+Це мій багатомісячний план навчання, щоб стати інженером програмного забезпечення у великій компанії.
+
+**Необхідно:**
+* Невеликий досвід кодування (змінні, цикли, методи/функції тощо)
+* Терпіння
+* Час
-Також якщо у вас є багаторічний досвід кодування/веб-розробки, зверніть увагу,
-що великі компанії-розробники програмного забезпечення, такі як Google, Amazon,
-Facebook та Microsoft, відрізняють розробку програмного забезпечення
-від веб-розробки, і вони потребують знання комп'ютерних наук.
+Зверніть увагу, що це навчальний план з **інженерії програмного забезпечення**, не фронтенд-разробки чи фуллстек-розробки. Для цих кар'єрних шляхів існують дійсно чудові дорожні карти та курси із завданнями в інших місцях (дивись https://roadmap.sh/ для отримання додаткової інформації).
-Якщо ви хочете бути інженером з надійності або системним інженером, вчіть
-більше за опціональним списком (мережі, безпека).
+На університетській програмі з комп'ютерних наук можна багато чому навчитися, але для проходження співбесіди достатньо знати лише 75%, тож саме про це я розповідаю тут. Для повної програми самонавчання компʼютерним наукам, ресурси для мого навчального плану були включені в дорожню карту курса з комп'ютерних наук Камран Ахмеда: https://roadmap.sh/computer-science.
---
## Зміст
+### Навчальний план
+
- [Що це?](#Що-це)
- [Чому це використовувати?](#Чому-це-використовувати)
- [Як це використовувати](#Як-це-використовувати)
- [Не почувайтесь недостатньо розумними](#Не-почувайтесь-недостатньо-розумними)
-- [Про відео-ресурси](#about-video-resources)
-- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
-- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
-- [Book List](#book-list)
-- [Before you Get Started](#before-you-get-started)
-- [What you Won't See Covered](#what-you-wont-see-covered)
-- [Prerequisite Knowledge](#prerequisite-knowledge)
-- [The Daily Plan](#the-daily-plan)
-- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
-- [Data Structures](#data-structures)
- - [Arrays](#arrays)
- - [Linked Lists](#linked-lists)
- - [Stack](#stack)
- - [Queue](#queue)
- - [Hash table](#hash-table)
-- [More Knowledge](#more-knowledge)
- - [Binary search](#binary-search)
- - [Bitwise operations](#bitwise-operations)
-- [Trees](#trees)
- - [Trees - Notes & Background](#trees---notes--background)
- - [Binary search trees: BSTs](#binary-search-trees-bsts)
- - [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- - balanced search trees (general concept, not details)
- - traversals: preorder, inorder, postorder, BFS, DFS
-- [Sorting](#sorting)
- - selection
- - insertion
- - heapsort
- - quicksort
- - merge sort
-- [Graphs](#graphs)
- - directed
- - undirected
- - adjacency matrix
- - adjacency list
- - traversals: BFS, DFS
-- [Even More Knowledge](#even-more-knowledge)
- - [Recursion](#recursion)
- - [Dynamic Programming](#dynamic-programming)
- - [Object-Oriented Programming](#object-oriented-programming)
- - [Design Patterns](#design-patterns)
- - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- - [Caches](#caches)
- - [Processes and Threads](#processes-and-threads)
- - [Papers](#papers)
- - [Testing](#testing)
- - [Scheduling](#scheduling)
- - [Implement system routines](#implement-system-routines)
- - [String searching & manipulations](#string-searching--manipulations)
- - [Tries](#tries)
- - [Floating Point Numbers](#floating-point-numbers)
- - [Unicode](#unicode)
- - [Endianness](#endianness)
-- [Networking](#networking)
-- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
-- [Final Review](#final-review)
-- [Coding Question Practice](#coding-question-practice)
-- [Coding exercises/challenges](#coding-exerciseschallenges)
-- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
-- [Your Resume](#your-resume)
-- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
-- [Have questions for the interviewer](#have-questions-for-the-interviewer)
-- [Once You've Got The Job](#once-youve-got-the-job)
-
----------------- Everything below this point is optional ----------------
-
-- [Additional Books](#additional-books)
-- [Additional Learning](#additional-learning)
- - [Compilers](#compilers)
- - [Emacs and vi(m)](#emacs-and-vim)
- - [Unix command line tools](#unix-command-line-tools)
- - [Information theory](#information-theory)
- - [Parity & Hamming Code](#parity--hamming-code)
- - [Entropy](#entropy)
- - [Cryptography](#cryptography)
- - [Compression](#compression)
- - [Computer Security](#computer-security)
- - [Garbage collection](#garbage-collection)
- - [Parallel Programming](#parallel-programming)
- - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
+- [Про відео-ресурси](#Про-відеоресурси)
+- [Оберіть мову програмування](#Оберіть-мову-програмування)
+- [Книги про структури даних та алгоритми](#Книги-про-структури-даних-та-алгоритми)
+- [Книги з підготовки до співбесіди](#Книги-з-підготовки-до-співбесіди)
+- [Не робіть моїх помилок](#Не-робіть-моїх-помилок)
+- [Що не буде охоплено](#Що-не-буде-охоплено)
+- [Щоденний план](#Щоденний-план)
+- [Практика з питань кодування](#Практика-з-питань-кодування)
+- [Проблеми кодування](#Проблеми-кодування)
+
+### Теми для вивчення
+
+- [Складність алгоритмів / Big-O / Асимптотичний аналіз](#algorithmic-complexity--big-o--asymptotic-analysis)
+- [Структури даних](#data-structures)
+ - [Масив](#arrays)
+ - [Зв'язаний список](#linked-lists)
+ - [Стек](#stack)
+ - [Черга](#queue)
+ - [Геш-таблиця](#hash-table)
+- [Більше знань](#more-knowledge)
+ - [Двійковий пошук](#binary-search)
+ - [Бітові операції](#bitwise-operations)
+- [Дерева](#trees)
+ - [Дерева - примітки та передумови](#trees---notes--background)
+ - [Бінарні дерева пошуку: BSTs](#binary-search-trees-bsts)
+ - [Купа / Пріоритетна черга / Бінарна купа](#heap--priority-queue--binary-heap)
+ - Збалансовані дерева пошуку (загальна концепція, не деталі)
+ - Обходи: preorder, inorder, postorder, BFS, DFS
+- [Сортування](#sorting)
+ - вибір (selection)
+ - вставка (insertion)
+ - купчасте сортування (heapsort)
+ - швидке сортування (quicksort)
+ - злиття (merge sort)
+- [Графи](#graphs)
+ - спрямовані (directed)
+ - неспрямовані (undirected)
+ - матриця суміжності (adjacency matrix)
+ - список суміжності (adjacency list)
+ - обходи: BFS, DFS (traversals: BFS, DFS)
+- [Ще більше знань](#even-more-knowledge)
+ - [Рекурсія](#recursion)
+ - [Динамічне програмування](#dynamic-programming)
+ - [Шаблони проектування](#design-patterns)
+ - [Комбінаторика (n choose k) та ймовірність](#combinatorics-n-choose-k--probability)
+ - [NP, NP-повні та Апроксимаційні Алгоритми](#np-np-complete-and-approximation-algorithms)
+ - [Як комп'ютери опрацьовують програму](#how-computers-process-a-program)
+ - [Кеші](#caches)
+ - [Процеси та Треди](#processes-and-threads)
+ - [Тестування](#testing)
+ - [Пошук та маніпуляції з рядками](#string-searching--manipulations)
+ - [Спроби](#tries)
+ - [Числа з рухомою комою](#floating-point-numbers)
+ - [Юнікод](#unicode)
+ - [Ендіанність](#endianness)
+ - [Нетворкінг (мережі)](#networking)
+- [Фінальний огляд](#final-review)
+
+### Отримання роботи
+
+- [Оновіть своє резюме](#your-resume)
+- [Знайдіть роботу](#find-a-job)
+- [Процес співбесіди та загальна підготовка до співбесіди](#interview-process--general-interview-prep)
+- [Підготуйтеся до співбесіди](#be-thinking-of-for-when-the-interview-comes)
+- [Підготуйте запитання до інтерв'юера](#have-questions-for-the-interviewer)
+- [Як тільки отримали роботу](#once-youve-got-the-job)
+
+---------------- Все, що нижче цього пункту необов'язково ----------------
+
+- [Додаткові книги](#additional-books)
+- [Проектування систем, Масштабування, Обробка даних](#system-design-scalability-data-handling) (якщо у вас є досвід роботи 4+ років)
+- [Додаткове навчання](#additional-learning)
+ - [Компілятори](#compilers)
+ - [Emacs та vi(m)](#emacs-and-vim)
+ - [Засоби командного рядка Unix (Unix CLI tools)](#unix-command-line-tools)
+ - [Теорія інформації](#information-theory-videos)
+ - [Паритет та код Хеммінга](#parity--hamming-code-videos)
+ - [Ентропія](#entropy)
+ - [Криптографія](#cryptography)
+ - [Стиснення](#compression)
+ - [Комп'ютерна безпека](#computer-security)
+ - [Прибирання сміття](#garbage-collection)
+ - [Паралельне програмування](#parallel-programming)
+ - [Системи Обміну повідомленнями, Серіалізації та Черги](#messaging-serialization-and-queueing-systems)
- [A*](#a)
- - [Fast Fourier Transform](#fast-fourier-transform)
- - [Bloom Filter](#bloom-filter)
+ - [Швидке перетворення Фур'є](#fast-fourier-transform)
+ - [фільтр Блума (Bloom Filter)](#bloom-filter)
- [HyperLogLog](#hyperloglog)
- - [Locality-Sensitive Hashing](#locality-sensitive-hashing)
- - [van Emde Boas Trees](#van-emde-boas-trees)
- - [Augmented Data Structures](#augmented-data-structures)
- - [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees)
- - [Balanced search trees](#balanced-search-trees)
- - AVL trees
- - Splay trees
- - Red/black trees
- - 2-3 search trees
- - 2-3-4 Trees (aka 2-4 trees)
- - N-ary (K-ary, M-ary) trees
- - B-Trees
- - [k-D Trees](#k-d-trees)
- - [Skip lists](#skip-lists)
- - [Network Flows](#network-flows)
- - [Math for Fast Processing](#math-for-fast-processing)
+ - [Локально-чутливе Хешування (Locality-Sensitive Hashing)](#locality-sensitive-hashing)
+ - [Дерева ван Емде Боаса](#van-emde-boas-trees)
+ - [Доповнені (аугментовані) структури даних](#augmented-data-structures)
+ - [N-ary (K-ary, M-ary) дерева](#n-ary-k-ary-m-ary-trees)
+ - [Збалансовані дерева пошуку (Balanced search trees)](#balanced-search-trees)
+ - AVL дерева
+ - Splay дерева
+ - Red/black дерева
+ - 2-3 search дерева
+ - 2-3-4 дерева (aka 2-4 дерева)
+ - N-ary (K-ary, M-ary) дерева
+ - B-дерева
+ - [k-D дерева](#k-d-trees)
+ - [Списки пропуску (Skip lists)](#skip-lists)
+ - [Мережеві потоки](#network-flows)
+ - [Математика для Швидкої Обробки](#math-for-fast-processing)
- [Treap](#treap)
- - [Linear Programming](#linear-programming)
- - [Geometry, Convex hull](#geometry-convex-hull)
- - [Discrete math](#discrete-math)
- - [Machine Learning](#machine-learning)
-- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
-- [Video Series](#video-series)
-- [Computer Science Courses](#computer-science-courses)
+ - [Лінійне програмування](#linear-programming-videos)
+ - [Геометрія, Випуклий корпус](#geometry-convex-hull-videos)
+ - [Дискретна математика](#discrete-math)
+- [Додаткова інформація про деякі теми](#additional-detail-on-some-subjects)
+- [Відео](#video-series)
+- [Курси комп'ютерних наук](#computer-science-courses)
+- [Статті](#papers)
---
## Чому це використовувати?
-Я слідую цьому плану, аби підготуватись до мого інтерв'ю в Google. Я займався веб-розробкою, створенням сервісів та запуском стартапів з 1997. У мене економічна освіта, не комп'ютерна.
-Я досяг успіху в своїй кар'єрі, але я хочу працювати в Google. Я хочу розвиватись, досліджувати більші системи та отримати реальне розуміння комп'ютерних систем, ефективності алгоритмів та структур даних, низько-рівневих мов, і як це все працює. І якщо ви не знаєте чогось з цього списку, Google не найме вас.
+Якщо ви хочете працювати інженером програмного забезпечення у великій компанії, це те, що вам потрібно знати.
+
+Якщо ви, як і я, не встигли отримати ступінь з комп'ютерних наук, цей курс допоможе вам надолужити згаяне і заощадити чотири роки вашого життя.
-Коли я розпочинав цей проект, я не міг відрізнити стек від купи, нічого не знав про Big-O, дерева, або як розглянути граф. Якби мені тоді довелось написати алгоритм сортування, то легко можу вас запевнити - він не був би найкращим.
-Всі структури даних, які я колись використовував, були вже вбудовані в мову програмування, а я навіть не знав, як вони працюють "під капотом". Мені ніколи не доводилось розбиратись з пам'яттю, окрім випадків, коли я отримував "OutOfMemoryException", тоді мені доводилось шукати вихід з ситуації.
-Я використовував кілька багатовимірних масивів та тисячі звичайних масивів, проте я ніколи не створював структури даних з нуля.
+Коли я починав цей проект, я не знав, як відрізнити стек від купи, не знав нічого про Big-O, або про дерева, або про те, як обходити граф. Якби мені довелося писати алгоритм сортування, можу сказати, що він був би жахливим. Кожна структура даних, яку я коли-небудь використовував, була вбудована в мову, і я взагалі не знав, як вони працюють під капотом. Мені ніколи не доводилося керувати пам'яттю, хіба що процес, який я запускав, видавав помилку «не вистачило пам'яті», і тоді мені доводилося шукати обхідний шлях. У своєму житті я використовував кілька багатовимірних масивів і тисячі асоціативних масивів, але я ніколи не створював структури даних з нуля.
-Але, пройшовши цей план навчання, я впевнений, що мене візьмуть на цю роботу. Це дійсно великий план. Він займе місяці, але якщо ви вже знайомі з багатьма речами з цього списку, то, очевидно, ви витратите значно менше часу.
+Це довгий план. Це може зайняти кілька місяців. Якщо ви вже знайомі з багатьма з цих питань, це займе набагато менше часу.
## Як це використовувати
Весь текст нижче - це список, а вам потрібно пройти всі його елементи зверху вниз.
-Я використовую спеціальну Github розмітку, щоб відслідковувати свій прогрес.
+Я використовую спеціальну Github розмітку - markdown, щоб відслідковувати свій прогрес.
+
+ - [Більше про markdown розмітку GitHub](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+### Якщо ви не хочете використовувати git
-**Створіть нову гілку, аби ви могли теж відмічати зроблені задачі, поміщаючи x в квадратні дужки: [x]**
+На цій сторінці натисніть кнопку «Код» ("Code") вгорі, а потім натисніть «Завантажити ZIP» ("Download ZIP"). Розпакуйте файл, і ви зможете працювати з текстовими файлами.
- Форкніть собі гілку та введіть команди нижче
+Якщо ви відкриваєте код у редакторі коду, який розуміє розмітку, ви побачите, що все відформатовано правильно.
-`git checkout -b progress`
+
-`git remote add jwasham https://github.com/jwasham/coding-interview-university`
+### Якщо вам зручно працювати з git
-`git fetch --all`
+Створіть нову гілку, аби ви могли відмічати зроблені задачі, поміщаючи x в квадратні дужки: [x]
- Відмітьте всі елементи X після того, як завершите свої зміни
+1. ***Форкніть репозиторій GitHub:*** `https://github.com/jwasham/coding-interview-university` натиснувши на кнопку Форк (Fork).
-`git add . `
+ 
-`git commit -m "Marked x" `
+1. Клонуйте в локальний репозиторій:
-`git rebase jwasham/main `
+ ```bash
+ git clone https://github.com//coding-interview-university.git
+ cd coding-interview-university
+ git remote add upstream https://github.com/jwasham/coding-interview-university.git
+ git remote set-url --push upstream DISABLE # so that you don't push your personal progress back to the original repo
+ ```
-`git push --force `
+1. Позначте всі поля X після того, як ви внесли зміни:
-[Більше про Github розмітку](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
+ ```bash
+ git commit -am "Marked personal progress"
+ git pull upstream main # keep your fork up-to-date with changes from the original repo
+
+ git push # just pushes to your fork
+ ```
## Не почувайтесь недостатньо розумними
-- Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
-- [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)
-## About Video Resources
+- Успішні інженери програмного забезпечення розумні, але багато хто з них відчуває невпевненість у тому, що вони недостатньо розумні.
+- Наступні відео можуть допомогти вам подолати цю невпевненість:
+ - Міф про геніального програміста [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)
+
+## Про відеоресурси
+
+Деякі відео доступні лише за умови реєстрації на курсах Coursera або EdX. Це так звані масові відкриті курси (MOOCs). Іноді заняття не проводяться, тому вам доведеться чекати кілька місяців, і ви не матимете доступу.
-Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs.
-Sometimes the classes are not in session so you have to wait a couple of months, so you have no access. Lynda.com courses are not free.
+Було б чудово замінити ресурси онлайн-курсів безкоштовними і завжди доступними публічними джерелами, такими як відео на YouTube (бажано університетські лекції), щоб ви могли вивчати їх у будь-який час, а не лише під час сесії конкретного онлайн-курсу.
- I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.
- I like using university lectures.
+## Оберіть мову програмування
+Вам потрібно буде обрати мову програмування для співбесід з кодування, але вам також потрібно буде знайти мову, яку ви зможете використовувати для вивчення концепцій комп'ютерних наук.
-## Interview Process & General Interview Prep
+Бажано, щоб мова була однаковою, щоб вам потрібно було володіти лише однією мовою.
-- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
-- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
-- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
-- [ ] Cracking The Coding Interview Set 1:
- - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
-- [ ] How to Get a Job at the Big 4:
- - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+### Для цього навчального плану
-- [ ] Prep Course:
- - [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
- - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- - [ ] [Python for Data Structures, Algorithms, and Interviews! (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
- - A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
+Коли я складав навчальний план, я використовував 2 мови для більшої його частини: C та Python
-## Pick One Language for the Interview
+Ви можете використовувати мову, якою вам зручно виконувати завдання
+на написання коду, але для великих компаній ці мови є найкращим вибором:
-You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
+* С: Дуже низький рівень. Дозволяє працювати з покажчиками та розподілом/виділенням пам'яті, тому ви відчуваєте структури даних та алгоритми до мозку кісток. У мовах вищого рівня, таких як Python або Java, вони приховані від вас. У повсякденній роботі це чудово, але коли ви вивчаєте, як побудовані ці низькорівневі структури даних, чудово відчувати себе ближче до металу.
+ - C є скрізь. Ви побачите приклади в книгах, лекціях, відео, *всюди* під час навчання.
+ - Мова програмування C, 2-е видання [The C Programming Language, 2nd Edition](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
+ - Це коротка книжка, але вона дасть вам чудові знання про мову C, і якщо ви трохи попрактикуєтесь
+ ви швидко станете вправним. Розуміння C допоможе вам зрозуміти, як працюють програми та пам'ять.
+ - Вам не потрібно заглиблюватися в книгу (або навіть дочитувати її). Просто дійдіть до того рівня, на якому вам буде комфортно читати і писати C.
+* Python: Python: Сучасна і дуже виразна, я вивчив її, тому що вона дуже корисна, а також дозволяє мені писати менше коду під час співбесіди.
+
+Це мої уподобання. Ви, звичайно, робіть, що хочете.
+
+Можливо, вам це не знадобиться, але ось кілька сайтів для вивчення нової мови:
+- [Exercism](https://exercism.org/tracks)
+- [Codewars](http://www.codewars.com)
+- [HackerEarth](https://www.hackerearth.com/for-developers/)
+- [Scaler Topics (Java, C++)](https://www.scaler.com/topics/)
+- [Programiz PRO Community Challenges)](https://programiz.pro/)
+
+### Для співбесіди з кодування
+
+Ви можете використовувати мову, якою вам зручно писати код під час співбесіди, але для великих компаній ці мови є найкращим вибором:
- C++
- Java
- Python
-You could also use these, but read around first. There may be caveats:
+Ви також можете скористатися цими, але спочатку почитайте навколо. Можуть бути застереження:
- JavaScript
- Ruby
-You need to be very comfortable in the language and be knowledgeable.
+Ось стаття, яку я написав про вибір мови для співбесіди:
+[Pick One Language for the Coding Interview](https://startupnextdoor.com/important-pick-one-language-for-the-coding-interview/).
-Read more about choices:
-- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
-- http://blog.codingforinterviews.com/best-programming-language-jobs/
+Це оригінальна стаття, на якій ґрунтується мій пост: [Choosing a Programming Language for Interviews](https://web.archive.org/web/20210516054124/http://blog.codingforinterviews.com/best-programming-language-jobs/)
-[See language resources here](programming-language-resources.md)
+Ви повинні дуже добре володіти мовою і бути обізнаним.
-You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
+Дізнайтеся більше про вибір:
+- [Оберіть правильну мову для вашої співбесіди з кодування](http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/)
-## Book List
+[Дивіться мовні ресурси тут](programming-language-resources.md)
-This is a shorter list than what I used. This is abbreviated to save you time.
+## Книги про структури даних та алгоритми
-### Interview Prep
+Ця книга стане вашим фундаментом у вивченні компʼютерних наук.
-- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - answers in C++ and Java
- - this is a good warm-up for Cracking the Coding Interview
- - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read)
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - answers in Java
+Просто виберіть одну, мовою, яка вам буде зручна. Вам доведеться багато читати і кодувати.
+
+### C
+
+- Алгоритми на C, частини 1-5 (комплект), 3-тє видання [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
+ - Основи, структури даних, алгоритми сортування, пошуку та побудови графів
+
+### Python
-If you have tons of extra time:
+- Структури даних та алгоритми в Python [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
+ - by Goodrich, Tamassia, Goldwasser
+ - Мені сподобалася ця книга. Вона охоплює все і навіть більше.
+ - Пітонівський код
+ - мій яскравий книжковий звіт: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
-- [ ] [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+### Java
-### Computer Architecture
+Ваш вибір:
-If short on time:
+- Goodrich, Tamassia, Goldwasser
+ - Структури даних та алгоритми в Java [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
+- Sedgewick and Wayne:
+ - Алгоритми [Algorithms](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
+ - Безкоштовний курс на Coursera, який охоплює книгу (викладається авторами!):
+ - Алгоритми I [Algorithms I](https://www.coursera.org/learn/algorithms-part1)
+ - Алгоритми II [Algorithms II](https://www.coursera.org/learn/algorithms-part2)
-- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief.
- - The author invented HLA, so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like.
- - These chapters are worth the read to give you a nice foundation:
- - Chapter 2 - Numeric Representation
- - Chapter 3 - Binary Arithmetic and Bit Operations
- - Chapter 4 - Floating-Point Representation
- - Chapter 5 - Character Representation
- - Chapter 6 - Memory Organization and Access
- - Chapter 7 - Composite Data Types and Memory Objects
- - Chapter 9 - CPU Architecture
- - Chapter 10 - Instruction Set Architecture
- - Chapter 11 - Memory Architecture and Organization
+### C++
-If you have more time (I want this book):
+Ваш вибір:
-- [ ] [Computer Architecture, Fifth Edition: A Quantitative Approach](https://www.amazon.com/dp/012383872X/)
- - For a richer, more up-to-date (2011), but longer treatment
+- Goodrich, Tamassia, and Mount
+ - Структури даних та алгоритми в C++, 2-е видання [Data Structures and Algorithms in C++, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275)
+- Sedgewick and Wayne
+ - Алгоритми в C++, частини 1-4: Основи, структура даних, сортування, пошук [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
+ - Алгоритми в C++ Частина 5: Графові алгоритми [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
-### Language Specific
+## Книги з підготовки до співбесіди
-**You need to choose a language for the interview (see above).** Here are my recommendations by language. I don't have resources for all languages. I welcome additions.
+Вам не потрібно купувати купу цих книг. Чесно кажучи, "Проходження співбесіди з кодування" ("Cracking the Coding Interview"), мабуть, достатньо,
+але я купив ще, щоб мати більше практики. Але я завжди роблю забагато.
-If you read though one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems.
-**You can skip all the video lectures in this project**, unless you'd like a review.
+Я купив обидві наступни книжки. Вони дали мені багато практики.
-[Additional language-specific resources here.](programming-language-resources.md)
+- Програмування співбесіди розкрито: Кодування вашого шляху через співбесіду, 4-е видання [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
+ - Відповіді на C++ та Java
+ - Це хороша розминка перед Cracking the Coding Interview
+ - Не надто складно. Більшість проблем можуть бути простішими, ніж ті, що ви побачите на співбесіді (з того, що я читав)
+- Проходження співбесіди з кодування, 6-й випуск [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
+ - відповіді на Java
-### C++
+### Якщо у вас багато вільного часу:
-I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome.
+Оберіть одну:
-- [ ] [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/)
+- Елементи співбесід з програмування (версія на C++) [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
+- Елементи співбесід з програмування (версія на Python) [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)
+- Елементи співбесід з програмування (версія на Java) [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
+ - [Супутній проект - заглушки методів та тестові кейси для кожної проблеми в книзі](https://github.com/gardncl/elements-of-programming-interviews)
-If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource.
-### Java
-- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
- - videos with book content (and Sedgewick!):
- - [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
- - [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
+## Не робіть моїх помилок
-OR:
+Цей список зростав протягом багатьох місяців, і так, він трохи вийшов з-під контролю.
-- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
- - by Goodrich, Tamassia, Goldwasser
- - used as optional text for CS intro course at UC Berkeley
- - see my book report on the Python version below. This book covers the same topics.
+Ось кілька помилок, яких я припустився, щоб у вас був кращий досвід. І ви заощадите місяці часу.
-### Python
+### 1. Ви не запам'ятаєте всього.
-- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - by Goodrich, Tamassia, Goldwasser
- - I loved this book. It covered everything and more.
- - Pythonic code
- - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
+Я дивився години відео і робив численні нотатки, і через місяці багато чого не пам'ятав. Я провів 3 дні, переглядаючи
+свої нотатки і роблячи флеш-картки, щоб мати змогу повторити. Мені не потрібні були всі ці знання.
+Прочитайте, будь ласка, щоб не робити моїх помилок:
-### Optional Books
+Збереження знань з комп'ютерних наук [Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/)
-**Some people recommend these, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:**
+### 2. Використовуйте флеш-картки
-- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
- - As a review and problem recognition
- - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview.
- - This book has 2 parts:
- - class textbook on data structures and algorithms
- - pros:
- - is a good review as any algorithms textbook would be
- - nice stories from his experiences solving problems in industry and academia
- - code examples in C
- - cons:
- - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
- - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
- - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material.
- - algorithm catalog:
- - this is the real reason you buy this book.
- - about to get to this part. Will update here once I've made my way through it.
- - Can rent it on kindle
- - Half.com is a great resource for textbooks at good prices.
- - Answers:
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
- - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+Щоб вирішити цю проблему, я зробив невеличкий сайт флеш-карток, на який можна було додавати флеш-картки 2 типів: загальні та кодові.
+Кожна картка має свій формат. Я створив сайт для мобільних пристроїв, щоб я міг переглядати його на телефоні та планшеті, де б я не був.
-- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
- - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently.
- - Half.com is a great resource for textbooks at good prices.
- - aka CLR, sometimes CLRS, because Stein was late to the game
+Зробіть свій власний безкоштовно:
-- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
- - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but
- that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter.
+- Репозиторій сайту з флеш-картками [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
-- ~~"Algorithms and Programming: Problems and Solutions" by Shen~~
- - A fine book, but after working through problems on several pages I got frustrated with the Pascal, do while loops, 1-indexed arrays, and unclear post-condition satisfaction results.
- - Would rather spend time on coding problems from another book or online coding problems.
+**Я НЕ РЕКОМЕНДУЮ використовувати мої картки.** Їх занадто багато, і більшість з них - тривіальні дрібниці, які вам не потрібні.
+Але якщо ви не хочете мене слухати, то ось вам:
+- Моя база даних флеш-карток (1200 карток) [My flash cards database (1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
+- Моя база даних флеш-карток (екстрім - 1800 карток) [My flash cards database (extreme - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
-## Before you Get Started
+Майте на увазі, що я переборщив і маю картки, що охоплюють все - від асемблера і дрібниць Python до машинного навчання і статистики. Це занадто багато за те, що потрібно.
-This list grew over many months, and yes, it kind of got out of hand.
+**Нотатки на флеш-картках:** Коли ви вперше зрозумієте, що знаєте відповідь, не позначайте її як відому. Ви повинні побачити
+одну й ту саму картку і відповісти на неї кілька разів правильно, перш ніж ви дійсно дізнаєтесь її. Повторення поглибить
+ці знання у вашому мозку.
-Here are some mistakes I made so you'll have a better experience.
+Альтернативою використанню мого сайту є [Anki](http://ankisrs.net/), який мені неодноразово рекомендували. Там використовується система повторень, щоб допомогти вам запам'ятати.
+Він зручний у використанні, доступний на всіх платформах і має систему синхронізації в Cloud. Коштує $25 на iOS, але безкоштовно на інших платформах.
-### 1. You Won't Remember it All
+Моя база даних флеш-карт у форматі Anki: https://ankiweb.net/shared/info/25173560 (дякую [@xiewenya](https://github.com/xiewenya))
-I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
-through my notes and making flashcards so I could review.
+Деякі студенти згадували про проблеми з форматуванням пробілів, які можна виправити наступним чином: відкрийте колоду, відредагуйте картку, клацніть на картки (Cards), виберіть радіо-кнопку «стилі» (Styles) і додайте до класу картки стиль "white-space: pre;".
-Read please so you won't make my mistakes:
+### 3. Складайте питання для співбесіди під час навчання кодуванню
-[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/)
+ЦЕ ДУЖЕ ВАЖЛИВО.
-### 2. Use Flashcards
+Почніть кодувати питання для співбесіди, поки вивчаєте структури даних та алгоритми.
-To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
-Each card has different formatting.
+Вам потрібно застосовувати те, що ви вивчаєте, для вирішення проблем, інакше ви забудете. Я зробив цю помилку.
-I made a mobile-first website so I could review on my phone and tablet, wherever I am.
+Після того, як ви вивчили тему і відчуваєте себе комфортно з нею, наприклад, **зв'язані списки**:
+1. Відкрийте одну з [книг для підготовки до співбесіди з кодування](#interview-prep-books) (або веб-сайти з проблем кодування, перелічені нижче)
+1. Поставте (зробіть) 2-3 запитання (задачі) про зв'язані списки.
+1. Перейдіть до наступної навчальної теми.
+1. Пізніше поверніться і розв'яжіть ще 2-3 задачі зі зв'язаними списками.
+1. Робіть це з кожною новою темою, яку ви вивчаєте.
-Make your own for free:
+**Виконуйте завдання під час навчання, а не після.**
-- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
-- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db):
-- [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db):
+Вас наймають не за знання, а за те, як ви їх застосовуєте.
-Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics. It's way too much for what's required.
+Для цього є багато ресурсів, перелічених нижче. Не зупиняйтеся.
-**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
-same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
-your brain.
+### 4. Зосередьтеся
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember.
-It's user-friendly, available on all platforms and has a cloud sync system. It costs $25 on iOS but is free on other platforms.
+Існує багато відволікаючих чинників, які можуть забирати дорогоцінний час. Зосередитися і сконцентруватися важко. Увімкніть музику без слів, і ви зможете досить добре зосередитися.
-My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya))
+## Що не буде охоплено
-### 3. Review, review, review
+Це поширені технології, але вони не є частиною цього навчального плану:
-I keep a set of cheat sheets on ASCII, OSI stack, Big-O notations, and more. I study them when I have some spare time.
+- Javascript
+- HTML, CSS, та інші фронтенд технології
+- SQL
-Take a break from programming problems for a half hour and go through your flashcards.
+## Щоденний план
-### 4. Focus
+Цей курс охоплює багато тем. Кожна з них, ймовірно, займе у вас кілька днів, а може навіть тиждень чи більше. Це залежить від вашого графіку.
-There are a lot of distractions that can take up valuable time. Focus and concentration are hard.
+Кожного дня обирайте наступну тему зі списку, переглядайте відео на цю тему, а потім напишіть реалізацію
+цієї структури даних або алгоритму мовою, яку ви обрали для цього курсу.
-## What you won't see covered
+Ви можете побачити мій код тут:
+ - [C](https://github.com/jwasham/practice-c)
+ - [C++](https://github.com/jwasham/practice-cpp)
+ - [Python](https://github.com/jwasham/practice-python)
-These are prevalent technologies but not part of this study plan:
+Вам не потрібно запам'ятовувати кожен алгоритм. Ви просто повинні розуміти його достатньо, щоб мати можливість написати власну реалізацію.
-- SQL
-- Javascript
-- HTML, CSS, and other front-end technologies
+## Практика з питань кодування
+
+ Чому це тут? Я не готовий до співбесіди.
+
+[Тоді поверніться і прочитайте це.](#3-do-coding-interview-questions-while-youre-learning)
+
+Чому потрібно практикуватись у розв'язуванні задач з програмування:
+- Розпізнавання проблеми, і де потрібні правильні структури даних та алгоритми
+- Збір вимог до задачі
+- Обговорення проблеми так, як ви будете говорити на співбесіді
+- Кодування на дошці або папері, а не на комп'ютері
+- Визначення часової та просторової складності ваших рішень (див. Big-O нижче)
+- Тестування ваших рішень
+
+Існує чудовий вступ для методичного, комунікативного вирішення проблем під час співбесіди. Ви можете знайти це в книгах із співбесід з програмування, але я вважаю, що цей посібник є видатним:
+[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-## The Daily Plan
+Пишіть код на дошці або папері, а не на комп'ютері. Протестуйте з деякими зразками вхідних даних. Потім надрукуйте його та протестуйте на комп'ютері.
-Some subjects take one day, and some will take multiple days. Some are just learning with nothing to implement.
+Якщо у вас вдома немає дошки, візьміть великий блокнот для малювання в художньому магазині. Ви можете сидіти на дивані і практикуватись.
+Це моя «диванна дошка». Я додав ручку на фото лише для масштабу. Якщо ви використовуєте ручку, ви пошкодуєте, що не можете її стерти.
+Швидко стає брудно. **Я використовую олівець і гумку.**
-Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
-- C - using structs and functions that take a struct * and something else as args.
-- C++ - without using built-in types
-- C++ - using built-in types, like STL's std::list for a linked list
-- Python - using built-in types (to keep practicing Python)
-- and write tests to ensure I'm doing it right, sometimes just using simple assert() statements
-- You may do Java or something else, this is just my thing.
+
-You don't need all these. You need only [one language for the interview](#pick-one-language-for-the-interview).
+**Практика з питань кодування - це не про запам'ятовування відповідей на задачі програмування.**
-Why code in all of these?
-- Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember)
-- Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python))
-- Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)
+## Проблеми кодування
-I may not have time to do all of these for every subject, but I'll try.
+Не забудьте свої ключові книги по співбесідам з кодування [тут](#interview-prep-books).
-You can see my code here:
- - [C] (https://github.com/jwasham/practice-c)
- - [C++] (https://github.com/jwasham/practice-cpp)
- - [Python] (https://github.com/jwasham/practice-python)
+Вирішення проблем:
+- Як знайти рішення [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
+- Як розібрати постановку задачі для топкодерів [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
-You don't need to memorize the guts of every algorithm.
+Відео з питаннями до співбесіди на кодування:
+- ЯЗаслуговую (88 відео) [IDeserve (88 videos)](https://www.youtube.com/playlist?list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
+- Тушар Рой (5 плейлистів) [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
+ - Чудово підходить для покрокового вирішення проблем
+- Нік Уайт - Рішення на LeetCode (187 відео) [Nick White - LeetCode Solutions (187 Videos)](https://www.youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-)
+ - Гарні пояснення рішення та коду
+ - Ви можете переглянути декілька за короткий час
+- ФішерКодер - Рішення на LeetCode [FisherCoder - LeetCode Solutions](https://youtube.com/FisherCoder)
-Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then test it out on a computer.
+Сайти викликів/практик:
+- [LeetCode](https://leetcode.com/)
+ - Мій улюблений сайт із завданнями на кодування. Він вартий того, щоб заплатити гроші за підписку на 1-2 місяці, які ви, ймовірно, витратите на підготовку.
+ - Дивіться відео Ніка Уайта та ФішерКодера вище для покрокового вивчення коду.
+- [HackerRank](https://www.hackerrank.com/)
+- [TopCoder](https://www.topcoder.com/)
+- [Codeforces](https://codeforces.com/)
+- [Codility](https://codility.com/programmers/)
+- [Geeks for Geeks](https://practice.geeksforgeeks.org/explore/?page=1)
+- [AlgoExpert](https://www.algoexpert.io/product)
+ - Створений інженерами Google, це також чудовий ресурс для відточування навичок.
+- [Project Euler](https://projecteuler.net/)
+ - дуже математично орієнтований і не дуже підходить для співбесід з кодування
-## Prerequisite Knowledge
+## Давайте починати!
-- [ ] **Learn C**
- - C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
- - [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
- you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
- - [answers to questions](https://github.com/lekkas/c-algorithms)
+Гаразд, досить розмов, давайте вчитися!
-- [ ] **How computers process a program:**
- - [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
- - [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
+Але не забувайте виконувати завдання з кодування зверху, поки будете вчитися!
## Algorithmic complexity / Big-O / Asymptotic analysis
- nothing to implement
From 2f641ac4d65432fbad4bf4c6c2a13aff8f640e1d Mon Sep 17 00:00:00 2001
From: Vahan Minasian
Date: Fri, 7 Jun 2024 23:59:02 +0400
Subject: [PATCH 156/173] update ukrainian translation up to ## Graphs
---
translations/README-uk.md | 674 +++++++++++++++++++-------------------
1 file changed, 345 insertions(+), 329 deletions(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 4798277fab..612d2342b5 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -104,29 +104,29 @@ Microsoft.
### Теми для вивчення
-- [Складність алгоритмів / Big-O / Асимптотичний аналіз](#algorithmic-complexity--big-o--asymptotic-analysis)
-- [Структури даних](#data-structures)
- - [Масив](#arrays)
- - [Зв'язаний список](#linked-lists)
- - [Стек](#stack)
- - [Черга](#queue)
- - [Геш-таблиця](#hash-table)
-- [Більше знань](#more-knowledge)
- - [Двійковий пошук](#binary-search)
- - [Бітові операції](#bitwise-operations)
-- [Дерева](#trees)
- - [Дерева - примітки та передумови](#trees---notes--background)
- - [Бінарні дерева пошуку: BSTs](#binary-search-trees-bsts)
- - [Купа / Пріоритетна черга / Бінарна купа](#heap--priority-queue--binary-heap)
+- [Складність алгоритмів / Big-O / Асимптотичний аналіз](#складність-алгоритмів--big-o--асимптотичний-аналіз)
+- [Структури даних](#Структури-даних)
+ - [Масив](#Масив)
+ - [Зв'язаний список](#Зв'язаний-список)
+ - [Стек](#Стек)
+ - [Черга](#Черга)
+ - [Геш-таблиця](#Геш-таблиця)
+- [Більше знань](#Більше-знань)
+ - [Двійковий пошук](#Двійковий-пошук)
+ - [Бітові операції](#Бітові-операції)
+- [Дерева](#Дерева)
+ - [Дерева - Вступ](#Дерева-Вступ)
+ - [Бінарні дерева пошуку: BSTs](#бінарні-дерева-пошуку-binary-search-trees-bsts)
+ - [Купа / Пріоритетна черга / Бінарна купа](#купа--пріоритетна-черга--бінарна-купа)
- Збалансовані дерева пошуку (загальна концепція, не деталі)
- Обходи: preorder, inorder, postorder, BFS, DFS
-- [Сортування](#sorting)
+- [Сортування](#Сортування)
- вибір (selection)
- вставка (insertion)
- купчасте сортування (heapsort)
- швидке сортування (quicksort)
- - злиття (merge sort)
-- [Графи](#graphs)
+ - злиття (mergesort)
+- [Графи](#Graphs)
- спрямовані (directed)
- неспрямовані (undirected)
- матриця суміжності (adjacency matrix)
@@ -547,337 +547,353 @@ Microsoft.
Але не забувайте виконувати завдання з кодування зверху, поки будете вчитися!
-## Algorithmic complexity / Big-O / Asymptotic analysis
-- nothing to implement
-- [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
-- [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
-- [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] Skiena:
- - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf)
-- [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/)
-- [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59)
-- [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61)
+## Складність алгоритмів / Big-O / Асимптотичний аналіз
+
+- Тут не потрібно нічого впроваджувати, ви просто дивитеся відео та робите нотатки! Ура!
+- Тут багато відео. Просто дивіться достатньо, поки не зрозумієте. Ви завжди можете повернутися і переглянути.
+- Не хвилюйтеся, якщо ви не розумієте всієї математики, що стоїть за цим.
+- Вам просто потрібно зрозуміти, як виразити складність алгоритму в термінах Big-O.
+- [ ] Гарвард CS50 - асимптотичне позначення (відео) [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
+- [ ] Позначення Big O (загальний короткий посібник) (відео) [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
+- [ ] Позначення Big O (а також Омега і Тета) - найкраще математичне пояснення (відео) [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] Скієна (Skiena) [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- [ ] [UC Berkeley Big O (video)](https://youtu.be/VIS4YDpuP98)
-- [ ] [UC Berkeley Big Omega (video)](https://youtu.be/ca3e7UVmeUc)
-- [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
-- [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63)
-- [ ] TopCoder (includes recurrence relations and master theorem):
- - [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
- - [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
-- [ ] [Cheat sheet](http://bigocheatsheet.com/)
-- [ ] [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
-
-
- If some of the lectures are too mathy, you can jump down to the bottom and
- watch the discrete mathematics videos to get the background knowledge.
-
-## Data Structures
-
-- ### Arrays
- - Implement an automatically resizing vector.
- - [ ] Description:
- - [Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays)
- - [UCBerkley CS61B - Linear and Multi-Dim Arrays (video)](https://youtu.be/Wp8oiO_CZZE?t=15m32s)
- - [Dynamic Arrays (video)](https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays)
- - [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- - [ ] Implement a vector (mutable array with automatic resizing):
- - [ ] Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
- - [ ] new raw data array with allocated memory
- - can allocate int array under the hood, just not use its features
- - start with 16, or if starting number is greater, use power of 2 - 16, 32, 64, 128
- - [ ] size() - number of items
- - [ ] capacity() - number of items it can hold
- - [ ] is_empty()
- - [ ] at(index) - returns item at given index, blows up if index out of bounds
- - [ ] push(item)
- - [ ] insert(index, item) - inserts item at index, shifts that index's value and trailing elements to the right
- - [ ] prepend(item) - can use insert above at index 0
- - [ ] pop() - remove from end, return value
- - [ ] delete(index) - delete item at index, shifting all trailing elements left
- - [ ] remove(item) - looks for value and removes index holding it (even if in multiple places)
- - [ ] find(item) - looks for value and returns first index with that value, -1 if not found
- - [ ] resize(new_capacity) // private function
- - when you reach capacity, resize to double the size
- - when popping an item, if size is 1/4 of capacity, resize to half
- - [ ] Time
- - O(1) to add/remove at end (amortized for allocations for more space), index, or update
- - O(n) to insert/remove elsewhere
- - [ ] Space
- - contiguous in memory, so proximity helps performance
- - space needed = (array capacity, which is >= n) * size of item, but even if 2n, still O(n)
-
-- ### Linked Lists
- - [ ] Description:
- - [ ] [Singly Linked Lists (video)](https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists)
- - [ ] [CS 61B - Linked Lists (video)](https://www.youtube.com/watch?v=sJtJOtXCW_M&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=5)
- - [ ] [[Review] Linked lists in 4 minutes (video)](https://youtu.be/F8AbOfQwl1c)
- - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
- - not the whole video, just portions about Node struct and memory allocation.
- - [ ] Linked List vs Arrays:
- - [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- - [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays)
- - [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- - [ ] Gotcha: you need pointer to pointer knowledge:
- (for when you pass a pointer to a function that may change the address where that pointer points)
- This page is just to get a grasp on ptr to ptr. I don't recommend this list traversal style. Readability and maintainability suffer due to cleverness.
- - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- - [ ] implement (I did with tail pointer & without):
- - [ ] size() - returns number of data elements in list
- - [ ] empty() - bool returns true if empty
- - [ ] value_at(index) - returns the value of the nth item (starting at 0 for first)
- - [ ] push_front(value) - adds an item to the front of the list
- - [ ] pop_front() - remove front item and return its value
- - [ ] push_back(value) - adds an item at the end
- - [ ] pop_back() - removes end item and returns its value
- - [ ] front() - get value of front item
- - [ ] back() - get value of end item
- - [ ] insert(index, value) - insert value at index, so current item at that index is pointed to by new item at index
- - [ ] erase(index) - removes node at given index
- - [ ] value_n_from_end(n) - returns the value of the node at nth position from the end of the list
- - [ ] reverse() - reverses the list
- - [ ] remove_value(value) - removes the first item in the list with this value
- - [ ] Doubly-linked List
- - [Description (video)](https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists)
- - No need to implement
-
-- ### Stack
- - [ ] [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
- - [ ] [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
- - [ ] Will not implement. Implementing with array is trivial.
-
-- ### Queue
- - [ ] [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
- - [ ] [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
- - [ ] [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
- - [ ] Implement using linked-list, with tail pointer:
- - enqueue(value) - adds value at position at tail
- - dequeue() - returns value and removes least recently added element (front)
+- [ ] Амортизаційний аналіз (відео) [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
+- [ ] TopCoder (включає рекурентні співвідношення та основну теорему):
+ - Обчислювальна складність: Розділ 1 [Computational Complexity: Section 1](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/)
+ - Обчислювальна складність: Розділ 2 [Computational Complexity: Section 2](https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/)
+- [ ] Шпаргалка [Cheat sheet](http://bigocheatsheet.com/)
+- [ ] [Огляд] Аналіз алгоритмів (плейлист) за 18 хвилин (відео) [[Review] Analyzing Algorithms (playlist) in 18 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZMxejjIyFHWa-4nKg6sdoIv)
+
+Що ж, цього вже достатньо.
+
+Коли ви проходите "Cracking the Coding Interview", там є розділ про це, а в кінці є тест, щоб перевірити, чи можете ви визначити складність виконання різних алгоритмів. Це супер огляд і тест.
+
+## Структури даних
+
+### Масив
+
+- [ ] Про масиви:
+ - Масиви CS50 Гарвардського університету [Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tI_tIZFyKBw&t=3009s)
+ - Масиви (відео) [Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
+ - Лінійні та багатовимірні масиви (відео) [UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE) (Start watching from 15m 32s)
+ - Динамічні масиви (відео) [Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
+ - Нерівні масиви (відео) [Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
+
+- [ ] Реалізувати вектор (змінний масив з автоматичною зміною розміру):
+ - [ ] Практика кодування з використанням масивів і вказівників, а також математики вказівників для переходу до індексу замість використання індексації.
+ - [ ] Новий масив вихідних даних з виділеною пам'яттю
+ - можна виділити масив int під капотом, просто не використовувати його можливості
+ - починати з 16, або якщо початкове число більше, використовувати степінь 2 - 16, 32, 64, 128
+ - [ ] size() - кількість елементів
+ - [ ] capacity() - кількість елементів, які він може вмістити
+ - [ ] is_empty()
+ - [ ] at(index) - повертає елемент за заданим індексом, зникає, якщо індекс виходить за межі
+ - [ ] push(item)
+ - [ ] insert(index, item) - вставляє елемент за індексом, зсуває значення цього індексу та наступні елементи праворуч
+ - [ ] prepend(item) - може використовувати вставку вище з індексом 0
+ - [ ] pop() - видалити з кінця, повернути значення
+ - [ ] delete(index) - видаляє елемент за індексом, зсуваючи всі кінцеві елементи вліво
+ - [ ] remove(item) - шукає значення і видаляє індекс, що його містить (навіть якщо в декількох місцях)
+ - [ ] find(item) - шукає значення і повертає перший індекс з цим значенням, -1, якщо не знайдено
+ - [ ] resize(new_capacity) // приватна функція
+ - при досягненні ємності, змінює розмір на подвійний
+ - при видаленні елементу, якщо розмір становить 1/4 від ємності, зменшити розмір до половини
+- [ ] Час
+ - O(1) для додавання/видалення в кінці (амортизується для виділення більшого простору), індексації або оновлення
+ - O(n) для вставки/видалення в іншому місці
+- [ ] Простір
+ - суміжні у пам'яті, тому близькість допомагає продуктивності
+ - необхідний простір = (ємність масиву, яка >= n) * розмір елемента, але навіть якщо 2n, все одно O(n)
+
+- ### Зв'язаний список
+
+- [ ] Опис:
+ - [ ] Зв'язані списки CS50 Гарвардський університет [Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-A_GFuoTo&t=650s) - це розвиває інтуїцію.
+ - [ ] Однозв'язні списки (відео) [Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
+ - [ ] CS 61B - Зв'язані списки 1 (відео) [CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeley_webcast_htzJdKoEmO0)
+ - [ ] CS 61B - Зв'язані списки 2 (відео) [CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeley_webcast_-c4I3gFYe3w)
+ - [ ] [[Огляд] Зв'язані списки за 4 хвилини (відео)](https://youtu.be/F8AbOfQwl1c)
+- [ ] C Code (відео) [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
+ - не все відео, лише фрагменти про Node struct та виділення пам'яті
+- [ ] Звʼязані списки vs масиви:
+ - Основне про зв'язані списки проти масивів (відео) [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
+ - У реальному світі зв'язані списки проти масивів (відео) [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
+- [ ] Чому слід уникати зв'язаних списків (відео) [Why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
+- [ ] Пастка: вам потрібні знання про вказівник на вказівник:
+ (на випадок, якщо ви передаєте вказівник у функцію, яка може змінити адресу, на яку вказує цей вказівник)
+ Я не рекомендую цей стиль обходу списків. Читабельність і обслуговуваємість страждають через складність.
+ - [Pointers to Pointers](https://www.eskimo.com/~scs/cclass/int/sx8.html)
+- [ ] Реалізувати (я зробив з хвостовим вказівником та без):
+ - [ ] size() - повертає кількість елементів даних у списку
+ - [ ] empty() - bool повертає true, якщо пусто
+ - [ ] value_at(index) - повертає значення n-го елемента (починаючи з 0 для першого)
+ - [ ] push_front(value) - додає елемент на початок списку
+ - [ ] pop_front() - видаляє перший елемент і повертає його значення
+ - [ ] push_back(value) - додає елемент в кінець списку
+ - [ ] pop_back() - видаляє кінцевий елемент і повертає його значення
+ - [ ] front() - отримати значення переднього елементу
+ - [ ] back() - отримати значення кінцевого елементу
+ - [ ] insert(index, value) - вставити значення за індексом так, щоб на поточний елемент за цим індексом вказував новий елемент за індексом
+ - [ ] erase(index) - видаляє вузол за заданим індексом
+ - [ ] value_n_from_end(n) - повертає значення вузла на n-ій позиції від кінця списку
+ - [ ] reverse() - реверсує список
+ - [ ] remove_value(value) - видаляє перший елемент списку з цим значенням
+- [ ] Подвійно зв'язаний список
+ - Опис (відео) [Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
+ - Не потрібно реалізовувати
+
+- ### Стек
+ - [ ] Стеки (відео) [Stacks (video)](https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks)
+ - [ ] [Огляд] Стеки за 3 хвилини (відео) [[Review] Stacks in 3 minutes (video)](https://youtu.be/KcT3aVgrrpU)
+ - [ ] Не буде реалізовано. Реалізація з масивом тривіальна.
+
+- ### Черга
+ - [ ] Черга (відео) [Queue (video)](https://www.coursera.org/learn/data-structures/lecture/EShpq/queue)
+ - [ ] Циклічний буфер/FIFO [Circular buffer/FIFO](https://en.wikipedia.org/wiki/Circular_buffer)
+ - [ ] [Огляд] Черги за 3 хвилини (відео) [[Review] Queues in 3 minutes (video)](https://youtu.be/D6gu-_tmEpQ)
+ - [ ] Реалізувати за допомогою звʼязаного списка, з хвостовим вказівником:
+ - enqueue(value) - додає значення до позиції у хвості
+ - dequeue() - повертає значення і видаляє останній доданий елемент (передній)
- empty()
- - [ ] Implement using fixed-sized array:
- - enqueue(value) - adds item at end of available storage
- - dequeue() - returns value and removes least recently added element
+ - [ ] Реалізація з використанням масиву фіксованого розміру:
+ - enqueue(value) - додає елемент в кінець доступного сховища
+ - dequeue() - повертає значення і видаляє останній доданий елемент
- empty()
- full()
- - [ ] Cost:
- - a bad implementation using linked list where you enqueue at head and dequeue at tail would be O(n)
- because you'd need the next to last element, causing a full traversal each dequeue
- - enqueue: O(1) (amortized, linked list and array [probing])
- - dequeue: O(1) (linked list and array)
- - empty: O(1) (linked list and array)
-
-- ### Hash table
+ - [ ] Вартість:
+ - погана реалізація з використанням зв'язаного списку, де ви створюєте чергу в голові та чергу в хвості, буде O(n)
+ тому що вам потрібен передостанній елемент, що призводить до повного обходу кожної черги
+ - enqueue: O(1) (амортизований, зв'язаний список і масив [зондування])
+ - dequeue: O(1) (зв'язаний список та масив)
+ - empty: O(1) (зв'язаний список та масив)
+
+- ### Геш-таблиця
- [ ] Videos:
- - [ ] [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
- - [ ] [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- - [ ] [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- - [ ] [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
- - [ ] [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
-
- - [ ] Online Courses:
- - [ ] [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
- - [ ] [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
- - [ ] [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
- - [ ] distributed hash tables:
- - [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- - [Distributed Hash Tables (video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
-
- - [ ] implement with array using linear probing
- - hash(k, m) - m is size of hash table
- - add(key, value) - if key already exists, update value
+ - [ ] Хешування з Привʼязуванням (відео) [Hashing with Chaining (video)](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=8)
+ - [ ] Подвоєння таблиці, Карп-Рабин (відео) [Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] Відкрита адресація, криптографічне хешування (відео) [Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] PyCon 2010: Могутній словник (відео) [PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
+ - [ ] (Просунута) рандомізація: Універсальне та досконале хешування (відео) [(Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
+ - [ ] (Просунутий) Ідеальне хешування (відео) [(Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)
+ - [ ] [Огляд] Хеш-таблиці за 4 хвилини (відео) [[Review] Hash tables in 4 minutes (video)](https://youtu.be/knV86FlSXJ8)
+
+ - [ ] Онлайн-курси:
+ - [ ] Основні хеш-таблиці (відео) [Core Hash Tables (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/m7UuP/core-hash-tables)
+ - [ ] Структури даних (відео) [Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/3)
+ - [ ] Проблема телефонної книги (відео) [Phone Book Problem (video)](https://www.coursera.org/learn/data-structures/lecture/NYZZP/phone-book-problem)
+ - [ ] розподілені хеш-таблиці:
+ - Миттєві завантаження та оптимізація сховища в Dropbox (відео) [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
+ - Розподілені хеш-таблиці (відео) [Distributed Hash Tables (video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
+
+ - [ ] реалізувати з масивом за допомогою лінійного зондування
+ - hash(k, m) - m - розмір хеш-таблиці
+ - add(key, value) - якщо ключ вже існує, оновити значення
- exists(key)
- get(key)
- remove(key)
-## More Knowledge
-
-- ### Binary search
- - [ ] [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
- - [ ] [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- - [ ] [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
- - [ ] [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
- - [ ] Implement:
- - binary search (on sorted array of integers)
- - binary search using recursion
-
-- ### Bitwise operations
- - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
- - [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
- - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- - [ ] Good intro:
- [Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)
- - [ ] [C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
- - [ ] [Bit Manipulation](https://en.wikipedia.org/wiki/Bit_manipulation)
- - [ ] [Bitwise Operation](https://en.wikipedia.org/wiki/Bitwise_operation)
+## Більше знань
+
+- ### Двійковий пошук
+ - [ ] Двійковий пошук (відео) [Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
+ - [ ] Двійковий пошук (відео) [Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
+ - [ ] деталі [detail](https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/)
+ - [ ] [Огляд] Бінарний пошук за 4 хвилини (відео) [[Review] Binary search in 4 minutes (video)](https://youtu.be/fDKIpRe8GW4)
+ - [ ] Реалізувати:
+ - бінарний пошук (у відсортованому масиві цілих чисел)
+ - бінарний пошук з використанням рекурсії
+
+- ### Бітові операції
+ - [ ] Шпаргалка з бітів [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf) - ви повинні знати багато степенів 2 від (2^1 to 2^16 and 2^32)
+ - [ ] Отримати дійсно хороше розуміння маніпуляцій з бітами за допомогою: &, |, ^, ~, >>, <<
+ - [ ] [слова](https://en.wikipedia.org/wiki/Word_(computer_architecture))
+ - [ ] Гарне введення:
+ [Маніпуляції з бітами (відео)](https://www.youtube.com/watch?v=7jkIUgLC29I)
+ - [ ] [Підручник з програмування мовою C 2-10: Бітові оператори (відео)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
+ - [ ] [Маніпуляції з бітами](https://en.wikipedia.org/wiki/Bit_manipulation)
+ - [ ] [Побітові операції](https://en.wikipedia.org/wiki/Bitwise_operation)
- [ ] [Bithacks](https://graphics.stanford.edu/~seander/bithacks.html)
- [ ] [The Bit Twiddler](http://bits.stephan-brumme.com/)
- [ ] [The Bit Twiddler Interactive](http://bits.stephan-brumme.com/interactive.html)
- [ ] 2s and 1s complement
- - [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
- - [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
- - [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
- - [ ] count set bits
- - [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
- - [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
- - [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
+ - Двійковий код: плюси та мінуси (чому ми використовуємо доповнення до двох) (відео) [Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
+ - Перше доповнення [1s Complement](https://en.wikipedia.org/wiki/Ones%27_complement)
+ - Друге доповнення [2s Complement](https://en.wikipedia.org/wiki/Two%27s_complement)
+ - [ ] підрахунок встановлених бітів
+ - 4 способи підрахунку бітів у байті (відео) [4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
+ - Підрахунок бітів [Count Bits](https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan)
+ - Як порахувати кількість встановлених бітів у 32-бітному цілому числі [How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
- [ ] round to next power of 2:
- - [Round Up To Next Power Of Two](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
- - [ ] swap values:
- - [Swap](http://bits.stephan-brumme.com/swap.html)
- - [ ] absolute value:
- - [Absolute Integer](http://bits.stephan-brumme.com/absInteger.html)
-
-## Trees
-
-- ### Trees - Notes & Background
- - [ ] [Series: Trees (video)](https://www.coursera.org/learn/data-structures/lecture/95qda/trees)
- - basic tree construction
- - traversal
- - manipulation algorithms
- - BFS (breadth-first search)
- - [MIT (video)](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
- - level order (BFS, using queue)
- time complexity: O(n)
- space complexity: best: O(1), worst: O(n/2)=O(n)
- - DFS (depth-first search)
- - [MIT (video)](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14)
- - notes:
- time complexity: O(n)
- space complexity:
- best: O(log n) - avg. height of tree
- worst: O(n)
- - inorder (DFS: left, self, right)
- - postorder (DFS: left, right, self)
- - preorder (DFS: self, left, right)
- - [ ] [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
- - [ ] [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
- - [ ] [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
-
-- ### Binary search trees: BSTs
- - [ ] [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
- - [ ] [Series (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees)
- - starts with symbol table and goes through BST applications
- - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
- - [ ] [MIT (video)](https://www.youtube.com/watch?v=9Jry5-82I68)
+ - округлити до наступного степеня 2 [Round Up To Next Power Of Two](http://bits.stephan-brumme.com/roundUpToNextPowerOfTwo.html)
+ - [ ] обмін значеннями:
+ - Обмін [Swap](http://bits.stephan-brumme.com/swap.html)
+ - [ ] абсолютні значення:
+ - Абсолютне ціле число [Absolute Integer](http://bits.stephan-brumme.com/absInteger.html)
+
+## Дерева
+
+- ### Дерева - Вступ
+ - [ ] Введення до Дерев (відео) [Intro to Trees (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
+ - [ ] Обхід дерев (відео) [Tree Traversal (video)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
+ - [ ] BFS (пошук в ширину) та DFS (пошук в глибину) (відео) [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
+ - Нотатки про BFS:
+ - порядок рівнів (BFS, з використанням черги)
+ - часова складність: O(n)
+ - просторова складність: найкраща: O(1), найгірша: O(n/2)=O(n)
+ - Нотатки про DFS:
+ - часова складність: O(n)
+ - просторова складність:
+ найкраща: O(log n) - середня висота дерева
+ найгірша: O(n)
+ - inorder (DFS: left, self, right)
+ - postorder (DFS: left, right, self)
+ - preorder (DFS: self, left, right)
+ - [ ] [Огляд] Пошук в ширину за 4 хвилини (відео) [[Review] Breadth-first search in 4 minutes (video)](https://youtu.be/HZ5YTanv5QE)
+ - [ ] [Огляд] Пошук в глибину за 4 хвилини (відео) [[Review] Depth-first search in 4 minutes (video)](https://youtu.be/Urx87-NMm6c)
+ - [ ] [Огляд] Обхід дерева (плейлист) за 11 хвилин (відео) [[Review] Tree Traversal (playlist) in 11 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO1JC2RgEi04nLy6D-rKk6b)
+
+- ### Бінарні дерева пошуку (Binary search trees: BSTs)
+
+ - [ ] Огляд бінарних дерев пошуку (відео) [Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
+ - [ ] Вступ (відео) [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
+ - [ ] MIT (відео) [MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&ab_channel=MITOpenCourseWare)
- C/C++:
- - [ ] [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
- - [ ] [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
- - [ ] [Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Find height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
- - [ ] [Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
- - [ ] [Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Check if a binary tree is binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
- - [ ] [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- - [ ] Implement:
- - [ ] insert // insert value into tree
- - [ ] get_node_count // get count of values stored
- - [ ] print_values // prints the values in the tree, from min to max
+ - [ ] Бінарне дерево пошуку - реалізація у C/C++ (відео) [Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28)
+ - [ ] Реалізація BST - розподіл пам'яті у стеку та купі (відео) [BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29)
+ - [ ] Знаходження мінімального та максимального елементів у бінарному дереві пошуку (відео) [Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Знаходження висоти бінарного дерева (відео) [Find the height of a binary tree (video)](https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31)
+ - [ ] Обхід бінарного дерева - стратегії в ширину та в глибину (відео) [Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32)
+ - [ ] Бінарне дерево: обхід за рівнем порядку (відео) [Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Обхід бінарного дерева: попередній порядок, наступний порядок, пост-порядок (відео) [Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Перевірка, чи є бінарне дерево бінарним деревом пошуку (відео) [Check if a binary tree is a binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Видалення вузла з бінарного дерева пошуку (відео) [Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36)
+ - [ ] Наступник в порядку обходу в дереві пошуку [Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
+ - [ ] Реалізувати:
+ - [ ] [insert // вставка значення у дерево](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
+ - [ ] get_node_count // отримання кількості збережених значень
+ - [ ] print_values // виведення на екран значень в дереві, від min до max
- [ ] delete_tree
- - [ ] is_in_tree // returns true if given value exists in the tree
- - [ ] get_height // returns the height in nodes (single node's height is 1)
- - [ ] get_min // returns the minimum value stored in the tree
- - [ ] get_max // returns the maximum value stored in the tree
- - [ ] is_binary_search_tree
+ - [ ] is_in_tree // повертає true, якщо задане значення існує в дереві
+ - [ ] [get_height](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/) // повертає висоту у вузлах (висота одного вузла дорівнює 1)
+ - [ ] get_min // повертає мінімальне значення, що зберігається в дереві
+ - [ ] get_max // повертає максимальне значення, що зберігається в дереві
+ - [ ] [is_binary_search_tree](https://leetcode.com/problems/validate-binary-search-tree/)
- [ ] delete_value
- - [ ] get_successor // returns next-highest value in tree after given value, -1 if none
-
-- ### Heap / Priority Queue / Binary Heap
- - visualized as a tree, but is usually linear in storage (array, linked list)
- - [ ] [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
- - [ ] [Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/2OpTs/introduction)
- - [ ] [Naive Implementations (video)](https://www.coursera.org/learn/data-structures/lecture/z3l9N/naive-implementations)
- - [ ] [Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
- - [ ] [Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
- - [ ] [Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
- - [ ] [Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
- - [ ] [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
- - [ ] [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- - [ ] [Heap Sort (video)](https://www.coursera.org/learn/data-structures/lecture/hSzMO/heap-sort)
- - [ ] [Building a heap (video)](https://www.coursera.org/learn/data-structures/lecture/dwrOS/building-a-heap)
- - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [CS 61B Lecture 24: Priority Queues (video)](https://www.youtube.com/watch?v=yIUFT6AKBGE&index=24&list=PL4BBB74C7D2A1049C)
+ - [ ] get_successor // повертає наступника за величиною значення у дереві після заданого, -1 якщо такого немає
+
+- ### Купа / Пріоритетна черга / Бінарна купа
+
+ - візуалізується у вигляді дерева, але зазвичай є лінійною у сховищі (масив, зв'язаний список)
+ - [ ] Купа [Heap](https://en.wikipedia.org/wiki/Heap_(data_structure))
+ - [ ] Вступ (відео) [Introduction (video)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
+ - [ ] Бінарні дерева (відео) [Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
+ - [ ] Зауваження щодо висоти дерева (відео) [Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
+ - [ ] Основні операції (відео) [Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
+ - [ ] Повні бінарні дерева (відео) [Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
+ - [ ] Псевдокод (відео) [Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
+ - [ ] Сортування купою - переходи до початку (відео) [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
+ - [ ] Сортування купою (відео) [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
+ - [ ] Створення купи (відео) [Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
+ - [ ] MIT: Купи та сортування купою (відео) [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] CS 61B Лекція 24: Черги пріоритетів (відео) [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- - [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
- - [ ] Implement a max-heap:
+ - [ ] [Огляд] Купа (плейлист) за 13 хвилин (відео) [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
+ - [ ] Реалізувати максимальну купу:
- [ ] insert
- - [ ] sift_up - needed for insert
- - [ ] get_max - returns the max item, without removing it
- - [ ] get_size() - return number of elements stored
- - [ ] is_empty() - returns true if heap contains no elements
- - [ ] extract_max - returns the max item, removing it
- - [ ] sift_down - needed for extract_max
- - [ ] remove(i) - removes item at index x
- - [ ] 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
- - note: using a min heap instead would save operations, but double the space needed (cannot do in-place).
-
-## Sorting
-
-- [ ] Notes:
- - Implement sorts & know best case/worst case, average complexity of each:
- - no bubble sort - it's terrible - O(n^2), except when n <= 16
- - [ ] stability in sorting algorithms ("Is Quicksort stable?")
- - [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
- - [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
- - [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
- - [Sorting Algorithms - Stability](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
- - [ ] Which algorithms can be used on linked lists? Which on arrays? Which on both?
- - I wouldn't recommend sorting a linked list, but merge sort is doable.
- - [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
-
-- For heapsort, see Heap data structure above. Heap sort is great, but not stable.
-
-- [ ] [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
-- [ ] [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
-- [ ] [Insertion Sort, Merge Sort (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
-- [ ] [Insertion Sort (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
-- [ ] [Merge Sort (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
-- [ ] [Quicksort (video)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
-- [ ] [Selection Sort (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
-
-- [ ] Merge sort code:
- - [ ] [Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
- - [ ] [Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
- - [ ] [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
-- [ ] Quick sort code:
- - [ ] [Implementation (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
- - [ ] [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
- - [ ] [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
-
-- [ ] [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
- - [ ] [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
- - [ ] [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
- - [ ] [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
- - [ ] [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
- - [ ] [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
- - [ ] [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
-
-- [ ] Implement:
- - [ ] Mergesort: O(n log n) average and worst case
- - [ ] Quicksort O(n log n) average case
- - Selection sort and insertion sort are both O(n^2) average and worst case
- - For heapsort, see Heap data structure above.
-
-- [ ] Not required, but I recommended them:
- - [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [1. Strings in Java](https://www.youtube.com/watch?v=zRzU-FWsjNU&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=6)
- - [ ] [2. Key Indexed Counting](https://www.youtube.com/watch?v=CtgKYmXs62w&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=5)
- - [ ] [3. Least Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=2pGVq_BwPKs&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=4)
- - [ ] [4. Most Significant Digit First String Radix Sort](https://www.youtube.com/watch?v=M3cYNY90R6c&index=3&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [5. 3 Way Radix Quicksort](https://www.youtube.com/watch?v=YVl58kfE6i8&index=2&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53)
- - [ ] [6. Suffix Arrays](https://www.youtube.com/watch?v=HKPrVm5FWvg&list=PLe-ggMe31CTcNvUX9E3tQeM6ntrdR8e53&index=1)
- - [ ] [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
- - [ ] [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
- - [ ] [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
-
-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 "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
+ - [ ] sift_up - необхідно для insert
+ - [ ] get_max - повертає максимальний елемент, не видаляючи його
+ - [ ] get_size() - повертає кількість елементів
+ - [ ] is_empty() - повертає true, якщо в купі немає елементів
+ - [ ] extract_max - повертає максимальний елемент, видаляючи його
+ - [ ] sift_down - необхідний для extract_max
+ - [ ] remove(x) - видаляє елемент за індексом x
+ - [ ] heapify - створює купу з масиву елементів, необхідно для heap_sort
+ - [ ] heap_sort() - бере невідсортований масив і перетворює його на відсортований на місці, використовуючи max heap або min heap
+
+## Сортування
+
+- [ ] Примітки:
+ - Реалізуйте сортування і знайте найкращий/найгірший випадок, середню складність кожного з них:
+ - ніяких бульбашкових сортувань - це жахливо - O(n^2), за винятком випадків, коли n <= 16
+ - [ ] Стабільність алгоритмів сортування ("Чи є Quicksort стабільним?")
+ - Стабільність алгоритмів сортування [Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability)
+ - Стабільність в алгоритмах сортування (StackOverflow) [Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
+ - Стабільність в алгоритмах сортування (GeeksForGeeks) [Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
+ - Алгоритми сортування - стабільність [Sorting Algorithms - Stability](http://homepages.math.uic.edu/~leon/cs-mcs401-s08/handouts/stability.pdf)
+ - [ ] Які алгоритми можна використовувати на зв'язаних списках? Які на масивах? Які на обох?
+ - Я б не рекомендував сортувати зв'язаний список, але сортування злиттям цілком можливо.
+ - Сортування злиттям для зв'язаного списку [Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
+
+- Про сортування купою (heapsort) дивіться структуру даних Heap вище. Сортування купою - це чудово, але не стабільно
+
+- [ ] Седжвік - Сортування злиттям (5 відео) [Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] Сортування злиттям [1. Mergesort](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
+ - [ ] 2. Висхідний Mergesort [2. Bottom-up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
+ - [ ] 3. Складність сортування [3. Sorting Complexity](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
+ - [ ] 4. Компаратори [4. Comparators](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
+ - [ ] 5. Стабільність [5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
+
+- [ ] Седжвік - Сортування злиттям (5 відео) [Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
+ - [ ] Швидке сортування [1. Quicksort](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
+ - [ ] Вибір [2. Selection](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
+ - [ ] Повторні ключі [3. Duplicate Keys](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
+ - [ ] Системні сортування [4. System Sorts](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
+
+- [ ] Університет Каліфорнії (Берклі) (UC Berkeley):
+ - [ ] CS 61B Лекція 29: Сортування I (відео) [CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
+ - [ ] CS 61B Лекція 30: Сортування II (відео) [CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
+ - [ ] CS 61B Лекція 32: Сортування III (відео) [CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
+ - [ ] CS 61B Лекція 33: Сортування V (відео) [CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
+ - [ ] CS 61B 2014-04-21: Сортування за розрядами (відео) [CS 61B 2014-04-21: Radix Sort(video)](https://archive.org/details/ucberkeley_webcast_pvbBMd-3NoI)
+
+- [ ] Бульбашкове сортування (відео) [Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
+- [ ] Аналіз бульбашкового сортування (відео) [Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
+- [ ] Сортування вставками, злиттям (відео) [Insertion Sort, Merge Sort (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+- [ ] Сортування вставками (відео) [Insertion Sort (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
+- [ ] Сортування злиттям (відео) [Merge Sort (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
+- [ ] Швидке сортування (відео) [Quicksort (video)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
+- [ ] Сортування вибором (відео) [Selection Sort (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
+
+- [ ] Код сортування злиттям:
+ - [ ] Використання вихідного масиву (C) [Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
+ - [ ] Використання вихідного масиву (Python) [Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/merge_sort/merge_sort.py)
+ - [ ] На місці (C++) [In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/merge_sort/merge_sort.cc)
+- [ ] Код швидкого сортування:
+ - [ ] Реалізація (C) [Implementation (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
+ - [ ] Реалізація (C) [Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quick_sort/quick_sort.c)
+ - [ ] Реалізація (Python) [Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quick_sort/quick_sort.py)
+
+- [ ] [Огляд] Сортування (плейлист) за 18 хвилин [[Review] Sorting (playlist) in 18 minutes](https://www.youtube.com/playlist?list=PL9xmBV_5YoZOZSbGAXAPIq1BeUf4j20pl)
+ - [ ] Швидке сортування за 4 хвилини (відео) [Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
+ - [ ] Сортування купою за 4 хвилини (відео) [Heap sort in 4 minutes (video)](https://youtu.be/2DmK_H7IdTo)
+ - [ ] Сортування злиттям за 3 хвилини (відео) [Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
+ - [ ] Сортування бульбашками за 2 хвилини (відео) [Bubble sort in 2 minutes (video)](https://youtu.be/xli_FI7CuzA)
+ - [ ] Сортування вибором за 3 хвилини (відео) [Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMth_g)
+ - [ ] Сортування вставками за 2 хвилини (відео) [Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
+
+- [ ] Реалізувати:
+ - [ ] Сортування злиттям: O(n log n) середній та найгірший випадок
+ - [ ] Швидке сортування O(n log n) середній випадок
+ - Сортування вибором та сортування вставкою мають середній та найгірший випадок O(n^2)
+ - Про сортування купою даних дивіться вище у розділі Структури даних - Купа
+
+- [ ] Не обов'язково, але я рекомендую їх:
+ - [ ] Седжвік - Радікс-сортування (6 відео) [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
+ - [ ] 1. Рядки в Java [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
+ - [ ] 2. Індексований підрахунок ключів [2. Key Indexed Counting](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
+ - [ ] 3. Сортування за розрядами за найменш значущою цифрою першого рядка [3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
+ - [ ] 3. Сортування за розрядами за найбільш значущою цифрою першого рядка [4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
+ - [ ] 5. 3-бічне cортування за розрядами [5. 3 Way Radix Quicksort](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
+ - [ ] 6. Масиви суфіксів [6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
+ - [ ] Сортування за розрядами [Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
+ - [ ] Сортування за розрядами (відео) [Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
+ - [ ] Сортування за розрядами, лічильне сортування (лінійні обмеження за часом) (відео) [Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] Рандомізація: матричне множення, швидке сортування, алгоритм Фрейвальдса (відео) [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] Сортування за лінійний час (відео) [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
+
+Як підсумок, ось візуальне представлення [15 алгоритмів сортування](https://www.youtube.com/watch?v=kPRA0W1kECg).
+Якщо вам потрібна більш детальна інформація на цю тему, зверніться до розділу "Сортування" у [Додаткова інформація про деякі теми](#additional-detail-on-some-subjects)
## Graphs
From aede3d6c5c37fff0dc51de16b56027c95faf557c Mon Sep 17 00:00:00 2001
From: Vahan Minasian
Date: Sat, 8 Jun 2024 21:02:57 +0400
Subject: [PATCH 157/173] update ukrainian translation up to ### Combinatorics
& Probability
---
translations/README-uk.md | 311 ++++++++++++++++++--------------------
1 file changed, 150 insertions(+), 161 deletions(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 612d2342b5..8d8a60406d 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -126,17 +126,17 @@ Microsoft.
- купчасте сортування (heapsort)
- швидке сортування (quicksort)
- злиття (mergesort)
-- [Графи](#Graphs)
+- [Графи](#Графи)
- спрямовані (directed)
- неспрямовані (undirected)
- матриця суміжності (adjacency matrix)
- список суміжності (adjacency list)
- обходи: BFS, DFS (traversals: BFS, DFS)
-- [Ще більше знань](#even-more-knowledge)
- - [Рекурсія](#recursion)
- - [Динамічне програмування](#dynamic-programming)
- - [Шаблони проектування](#design-patterns)
- - [Комбінаторика (n choose k) та ймовірність](#combinatorics-n-choose-k--probability)
+- [Ще більше знань](#Ще-більше-знань)
+ - [Рекурсія](#Рекурсія)
+ - [Динамічне програмування](#Динамічне-програмування)
+ - [Шаблони проектування](#Шаблони-проектування)
+ - [Комбінаторика (n choose k) та ймовірність](#комбінаторика-n-choose-k-та-ймовірність)
- [NP, NP-повні та Апроксимаційні Алгоритми](#np-np-complete-and-approximation-algorithms)
- [Як комп'ютери опрацьовують програму](#how-computers-process-a-program)
- [Кеші](#caches)
@@ -895,164 +895,153 @@ Microsoft.
Як підсумок, ось візуальне представлення [15 алгоритмів сортування](https://www.youtube.com/watch?v=kPRA0W1kECg).
Якщо вам потрібна більш детальна інформація на цю тему, зверніться до розділу "Сортування" у [Додаткова інформація про деякі теми](#additional-detail-on-some-subjects)
-## Graphs
-
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
-
-- Notes:
- - There are 4 basic ways to represent a graph in memory:
- - objects and pointers
- - adjacency matrix
- - adjacency list
- - adjacency map
- - Familiarize yourself with each representation and its pros & cons
- - BFS and DFS - know their computational complexity, their tradeoffs, and how to implement them in real code
- - When asked a question, look for a graph-based solution first, then move on if none.
-
-- [ ] Skiena Lectures - great intro:
- - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11)
- - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12)
- - [ ] [CSE373 2012 - Lecture 13 - Graph Algorithms (video)](https://www.youtube.com/watch?v=S23W6eTcqdY&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=13)
- - [ ] [CSE373 2012 - Lecture 14 - Graph Algorithms (con't) (video)](https://www.youtube.com/watch?v=WitPBKGV0HY&index=14&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (video)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
-
-- [ ] Graphs (review and more):
-
- - [ ] [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=ozsuci5pIso&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=17)
- - [ ] [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
- - [ ] [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
- - [ ] [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
- - [ ] [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
- - [ ] [CS 61B 2014 (starting at 58:09) (video)](https://youtu.be/dgjX4HdMI-Q?list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&t=3489)
- - [ ] [CS 61B 2014: Weighted graphs (video)](https://www.youtube.com/watch?v=aJjlQCFwylA&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=19)
- - [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
- - [ ] [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
- - [ ] [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
-
-- Full Coursera Course:
- - [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
-
-- I'll implement:
- - [ ] DFS with adjacency list (recursive)
- - [ ] DFS with adjacency list (iterative with stack)
- - [ ] DFS with adjacency matrix (recursive)
- - [ ] DFS with adjacency matrix (iterative with stack)
- - [ ] BFS with adjacency list
- - [ ] BFS with adjacency matrix
- - [ ] single-source shortest path (Dijkstra)
- - [ ] minimum spanning tree
- - DFS-based algorithms (see Aduni videos above):
- - [ ] check for cycle (needed for topological sort, since we'll check for cycle before starting)
- - [ ] topological sort
- - [ ] count connected components in a graph
- - [ ] list strongly connected components
- - [ ] check for bipartite graph
-
-You'll get more graph practice in Skiena's book (see Books section below) and the interview books
-
-## Even More Knowledge
-
-- ### Recursion
- - [ ] Stanford lectures on recursion & backtracking:
- - [ ] [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
- - [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
- - [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
- - [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
- - when it is appropriate to use it
- - how is tail recursion better than not?
- - [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
- - [ ] [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
-
-- ### Dynamic Programming
- - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
- - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
- - [ ] Videos:
- - the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
- - [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
- - [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
- - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
- - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
- - [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
- - [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
- - [ ] List of individual DP problems (each is short):
- [Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
- - [ ] Yale Lecture notes:
- - [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
+## Графи
+
+Графи можна використовувати для представлення багатьох проблем у комп'ютерних науках, тому цей розділ довгий, як і розділ про дерева та сортування.
+
+- Примітки:
+ - Існує 4 основних способи представлення графів у пам'яті:
+ - об'єкти та вказівники (objects and pointers)
+ - матриця суміжності (adjacency matrix)
+ - список суміжності (adjacency list)
+ - карта суміжності (adjacency map)
+ - Ознайомтеся з кожним способом представлення та його перевагами і недоліками
+ - BFS та DFS - знайте їх обчислювальну складність, компроміси та як їх реалізувати в реальному коді
+ - Коли вам ставлять запитання, спочатку шукайте рішення на основі графів, а потім рухайтеся далі, якщо його немає
+
+- [ ] MIT (відео):
+ - [ ] Пошук в ширину [Breadth-First Search](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&ab_channel=MITOpenCourseWare)
+ - [ ] Пошук в глибину [Depth-First Search](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&ab_channel=MITOpenCourseWare)
+
+- [ ] Лекції Скієна - чудовий вступ:
+ - [ ] CSE373 2020 - Лекція 10 - Графові структури даних (відео) [CSE373 2020 - Lecture 10 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=10)
+ - [ ] CSE373 2020 - Лекція 11 - Обхід графів (відео) [CSE373 2020 - Lecture 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=11)
+ - [ ] CSE373 2020 - Лекція 12 - Пошук у глибину (відео) [CSE373 2020 - Lecture 12 - Depth First Search (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=12)
+ - [ ] CSE373 2020 - Лекція 13 - Мінімальні остовні дерева (відео) [CSE373 2020 - Lecture 13 - Minimum Spanning Trees (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=13)
+ - [ ] CSE373 2020 - Лекція 14 - Мінімальні остовні дерева (відео) [CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=14)
+ - [ ] CSE373 2020 - Лекція 15 - Графові алгоритми (частина 2) (відео) [CSE373 2020 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=15)
+
+- [ ] Графи (огляд та інше):
+
+ - [ ] 6.006 Задача про найкоротші шляхи з одним джерелом (відео) [6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] 6.006 Дейкстра (відео) [6.006 Dijkstra (video)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&ab_channel=MITOpenCourseWare)
+ - [ ]6.006 Беллман-Форд (відео) [6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=f9cVS_URPc0&ab_channel=MITOpenCourseWare)
+ - [ ] 6.006 Прискорення Дейкстра (відео) [6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3q_gJ7E&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=18)
+ - [ ] Адуні: Графові алгоритми I - Топологічне сортування, Мінімальне остовне дерево, Алгоритм Прима - лекція 6 (відео) [Aduni: Graph Algorithms I - Topological Sorting, Minimum Spanning Trees, Prim's Algorithm - Lecture 6 (video)]( https://www.youtube.com/watch?v=i_AQT_XfvD8&index=6&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] Адуні: Графові алгоритми II - DFS, BFS, алгоритм Крускала, Структура даних Об'єднаний Пошук - Лекція 7 (відео) [Aduni: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure - Lecture 7 (video)]( https://www.youtube.com/watch?v=ufj5_bppBsA&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=7)
+ - [ ] Адуні: Графові алгоритми III: Найкоротший шлях - Лекція 8 (відео) [Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
+ - [ ] Адуні: Графові алгоритми IV: Вступ до геометричних алгоритмів - Лекція 9 (відео) [Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
+ - [ ] CS 61B 2014: Зважені графи (відео) [CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeley_webcast_zFbq8vOZ_0k)
+ - [ ] Жадібні алгоритми: мінімальне остовне дерево (відео) [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - [ ] Сильно зв'язані компоненти алгоритму Косараджу: алгоритм графів (відео) [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
+ - [ ] [Огляд] Алгоритми найкоротшого шляху (плейлист) за 16 хвилин (відео) [[Review] Shortest Path Algorithms (playlist) in 16 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZO-Y-H3xIC9DGSfVYJng9Yw)
+ - [ ] [Огляд] Мінімальні остовні дерева (плейліст) за 4 хвилини (відео) [[Review] Minimum Spanning Trees (playlist) in 4 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZObEi3Hf6lmyW-CBfs7nkOV)
+
+- Повний курс на Coursera:
+ - [ ] Алгоритми на графах (відео) [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
+
+- Я реалізую:
+ - [ ] DFS зі списком суміжності (рекурсивний)
+ - [ ] DFS зі списком суміжності (ітеративний зі стеком)
+ - [ ] DFS з матрицею суміжності (рекурсивний)
+ - [ ] DFS з матрицею суміжності (ітеративний зі стеком)
+ - [ ] BFS зі списком суміжності
+ - [ ] BFS з матрицею суміжності
+ - [ ] найкоротший шлях з одним джерелом (Дейкстра)
+ - [ ] мінімальне остовне дерево
+ - Алгоритми на основі DFS (див. відео Aduni вище):
+ - [ ] перевірка на цикл (потрібна для топологічного сортування, оскільки ми будемо перевіряти цикл перед початком)
+ - [ ] топологічне сортування
+ - [ ] підрахунок зв'язних компонентів у графі
+ - [ ] перелік списку сильно зв'язаних компонентів
+ - [ ] перевірка на дводольний граф
+
+## Ще більше знань
+
+- ### Рекурсія
+ - [ ] Стенфордські лекції про рекурсію та відстеження:
+ - [ ] Лекція 8 | Програмування абстракцій (відео) [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
+ - [ ] Лекція 9 | Програмні абстракції (відео) [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
+ - [ ] Лекція 10 | Програмування абстракцій (відео) [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
+ - [ ] Лекція 11 | Програмування абстракцій (відео) [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
+ - Коли доцільно її використовувати?
+ - Чим хвостова рекурсія краща ніж ніякої?
+ - [ ] Що таке хвостова рекурсія і чому вона така погана? [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
+ - [ ] Хвостова рекурсія (відео) [Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
+ - [ ] 5 простих кроків для вирішення будь-якої рекурсивної задачі (відео) [5 Simple Steps for Solving Any Recursive Problem(video)](https://youtu.be/ngCos392W4w)
+
+ Схема зворотного відстеження:
+
+ - [Java](https://leetcode.com/problems/combination-sum/discuss/16502/A-general-approach-to-backtracking-questions-in-Java-(Subsets-Permutations-Combination-Sum-Palindrome-Partitioning))
+ - [Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
+
+- ### Динамічне програмування
+
+ - Ви, ймовірно, не побачите жодної проблеми з динамічним програмуванням на співбесіді, але варто вміти розпізнавати
+ задачу, яка може бути кандидатом на динамічне програмування.
+ - Ця тема може бути досить складною, оскільки кожна задача, що розв'язується ДП, повинна бути визначена як рекурсивне відношення, а придумати його може бути непросто.
+ - Я пропоную розглянути багато прикладів задач на ДП, доки ви не матимете чіткого уявлення про закономірності, що використовуються.
+ - [ ] Відео:
+ - [ ] Скієна: CSE373 2020 - Лекція 19 - Вступ до динамічного програмування (відео) [Skiena: CSE373 2020 - Lecture 19 - Introduction to Dynamic Programming (video)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=18)
+ - [ ] Скієна: CSE373 2020 - Лекція 20 - Редагування відстані (відео) [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=19)
+ - [ ] Скієна: CSE373 2020 - Лекція 20 - Редагування відстані (продовження) (відео) [Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=20)
+ - [ ] Скієна: CSE373 2020 - Лекція 21 - Динамічне програмування (відео) [Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=21)
+ - [ ] Скієна: CSE373 2020 - Лекція 22 - Динамічне програмування та огляд (відео) [Skiena: CSE373 2020 - Lecture 22 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUX_wiNmkWkXx&index=22)
+ - [ ] Саймонсон: Динамічне програмування 0 (починається з 59:18) (відео) [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
+ - [ ] Саймонсон: Динамічне програмування I - Лекція 11 (відео) [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] Саймонсон: Динамічне програмування II - Лекція 12 (відео) [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
+ - [ ] Список окремих задач з ДП (кожна з них коротка):
+ Динамічне програмування (відео) [Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
+ - [ ] Єльський конспект лекцій:
+ - [ ] Динамічне програмування [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
- [ ] Coursera:
- - [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
- - [ ] [A dynamic programming algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
- - [ ] [Illustrating the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
- - [ ] [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
- - [ ] [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
- - [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
- - [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
-
-- ### Object-Oriented Programming
- - [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
- - [ ] Object-Oriented Software Engineering: Software Dev Using UML and Java (21 videos):
- - Can skip this if you have a great grasp of OO and OO design practices.
- - [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] SOLID OOP Principles:
- - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- - [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- - [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- - [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- - [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
- - [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
- - [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
- - [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
- - [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
-
-- ### Design patterns
- - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
- - [ ] Learn these patterns:
- - [ ] strategy
- - [ ] singleton
- - [ ] adapter
- - [ ] prototype
- - [ ] decorator
- - [ ] visitor
- - [ ] factory, abstract factory
- - [ ] facade
- - [ ] observer
- - [ ] proxy
- - [ ] delegate
- - [ ] command
- - [ ] state
+ - [ ] Проблема вторинної структури РНК (відео) [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
+ - [ ] Алгоритм динамічного програмування (відео) [A dynamic programming algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
+ - [ ] Ілюстрація алгоритму ДП (відео) [Illustrating the DP algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
+ - [ ] Час роботи алгоритму DP (відео) [Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
+ - [ ] DP проти рекурсивної реалізації (відео) [DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
+ - [ ] Глобальне попарне вирівнювання послідовностей (відео) [Global pairwise sequence alignment (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
+ - [ ] Локальне попарне вирівнювання послідовностей (відео) [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
+
+- ### Шаблони проектування
+ - [ ] [Короткий огляд UML (відео)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
+ - [ ] Вивчіть ці патерни:
+ - [ ] синглтон (strategy)
+ - [ ] синглтон (singleton)
+ - [ ] адаптер (adapter)
+ - [ ] прототип (prototype)
+ - [ ] декоратор (decorator)
+ - [ ] відвідувач (visitor)
+ - [ ] фабрика, абстрактна фабрика (factory, abstract factory)
+ - [ ] фасад (facade)
+ - [ ] спостерігач (observer)
+ - [ ] проксі (proxy)
+ - [ ] делегат (delegate)
+ - [ ] команда (command)
+ - [ ] стан (state)
- [ ] memento
- - [ ] iterator
- - [ ] composite
+ - [ ] ітератор (iterator)
+ - [ ] композит (composite)
- [ ] flyweight
- - [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
- - [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- - [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- - [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
- - [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
- - [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
-
-
-- ### Combinatorics (n choose k) & Probability
- - [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- - [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- - [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- - [ ] Khan Academy:
- - Course layout:
- - [ ] [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
- - Just the videos - 41 (each are simple and each are short):
- - [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
+ - [ ] Розділ 6 (частина 1) - Патерни (відео) [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
+ - [ ] Розділ 6 (частина 2) - Абстракція-випадок, Загальна Ієрархія, Гравець-Роль, Синглтон, Спостерігач, Делегування (відео) [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+ - [ ] Розділ 6 (частина 3) - Адаптер, Фасад, Незмінний, Інтерфейс тільки для читання, Проксі (відео) [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
+ - [ ] Серія відео (27 відео) [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
+ - [ ] Шаблони проектування з нуля [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
+ - Я знаю, що канонічною книгою є "Патерни проектування: Elements of Reusable Object-Oriented Software", але Head First чудово підходить для початківців в ООП.
+ - [ ] [Зручне посилання: 101 патерн проектування та поради для розробників](https://sourcemaking.com/design-patterns-and-tips)
+ - [ ] [Патерни проектування для людей](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
+
+
+- ### Комбінаторика (n choose k) та ймовірність
+ - [ ] Математичні навички: Як знайти факторіал, перестановку та комбінацію (на вибір) (відео) [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
+ - [ ] Make School: Ймовірність (відео) [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
+ - [ ] Make School: більше про ймовірності та ланцюжки Маркова [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
+ - [ ] Академія Хана (Khan Academy):
+ - Структура курсу:
+ - [ ] Основи теоретичної ймовірності [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
+ - Всього відео - 41 (кожне просте і кожне коротке):
+ - [ ] Пояснення теорії ймовірностей (відео) [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
- ### NP, NP-Complete and Approximation Algorithms
- Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
From 0dceb917d95c16c857ab39ad2ba5ab409e4d8eb7 Mon Sep 17 00:00:00 2001
From: Vahan Minasian
Date: Sun, 9 Jun 2024 06:48:39 +0400
Subject: [PATCH 158/173] update ukrainian translation up to ###Testing
---
translations/README-uk.md | 212 +++++++++++++++++---------------------
1 file changed, 92 insertions(+), 120 deletions(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 8d8a60406d..32320f72e9 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -137,10 +137,10 @@ Microsoft.
- [Динамічне програмування](#Динамічне-програмування)
- [Шаблони проектування](#Шаблони-проектування)
- [Комбінаторика (n choose k) та ймовірність](#комбінаторика-n-choose-k-та-ймовірність)
- - [NP, NP-повні та Апроксимаційні Алгоритми](#np-np-complete-and-approximation-algorithms)
- - [Як комп'ютери опрацьовують програму](#how-computers-process-a-program)
- - [Кеші](#caches)
- - [Процеси та Треди](#processes-and-threads)
+ - [NP, NP-повні та Апроксимаційні Алгоритми](#np-np-повні-та-апроксимаційні-алгоритми)
+ - [Як комп'ютер виконує програму](#як-комп'ютер-виконує-програму)
+ - [Кеші](#Кеші)
+ - [Процеси та потоки](#процеси-та-потоки)
- [Тестування](#testing)
- [Пошук та маніпуляції з рядками](#string-searching--manipulations)
- [Спроби](#tries)
@@ -1043,123 +1043,95 @@ Microsoft.
- Всього відео - 41 (кожне просте і кожне коротке):
- [ ] Пояснення теорії ймовірностей (відео) [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
-- ### NP, NP-Complete and Approximation Algorithms
- - Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
- and be able to recognize them when an interviewer asks you them in disguise.
- - Know what NP-complete means.
- - [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
- - [ ] Simonson:
- - [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- - [ ] [NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- - [ ] [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
- - [ ] Skiena:
- - [ ] [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
- - [ ] [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
- - [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- - [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- - [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- - Peter Norvig discusses near-optimal solutions to traveling salesman problem:
+- ### NP, NP-повні та Апроксимаційні Алгоритми
+ - Знати про найвідоміші класи NP-повних задач, такі як задача комівояжера та задача про рюкзак,
+ та вміти розпізнавати їх, коли інтерв'юер задає їх у завуальованій формі.
+ - Знати, що означає NP-повні задачі.
+ - [ ] Обчислювальна складність (відео) [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
+ - [ ] Саймонсон:
+ - [ ] Жадібні алгоритми II та вступ до NP-повноти (відео) [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
+ - [ ] NP-повнота II та скорочення (відео) [NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] NP-повнота III (відео) [NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
+ - [ ] NP-повнота IV (відео) [NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
+ - [ ] Скієна:
+ - [ ] CSE373 2012 - Лекція 23 - Вступ до NP-повноти (відео) [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (video)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
+ - [ ] CSE373 2012 - Лекція 24 - Доведення NP-повноти (відео) [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (video)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] CSE373 2012 - Лекція 25 - Виклик NP-повноти (відео) [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
+ - [ ] Складність: P, NP, NP-повнота, редукції (відео) [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
+ - [ ] Складність: Апроксимаційні алгоритми (відео) [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
+ - [ ] Складність: алгоритми з фіксованими параметрами (відео) [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
+ - Пітер Норвіг обговорює близькі до оптимальних розв'язки задачі комівояжера:
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- - Pages 1048 - 1140 in CLRS if you have it.
-
-- ### Caches
- - [ ] LRU cache:
- - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
- - [ ] [Implementing LRU (video)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
- - [ ] [LeetCode - 146 LRU Cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
- - [ ] CPU cache:
- - [ ] [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
- - [ ] [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
-
-- ### Processes and Threads
- - [ ] Computer Science 162 - Operating Systems (25 videos):
- - for processes and threads see videos 1-11
- - [Operating Systems and System Programming (video)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
- - [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
- - Covers:
- - Processes, Threads, Concurrency issues
- - difference between processes and threads
- - processes
- - threads
- - locks
- - mutexes
- - semaphores
- - monitors
- - how they work
- - deadlock
- - livelock
- - CPU activity, interrupts, context switching
- - Modern concurrency constructs with multicore processors
- - [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
- - [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
- - Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
- - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
- - Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
- - Context switching
- - How context switching is initiated by the operating system and underlying hardware
- - [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- - [ ] concurrency in Python (videos):
- - [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
- - [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
- - [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
- - [reference](http://www.dabeaz.com/GIL)
- - [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
- - [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
- - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
-
-- ### Papers
- - Reading all from end to end with full comprehension will likely take more time than you have. I recommend being selective on papers and their sections.
- - [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
- - [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
- - [implemented in Go](https://godoc.org/github.com/thomas11/csp)
- - [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
- - replaced by Colossus in 2012
- - [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- - mostly replaced by Cloud Dataflow?
- - [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
- - [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
- - [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
- - [ ] [2007: Dynamo: Amazon’s Highly Available Key-value Store](https://www.akkadia.org/drepper/cpumemory.pdf)
- - The Dynamo paper kicked off the NoSQL revolution
- - [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
- - [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
- - [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
- - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
- - paper not available
- - [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
- - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
- - [ ] 2013: Spanner: Google’s Globally-Distributed Database:
- - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
- - [video](https://www.usenix.org/node/170855)
- - [ ] [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf)
- - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
- - [ ] [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
- - [ ] [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf )
- - [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
- - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf)
-
-- ### Testing
- - To cover:
- - how unit testing works
- - what are mock objects
- - what is integration testing
- - what is dependency injection
- - [ ] [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
- - [ ] [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
- - [ ] [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
- - [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
- - [ ] [TDD is dead. Long live testing.](http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html)
- - [ ] [Is TDD dead? (video)](https://www.youtube.com/watch?v=z9quxZsLcfo)
- - [ ] [Video series (152 videos) - not all are needed (video)](https://www.youtube.com/watch?v=nzJapzxH_rE&list=PLAwxTw4SYaPkWVHeC_8aSIbSxE_NXI76g)
- - [ ] [Test-Driven Web Development with Python](http://www.obeythetestinggoat.com/pages/book.html#toc)
- - [ ] Dependency injection:
- - [ ] [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
- - [ ] [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- - [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
+ - Сторінки 1048 - 1140 у CLRS, якщо у вас є.
+
+- ### Як комп'ютер виконує програму
+
+ - [ ] Як процесор виконує програму (відео) [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
+ - [ ] Як комп'ютери обчислюють - ALU (відео) [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
+ - [ ] Регістри та оперативна пам'ять (відео) [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
+ - [ ] Центральний процесор (CPU) (відео) [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
+ - [ ] Інструкції та програми (відео) [Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
+
+- ### Кеші
+ - [ ] Кеш-пам'ять останнього використання (LRU cache):
+ - [ ] Магія кешу LRU (100 днів Google Dev) (відео) [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
+ - [ ] Впровадження LRU (відео) [Implementing LRU (video)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
+ - [ ] LeetCode - 146 LRU кеш (C++) (відео) [LeetCode - 146 LRU Cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
+ - [ ] Кеш-пам'ять процесора (CPU cache):
+ - [ ] MIT 6.004 L15: Ієрархія пам'яті (відео) [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
+ - [ ] MIT 6.004 L16: Проблеми з кешем (відео) [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
+
+- ### Процеси та потоки
+ - [ ] Computer Science 162 - Операційні системи (25 відео):
+ - про процеси та потоки див. відео 1-11
+ - Операційні системи та системне програмування (відео) [Operating Systems and System Programming (video)](https://www.youtube.com/playlist?list=PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
+ - Яка різниця між процесом і потоком? [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
+ - Охоплює:
+ - Процеси, потоки, проблеми паралелізму
+ - різниця між процесами та потоками (processes and threads)
+ - процеси (processes)
+ - потоки (threads)
+ - замки (locks)
+ - м'ютекси (mutexes)
+ - семафори (semaphores)
+ - монітори (monitors)
+ - як вони працюють (how they work)
+ - глухий кут (deadlock)
+ - живий кут (livelock)
+ - Активність процесора, переривання, перемикання контексту
+ - Сучасні конструкції паралелізму з багатоядерними процесорами
+ - Пагінація, сегментація та віртуальна пам'ять (відео) [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
+ - Переривання (відео) [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
+ - Планування (відео) [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
+ - Потреби процесу в ресурсах (пам'ять: код, статична пам'ять, стек, купа, а також дескриптори файлів, ввід/вивід)
+ - Потреби потоку в ресурсах (ділить вищеперелічене (крім стеку) з іншими потоками у тому ж самому процесі, але у кожного є свій PC, лічильник стеку, регістри та стек)
+ - Розгалуження - це фактично копіювання на запис (тільки для читання), поки новий процес не запише в пам'ять, після чого він робить повну копію.
+ - Перемикання контексту
+ - Як перемикання контексту ініціюється операційною системою та базовим обладнанням
+ - [ ] потоки в C++ (серія - 10 відео) [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
+ - [ ] паралелізм у Python (відео):
+ - [ ] Короткий плейліст про потоки [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
+ - [ ] Потоки Python [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
+ - [ ] Розуміння Python GIL (2010) [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
+ - [посилання](http://www.dabeaz.com/GIL)
+ - [ ] David Beazley - Паралелізм на Python з нуля: LIVE! - PyCon 2015 [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
+ - [ ] Доповідь Девіда Бізлі - Теми, що нас цікавлять (Python Asyncio) [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
+ - [ ] Mutex у Python [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
+
+- ### Тестування
+ - Охопити:
+ - як працює модульне тестування
+ - що таке макетні об'єкти
+ - що таке інтеграційне тестування
+ - що таке впровадження залежностей
+ - [ ] Гнучке тестування програмного забезпечення з Джеймсом Бахом (відео) [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
+ - [ ] Відкрита лекція Джеймса Баха про тестування програмного забезпечення (відео) [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
+ - [ ] Стів Фрімєн - Розробка, керована тестами (це не те, що ми мали на увазі) (відео) [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
+ - слайди [slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreeman_TestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
+ - [ ] Впровадження залежностей:
+ - [ ] відео [video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
+ - [ ] Дао Тестування [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
+ - [ ] Як писати тести [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
- ### Scheduling
- in an OS, how it works
From 5ee4390480e10bcace191707b6d1737bb5b95ceb Mon Sep 17 00:00:00 2001
From: Vahan Minasian
Date: Sun, 9 Jun 2024 23:34:03 +0400
Subject: [PATCH 159/173] update ukrainian translation up to ## Final Review
---
translations/README-uk.md | 474 +++++++++++++++++++-------------------
1 file changed, 233 insertions(+), 241 deletions(-)
diff --git a/translations/README-uk.md b/translations/README-uk.md
index 32320f72e9..fe5db2181a 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -141,14 +141,14 @@ Microsoft.
- [Як комп'ютер виконує програму](#як-комп'ютер-виконує-програму)
- [Кеші](#Кеші)
- [Процеси та потоки](#процеси-та-потоки)
- - [Тестування](#testing)
- - [Пошук та маніпуляції з рядками](#string-searching--manipulations)
- - [Спроби](#tries)
- - [Числа з рухомою комою](#floating-point-numbers)
- - [Юнікод](#unicode)
- - [Ендіанність](#endianness)
- - [Нетворкінг (мережі)](#networking)
-- [Фінальний огляд](#final-review)
+ - [Тестування](#Тестування)
+ - [Пошук та маніпуляції з рядками](#Пошук-та-маніпуляції-з-рядками)
+ - [Префіксні дерева](#Префіксні-дерева)
+ - [Числа з рухомою комою](#Числа-з-рухомою-комою)
+ - [Юнікод](#Юнікод)
+ - [Ендіанність (Порядок байтів)](#ендіанність-порядок-байтів)
+ - [Робота з мережами](#Робота-з-мережами)
+- [Фінальний огляд](#Фінальний-огляд)
### Отримання роботи
@@ -391,8 +391,6 @@ Microsoft.
- Елементи співбесід з програмування (версія на Java) [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
- [Супутній проект - заглушки методів та тестові кейси для кожної проблеми в книзі](https://github.com/gardncl/elements-of-programming-interviews)
-
-
## Не робіть моїх помилок
Цей список зростав протягом багатьох місяців, і так, він трохи вийшов з-під контролю.
@@ -1133,75 +1131,231 @@ Microsoft.
- [ ] Дао Тестування [Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
- [ ] Як писати тести [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
-- ### Scheduling
- - in an OS, how it works
- - can be gleaned from Operating System videos
-
-- ### Implement system routines
- - understand what lies beneath the programming APIs you use
- - can you implement them?
-
-- ### String searching & manipulations
- - [ ] [Sedgewick - Suffix Arrays (video)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
- - [ ] [Sedgewick - Substring Search (videos)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [1. Introduction to Substring Search](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
- - [ ] [2. Brute-Force Substring Search](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
- - [ ] [3. Knuth-Morris Pratt](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
- - [ ] [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
- - [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
-
- If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
-
-- ### Tries
- - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
- to track the path.
- - I read through code, but will not implement.
- - [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
- - [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
- - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
- - [ ] Short course videos:
- - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
- - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
- - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
- - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
- - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
- - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
- - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
-
-- ### Floating Point Numbers
- - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
- - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
-
-- ### Unicode
- - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
- - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
-
-- ### Endianness
- - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
- - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
- - Very technical talk for kernel devs. Don't worry if most is over your head.
- - The first half is enough.
-
-- ### Networking
- - **if you have networking experience or want to be a systems engineer, expect questions**
- - otherwise, this is just good to know
- - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
- - [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8)
- - [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
- - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM)
- - [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
- - [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
- - [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
- - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
- - [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
- - [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4)
- - [ ] Sockets:
- - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+- ### Пошук та маніпуляції з рядками
+ - [ ] Седжвік - Масиви суфіксів (відео) [Sedgewick - Suffix Arrays (video)](https://www.youtube.com/watch?v=HKPrVm5FWvg)
+ - [ ] Седжвік - Пошук у підрядках (відео) [Sedgewick - Substring Search (videos)](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
+ - [ ] 1. Вступ до пошуку підрядків [1. Introduction to Substring Search](https://www.youtube.com/watch?v=2LvvVFCEIv8&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=5)
+ - [ ] 2. Пошук у підрядках методом грубої сили [2. Brute-Force Substring Search](https://www.youtube.com/watch?v=CcDXwIGEXYU&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=4)
+ - [ ] 3. Кнут-Морріс Пратт [3. Knuth-Morris Pratt](https://www.youtube.com/watch?v=n-7n-FDEWzc&index=3&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
+ - [ ] 4. Бойєра-Мура [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
+ - [ ] 5. Рабін-Карп [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
+ - [ ] Шаблон пошуку в тексті (відео) [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
+
+ Якщо вам потрібна додаткова інформація з цієї теми, зверніться до розділу "Співставлення рядків" у [Додаткова інформація з деяких тем](#additional-detail-on-some-subjects).
+
+- ### Префіксні дерева
+ - Зверніть увагу, що існують різні типи спроб. Деякі з них мають префікси, деякі ні, а деякі використовують рядок замість бітів
+ для відстеження шляху.
+ - Переглядаю код, але не буду реалізовувати.
+ - [ ] Седжвік - Префіксні дерева (3 відео) [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
+ - [ ] 1. Префіксні дерева R Way [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
+ - [ ] 2. Префіксні дерева тернарного пошуку [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
+ - [ ] 3. Символьні операції [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
+ - [ ] Примітки про структури даних та методи програмування [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
+ - [ ] Відео короткого курсу:
+ - [ ] Вступ до префіксних дерев (відео) [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
+ - [ ] Ефективність префіксних дерев (відео) [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
+ - [ ] Реалізація префіксного дерева (відео) [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
+ - [ ] Префіксне дерево: занедбана структура даних [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
+ - [ ] TopCoder - Використання префіксних дерев [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
+ - [ ] Стенфордська лекція (реальний приклад використання) (відео) [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
+ - [ ] MIT, Просунуті структури даних, Рядки (може стати досить незрозумілим приблизно на півдорозі) [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
+
+- ### Числа з рухомою комою
+ - [ ] просте 8-бітне: Представлення чисел з рухомою комою - 1 (відео - є помилка в обчисленнях - дивись опис відео) [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
+
+- ### Юнікод
+ - [ ] Абсолютний мінімум, який кожен розробник програмного забезпечення обов'язково повинен знати про юнікод та набори символів [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets](http://www.joelonsoftware.com/articles/Unicode.html)
+ - [ ] Що обов'язково потрібно знати кожному програмісту про кодування та набори символів для роботи з текстом [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
+
+- ### Ендіанність (Порядок байтів)
+ - [ ] Старший та молодший порядок байтів [Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
+ - [ ] Старший порядок байтів vs Молодший порядок байтів [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
+ - [ ] Старший та молодший порядок байтів у подробицях (відео) [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
+ - Дуже технічна розмова для розробників ядра. Не хвилюйтеся, якщо більшість з них вам не під силу.
+ - Першої половини достатньо.
+
+- ### Робота з мережами
+ - **Якщо у вас є досвід роботи з мережами або ви хочете стати інженером з надійності або інженером з експлуатації, чекайте на запитання**
+ - В іншому випадку, це просто корисно знати
+ - [ ] Академія Хана [Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
+ - [ ] UDP і TCP: порівняння транспортних протоколів (відео) [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
+ - [ ] Пояснення TCP/IP та моделі OSI (відео) [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
+ - [ ] Передача пакетів через Інтернет. Підручник по роботі в мережі та TCP/IP. (відео) [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
+ - [ ] HTTP (відео) [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
+ - [ ] SSL та HTTPS (відео) [SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
+ - [ ] SSL/TLS (відео) [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
+ - [ ] HTTP 2.0 (відео) [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
+ - [ ] Серія відео (21 відео) [Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
+ - [ ] Демістифікація підмережі - частина 5 Нотація CIDR (відео) [Subnetting Demystified - Part 5 CIDR Notation (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
+ - [ ] Сокети:
+ - [ ] Java - Сокети - вступ (відео) [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
+ - [ ] Програмування сокетів (відео) [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
+
+---
+
+## Фінальний огляд
+
+ У цьому розділі зібрані короткі відео, які ви можете переглянути досить швидко, щоб повторити більшість важливих понять.
+ Це дуже зручно, якщо ви часто хочете повторити матеріал.
+
+- [ ] Серія 2-3-хвилинних коротких тематичних відеороликів (23 відео)
+ - Відео [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
+- [ ] Серія 2-5-хвилинних тематичних відеороликів - Майкл Самбол (48 відео):
+ - Відео [Videos](https://www.youtube.com/@MichaelSambol)
+ - Приклади коду [Code Examples](https://github.com/msambol/dsa)
+
+---
+
+## Update Your Resume
+
+- See Resume prep information in the books: "Cracking The Coding Interview" and "Programming Interviews Exposed"
+- ["This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
+ - Note by the author: "This is for a US-focused resume. CVs for India and other countries have different expectations, although many of the points will be the same."
+- ["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
+
+## 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)
+- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
+- [ ] How to Get a Job at the Big 4:
+ - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
+ - [ ] [How to Get a Job at the Big 4.1 (Follow-up video)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
+- [ ] Cracking The Coding Interview Set 1:
+ - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
+ - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
+- [ ] Cracking the Facebook Coding Interview:
+ - [ ] [The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
+ - [ ] [Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
+- Prep Courses:
+ - [Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
+ - A Python-centric interview prep course that covers data structures, algorithms, mock interviews, and much more.
+ - [Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
+ - A free Python-centric data structures and algorithms course.
+ - [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
+ - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.
+ - [Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
+ - Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview.
+ - [AlgoMonster (paid course with free content)](https://algo.monster/?utm_campaign=jwasham&utm_medium=referral&utm_content=coding-interview-university&utm_source=github):
+ - The crash course for LeetCode. Covers all the patterns condensed from thousands of questions.
+
+Mock Interviews:
+- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
+- [Pramp: Mock interviews from/with peers](https://www.pramp.com/) - a peer-to-peer model to practice interviews
+- [interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
+- [Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utm_source=ciu) - an Airbnb-style mock interview/coaching platform.
+- [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.
+
+## 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 2-3 answers for each.
+Have a story, not just data, about something you accomplished.
+
+- Why do you want this job?
+- What's a tough problem you've solved?
+- Biggest challenges faced?
+- Best/worst designs seen?
+- Ideas for improving an existing product.
+- How do you work best, as an individual and as part of a team?
+- Which of your skills or experiences would be assets in the role and why?
+- What did you most enjoy at [job x / project y]?
+- What was the biggest challenge you faced at [job x / project y]?
+- What was the hardest bug you faced at [job x / project y]?
+- What did you learn at [job x / project y]?
+- What would you have done better at [job x / project y]?
+
+## Have questions for the interviewer
+
+Some of mine (I already may know the answers, but want their opinion or team perspective):
+
+- How large is your team?
+- What does your dev cycle look like? Do you do waterfall/sprints/agile?
+- Are rushes to deadlines common? Or is there flexibility?
+- How are decisions made in your team?
+- How many meetings do you have per week?
+- Do you feel your work environment helps you concentrate?
+- What are you working on?
+- What do you like about it?
+- What is the work life like?
+- How is the work/life balance?
+
+## Once You've Got The Job
+
+Congratulations!
+
+Keep learning.
+
+You're never really done.
+
+---
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+ Everything below this point is optional. It is NOT needed for an entry-level interview.
+ However, by studying these, you'll get greater exposure to more CS concepts and will be better prepared for
+ any software engineering job. You'll be a much more well-rounded software engineer.
+
+ *****************************************************************************************************
+ *****************************************************************************************************
+
+---
+
+## Additional Books
+
+ These are here so you can dive into a topic you find interesting.
+
+- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
+ - An oldie but a goodie
+- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
+ - A modern option
+- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
+- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
+ - A gentle introduction to design patterns
+- [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+ - AKA the "Gang Of Four" book or GOF
+ - The canonical design patterns book
+- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
+ - As a review and problem-recognition
+ - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
+ - This book has 2 parts:
+ - Class textbook on data structures and algorithms
+ - Pros:
+ - Is a good review as any algorithms textbook would be
+ - Nice stories from his experiences solving problems in industry and academia
+ - Code examples in C
+ - Cons:
+ - Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
+ - Chapters 7, 8, and 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
+ - Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
+ - Algorithm catalog:
+ - This is the real reason you buy this book.
+ - This book is better as an algorithm reference, and not something you read cover to cover.
+ - Can rent it on Kindle
+ - Answers:
+ - [Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
+ - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
+- [Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
+- [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
+ - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
+ - The author invented [HLA](https://en.wikipedia.org/wiki/High_Level_Assembly), so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
+ - These chapters are worth the read to give you a nice foundation:
+ - Chapter 2 - Numeric Representation
+ - Chapter 3 - Binary Arithmetic and Bit Operations
+ - Chapter 4 - Floating-Point Representation
+ - Chapter 5 - Character Representation
+ - Chapter 6 - Memory Organization and Access
+ - Chapter 7 - Composite Data Types and Memory Objects
+ - Chapter 9 - CPU Architecture
+ - Chapter 10 - Instruction Set Architecture
+ - Chapter 11 - Memory Architecture and Organization
+- [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
+ - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently
+ - AKA CLR, sometimes CLRS, because Stein was late to the game
+- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
+ - For a richer, more up-to-date (2017), but longer treatment
## System Design, Scalability, Data Handling
- **You can expect system design questions if you have 4+ years of experience.**
@@ -1327,168 +1481,6 @@ Microsoft.
- [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
- [Design a cache system](https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/)
----
-
-## Final Review
-
- This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
- It's nice if you want a refresher often.
-
-- [ ] Series of 2-3 minutes short subject videos (23 videos)
- - [Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7_OUkDgpj&index=22)
-- [ ] Series of 2-5 minutes short subject videos - Michael Sambol (48 videos):
- - [Videos](https://www.youtube.com/@MichaelSambol)
- - [Code Examples](https://github.com/msambol/dsa)
-
----
-
-## Coding Question Practice
-
-Now that you know all the computer science topics above, it's time to practice answering coding problems.
-
-**Coding question practice is not about memorizing answers to programming problems.**
-
-Why you need to practice doing programming problems:
-- problem recognition, and where the right data structures and algorithms fit in
-- gathering requirements for the problem
-- talking your way through the problem like you will in the interview
-- coding on a whiteboard or paper, not a computer
-- coming up with time and space complexity for your solutions
-- testing your solutions
-
-There is a great intro for methodical, communicative problem solving in an interview. You'll get this from the programming
-interview books, too, but I found this outstanding:
-[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
-
-No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. Instead of a whiteboard, pick up a
-large drawing pad from an art store. You can sit on the couch and practice. This is my "sofa whiteboard".
-I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick.
-
-
-
-Supplemental:
-
-- [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/)
-- [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/)
-- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php)
-
-**Read and Do Programming Problems (in this order):**
-
-- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- - answers in C, C++ and Java
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- - answers in Java
-
-See [Book List above](#book-list)
-
-## Coding exercises/challenges
-
-Once you've learned your brains out, put those brains to work.
-Take coding challenges every day, as many as you can.
-
-- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
-- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
-
-Coding Interview Question Videos:
-- [IDeserve (88 videos)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
-- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
-
-Challenge sites:
-- [LeetCode](https://leetcode.com/)
-- [TopCoder](https://www.topcoder.com/)
-- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
-- [Codewars](http://www.codewars.com)
-- [HackerRank](https://www.hackerrank.com/)
-- [Codility](https://codility.com/programmers/)
-- [InterviewCake](https://www.interviewcake.com/)
-- [Geeks for Geeks](http://www.geeksforgeeks.org/)
-- [InterviewBit](https://www.interviewbit.com)
-- [Sphere Online Judge (spoj)](http://www.spoj.com/)
-
-Mock Interviews:
-- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/)
-- [Pramp: Mock interviews from/with peers](https://www.pramp.com/)
-
-## Once you're closer to the interview
-
-- [ ] Cracking The Coding Interview Set 2 (videos):
- - [Cracking The Code Interview](https://www.youtube.com/watch?v=4NIb9l3imAo)
- - [Cracking the Coding Interview - Fullstack Speaker Series](https://www.youtube.com/watch?v=Eg5-tdAwclo)
- - [Ask Me Anything: Gayle Laakmann McDowell (author of Cracking the Coding Interview)](https://www.youtube.com/watch?v=1fqxMuPmGak)
-
-## Your Resume
-
-- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
-
-
-## 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 2-3 answers for each.
-Have a story, not just data, about something you accomplished.
-
-- Why do you want this job?
-- What's a tough problem you've solved?
-- Biggest challenges faced?
-- Best/worst designs seen?
-- Ideas for improving an existing product.
-- How do you work best, as an individual and as part of a team?
-- Which of your skills or experiences would be assets in the role and why?
-- What did you most enjoy at [job x / project y]?
-- What was the biggest challenge you faced at [job x / project y]?
-- What was the hardest bug you faced at [job x / project y]?
-- What did you learn at [job x / project y]?
-- What would you have done better at [job x / project y]?
-
-## Have questions for the interviewer
-
- Some of mine (I already may know answer to but want their opinion or team perspective):
-
-- How large is your team?
-- What does your dev cycle look like? Do you do waterfall/sprints/agile?
-- Are rushes to deadlines common? Or is there flexibility?
-- How are decisions made in your team?
-- How many meetings do you have per week?
-- Do you feel your work environment helps you concentrate?
-- What are you working on?
-- What do you like about it?
-- What is the work life like?
-
-## Once You've Got The Job
-
-Congratulations!
-
-Keep learning.
-
-You're never really done.
-
----
-
- *****************************************************************************************************
- *****************************************************************************************************
-
- Everything below this point is optional.
- By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
- any software engineering job. You'll be a much more well-rounded software engineer.
-
- *****************************************************************************************************
- *****************************************************************************************************
-
----
-
-## Additional Books
-
-- [ ] [The Unix Programming Environment](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=info)
- - an oldie but a goodie
-- [ ] [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
- - a modern option
-- [ ] [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated)
-- [ ] [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
- - a gentle introduction to design patterns
-- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- - aka the "Gang Of Four" book, or GOF
- - the canonical design patterns book
-- [ ] [UNIX and Linux System Administration Handbook, 4th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/)
-
## Additional Learning
These topics will likely not come up in an interview, but I added them to help you become a well-rounded
From 26bde0ca4b412492ef4697443fa2426d06b7a54b Mon Sep 17 00:00:00 2001
From: Ronny Pacheco
Date: Wed, 12 Jun 2024 01:34:47 -0400
Subject: [PATCH 160/173] Typo on "translations"
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b7f93c0b9f..5ca71098f6 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@
- [Português Brasileiro](translations/README-ptbr.md)
- [Russian](translations/README-ru.md)
- [Tiếng Việt - Vietnamese](translations/README-vi.md)
-- [Urdu - اردو](tanslations/README-ur.md)
+- [Urdu - اردو](translations/README-ur.md)
- [Uzbek](translations/README-uz.md)
- [বাংলা - Bangla](translations/README-bn.md)
- [ខ្មែរ - Khmer](translations/README-kh.md)
From ed8ef705ce4318d8d244c676716471f33ba58a64 Mon Sep 17 00:00:00 2001
From: zerone0x
Date: Thu, 20 Jun 2024 14:24:03 +0800
Subject: [PATCH 161/173] Add Binary Heaps MIT into Heap Part
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 5ca71098f6..b16d699beb 100644
--- a/README.md
+++ b/README.md
@@ -802,6 +802,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
- [ ] [Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
+ - [ ] [MIT 6.006 Introduction to Algorithms:Binary Heaps](https://www.youtube.com/watch?v=Xnpo1atN-Iw&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=12)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
From b4be60c3e737e7cbeb438e9c9f4ccde523996cbb Mon Sep 17 00:00:00 2001
From: zerone0x
Date: Thu, 20 Jun 2024 14:28:24 +0800
Subject: [PATCH 162/173] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b16d699beb..0d5f6010f2 100644
--- a/README.md
+++ b/README.md
@@ -802,7 +802,7 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
- [ ] [Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
- [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- - [ ] [MIT 6.006 Introduction to Algorithms:Binary Heaps](https://www.youtube.com/watch?v=Xnpo1atN-Iw&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=12)
+ - [ ] [MIT 6.006 Introduction to Algorithms: Binary Heaps](https://www.youtube.com/watch?v=Xnpo1atN-Iw&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=12)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
- [ ] [[Review] Heap (playlist) in 13 minutes (video)](https://www.youtube.com/playlist?list=PL9xmBV_5YoZNsyqgPW-DNwUeT8F8uhWc6)
From 43d0746973d849b2652611a3a30007c845b241e8 Mon Sep 17 00:00:00 2001
From: zerone0x
Date: Fri, 21 Jun 2024 17:00:19 +0800
Subject: [PATCH 163/173] Update README.md
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index 0d5f6010f2..135102c949 100644
--- a/README.md
+++ b/README.md
@@ -801,7 +801,6 @@ if you can identify the runtime complexity of different algorithms. It's a super
- [ ] [Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
- [ ] [Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
- [ ] [Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
- - [ ] [MIT: Heaps and Heap Sort (video)](https://www.youtube.com/watch?v=B7hVxCmfPtM&index=4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [ ] [MIT 6.006 Introduction to Algorithms: Binary Heaps](https://www.youtube.com/watch?v=Xnpo1atN-Iw&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=12)
- [ ] [CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [ ] [Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
From 782553adcbfddb5305baa10964125eca4e7473d2 Mon Sep 17 00:00:00 2001
From: John Washam
Date: Wed, 31 Jul 2024 17:21:55 -0700
Subject: [PATCH 164/173] Update links_checker.yml
Decreased concurrency
---
.github/workflows/links_checker.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/links_checker.yml b/.github/workflows/links_checker.yml
index 4d582c0740..f796ee6cb3 100644
--- a/.github/workflows/links_checker.yml
+++ b/.github/workflows/links_checker.yml
@@ -28,12 +28,13 @@ jobs:
fail: false
## Allow pages replying with 200 (Ok), 204 (No Content),
## 206 (Partial Content) in at most 20 seconds with HTML content.
+ ## max-concurrency was 20, getting network errors
args: >-
--verbose
--accept 200,204,206
--headers "accept=text/html"
--timeout 20
- --max-concurrency 10
+ --max-concurrency 3
--no-progress
README.md
env:
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 165/173] 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)
From 69ecb92da510b33178d5c002ddc9c18552ec4e12 Mon Sep 17 00:00:00 2001
From: HUI XU
Date: Thu, 29 Aug 2024 22:58:20 -0700
Subject: [PATCH 166/173] Fix translation errors in README-cn.md file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Corrected two translation errors in README-cn.md file:
- Fixed translation of ''Do 2 or 3 questions regarding linked lists'' from ''关于链表的问题,请提出2或3个'' to ''请先做2或3个关于链表的问题''.
- Fixed translation of ''but how you apply the knowledge'' from ''而是因为你如何应用这些知识'' to ''而是因为你知道如何应用这些知识''.
This correction improves clarity and better aligns with the intended meaning of the original text.
---
translations/README-cn.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/translations/README-cn.md b/translations/README-cn.md
index ed67588f09..d40f1832b4 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -407,14 +407,14 @@
一旦你学完一个主题,并且对它有了一定的掌握,比如 **链表(linked lists)**:
1. 打开其中一本[编程面试书籍](#interview-prep-books)(或下方列出的编程问题网站之一)。
-1. 关于链表的问题,请提出2或3个。
+1. 请先做2或3个关于链表的问题。
1. 继续学习下一个主题。
1. 稍后,回来再做另外2或3个链表问题。
1. 使用这种方法来学习每个新主题。
**在学习这些内容的过程中不断做问题,而不是之后。**
-你被雇佣的不是因为你的知识,而是因为你如何应用这些知识。
+你被雇佣的不是因为你的知识,而是因为你知道如何应用这些知识。
下面列出了许多资源供你参考。继续前进吧。
From a6a4564de514afaecee1187219f26f765f9f893a Mon Sep 17 00:00:00 2001
From: John Washam
Date: Fri, 13 Sep 2024 13:40:15 -0700
Subject: [PATCH 167/173] Removes sponsorship file.
---
.github/FUNDING.yml | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 .github/FUNDING.yml
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index 1cf53a951a..0000000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-github: jwasham
From 45e2f51b843ea59fc5340b397d6ff12a381d0ac0 Mon Sep 17 00:00:00 2001
From: Winnd11
Date: Tue, 8 Oct 2024 11:05:35 -0300
Subject: [PATCH 168/173] Fix PT-BR translations errors
---
translations/README-ptbr.md | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index c1ebca0c38..ee06f6f49d 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -846,8 +846,8 @@ Grafos podem ser usados para representar muitos problemas na Ciência da Computa
- matriz de adjacência
- lista de adjacência
- mapa de adjacência
- - Famialirize-se com cada representação e seus prós e contras.
- - Busca em Largura (BFS) e Busca em Profundidade (DFS) - saiba a complexidade computacional deles, seus perde-e-ganhas (tradeoffs), e como implementar eles em código real.
+ - Familiarize-se com cada representação e seus prós e contras.
+ - Busca em Largura (BFS) e Busca em Profundidade (DFS) - saiba a complexidade computacional deles, dos seus prós e contras (tradeoffs), e como implementar eles em código real.
- Quando for perguntado uma questão, busque por uma solução baseada em grafos primeiro, depois se não houver nenhuma, siga em frente.
- [ ] Aulas do Skiena - ótima introdução:
@@ -887,7 +887,7 @@ Grafos podem ser usados para representar muitos problemas na Ciência da Computa
- [ ] Busca em Largura (BFS) com matriz de adjacência
- [ ] menor caminho de fonte-única (Dijkstra)
- [ ] árvore de extensão mínima
- - Algoritmos baseados em busca em profundidade (DFS) (ver vídeos da Aduni acima):
+ - Algoritmos baseados em busca em profundidade (DFS) (veja os vídeos do Aduni acima):
- [ ] checar por ciclos (necessário para ordenação topológica, já que nós iremos checar por ciclos antes de começar)
- [ ] ordenação topológica
- [ ] contar componentes conectados em um grafo
@@ -1014,7 +1014,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) (Complexidade: Algorítmos de Parâmetro-Fixado - vídeo)
- Peter Norvig debate soluções tão boas quanto possível para o problema do vendedor viajante:
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb) (Caderno de Júpiter)
- - Páginas 1048 - 1140 em CLRS (livro Introdução à Algoritmos) se você o tive.r
+ - Páginas 1048 - 1140 em CLRS (livro Introdução à Algoritmos) se você o tiver
- ### Caches
- [ ] Cache LRU:
@@ -1045,13 +1045,12 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- atividade, interrupções e troca de contexto de CPU
- Construtos de simultaneidade modernos com processadores de múltiplos núcleos.
- [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2) (Paginação, segmentação e memória virtual - vídeo)
- - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3) (Interruoções - vídeo)
- - [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8) (Agendamento - vídeo)
- - Necessidades de recurso de processos (memória: código, armazenamento estático, memória estática (stack), memória dinâmica (heap), e também descritores de arquivo, i/o
+ - [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
+ - Necessidades de recurso de processos (memória: código, armazenamento estático, memória estática (stack), memória dinâmica (heap), e também descritores de arquivo, i/o)
- Necessidades de recurso de threads (o mesmo que acima (menos stack) com outras threads no mesmo processo, mas cada um tem seu próprio pc, contador de stack, registros, e stack)
- Bifurcação nada mais é que COW (copy-on-write) (somente leitura) até que o novo processo escreva na memória, depois ela faz uma cópia completa.
- Troca de contexto
- - Como a troca de contexto é iniciada pelo sistema operacional e componentes de hardware subjacentes
+ - [Como a troca de contexto é iniciada pelo sistema operacional e componentes de hardware subjacentes](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
- [ ] [threads em C++ (série- 10 vídeos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
- [ ] simultaneidade (ou concorrência) em Python (vídeos):
- [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1) (Pequena série sobre threads)
From 2d7b049f48bc88a7b7fc6668f9d17b249fe971ab Mon Sep 17 00:00:00 2001
From: Lei Shi
Date: Wed, 16 Oct 2024 14:32:07 +0800
Subject: [PATCH 169/173] Add free linux commands tutorials and DevOps section
---
README.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 15901b768c..dda26fde56 100644
--- a/README.md
+++ b/README.md
@@ -1557,7 +1557,7 @@ You're never really done.
- [The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpw_I&t=0s)
- [The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
-- ### Unix command line tools
+- ### Unix/Linux command line tools
- I filled in the list below from good tools.
- bash
- cat
@@ -1570,6 +1570,10 @@ You're never really done.
- uniq
- [strace](https://en.wikipedia.org/wiki/Strace)
- [tcpdump](https://danielmiessler.com/study/tcpdump/)
+ - [Essential Linux Commands Tutorial](https://labex.io/tutorials/practice-linux-commands-hands-on-labs-398420)
+
+- ### DevOps
+ - [DevOps Roadmap](https://roadmap.sh/devops)
- ### Information theory (videos)
- [Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
From 39d8165fb1be2c3f2d5d038ec156abac7d76a521 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=AF=E2=99=A1M=2E=2E=2E=E2=88=9E?=
<18311071+ru44@users.noreply.github.com>
Date: Tue, 22 Oct 2024 14:21:59 +0300
Subject: [PATCH 170/173] Update README-ar.md
fix some Arabic typos
---
translations/README-ar.md | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 14d7b3e293..2050650dfa 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -1,19 +1,18 @@
-# الإعداد لمقابلة البرمجة
+# جامعة المقابلات البرمجية
-> لقد قمت بأنشاء هذا في الأصل كلائحة صغيرة تحتوي على مواضيع دراسية الغرض من دراستها ان أصبح مهندس برامجيات،
-> لكنها توسعت الى قائمة كبيرة التي تراها اليوم. بعد ان قمتُ بدراسة لائحة المواضيع هذه وحسب الخطة، [حصلت على عمل كمهندس برامجيات في شركة امازون](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
+> لقد قمت بإنشاء هذا المشروع في الأصل كلائحة صغيرة تحتوي على مواضيع دراسية الغرض من دراستها أن أصبح مهندس برمجيات،
+> لكنها توسعت إلى قائمة كبيرة كالتي تراها اليوم. بعد أن قمتُ بدراسة هذه الخطة الدراسية [حصلت على عمل كمهندس برمجيات في شركة أمازون](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)
>! على الأغلب لن تحتاج إلى ان تدرس بالقدر الذي درسته أنا. لكن على كل حال كل ما تحتاج إليه موجود هنا.
>
->درستُ لمدة ٨-١٢ ساعة في اليوم, لعدة أشهر. هذه هي قصتي: [لماذا كرستُ كل وقتي لمدة ثمانية أشهر من أجل مقابلة لدا قوقل](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
+>درستُ لمدة ٨-١٢ ساعة خلال اليوم الواحد, لعدة أشهر. هذه هي قصتي: [لماذا كرستُ كل وقتي لمدة ثمانية أشهر من أجل مقابلة لدا قوقل](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
>
-> **ملاحظة:** لن تحتاج للدراسة بقدر ما فعلت انا، لقد اهدرت المزيد من الوقت والجهد على مواضيع لم اكن بحاجة الى معرفتها، مزيد حول ذلك ادناه، سوف اساعدك بالوصول الى هناك دون اضاعة وقتك الثمين.
+> **ملاحظة:** لن تحتاج للدراسة بقدر ما فعلت أنا، لقد اهدرت المزيد من الوقت والجهد على مواضيع لم أكن بحاجة إلى معرفتها، مزيد حول ذلك أدناه، سوف أساعدك بالوصول إلى هناك دون إضاعة وقتك الثمين.
>
-> المواضيع المدرجة في هذه اللائحة ستجهزك جيدا لاجراء مقابلة تقنية مع اي شركة برمجية تقريبا، حتى الشركات العملاقة: أمازون، فيسبوك، قوقل، وميكروسوفت.
->
->بالتوفيق.
+> المواضيع المدرجة في هذه اللائحة ستجهزك جيدا لإجراء مقابلة تقنية مع أي شركة برمجية تقريبا، حتى الشركات العملاقة: أمازون، فيسبوك، قوقل، ومايكروسوفت.
>
+>حظاً موفقاً
@@ -67,19 +66,19 @@
-## ما هذا!
+## ما هذا؟
-هذه خطتي الدراسية التي تستغرق عدة اشهر من اجل ان اصبح مهندس برامجيات في شركة عملاقة.
+هذه خطتي الدراسية التي تستغرق عدة أشهر من أجل أن أصبح مهندس برامجيات في شركة عملاقة.
**المتطلبات:**
* خبرة قليلة في البرمجة (المتغيرات، التكرارات، الدوال، الخ).
* صبر.
* وقت.
-ملاحظة: هذه الخطة الدراسية هي من اجل ان تصبح مهندس برامجيات وليس من اجل ان تصبح مطور تطبيقات للويب. كبرى الشركات التقنية مثل كوكل، امازون، مايكروسوفت، فيسبوك ينظرون الى مهندس البرامجيات بنظرة مختلفة عن مطور البرامجيات/الويب، على سبيل المثال شركة امازون لديها مهندس الواجهات (Frontend Engineers) ولديها مهندس تطوير برامجيات (Software Development Engineers) ولكل منها دور مختلف والمقابلة التقنية لكل منها مختلفة تماما، لكن بصورة عام تتطلب هذه الشركات معرفة بعلوم الحاسوب للمتقدمين لشغل ادوار تخص تطوير البرامجيات او هندسة البرامجيات.
+ملاحظة: هذه الخطة الدراسية هي من أجل أن تصبح مهندس برامجيات وليس من أجل أن تصبح مطور تطبيقات للويب. كبرى الشركات التقنية مثل قوقل، أمازون، مايكروسوفت، فيسبوك ينظرون إلى مهندس البرمجيات بنظرة مختلفة عن مطور البرمجيات/الويب، على سبيل المثال شركة أمازون لديها مهندس الواجهات (Frontend Engineers) ولديها مهندس تطوير برامجيات (Software Development Engineers) ولكل منها دور مختلف والمقابلة التقنية لكل منها مختلفة تماما، لكن بصورة عامة تتطلب هذه الشركات معرفة بعلوم الحاسب للمتقدمين لشغل أدوار تخص تطوير البرمجيات أو هندسة البرمجيات.
@@ -207,7 +206,7 @@
## لماذا استخدم هذه الخطة الدراسية؟
-أقوم بمتابعة هذه الخطة لتحضير إلى المقابلة الشخصية بجوجل. لقد قمت بناء مواقع ويب، وتقديم خدمات ذات صلة، وبناء شركات ناشئة منذ 1997. لدي درجة علمية في الاقتصاد، وليس في علوم الحاسب. أنا شخص ناجح في مجال عملي، ولكنني أريد أن أعمل بجوجل. أريد أن أعمل على أنظمة كبيرة والحصول على فهم كبير في أنظمة الحاسوب، كفاءة الخوارزميات، كقاءة الهياكل البيانية، اللغات الأقرب إلى الآلة وكيفية عملها. وإذ لم تعرف أين منها لن تعينك جوجل.
+أقوم بمتابعة هذه الخطة لتحضير إلى المقابلة الشخصية بقوقل. لقد قمت بناء مواقع إلكترونية، وتقديم خدمات ذات صلة، وبناء شركات ناشئة منذ 1997. لدي درجة علمية في الاقتصاد، وليس في علوم الحاسب. أنا شخص ناجح في مجال عملي، ولكنني أريد أن أعمل بقوقل. أريد أن أعمل على أنظمة كبيرة والحصول على فهم كبير في أنظمة الحاسب، كفاءة الخوارزميات، كفاءة الهياكل البيانية، اللغات الأقرب إلى الآلة وكيفية عملها. وإذا لم تعرف أين منها لن تعينك قوقل.
عندما بدأت هذا المشروع، لم أكن أعرف الإستاك "stack" من الهيب "heap"، ولم أكن أعرف المعامل الأعلى في قياس كفاءة الخوارزميات "Big-O"، ولا عن التري "tree"، أو عن زيارة الجراف "graph".
إذا كان عليا أن أصنع برنامج عن الترتيب، سأخبرك أنه ليس على درجة عالية من الكقاءة.
@@ -221,7 +220,7 @@
سأستخدم خاصية تعليم ماأنجز من الجيت هب "Github" لمتابعة التقدم.
-**اصنع مسار جديد يمكن من خلاله أن تضع علامة [x]**
+**أصنع مسار جديد يمكن من خلاله أن تضع علامة [x]**
احصل على نسخة خاصة "fork" بك واتبع هذه الأوامر
1- Clone to your local repo
```
From 1cea0663056506b833c567a1a1ea47084707fbdf Mon Sep 17 00:00:00 2001
From: Shaun Gunawardane <65139543+shaungunaw@users.noreply.github.com>
Date: Fri, 6 Dec 2024 10:30:42 +1100
Subject: [PATCH 171/173] Update README.md
Coding Interview Patterns is included as a recommended book to supplement learning.
---
README.md | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index dda26fde56..633ca5cd1c 100644
--- a/README.md
+++ b/README.md
@@ -387,15 +387,20 @@ Your choice:
## Interview Prep Books
-You don't need to buy a bunch of these. Honestly "Cracking the Coding Interview" is probably enough,
-but I bought more to give myself more practice. But I always do too much.
+Here are some recommended books to supplement your learning.
-I bought both of these. They gave me plenty of practice.
+
+- [Coding Interview Patterns: Nail Your Next Coding Interview](https://geni.us/q7svoz) (**Main recommendation**)
+ - An insider’s perspective on what interviewers are truly looking for and why.
+ - 101 real coding interview problems with detailed solutions.
+ - Intuitive explanations that guide you through each problem as if you were solving it in a live interview.
+ - 1000+ diagrams to illustrate key concepts and patterns.
- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- Answers in C++ and Java
- This is a good warm-up for Cracking the Coding Interview
- Not too difficult. Most problems may be easier than what you'll see in an interview (from what I've read)
+
- [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- answers in Java
From 6f9e1db97ec9a8d1ef1ef47c3046f797e6120447 Mon Sep 17 00:00:00 2001
From: Shaun Gunawardane <65139543+shaungunaw@users.noreply.github.com>
Date: Fri, 6 Dec 2024 10:35:29 +1100
Subject: [PATCH 172/173] Update README.md
Updated Python book recommendation to Coding Interview Patterns.
---
README.md | 23 +++++++++--------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
index 633ca5cd1c..6fdfddb548 100644
--- a/README.md
+++ b/README.md
@@ -348,19 +348,19 @@ This book will form your foundation for computer science.
Just choose one, in a language that you will be comfortable with. You'll be doing a lot of reading and coding.
+### Python
+
+- [Coding Interview Patterns: Nail Your Next Coding Interview](https://geni.us/q7svoz) (**Main Recommendation**)
+ - An insider’s perspective on what interviewers are truly looking for and why.
+ - 101 real coding interview problems with detailed solutions.
+ - Intuitive explanations that guide you through each problem as if you were solving it in a live interview.
+ - 1000+ diagrams to illustrate key concepts and patterns.
+
### C
- [Algorithms in C, Parts 1-5 (Bundle), 3rd Edition](https://www.amazon.com/Algorithms-Parts-1-5-Bundle-Fundamentals/dp/0201756080)
- Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms
-### Python
-
-- [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
- - by Goodrich, Tamassia, Goldwasser
- - I loved this book. It covered everything and more.
- - Pythonic code
- - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
-
### Java
Your choice:
@@ -389,12 +389,7 @@ Your choice:
Here are some recommended books to supplement your learning.
-
-- [Coding Interview Patterns: Nail Your Next Coding Interview](https://geni.us/q7svoz) (**Main recommendation**)
- - An insider’s perspective on what interviewers are truly looking for and why.
- - 101 real coding interview problems with detailed solutions.
- - Intuitive explanations that guide you through each problem as if you were solving it in a live interview.
- - 1000+ diagrams to illustrate key concepts and patterns.
+- [Coding Interview Patterns: Nail Your Next Coding Interview](https://geni.us/q7svoz)
- [Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)
- Answers in C++ and Java
From 717298bf219a30d7fb0671285c5f057b1bb74b27 Mon Sep 17 00:00:00 2001
From: Shaun Gunawardane <65139543+GoAheadShaun@users.noreply.github.com>
Date: Fri, 6 Dec 2024 10:46:51 +1100
Subject: [PATCH 173/173] Removed the sponsorship option from all README files.
---
README.md | 7 -------
translations/README-af.md | 7 -------
translations/README-ar.md | 6 ------
translations/README-bg.md | 7 -------
translations/README-bn.md | 7 -------
translations/README-cn.md | 7 -------
translations/README-de.md | 7 -------
translations/README-es.md | 7 -------
translations/README-fa.md | 7 -------
translations/README-fr.md | 7 -------
translations/README-he.md | 8 --------
translations/README-hi.md | 8 --------
translations/README-id.md | 7 -------
translations/README-it.md | 7 -------
translations/README-ja.md | 8 --------
translations/README-kh.md | 7 -------
translations/README-kk.md | 25 -------------------------
translations/README-ko.md | 7 -------
translations/README-mr.md | 7 -------
translations/README-nl.md | 25 +------------------------
translations/README-pl.md | 8 +-------
translations/README-ptbr.md | 7 -------
translations/README-ru.md | 7 -------
translations/README-th.md | 8 +-------
translations/README-tr.md | 7 -------
translations/README-tw.md | 7 -------
translations/README-uk.md | 7 -------
translations/README-ur.md | 7 -------
translations/README-uz.md | 7 -------
translations/README-vi.md | 7 -------
30 files changed, 3 insertions(+), 247 deletions(-)
diff --git a/README.md b/README.md
index 6fdfddb548..95a0d31a93 100644
--- a/README.md
+++ b/README.md
@@ -54,13 +54,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## What is it?
diff --git a/translations/README-af.md b/translations/README-af.md
index 41d8f57fb0..f270da48c2 100644
--- a/translations/README-af.md
+++ b/translations/README-af.md
@@ -53,13 +53,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## Wat is dit?
diff --git a/translations/README-ar.md b/translations/README-ar.md
index 2050650dfa..059e10d47c 100644
--- a/translations/README-ar.md
+++ b/translations/README-ar.md
@@ -59,12 +59,6 @@
-
## ما هذا؟
diff --git a/translations/README-bg.md b/translations/README-bg.md
index 0ac2b95a7d..8bdea1ebd3 100644
--- a/translations/README-bg.md
+++ b/translations/README-bg.md
@@ -49,13 +49,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## Какво е това?
diff --git a/translations/README-bn.md b/translations/README-bn.md
index de98566ffb..0480213a1a 100644
--- a/translations/README-bn.md
+++ b/translations/README-bn.md
@@ -53,13 +53,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## এটি কি
diff --git a/translations/README-cn.md b/translations/README-cn.md
index d40f1832b4..26d1b0966f 100644
--- a/translations/README-cn.md
+++ b/translations/README-cn.md
@@ -9,13 +9,6 @@
>
> **祝你好运!**
-
## 这是?
diff --git a/translations/README-de.md b/translations/README-de.md
index d3479e6bb3..091454f2d8 100644
--- a/translations/README-de.md
+++ b/translations/README-de.md
@@ -51,13 +51,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## Worum es geht
diff --git a/translations/README-es.md b/translations/README-es.md
index d4a3600884..4780f5f54d 100644
--- a/translations/README-es.md
+++ b/translations/README-es.md
@@ -50,13 +50,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## ¿Qué es esto?
diff --git a/translations/README-fa.md b/translations/README-fa.md
index 2a4e5296db..d4373af1f3 100644
--- a/translations/README-fa.md
+++ b/translations/README-fa.md
@@ -53,13 +53,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## این چیه؟
diff --git a/translations/README-fr.md b/translations/README-fr.md
index 964d90bab6..3de6f1d991 100644
--- a/translations/README-fr.md
+++ b/translations/README-fr.md
@@ -5,13 +5,6 @@ Traductions:
- [Español (in progress)](README-es.md) [Issue #80](https://github.com/jwasham/coding-interview-university/issues/80)
- मानक हिन्दी (in progress) [Issue #81](https://github.com/jwasham/coding-interview-university/issues/81)
-
## C'est quoi?
diff --git a/translations/README-he.md b/translations/README-he.md
index 2b02e12859..73c5349d90 100644
--- a/translations/README-he.md
+++ b/translations/README-he.md
@@ -17,14 +17,6 @@
שיהיה המון בהצלחה!
-
-
חלק גדול מהתכנים לקוחים מהאתר המצויין של סטיב יגיי: המשרה הזו בגוגל? שלך!
"[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)"
diff --git a/translations/README-hi.md b/translations/README-hi.md
index 7b19b2296c..9d43d92b90 100644
--- a/translations/README-hi.md
+++ b/translations/README-hi.md
@@ -55,14 +55,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## यह क्या है?
diff --git a/translations/README-id.md b/translations/README-id.md
index 5c480e3bce..7f35ebbb50 100644
--- a/translations/README-id.md
+++ b/translations/README-id.md
@@ -2,13 +2,6 @@
Versi asli: [Bahasa Inggris](../README.md)
-
## Ringkasan apa ini?
diff --git a/translations/README-it.md b/translations/README-it.md
index d3c97f1e97..f2f587e15e 100644
--- a/translations/README-it.md
+++ b/translations/README-it.md
@@ -59,13 +59,6 @@ Traduzione in Italiano a Cura di [@volpoh](https://github.com/volpoh)
-
## Che cos'e'?
diff --git a/translations/README-ja.md b/translations/README-ja.md
index 4b85e59a5f..0e2b7f08b9 100644
--- a/translations/README-ja.md
+++ b/translations/README-ja.md
@@ -34,14 +34,6 @@
- [タイ語](https://github.com/jwasham/coding-interview-university/issues/156)
- [ギリシャ語](https://github.com/jwasham/coding-interview-university/issues/166)
-
-
## これは何?

diff --git a/translations/README-kh.md b/translations/README-kh.md
index 23a2a16df0..c1d113a220 100644
--- a/translations/README-kh.md
+++ b/translations/README-kh.md
@@ -53,13 +53,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
---
diff --git a/translations/README-kk.md b/translations/README-kk.md
index b857da2ae5..0deb91cb6a 100644
--- a/translations/README-kk.md
+++ b/translations/README-kk.md
@@ -91,31 +91,6 @@
-
## Бұл не?
diff --git a/translations/README-ko.md b/translations/README-ko.md
index 3329d429df..a4836edd36 100644
--- a/translations/README-ko.md
+++ b/translations/README-ko.md
@@ -51,13 +51,6 @@
-
## 이건 대체 뭐하는 건가요?
diff --git a/translations/README-mr.md b/translations/README-mr.md
index 567e08705a..a937e003aa 100644
--- a/translations/README-mr.md
+++ b/translations/README-mr.md
@@ -53,13 +53,6 @@
- [मराठी](https://github.com/jwasham/coding-interview-university/issues/1002)
-
## हे काय आहे?
diff --git a/translations/README-nl.md b/translations/README-nl.md
index 5b07b61f7e..27f99cb454 100644
--- a/translations/README-nl.md
+++ b/translations/README-nl.md
@@ -54,30 +54,7 @@
-
## Wat is het?
diff --git a/translations/README-pl.md b/translations/README-pl.md
index 56e964f107..556f40fca6 100644
--- a/translations/README-pl.md
+++ b/translations/README-pl.md
@@ -49,13 +49,7 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
+
## Co to jest?
To jest mój wielomiesięczny plan nauki od przejścia od programisty (samouka, bez dyplomu CS - informatyki) do inżyniera oprogramowania dla dużej firmy.
diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md
index ee06f6f49d..b4c065d959 100644
--- a/translations/README-ptbr.md
+++ b/translations/README-ptbr.md
@@ -49,13 +49,6 @@ Traduções em progresso:
- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## O que é isso?
diff --git a/translations/README-ru.md b/translations/README-ru.md
index 0b6f308c9d..06ab577b0f 100644
--- a/translations/README-ru.md
+++ b/translations/README-ru.md
@@ -2,13 +2,6 @@
Оригинальная версия: [Английский](../README.md)
-
## Для кого это?
diff --git a/translations/README-th.md b/translations/README-th.md
index 32e4acea79..234399b8db 100644
--- a/translations/README-th.md
+++ b/translations/README-th.md
@@ -26,13 +26,7 @@
- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
-
+
## นี่คืออะไร ?
diff --git a/translations/README-tr.md b/translations/README-tr.md
index a7dd4dd3e0..255b71f9b9 100644
--- a/translations/README-tr.md
+++ b/translations/README-tr.md
@@ -52,13 +52,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## Nedir?
diff --git a/translations/README-tw.md b/translations/README-tw.md
index 05c156f84a..4dc016f993 100644
--- a/translations/README-tw.md
+++ b/translations/README-tw.md
@@ -50,13 +50,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## What is it?
diff --git a/translations/README-uk.md b/translations/README-uk.md
index fe5db2181a..1807b4fd9d 100644
--- a/translations/README-uk.md
+++ b/translations/README-uk.md
@@ -59,13 +59,6 @@ Microsoft.
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## Що це?
diff --git a/translations/README-ur.md b/translations/README-ur.md
index a50f85c88f..7406bf52d5 100644
--- a/translations/README-ur.md
+++ b/translations/README-ur.md
@@ -50,13 +50,6 @@
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
-
## یہ کیا ہے؟
diff --git a/translations/README-uz.md b/translations/README-uz.md
index ed9e722d13..12097da14a 100644
--- a/translations/README-uz.md
+++ b/translations/README-uz.md
@@ -12,13 +12,6 @@ Asl versiyasi: [Inglizcha](../README.md)
>
> *Sizga omad tilayman!*
-
## Bu nima uchun kerak?
diff --git a/translations/README-vi.md b/translations/README-vi.md
index 3e14a27829..9b26fe0408 100644
--- a/translations/README-vi.md
+++ b/translations/README-vi.md
@@ -37,13 +37,6 @@ Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt
>
> *Chúc may mắn!*
-
## Giới thiệu