When you're assigned a task, repeat it back in your own words to make sure you understood it. And to let everyone know you understood what they want. This includes potential issues that may arise.
3 JavaScript interview questions How to check if a certain property exists in an object? How to check if a value is falsy? What's the difference between Object.seal and Object.freeze methods?
- Continuous integration: merging code changes into a repository + run builds and tests - Continuous delivery: deploy code changes to different environments. Releasing to customers requires human intervention - Continuous deployment: deploy to customers. No human intervention.
If you suspect you can solve a problem via Dynamic Programming, draw a tree with all possible paths to see if there are repeated subproblems If you can derive a recursion and prove that there are repeated subproblems and optimal substructure, you can apply Dynamic Programming
There is no one-size-fit-all solutions. All depends on the context: - Insertion sort is good for small inputs - Shellsort is good for medium size inputs. - Mergesort is O(NlogN) but requires additional space. - Quicksort is O(NlogN) but can be O(n^2)
4 JavaScript interview questions What is Hoisting? What is Event Propagation? What are Template Literals? What are Promises?
Our society runs on software. Nowadays, nothing happens without software.
5 Random coding tips Disable distractions Ask effective questions Learn to debug Learn from your failures Examine all solutions before jumping in
Merge sort is O(NlogN), but requires additional space for the merging process. Quick sort is O(NlogN), but may degrade to O(N^2) Heap-sort is O(NlogN), but it's not stable (won't respect relative order of elements with the same value)
A shell is a command-line interpreter that reads user input and executes commands. The user input can come from the command line or from a file - a shell script.
Hash tables need to have some collision resolution strategy: - Chaining: use a linked list or binary search tree - Open addressing: probing techniques to find the next available slot - Perfect hashing: to minimize collisions (requires a more memory)
Interview tip Show attention to detail - If you get a question about linked lists, ask: singly or doubly? - If you get a question about strings, ask: ASCII or Unicode? You can assume it's the simplest for the interview setup, but these questions make you look good
There is a fundamental difference between algorithms, which always produce a correct result, and heuristics, which may usually do a good job but without providing any guarantee.
The assembly programming language was created in 1949. It was widely used in the EDSAC calculator, invented by Maurice Wilkes at University of Cambridge. This calculator could solve differential equations and discovered a 79 digit prime number (the largest known the time)
Better to become a programmer today, maybe a bad one, than staying in tutorial hell. Change your mindset from learner to programmer. Being a programmer implies being a learner.
In UNIX, a zombie is a process whose execution is completed but it still has an entry in the process table. This usually happens for child processes. Zombies can exhaust all available PIDs on the system preventing new process from being forked.
"If we wish to count lines of code, we should not regard them as lines produced but as lines spent." - Edsger Dijkstra
In the last month: What's the ratio between hours spend watching tutorials and reading articles and hours spend writing code?