면접 준비를 해보자

Posted by keon1 on January 05, 2019

이제부터는 공부 뿐이야..!

학부 수업 지식에 일천한 면접 경험을 더해 CS의 중요한 개념 및 주요 언어/도구에 대한 질문들을 정리해보았다.

Data structures and algorithms

  1. Basic data structures and algorithms
  2. Big-O notation
  3. Dynamic programming
  4. greedy algorithm
  5. Hash table
  6. External sorting

PL

  1. Tail recursion and fibonacci programming
  2. Call by value/address/reference/name/assignment
  3. Garbage collection
  4. Lambda algebra
  5. Type system and type checking, strong/weak type, dynamic/static type checking
  6. Compiler, interpreter

DB

  1. Indexing
  2. Why using B+ tree?
  3. basic SQL concepts and query skills

Network

  1. How internet works?
  2. Process of google.com shows in our browser
  3. tcp stack
  4. http, https and ssl

System and OS

  1. Queue, heap, stack, data region of memory
  2. Difference between out of memory and stack overflow
  3. Context switching
  4. VM, page, swap
  5. Semaphore
  6. Thread, process
  7. Multithread, concurrent programming
  8. Difference between L1 and L2 cache
  9. deadlock, case and solution
  10. Other OS basics

Languages

OOP overall

  1. OOP basic
  2. class
  3. Inheritance, Multiple In
  4. Override, overload
  5. Polymorphism
  6. Multiple inheritance

Python

  1. OOP of Python, class, object, inheritance
  2. Constructor, __self__
  3. How hash table is implemented in Python
  4. Can class be used as a key of dictionary
  5. dictionary, mutable, immutable
  6. Special methods and dunder
  7. Difference between method and function
  8. Is len() is function? or method?
  9. Decorator
  10. Generator, iterator and their difference
  11. Abstract class
  12. Type casting

Functional

  1. Scala basics

Data

  1. Hadoop MR, Spark difference
  2. Spark internals
  3. SparkSQL, Hive
  4. Parquet
  5. Overall flows and structures of data engineering processes and infra

ETC

  1. [Django] Thread handling for Django request
  2. ML data preprocessing methods
  3. Basic ML theory
  4. Basic statistics