C# was created by Microsoft in 2000 It was designed to combine the computational ability of C++ with the simplicity of Visual Basic C# is comparable to Java. It offers strong typing, lexical scope and it's an object-oriented language Console.WriteLine("Hello World!");
"An ugly system is one in which there are special interfaces for everything you want to do. Unix is the opposite. It gives you the building blocks that are sufficient for doing everything. That's what having a clean design is all about." - Linus Torvalds
JavaScript's falsy values: - false - undefined - null - The number 0 - The number NaN - The empty string
Load balancers - Can be hardware or software (ex: in AWS and GCP) - Act at different network layers: Layer 4 vs Layer 7 - Use different routing algorithms: (Weighted) Round-Robin, (Weighted) least lonnection, etc. - Need health checks (to stop routing to unhealthy servers)
A greedy algorithm is one which makes decisions that are locally optimum and never changes them. This strategy does not always yield the optimum solution. It requires proof that it will arrive at the optimal. Example: Dijkstra's shortest path
Bash exercise: Read file.txt and output the 8th line to stdout. sed -n '8 p' file.txt
Continuous Integration is the practice of frequently pushing code into repository Benefits - Forces you to have automated build an tests - Forces you to have good config management (test, stage, prod) - Tells you at any time the state of the app (is the pipeline green?)
5 JavaScript interview questions What is NaN? How to check if a value is NaN? What does the || operator do? Why are functions called First-class Objects? What does the !! operator do?
Interviews tips - Don't put on your CV things you're not comfortable with. It's an opportunity for you to look bad - Why do you want to work there? Do your research. Check their web - Don't rush. It's ok to say "Let me think one moment" - Ask your recruiter about dress code
Why do programmers keep confusing Halloween and Christmas? Oct 31 == Dec 25
Quicksort is a divide and conquer, comparison-based sorting algorithm, developed by Tony Hoare in 1959 In Unix, it is the default library sort subroutine (also in many programming languages) Its average complexity is O(NlogN), worst case O(N^2)
Textual data-encoding formats like - JSON - XML - CSV Make it easy for humans to understand what's being transferred Binary data encoding formats like - Thrift - Protocol Buffers - Avro Aren't human readable (without decoding), but more compact and efficient
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage agilemanifesto .org
Rehashing changes the size of the underlying data structure and remaps the entries to new bucket locations.
The difference between theory and practice is smaller in theory than in practice
If you want to learn GPC or AWS, create a free account and build something You'll get a better understanding of how different services work and when to use them This practical experience will help you learn common workflows, commands, and even prepare for a certification
"Nothing in the world can take the place of persistence Talent: nothing is more common than unsuccessful talented men Genius: unrewarded genius is almost a proverb Education: the world is full of educated derelicts Persistence and determination alone are omnipotent"
Functional programming is a programming paradigm where programs are constructed by applying and composing functions. Functions are "first-class citizens" (treated like any other type) and can't have side-effects Lisp (1959) is the first functional programming language.
"Programs must be written for people to read, and only incidentally for machines to execute." - Harold Abelson
A program is a building of though The art of programming is the skill of controlling complexity.