Saya menambahkannya untuk membantu Anda menjadi insinyur perangkat lunak yang berpengetahuan luas, dan untuk mengetahui teknologi dan algoritme tertentu, sehingga Anda akan memiliki kotak peralatan yang lebih besar.
- How a Compiler Works in ~1 minute (video)
- Harvard CS50 - Compilers (video)
- C++ (video)
- Understanding Compiler Optimization (C++) (video)
- Biasakan diri Anda dengan editor kode berbasis unix
- vi(m):
- emacs:
- Saya mengisi daftar di bawah ini dari alat yang bagus.
- bash
- cat
- grep
- sed
- awk
- curl or wget
- sort
- tr
- uniq
- strace
- tcpdump
- Khan Academy
- Lebih lanjut tentang proses Markov:
- Lihat lebih lanjut dalam seri Informasi dan Entropi MIT 6.050J di bawah ini
- Lihat juga video di bawah ini
- Pastikan untuk menonton video teori informasi terlebih dahulu
- Teori Informasi, Claude Shannon, Entropi, Redundansi, Kompresi Data & Bit (video)
- Lihat juga video di bawah ini
- Pastikan untuk menonton video teori informasi terlebih dahulu
- Khan Academy Series
- Kriptografi: Funsgi Hash
- Kriptografi: Enkripsi
- Pastikan untuk menonton video teori informasi terlebih dahulu
- Computerphile (video):
- Video Kepala Kompresor
- (opsional) Google Developers Live: GZIP saja tidak cukup!
- GC dalam Python (video)
- Deep Dive Java: Pengumpulan Sampah itu Baik!
- Deep Dive Python: Pengumpulan Sampah di CPython (video)
- Thrift
- Protocol Buffers
- gRPC
- Redis
- Amazon SQS (queue)
- Amazon SNS (pub-sub)
- RabbitMQ
- Celery
- ZeroMQ
- ActiveMQ
- Kafka
- MessagePack
- Avro
- Algoritma Pencarian
- A * Tutorial Pathfinding (video)
- A * Pathfinding (E01: penjelasan algoritma) (video)
- Panduan Interaktif Untuk Transformasi Fourier
- Apa itu Transformasi Fourier? Untuk apa itu digunakan?
- Apa itu Transformasi Fourier? (video)
- Bagilah & Taklukkan: FFT (video)
- Memahami FFT
- Given a Bloom filter with m bits and k hashing functions, both insertion and membership testing are O(k)
- Filter Bloom (video)
- Filter Bloom | Penambangan Kumpulan Data Besar-besaran | Universitas Stanford (video)
- Tutorial
- Cara Menulis Aplikasi Bloom Filter
- Digunakan untuk menentukan kesamaan dokumen
- Kebalikan dari MD5 atau SHA yang digunakan untuk menentukan apakah 2 dokumen / string sama persis
- Simhashing (semoga) menjadi sederhana
-
Ketahui setidaknya satu jenis pohon biner yang seimbang (dan ketahui bagaimana implementasinya):
-
"Di antara pohon pencarian seimbang, AVL dan 2/3 trees sekarang sudah ketinggalan zaman, dan red-black trees tampaknya lebih populer. Struktur data pengorganisasian mandiri yang sangat menarik adalah splay trees, yang menggunakan rotasi untuk memindahkan kunci apa pun yang diakses ke root." - Skiena
-
Dari jumlah tersebut, saya memilih untuk menerapkan splay tree. Dari apa yang saya baca, Anda tidak akan menerapkan pohon pencarian seimbang (balanced search tree) dalam wawancara Anda. Tapi saya ingin eksposur ke pengkodean satu dan hadapi saja, splay trees adalah lutut lebah. Saya memang membaca banyak kode red-black tree code
- Splay tree: menyisipkan, mencari, menghapus fungsi Jika Anda akhirnya menerapkan pohon merah / hitam coba ini saja:
- Fungsi pencarian dan penyisipan, melewatkan penghapusan
-
Saya ingin mempelajari lebih lanjut tentang B-Tree karena digunakan secara luas dengan kumpulan data yang sangat besar
-
AVL trees
- Dalam praktek: Dari apa yang saya tahu, ini tidak banyak digunakan dalam praktiknya, tetapi saya bisa melihat di mana mereka akan berada: AVL trees (Pohon AVL) adalah struktur lain yang mendukung pencarian, penyisipan, dan penghapusan O(log n). Ini lebih seimbang daripada red-black trees, menyebabkan penyisipan dan pemindahan lebih lambat tetapi pengambilan lebih cepat. Ini membuatnya menarik untuk struktur data yang dapat dibangun sekali dan dimuat tanpa rekonstruksi, seperti kamus bahasa (atau kamus program, seperti opcode assembler atau interpreter)
- MIT AVL Trees / AVL Sort (video)
- AVL Trees (video)
- Implementasi AVL Tree (video)
- Split Dan Merge
-
Splay trees
- Dalam praktek: Splay trees (pohon bentang) biasanya digunakan dalam implementasi cache, pengalokasi memori, router, pengumpul sampah, kompresi data, tali (pengganti string yang digunakan untuk string teks panjang), di Windows NT (dalam memori virtual, jaringan, dan kode sistem file) dll.
- CS 61B: Splay Trees (video)
- Kuliah MIT: Splay Trees:
- Menjadi sangat matematis, tetapi perhatikan 10 menit terakhir dengan pasti.
- Video
-
Red/black trees
- Ini adalah terjemahan dari sebuah 2-3 tree (lihat dibawah).
- Dalam praktek: Red/black trees (Pohon merah / hitam) menawarkan jaminan kasus terburuk untuk waktu penyisipan, waktu penghapusan, dan waktu pencarian. Hal ini tidak hanya membuatnya berharga dalam aplikasi yang sensitif terhadap waktu seperti aplikasi waktu nyata, tetapi juga menjadikannya sebagai blok bangunan yang berharga dalam struktur data lain yang memberikan jaminan kasus terburuk; sebagai contoh, banyak struktur data yang digunakan dalam geometri komputasi dapat didasarkan pada red/black trees, dan Penjadwal yang Benar-Benar Adil yang digunakan dalam kernel Linux saat ini menggunakan red/black trees. Di Java versi 8, Collection HashMap telah dimodifikasi sedemikian rupa sehingga alih-alih menggunakan LinkedList untuk menyimpan elemen identik dengan kode hash yang buruk, red/black trees digunakan
- Aduni - Algoritma - Kuliah 4 (link lompat ke titik awal) (video)
- Aduni - Algoritma - Kuliah 5 (video)
- Red-Black Tree
- Pengantar Pencarian Biner Dan Red-Black Tree
-
2-3 search trees
- Dalam praktek: 2-3 trees memiliki penyisipan yang lebih cepat dengan mengorbankan pencarian yang lebih lambat (karena ketinggian lebih banyak dibandingkan dengan AVL trees).
- Anda akan sangat jarang menggunakan 2-3 trees karena implementasinya melibatkan berbagai jenis node. Sebaliknya, orang menggunakan red–black trees.
- Intuisi dan Definisi 23-Trees (video)
- Tampilan Biner dari 23-Trees
- 2-3 Trees (pengajian siswa) (video)
-
2-3-4 Trees (aka 2-4 trees)
- Dalam praktek: Untuk setiap 2-4 trees, ada red–black trees yang sesuai dengan elemen data dalam urutan yang sama. Operasi penyisipan dan penghapusan pada 2-4 trees juga setara dengan pembalikan warna dan rotasi pada red–black trees. Hal ini membuat 2-4 trees menjadi alat penting untuk memahami logika di balik red–black trees, dan inilah mengapa banyak teks algoritme pengantar memperkenalkan 2-4 trees tepat sebelum red–black trees, meskipun 2-4 trees tidak sering digunakan dalam praktik.
- CS 61B Kuliah 26: Pohon Pencarian Seimbang (video)
- Bawah Atas 234-Trees (video)
- Atas Bawah 234-Trees (video)
-
N-ary (K-ary, M-ary) trees
- catatan: N atau K adalah faktor percabangan (cabang maks)
- pohon biner adalah pohon 2-ary, dengan faktor percabangan = 2
- 2-3 pohon adalah 3-ary
- K-Ary Tree
-
B-Trees
- Fakta menyenangkan: ini adalah misteri, tetapi B bisa berarti Boeing, Balanced, atau Bayer (co-inventor).
- Dalam praktek: B-Trees banyak digunakan dalam database. Kebanyakan filesystem modern menggunakan B-tree (atau Variants). Sebagai tambahannya penggunaannya dalam database, B-tree juga digunakan dalam sistem file untuk memungkinkan akses acak cepat ke sembarang blokir di file tertentu. Masalah dasarnya adalah mengubah alamat file blok i menjadi blok disk (atau mungkin ke alamat sektor kepala silinder)
- B-Tree
- Struktur Data B-Tree
- Pengantar B-Trees (video)
- Definisi dan Penyisipan B-Tree (video)
- Penghapusan B-Tree (video)
- MIT 6.851 - Model Hirarki Memori (video) - 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)
- Bagus untuk menemukan jumlah titik dalam persegi panjang atau objek berdimensi lebih tinggi
- Cocok untuk tetangga terdekat
- Kd Trees (video)
- Algoritma kNN K-d tree (video)
-"Ini adalah semacam struktur data kultus" - Skiena
- Ford-Fulkerson dalam 5 menit - Contoh langkah demi langkah (video)
- Algoritma Ford-Fulkerson (video)
- Aliran Jaringan (video)
- Aritmatika Integer, Perkalian Karatsuba (video)
- Teorema Sisa Cina (digunakan dalam kriptografi) (video)
- Combination of a binary search tree and a heap
- Treap
- Struktur Data: Penjelasan hierarki (video)
- Aplikasi dalam operasi set
- Pemrograman Linear
- Menemukan biaya minimum
- Menemukan nilai maksimum
- Memecahkan Persamaan Linear dengan Python - Algoritma Simpleks
- Grafik Alg. IV: Pengantar algoritma geometris - Kuliah 9
- Algoritma Geometris: Graham & Jarvis - Kuliah 10
- Bagilah & Taklukkan: Convex Hull, Median Finding
- lihat video di bawah ini
- Kenapa ML?
- Alat pembelajaran Mesin Cloud Google (video)
- Resep Pembelajaran Mesin Google Developers (Scikit Learn & Tensorflow) (video)
- Tensorflow (video)
- Tutorial Tensorflow
- Panduan Praktis untuk mengimplementasikan Jaringan Neural dengan Python (menggunakan Theano)
- Kursus:
- Kursus pemula yang bagus: Pembelajaran Mesin - video saja - lihat video 12-18 untuk review aljabar linier (14 dan 15 adalah duplikat)
- Jaringan Neural untuk Pembelajaran Mesin
- Nanodegree Deep Learning Google
- Nanodegree Machine Learning Engineer Google / Kaggle
- Nanodegree, Insinyur Mobil Mengemudi Mandiri
- Kursus Online Metis ($99 selama 2 bulan)
- Sumber:
Selanjutnya - Detail Tambahan tentang Beberapa Subjek