To be a developer you have to be able to endure long and intense periods of feeling stupid on a consistent basis.
"In my experience, one of the most significant problems in software development is assuming. If you assume a method will passed the right parameter value, the method will fail." - Paul M. Duvall
3 JavaScript interview questions What's the difference between == and ===? How to evaluate multiple expressions in one line? What is Functional Programming and what are the features of JavaScript that makes it a candidate as a functional language?
"How do we convince people that in programming simplicity and clarity βin short: what mathematicians call "elegance"β are not a dispensable luxury, but a crucial matter that decides between success and failure?" - Edsger W. Dijkstra
Tip for interviews in Python: To iterate over a list and also know the index of the current item, use enumerate for idx, val in enumerate(my_array): do_something(idx) ... You can supply a second parameter to enumerate to specify the number from (defaults to zero)
GCP vs AWS terminology - Both use Region as a group of data centers close to one another - Zone vs Availability Zone: individual data centers. Several per region - Points Of Presence: Both use them to provide CDN services in a similar way
Even "simple" things, like synchronizing clocks in different nodes in a distributed system, is more complex that it seems. Distributed systems are the quantum mechanics of software design.
Science is a differential equation Religion is a boundary condition - Alan Turing
"The code you write makes you a programmer. The code you delete makes you a good one. The code you don't have to write makes you a great one." - Mario Fusco
"Great things are not done by impulse, but by a series of small things brought together." - Vincent van Gogh
JavaScript has a single type for numbers, represented as 64-bit floating point Integers are also represented using this same type
Without putting the things you read into action in a real project, you will forget soon.
Storage Transfer Service (STS), a service that imports data to a GCS bucket from: - An AWS S3 bucket - A resource that can be accessed through HTTP(S) - Another GCS bucket For huge amounts of data consider Data Transfer Appliance: ship your data to a Google facility.
Binary search trees (height h, N nodes): - Insert and contains operations are O(h) - Elements in order: find min/max in O(h) - Efficient range queries Sorted inputs make them look like a linked list o(h) -> O(N) Balanced BST: AVL, red-black,... o(h) -> log(N)
Labels are key-value pairs you can use to organize your resources in GCP. Once you attach a label to a resource (for instance, to a virtual machine), you can filter based on that label. This is useful also to break down your bills by labels.
When fixing a bug, the most important thing is a reliable procedure to reproduce the problem. Try to trigget the issue manually. Then write a test that fails. Only then, start changing your code.