5 Random coding tips Modularize your code Improve your communication skills Learn to learn Collaborate cross-team Learn to delegate
Ethereum is considered “the world computer.” Do you know what that means?
6 Common string interview questions 1. Reverse a string 2. Reverse all words in a string 3. Remove duplicates in a string 4. Print all permutations of a string 5. Check if two strings are anagrams 6. Check if a string is a palindrome Try to solve them (easily googable)
Sources of bugs: - Memory allocation char* ptr; cin >> ptr; - Off-by-one int v[5]; for (i=0; i<=5; i++) f(v[i]); - No base case in recursion int fib(int n) { return fib(n-1) + fib(n-2); } - Not updating index in while loop while(i>2){ f(); }
"It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it." - Steve McConnell
Coding is not about learning programming languages. It is about analyzing a problem, considering different solutions, choosing the best one, and then implementing it in some programming language.
Benefits of Test Driven Development - Confidence to make changes: you've written a nice test suite - Documentation: tests show how to use the code - Force to think about good design: you need to decouple modules in order to unit test them However, it's no panacea
Think twice before you start programming or you will program twice before you start thinking
Things evaluated during a coding interview: - Analytical skills - Coding skills - Communication skills - Experience - Technical knowledge It's not just coding. But it doesn't mean coding skills are not essential.
Don't go blind when you want to optimize your code Profile it first. Execution time follows the 20/80 rule: "Most of the execution time will be spend in a small fraction of your codebase"
Do not reinvent the wheel. Use libraries. But also, do not think that libraries are ideal for everything. Only if they don't meet your needs, think about rewriting them.
5 Random coding tips Be a mentor Review your own code Share your knowledge Commit early and often Submit small PRs
Coding interview preparation tips - When you're solving problems, time yourself - Allow no distractions - If you get stuck, keep trying. Do not give up. - Think out loud - Keep a log of common mistakes you make
There should be one-- and preferably only one --obvious way to do it Although that way may not be obvious at first unless you're Dutch - The Zen of Python
In Javascript, what is the result of the following expression made of primer numbers and different operators? 1 * 2 + 3 == 5 && 7 * 11 > 13
Some C++ notes for my Amazon interviews Create a 2D matrix vector<vector<int>> matrix; Iterate vector (without changing it) for(auto it = s.cbegin(); it != s.cend(); ++it) cout<<*it<<" "; Find max value in vector auto max = *max_element(v.begin(), v.end());
"In computing, turning the obvious into the useful is a living definition of the word "frustration"." - Alan J. Perlis