Your Coding Teacher
379 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
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
Deleted code is debugged code
"I do not fear computers.
I fear the lack of them."
- Isaac Asimov
Be a doer.

Not a talker.
Compiler warnings are to be taken seriously

Otherwise, just disable them, at your own peril.
Blame doesn't fix bugs
"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.
Coding is easy.

Writing good code is hard.
Anything that can go wrong will go wrong

Anything that can't go wrong will go wrong anyway
Software is more like science that mathematics.

You cannot prove that you'r software is correct (no bugs).

You can write a bunch of tests to show that your code hasn't failed (so far).
It's possible to "increase the available RAM" on a Linux machine using disk.

The Linux virtual memory system can move data from memory disk and viceversa, in a process called swapping.

The disk area used to store memory pages is called swap space.
The first 90% of a project takes 90% of development time.

The last 10% takes the other 90% of the time.
In C++, to prevent resource leaks, use RAII

Resource Acquisition Is Initialization

Acquire resources in constructors and release them in destructors
//TODO comments end up being //Never do's
"Debugging is like being the detective in a crime movie where you are also the murderer."
- Filipe Fortes
Python's list comprehensions provides a concise way of creating a list from another.

For example:

cubes = [x**3 for x in a].

In general, they are clearer than maps and filters built-in function.
Message queues in a tweet

- Allows for asych processing
- Stores messages that servers will read and process
- Adds reliability (no message is lost)
- Dead-letter queue: receives messages that couldn't be routed to their destination
- Ex: SQS, Kafka, Rabbit MQ, Pub/Sub