Your Coding Teacher
372 subscribers
10 links
Coding, software engineering & #bitcoin technologies. I'll make you a better thinker, not just a better developer | Ex
Amazon, Senior DevOps @eBay
Download Telegram
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly agilemanifesto .org
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale agilemanifesto .org
"Give a man a program, frustrate him for a day. Teach a man to program, frustrate him for a lifetime." - Muhammad Waseem
I � Unicode
"I'm not a great programmer; I'm just a good programmer with great habits." - Kent Beck
Resources in GCP follow a hierarchy: - Permissions are inherited. Ex: permissions granted and the org level are propagated to all folders and projects. - More permissive parent policies always overrule more restrictive child policies. To common aspects of your resources
Grep 101 grep -param string/regex file(s) -i case insensitive (potentially slow) -v string *not* present -w find full word -A/B/C N; display N lines after/before/around the match -r recursively in directory -c get number of matches -n line number of match
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?
Friday afternoon? Ship it!
Flat is better than nested - The Zen of Python
- 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