Software Engineering
##
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
software_engineering
]