Physics.Math.Code
146K subscribers
5.26K photos
2.36K videos
5.79K files
4.72K links
Купить рекламу: https://telega.in/c/physics_lib

VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

Обратная связь: @physicist_i
Download Telegram
🖥 Программируем на Python, 3-е издание (+CD) [2014] Майкл Доусон [RU + EN]

💾 Скачать RU + EN

💳 Купить RU книгу за 2025

Промокод на - 35 % : MATH CODE

Майкл Доусон — автор книг по программированию, а также преподаватель, обучающий созданию компьютерных игр. Доусон получил степень бакалавра компьютерных наук в Университете Южного Калифорнии. Работал как программистом, так и дизайнером и продюсером компьютерных игр. Разрабатывал и читал курсы по программированию игр на факультете UCLA Extension в Калифорнийском университете Лос-Анджелеса, а также в Академии цифровых и медиатехнологий (DMA) и в Кинематографической школе Лос-Анджелеса.

▪️ «Программируем на Python». Пособие для начинающих изучать Python, учит фундаментальным принципам программирования на примере создания простых игр.

▪️ «Изучаем C++ через программирование игр». Помогает освоить разработку игр с самых азов, каждая глава описывает самостоятельный игровой проект.
#python #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
24👍18🔥9
Программируем_на_Python_Майкл_Доусон_RU+EN.zip
75.9 MB
🖥 Программируем на Python, 3-е издание (+CD) [2014] Майкл Доусон [RU + EN]

Эта книга - идеальное пособие для начинающих изучать Python. Руководство, написанное опытным разработчиком и преподавателем, научит фундаментальным принципам программирования на примере создания простых игр. Вы приобретете необходимые навыки для разработки приложений на Python и узнаете, как их применять в реальной практике.

Для лучшего усвоения материала в книге приведено множество примеров программного кода. В конце каждой главы вы найдете проект полноценной игры, иллюстрирующий ключевые идеи изложенной темы, а также краткое резюме пройденного материала и задачи для самопроверки. Прочитав эту книгу, вы всесторонне ознакомитесь с языком Python, усвоите базовые принципы программирования и будете готовы перенести их на почву других языков, за изучение которых возьметесь. Научитесь программировать на Python играючи.

Прилагаемый к книге диск содержит исходные коды и дополнения с сайта поддержки. В папке py3e_source содержится исходный код всех законченных программ, которые представлены в этой книге, и вспомогательные файлы к ним. А папка py3e_software включает в себя файлы всех программных пакетов, упомянутых в книге, (установочный файл Python 3.1.1 для Windows, мультимедийный пакет pygame версии 1.9.1, совместимый с Python 3.1.х под Windows и игровой движок livewires).

Python programming for the absolute beginner: Michael Dawson
#python #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
35👍24🔥12👨‍💻1🙈1
📕 Мощный Python: Шаблоны и стратегии работы с современным Python [2025] Максвелл Аарон
📙 Powerful Python: Patterns and Strategies with Modern Python [2025] Maxwell Aaron

💾 Скачать книгу

Эта книга для вас, если вы знакомы с основами Python и освоили практически все, чему могут научить руководства для начинающих. Она также предназначена для тех, кто хочет освоить более продвинутые методы и стратегии, чтобы вы могли делать с Python и программированием больше, чем раньше. Эта книга не для тех, кому нужен простой Python. Как я уже сказал, Python важен и вознаграждает тех, кто им владеет. И эта книга не для тех, кто не имеет амбиций. В письменной форме я предполагаю, что вы хотите построить карьеру, которой будете гордиться, выполняя работу с высокой отдачей. Более того, эта книга не для умственно отсталых. Разница между элитными инженерами и “обычными” программистами заключается в различиях, которые они проводят, в ментальных моделях, которые они используют, и в их способности воспринимать то, что недоступно другим.

☕️ Для тех, кто захочет задонать на кофе:
ВТБ: +79616572047 (СБП) ЮMoney: 410012169999048

🖥 Программируем на Python, 3-е издание (+CD) [2014] Майкл Доусон [RU + EN]

📗 Python. Исчерпывающее руководство [2023] Бизли Д.

📒 Python для хакеров [2023] Ли Воган

#python #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍16🔥5👨‍💻2
Powerful_Python_Patterns_and_Strategies_with_Modern_Python_2025.zip
5.6 MB
📕 Мощный Python: Шаблоны и стратегии работы с современным Python [2025] Максвелл Аарон
📙 Powerful Python: Patterns and Strategies with Modern Python [2025] Maxwell Aaron


После того, как вы овладеете основами Python, как вам достичь 1% лучших результатов? Как вы уделяете время изучению тем, которые приносят наибольшую пользу производственным инженерам и специалистам по обработке данных, не отвлекаясь на информацию, которая практически не используется в реальном мире? Эта книга отвечает на эти и многие другие вопросы.
Эта уникальная книга, основанная на карьере автора Аарона Максвелла в области разработки программного обеспечения в Кремниевой долине, посвящена основным принципам Python, которые ускоряют все остальное: 5% знаний в области программирования, благодаря которым остальные 95% падают как костяшки домино. Именно эти знания помогут вам быстро стать выдающимся программистом на Python.

▪️ Научитесь думать как питонист:
— Изучите продвинутое мышление на Python.
— Создавайте списки, диктовки и другие структуры данных, используя высокоуровневый, читаемый и поддерживаемый синтаксис
— Изучите абстракции функций более высокого порядка, которые составляют основу библиотек Python
— Изучите инструмент метапрограммирования Python, чтобы найти бесценные шаблоны повторного использования кода
— Освоите модель ошибок Python и узнайте, как использовать ее в своем собственном коде
— Ознакомьтесь с более мощными и продвинутыми инструментами объектной системы Python
— Углубитесь в автоматизированное тестирование и TDD в Python
— Узнайте, как ведение журнала в Python помогает вам быстрее устранять неполадки и отлаживать
Python стал основным языком современных вычислений. Тезис этой книги заключается в том, что Python - самый важный язык программирования в современном мире… с огромными наградами для тех, кто овладеет им в совершенстве. Эта книга предназначена для того, чтобы научить вас приемам, шаблонам и инструментам, которые позволят вам постоянно совершенствовать свои навыки работы со всем, что может предложить Python. Если вы хотя бы часть времени будете писать код на Python, эта книга значительно расширит ваши возможности и повысит скорость, с которой вы это делаете. А также сократите время, затрачиваемое на отладку.

▪️Для кого предназначена эта книга: Эта книга для вас, если вы знакомы с основами Python и освоили практически все, чему могут научить руководства для начинающих. Она также предназначена для тех, кто хочет освоить более продвинутые методы и стратегии, чтобы вы могли делать с Python и программированием больше, чем раньше. Эта книга не для тех, кому нужен простой Python. Как я уже сказал, Python важен и вознаграждает тех, кто им владеет. И эта книга не для тех, кто не имеет амбиций. В письменной форме я предполагаю, что вы хотите построить карьеру, которой будете гордиться, выполняя работу с высокой отдачей. Более того, эта книга не для умственно отсталых. Разница между элитными инженерами и “обычными” программистами заключается в различиях, которые они проводят, в ментальных моделях, которые они используют, и в их способности воспринимать то, что недоступно другим. #python #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
1👍4124🔥52🗿1
📕 Мощный Python: Шаблоны и стратегии работы с современным Python [2025] Максвелл Аарон
📙 Powerful Python: Patterns and Strategies with Modern Python [2025] Maxwell Aaron

💾 Скачать книгу

В прошлом посте выходила EN-книга. Теперь один из наших подписчиков отправил мне RU-версию этой книги, поэтому я делюсь с вами со всеми.

☕️ Для тех, кто захочет задонать на кофе:
ВТБ: +79616572047 (СБП) ЮMoney: 410012169999048

Язык Python является настоящим лингва франка для современного мира вычислений. Основной тезис этой книги: Python представляет собой важнейший язык программирования нашего времени, открывающий огромные возможности для тех, кто им владеет. Читая ее, вы познакомитесь с техниками, паттернами и инструментами, которые позволят вам вывести свои навыки использования Python на новый уровень. Если вы хотя бы иногда пишете код на этом языке, с помощью книги вы значительно расширите свои возможности, повысите скорость работы и сократите время, затрачиваемое на отладку кода.
#python #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
👍437🔥5🤩3🌚1
📕_Мощный_Python_Шаблоны_и_стратегии_работы_с_современным_Python.zip
6.3 MB
📕 Мощный Python: Шаблоны и стратегии работы с современным Python [2025] Максвелл Аарон

Как стать экспертом в создании сложных и мощных приложений на Python, не тратя время на повторение уже известных основ или перечисление ненужных функций? Аарон Максвелл фокусируется на первопринципах Python, которые действуют подобно катализаторам для всего остального: достаточно получить 5% знаний в области программирования, чтобы остальные 95 % подтянулись автоматически.

Материал данной книги охватывает ключевые аспекты Python, многие из которых не новы, но крайне недооценены или неправильно поняты. Эти концепции окажутся чрезвычайно полезными для всех Python-разработчиков. #python #программирование #разработка #IT

📙 Powerful Python: Patterns and Strategies with Modern Python [2025] Maxwell Aaron

💡 Physics.Math.Code // @physics_lib
👍41🔥76🤩2💯1🤝1
📗 Изучаем Kali Linux. Проверка защиты, тестирование на проникновение, этичный хакинг [2025] Рик Мессье
📘 Learning Kali Linux: security testing, penetration testing and ethical hacking [2024] Ric Messier

💾 Скачать книгу RU + EN

Промокод на - 35 % : MATHCODE в издательстве ПИТЕР

Рик Мессье — автор, консультант и преподаватель, имеющий сертификаты CCSP, GCP ACE, AWS CCP, GCIH, GSEC, CEH и CISSP. Опубликовал несколько книг по информационной безопасности и цифровой криминалистике. Имеет многолетний опыт работы в области информационных технологий и информационной безопасности. Занимал различные должности: программиста, системного администратора, сетевого инженера, менеджера по технике безопасности, инженера VoIP, консультанта и профессора. В настоящее время — директор по киберакадемическим программам в Circadence, ранее — директор программы по кибербезопасности и цифровой криминалистике в Champlain College.

☕️ Для тех, кто захочет задонать на кофе:
ВТБ: +79616572047 (СБП) ЮMoney: 410012169999048

Некоторые книги Рика Мессье: «Network Forensics», «CEH v11 Certified Ethical Hacker Study Guide», «Программирование на RUST».
#python #cpp #kali #kalilinux #linux #хакинг #безопасность #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
👍3010🔥4❤‍🔥1😍1👨‍💻1🗿1
Learning Kali Linux RU+EN.zip
30.1 MB
📗 Изучаем Kali Linux. Проверка защиты, тестирование на проникновение, этичный хакинг [2025] Рик Мессье
📘 Learning Kali Linux: security testing, penetration testing and ethical hacking [2024] Ric Messier

Дистрибутив Kali Linux, включающий сотни встроенных утилит, позволяет быстро приступить к тестированию безопасности. Однако наличие такого количества инструментов в арсенале Kali Linux может ошеломить. Во втором издании описываются обновленные возможности утилит и подробно рассматриваются цифровая криминалистика и реверс-инжиниринг.
Автор не ограничивается рамками тестирования безопасности и дополнительно рассказывает о криминалистическом анализе, в том числе анализе дисков и памяти, а также базовом анализе вредоносных программ.

▪️Во втором издании описываются обновленные возможности утилит и подробно рассматриваются цифровая криминалистика и реверс-инжиниринг.
▪️Познакомитесь с широким спектром инструментов, доступных в Kali Linux.
▪️Изучите основы тестирования на проникновение на протяжении всего жизненного цикла атаки.
▪️Познакомитесь с расширенными инструментами Kali для применения передовых методов атак.
▪️Автор не ограничивается рамками тестирования безопасности и дополнительно рассказывает о криминалистическом анализе, в том числе анализе дисков и памяти, а также базовом анализе вредоносных программ.
#python #cpp #kali #kalilinux #linux #хакинг #безопасность #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
🔥42👍2313👨‍💻3🤩1😍1🙈1
🖥 Различия в создании строк на Java

Есть два самых популярных способа создания строк:
1 — String s1 = new String("Hello");
2 — String s2 = "Hello";
Разберем отличия.

▪️ 1. Место в памяти (Самое главное отличие) — Это отличие является корнем всех остальных различий.

🔸String s1 = new String("Hello"); (Оператор new)
Создает новый объект в Куче (Heap), независимо от того, какая строка там уже существует.
Каждый вызов new String("Hello") гарантированно создает новый, уникальный объект в памяти.

🔸String s2 = "Hello"; (Строковый литерал)
Строка создается и помещается в специальную область памяти — String Pool (Пул строк), который находится внутри кучи.
Механизм String Pool: Перед созданием новой строки JVM проверяет, нет ли уже строки с таким же значением в пуле. Если есть — переменной просто присваивается ссылка на существующий объект. Если нет — тогда в пуле создается новый объект.

Наглядная аналогия:
new String("Hello") — покупка нового, уникального экземпляра книги, даже если она уже есть в библиотеке.
"Hello" — взятие книги из библиотеки. Если книга есть — вы получаете именно её. Если нет — библиотека сначала покупает новую, а вы её берете.

▪️ 2. Поведение при сравнении (==). Оператор == сравнивает ссылки на объекты, а не их содержимое. Из-за различий в памяти поведение будет разным.
String s1 = new String("Hello");
String s2 = "Hello";
String s3 = "Hello";

System.out.println(s1 == s2); // false
System.out.println(s2 == s3); // true

s1 == s2 -> false, потому что s1 ссылается на объект в куче, а s2 — на объект в String Pool. Это два разных объекта в памяти.
s2 == s3 -> true, потому что обе переменные ссылаются на один и тот же объект в String Pool.
Для сравнения содержимого строк всегда используйте метод equals():
System.out.println(s1.equals(s2)); // true (сравнивается содержимое "Hello")
System.out.println(s2.equals(s3)); // true


▪️ 3. Производительность

🔸Строковый литерал ("Hello") — более эффективен. Он избегает создания дубликатов в памяти, что экономит память и ускоряет работу, так как не нужно создавать новый объект, если он уже существует в пуле.
🔸Оператор new — менее эффективен. Он принудительно создает новый объект в куче, даже если идентичная строка уже существует. Это может привести к избыточному расходу памяти.

▪️ 4. Количество создаваемых объектов

🔸String s1 = new String("Hello"); — Может создать 1 или 2 объекта.
1. Строковый литерал "Hello" сначала ищется в String Pool. Если его нет — он создается в пуле. (Первый возможный объект).
2. Затем ключевое слово new создает новый объект String в куче. (Второй объект).
Таким образом, если строка "Hello" ранее не существовала в пуле, эта строка кода создаст два объекта.
🔸String s2 = "Hello";
Создает 0 или 1 объект.
JVM ищет "Hello" в String Pool. Если находит — объект не создается, переменной присваивается существующая ссылка (0 новых объектов).
Если не находит — создает новый объект в String Pool (1 новый объект).

▪️Метод intern() — мостик между двумя подходами. Метод intern() позволяет вручную поместить строку из кучи в String Pool или получить ссылку на уже существующую там строку.
String s1 = new String("Hello");
String s2 = s1.intern(); // Помещаем строку в пул (или получаем ссылку из пула)
String s3 = "Hello";

System.out.println(s1 == s2); // false, т.к. s1 все еще в куче
System.out.println(s2 == s3); // true, т.к. s2 и s3 ссылаются на один объект в пуле

В этом примере s1.intern() находит строку "Hello" в пуле (которая была создана при вычислении литерала внутри конструктора) и возвращает на неё ссылку, которую мы присваиваем s2.

Практический вывод: Почти всегда следует использовать строковые литералы (String s = "value";). Этот способ более эффективен по памяти и времени, так как использует механизм пула строк. #java #задачи #программирование #собеседования #IT #структуры_данных

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
137👍24🔥72❤‍🔥2👨‍💻21
👩‍💻 Java: А есть ли связь между сравнением строк equals() и хешированием hashCode() ?

В Java существует важное правило (контракт):
1. Если две строки равны по equals(), то их hashCode() ДОЛЖЕН быть одинаковым
2. Обратное не обязательно верно: одинаковый hashCode() не гарантирует равенства строк
String s1 = "Hello";
String s2 = "Hello";
String s3 = new String("Hello");

System.out.println(s1.equals(s2)); // true
System.out.println(s1.hashCode() == s2.hashCode()); // true

System.out.println(s1.equals(s3)); // true
System.out.println(s1.hashCode() == s3.hashCode()); // true


👩‍💻 Как вычисляется hashCode для String

Метод hashCode() в классе String вычисляется на основе содержимого строки:
public int hashCode() {
int h = hash; // кэшированное значение
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}

Вычисляется по формуле: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Результат кэшируется в поле hash для производительности
Для одинакового содержимого всегда одинаковый hashCode, независимо от того, как была создана строка
value и hash — являются полями класса String и уже существуют в объекте, когда вызывается метод hashCode().
value — массив символов, который хранит собственно содержимое строки. Он инициализируется при создании объекта. String s = "Hello"; // value = {'H', 'e', 'l', 'l', 'o'}
hash — поле для кэширования вычисленного хэш-кода. Оно инициализируется по умолчанию значением 0.

Практическое применение в коллекциях: Связь hashCode и equals критически важна для работы хэш-коллекций:

🔸 HashMap/HashSet
Map<String, Integer> map = new HashMap<>();
map.put("Hello", 1);
map.put(new String("Hello"), 2); // Затрет предыдущее значение!

System.out.println(map.size()); // 1 - потому что ключи равны по equals()

1. Сначала сравниваются hashCode() — если разные, объекты точно разные
2. Если hashCode одинаковые, тогда вызывается equals() для точной проверки

🔸 Оптимизация сравнения
String s1 = "very long string ...";
String s2 = "another very long string ...";

// Сначала проверяется hashCode - быстрая операция
if (s1.hashCode() == s2.hashCode() && s1.equals(s2)) {
// Строки точно равны
}

▪️ 1. Коллизии хэшей — Разные строки могут иметь одинаковый hashCode (хэш-коллизия)
String a = "Aa";
String b = "BB";

System.out.println(a.hashCode()); // 2112
System.out.println(b.hashCode()); // 2112
System.out.println(a.equals(b)); // false

▪️ 2. Производительность

// Медленно - создается новый объект и вычисляется hashCode
String s1 = new String("Hello");

// Быстро - используется кэшированный hashCode из String Pool
String s2 = "Hello";

3. String Pool и hashCode
String s1 = "Hello";
String s2 = "Hello";
String s3 = new String("Hello");

// Все три имеют одинаковый hashCode, но разные способы создания
System.out.println(s1.hashCode()); // одинаковый
System.out.println(s2.hashCode()); // одинаковый
System.out.println(s3.hashCode()); // одинаковый

🔍 Важные моменты. HashCode тесно связан со сравнением строк через:
1. Контракт Java — равные строки по equals() должны иметь одинаковый hashCode
2.. Оптимизацию сравнения — хэш используется для быстрой предварительной проверки
3. Работу коллекций — HashMap, HashSet и другие используют эту связь для эффективного хранения и поиска
#java #задачи #программирование #собеседования #IT #структуры_данных

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
134👍23🔥8❤‍🔥4👨‍💻3😱1
🧠Логическое мышление: как большие языковые модели научились логическим рассуждениям без больших финансовых и временных затрат.
Исследователи из T-Bank AI Research и лаборатории Центрального университета Omut AI представили метод, который позволяет развивать сложные reasoning-навыки без полного переобучения — своего рода «точной настройке» логических цепочек в уже обученной сети.

В основе подхода лежит не “переписывание мозга”, а steering vectors — компактные векторы-регуляторы, которые усиливают корректные логические шаги модели. На шести математических бенчмарках метод показал сохранение 100% эффективности полного дообучения при изменении всего 0.0016% параметров 14-миллиардной модели. Требования к памяти сократились с гигабайтов до сотен килобайт. Скорость одного из этапов обучения увеличилась с десятков минут до секунд.

Logit-анализ показывает усиление ключевых маркеров логических рассуждений — таких как “потому что”, “следовательно”, “правильно”. В связи с этим поведение LLM становится легче интерпретировать исследователям, которые получают прозрачный инструмент для изучения того, как именно модель рассуждает.

Результаты исследования протестировали на моделях Qwen и LLaMA и представили на EMNLP 2025.

📕Steering LLM Reasoning Through Bias-Only Adaptation

#наука #math #science #программирование #разработка #IT

💡 Physics.Math.Code // @physics_lib
37👍17🔥12🤯4🗿2❤‍🔥1👨‍💻1
📚 Подборка книг «Классика Computer Science» (26 книг + CD) [2002-2016]

💾 Скачать книги

В условиях бесконечного потока новых технологий и фреймворков легко подменить глубину понимания поверхностной скоростью. Настоящая экспертиза в разработке строится не на знании последнего инструмента, а на понимании фундаментальных принципов, которые не меняются десятилетиями.

Серия книг «Классика Computer Science» — это систематизированная библиотека знаний, формирующая инженерное мышление. Изучение этих трудов — это про в собственную архитектурную грамотность и способность решать нетривиальные задачи. Вопрос даже не в том, стоит ли их читать, а в том, в какой последовательности это делать для максимальной эффективности. Рекомендуемая последовательность чтения, если брать 4 базовые книги для разработчика:

📙 1. «Современный компилятор на C» (Аппель) / «Компиляторы: принципы, технологии и инструменты» (Ахо, Ульман, Лам)
Зачем: Понимание процессов компиляции и статического анализа — это основа основ. Даже если вы не пишете компилятор, эти знания незаменимы для работы с препроцессорами, линтерами, транспайлерами и понимания того, как код становится программой.

📙 2. «Компьютерные сети: нисходящий подход» (Куроуз, Росс)
Зачем: Любая современная система — это распределенная система. Глубокое понимание стека протоколов, от HTTP до TCP/IP, — обязательное условие для создания эффективных, надежных и безопасных сетевых приложений.

📙 3. «Современные операционные системы» (Таненбаум)

Зачем: Процессы, потоки, виртуальная память, файловые системы. ОС — менеджер ресурсов, с которым вы взаимодействуете ежесекундно. Знание ее устройства позволяет писать оптимальный и стабильный код, предсказывать его поведение и грамотно диагностировать проблемы.

📙 4. «Глубокая классика» (по выбору, в зависимости от специализации):
— Для системных/highload-разработчиков: «Введение в алгоритмы» (Кормен, Лейзерсон, Ривест, Штайн). Алгоритмическая грамотность — это язык, на котором говорят о сложности и эффективности.
— Для разработчиков СУБД и всех, кто работает с данными: «Базы данных. Проектирование, реализация и сопровождение. Теория и практика» (Коннолли, Бегг). Понимание внутреннего устройства СУБД на порядок повышает качество работы с данными.

☕️ Кто захочет задонать на кофе: ВТБ: +79616572047 (СБП)

Предложенная последовательность выстроена по принципу «от низкоуровневых абстракций к высокоуровневым». Сначала вы понимаете, как код исполняется, затем — как программы взаимодействуют в сети, и далее — как всем этим управляет операционная система. Такой подход формирует целостную картину мира разработки.

Этот путь требует дисциплины и времени. Результат — не сиюминутный хак, а формирование той самой «кремниевой прочности», которая отличает инженера от кодера.
#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка

💡 Physics.Math.Code // @physics_lib
58👍43🔥223🥰3❤‍🔥2😍2
📚_Подборка_книг_«Классика_Computer_Science»_26_книг_+_CD_2002_2016.zip
1.4 GB
📚 Подборка книг «Классика Computer Science» (26 книг + CD) [2002-2016]

Сборник книг серии "Классика Computer Science" на тему – компьютеры, программирование, операционные системы, базы данных. Серия книг«Классика computer science», предназначенных для базовой подготовки специалистов в области компьютерных наук.

Появление серии определилось необходимостью подготовки специалистов в области компьютерных технологий на уровне международных стандартов. Это книги по основным принципам построения и функционирования компьютерных сетей, по архитектуре операционных систем, технологиям программирования и так далее — не привязанные к конкретным программным продуктам и тем более их версиям. Книги, выходящие в этой серии, выдержали многочисленные переиздания и входят в списки обязательной литературы для обучения в ведущих университетах мира.

📔 Лафоре Р. - Объектно-ориентированное программирование C++. 4-е изд. 2004
📕Архитектура компьютера [2013] Э. Таненбаум, Т. Остин
📗Брауде Э. - Технология разработки программного обеспечения. 2004
📘Вахалия Ю. - UNIX изнутри. 2003
📙Кельтон В., Лоу А. - Имитационное моделирование. Классика CS. 3-е изд. 2004
📓Клейнберг Дж., Тардос Е. - Алгоритмы. Разработка и применение. 2016
📒 Компьютерные сети [2012] Эндрю Таненбаум, Дэвид Уэзеролл
📔 Константайн Л., Локвуд Л. - Разработка программного обеспечения. 2004
📕 Коплиен Дж. - Программирование на С++ 2005
📗 Кренке Д. - Теория и практика построения баз данных. 8-е изд. 2003
📘 Лафоре Р. - Структуры данных и алгоритмы JAVA. 2-е изд. 2012
📙 Марк Руссинович - Внутреннее устройство Windows, 7-е изд 2018
📓 Паттерсон Д., Хеннеси Дж. - Архитектура компьютеров и проектирование компьютерных систем. 4-е изд. 2012
📒 Пратт Т., Зелковиц М. - Языки программирования. Разработка и реализация 2002

#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка

💡 Physics.Math.Code // @physics_lib
1👍9836🔥36🥰5🙈2🤩1
📕 Анализ алгоритмов: Вводный курс [2004] Дж. Макконелл

💾 Скачать книгу

По истечении десятилетия элементная база компьютеров, операционные системы, средства доступа и внешний вид программ меняются коренным образом, однако структуры и алгоритмы, лежащие в их основе, остаются неизменными в течение гораздо большего времени. Эти основы начали закладываться тысячелетия назад, когда были разработаны первые алгоритмы. В предлагаемой вниманию читателя книге обсуждаются алгоритмы решения наиболее широко распространённых классов задач, покрывающих практически всю область программирования: поиск и сортировка, численные алгоритмы и алгоритмы на графах. Особое внимание уделено алгоритмам параллельной обработки, редко освещаемым в литературе на русском языке. Книга носит учебный характер. Она может быть использована как вузовскими преподавателями для организации семестрового курса - так и для самостоятельного изучения. Изложение неформальное и чрезвычайно подробное, с большим количеством упражнений, позволяющих вести самоконтроль. Книга может заинтересовать всех, кому приходится самостоятельно писать программы — от программистов банковских систем до научных работников.

#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка

💡 Physics.Math.Code // @physics_lib
👍3621🔥9🗿2😱1
Анализ_алгоритмов_Вводный_курс_2004_Дж_Макконелл.zip
13 MB
📕 Анализ алгоритмов: Вводный курс [2004] Дж. Макконелл

Формально книга позиционируется как вводный курс, стремящийся демистифицировать сложную тему анализа эффективности алгоритмов, избегая излишней формализации и математической строгости. Макконнелл ставит перед собой амбициозную задачу: объяснить ключевые концепции (О-нотация, анализ затрат времени, рекуррентные соотношения) на интуитивном уровне, делая материал доступным для студентов, не обладающих серьёзной математической подготовкой. Эта гуманистическая, объяснительная миссия — главный и безусловный плюс книги.

Плюсы книги:

1. Доступность изложения. Автор действительно преуспел в том, чтобы говорить просто о сложном. Объяснения таких понятий, как асимптотическая сложность, «худший/средний/лучший случай», часто построены на удачных аналогиях и пошаговых рассуждениях. Для человека, впервые сталкивающегося с этими концепциями, книга может стать «спасательным кругом».
2. Упор на понимание, а не на формальности. Вместо сухих теорем и доказательств Макконнелл часто прибегает к эмпирическому подходу: предлагает «пощупать» разницу между алгоритмами, сравнивая время их выполнения на конкретных примерах. Это формирует важную первичную интуицию.
3. Практическая ориентированность. Рассмотрение не только классических алгоритмов сортировки и поиска, но и вопросов эмпирического измерения времени, оценки стоимости операций, анализа использования памяти — выгодно отличает книгу от чисто теоретических трактатов.
4. Главы об эмпирическом анализе и отладке. Эти разделы, посвящённые методологии тестирования производительности и поиску «узких мест», являются, пожалуй, наиболее ценными и вневременными. Они прививают важнейшие инженерные навыки.

Минусы книги:

1. Поверхностность и недостаток глубины. Стремление к простоте часто оборачивается серьёзным упрощенчеством. Книга даёт иллюзию понимания, которой может оказаться недостаточно для успешного изучения последующих, более строгих курсов (например, по структурам данных или алгоритмам). Студент, освоивший материал только по Макконнеллу, окажется неподготовленным к формальному языку Кормена, Лейзерсона или Кнута.
2. Устаревший инструментарий и контекст. 2004 год — это эпоха доминирования Java и C++, но даже для того времени выбор инструментов (например, акцент на псевдокоде, напоминающем Паскаль) выглядел консервативно. Сегодня же ссылки на конкретные измерительные методики и «железо» безнадёжно устарели. Это снижает практическую ценность многих глав для современного читателя.
3. Несистематичность. Книга напоминает скорее набор лекций или эссе, чем целостный учебник. Некоторые важные темы (например, динамическое программиние или жадные алгоритмы) затрагиваются лишь вскользь, в то время как менее значительным вопросам уделяется непропорционально много внимания.
4. Размытость целевой аудитории. Кому она адресована сейчас? Серьёзному студенту-информатику её будет катастрофически не хватать. Практикующему разработчику-самоучке, возможно, будет полезен стиль, но содержание придётся искать в более современных источниках. Остаётся узкая ниша: абсолютный новичок-гуманитарий, желающий получить самое общее представление «без математики».

▪️ Для кого может быть полезна: Для студентов непрофильных специальностей, начинающих самоучек с гуманитарным складом ума, или как самое первое, «нулевое» чтение перед изучением серьёзных учебников. А также для преподавателей, ищущих удачные бытовые аналогии для объяснения сложных понятий.
▪️ Кому стоит обойти стороной: Студентам бакалавриата компьютерных наук, готовящимся к техническим собеседованиям разработчикам, а также всем, кто ищет строгий, глубокий и современный охват темы.
▪️ Главный вывод: Книга выполнила свою историческую миссию по популяризации области, но на сегодняшний день она является скорее интеллектуальным антиквариатом, нежели актуальным учебным пособием.
#cpp #java #cs #алгоритмы #сети #cplusplus #подборка_книг #IT #разработка

💡 Physics.Math.Code // @physics_lib
👍5214🔥10🗿811🤩1
Media is too big
VIEW IN TELEGRAM
🖥 Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake).

00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
автор: tilir

🔨 Поговорим о двух столпах сборки C-проектов: Make и CMake. Их часто противопоставляют, но на самом деле они решают разные задачи в цепочке превращения кода в бинарник.

▪️Make (или make и Makefile) — Это менеджер задач, который исполняет команды, описанные в Makefile. Его логика проста: цели, зависимости и команды.
app: main.o utils.o
gcc main.o utils.o -o app

main.o: main.c
gcc -c main.c

utils.o: utils.c
gcc -c utils.c

clean:
rm -f *.o app

Запускаем make — и он по цепочке зависимостей собирает всё, что изменилось.
Плюс: Полный контроль, переносимость (если использовать общие команды).
Минус: Писать Makefile для большого кроссплатформенного проекта — боль и рутина.

▪️ CMake (и CMakeLists.txt) — это мета-сборщик или система генерации скриптов сборки. CMake не компилирует сам, а генерирует нативные файлы для других систем: Makefile для Linux/macOS, .sln для Visual Studio, проект для Xcode и т.д.
cmake_minimum_required(VERSION 3.10)
project(MyApp)
add_executable(app main.c utils.c)

Запускаем так:
mkdir build && cd build
cmake ..
make

Плюс: Кроссплатформенность, управление зависимостями (find_package), относительная простота для сложных проектов.
Минус: Свой язык и абстракция, которая иногда «утекает».

▫️ Make — низкоуровневый инструмент, который говорит компилятору как и когда делать свою работу.
▫️ CMake — высокоуровневый инструмент, который говорит разным системам сборки (включая Make), как они должны работать с вашим проектом.
▫️ CMake использует Make? Да! Чаще всего CMake генерирует Makefile, а затем вы вызываете make, который уже управляет компилятором.
▫️ Для маленьких, учебных или специфичных проектов — Makefile может быть быстрее и понятнее. Для средних/крупных или кроссплатформенных — CMake почти стандарт индустрии.

А что вы предпочитаете в своих проектах и почему? Может, у вас есть любимый лайфхак для Makefile или неочевидный трюк с CMake? Или вы вообще используете что-то третье (Meson, Bazel, простой скрипт)? Делитесь опытом!
#cpp #cmake #программирование #cplusplus #it #C

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
76👍38🔥17🤩4👨‍💻4🫡3❤‍🔥2🤔2🙈2
📚 Искусство программирования / The Art of Computer Programming

💾 Скачать книги

Поскольку Кнут всегда считал «Искусство программирования» основным проектом своей жизни, в 1993 году он вышел на пенсию с намерением полностью сконцентрироваться на написании недостающих частей и приведении в порядок существующих. Он полагал, что на завершение работы потребуется 20 лет.

«Искусство программирования» (англ. The Art of Computer Programming) — фундаментальная монография известного американского математика и специалиста в области компьютерных наук Дональда Кнута, посвященная рассмотрению и анализу важнейших алгоритмов, используемых в информатике. В 1999 году книга была признана одной из двенадцати лучших физико-математических монографий столетия.

Основной чертой монографии Кнута, выгодно отличающей её от других книг, посвящённых программированию, является исключительно высоко поднятая планка качества материала и академичности изложения, а также глубина анализа рассматриваемых вопросов. Благодаря этому она стала настоящим бестселлером и настольной книгой каждого профессионального программиста.

🖥 1. Нужен ли уровень Тьюринга?

Страх перед формулами — главный барьер. Да, математика там есть, и серьезная: комбинаторика, теория вероятностей, анализ алгоритмов. Кнут не бросает читателя в омут. Он постепенно вводит понятия, обильно сопровождая их примерами и упражнениями (с решениями!). Это не учебник для разгона с нуля, но для человека с базовой университетской подготовкой (или с высокой мотивацией и готовностью гуглить термины) — она доступна. Это математика компьютерной эры, а не абстрактная.

💻 2. А на работе-то пригодится?

Прямой ответ: в повседневной разработке CRUD-приложений вы вряд ли будете вручную выводить сложность сортировки слиянием.
Но косвенно — бесценно. Чтение Кнута — это:
▫️Качка для ума: перестраивает мышление на глубокое понимание почему одна операция быстрее другой.
▫️Фундамент: вы перестаете быть «пользователем» структур данных и алгоритмов, а становитесь тем, кто понимает их изнутри. Это уровень уверенности, который не купишь курсом по «паттернам».
▫️Культурный код: вы начинаете видеть элегантность и красоту в эффективных решениях. Это как разница между ремесленником и архитектором.

🕰 3. А в 2026-то это еще актуально?


Ядро книги — фундаментальные алгоритмы и принципы. Сортировки, поиски, хеширование, работа с деревьями — это «таблица умножения» нашей профессии. Меняются языки, фреймворки, парадигмы, но эти основы — нет.
Более того, в эпоху big data, AI и высоконагруженных систем понимание сложности алгоритмов важнее, чем когда-либо. Кнут учит мыслить эффективно в ресурсоограниченной среде — а это и есть суть программирования.

Это не книга, чтобы «подтянуть JS перед собеседованием». Это — инвестиция в интеллектуальный капитал. Для:
▪️Будущих и настоящих инженеров-алгоритмистов, разработчиков компиляторов, ученых.
▪️Программистов, которые хотят выйти за рамки шаблонной разработки и понять суть вещей.
▪️Любого, кто считает программирование не только ремеслом, но и искусством (судя по названию, сам Кнут так и считал).
А вы заглядывали в «Искусство программирования»? #программирование #алгоритмы #подборка_книг #computer_science #code #математика #math #physics #IT #лекции #видеоуроки

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6246🔥21❤‍🔥5🤩321😢1🌚1👾1
📚_Дональд_Кнут_«Искусство_программирования».zip
156.1 MB
📚 Дональд Кнут «Искусство программирования»

📙 Том 1. Основные алгоритмы


Первый том является введением в основные алгоритмы и структуры данных, описывает базовые понятия и методы программирования. Здесь же рассматривается тема представления данных в памяти компьютера и эффективной работы с ними.
Книга изобилует примерами для символьных вычислений, численных методов, методов имитации и многого другого.
Примеры программ написаны на так называемом «MIX-ассемблере» - языке, предназначенном для работы на гипотетическом «MIX-компьютере». В третьем издании устаревший MIX был заменен на MMIX, для которого существует программное обеспечение, обеспечивающее его эмуляцию.
Использование языка низкого уровня отпугивает многих читателей, но сам автор небезосновательно оправдывает свой выбор. Привязка к архитектуре позволяет судить о таких характеристиках алгоритма, как скорость и сложность (т. е. использование памяти).

📙 Том 2. Получисленные алгоритмы

Вторая книга посвящена введению в получисленные алгоритмы. Отдельный раздел посвящен арифметике, случайным числам и алгоритмам их генерации. Даются основы теории получисленных алгоритмов, подкрепленные многочисленными примерами.
Особого упоминания заслуживают предложенная Кнутом в настоящем издании новая трактовка генераторов случайных чисел, а также рассмотрение способов вычислений с помощью формальных степенных рядов.

📙 Том 3. Сортировка и поиск

В третьем томе содержится исчерпывающий обзор классических алгоритмов сортировки и поиска. Этот материал дополняет изложенную в первой части информацию о структурах данных становясь своего рода логическим продолжением первого тома.
Здесь автор рассказывает о внутренней и внешней памяти, о построении больших и малых баз данных и работе с ними. Для всех рассмотренных в книге алгоритмов приводится сравнительный анализ их эффективности. Специальный раздел посвящен методам оптимальной сортировки и описанию новой теории перестановки и универсального хеширования.

📙 Том 4. Комбинированные алгоритмы

Четвертый том сам по себе является многотомником. Комбинаторный поиск — богатая и важная тема, и Кнут приводит слишком много нового, интересного и полезного материала, чтобы его можно было разместить в одном или двух (а может быть, даже в трех) томах. Одна эта книга включает около 1500 упражнений с ответами для самостоятельной работы, а также сотни полезных фактов, которые вы не найдете ни в каких других публикациях. #программирование #алгоритмы #подборка_книг #computer_science #code #математика #math #physics #IT #лекции #видеоуроки

💡 Physics.Math.Code // @physics_lib
👍110🔥3126❤‍🔥5🤝4🌚32💯2😘21🤩1
💡 Друзья, расскажите про свои истории успеха в области IT-технологий. Что вас мотивировало? Чего и в каком возрасте вы смогли достичь? Был ли этот путь тяжелый или у вас выстрелило первое же приложение, которое вы с успехом монетизировали? Сколько лет вам понадобилось, чтобы получить желаемую профессию? Было ли у вас тематическое образование в ВУЗе или вы пришли в программирование из абсолютно другой области? Как вы считаете, играет ли роль возраст человека? Многим будет полезно и интересно почитать истории реальных людей.

📝 Это же обсуждение в нашей группе VK

#программирование #it #разработка #работа #образование

💡 Physics.Math.Code // @physics_lib
👍4525🔥8🤩7🌚52👨‍💻2🥰1🗿1
💡 Карьерная программа Мини-СЕО как механизм ускоренной карьерной динамики в бигтехе

Т-Банк во второй раз открыл набор на свою карьерную программу Мини-СЕО для студентов и выпускников вузов технического профиля. Суть программы: участники шесть месяцев работают под прямым руководством топ-менеджеров над стратегически важными проектами компании. Здесь отсутствует стадия вспомогательных задач, так как участник погружается сразу в зону принятия решений.

На участие в первом потоке претендовали более 6 000 человек. Отбор прошли ​​студенты и выпускники Бауманки, ВШЭ, ИТМО, МГУ и РАНХиГС, победители и призеры всероссийских олимпиад, хакатонов и кейс-чемпионатов, создатели стартап-проектов.

Ниже выделили основные атрибуты программы:

▪️Прямая связь с топ-менеджером и работа над стратегически важными проектами с первого дня — участник сможет мыслить сразу в логике влияния на процессы компании.

▪️Задачи нового сезона программы сосредоточены вокруг GenAI-агентов, LMM-продуктов, adtech, AI-решений в маркетинге и сложных платформ — то есть работа с настоящими технологическими контурами крупной бигтех-компании.

Участники, показавшие лучшие результаты, смогут продолжить карьеру в компании. Программа ориентирована на участников, обладающих знаниями в области математики и программирования и рассматривающих карьеру в бигтехе или планирующих запуск собственного технологического бизнеса.

#программирование #it #разработка #работа #образование

💡 Physics.Math.Code // @physics_lib
23👍8🔥7🙈4🗿31🤔1