Your Coding Teacher
380 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
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
In GCP, you can use preemptible virtual machines to save up to 80% of your costs.

They are ideal for fault-tolerant, non-critical applications.

You can save the progress of your job in a persistent disk using a shut-down script to continue where you left off.
The best developers follow a simple principle

"Always Be Learning"
"There are no significant bugs in our released software that any significant number of users want fixed."
- Bill Gates
The best thing about a boolean is even if you are wrong, you are only off by a bit
"The language in which we express our ideas has a strong influence on our thought processes."
- Donald Knuth
Instead of trying to figure out what's the next incremental improvements for a slow algorithm,

sometimes it's better to try a complete different approach
Make something fool-proof

and someone will make a better fool
4 JavaScript interview questions

What is a Callback function?
What are Arrow functions?
What is the usage of Function.prototype.bind?
How to check if a value is null?
We live in a world governed by distributed systems.

From small intranets, to share printers, to the Internet
Bit-level operations on an integer x

x |= 1<<7 -> set bit 7 (the first bit starts at index 0)
x &= ~(1<<7) -> clear bit 7
x ^= 1<<7 -> toggle bit 7
mask = ((1<<8)-1) -> create an 8 bit mask
(x >> 16) & 0xf -> extract bits 16 through 8
(x >> 7) & 1 -> test bit 7
I've also wasted long hours debugging issues that came from:

- Reading the wrong configuration file
- Using outdated information from an internal wiki page
- Problems with someone else's code
- Copy-paste related errors

When things go wrong, check your assumptions.
Perl was developed by Larry Wald in 1987 as a scripting language for text editing

It is commonly used in:

- Linux system administration
- Web development
- Network programming

print "Hello, World!\n";
Some questions to consider to clarify requirements:

- Read/write heavy sistem? (or both)
- Expected # Users (average and peak)
- Traffic patterns
- Amount of data to store (for how long)
- SLA
- Consistency model?
- Cost of development vs operations/maintenance
Some properties of distibuted systems:

- Reliability: the system can tolerate faults (software or hardware)
- Scalability: the system has good performance when load increases
- Maintainability: the system is easy to extend and to operate
"A man provided with paper, pencil, and rubber, and subject to strict discipline, is in effect a universal machine"
- Alan Turing