Все самое полезное для программиста в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/a32a0d94 Наши каналы: https://t.me/proglibrary/9197 РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Серия уроков по работе с Gulp.js
#javascript@proglibbot
Gulp.js — потоковый сборщик проектов на JS. Речь пойдет об установке, настройке сборщика, работе с плагинами, удобном запуске локального сервера и заливке готового проекта на хостинг с помощью сборщика.
1. Работаем с CSS.
2. Автоматическое добавление префиксов.
3. Работа с таблицами стилей.
4. Боремся с кэшированием или ревизии подключаемых файлов.
5. Структура проекта, wiredep, bower.
6. Сборка и деплой проекта.
http://vk.com/wall-54530371_62802
Читать полностью…Советы по оптимизации кода на С++
#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 страниц.
При всей простоте и легкости изложения эту книгу, как и все вышедшее из-под пера Т.Кормена, отличают точность, широкий спектр охватываемых вопросов, глубина изложения. Основной предполагаемый читатель этой книги - молодой человек, раздумывающий, стоит ли ему заниматься этой областью человеческой деятельности или нет. Но в любом случае, знания никогда не бывают лишними, так что даже если в конечном итоге вы поймете, что алгоритмы - не ваше предназначение, все равно ваше время не будет потрачено зря - ведь алгоритмы окружают нас всюду, а компьютерные алгоритмы - всего лишь их разновидность.
К посту прикреплена полная книга на английском языке.
http://vk.com/wall-54530371_62628
Читать полностью…http://vk.com/wall-54530371_62589
Читать полностью…http://vk.com/wall-54530371_62361
Читать полностью…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
http://vk.com/wall-54530371_62070
Читать полностью…http://vk.com/wall-54530371_62051
Читать полностью…http://vk.com/wall-54530371_62017
Читать полностью…http://vk.com/wall-54530371_61973
Читать полностью…Подборка материалов по 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
http://vk.com/wall-54530371_62702
Читать полностью…http://vk.com/wall-54530371_62686
Читать полностью…Задача регрессии
#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++.
К посту прикреплена полная книга на английском языке.
Cоздание браузерной игры в реальном времени на HTML/CSS/JS
#web@proglibbot
http://vk.com/wall-54530371_62307
Читать полностью…Список ресурсов, которые помогут вам научиться использовать 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 глав и предметного указателя. Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
Персептроны
#fundamental@proglibbot #data_analysis@proglibbot
1. Биологический нейрон и его модель
2. Персептрон и булевы функции
3. Обучение персептрона
4. Демонстрация обучения
5. Функция XOR и многослойный персептрон
SQL для простых смертных (2010)
Автор: Мартин Грабер
#sql@proglibbot #book@proglibbot
"SQL для простых смертных" - это полное введение в структурированный язык запросов, написанное специально для начинающих. Если вы не имеете опыта управления базами данных, благодаря этой книге вы научитесь работать с SQL легко и свободно, применяя простые запросы и сложные операции.
Для овладения SQL:
Усвойте смысл понятий, связанных с управлением базой данных, с помощью краткого и простого введения в реляционные базы данных. Следуйте данным инструкциям по применению основных команд SQL для поиска размещенной в таблицах данных информации и работы с ней. Научитесь выбирать и суммировать данные, а также умело ими управлять. Эффективно работайте с составными таблицами данных, применяя развитую технику запроса к более чем одной таблице одновременно, конструируя сложные запросы и подзапросы. Создавайте новые таблицы данных для приложений в сфере торгового бизнеса. Изучайте важные принципы эффективного проектирования базы данных и технику обеспечения целостности и защиты данных. Учитесь применять SQL с языками программирования, используя специальную главу для программистов.
"SQL для простых смертных" является необходимым руководством для любой реализации языка структурированных запросов, в которое влючены краткий справочник по стандартному SQL и описание общих свойств нестандартного SQL.