Подборка материалов по C++
#cpp@proglibbot
Краткий курс компьютерной графики: задание карт нормалей в касательном пространстве
https://habrahabr.ru/post/279143/
Введение в концепцию шаблонов на С++
http://www.tutorialspoint.com/cplusplus/cpp_templates.htm
Вопросы и ответы от Бьёрна Страуструпа по С++17
http://goo.gl/RkHB5N
С++ exception handling под капотом или как же работают исключения в C++
Часть 1. https://habrahabr.ru/post/279111/
Часть 2. https://habrahabr.ru/post/279151/
Часть 3. https://habrahabr.ru/hub/cpp/page2/
Новая экспериментальная фича С++: tadpole operators
https://goo.gl/WIF6ba
Как заставить функцию С++ возвращать не одно значение, а сразу несколько
http://goo.gl/2J6yyH
Разъяснение разницы между тремя способами хранения данных в C++: используя стек, кучу и пул
https://bulldozer00.com/2015/09/14/stack-heap-pool/
Частые ошибки разработчиков, которые могут повлиять на производительность программ на Java.
#java@proglibbot
Задача регрессии
#data_analisis@proglibbot
1. Задача регрессии
2. Исправление грубых ошибок
3. Подбор методов улучшения обучения и размеров сети
4. Зашумленные данные и контрольные выборки
5. Методы устранения переобучения
6. Задача регрессии для калибровки манипулятора
10 вещей, которые должен освоить каждый JavaScript разработчик
#javascript@proglibbot
Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14 (2014, pdf)
Авторы: Скотт Мейерс, Игорь Красиков
#cpp@proglibbot #book@proglibbot
В этой книге отражен бесценный опыт ее автора как программиста на C++. Новые возможности этого языка программирования, появившиеся в стандартах C++11 и C++14 - это не просто новые ключевые слова или функции, это появление совершенно новых концепций, так что для их эффективного использования недостаточно просто узнать об их существовании, и программировать на C++11, как на несколько улучшенном и расширенном функционально C++98.
Когда происходят такие глобальные изменения в языке программирования, их изучению следует посвятить определенное время, написать сотни, а еще лучше - тысячи строк кода, и столкнуться с массой проблем, кажущихся тем более странными и непонятными, чем большим опытом работы с C++98 вы обладаете. К программированию в полной мере относится фраза Евклида о том, что в геометрии нет царских путей. Но пройти путь изучения и освоения нового языка программирования вам может помочь проводник, показывающий наиболее интересные места и предупреждающий о ямах и ухабах. Таким проводником может послужить книга Скотта Мейерса. С ней вы не заблудитесь и не забредете в дебри, из которых будете долго и трудно выбираться с помощью отладчика.
При этом книга не просто научит вас использовать новые возможности языка - она научит использовать их эффективно. Но и это не все - книга не просто учит эффективному применению C++, но еще и рассказывает, почему ту или иную задачу следует решать именно так.
Эта книга заставляет вас не просто заучить правила - она заставляет думать.
И хотя эта книга в первую очередь предназначена для энтузиастов и профессионалов, она достойна места на полке любого программиста - как профессионала, так и зеленого новичка.
Освоение C++11 и C++14 - это больше, чем просто ознакомление с вводимыми этими стандартами возможностями (например, объявлениями типов auto, семантикой перемещения, лямбда-выражениями или поддержкой многопоточности). Вопрос в том, как использовать их эффективно - так, чтобы создаваемые программы были корректны, эффективны и переносимы, а также чтобы их легко можно было сопровождать.
Именно этим вопросам и посвящена данная книга, описывающая создание по-настоящему хорошего программного обеспечения с использованием C++11 и C++14 - т.е. с использованием современного C++.
В книге рассматриваются следующие темы:
Преимущества и недостатки инициализации с помощью фигурных скобок, спецификации noexcept, прямой передачи и функций make интеллектуальных указателей; Связь между std::move, std::forward, rvalue-ссылками и универсальными ссылками; Методы написания понятных, корректных, эффективных лямбда-выражений; Чем std::atomic отличается от volatile, как они используются и как соотносятся с API параллельных вычислений C++; Какие из лучших методов "старого" программирования на C++ (т.е. C++98) должны быть пересмотрены при работе с современным C++.
Эффективный и современный C++, следуя принципам более ранних книг Скотта Мейерса, охватывает совершенно новый материал. Эта книга достойна занять свое место на полке каждого программиста на современном C++.
К посту прикреплена полная книга на английском языке.
Список ресурсов, которые помогут вам научиться использовать Python для обработки данных.
#python@proglibbot
http://pythontips.com/2016/02/27/learning-python-for-data-science/
Не секрет, что многие алгоритмы легче понимать, когда наглядно видно, как они работают. Представляем вашему вниманию сайт, который содержит множество визуализаций алгоритмов и структур данных.
#algorithms@proglibbot
http://visualgo.net/
Большой цикл уроков по Ruby (eng)
Часть вторая (2/4)
#ruby@proglibbot
Первая часть https://vk.com/wall-54530371_61939
10. More on Hashes
11. Functions
12. counter - index - .each do
13. Functions with Numbers
14. Pythagorean Theorem Calculator
15. All about Loops
16. Find and Replace Program
17. Multidimensional Arrays
18. Find Prime Numbers
Код. Тайный язык информатики (2004)
Автор: Чарльз Петцольд
#fundamental@proglibbot #book@proglibbot
Эта книга — азбука компьютерных технологий. Шаг за шагом автор знакомит читателя с сущностью кодирования информации, рассказывает об истории возникновения компьютеров, на практических примерах помогает освоить основные концепции информационных технологий, подробно излагает принципы работы процессора и других устройств компьютера. Написанная живо, доступно, иногда иронично, книга богато иллюстрирована, состоит из 25 глав и предметного указателя. Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
Приемы объектно-ориентированного проектирования. Паттерны проектирования (2016)
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
#oop@proglibbot #design_patterns@proglibbot #book@proglibbot
В предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Паттерны появились потому, что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Авторы излагают принципы использования паттернов проектирования и приводят их каталог. Таким образом, книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с легкостью разрабатывать собственные приложения.
Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
Серия уроков по работе с Gulp.js
#javascript@proglibbot
Gulp.js — потоковый сборщик проектов на JS. Речь пойдет об установке, настройке сборщика, работе с плагинами, удобном запуске локального сервера и заливке готового проекта на хостинг с помощью сборщика.
1. Работаем с CSS.
2. Автоматическое добавление префиксов.
3. Работа с таблицами стилей.
4. Боремся с кэшированием или ревизии подключаемых файлов.
5. Структура проекта, wiredep, bower.
6. Сборка и деплой проекта.
Советы по оптимизации кода на С++
#cpp@proglibbot
Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения Any-Lang vs C++.
Вообще, оптимизация бывает трех типов:
Оптимизация уже готового, проверенного и работающего кода.
Изначально написание оптимального кода.
Просто использование оптимальных конструкций.
Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с).
Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией.
Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем.
Ссылка на статью https://habrahabr.ru/company/mailru/blog/279449/
Курс «Введение в логику» от Hexlet
#fundamental@proglibbot
Классическая логика является формальной основой для 99% современной математики. Понимание принципов логики — обязательно для настоящего программиста.
1. Базовые понятия
2. Представление функций
3. Самая сложная логическая задача
4. Предикаты и кванторы
5. Теории: интуиции
6. Парадоксы и заключение
Алгоритмы. Вводный курс (2013,pdf)
Автор: Томас Х. Кормен
#algorithms@proglibbot
Эта книга написана признанным авторитетом в области компьютерных алгоритмов - профессором информатики Томасом Корменом, чей труд "Алгоритмы. Построение и анализ", написанный в соавторстве с такими выдающимися учеными, как Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн, выдержав три издания, давно стал общепризнанным классическим учебником по алгоритмам.
Поскольку книга "Алгоритмы. Построение и анализ" предназначена в первую очередь для студентов и аспирантов, то есть подразумевает достаточно серьезную математическую подготовку, Т.Кормен написал книгу, предназначенную для всех, кого интересуют вопросы, связанные с компьютерными алгоритмами, но базовое образование, да и просто отсутствие времени не позволяют взяться за серьезный труд объемом более 1300 страниц.
При всей простоте и легкости изложения эту книгу, как и все вышедшее из-под пера Т.Кормена, отличают точность, широкий спектр охватываемых вопросов, глубина изложения. Основной предполагаемый читатель этой книги - молодой человек, раздумывающий, стоит ли ему заниматься этой областью человеческой деятельности или нет. Но в любом случае, знания никогда не бывают лишними, так что даже если в конечном итоге вы поймете, что алгоритмы - не ваше предназначение, все равно ваше время не будет потрачено зря - ведь алгоритмы окружают нас всюду, а компьютерные алгоритмы - всего лишь их разновидность.
К посту прикреплена полная книга на английском языке.
C# 6.0. Карманный справочник (2016, pdf)
Авторы: Джозеф Албахари, Бен Албахари
#csharp@proglibbot #book@proglibbot
Данное руководство, ставшее бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 6.0, CLR и основным сборкам .NET Framework. После своего появления в 2000 году C# стал языком с выдающейся гибкостью и мощью, но его постоянный рост и совершенствование означают необходимость в дополнительном изучении.
Организованное по концепциям и сценариям использования, существенно обновленное 6-е издание книги предлагает программистам средней и высокой квалификации лаконичный план получения знаний по языку C# и платформе .NET Framework. Читая ее, вы очень быстро поймете, почему это руководство считают авторитетным справочником по C#.
- Изучите все аспекты языка C#, начиная с основ синтаксиса и переменных и заканчивая сложными темами, такими как указатели и перегрузка операций
- Научитесь пользоваться языком LINQ благодаря трем посвященным ему главам
- Освойте динамическое, асинхронное и параллельное программирование
- Получите навыки работы со средствами .NET, в числе которых XML, взаимодействие с сетью, сериализация, рефлексия, безопасность, домены приложений и контракты кода
- Исследуйте новый компилятор как службу C# 6.0 под названием Roslyn
К посту прикреплен оригинал книги на английском языке.
Приобрести книгу на русском можно по ссылке http://www.ozon.ru/context/detail/id/34820810/
Метод обратного распространения ошибки
#data_analisis@proglibbot
1. Обучение как минимизация функции
2. Метод градиентного спуска
3. Частные производные и градиенты
4. Обратное распространение ошибки, веса
5. Обратное распространение ошибки, входы
6. Обратное распространение ошибки, пояснения
7. Локальные и глобальные минимумы
8. Онлайн и оффлайн обучение
9. Методы ускорения обучения
Самые популярные посты за эту неделю
#weekly@proglibbot
Администрирование Linux
https://vk.com/wall-54530371_61398
Стек протоколов TCP/IP
https://vk.com/wall-54530371_61295
Подборка задач с подробным решением на JavaScript
https://vk.com/wall-54530371_61394
SQL для простых смертных (2014)
https://vk.com/wall-54530371_61973
Видеокурс по GitHub для новичков (eng)
https://vk.com/wall-54530371_61688
Подборка книг по защите информации в компьютерных системах
https://vk.com/wall-54530371_61511