|
@@ -66,9 +66,10 @@
|
|
|
|
|
|
**Изисквания:**
|
|
**Изисквания:**
|
|
|
|
|
|
-- Малко опит с програмиране (променливи, цикли, методи/функции и т.н)
|
|
|
|
-- Търпение
|
|
|
|
-- Време
|
|
|
|
|
|
+- Малко опит с програмиране (променливи, цикли, методи/функции и т.н)
|
|
|
|
+- Търпение
|
|
|
|
+- Време
|
|
|
|
+
|
|
|
|
|
|
Обърнете внимание, че това е учебен план за **софтуерно инженерство**, а не за уеб разработка. Големите компании като Google, Amazon, Facebook и Microsoft различават софтуерното инженерство и уеб разработката. Amazon, например, имат Frontend инженери (FEE) и Software Development инженери (SDE). Това са 2 отделни позиции и интервютата за тях няма да са еднакви, тъй като всяка една от тях има своите специфики. Тези компании изискват знания по компютърни науки за позиции свързани със софтуерно инженерство/разработка
|
|
Обърнете внимание, че това е учебен план за **софтуерно инженерство**, а не за уеб разработка. Големите компании като 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)
|
|
- [Emacs въководство (За начинаещи) -Част 3- Изрази, Твърдения, ~/.emacs файлове и пакети](https://www.youtube.com/watch?v=paSgzPso-yc)
|
|
- [Зъл режим(Evil mode): Или как се научих да спра да се тревожа и да заобичам Emacs (клип)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
|
|
- [Зъл режим(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)
|
|
- [Писане на 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
|
|
- ### Unix command line tools
|
|
|
|
|