How to make learn faster - Lose the ego - Embrace failure - Iterate Quickly - Criticism is not evil - Don't be the smartest person in the room for too long - Be a sponge
Practice lots, read tons of code, write tons of code, dream coding and puke coding.
Some people prefer changing the specification to fit their code than the other way around
You can increase the reliability of a service by masking some deficiencies of its subservices A queue that might drop messages? Have a process to put them back in the queue and redeliver them Worst case you get them twice, which isn't an issue for an idempotent system
Change your IDE to render comments in Red-black. If they're there, there must be a reason to read them. If you read a comment that should not be there, delete it. Comments rot, just like code. Nobody maintains them. Comments don't make up for bad code.
In Python, if you need to created nested dictionaries (dictionaries of dictionaries), consider creating a hierarchy of classes. It improves the API and adds a layer of abstraction between interfaces and their implementations.
You don't need to know every detail of JavaScript, Python, Java or C++ to write useful programs Focus on programming techniques, not on language features
Pasting code from the Internet into production code is like chewing gum found in the street
Throw exceptions instead of returning None to indicate that something went wrong. None and other values (zero, the empty string) evaluate to False in conditional expressions. This can be troublesome Let the caller handle exceptions properly. Document your exceptions.
2-choice hashing uses two different hash functions, h1(x) and h2(x), for a hash table.
Git shortcuts $ git commit -am "commit message" // -a: any files previously added $ git branch -D [name]// To delete a branch $ git checkout -b [name] // To create a new branch and switch to it
There will be bugs in your codebase. The question is: will fixing these small bugs make a dent? Focus on what will bring the max benefit to your team and customers. The task of solving a few bugs will always be there.
Better train people and risk they leave than do nothing and risk they stay
In a Unix system, what user ID corresponds to root? . . . . . . . . . . . ID = 0
Sometimes I fantasize about finding a job like this, automating it, and then relaxing and collecting the salary.
5 Common bit manipulation interview questions 1. Check if an integer is power of two 2. Position of rightmost set bit 3. Add two numbers without using arithmetic operators (+-*/) 4. Like 4., but multiplying 5. Like 4., but dividing Try to solve them (easily googable)