Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Криминальное чтиво: программирование

Содержание

Зачем вообще докладЯ уже говорил всякие общие слова “как именно хорошо бы уметь”Хочу сказать всякие более конкретные “что именно надо бы изучать” (мегазамах)ВУЗы типично канают слабо, поэтому первый драфт учебного плана жахнем тутПлюс, возможно, собеседования!!!Тот раз
КриминальноечтивоАндрей Аксёнов, Sphinxv.2.0, HighLoad, Мск, 2015 Зачем вообще докладЯ уже говорил всякие общие слова “как именно хорошо бы DisclaimersСлов много, времени мало, продолжать трындеть можно на afterparty в будке!Некоторые будут “Как именно хорошо бы уметь”Религия, тезисноСистемы уже сложные – и будут сложнееCommander q.e.d.Про картинку #2 еще могут быть сомнения – система, на самом деле, Ну так каких ещё героев?!Религия вкратце: я за универсалов!Иначе невозможно решать проблемы Чем мерить героизм [1/3]Радиус туннельного зренияМожно уметь верстать HTML+CSS – и всёМожно Чем мерить героизм [2/3]Радиус туннельного зренияПонимание границ незнания“Культура это палимпсест”Я не помню, Чем мерить героизм [3/3]Радиус туннельного зренияПонимание границ незнанияСпособность самостоятельно действоватьНе надо “думать”, Чем мерить героизмРадиус туннельного зренияПонимание границ незнанияСпособность самостоятельно действоватьПлюс собеседования!!!Вопрос на засыпку: Хочу всё знать! А что “всё”?Проверочные вопросы“Я в целом понимаю, как устроен Собственно, ключевые словаЖелезо. Обязательно CPU, RAM, диск, сеть. Бонусом про видео, звук, Собственно, ключевые словаСофт L1. Ассемблер. Инструкции, стеки, бранчи и цены, прерывания. Битики, Собственно, ключевые словаСофт L2. OS. Менеджмент ресурсов (память, диск, файлы, сокеты, треды, Собственно, ключевые словаСофт L3. Middleware. Базы, OLTP, OLAP, DW, в широком смысле Собственно, ключевые словаСофт L4. Языки. Про скрипты, нативный код, VM и байткод, Экватор!Ровно 0.5 списка ключевиков.Щаз наконец будет и про код. Собственно, ключевые словаСофт L5. Базовый код: методы. Базовые структуры данных: массивы, вектора, Собственно, ключевые словаСофт L6. Код повыше: классы и потоки. ООП, паттерны. ФП, Собственно, ключевые словаСофт L7. Код сбоку: спецтемы. Сжатие данных; работа с картинками, Собственно, ключевые словаСофт L8. Код еще выше: системы. Модули, внешние и внутренние Собственно, ключевые словаИнфраструктура. Билды и беды с ними, CI, деплой – теперь Preemptive FAQQ: ...ать, это ж минима 37 томов читать. A: Наверное больше, И для разнообразия о приятномВсё подряд и идеально (см. эксперт) знать вообще Читай книжки, напримерНо лучше не читай; можно зачитатьсяОптимально позже; штоп проверить книжкуЧитай Пиши код, напримерНачинай с простого, и быстрые итерацииВЕЗДЕ есть развлечения на полчаса, Пиши код, напримерL1, asm. Напиши Win32 hello world. Залей окошко gray(x xor Пиши код, напримерL4, lang. Выбери новый язык, напиши чего. Посмотри дизасм, в Пиши код, напримерЭкспериментируй смело, чморить некому!!!Пробуй разное, но не распыляйсяФейлись много и Пиши код, напримерСамое главное.Напиши себе свой личный список.Мой неполный, кривой, biased и Сверхцель всего процессаМысль про магиюБайка про ниндзюШутка про зарплату!!!37/38 Вопросы?(Не в церкви, не обманут.)shodan.ru/ppt shodan@sphinxsearch.com Опа, бонус-трек! (если вдруг останется время)39/49 Про хайлоад Есть ли специфика?А у вас какой хайлоад?Длинный или толстый?Кривой? Это у всех, Длинный highload“Оптимизировать нельзя! => Скейлить”Но аккуратно тут, может быть иллюзиейРаспределенные системы в Толстый highload“Оптимизировать! => Нельзя скейлить”Т.к. смысла нет, сначала хоть POCЛокальная оптимизация в Про собеседования Но.. Но.. Но как же собеседования?И причем тут вообще все эти мегасписки!?Давайте Большая тайна собеседований!Вариантов реализации много!Маленькая боевая задачаFizzBuzz, strrev(), strdup(), …IndustrialRPN“Интервью имени Баткина” Большая тайна собеседований!Тезис раз, всем в целом похер твой React, Objective-C или Теперь совсем всё.Упс.shodan.ru/ppt shodan@sphinxsearch.com
Слайды презентации

Слайд 2


Слайд 4 Зачем вообще доклад
Я уже говорил всякие общие слова “как

Зачем вообще докладЯ уже говорил всякие общие слова “как именно хорошо

именно хорошо бы уметь”
Хочу сказать всякие более конкретные “что именно

надо бы изучать” (мегазамах)
ВУЗы типично канают слабо, поэтому первый драфт учебного плана жахнем тут
Плюс, возможно, собеседования!!!
Тот раз в пять лет, где сложный алгоритм!!!

4/38


Слайд 5 Disclaimers
Слов много, времени мало, продолжать трындеть можно на

DisclaimersСлов много, времени мало, продолжать трындеть можно на afterparty в будке!Некоторые

afterparty в будке!
Некоторые будут нехорошие, дети до 16 и

ханжи за 30, покиньте зал
Обычно я стараюсь хоть одной вещи да научить, но сегодня – только запутать!!!

5/38


Слайд 6 “Как именно хорошо бы уметь”
Религия, тезисно
Системы уже сложные

“Как именно хорошо бы уметь”Религия, тезисноСистемы уже сложные – и будут

– и будут сложнее
Commander Keen … Doom 1 …

UE4
DOS … Windows 3.x … Windows 10
Lynx … IE4 … Chrome
CSV … MySQL … ???
index.html … LAMP guestbook … Google
Проблемы в них тоже – и будут сложнее
Отчизна требует героев!

6/38


Слайд 10 q.e.d.
Про картинку #2 еще могут быть сомнения –

q.e.d.Про картинку #2 еще могут быть сомнения – система, на самом

система, на самом деле, не очень сложна!
Про картинку #3

уже нет, совершенно очевидно, герои – необходимы…

Заметьте, идеал – всегда картинка #1

Слайд 11 Ну так каких ещё героев?!
Религия вкратце: я за

Ну так каких ещё героев?!Религия вкратце: я за универсалов!Иначе невозможно решать

универсалов!
Иначе невозможно решать проблемы на стыке
Иначе невозможно придумывать решения
Широкий

кругозор, не менее 3го размера!
Антирелигия: универсалы чмо, спецы сила!
Универсалы всё знают одинаково плохо
Чем уже спец, тем приятнее эээ разработка
Противоречия, на самом деле, (пока) нет

11/38


Слайд 12 Чем мерить героизм [1/3]
Радиус туннельного зрения
Можно уметь верстать

Чем мерить героизм [1/3]Радиус туннельного зренияМожно уметь верстать HTML+CSS – и

HTML+CSS – и всё
Можно уметь пользовать LAMP стек –

и всё
Или представлять устройство разного софта
Или разных уровней железа
Идеально “знать” вообще всё – невозможно
Однако представлять в общем – таки да
Как следствие, внезапно…

12/38


Слайд 13 Чем мерить героизм [2/3]
Радиус туннельного зрения
Понимание границ незнания
“Культура

Чем мерить героизм [2/3]Радиус туннельного зренияПонимание границ незнания“Культура это палимпсест”Я не

это палимпсест”
Я не помню, как умножать кватернионы :(
Я не

знаю, как писать на Angular.js или Django
Я не знаю, как устроен RTMP
Да и php programmerus vulgaris не отсобеседую
“Но есть нюанс…”

13/38


Слайд 14 Чем мерить героизм [3/3]
Радиус туннельного зрения
Понимание границ незнания
Способность

Чем мерить героизм [3/3]Радиус туннельного зренияПонимание границ незнанияСпособность самостоятельно действоватьНе надо

самостоятельно действовать
Не надо “думать”, надо прыгать!
Думать иногда надо, но

лучше бы пореже

14/38


Слайд 15 Чем мерить героизм
Радиус туннельного зрения
Понимание границ незнания
Способность самостоятельно

Чем мерить героизмРадиус туннельного зренияПонимание границ незнанияСпособность самостоятельно действоватьПлюс собеседования!!!Вопрос на

действовать

Плюс собеседования!!!
Вопрос на засыпку: а зачем вообще нужны собеседования?
15/38


Слайд 16 Хочу всё знать! А что “всё”?
Проверочные вопросы
“Я в

Хочу всё знать! А что “всё”?Проверочные вопросы“Я в целом понимаю, как

целом понимаю, как устроен X”
“Я знаю ряд деталей и

могу тюнить/чинить X”
“Я и сам могу сделать этот ваш X”
“Толкиен дурак, Сильм лажа, не так всё было”
X = {процессор 8086, самый первый тетрис, гастевуха штоп пасрать, TCP стек, всё ядро, …}
Надо бы понимать все уровни!
От клика мышкой до пикселов на экране

16/38


Слайд 17 Собственно, ключевые слова
Железо. Обязательно CPU, RAM, диск, сеть.

Собственно, ключевые словаЖелезо. Обязательно CPU, RAM, диск, сеть. Бонусом про видео,

Бонусом про видео, звук, периферию, USB, PCI, IB/FC, про

энергопотребление. Что есть, как внутри устроено, как снаружи работает, чего может.
Иногда ещё как влияет на софт: SSD vs HDD, GPU акселерация, тупо SIMD, виртуализация, итп.

17/38


Слайд 18 Собственно, ключевые слова
Софт L1. Ассемблер. Инструкции, стеки, бранчи

Собственно, ключевые словаСофт L1. Ассемблер. Инструкции, стеки, бранчи и цены, прерывания.

и цены, прерывания. Битики, байтики, форматы int/float, откуда берутся

указатели. Частоты, латентности, кеши. Защищенный режим, переключения контекстов, ядра, треды, GPF vs TLB vs mwahaha. Про SIMD. Бонусом про Intel, ARM, muops, энергию, прочий ад.

18/38


Слайд 19 Собственно, ключевые слова
Софт L2. OS. Менеджмент ресурсов (память,

Собственно, ключевые словаСофт L2. OS. Менеджмент ресурсов (память, диск, файлы, сокеты,

диск, файлы, сокеты, треды, …), syscalls, IPC (shm, mmap,

pipes, signals, …), ценники. Как что профайлить, трейсить, джентльменский набор vmstat, iostat, strace, oprofile, gperf итп. Виртуализация, гори она в аду. Бонусом устройство FS, IP/TCP/UDP.

19/38


Слайд 20 Собственно, ключевые слова
Софт L3. Middleware. Базы, OLTP, OLAP,

Собственно, ключевые словаСофт L3. Middleware. Базы, OLTP, OLAP, DW, в широком

DW, в широком смысле (+memcache итп). Веб, аппсервера. Бонусом

обработка картинок, видео, звук, поиск, компзрение, сжатие, машобучение, bigdata, облачные хранилки и выполнялки (hadoop hadoop hadoop!) и т.п. как бы спецтемы и спецсофт.
Каждый пункт – отдельная большая наука, ага

20/38


Слайд 21 Собственно, ключевые слова
Софт L4. Языки. Про скрипты, нативный

Собственно, ключевые словаСофт L4. Языки. Про скрипты, нативный код, VM и

код, VM и байткод, JIT. Императивные, функциональные, типизированные и

нет. Отладка тулзами, отладка логами, профайлинг. Статический и динамический анализ, рефакторинг, VCS, DVCS.

21/38


Слайд 22
Экватор!

Ровно 0.5 списка ключевиков.
Щаз наконец будет и про

Экватор!Ровно 0.5 списка ключевиков.Щаз наконец будет и про код.

код.


Слайд 24 Собственно, ключевые слова
Софт L5. Базовый код: методы. Базовые

Собственно, ключевые словаСофт L5. Базовый код: методы. Базовые структуры данных: массивы,

структуры данных: массивы, вектора, хеши, списки, деревья, очереди. Манипуляции

с ними, комбинации их, родных. Базовые алгоритмы: сортировки, поиски, эээ, упс. Вычислительная сложность.
Юнит-тесты, моки, ассерты, логи, внезапный отладчик.
Комментарии, @#$

24/38


Слайд 25 Собственно, ключевые слова
Софт L6. Код повыше: классы и

Собственно, ключевые словаСофт L6. Код повыше: классы и потоки. ООП, паттерны.

потоки. ООП, паттерны. ФП, хоть чуть. Стандартные техники: regexp,

генераторы парсеров, прочий автоген, DSL.
Потоки, файберы. Синхронизация (mutex, rwlock, прочий IPC), atomic, lockfree структуры. Races, deadlocks, отлов, борьба, недопущение. Внезапно снова ФП и пуризм.

25/38


Слайд 26 Собственно, ключевые слова
Софт L7. Код сбоку: спецтемы. Сжатие

Собственно, ключевые словаСофт L7. Код сбоку: спецтемы. Сжатие данных; работа с

данных; работа с картинками, видео, звуком; прочий DSP; встроенные

системы; интерпретаторы и компиляторы; 3D графика; компьютерное зрение; “гигазы варёза” и неизбежный MapReduce; машинное обучение; HPC; мобилы; …
Каждый пункт – отдельная наука опять!!!

26/38


Слайд 27 Собственно, ключевые слова
Софт L8. Код еще выше: системы.

Собственно, ключевые словаСофт L8. Код еще выше: системы. Модули, внешние и

Модули, внешние и внутренние API, спеки, тесты (приемка, регрессии,

перф, итп). Форматы, версии, совместимость API/данных. Беды распределенных систем, методы борьбы. Билды и беды с ними, прочий CI, поддержка деплоя.

27/38


Слайд 28 Собственно, ключевые слова
Инфраструктура. Билды и беды с ними,

Собственно, ключевые словаИнфраструктура. Билды и беды с ними, CI, деплой –

CI, деплой – теперь без кода. Бэкапы, восстановление. Логи,

мониторинг, реакция на аварии, аналитика. Стресс-тесты, планирование емкости. Автоматизация этого всего, типа devops.

28/38


Слайд 29 Preemptive FAQ
Q: ...ать, это ж минима 37 томов

Preemptive FAQQ: ...ать, это ж минима 37 томов читать. A: Наверное

читать. A: Наверное больше, плюс наколка: читать мало, надо стремиться

их уметь написать.
Q: ...уй и зачем же мне это всё, я херачу на PHP тупо, плюс у меня стоянка, капает кеш. A: Строго из личного интереса, мыгыгы, но может случайно появиться и бабло.
Q: Да ты сам небось ни …ра не знаешь! A: Разумеется!!!

29/38


Слайд 30 И для разнообразия о приятном
Всё подряд и идеально

И для разнообразия о приятномВсё подряд и идеально (см. эксперт) знать

(см. эксперт) знать вообще невозможно – но и не

нужно
Часть – вы знаете уже
Часть – особо малоприменима
Часть – лично неинтересна
Порядок – может быть любой
Список неполон, но понятен – действуй!!!

30/38


Слайд 31 Читай книжки, например
Но лучше не читай; можно зачитаться
Оптимально

Читай книжки, напримерНо лучше не читай; можно зачитатьсяОптимально позже; штоп проверить

позже; штоп проверить книжку
Читай маны, читай код, читай гугель
Сначала

ПИШИ, потом уже всякое читай, не читать учимся
Про подъем штанги еще сцуко почитай!!!

31/38


Слайд 32 Пиши код, например
Начинай с простого, и быстрые итерации
ВЕЗДЕ

Пиши код, напримерНачинай с простого, и быстрые итерацииВЕЗДЕ есть развлечения на

есть развлечения на полчаса, ну или максимум на вечер
НИГДЕ

нету невообразимой rocket science, всегда очень много можно спрототипить в очень мало строк

32/38


Слайд 33 Пиши код, например
L1, asm. Напиши Win32 hello world.

Пиши код, напримерL1, asm. Напиши Win32 hello world. Залей окошко gray(x

Залей окошко gray(x xor y). А теперь на MMX.

А теперь померь скорость.
L2, OS. Побенчмаркай malloc(). Позырь strace, поудивляйся. Почитай ext4 какой.
L3, middle. Напиши простенький calcd. А теперь простенький in-mem KV. А теперь чуть сложнее с диском, Btree, libevent.

33/38


Слайд 34 Пиши код, например
L4, lang. Выбери новый язык, напиши

Пиши код, напримерL4, lang. Выбери новый язык, напиши чего. Посмотри дизасм,

чего. Посмотри дизасм, в том числе байткода.
L5, methods. Напиши

хеш. Скрести его с чем. А теперь radixsort. А теперь SIMD.
L6, classes/threads. Перепиши calcd на yacc. А теперь многопоточно. А теперь без сайд эффектов, just because fuck you.
L7, specials. Напиши JPEG декодер. Напиши рейтрейсер. Затекстурируй треугольник.

34/38


Слайд 35 Пиши код, например
Экспериментируй смело, чморить некому!!!
Пробуй разное, но

Пиши код, напримерЭкспериментируй смело, чморить некому!!!Пробуй разное, но не распыляйсяФейлись много

не распыляйся
Фейлись много и с удовольствием, но чини
Не забывай

учиться, в третий раз… не пацан
Доводи до конца, не работает => не сделал
Переделывай N раз, на целевые LOC/время

Если ничо никак не идет, меняй индустрию!

35/38


Слайд 36 Пиши код, например
Самое главное.

Напиши себе свой личный список.
Мой

Пиши код, напримерСамое главное.Напиши себе свой личный список.Мой неполный, кривой, biased

неполный, кривой, biased и вообще.

Не жди никакого внезапного мега-толка.
Его

не будет все равно, муахаха.

36/38


Слайд 37 Сверхцель всего процесса
Мысль про магию
Байка про ниндзю
Шутка про

Сверхцель всего процессаМысль про магиюБайка про ниндзюШутка про зарплату!!!37/38

зарплату!!!
37/38


Слайд 38 Вопросы?
(Не в церкви, не обманут.)

shodan.ru/ppt shodan@sphinxsearch.com

Вопросы?(Не в церкви, не обманут.)shodan.ru/ppt shodan@sphinxsearch.com

Слайд 39 Опа, бонус-трек! (если вдруг останется время)
39/49

Опа, бонус-трек! (если вдруг останется время)39/49

Слайд 40 Про хайлоад

Про хайлоад

Слайд 42 Есть ли специфика?
А у вас какой хайлоад?
Длинный или

Есть ли специфика?А у вас какой хайлоад?Длинный или толстый?Кривой? Это у

толстый?
Кривой? Это у всех, это ничего; “мы с мамой

подумали, нам из него не стрелять...”
Длинный == “много” “быстрых” запросов
Толстый == “мало” “тяжелых” запросов
“Оптимизировать нельзя скейлить”

Слайд 43 Длинный highload
“Оптимизировать нельзя! => Скейлить”
Но аккуратно тут, может

Длинный highload“Оптимизировать нельзя! => Скейлить”Но аккуратно тут, может быть иллюзиейРаспределенные системы

быть иллюзией
Распределенные системы в целом
Middleware в частности
Железо, борьба со

сбоями, боттлнеки

Слайд 44 Толстый highload
“Оптимизировать! => Нельзя скейлить”
Т.к. смысла нет, сначала

Толстый highload“Оптимизировать! => Нельзя скейлить”Т.к. смысла нет, сначала хоть POCЛокальная оптимизация

хоть POC
Локальная оптимизация в целом
Middleware в частности! mwahaha
Железо, боттлнеки


Слайд 45 Про собеседования

Про собеседования

Слайд 46 Но.. Но.. Но как же собеседования?
И причем тут

Но.. Но.. Но как же собеседования?И причем тут вообще все эти

вообще все эти мегасписки!?
Давайте поговорим про собеседования!
Что вы хотите

узнать? 

Слайд 47 Большая тайна собеседований!
Вариантов реализации много!
Маленькая боевая задача
FizzBuzz, strrev(),

Большая тайна собеседований!Вариантов реализации много!Маленькая боевая задачаFizzBuzz, strrev(), strdup(), …IndustrialRPN“Интервью имени

strdup(), …
IndustrialRPN
“Интервью имени Баткина” (c) http://blog.gamedeff.com/?p=64 вроде
G, F, B, Y

и их никогда не нужные загадки
А сверхцель одна!!!
А обобщенный критерий один!!!

Слайд 48 Большая тайна собеседований!
Тезис раз, всем в целом похер

Большая тайна собеседований!Тезис раз, всем в целом похер твой React, Objective-C

твой React, Objective-C или успехи на почве Clojure
Тезис два,

чем больше покрытие списка, тем больше общих тем (плюс лексикон)
Тезис три, надо уметь писать простой код, сложный надо уметь не писать

Плюс, собственно, можно ведь... готовиться

  • Имя файла: kriminalnoe-chtivo-programmirovanie.pptx
  • Количество просмотров: 115
  • Количество скачиваний: 0