Big O is not the only factor to consider when you think about algorithm performance. Also: - Disk usage - Memory - Cache - Network - Concurrency (and its overhead) - ...
"If you don't fail at least 90 percent of the time, you're not aiming high enough." - Alan Kay
In MATLAB, for a nxn array A, what does A(:) do? It creates a n^2x1 column vector. Column, not row, because MATLAB matrices are column-major
2 Quick Interview tips - Think out loud while solving the problem. Explain your thought process. - If your interviewer jumps in to help you, don't freak out. It's normal.
In Linux, directories have permissions too - You can list their contents if it's *readable* - You can access a file in a directory if the directory is *executable* To change permissions, use chmod - chmod 711 file - chmod u+x file (users can execute the file)
Design patterns in 1 tweet Flyweight: support a large number objects efficiently by sharing constant parts of their state (called intrinsic state) Ex: To represent a text document, a Flyweight object is created per character in the character set.
R was created in 1993 at the University of Auckland in New Zealand by Robert Gentleman and Ross Ihaka R is mostly used for data data analysis. In of January 2020, R ranked the 18th most popular programming language
AWS Storage Services - S3: general - Glacier: archiving & backup - EBS: block storage (disks) - Storage Gateway: connect on-premise with storage in AWS infrastructure
Know what version of Python you're using. There are differences. For instance, when dealing with strings: Python 3: bytes contains sequences of 8-bit values, str -> seqs of Unicode chars Python 2: str contains sequences of 8-bit values, unicode -> seqs Unicode chars
HTTP status codes in 1 tweet 1xx: Still processing 2xx: Alles Gut 3xx: Check somewhere else 4xx: Client's fault 5xx: Server's fault
"A year spent in artificial intelligence is enough to make one believe in God." - Alan J. Perlis
Merge sort is a divide and conquer, stable, comparison-based algorithm invented by John von Neumann in 1945 The idea is to split a list into sublists, sort them (recursion) and then merge the sorted lists. Its time complexity is O(NlogN) and space complexity is O(N)
Design patterns in 1 tweet Decorator: Add responsabilities to objects dynamically Ex: in a war videogame, adding accesories to a basic weapon (can be added after creating it)
"Owning a computer without programming is like having a kitchen and using only the microwave oven." - Charles Petzold
Scala was developed by Martin o darsky in 2003 combining functional and object-oriented programming Many its design decisions are aimed to address criticisms of Java object Hello { def main(args: Array[String]) = { println("Hello, world") } }
3 Random coding tips Pay off technical debt Prioritize tasks Don't overlook the details
Big O quick tip Try to remember this pattern: A problem where the number of elements in the problem space gets halved "at each step", will most likely have O(logN) time complexity