Your Coding Teacher
383 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
Always Be Learning For instance, if you already know how to work with AWS, try out GCP Don't be a one trick pony.
"Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve." - Alan J. Perlis
Change your questions from - How long will it take me to master X? - Will it be hard? To - Will it be worth it?
Using a consistent style makes your code more approachable and easier to read. It facilitates collaboration on projects and makes it easier to change things later even if you're working alone. For Python, check PEP8.
"The question, 'Can machines think?' I believe to be too meaningless to deserve discussion." - Alan Turing
"I think there's a world market for about five computers." - Thomas J Watson Senior, 1945
"It works on my machine"
For every problem you solve, every bug you kill, every glitch you resolve, you learn something new.
Code is never finished
Do not equate years of experience with wisdom. There are people with 10 years of experience and people who have experienced the same year ten times. Don't get too comfortable with what you are doing and keep growing.
7 Platforms to improve your problem solving skills: - codingcompetitions .withgoogle .com - topcoder .com - codechef .com - leetcode .com - hackerrank .com - projecteuler .net - uva .onlinejudge .org
Design patterns in 1 tweet Factory Method. Centralize logic to create items from a family of objects Ex: Create Buttons for different OS //Pseudocode createButton(OS) { if (windows == OS) return new WinButton(); else return new MacButton(); }
For software developers, one of the most important things you can do is writing code you can come back to later.
"Program testing can be used to show the presence of bugs, but never to show their absence!" - Edsger W. Dijkstra
At the end of the day, you are not paid just for what you know but for your thought process and the decisions you make. That is why it is vitally important that you exercise this skill.
Systems design interview concepts - Load balancer - distribute traffic among many servers - DBs are usually the bottleneck > Use a cache - DB replication - multiple dbs for reads - DB sharding - write to multiple dbs - NoSQL DBs scale easily - CDNs to serve static files
P vs NP in a tweet P is a family of problems that are "quickly solvable": be solved an algorithm with polynomial complexity. NP is a family of problems that are "quickly verifyable": a solution can be verified in polynomial time.
There is a great satisfaction in building good tools for others to use.
A skip list is a linked list that is augmented with a number of additional pointers. Each dictionary operation runs in expected time O(logN) on a skip list of N items. Skip lists provide an alternative to balanced binary search trees.
Design patterns in 1 tweet Iterator: Provide sequential access to a collection of objects Ex: Next/Previous buttons in Youtube.