Другое
Платно

Компьютерные системы


Хочешь понимать, как устроен компьютер изнутри и писать крутой, быстрый и стабильный код? Этот курс — отличный старт! Мы разберём, как информация кодируется в бинарном виде, как работает память, что такое кэш-память и как программы реально исполняются. Погружаемся в язык C и даже немного в ассемблер, чтобы научиться мыслить как компьютер и писать код, который железо будет "любить". Чему ты научишься: читать и писать байты, понимать, почему числа иногда «переполняются», чем отличается UTF-8 от UTF-32, зачем нужен стек вызовов, как устроены регистры и почему кэш-память такая важная. Что нужно знать: основы программирования — хватит, остальному научим. Для кого этот курс: для разработчиков, студентов, хакеров, любопытных и всех, кто хочет разобраться, как устроено "под капотом". Формат: практические задачки, мини-лекции и семинары, чтобы собрать всё в единую картину. Сертификат: да, по окончании будет.

Информация о курсе

Дата добавления

06.04.2025

Дата обновления

06.04.2025

Количество уроков

78 уроков

Продолжительность

1695 минут 00 секунд

Исходный курс

Пример урока

003 Beep beep boop

Посмотрите пример урока, чтобы оценить качество материала

Содержание курса

1

001 Protobuf varint

2

002 CSS color convert

3

003 Beep beep boop

4

004 Image rotate

5

005 TCP SYN flood

6

006 UTF-8 truncate

7

007 Sneaky NaN

8

008 Unsigned integers alternatives and overflow (sorry maam)

9

009 Signed integers in JavaScript and ones complement Internet checksum

10

010 Floating point IEEE754 structure and safe integers in floats in JavaScript

11

011 Unicode UTF-8 UTF-32 and ugh UTF-16

12

012 What are standard in and standard out

13

013 Why does a byte have values 0–255

14

014 What do bigendian and littleendian mean

15

015 Why masking low order bits is like modulus of a power of 2

16

016 Why do we care about teletype machines

17

017 Why are some bitwise operations faster than arithmetic equivalents

18

018 What are file descriptors 0 1 and 2

19

019 What does it mean for a value to be a certain number of bits

20

020 What are signed and unsigned integers

21

021 Why do I sometimes see the sequence \r\n for a newline

22

022 What does it mean to flush a buffer

23

023 What's the basic difference between UTF-8, UTF-16, and UTF-32

24

024 Why does one byte correspond to two hexadecimal digits

25

025 What's the difference between Unicode and something like UTF-8

26

026 How to remember all the powers of two

27

027 How do I read a hexdump

28

028 What is a byte exactly

29

029 How does UTF-8 encode characters (aka artisanal Unicode sandwich)

30

030 What is a file descriptor

31

031 What exactly is hexadecimal

32

032 What do bitwise AND, OR, XOR and NOT do

33

033 What's the point of floating point

34

034 What is the effect of shifting bits

35

035 How are IEEE 754 floating point numbers encoded

36

036 Hello World

37

037 Bitcount

38

038 Fast pangram

39

039 Dynamic array

40

040 Varint C extension

41

041 Basic hashmap

42

042 How do C compilers differ

43

043 What is a register

44

044 The generic pointer (void*) in C

45

045 Helping Max rotate bits right

46

046 Loop syntax in C

47

047 The C preprocessor, macros and conditional inclusion

48

048 A brief overview of structs in C

49

049 A brief introduction to Valgrind

50

050 Type definitions and literals in C

51

051 A brief overview of malloc and related functions

52

052 A brief tour of LLDB

53

053 What happens in the compilation pipeline

54

054 What is the effect of the compiler optimization level flag

55

055 Overview of pointers and arrays in C

56

056 Helping Jessica understand void

57

057 Assembly Hello world

58

058 Sum to N

59

059 Matrix access

60

060 x86-64 pangram

61

061 Binary convert

62

062 Cone volume

63

063 Low level recursion

64

064 The System V AMD64 calling convention

65

065 Explaining the terms computer architecture, instruction set and microarchitecture

66

066 What's the difference between Intel and AT&T assembly syntax

67

067 What are the general purpose registers in x86-64

68

068 What is the fetch-decode-execute cycle

69

069 Faster sum

70

070 Color quantizing

71

071 Moving beyond the simple fetch-decode-execute model

72

072 Grayscale speedup

73

073 Pointer chase

74

074 Bogosum

75

075 What is a cache line (brief explanation)

76

076 Understanding CPU caches

77

077 Why are there multiple levels of CPU cache

78

078 Measuring cache performance with perf and cachegrind

Мы используем файлы cookie для улучшения работы сайта и аналитики. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.