Start writing down ideas for any projects you want to make. Anything can trigger an idea. The more you read and learn, the more opportunities to spark ideas for projects
Continuous attention to technical excellence and good design enhances agility agilemanifesto .org
"The greatest performance improvement of all is when a system goes from not-working to working." - John Ousterhout
In an interview, discuss multiple solutions to the problem but select the one you can implement in the time allocated to the interview. It's like presenting a good solution on time instead of an optimal solution 1 week after the dealine.
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