##

https://github.com/sindresorhus/awesome

“Teach Yourself Programming in Ten Years”

https://learnxinyminutes.com

Titles

  • Senior Engineer
  • Staff Engineer
  • Senior Staff Engineer
  • Principal Engineer
  • Distinguished Engineer
  • Fellow

Creating apps   - Know how to use your IDE (Xcode)   - Know your language (Swift)   - Know some UI

  • Compiled vs interpreted
  • High level vs low level
  • General purpose vs domain specific
  • Statically typed vs dynamically typed
  • Automatic garbage collection vs manual garbage collection
  • Readability vs performance (or clarity vs correctness)

Memory Management

  • Heap memory
  • Stack memory
  • Pointers
  • Bit manipulation

pass by value the parameter value copies to another variable

pass by reference the actual parameter passes to the function

Ngrok

##

If input array is sorted then:

  • Binary search
  • Two pointers

If asked for all permutations/subsets then:

  • Backtracking

If given a tree then:

  • DFS
  • BFS

If given a graph then:

  • DFS
  • BFS

If given a linked list then:

  • Two pointers

If recursion is banned then:

  • Stack

If must solve in-place then:

  • Swap corresponding values
  • Store one or more different values in the same pointer

If asked for maximum/minumum subarray/subset/options then:

  • Dynamic programming

If asked for top/least K items then:

  • Heap

If asked for common strings then:

  • Map
  • Trie

Else:

  • Map/Set for O(1) time & O(n) space
  • Sort input for O(nlogn) time and O(1) space

Have large amount of data to compare with another, such as email? Hash them, compare.

##

Short circuit evaluation