Chào các bạn hiện mình đang là một iOS Developer cho một công ty ở Nhật. Công việc của mình hàng ngày thì là dev các chức năng cho app của công ty. Dạo gần đây thì mình nhận ra là từ khi vào cty đến giờ thì mình không còn thời gian để ôn tập cũng như thực hành về các kiến thức về Cấu trúc dữ liệu và giải thuật nên cũng đã gần như là quên hết. Trong tương lai thì mình cũng dự định apply vào một công ty khá là lớn thì những kiến thức trên thì gần như là bắt buộc phải có, mặc dù hiện tại thì gần như mình không có dùng đến nó là bao.
Repository này mình tạo ra là để mục đích mình ôn tập, và trong quá trình học mình cũng sẽ memo lại những phần mình học được. Những bài toán giải thuật hay mình cũng sẽ tổng hợp lại, hy vọng sẽ có ích với mọi người.
- Complexity/space analysis
- Bitwise operations
- Linked List
- Stacks
- Queues/deques
- Arrays/vectors
- Hash tables (maps)
- Sets
- Binary search
- Sorting
- selection
- Insertion
- heapsort
- QuickSort
- Merge Sort
- Priority queues
- Binary heap
- Trees
- binary search trees
- balanced search trees (general concept)
- traversals: preorder, inorder, postorder, BFS, DFS
- Graphs
- directed
- undirected
- adjacency matrix
- adjacency list
- dynamic programming(**note:**does not appear in coaching notes, but is useful)
- Probability
- Permutations and combinations
- Bbject-oriented programming
- Processes/threading
- memory
- caching
- deadlock avoidance
- scheduling
- Testing practices (1+ year experience) If you have a networking background, expect to be asked:
- Network stack / OSI If you have 4 or more years of experience, expect system designs in addition to coding problems.
- Scaling large systems
- Designing for scale