Алгоритмы. Теория и практическое применение (2016) / Essential Algorithms: A Practical Approach to Computer Algorithms (2013)
Автор: Род Стивенс
#algorithms #book
Алгоритмы - это рецепты, которые делают возможным эффективное программирование. Их изучение позволяет усвоить общие подходы к решению задач и накапливать полезные методики для их решения. В этой книге представлено множество классических алгоритмов; вы узнаете, где они применяются и как их анализировать, чтобы понять их поведение.
Эта книга может быть полезной не только в вашей текущей профессиональной деятельности, но и может помочь вам получить новую работу.
К посту прикреплена полная версия на английском языке.
Комментарии: https://vk.com/wall-54530371_63558
Подборка материалов по разработке под Android
#mobile
Пять шагов по оптимизации производительности приложения для Андроид
https://habrahabr.ru/post/279979/
Архитектура Android приложений
Оригинал https://goo.gl/jRGHhq
Перевод https://habrahabr.ru/post/278815/
Новые возможности в Google Play Игры
http://android-developers.blogspot.ru/
Как легко и непринужденно написать игру за 2 года
https://habrahabr.ru/post/279195/
Как библиотеки могут добавлять разрешения в ваше Android приложение
https://goo.gl/45QRYF
Android N: картинка в картинке для Android TV
https://goo.gl/mk37r9
Видеокурс «C++11 и продвинутый C++»
#cpp
Данные уроки являются продолжением курса «Базовый C++» от Владимира Моженкова. Автор в каждом видео рассматривает различные тонкости языка.
1. Манипуляторы
2. «Умные указатели
3. Литералы
4. Особенности работы auto. Инициализаторы в конструкторах
5. Последовательность исполнения команд в C++
6. Вопросы, которые задаются людям на собеседованиях при устройстве на работу
7. Ромбовидное наследование
8. Обработка ошибок в C++ и также понятия dynamic_cast и static_cast
9. Работа с SQLite3
10. MySQL/MariaDB с помощью libmysql++
11. Работа с библиотекой libcurlpp (для того, чтобы скачивать данные через HTTP)
12. Отладка программ
13. Методы из ❬algorithm❭
14. Методы со случайным количеством параметров. Кортежи в C++.
https://www.youtube.com/playlist?list=PLY7PmJJFH5nTO0pgTa4gDzgvMzrmZ4QtL
Комментарии:
http://vk.com/wall-54530371_63259
https://vk.com/wall-54530371_63379
Внутреннее устройство Linux (2016) / How Linux Works: What Every Superuser Should Know
Автор: Брайан Уорд
#linux #book
Данная книга уже стала бестселлером на Западе. Она описывает все тонкости работы с операционной системой Linux, системное администрирование, глубокие механизмы, обеспечивающие низкоуровневый функционал Linux. На страницах этой книги вы приобретете базовые знания о работе с ядром Linux и о принципах правильной эксплуатации компьютерных сетей. В книге также затрагиваются вопросы программирования сценариев оболочки и обращения с языком С, освещаются темы защиты информации, виртуализации и прочие незаменимые вещи.
К посту прикреплена полная книга на английском языке.
Комментарии: https://vk.com/wall-54530371_63402
Урок по бинарному поиску
#algoritms #novice
Бинарный поиск представляет собой классический алгоритм поиска элемента в отсортированном массиве, использующий дробление массива на половины.
Урок доступен по ссылке
http://vk.com/video-54530371_456239290
Небольшая подборка статей по Data Mining и Big Data
#data_analysis
Мифы и легенды про Big Data
https://goo.gl/EFzEVP
1 000 000 жилых домов России
https://habrahabr.ru/post/279833/
Вам не нужен Hadoop — у вас просто нет столько данных
Оригинал https://goo.gl/kHjLvY
Перевод https://habrahabr.ru/post/194434/
Линейные модели: простая регрессия
https://habrahabr.ru/post/279117/
BDRA – современная архитектура для аналитики больших данных
https://goo.gl/7QfPF1
Золотой фонд литературы по версии Stackoverflow
#book
Представляем вашему вниманию подборку книг, считающиеся участниками сообщества stackoverflow.com одними из самых влиятельных среди всей программистской литературы.
К посту прикреплена страница с данными книгами доступных для скачивания.
Макконнелл С. «Совершенный код»
Х. Абельсон, Дж. Дж. Сассман «Структура и Интерпретация Компьютерных Программ»
Б. Керниган, Д. Ритчи «Язык программирования Си»
Кормен Т., Лейзерсон Ч., Ривест Р. «Алгоритмы. Построение и анализ»
М. Фаулер «Рефакторинг. Улучшение существующего кода»
Д. Кнут «Искусство программирования»
Альфред Ахо, Рави Сети, Джеффри Ульман, Моника Лам «Компиляторы. Принципы, технологии, инструменты»
Мартин Р. «Чистый код. Создание, анализ и рефакторинг»
С. Мейерс «Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Брюс Эккель «Философия Java». 4-е издание
Реймонд Э.С. «Искусство программирования для Unix»
Бек К. «Экстремальное программирование. Разработка через тестирование»
Андрей Александреску «Современное проектирование на С++»
Керниган Б., Пайк Р. «Практика программирования»
Н. Вирт «Алгоритмы + структуры данных = программы»
Дуглас Крокфорд «JavaScript: сильные стороны»
Andrew S. Tanenbaum «Современные операционные системы»
Getting Real by 37 Signals
Бьёрн Страуструп «Язык программирования C++» (2011, PDF; 2013, PDF, ENG)
Р. Мартин «Принципы, паттерны и методики гибкой разработки на языке C#» (2011, PDF)
Рихтер «CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C#»
Грэди Буч «Объектно-ориентированный анализ и проектирование с примерами приложений» (3-е издание) (2008, DjVu)
Блох Дж. «Java. Эффективное программирование» (2002, PDF)
Ховард М., Лебланк Д. «Защищённый код» (2004, PDF)
Эндрю Хант, Дэвид Томас «Программист-прагматик. Путь от подмастерья к мастеру» (2000, PDF)
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидс «Паттерны проектирования» (2001, PDF)
Фредерикс Брукс «Мифический человеко-месяц, или Как создаются программные системы» (1995, PDF)
Даглас Р. Хофштадтер «Гедель, Эшер, Бах. Эта бесконечная гирлянда» (2001, PDF)
Мейерс C. «Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов» (2000, DJVU)
Петцольд Ч. «Код. Тайный язык информатики» (2001, PDF)
Бентли Дж. «Жемчужины программирования» (2-е издание) (2002, DjVu)
Том ДеМарко «Deadline. Роман об управлении проектами» (2006, PDF)
Питер Сейбл «Кодеры за работой. Размышления о ремесле программиста» (2011, DJVU)
Working Effectively with Legacy Code by Michael C. Feathers
Peopleware by Demarco and Lister
Surely You’re Joking, Mr. Feynman!
Patterns of Enterprise Application Architecture by Martin Fowler
The Little Schemer
The Seasoned Schemer
Why’s (Poignant) Guide to Ruby
The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
Practices of an Agile Developer
Don’t Make Me Think
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Domain Driven Designs by Eric Evans
The Design of Everyday Things by Donald Norman
Best Software Writing I by Joel Spolsky
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
Software Estimation: Demystifying the Black Art by Steve McConnel
The Passionate Programmer (My Job Went To India) by Chad Fowler
Hackers: Heroes of the Computer Revolution
Writing Solid Code
Foundations of Programming by Karl Seguin
Computer Graphics: Principles and Practice in C (2nd Edition)
The Elements of Computing Systems
Refactoring to Patterns by Joshua Kerievsky
The Annotated Turing
Things That Make Us Smart by Donald Norman
The Timeless Way of Building by Christopher Alexander
Patterns of Enterprise Application Architecture
Computer Systems — A Programmer’s Perspective
Growing Object-Oriented Software, Guided by Tests
Framework Design Guidelines by Brad Abrams
Object Thinking by Dr. David West
Advanced Programming in the UNIX Environment by W. Richard Stevens
Hackers and Painters: Big Ideas from the Computer Age
Android. Программирование для профессионалов (2016) / Android Programming: The Big Nerd Ranch Guide (2013, pdf)
Авторы: Б. Харди, Б. Филлипс, К. Стюарт, К. Марсикано
#mobile #book
Изучение Android — все равно, что жизнь в другой стране: даже если вы говорите на местном языке, на первых порах вы все равно не чувствуете себя как дома. Такое впечатление, что все окружающие знают что-то такое, чего вы еще не понимаете. И даже то, что уже известно, в новом контексте оказывается попросту неправильным.
Второе издание познакомит вас с интегрированной средой разработки Android Studio, которая поможет с легкостью создавать приложения для Android. Вы не только изучите основы программирования, но и узнаете о возможностях Lollipop, новых инструментах вспомогательных библиотек, а также некоторых ключевых инструментах стандартной библиотеки, включая SoundPool, анимацию и ресурсы. Все учебные приложения были спроектированы таким образом, чтобы продемонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.
К посту прикреплена полная книга на английском языке в формате pdf.
"Замечательные zippers, или как я научился не волноваться и полюбил древовидные структуры данных"
#algorithms
Известно, что дерево – довольно сложная структура. И если чтение успешно реализуется рекурсией (которая не лишена своих проблем), то с изменением дела обстоят совсем не хорошо.
При этом довольно давно существует высоко эффективный инструмент для работы с деревьями – зипперы, однако широкого распространения он не получил и, мне кажется, я знаю почему.
Классическое концептуальное объяснение зиппера, выглядит как-то так: это взгляд изнутри на древовидную структуру как бы вывернутую наизнанку, вроде вывернутой перчатки.
Статья целиком https://habrahabr.ru/post/279623/
Классификация и распознавание образов
#data_analysis@proglibbot
1. Задача распознавания.
2. Построение структуры нейронной сети
3. Kernel Trick
4. Задача классификации
5. Применение карты Кохонена для классификации
6. Анализ и визуализация данных с помощью карты Кохонен
Самые популярные посты за эту неделю
#weekly@proglibbot
Курс «Введение в логику» от Hexlet
https://vk.com/wall-54530371_62702
Cоздание браузерной игры в реальном времени на HTML/CSS/JS
https://vk.com/wall-54530371_62361
Андроид для программистов. Создаем приложения
https://vk.com/wall-54530371_62219
Небольшие, но подробные уроки по регулярным выражениям
https://vk.com/wall-54530371_62339
Конфигурирование, сборка и установка ядра Linux
https://vk.com/wall-54530371_62926
Архитектура игровых движков
https://vk.com/wall-54530371_62130
Курс «Введение в Javascript»
https://vk.com/wall-54530371_62997
Курс "Объектно-ориентированное программирование"
Часть первая (1/2)
#oop #csharp
Вы освоите самую распространенную и востребованную парадигму, используемую практически во всех современных языках - объектно ориентированное программирование.
На занятиях мы будем разрабатывать игру "Змейка" на языке C# с использованием системы контроля версий Git.
1. Постановка целей.
2. Процедурный подход.
3. Классы и объекты.
4. Конструкторы, инкапсуляция.
5. Оперативная память, вид изнутри.
6. Осваиваем класс "Список"
7. Класс "Горизонтальные линии"
8. Класс "Вертикальные линии" и "Фигура”
9. Класс "Змейка"
Ссылка на пост http://vk.com/wall-54530371_63523
Разное о нейронных сетях
#data_analysis
1. Нейронная сеть как функция действительных переменных
2. Рекуррентные нейронные сети. Сеть Элмана
3. Вычисления за пределами машины Тьюринга
4. Ассоциативная память
5. Реализация нейронных сетей
6. Заключение
Альбом с видео: http://vk.com/videos-54530371?section=album_56085700
Комментарии: http://vk.com/wall-54530371_63490
Разработка одностраничного приложения на React, NodeJS, Express и MongoDB
#web
https://www.youtube.com/watch?v=mYvdeFfZ_NE
Комментарии: https://vk.com/wall-54530371_63460
Подборка материалов по искусственному интеллекту и Big Data
#data_analysis
Что не так с большими данными: Cложности при работе с Big Data и препятствия на пути к их использованию
https://habrahabr.ru/company/1cloud/blog/261487/
Искусственный интеллект, большие данные и дезинформация технологий: Интервью Майкла Джордана, профессора университета Беркли, в котором он рассуждает о сложностях развития технологий и том, почему большие данные могут оказаться большим провалом
https://habrahabr.ru/company/1cloud/blog/258219/
Большие данные и будущее здравоохранения: Три компании, которые используют облачные вычисления и большие данные для создания продуктов, защищающих наше здоровье;
http://goo.gl/aZQBK7
Что ждет искусственный интеллект в корпоративной среде: Автор рассуждает о перспективах AI и потенциальном будущем
http://goo.gl/JTb7td
Беспилотные автомобили не будут «работать», пока мы не изменим дорожную инфраструктуру и свое поведение: Автор рассказывает о том, что нам нужно предпринять, дабы в ближайшем будущем на наших дорогах появились беспилотные автомобили.
http://goo.gl/3G51WB
Курс "Git. Быстрый старт"
#git
Данный курс окунет вас в мир командной разработки с использованием git. Позволит с нуля организовать в интернете совместное хранилище кода, и научит эффективно его использовать.
1. Назначение и возможности.
2. Базовые операции.
3. Откат изменений кода.
4. Работа с ветками.
5. Конфликты.
6. Распространенные ошибки.
7. Распространенные ошибки.
8. Консольный git-клиент. Базовые операции.
9. Консольный git-клиент. Работа с ветками.
10. Работа с версиями программы.
Все видео доступны по ссылке
http://vk.com/videos-54530371?section=album_56085702
Комментарии к посту:
https://vk.com/wall-54530371_63311
The Soul of a New Machine by Tracy Kidder
The Timeless Way of Building by Christopher Alexander
Design Patterns in C# by Steve Metsker
Alice in Wonderland by Lewis Carol
Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
About Face — The Essentials of Interaction Design
Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
The Tao of Programming
Computational Beauty of Nature
Writing Solid Code by Steve Maguire
Philip and Alex’s Guide to Web Publishing
Computability by N. J. Cutland
Masterminds of Programming
The Tao Te Ching
The Productive Programmer
The Art of Deception by Kevin Mitnick
The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
Masters of Doom
Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
How To Solve It by George Polya
Smalltalk-80: The Language and its Implementation
Introduction to Functional Programming by Philip Wadler and Richard Bird
No Bugs! by David Thielen
Rework by Jason Freid and DHH
JUnit in Action
Страница с данными книгами доступных для скачивания. http://vk.com/proglib?w=page-54530371_46738526
Лямбда-выражения в Java 8
#java
Лямбда-выражения — одно из самых заметных нововведений Java версии 8. Они вносят в Java, который является объектно-ориентированным языком, некое функциональное звено. И в этом смысле lambda-выражения способы существенно облегчить жизнь разработчику.
В ходе нашего урока по Java будут на конкретных примерах рассмотрены следующие проблемы:
— Использование анонимных классов;
— Функциональные интерфейсы Java 8;
— Лямбда-выражения и зачем они нужны;
— Агрегатные операции.
Мастер-класс ведет преподаватель по программированию с многолетним практическим опытом, сертифицированный тренер и обладатель 10 сертификаций Microsoft для разработчиков и программистов Сергей Юрьевич Шуйков.
https://www.youtube.com/watch?v=DNC6Lknn2AE
Видеоуроки по основам Python
#python #novice
1. Теория
2. Установка
3. Переменные
4. Типы данных
5. Динамическая типизация
6. Операторы
7. Функции
8. Создание папок
9. Обработка секвенции файлов
10. Системные аргументы
Все видео доступны по ссылке
https://vk.com/videos-54530371?section=album_56085698
Подборка материалов по R
#data_analysis@proglibbot
Стратегии по ускорению кода на R
Оригинал http://goo.gl/1hwjhM
Перевод:
Часть первая https://goo.gl/ivcEiF
Часть вторая https://goo.gl/o7V15L
Генерация и визуализация многомерных данных с R
Перевод https://goo.gl/5J8GeI
Оригинал http://goo.gl/wnuLwu
Использование PostgreSQL в R
http://www.win-vector.com/blog/2016/02/using-postgresql-in-r/
R Programming Tutorials
http://goo.gl/grudFp
Java 8. Карманный справочник (2015) / Java 8 Pocket Guide (2014)
Авторы: Роберт Лигуори, Патриция Лигуори
#java@proglibbot #book@proglibbot
Если вам нужно получить оперативные ответы по разработке или отладке программ на Java, то книга JAVA 8. Карманный справочник послужит вам удобным справочником по стандартным возможностям языка программирования Java и его платформы. Вы найдете здесь
полезные примеры программирования, таблицы, рисунки и списки,
вспомогательную тематическую информацию, в том числе по Java Scripting API, средствам разработки сторонних фирм и основам унифицированного языка моделирования (Unified Modeling Language, UML).
Из книги JAVA 8. Карманный справочник вы узнаете о новых возможностях Java 8, лямбда-выражениях и API для работы с датой и временем.
Эта небольшая книга JAVA 8. Карманный справочник, включающая в себя описание новых возможностей Java, до Java SE 8 включительно, будет вашим идеальным спутником, где бы вы ни находились - в офисе, в учебном классе или в пути.
Быстро находите подробные сведения о языке Java, такие как соглашения о присвоении имен, описание простых типов и элементов объектно-ориентированного программирования.
Получите подробные сведения о платформе Java SE, включая основы разработки, управление памятью, параллелизм и обобщения.
Просматривайте базовую информацию, чтобы узнать о возможностях NIO 2.0, инфраструктуре коллекций Java и API языков сценариев Java.
Ознакомьтесь с краткой информацией по текучим API, средствам разработки и тестирования, библиотекам и IDE; а также изучите основы UML.
"В книге прекрасно описаны лямбда-выражения и функциональные операции, а также другие новинки Java SE 8 наряду с остальной платформой".
Герт-Ян Виленха, главный консультант по маркетингу в группе разработки NetBeans IDE компании Oracle.
Книга обсуждается в отдельном сообщении в блоге Виктора Штонда.
К посту прикреплена полная книга на английском языке.
Приобрести книгу на русском можно по ссылке
http://www.ozon.ru/context/detail/id/30196193/
Подборка материалов по веб-разработке
#web@proglibbot
Библия фронтэндщика: огромный список ссылок на всевозможные ресурсы по фронтэнду
https://github.com/dypsilon/frontend-dev-bookmarks
Пример нестандартной сетки из шестиугольников на CSS с помощью свойства clip-path
http://codepen.io/tstoik/pen/qZEZJp
SlideOut — библиотека для создания бокового выпадающего меню
https://github.com/mango/slideout
Помощь верстальщику. Конвертер PSD в CSS — когда лень верстать по готовому макет
http://css3ps.com/
Курс «Введение в Javascript» от Hexlet
#javascript@proglibbot
1. Введение. Числа
2. Строки. Объекты. Прототипы.
3. Функции. Замыкания.
4. Наследование
5. Массивы
6. Регулярные выражения
7. Сравнения, var, eval и заключение
Linux. Системное программирование (2016)/ Linux System Programming (2013)
Автор: Роберт Лав
#linux@proglibbot #book@proglibbot
Роберт Лав стоит у истоков создания операционной системы Linux. Он внес существенный вклад в создание ядра Linux и настольной среды GNOME.
Данная книга представляет собой руководство по системному программированию для Linux, справочник по системным вызовам Linux, а также подробный рассказ о том, как писать более быстрый и умный код. Роберт Лав четко разграничивает стандартные функции POSIX и специальные службы, которые предлагаются лишь в Linux. Во втором издании вы изучите эту операционную систему как с теоретической, так и с прикладной точки зрения.
К посту прикреплена полная книга на английском языке.
Приобрести книгу на русском можно по ссылке
http://www.ozon.ru/context/detail/id/31934003/
Конфигурирование, сборка и установка ядра Linux
#linux@proglibbot
Операционная система Linux завоевала огромную популярность во всем мире, благодаря свободному распространению и возможности доработки пользователем под собственные нужды. Однако для того чтобы оценить работу на данной операционной системе и уметь настраивать ее с учетом своих потребностей, необходимо получить специальные знания.
Причины, по которым может возникнуть необходимость в сборке ядра системы. В каких случаях это необходимо делать обязательно.
1) Получение исходных кодов ядра. Версии. Развёртывание файлового дерева исходных кодов.
2) Сбор информации о системе, для которой предназначено ядро.
3) Конфигурирование ядра из начальной конфигурации "в состоянии поставки", и используя в качестве основы гарантированно рабочую конфигурацию предыдущей версии.
4) Модули, модульная архитектура ядра Linux.
5) Компиляция и сборка ядра.
6) Установка нового ядра автоматически и "вручную".
7) Конфигурирование начального загрузчика для использования нового ядра.
8) Рестарт системы под управление нового ядра. Проверка работоспособности.