proglibrary | Technologies

Telegram-канал proglibrary - Библиотека программиста | программирование, кодинг, разработка

77043

Все самое полезное для программиста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/a32a0d94 Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Subscribe to a channel

Библиотека программиста | программирование, кодинг, разработка

Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию (2012) / Cracking the Coding Interview, 5-th Edition: 150 Programming Interview Questions and Solution
Автор: Г. Лакман Макдауэлл

#book

Пятое издание этого мирового бестселлера поможет вам наилучшим образом подготовиться к собеседованию при приеме на работу программистом или руководителем в крупную IT-организацию или перспективный стартап. Основную часть книги составляют ответы на технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon и других. Рассмотрены типичные ошибки, которые допускают кандидаты, а также эффективные методики подготовки к собеседованию. Используя материал этой книги, вы с легкостью подготовитесь к устройству на работу в Google, Microsoft или любую другую ведущую IT-компанию.

К посту прикреплена полная книга на английском языке в pdf формате.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Angular JS Tutorial

#javascript

1. MVC паттерн в AngularJS, модули, директивы, выражения, dependency injection
2. Валидация форм, использование $rootScope для разделения данных между контроллерами, наследование контроллеров, фильтры

Видео можно посмотреть по ссылке
http://vk.com/wall-54530371_65720

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Ликбез по типизации в языках программирования

#common

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

Языки программирования по типизации принято делить на два больших лагеря — типизированные и нетипизированные.
В свою очередь типизированные языки разделяются еще на несколько пересекающихся категорий:
- Сильная / слабая типизация
- Явная / неявная типизация
- Статическая / динамическая типизация

Предлагаем вашему вниманию статью, после прочтения которой, вы раз и навсегда запомните отличия всех, выше упомянутых категорий типизированных языков
https://habrahabr.ru/post/161205/

Ссылка на пост http://vk.com/wall-54530371_65681

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Знай сложности алгоритмов

#algorithms

Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. Автор статьи говорит что потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки. И после нескольких потраченных часов задался вопросом: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ».
Чтобы сохранить ваше время автор создал такую шпаргалку, которую вы можете увидеть в статье ниже:

Ссылка на статью с Хабра
https://habrahabr.ru/post/188010/
Ссылка на оригинал статьи на английском
http://bigocheatsheet.com/

Ссылка на пост http://vk.com/wall-54530371_65603

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

HTML5. Разработка приложений для мобильных устройств (2015)
Автор: Эстель Вейл

#web

Создавайте сногсшибательные сайты и приложения для любых мобильных и настольных платформ. Для этого вам потребуется всего лишь добавить в ваш инструментарий веб-разработки технологии HTML5 и CSS3. Вооружившись этой практичной книгой, вы научитесь разрабатывать веб-приложения, которые не только хорошо работают на iOS, Android, Blackberry и Windows Phone, но и очень удобны в использовании.
Книга содержит множество примеров кода и разметки. Она поможет вам освоить работу с разнообразными инструментами HTML5 - в частности, с новыми веб-формами, масштабируемой векторной графикой (SVG), холстом (Canvas), localStorage и другими родственными API. Кроме того, в этом издании подробно рассмотрены таблицы стилей CSS3. Вы научитесь разрабатывать приложения, которые одинаково хорошо работают как на огромных мониторах, так и на крошечных экранах.
- Познакомьтесь с элементами HTML, синтаксисом и семантикой этого языка.
- Научитесь создавать веб-формы, отличающиеся повышенным удобством, но содержащие сравнительно немного кода на JavaScript.
- Исследуйте медийные API HTML5 для работы с графикой, видео и аудио.
- Обеспечьте работу ваших приложений в режиме оффлайн - в этом вам помогут AppCache, localStorage и другие API.
- Узнайте все необходимое о селекторах и синтаксисе CSS3.
- Досконально разберитесь в возможностях CSS3: начните использовать множественные фоновые изображения, градиенты, граничные изображения, переходы, трансформации и анимацию.
- Сделайте ваши веб-приложения более удобными, отзывчивыми и доступными.
- Проектируйте с расчетом на высокую производительность, понятность для пользователей и функциональную надежность на любых платформах.

К посту прикреплена полная книга на английском языке.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Подборка лучших материалов по JavaScript за март

#javascript #web

Учим JavaScript правильно. Мнение 25 экспертов, о том, как стоит подойти к изучению языка.
https://psdtowp.net/learn-javascript....

"You-Dont-Know-JS" - серия бесплатных электронных книг по JavaScript
https://github.com/getify/You-Dont-Kn...

Функциональное программирование на JS
https://goo.gl/uoRCe7

Введение в Immutable.js и концепцию функционального программирования
https://auth0.com/blog/2016/03/23/int...

Учитесь кодить: 13 советов, которые смогут спасти вас от нескольких лет усилий
https://goo.gl/mhzqGf

Список упрощенных "жаргонов" для новичков в JavaScript
https://github.com/HugoGiraudel/SJSJ

Построение 3D-движка с помощью JavaScript.
http://www.sitepoint.com/building-3d-engine-javascript...

ViziCities: Открытый исходный код библиотеки JavaScript для построения 3D-города и визуализации данных
https://github.com/vizicities/vizicit...

Sticker.js: A JavaScript библиотека для эффекта стикера
http://stickerjs.cmiscm.com

Ссылка на пост http://vk.com/wall-54530371_65540

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Подборка материалов по PostgreSQL

#db

За годы своего существования PostgreSQL стала одной из самых продвинутых СУБД в мире open-source. Чем она отличается от своих конкурентов читайте в этой статье:
Первая часть https://goo.gl/qrjkoz
Вторая часть https://goo.gl/7Rblx8

Еще немного отличий PostgreSQL от других СУБД в статье "PostgreSQL vs MySQL"
https://habrahabr.ru/company/mailru/b...

Полезные трюки PostgreSQL
https://habrahabr.ru/post/280912/

Чтение больших объемов данных в Python/Postgresql
https://habrahabr.ru/post/280822/

SQL Tabs - кроссплатформенный клиент для PostgreSQL с открытым исходным кодом.
http://www.sqltabs.com/

Использование функций в PostgreSQL как параметризированных представлений
https://goo.gl/2E5G81

Ссылка на пост http://vk.com/wall-54530371_65503

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Компьютерные сети. Принципы, технологии, протоколы. Учебник (2016)
Авторы Виктор Олифер, Наталия Олифер

#networks #book

Пятое издание одного из лучших российских учебников по сетевым технологиям, переведенного на английский, испанский, португальский и китайский языки, отражает те изменения, которые произошли в области компьютерных сетей за 6 лет, прошедших со времени подготовки предыдущего издания: преодоление локальными и глобальными сетями рубежа скорости в 100 Гбит/c и освоение терабитных скоростей; повышение эффективности и гибкости первичных оптических сетей за счет появления реконфигурируемых мультиплексоров ввода-вывода (ROADM) и применения супер-каналов DWDM, работающих на основе гибкого частотного плана; развитие техники виртуализации сетевых функций и услуг, приведшей к распространению облачных сервисов; выход на первый план проблем безопасности.
Рекомендовано Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению "Информатика и вычислительная техника" и по специальностям "Вычислительные машины, комплексы, системы и сети", "Автоматизированные машины, комплексы, системы и сети", "Программное обеспечение вычислительной техники и автоматизированных систем".

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

Ссылка на пост http://vk.com/wall-54530371_65472

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Сообщество русскоговорящих мобильных разработчиков, маркетологов и геймдизайнеров. @devapp

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

CSS: The Missing Manual (2016) / CSS: The Missing Manual (2015)
Автор: Дэвид Сойер Макфарланд

#web

Технология CSS3 позволяет создавать профессионально оформленные сайты, но тонкости этого языка могут оказаться довольно сложными даже для опытных веб-разработчиков. Полностью переработанное четвертое издание этой книги поможет вам поднять навыки работы с HTML и CSS на новый уровень; она содержит множество ценных советов, описаний приемов, а также инструкции, написанные в стиле справочного руководства. Веб-дизайнеры, как начинающие, так и опытные, при помощи этой книги быстро научатся создавать красивые веб-страницы, которые при этом молниеносно загружаются как на ПК, так и на мобильных устройствах.

К посту прикреплена полная книга на английском языке.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

JavaScript и JSON
Первая часть (1/2)

#javascript

1. Что такое JSON
2. Понимание объектов и JSON
3. Создание простых данных
4. Использование инструментов для JavaScript и JSON
5. Отладка объектов JavaScript с помощью браузера
6. Изменение объектов массива в JavaScript
7. Циклы по объектам JavaScript
8. Доступ к объектам в массивах
9. Коммуникация между сайтами с помощью JSON

Ссылка на пост с уроками http://vk.com/wall-54530371_65329

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Компьютерные сети. Нисходящий подход (2016) / Computer Networking: A Top-Down Approach (2012)
Авторы: Джеймс Ф. Куроуз, Кит В. Росс

#networks #book

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

Книга будет полезна всем, кто специализируется в области технологий компьютерных сетей - от студентов до системных администраторов.

К посту прикреплена полная книга на английском языке.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Основы вычислимости и теории сложности
Лектор: Дмитрий Ицыксон

#fundamental

Курс дает ответы на такие вопросы: Что такое алгоритм? Что такое эффективный алгоритм? Что такое доказательство? Как доказать, что нет алгоритма, который решит данную задачу? Как доказать, что что-то нельзя доказать? Как понять, что нет эффективного алгоритма для данной задачи? Что такое сложность объекта? Из курса можно узнать, что такое вычислимые функции, арифметическая иерархия, колмогоровская сложность, классы P, NP, PSPACE и пр., полиномиальная иерархия, схемная сложность, сложность с ограничением по памяти и многие другие интересные вещи.

Ссылка на пост http://vk.com/wall-54530371_65228
Все 12 лекций доступны по ссылке http://vk.com/videos-54530371?section=album_56085718

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Подборка уроков по ООП от Владимира Моженкова

#oop

1. Инкапсуляция
2. Наследование
3. Дочерний класс в памяти
4. Агрегация и Композиция
5. Класс Обёртка
6. Множественное Наследование
7. Анонимный Объект
8. Раннее и Позднее Связывание
9. Functor или Объект-Функция

Посмотреть уроки можно по ссылке ниже
http://vk.com/wall-54530371_65154

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Структуры данных с Джонатаном Шевчуком, Калифорнийский университет в Беркли

#algorithms #java

Фундаментальные динамические структуры данных, включая односвязные списки, очереди, деревья и другие связанные структуры; массивы строк и хэш-таблицы. Управление хранением данных. Элементарные принципы программной инженерии. Абстрактные типы данных. Алгоритмы поиска и сортировки. Введение в язык программирования Java.

1. Обзор курса
2. Использование объектов
3. Определение классов
4. Типы и условные операторы
5. Циклы и массивы, часть I
6. Циклы и массивы, часть II
7. Связанные списки, часть I
8. Связанные списки, часть II
9. Стеки

Ссылка на пост с лекциями
https://vk.com/wall-54530371_65118

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Минутка общения

#social

Извечный вопрос: "Нужна ли математика программисту?"
Решили задать этот вопрос и нашим подписчикам.

Пригодились ли вам знания математики (мат. анализ, диф. уравнения, теория вероятности и другие мат. дисциплины) в профессиональной разработке? Как часто эти знания приходилось использовать?

Проголосовать можно по ссылке 
http://vk.com/wall-54530371_65728

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Рекурсия. Тренировочные задачи

#algorithms

Рекурсия достаточно распространённое явление, которое встречается не только в областях науки, но и в повседневной жизни. Например, эффект Дросте, треугольник Серпинского и т. д. Один из вариантов увидеть рекурсию – это навести Web-камеру на экран монитора компьютера, естественно, предварительно её включив. Таким образом, камера будет записывать изображение экрана компьютера, и выводить его же на этот экран, получится что-то вроде замкнутого цикла. В итоге мы будем наблюдать нечто похожее на тоннель.

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

https://habrahabr.ru/post/275813/

Ссылка на пост http://vk.com/wall-54530371_65712

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Самые популярные посты за эту неделю

#weekly

Подборка уроков по ООП от Владимира Моженкова
http://vk.com/wall-54530371_65154

Курс лекций по сетевой безопасности факультета ВМК МГУ.
http://vk.com/wall-54530371_65382

Компьютерные сети. Принципы, технологии, протоколы. Учебник (2016)
http://vk.com/wall-54530371_65472

HTML5. Разработка приложений для мобильных устройств (2015)
http://vk.com/wall-54530371_65554

JavaScript и JSON
Первая часть http://vk.com/wall-54530371_65329
Вторая часть http://vk.com/wall-54530371_65456

Сложность вычислений и основы криптографии
http://vk.com/wall-54530371_65495

Трехчасовое видео о создании десктопного клона Flappy Bird на Java, который будет работать на Windows, Mac и Linux
http://vk.com/wall-54530371_65012

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Курс по Unix-подобным операционным системам

#unix

Курс посвящён рассмотрению различных аспектов использования Linux-based операционных систем. В курсе рассматриваются:

- Структура и архитектура некоторых современных дистрибутивов Linux
- Вопросы установки и начальной настройки Linux-based операционных систем
- Вопросы повседневного использования Linux-based операционных систем
- Подход к использованию UNIX-system («UNIX way»)
- Основные понятия и концепции современных Linux-based дистрибутивов

Курс ориентирован на слушателей, имеющих малый практический опыт в использовании UNIX-like систем и современных Linux-based дистрибутивов операционных систем.

1. Вводная лекция
2. Что такое Linux? «Инварианты»
3. Терминал и командная строка
4. FHS и процессы.
5. Права доступа
6. Установка ПО в Linux
7. ПО не из хранилища дистрибутива
8. Вопросы лицензирования
9. Конфуцианство и кантианство

10. Хранилище и дистрибутив
11. Минимальный набор знаний
12. udev, DBus, PolicyKit
13. Выбор дистрибутива

Все лекции доступны по ссылке
http://vk.com/videos-54530371?section=album_56085723
Ссылка на пост http://vk.com/wall-54530371_65586

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Вебинар о философии сетевых игр и создание многопользовательской игры на Unity3D.

#gamedev

Программа вебинара:
- Что такое сетевая игра.
- Что такое ping, localhost и сокеты.
- Пример простого сетевого взаимодействия.
- Каким образом работают игры с выделенным сервером.
- Проектируем сетевую игру.
- RPC и как создается чат.
- Обзор сетевых движков Photon, UNet.

Ссылка на пост с вебинаром http://vk.com/wall-54530371_65545

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Эффективные алгоритмы и коммуникационная сложность
Лектор: Иван Михайлин

#fundamental

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

Ссылка на пост с лекциями
 http://vk.com/wall-54530371_65536

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Сложность вычислений и основы криптографии

#fundamental

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

Ссылка на пост http://vk.com/wall-54530371_65495

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

JavaScript и JSON
Часть вторая (2/2)

#javascript #web
Первая часть http://vk.com/wall-54530371_65329

10. Коммуникация между сайтами с помощью JSON
11. Использование jQuery для парсинга данных
12. Подготовка файла HTML
13. Создание шаблонов JavaScript с помощью mustache.js
14. Ротация с помощью jQuery Cycle
15. Стилизация нашего приложения
16. Следующие шаги

Ссылка на альбом http://vk.com/videos-54530371?section=album_56085719
Ссылка на пост http://vk.com/wall-54530371_65456

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Курс лекций по сетевой безопасности факультета ВМК МГУ.

#networks

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

1. Вводная лекция.
2. Авторизация и аутентификация.
3. Протоколы уровня приложений.
4. Межсетевые экраны.
5. Системы IDS и IPS.
6. Основы веб-технологий — часть 1.
7. Основы веб-технологий — часть 2.
8. Уязвимости в веб-приложениях: SQLi.
9. Уязвимости в веб-приложениях: XSS.
10. Security Enhanced Linux.

Все видео доступны по ссылке
http://vk.com/videos-54530371?section=album_56085720
Ссылка на пост http://vk.com/wall-54530371_65382

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Хотели бы вам посоветовать хороший международный каталог каналов @worldchannels. В нём публикуются только отборные авторские, уникальные и новостные каналы на русском и английском языках. И наш канал тоже там опубликовали, что весьма радует.

telegram.me/worldchannels

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Немного о CSS-препроцессорах

#web

Если вы пишете большое количество CSS кода, то препроцессор может значительно сэкономить много драгоценного времени. Использование таких инструментов, как Sass, Less, Stylus или PostCSS упрощают работу над большими и сложными стилями, делая их более понятными и легко поддерживаемыми.

Препроцессоры дают ряд преимуществ по сравнению с обычным CSS:
- Наличие переменных;
- Динамически рассчитываемые значения;
- Миксины, которые позволяют повторно использовать и комбинировать стили. Они даже поддерживают передачу аргументов;
Функции, которые дают вам ряд полезных утилит для работы с цветом, конвертацией изображений в data-URI и др.
- И многое другое.

Представляем вашему вниманию статьи, которые помогут вам ознакомится с такой такой замечательной вещью как CSS-препроцессоры:

Sass за 15 минут
http://webtackles.ru/css/learn-sass-in-15-minutes/

Less за 10 минут
http://webtackles.ru/css/learn-less-in-10-minutes-or-less/

Ссылка на пост http://vk.com/wall-54530371_65256

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

@ruschannel - каталог каналов.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Статья по диаграммам использования (use-case) UML, применяемых при разработке технического задания и его согласования с заказчиком:

http://pro-prof.com/archives/2594

#db #oop

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

10 полезных советов для отладки и избежания неполадок в программировании

#common

1. Оператор печати
2. Отладчик
3. Система отслеживания ошибок
4. Верификация программ
5. Контроль версий
6. Модульность
7. Автоматизированные тесты
8. Метод «Плюшевый мишка» (или отладка «Резиновая уточка»)
9. Пишите комментарии к коду
10. Пишите документацию

Полная статья на английском языке доступна по ссылке ниже
http://goo.gl/kk1Tmx
Ссылка на пост http://vk.com/wall-54530371_65138

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Шпаргалка по Kotlin — java-help.ru/kotlin-cheat-sheet

Краткий экскурс в язык программирования Kotlin.

#cheatsheets #java

Читать полностью…
Subscribe to a channel