“What happens when you type [a website] in your browser and press Enter”: a recurring question in job interviews that sums up a fair part of a Software Engineer knowledge.
Everybody browse the Internet but few bother to wonder what actually happens behind the scene.
Before we begin our journey into web infrastructure, I’d like to present the client — server model, since the communication on Internet is based on this model.
There is a cheeky joke about recursion I can’t help using here “To understand recursion, you must first understand recursion”.
That may be correct with a caveat: like the Russian dolls, a recursion should not go on forever, it has to end when the base case is met.
What’s the base case?
Well, let’s start over.
What is recursion ?
Recursion is when a function calls itself, until it doesn’t.
In Computer Science, a recursion function is made of
Python is an object-oriented programming language, and in Python everything is an object.
Almost every object has some metadata (called attributes) and associated functionality (called methods).
Even these attributes and methods of objects are themselves objects with their own type information.
Every object can be assigned to a variable or passed as an argument to a function.
The type() function returns the type of the object. The returned type is a class as each object is an instance of the corresponding class. Class is a structure used to describe and access a particular value’s information and methods.
From my previous…
Python is a high level programming language designed for general purpose programming, it supports both Procedural and Object Oriented features. Python is multi-paradigm.
With procedural programming, a problem is broken down into functions. Each function does just one task. The main program is a series of calls to the different functions.
Object Oriented Programming (OOP) allows the programmer to couple data structure and related functionality (behavior, methods for accessing and manipulating the data) into objects. This entails describing the objects in terms of their class.
The class & instance attributes are specific to OOP.
OOP is an approach for modeling…
When you write a program, chances are you may need to print something to the screen. How would you do it? Would you write a printf function from scratch or use the one available in the <stdio.h> library?
The answer is obvious.
When you compile and run the program with printf from the <stdio.h>, you’ve used a library.
In order to access to this library, you’ve added #include <stdio.h> at the beginning of the program.
It’s only at the linking stage, the last of the four stages of the compilation process, that you can specify how the source code for…
On computer systems, a byte consists of eight smaller units called bits. A bit can assume either of two values: 1 or 0.
The rightmost bit of a byte is known as the least significant bit (LSB), whereas the leftmost bit is known as the most significant bit (MSB).
Data types are of fixed width.
An integer takes 4 bytes, which is 32 bits. The rightmost bit of the byte represents 2⁰ or 1, the bit immediately to its left represents 2¹ or 2, the next bit 2² or 4, and so on.
· An unsigned integer can represent any…
Imagine there is an ideal library, where one could find all information ever existed, and these information are always available for whoever need them.
There is no need to store anything locally imagine no possessions, you may say I’m a dreamer ;-)
So, how would that help me to understand library in C?
When you’re working on a new project, chances are parts of the project are already developed either by you or a third party.
How about not reinventing the wheel?
What if there is a way to reuse existing snippets? That would keep your code from growing, reduce…