|
@@ -60,47 +60,47 @@ Jeśli chcesz być inżynierem ds. niezawodności i bezpieczeństwa lub systemó
|
|
|
|
|
|
## Spis treści
|
|
|
|
|
|
-- [Co to jest?](#what-is-it)
|
|
|
-- [Dlaczego z tego korzystać?](#why-use-it)
|
|
|
-- [How to use it](#how-to-use-it)
|
|
|
-- [Nie czuj, że nie jesteś wystarczająco mądry](#dont-feel-you-arent-smart-enough)
|
|
|
-- [Informacje o materiałach wideo](#about-video-resources)
|
|
|
-- [Proces rozmowy i ogólne przygotowanie do rekrutacji](#interview-process--general-interview-prep)
|
|
|
-- [Wybierz jeden język do rozmowy kwalifikacyjnej](#pick-one-language-for-the-interview)
|
|
|
-- [Lista książek](#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)
|
|
|
+- [Co to jest?](#co-to-jest)
|
|
|
+- [Dlaczego z tego korzystać?](#dlaczego-z-tego-korzystać)
|
|
|
+- [Jak tego używać](#jak-tego-używać)
|
|
|
+- [Nie uważaj, że jesteś niewystarczająco mądry](#nie-uważaj-że-jesteś-niewystarczająco-mądry)
|
|
|
+- [Informacje o materiałach wideo](#informacje-o-materiałach-wideo)
|
|
|
+- [Proces rozmowy i ogólne przygotowanie do rekrutacji](#proces-rozmowy-i-ogólne-przygotowanie-do-rekrutacji)
|
|
|
+- [Wybierz jeden język do rozmowy kwalifikacyjnej](#wybierz-jeden-język-do-rozmowy-kwalifikacyjnej)
|
|
|
+- [Lista książek](#lista-książek)
|
|
|
+- [Zanim zaczniesz](#zanim-zaczniesz)
|
|
|
+- [Czego tutaj nie zobaczysz](#czego-tutaj-nie-zobaczysz)
|
|
|
+- [Wymagana wiedza](#wymagana-wiedza)
|
|
|
+- [Plan dzienny](#plan-dzienny)
|
|
|
+- [Złożoność algorytmiczna / Big-O / Analiza asymptotyczna](#złożoność-algorytmiczna--big-o--analiza-asymptotyczna)
|
|
|
+- [Struktury danych](#struktury-danych)
|
|
|
- [Arrays](#arrays)
|
|
|
- [Linked Lists](#linked-lists)
|
|
|
- [Stack](#stack)
|
|
|
- [Queue](#queue)
|
|
|
- [Hash table](#hash-table)
|
|
|
-- [More Knowledge](#more-knowledge)
|
|
|
+- [Więcej wiedzy](#więcej-wiedzy)
|
|
|
- [Binary search](#binary-search)
|
|
|
- [Bitwise operations](#bitwise-operations)
|
|
|
-- [Trees](#trees)
|
|
|
+- [Drzewa](#drzewa)
|
|
|
- [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)
|
|
|
+- [Sortowanie](#sortowanie)
|
|
|
- selection
|
|
|
- insertion
|
|
|
- heapsort
|
|
|
- quicksort
|
|
|
- merge sort
|
|
|
-- [Graphs](#graphs)
|
|
|
+- [Grafy](#grafy)
|
|
|
- directed
|
|
|
- undirected
|
|
|
- adjacency matrix
|
|
|
- adjacency list
|
|
|
- traversals: BFS, DFS
|
|
|
-- [Even More Knowledge](#even-more-knowledge)
|
|
|
+- [Znów więcej wiedzy](#znów-więcej-wiedzy)
|
|
|
- [Recursion](#recursion)
|
|
|
- [Dynamic Programming](#dynamic-programming)
|
|
|
- [Object-Oriented Programming](#object-oriented-programming)
|
|
@@ -117,15 +117,15 @@ Jeśli chcesz być inżynierem ds. niezawodności i bezpieczeństwa lub systemó
|
|
|
- [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)
|
|
|
+- [Projektowanie systemu, skalowalność, przetwarzanie danych](#projektowanie-systemu-skalowalność-przetwarzanie-danych) (jeśli masz 4+ lat doświadczenia)
|
|
|
+- [Końcowa rozmowa rekrutacyjna](#końcowa-rozmowa-rekrutacyjna)
|
|
|
+- [Praktyka kodowania](#praktyka-kodowania)
|
|
|
+- [Zadania/wyzwania programistyczne](#zadania-wyzwania-programistyczne)
|
|
|
+- [Gdy już jesteś bliżej rozmowy rekrutacyjnej](#gdy-już-jesteś-bliżej-rozmowy-rekrutacyjnej)
|
|
|
+- [Twoje CV](#twoje-cv)
|
|
|
+- [Zastanów się, kiedy rozmowa kwalifikacyjna będzie nadchodzić](#zastanów-się-kiedy-rozmowa-kwalifikacyjna-będzie-nadchodzić)
|
|
|
+- [Pytania dla rekrutera](#pytania-dla-rekrutera)
|
|
|
+- [Gdy już zdobędziesz pracę](#gdy-już-zdobędziesz-pracę)
|
|
|
|
|
|
---------------- Wszystko poniżej tego punktu jest nadprogramowe ----------------
|
|
|
|
|
@@ -133,21 +133,21 @@ Jeśli chcesz być inżynierem ds. niezawodności i bezpieczeństwa lub systemó
|
|
|
|
|
|
- [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)
|
|
|
+ - [Kompilatory](#kompilatory)
|
|
|
+ - [Emacs oraz vi(m)](#emacs-oraz-vim)
|
|
|
+ - [Narzędzia wiersza poleceń systemu Unix](#narzędzia-wiersza-poleceń-systemu-unix)
|
|
|
+ - [Teoria informacji](#teoria-informacji-filmy)
|
|
|
- [Parity & Hamming Code](#parity--hamming-code-videos)
|
|
|
- - [Entropy](#entropy)
|
|
|
- - [Cryptography](#cryptography)
|
|
|
- - [Compression](#compression)
|
|
|
- - [Computer Security](#computer-security)
|
|
|
- - [Garbage collection](#garbage-collection)
|
|
|
+ - [Entropia](#entropia)
|
|
|
+ - [Kryptografia](#kryptografia)
|
|
|
+ - [Kompresja](#kompresja)
|
|
|
+ - [Bezpieczeństwo komputerowe](#bezpieczeństwo-komputerowe)
|
|
|
+ - [Garbage collection - Odśmiecanie pamięci](#garbage-collection--odśmiecanie-pamięci)
|
|
|
- [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)
|
|
|
+ - [Szybka transformata Fouriera](#szybka-transformata-fouriera)
|
|
|
+ - [Filtr Blooma](#filtr-blooma)
|
|
|
- [HyperLogLog](#hyperloglog)
|
|
|
- [Locality-Sensitive Hashing](#locality-sensitive-hashing)
|
|
|
- [van Emde Boas Trees](#van-emde-boas-trees)
|
|
@@ -165,15 +165,15 @@ Jeśli chcesz być inżynierem ds. niezawodności i bezpieczeństwa lub systemó
|
|
|
- [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)
|
|
|
+ - [Sterta](#sterta)
|
|
|
+ - [Programowanie liniowe](#programowanie-liniowe)
|
|
|
- [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)
|
|
|
+ - [Matematyka dyskretna](#matematyka-dyskretna)
|
|
|
+ - [Machine Learning - Uczenie maszynowe](#machine-learning--uczenie-maszynowe)
|
|
|
+- [Dodatkowe szczegóły na niektóre tematy](#dodatkowe-szczegóły-na-niektóre-tematy)
|
|
|
+- [Serie wideo](#serie-wideo)
|
|
|
+- [Kursy Computer Science](#kursy-computer-science)
|
|
|
+- [Literatura](#literatura)
|
|
|
|
|
|
---
|
|
|
|
|
@@ -523,7 +523,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)
|
|
|
- - [ ] [C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
|
|
|
+ - [ ] [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:
|
|
|
- [Core Linked Lists Vs Arrays (wideo)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
|
|
@@ -745,25 +745,25 @@ Napisz kod na tablicy lub papierze, a nie na komputerze. Testuj z niektórymi pr
|
|
|
- [ ] [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)
|
|
|
+- [ ] [Sedgewick - Quicksort (4 wideo)](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)
|
|
|
+ - [ ] [CS 61B Wykład 29: Sortowanie I (wideo)](https://archive.org/details/ucberkeley_webcast_EiUvYS2DT6I)
|
|
|
+ - [ ] [CS 61B Wykład 30: Sortowanie II (wideo)](https://archive.org/details/ucberkeley_webcast_2hTY3t80Qsk)
|
|
|
+ - [ ] [CS 61B Wykład 32: Sortowanie III (wideo)](https://archive.org/details/ucberkeley_webcast_Y6LOLpxg6Dc)
|
|
|
+ - [ ] [CS 61B Wykład 33: Sortowanie V (wideo)](https://archive.org/details/ucberkeley_webcast_qNMQ4ly43p4)
|
|
|
+
|
|
|
+- [ ] [Sortowanie bąbelkowe (wideo)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
|
|
|
+- [ ] [Analiza sortowania bąbelkowego (wideo)](https://www.youtube.com/watch?v=ni_zk257Nqo&index=7&list=PL89B61F78B552C1AB)
|
|
|
+- [ ] [Sortowanie przez wstawianie, Sortowanie przez scalanie (wideo)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
|
|
+- [ ] [Sortowanie przez wstawianie (wideo)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
|
|
|
+- [ ] [Sortowanie przez scalanie (wideo)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
|
|
|
+- [ ] [Sortowanie szybkie Quicksort (wideo)](https://www.youtube.com/watch?v=y_G9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
|
|
|
+- [ ] [Sortowanie przez wybieranie (wideo)](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)
|
|
@@ -799,7 +799,7 @@ Jeśli potrzebujesz więcej informacji na ten temat, zobacz sekcję "Sortowanie"
|
|
|
|
|
|
## Grafy
|
|
|
|
|
|
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
|
|
|
+Grafy mogą być wykorzystane do przedstawienia wielu problemów w informatyce, więc ta sekcja jest długa, podobnie jak drzewa i sortowanie.
|
|
|
|
|
|
- Uwagi:
|
|
|
- Są 4 podstawowe sposoby reprezentacji grafu w pamięci:
|
|
@@ -823,7 +823,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [CSE373 2012 - Lecture 15 - Graph Algorithms (con't 2) (wideo)](https://www.youtube.com/watch?v=ia1L30l7OIg&index=15&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
|
|
|
- [ ] [CSE373 2012 - Lecture 16 - Graph Algorithms (con't 3) (wideo)](https://www.youtube.com/watch?v=jgDOQq6iWy8&index=16&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
|
|
|
|
|
|
-- [ ] Graphs (review and more):
|
|
|
+- [ ] Grafy (review and more):
|
|
|
|
|
|
- [ ] [6.006 Single-Source Shortest Paths Problem (wideo)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
|
|
- [ ] [6.006 Dijkstra (wideo)](https://www.youtube.com/watch?v=2E7MmKv0Y24&index=16&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
|
@@ -838,7 +838,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [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)
|
|
|
|
|
|
-- Full Coursera Course:
|
|
|
+- Pełny kurs Coursera:
|
|
|
- [ ] [Algorithms on Graphs (wideo)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
|
|
|
|
|
|
- I'll implement:
|
|
@@ -857,7 +857,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] list strongly connected components
|
|
|
- [ ] check for bipartite graph
|
|
|
|
|
|
-## Więcej wiedzy
|
|
|
+## Znów więcej wiedzy
|
|
|
|
|
|
- ### Rekursja
|
|
|
- [ ] Stanford lectures on recursion & backtracking:
|
|
@@ -870,38 +870,38 @@ 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.youtube.com/watch?v=L1jjXGfxozc)
|
|
|
|
|
|
-- ### 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.
|
|
|
+- ### Programowanie dynamiczne
|
|
|
+ - Prawdopodobnie nie będziesz mieć programowania dynamicznego podczas swojej rekrutacji, ale warto umieć rozpoznawać problem, jako kandydata na ten właśnie rodzaj.
|
|
|
- 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)
|
|
|
+ - [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (wideo)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
|
|
|
+ - [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (wideo)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
|
|
|
+ - [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (wideo)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
|
|
|
+ - [ ] [Simonson: Dynamic Programming I - Lecture 11 (wideo)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
|
|
|
+ - [ ] [Simonson: Dynamic programming II - Lecture 12 (wideo)](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)
|
|
|
+ [Dynamic Programming (wideo)](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)
|
|
|
+ - [ ] [The RNA secondary structure problem (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
|
|
|
+ - [ ] [A dynamic programming algorithm (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/PSonq/a-dynamic-programming-algorithm)
|
|
|
+ - [ ] [Illustrating the DP algorithm (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/oUEK2/illustrating-the-dp-algorithm)
|
|
|
+ - [ ] [Running time of the DP algorithm (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
|
|
|
+ - [ ] [DP vs. recursive implementation (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
|
|
|
+ - [ ] [Global pairwise sequence alignment (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
|
|
|
+ - [ ] [Local pairwise sequence alignment (wideo)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
|
|
|
|
|
|
- ### Object-Oriented Programming - programowanie obiektowe
|
|
|
- - [ ] [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)
|
|
|
+ - [ ] [Optional: UML 2.0 Series (wideo)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
|
|
|
+ - [ ] SOLID OOP Principles: [SOLID Principles (wideo)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
|
|
|
|
|
- ### Wzorce projektowe
|
|
|
- - [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
|
+ - [ ] [Quick UML review (wideo)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
|
- [ ] Naucz się tych wzorców:
|
|
|
- [ ] strategy (strategia)
|
|
|
- [ ] singleton
|
|
@@ -920,60 +920,60 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] iterator
|
|
|
- [ ] composite (kompozyt)
|
|
|
- [ ] flyweight (pyłek)
|
|
|
- - [ ] [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)
|
|
|
+ - [ ] [Rozdział 6 (Część 1) - Patterns (wideo)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
|
|
|
+ - [ ] [Rozdział 6 (Część 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (wideo)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
+ - [ ] [Rozdział 6 (Część 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (wideo)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
|
+ - [ ] [Series of videos (27 wideo)](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)
|
|
|
+- ### Kombinatoryka (n choose k) & probabilistyka
|
|
|
+ - [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (wideo)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
|
|
+ - [ ] [Make School: Probability (wideo)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
|
|
|
+ - [ ] [Make School: More Probability and Markov Chains (wideo)](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)
|
|
|
+ - [ ] [Probability Explained (wideo)](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)
|
|
|
+ - [ ] [Computational Complexity (wideo)](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)
|
|
|
+ - [ ] [NP Completeness II & Reductions (wideo)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
|
|
|
+ - [ ] [NP Completeness III (wideo)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
|
|
|
+ - [ ] [NP Completeness IV (wideo)](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)
|
|
|
+ - [ ] [CSE373 2012 - Lecture 23 - Introduction to NP-Completeness (wideo)](https://youtu.be/KiK5TVgXbFg?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1508)
|
|
|
+ - [ ] [CSE373 2012 - Lecture 24 - NP-Completeness Proofs (wideo)](https://www.youtube.com/watch?v=27Al52X3hd4&index=24&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
|
|
|
+ - [ ] [CSE373 2012 - Lecture 25 - NP-Completeness Challenge (wideo)](https://www.youtube.com/watch?v=xCPH4gwIIXM&index=25&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b)
|
|
|
+ - [ ] [Complexity: P, NP, NP-completeness, Reductions (wideo)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
|
|
|
+ - [ ] [Complexity: Approximation Algorithms (wideo)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
|
|
|
+ - [ ] [Complexity: Fixed-Parameter Algorithms (wideo)](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.
|
|
|
|
|
|
- ### Caches
|
|
|
- [ ] LRU cache:
|
|
|
- - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
|
|
|
+ - [ ] [The Magic of LRU Cache (100 Days of Google Dev) (wideo)](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)
|
|
|
+ - [ ] [LeetCode - 146 LRU Cache (C++) (wideo)](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-)
|
|
|
+ - [ ] [MIT 6.004 L15: The Memory Hierarchy (wideo)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
|
|
|
+ - [ ] [MIT 6.004 L16: Cache Issues (wideo)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
|
|
|
|
|
- ### Procesy i wątki
|
|
|
- - [ ] 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)
|
|
|
+ - [ ] Computer Science 162 - Operating Systems (25 wideo):
|
|
|
+ - dla procesów i wątków zobacz wideo 1-11
|
|
|
+ - [Operating Systems and System Programming (wideo)](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)
|
|
|
- Pokrywa:
|
|
|
- Procesy, wątki, problemy z współbieżnością
|
|
@@ -990,21 +990,21 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- CPU activity, interrupts, context switching
|
|
|
- Modern concurrency constructs with multicore processors
|
|
|
- [Paging, segmentation and virtual memory (wideo)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
|
|
|
- - [Interrupts (wideo)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
|
|
|
+ - [Przerwania (wideo)](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)
|
|
|
- - [ ] concurrency in Python (videos):
|
|
|
+ - [ ] [threads in C++ (series - 10 wideo)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
|
|
|
+ - [ ] współbieżność w Python (wideo):
|
|
|
- [ ] [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)
|
|
|
+ - [ ] [Muteks w Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
|
|
|
|
|
|
- ### Testowanie
|
|
|
- Aby pokryć:
|
|
@@ -1127,7 +1127,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
|
- [ ] [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:
|
|
|
+- [ ] Skalowalność:
|
|
|
- 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:
|