1969: What're you doing with that 2KB of RAM? Sending people to the moon 2020: What're you doing with that 1.5GB of RAM? Closing a tab in Chrome
  You spend many hours using your editor. Take your time to learn how to use it efficiently: - Keyboard shortcuts - Navigate to files - Search and replace based on regular expressions - Useful plugins This alone will make you much more productive, and compounds over time.
  C++ developed by Bjorn Strauss up at Bell Labs in 1983 Also known as "C with classes", it's one of the most used languages. Some examples: - Adobe Photoshop - MYSQL Server - Mozilla Firefox - Gaming industry - Banking and finance applications cout<<"Hello World";
  "Those who can imagine anything, can create the impossible." - Alan Turing
  Some "real life" applications of hash tables: - Compilers symbol tables: to keep track of variables - Games: from chessboard position to what to do next - Caches - DNS: from domain to server IP - Spell checkers: from wrong spelling to list of words the user meant to type
  In 2003, James Strachan created Groovy as an improvement on Java It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. print "Hello World!\n"
  Ruby was created by Yukihiro Matsumoto in 1995 - Combines ideas from various other languages like Perl, Small talk, BASIC, Lisp - Ruby is most commonly found in web development - It also includes dynamic typing and garbage collection puts 'Hello, world!'
  Challenges of building distributed systems: - How to connect different networks, OS, hardware, programming languages, ... - How to extend them - How to handle security - How to scale them: algorithms, concurrency, infrastructure, ... - How to make them fail-tolerant
  Compiler warnings are to be taken seriously Otherwise, just disable them, at your own peril.
  "Code is like humor. When you have to explain it, it's bad." - Cory House
  "C++ is designed to allow you to express ideas, but if you don't have ideas or don't have any clue about how to express them, C++ doesn't offer much help." - Bjarne Stroustrup
  Merkle trees, also known as binary hash trees, are a type of binary tree. hey can be used to efficiently verify the integrity of large sets of data. They are used in both blockchain and non-blockchain-related projects.
  Types of programming languages, based on "types": - Strongly vs Weakly typed -> whether you are required to declare types for variables/functions. - Statically vs Dynamically typed -> whether type checking is done at compile-time or run-time.
  Anything that can go wrong will go wrong Anything that can't go wrong will go wrong anyway