Как написано на кружке справа:
Лучшая защита - это понимание.
Все верно написано, и это применимо во всех сферах жизни.
Я поздравляю всех с Днём Знаний!
Желаю всем прекрасного, насыщенного и интересного учебного года! Пусть он будет наполнен новыми вызовами, с которыми вы все блестяще справитесь и станете лучше!
Лучшая защита - это понимание.
Все верно написано, и это применимо во всех сферах жизни.
Я поздравляю всех с Днём Знаний!
Желаю всем прекрасного, насыщенного и интересного учебного года! Пусть он будет наполнен новыми вызовами, с которыми вы все блестяще справитесь и станете лучше!
🔥9👍2🍌1
Как некоторые из вас уже знают, я учился в Политехе (Политех Петра), на факультете технической кибернетики (ФТК — сейчас его уже нет в результате реструктуризации), на кафедре информационной безопасности компьютерных систем (ИБКС, сейчас это Институт кибербезопасности). Учился я на специалитете — 5 лет — и закончил его в 2010-м году. Диплом у меня был посвящён созданию защищённых систем виртуализации, как, собственно, и моя кандидатская диссертация — её я защитил в 2013-м.
Учиться было трудно)
Я как раз выбрал такой средний, сбалансированный вариант. Не скажу, что участвовал во всей движухе — отнюдь. На кафедре и факультете, как и в институте в целом, было не так уж много движухи, ну а я, как интроверт, всё это пропускал)
Тем не менее на первых двух курсах я ходил на все лекции, особенно на физику, математику и всё, что было по специальности.
Набор курсов был интересным: и теория компиляторов, и системы управления базами данных, и даже искусственный интеллект (в то время это был Prolog).
Хочу немного пояснить про искусственный интеллект — нынче модную тему. Этот курс был посвящён в основном экспертным системам, и все лабы были на языке Prolog.
Ох, в своё время для моего императивно мыслящего мозга это было очень сложно. Вроде смотришь на код — как будто функции:
А это нифига не функции) Это предикаты, и запускать надо так:
Кому интересно — рекомендую полюбопытствовать в качестве упражнения для мозгов.В то время мы с друзьями в составе четырёх человек на выходных завалились ко мне домой и пытались вместе разобраться с этой штукой. Успешно, впрочем.
Но главная фишка моего обучения была в том, что меня с первого курса — со второго семестра — пригласили на работу. Я был несказанно счастлив. Первые два месяца мне не платили, потом я работал примерно за 5к (тогда у меня стипендия была больше), но всё равно был очень рад приобщиться к реальному рабочему процессу. С лета начал работать full-time и каждый день ездил на работу на электричке из Токсово. Я, конечно, тогда ничего особо не умел (сейчас вообще не понимаю, за что мне платили даже те деньги...), однако как начал там работать в коллективе из 5–6 человек, так и продолжил. В результате я проработал там больше 12 лет и дорос до должности системного архитектора, а компания к тому моменту выросла до 100 человек.
Прекрасный опыт. Там я сделал много проектов, многие придумывал сам и сам же реализовывал. Довелось поработать и просто тестировщиком, и разработчиком, и даже несколько лет поруководить командой из 10 человек как PM. Потом решил, что кодить всё-таки интереснее))) Стал тимлидом, а затем системным архитектором.
Я понимаю, что вряд ли кто-то из них это читает, но я благодарен всем моим руководителям, учителям и коллегам за те годы. Спасибо вам!
Так вот, из-за того, что я начал работать с первого курса, некоторые вещи я узнавал сперва на практике, а уже потом слушал про них на лекции.«А-а-а... Вон оно как на самом деле...» — думал я на лекции. Конечно, так было не всегда. Приведу пример с компьютерными сетями. Сначала на работе я писал код для сетевого фильтра и видел все сетевые пакеты как u8* p_packet, парсил MAC, IP, TCP и т. д. А потом уже на лекциях мне рассказывали, что такое OSI и всё остальное...
👇👇👇
Учиться было трудно)
Я как раз выбрал такой средний, сбалансированный вариант. Не скажу, что участвовал во всей движухе — отнюдь. На кафедре и факультете, как и в институте в целом, было не так уж много движухи, ну а я, как интроверт, всё это пропускал)
Тем не менее на первых двух курсах я ходил на все лекции, особенно на физику, математику и всё, что было по специальности.
Набор курсов был интересным: и теория компиляторов, и системы управления базами данных, и даже искусственный интеллект (в то время это был Prolog).
Хочу немного пояснить про искусственный интеллект — нынче модную тему. Этот курс был посвящён в основном экспертным системам, и все лабы были на языке Prolog.
Ох, в своё время для моего императивно мыслящего мозга это было очень сложно. Вроде смотришь на код — как будто функции:
factorial(N, Result) :-
( N =:= 0
-> Result = 1
; N1 is N - 1,
factorial(N1, Partial),
Result is N * Partial
).
main :-
factorial(5, F), format('factorial(5) = [F]).А это нифига не функции) Это предикаты, и запускать надо так:
?- main.factorial(5) =
120 true.Кому интересно — рекомендую полюбопытствовать в качестве упражнения для мозгов.В то время мы с друзьями в составе четырёх человек на выходных завалились ко мне домой и пытались вместе разобраться с этой штукой. Успешно, впрочем.
Но главная фишка моего обучения была в том, что меня с первого курса — со второго семестра — пригласили на работу. Я был несказанно счастлив. Первые два месяца мне не платили, потом я работал примерно за 5к (тогда у меня стипендия была больше), но всё равно был очень рад приобщиться к реальному рабочему процессу. С лета начал работать full-time и каждый день ездил на работу на электричке из Токсово. Я, конечно, тогда ничего особо не умел (сейчас вообще не понимаю, за что мне платили даже те деньги...), однако как начал там работать в коллективе из 5–6 человек, так и продолжил. В результате я проработал там больше 12 лет и дорос до должности системного архитектора, а компания к тому моменту выросла до 100 человек.
Прекрасный опыт. Там я сделал много проектов, многие придумывал сам и сам же реализовывал. Довелось поработать и просто тестировщиком, и разработчиком, и даже несколько лет поруководить командой из 10 человек как PM. Потом решил, что кодить всё-таки интереснее))) Стал тимлидом, а затем системным архитектором.
Я понимаю, что вряд ли кто-то из них это читает, но я благодарен всем моим руководителям, учителям и коллегам за те годы. Спасибо вам!
Так вот, из-за того, что я начал работать с первого курса, некоторые вещи я узнавал сперва на практике, а уже потом слушал про них на лекции.
👇👇👇
❤7👍2
Второй особенностью того, что я начал работать с первого курса, стало то, что я начал пропускать некоторые лекции. Второй курс я ещё держался и ходил на всё, но вот на третьем как-то раз больше месяца не появлялся в институте, а вместо этого ходил на работу. Нетрудно догадаться, что это привело к проблемам, которые я потом, надрываясь, исправлял.В частности, как сейчас помню: последний день зачётной недели — пятница. У меня ни одного зачёта, а нужно было получить минимум пять для допуска к экзаменам, иначе сразу допса. Я не спал две ночи — реально проснулся в среду и больше не смыкал глаз — и всё это время делал лабораторные. В пятницу утром я пришёл на работу в офис попить кофе и подготовиться к сдаче лаб. Потом — бац — уже вечер пятницы, а я сдал пять зачётов + один экзамен и наконец-то могу поспать! Не делайте так — не спать две ночи вредно для здоровья.
Вот такие первые флешбэки с моей учёбы. Будут ещё)
Всем хорошего дня!
Вот такие первые флешбэки с моей учёбы. Будут ещё)
Всем хорошего дня!
❤11🔥4👍2🍓1
Всем привет!
Скоро мы запускаем новый проект и сейчас ищем людей, которым интересна глубокая работа с аппаратным обеспечением.
Будем много работать руками и головой: паять, прошивать, конструировать, анализировать, проводить измерения, трейсить сигналы, разбираться в схемах и чипах — и делать много всего интересного на стыке hardware и low-level разработки.
Что желательно иметь на старте:
— базовые навыки пайки;
— понимание основ электроники;
— опыт работы с измерительным оборудованием: осциллографами, мультиметрами, лабораторными блоками питания и т. д.
Но самое важное — желание ковыряться в железе, залезать поглубже в устройство чипов и систем, разбираться, как всё работает на самом деле, и развиваться в этом направлении.
В рамках проекта будем вместе приобретать новые навыки, осваивать современные технологии и сразу применять их на практике.
Если вам интересно это направление и хочется развиваться в hardware — пишите мне в личку иди direct на канале.
Скоро мы запускаем новый проект и сейчас ищем людей, которым интересна глубокая работа с аппаратным обеспечением.
Будем много работать руками и головой: паять, прошивать, конструировать, анализировать, проводить измерения, трейсить сигналы, разбираться в схемах и чипах — и делать много всего интересного на стыке hardware и low-level разработки.
Что желательно иметь на старте:
— базовые навыки пайки;
— понимание основ электроники;
— опыт работы с измерительным оборудованием: осциллографами, мультиметрами, лабораторными блоками питания и т. д.
Но самое важное — желание ковыряться в железе, залезать поглубже в устройство чипов и систем, разбираться, как всё работает на самом деле, и развиваться в этом направлении.
В рамках проекта будем вместе приобретать новые навыки, осваивать современные технологии и сразу применять их на практике.
Если вам интересно это направление и хочется развиваться в hardware — пишите мне в личку иди direct на канале.
🔥11
Forwarded from Постироничные идеи для ебаного C++ (Ivan Sokolov)
This media is not supported in your browser
VIEW IN TELEGRAM
❤10
Forwarded from Dev Meme / devmeme
#news
Cost of it is millions of dollars
But when o3 was announced it costed half a million to score 87.5% on ARC-AGI 1
Today, Astra scores higher for ~$20
In 2025 it took us and GDM an enormous amount of compute to achieve IMO gold. For the 2026 IMO, anyone with a $20/month ChatGPT subscription could do it
Cost of it is millions of dollars
But when o3 was announced it costed half a million to score 87.5% on ARC-AGI 1
Today, Astra scores higher for ~$20
In 2025 it took us and GDM an enormous amount of compute to achieve IMO gold. For the 2026 IMO, anyone with a $20/month ChatGPT subscription could do it
🤯3
🚀 Binary Thinking: С++ & Windows
Это будет курс не про «выучить синтаксис C++» и не про очередное повторение учебника.
Мы будем разбираться, как программный код работает на самом деле — от исходника на C/C++ до машинного кода, памяти процесса, операционной системы и ядра.
Начнем с software internals и на практике посмотрим, как связаны:
→ код на C/C++
→ компилятор и линкер
→ object files
→ assembler и machine code
→ executable files
→ runtime memory
→ stack и heap
→ процессы, библиотеки и операционная система
Разберемся, что происходит с программой между моментом, когда вы нажали Build, и моментом, когда процессор начал выполнять инструкции, и какие именно он будет выполнять.
🛠 Сборка и организация проектов
Научимся работать с Visual Studio, VS Code, CMake и Makefile.
Но главное — разберемся не только как ими пользоваться, а когда какой инструмент выбирать, как их сочетать и как правильно организовывать реальный проект.
⚙️ C → C++
Отдельно перейдем от C к C++.
Я покажу, почему это не просто «C с классами», а во многом совершенно другой язык и другой способ проектирования программ.
Разберем ключевые механизмы C++ так, чтобы после курса вы могли использовать язык осознанно и уверенно.
🏗 Software Design
Будем много говорить опроектировании ПО:
OOP, архитектура, декомпозиция, интерфейсы, зависимости и design patterns.
И не просто смотреть схемы на слайдах — будем применять всё это в коде.
🐛 Debugging & Reverse Engineering
Научимся пользоваться профессиональными инструментами:
kd, cdb, gdb, Visual Studio Debugger, VS Code, системами tracing и profiling, а также декомпиляторами и другими инструментами анализа программ.
Будем смотреть, что происходит с программой не только на уровне исходного кода, но и внутри процесса и операционной системы.
🪟 Windows Internals
Отдельный большой блок посвятим Windows — одной из самых сложных современных операционных систем.
Разберемся, как она устроена, как работают процессы, память, DLL, exceptions, user mode и kernel mode и как правильно писать системный код под Windows.
Для сравнения будем регулярно заглядывать и в Linux.
🎮 Большой практический проект
С нуля спроектируем и напишем собственную игру.
На ее примере разберем полный жизненный цикл проекта:
архитектура → код → сборка → отладка → profiling → организация проекта → deployment.
Все знания курса постепенно соберем в один большой работающий проект.
🔬 Будет много экспериментов
DLL injection.
Stack overflow.
Kernel debugging.
ROP.
Запустим DOOM через pipe.
Попробуем запихнуть DOOM в driver.
И вообще будем регулярно делать вещи, после которых становится значительно понятнее, что происходит внутри компьютера
😈Я подготовил большое количество реального кода для разбора: Linux, Windows, BIOS (AMI), драйверы, приложения, шеллкоды, DOOM, GTA V и другие проекты.
Будем читать код, запускать его, отлаживать, дизассемблировать, модифицировать и исследовать его поведение.
💻 Максимум практики
Я буду прямо на занятиях писать код, экспериментировать, показывать решения из реальных проектов, что-то делать вручную, что-то вайбкодить и вместе с вами разбираться, почему один подход работает, а другой — нет.
Конечно, будем использовать и современные LLM-инструменты. Я покажу, как использую их сам: где они действительно ускоряют разработку, где ошибаются и как применять их так, чтобы они помогали понимать код, а не заменяли понимание.
🎯 Главная цель курса
Дать вам ключевые практические навыки проектирования, создания, отладки и анализа программного обеспечения.
После курса у вас должно появиться целостное понимание:
что такое C и C++ на практике, как работает программный код, что происходит внутри Windows и Linux и как все эти уровни связаны между собой.
И, конечно, я буду отвечать на вопросы и помогать разбираться со сложными темами по ходу всего курса.
Если вам интересно не простописать код, а понимать, что происходит под капотом, — этот интенсив именно про это.
Если вам это интересно прошу принять участие в предварительном голосовании, чтобы мне все спланировать.
👇👇👇
Это будет курс не про «выучить синтаксис C++» и не про очередное повторение учебника.
Мы будем разбираться, как программный код работает на самом деле — от исходника на C/C++ до машинного кода, памяти процесса, операционной системы и ядра.
Начнем с software internals и на практике посмотрим, как связаны:
→ код на C/C++
→ компилятор и линкер
→ object files
→ assembler и machine code
→ executable files
→ runtime memory
→ stack и heap
→ процессы, библиотеки и операционная система
Разберемся, что происходит с программой между моментом, когда вы нажали Build, и моментом, когда процессор начал выполнять инструкции, и какие именно он будет выполнять.
🛠 Сборка и организация проектов
Научимся работать с Visual Studio, VS Code, CMake и Makefile.
Но главное — разберемся не только как ими пользоваться, а когда какой инструмент выбирать, как их сочетать и как правильно организовывать реальный проект.
⚙️ C → C++
Отдельно перейдем от C к C++.
Я покажу, почему это не просто «C с классами», а во многом совершенно другой язык и другой способ проектирования программ.
Разберем ключевые механизмы C++ так, чтобы после курса вы могли использовать язык осознанно и уверенно.
🏗 Software Design
Будем много говорить опроектировании ПО:
OOP, архитектура, декомпозиция, интерфейсы, зависимости и design patterns.
И не просто смотреть схемы на слайдах — будем применять всё это в коде.
🐛 Debugging & Reverse Engineering
Научимся пользоваться профессиональными инструментами:
kd, cdb, gdb, Visual Studio Debugger, VS Code, системами tracing и profiling, а также декомпиляторами и другими инструментами анализа программ.
Будем смотреть, что происходит с программой не только на уровне исходного кода, но и внутри процесса и операционной системы.
🪟 Windows Internals
Отдельный большой блок посвятим Windows — одной из самых сложных современных операционных систем.
Разберемся, как она устроена, как работают процессы, память, DLL, exceptions, user mode и kernel mode и как правильно писать системный код под Windows.
Для сравнения будем регулярно заглядывать и в Linux.
🎮 Большой практический проект
С нуля спроектируем и напишем собственную игру.
На ее примере разберем полный жизненный цикл проекта:
архитектура → код → сборка → отладка → profiling → организация проекта → deployment.
Все знания курса постепенно соберем в один большой работающий проект.
🔬 Будет много экспериментов
DLL injection.
Stack overflow.
Kernel debugging.
ROP.
Запустим DOOM через pipe.
Попробуем запихнуть DOOM в driver.
И вообще будем регулярно делать вещи, после которых становится значительно понятнее, что происходит внутри компьютера
😈Я подготовил большое количество реального кода для разбора: Linux, Windows, BIOS (AMI), драйверы, приложения, шеллкоды, DOOM, GTA V и другие проекты.
Будем читать код, запускать его, отлаживать, дизассемблировать, модифицировать и исследовать его поведение.
💻 Максимум практики
Я буду прямо на занятиях писать код, экспериментировать, показывать решения из реальных проектов, что-то делать вручную, что-то вайбкодить и вместе с вами разбираться, почему один подход работает, а другой — нет.
Конечно, будем использовать и современные LLM-инструменты. Я покажу, как использую их сам: где они действительно ускоряют разработку, где ошибаются и как применять их так, чтобы они помогали понимать код, а не заменяли понимание.
🎯 Главная цель курса
Дать вам ключевые практические навыки проектирования, создания, отладки и анализа программного обеспечения.
После курса у вас должно появиться целостное понимание:
что такое C и C++ на практике, как работает программный код, что происходит внутри Windows и Linux и как все эти уровни связаны между собой.
И, конечно, я буду отвечать на вопросы и помогать разбираться со сложными темами по ходу всего курса.
Если вам интересно не простописать код, а понимать, что происходит под капотом, — этот интенсив именно про это.
Если вам это интересно прошу принять участие в предварительном голосовании, чтобы мне все спланировать.
👇👇👇
❤10🤮1
Предыдущие посты, связанные с учебной информацией, могли вас запутать, поэтому немного проясню ситуацию, чтобы не было недопониманий.
1. Binay Thinking: C++ & Windows - это мой авторский курс (интенсив), не входящий в сетку расписания ИТМО. По графику проведения под всех, увы, подстроиться не смогу, поэтому если есть непреодолимое желание его прослушать, придется вам находить время. Формат смешанный.
Этот курс создан мной в рамках ФБИТ и для наших (ИТМО) студентов он бесплатный. Юридически он принадлежит ИТМО, поэтому внешних слушателей можно подключать только на платной основе. Цену устанавливаю не я.
Этот курс - вводный, подойдет всем желающим. Это переосмысленный прошлогодний интенсив Hello Coder, Hello C++, Hello Windows. Для тех, кто слушал в прошлом году тоже найдет много нового, а местами повторимся, закрепим. В этом году будет больше примеров реального кода. Не будем гнаться именно за игрой, так как помимо есть еще много чего интересного. Самое главное чтобы слушатели разобрались в материале.
2. Проект с аппаратным обеспечением - это совершенно новый этап. Это долгосрочный проект лаборатории.
НЕ КУРС (хотя элемент внутренних мастер-классов для участников планируется). Здесь у нас все на ранней стадии, поэтому не ждите быстрого развития событий. Однако, спасибо всем, кто написал. Позже разошлю анкеты, будут очные встречи итд.
Для нашей будущей лаборатории ищем целеустремленных и заинтересованных людей. Задачи будут сложные, многому придется учиться самостоятельно и на своих ошибках. Уверен будет интересно!
3. Скоро запускаем еще один новый проект в Лаборатории Системного Программирования. Ориентировочно 20го числа. Это уже третья позиция, не имеющая отношения к предыдущим.
То, что связывает эти проекты - мое непосредственное участие. Все это я провожу совместно с коллегами в рамках ФБИТ ИТМО.
Всем спасибо за фидбэки.
Работаем.
1. Binay Thinking: C++ & Windows - это мой авторский курс (интенсив), не входящий в сетку расписания ИТМО. По графику проведения под всех, увы, подстроиться не смогу, поэтому если есть непреодолимое желание его прослушать, придется вам находить время. Формат смешанный.
Этот курс создан мной в рамках ФБИТ и для наших (ИТМО) студентов он бесплатный. Юридически он принадлежит ИТМО, поэтому внешних слушателей можно подключать только на платной основе. Цену устанавливаю не я.
Этот курс - вводный, подойдет всем желающим. Это переосмысленный прошлогодний интенсив Hello Coder, Hello C++, Hello Windows. Для тех, кто слушал в прошлом году тоже найдет много нового, а местами повторимся, закрепим. В этом году будет больше примеров реального кода. Не будем гнаться именно за игрой, так как помимо есть еще много чего интересного. Самое главное чтобы слушатели разобрались в материале.
2. Проект с аппаратным обеспечением - это совершенно новый этап. Это долгосрочный проект лаборатории.
НЕ КУРС (хотя элемент внутренних мастер-классов для участников планируется). Здесь у нас все на ранней стадии, поэтому не ждите быстрого развития событий. Однако, спасибо всем, кто написал. Позже разошлю анкеты, будут очные встречи итд.
Для нашей будущей лаборатории ищем целеустремленных и заинтересованных людей. Задачи будут сложные, многому придется учиться самостоятельно и на своих ошибках. Уверен будет интересно!
3. Скоро запускаем еще один новый проект в Лаборатории Системного Программирования. Ориентировочно 20го числа. Это уже третья позиция, не имеющая отношения к предыдущим.
То, что связывает эти проекты - мое непосредственное участие. Все это я провожу совместно с коллегами в рамках ФБИТ ИТМО.
Всем спасибо за фидбэки.
Работаем.
❤17