Секреты Python. 59 рекомендаций по написанию эффективного кода (2016)
Автор: Бретт Слаткин
#python #book
Язык Python завоевал популярность благодаря тому, что позволяет новичкам почти сразу же браться за написание кода. Однако достигнуть цельного понимания уникальных возможностей Python чрезвычайно трудно, особенно если учесть, что на этом пути вас подстерегает множество скрытых ловушек.
Книга приобщит вас к стилю программирования, выдержанному в истинном "духе Python", и поможет научиться писать исключительно надежный и высокопроизводительный код. Используя сжатый стиль изложения, пионером которого был Скотт Мейерс, автор приводит 59 описаний лучших методик программирования, дает советы и показывает кратчайшие пути решения различных задач программирования на Python, дополняя их реалистичными примерами кода.
Опираясь на свой многолетний опыт создания инфраструктурных проектов для компании Google, автор раскрывает секреты малоизвестных аспектов и идиом Python, радикально влияющих на поведение и производительность кода. Вы ознакомитесь с наилучшими способами решения ключевых задач, что облегчит понимание, сопровождение и усовершенствование вашего кода.
Основные темы книги:
— Действенные рекомендации по основным аспектам разработки ПО с использованием версий Python 3.x и 2.x, дополненные подробными описаниями и примерами.
— Лучшие методики написания функций, снижающие вероятность появления ошибок в коде.
— Точное описание вариантов поведения с помощью классов и объектов. — Рекомендации относительно того, как избежать скрытых ошибок с помощью метаклассов и динамических атрибутов.
— Эффективные подходы к решению проблем, связанных с одновременным и параллельным выполнением множества операций.
— Усовершенствованные приемы работы со встроенными модулями Python.
— Инструментальные средства и лучшие методики коллективной разработки.
— Решения по отладке, тестированию и оптимизации кода.
http://vk.com/wall-54530371_92727
30 ресурсов с головоломками и задачами по программированию
#common
Ссылки на сайты и книги, с помощью которых вы можете улучшать свои навыки программирования вне школы, университета или работы.
http://theasder.github.io/learning/2016/01/21/where-can-I-find-programming-puzzles-and-challenges.html
Зачем программисту Linux
#linux
Очень часто можно услышать вопрос - "А чем хороша Ubuntu?", "А зачем мне Linux?", "А какой Linux мне выбрать?" и т.д.
В рамках вебинара я постараюсь осветить плюсы использования данной ОС. В часности, мы рассмотрим, как она помогает в повседневной жизни программисту.
Будут раскрыты следующие темы:
— Почему Ubuntu;
— Как установить Ubuntu;
— Как поставить программу в Ubuntu;
— Почему нет антивируса?
— Какие есть программы?
— Консоль и почему она нас пугает;
— Соединяемся с сервером по ssh.
https://vk.com/wall-54530371_92219
Самые популярные посты за эту неделю
#weekly
1. Взлом сайтов на практике
Первая часть: https://vk.com/wall-54530371_91753
Вторая часть: https://vk.com/wall-54530371_91838
2. Основы SQL
https://vk.com/wall-54530371_91683
3. Серия уроков «Научись Linux»
https://vk.com/wall-54530371_91967
4. Видеокурс по основам математики от Computer Science Center
Первая часть: https://vk.com/wall-54530371_91325
Вторая часть: https://vk.com/wall-54530371_91700
5. Курс лекций по администрированию Linux
https://vk.com/wall-54530371_91784
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования (2016)
https://vk.com/wall-54530371_91532
7. Цикл статей по ООП в JavaScript
https://vk.com/wall-54530371_91952
8. LearnGitBranching — это приложение созданное, чтобы помочь новичкам постичь мощные возможности работы с git без необходимости читать кучу книг.
https://vk.com/wall-54530371_91679
Наткнулся недавно на отличный канал и спешу с вами поделиться. @wow_news — это канал, где каждый день для его читателей собираются самые удивительные и невероятные новости всего мира. Ежедневные подборки поднимут вам настроение или заставят застыть от изумления. Подписывайтесь, рекомендую!
Серия уроков «Научись Linux»
#linux
1. Установка Linux.
2. Команды cd, pwd и ls; домашняя и корневая папки.
3. Откуда берутся команды в Linux.
4. Команды для работы с файлами.
5. Флаги к командам.
6. Пользователи и права доступа.
7. Pipeline.
8. .bashrc и команда alias.
9. Настройка приветствия шелла.
Ссылка на пост:
https://vk.com/wall-54530371_91967
Plarium - международная компания разработчик и издатель игр для мобильных и браузерных платформ ищет толкового Middle QA Engineer.
Подробности по ссылке — http://proglib.staya.vc/job/267?utm_source=proglib.staya.vc&utm_campaign=staya_social&utm_medium=social
HTML5. Разработка приложений для мобильных устройств (2015)
Автор: Эстель Вейл
#web #mobile #book
Создавайте сногсшибательные сайты и приложения для любых мобильных и настольных платформ. Для этого вам потребуется всего лишь добавить в ваш инструментарий веб-разработки технологии HTML5 и CSS3. Вооружившись этой практичной книгой, вы научитесь разрабатывать веб-приложения, которые не только хорошо работают на iOS, Android, Blackberry и Windows Phone, но и очень удобны в использовании.
Книга содержит множество примеров кода и разметки. Она поможет вам освоить работу с разнообразными инструментами HTML5 - в частности, с новыми веб-формами, масштабируемой векторной графикой (SVG), холстом (Canvas), localStorage и другими родственными API. Кроме того, в этом издании подробно рассмотрены таблицы стилей CSS3. Вы научитесь разрабатывать приложения, которые одинаково хорошо работают как на огромных мониторах, так и на крошечных экранах.
— Познакомьтесь с элементами HTML, синтаксисом и семантикой этого языка.
— Научитесь создавать веб-формы, отличающиеся повышенным удобством, но содержащие сравнительно немного кода на JavaScript.
— Исследуйте медийные API HTML5 для работы с графикой, видео и аудио.
— Обеспечьте работу ваших приложений в режиме оффлайн - в этом вам помогут AppCache, localStorage и другие API.
— Узнайте все необходимое о селекторах и синтаксисе CSS3.
— Досконально разберитесь в возможностях CSS3: начните использовать множественные фоновые изображения, градиенты, граничные изображения, переходы, трансформации и анимацию.
— Сделайте ваши веб-приложения более удобными, отзывчивыми и доступными.
— Проектируйте с расчетом на высокую производительность, понятность для пользователей и функциональную надежность на любых платформах.
Скачать книгу можно по ссылке:
https://vk.com/wall-54530371_91917
Взлом сайтов на практике
Часть первая (1/2)
#security
1. Вступление и конфигурирование среды
2. Сокрытие данных
3. Атаки методом грубой силы и словарные атаки
4. Блокирование аккаунта
5. Подмена веб параметра
6. Раскрытие путей и информации
7. Форсированный браузинг
8. Обратный путь в директориях
9. Разделитель параметров
Плейлист: https://www.youtube.com/watch?v=rFFdiXYKTG8&list=PLrVfDsxHOo5p18UKU7brdONax4sWmyvRB
Обсуждение: https://vk.com/wall-54530371_91753
jQuery Tips
#web #javascript
Небольшая подборка хитростей и решений наиболее распространенных проблем фронтэнда с помощью jQuery — одной из самых популярных JS-библиотек.
1. Всплывающая подсказка.
2. Сменяющиеся фото.
3. Переключение таблиц стилей.
4. Кнопки изменения размера текста.
5. Выдвигающиеся описания к фото.
6. Меню-аккордеон.
7. Меню из вкладок.
Обсуждение: https://vk.com/wall-54530371_91659
Плейлист: https://www.youtube.com/playlist?list=PLhMG9sPSjAg1LvckAUthcqYQ6k8xAPz2A
В веб-разработке есть много хитрых нюансов, которые не всегда получается учесть. Поэтому постоянно создаются различные инструменты, выполняющие рутинные задачи за разработчика.
Tproger собрал для вас подборку, в которой представлены именно такие инструменты и библиотеки для HTML, CSS и JS.
https://tproger.ru/digest/web-tools-and-libraries/
uLearn
#csharp
uLearn — это интерактивные онлайн курсы по программированию. На этом ресурсе вы найдете курсы по основам программирования на языке C#, материалы по искусственному интеллекту и машинному обучению, курс по основам компьютерной безопасности и др. К каждому уроку прилагается видео и краткие заметки в виде описания и кода. Особенно будет полезно для тех, кто только начал осваивать описанные выше технологии.
https://ulearn.me/
Видеокурс по основам математики от Computer Science Center.
Часть первая (1/2)
#fundamental
1. Теория множеств. Основные понятия теории множеств. Бинарные отношения и функции. Рефлексивность, симметричность, транзитивность. Взаимно-однозначные соответствия. Счетные множества.
2. Логика. Логика высказываний. Таблицы истинности. Пропозициональные формулы. Кванторы. Предикаты. Языки логики первого порядка. Интерпретация языков.
3. Основы комбинаторики. Основные комбинаторные величины и простейшие комбинаторные формулы. Числа сочетания (с повторениями и без повторений), числа размещения (с повторениями и без повторений), перестановки. Треугольник Паскаля. Бином Ньютона и биномиальные коэффициенты.
4. Формула включений-исключений. Формула включений-исключений. Задача о беспорядках. Задача о разбиении множеств. Мультиномиальные коэффициенты. Задачи о разбиениях чисел на слагаемые. Упорядоченные и неупорядоченные разбиения. Диаграммы Юнга.
5. Оценки и асимптотики для комбинаторных величин.Оценки и асимптотики для комбинаторных величин. Элементарные оценки факториалов, биномиальных коэффициентов и пр. Формула Стирлинга (б/д). Понятие об энтропии. Асимптотики для биномиальных коэффициентов и пр. Оценки сумм биномиальных коэффициентов.
6. Производящие функции. Производящие функции. Числа Фибоначчи. Формула Бинэ и матричное представление чисел Фибоначчи. Линейные рекуррентные соотношения с постоянными коэффициентами. Применение производящих функций для решения рекуррентных соотношений. Производящие функции и разбиения чисел. Теорема Харди-Рамануджана (б/д).
7. Экспоненциальные производящие фунцкии. Экспоненциальные производящие фунцкии. Числа Каталана, Стирлинга, Белла, Бернулли и др. Их применения.
Ссылка на обсуждение:
https://vk.com/wall-54530371_91325
Плейлист: https://www.youtube.com/watch?v=zIYfYT5THDY&list=PL-_cKNuVAYAUy7zMDOkS06_Pvn9OciImJ
Список русскоязычных YouTube-каналов для обучения веб-разработке
Добавляем в закладки!
#web #collections
1. Sorax — JavaScript, CSS, обзоры, подкасты
http://www.youtube.com/user/ArtSorax
2. webtheory — HTML, CSS, CoffeeScript, jQuery
http://www.youtube.com/user/WebTheory
3. Илья Кантор - Обучающие видео по Node.js, Express, Socket.io
https://www.youtube.com/user/iliakan/
4. loftblog — новости, обзоры, JavaScript, jQuery, CSS, HTML
https://www.youtube.com/user/loftblog
5. Веб-стандарты — доклады по современным фронтэнд-технологиям
https://www.youtube.com/user/wstdays
6. RubyScreencastsRu — скринкасты по Ruby и Ruby on Rails
https://www.youtube.com/user/RubyScreencastsRu
7. Magisters | Обучение современным профессиям — HTML5, CSS3, JavaScript, Bootstrap, PHP, Python
http://www.youtube.com/user/WebMagistersRu
8. Master-CSS — PHP, HTML, веб-дизайн
http://www.youtube.com/user/TheSWAT727
9. AutoLineX — PHP, HTML, CSS, jQuery, обзоры
http://www.youtube.com/user/IllyaLoshek
10. knowcity — PHP, HTML, CSS, JavaScript, jQuery
https://www.youtube.com/user/ecroFeGushKa
11. uWebDesign — WordPress, CSS, Sass, обзоры, подкасты
http://www.youtube.com/user/uwebdesign
12. webformyself — CSS, HTML, обзоры
https://www.youtube.com/user/webformyself
13. HexletUniversity - курсы и лекции по JavaScript, Java, Computer Science
https://www.youtube.com/user/HexletUniversity
14. JSPirates — JavaScript, Node.js
https://www.youtube.com/channel/UCoQvColVafC905L1wyqfjcg
15. Procode — HTML5, GameDev
https://www.youtube.com/user/easygamedev
16. Fronthub — доклады конференций Front-hub
https://www.youtube.com/channel/UComo38nPQVCnkZFadQ9uc2A
17. 404fest — доклады конференций
https://www.youtube.com/user/404fest
18. MoscowJS - доклады конференций MoscowJS
https://www.youtube.com/user/moscowjs
19. Технопарк Mail.Ru Group - Канал проекта Технопарк Mail.Ru Group
http://www.youtube.com/user/TPMGTU
20. Яндекс Фронтенд — Школа разработки интерфейсов Яндекса
https://www.youtube.com/channel/UCMtlICYxr6Dz_PG9_SVqRYQ
21. Ros Ivanov — БЭМ, PostCSS, Jade, инструменты
https://www.youtube.com/channel/UC-_16EgYOzinLxegLrTMkTA
22. roman01la — Функциональный JavaScript, ClojureScript, React & Flux, Accessibility
https://www.youtube.com/user/roman01la
Минутка общения
#social
Языков программирования, используемых для серверной веб-разработки, достаточно много: PHP, Ruby, Java, Python, Perl и другие.
В техническом плане для большинства проектов нет каких-либо ограничений при выборе языка, то есть практически любой функционал сайта или приложения может быть успешно реализован на любом из них, поэтому выбор языка не накладывает никаких лимитаций на проект.
Однин из самых распространенных языков веб-программирования на сегодня является PHP, поэтому при его использовании достаточно просто найти как отдельных программистов, так и аутсорсинговые компании, которые смогут работать над проектом. Из минусов — порог вхождения в сферу PHP-программирования невысок, поэтому на рынке немало дилетантов. Если рассматривать другие языки из представленного выше списка, то средний уровень специалистов на кадровом рынке, как правило, выше и стоят их услуги несколько дороже.
А какой язык программирования используете вы для backend-разработки?
Проголосовать вы можете по ссылке:
https://vk.com/wall-54530371_91006
Перевод книги Python Cookbook от нашего подписчика Бориса Уварова (2013)
Автор оригинала: Дэвид Бизли
#python #book
Очень полезный сборник рецептов от одного из ведущих популяризаторов Python Дэвида Бизли. Каждый рецепт сопровождается экскурсом во внутреннюю кухню работы Python, поэтому книга полезна не только с практической точки зрения, но и как теоретическое пособие по самым нетривиальным моментам языка.
Репозиторий перевода доступен по ссылке:
https://github.com/borisuvarov/python-cookbook-ru и принимает пулл-реквесты.
К посту прикреплена полная версия на английском языке:
https://vk.com/wall-54530371_90960
Видеокурс по основам объектно-ориентированного программирования
#oop #novice
1. Инкапсуляция
2. Наследование
3. Дочерний класс в памяти
4. Агрегация и композиция
5. Класс Обёртка
6. Множественное наследование
7. Простая фабрика
Плейлист: https://www.youtube.com/watch?v=2bd8Ac8NGXg&list=PLY7PmJJFH5nRcWGKbgl9N7txM5YLtela6
Обсуждение: https://vk.com/wall-54530371_92626
Идеальный программист. Как стать профессионалом разработки ПО (2012)
Автор: Роберт К. Мартин
#fundamental #book
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это - основа для них. Потому что они являются профессионалами своего дела.
В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как "Дядюшка Боб"), автор бестселлера "Чистый код", рассказывает о том, что значит "быть профессиональным программистом", описывая методы, инструменты и практики разработки "идеального ПО". Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга - больше, чем описание методов, она о профессиональном подходе к процессу разработки.
Ссылка на книгу:
https://vk.com/wall-54530371_92484
Видеокурс по запросам в MySQL
#sql #db
1. Работа с базами данных
2. Работа с таблицами
3. Модификация таблиц
4. Индексы.Уникальные значения. Внешние и первичные ключи
5. Добавление, удаление, измение записей в таблицах
6. Выборка из таблиц. Оператор SELECT
7. Группировки GROUP BY и HAVING
8. Полнотекстовой поиск
9. Агрегирование
Обсуждение: https://vk.com/wall-54530371_92137
Плейлист: https://www.youtube.com/playlist?list=PL5KGx5_ykLX8NrmlQTutJ__TH7pnC4qXB
Сodecademy
#common
Действительно удобный сервис для изучения программирования.
Этот сервис отличается от других большим количество языков: JavaScript, Python, PHP, Ruby, Java, а также курсы по HTMl и CSS, созданию сайтов, и различным js-фреймворкам и др. Сайт имеет удобный интерфейс, что еще больше помогает в обучении.
https://www.codecademy.com/
Цикл статей по ООП в JavaScript
#oop #javascript #collections
1. Что такое объект, или почему утверждение: "Всё в JavaScript является объектом" неверное
http://goo.gl/ygJ6qn
2. Основы работы с объектами: чтение и запись свойств, цикл for .. in, как перебрать объект с помощью Object.keys() и методов массивов
http://goo.gl/VPN1fB
3. Функции конструкторы и ключевое слово this
http://goo.gl/V4g05p
4. Наследование объектами свойств и методов с помощью прототипов
http://goo.gl/jvujec
5. Объектно-ориентированный JavaScript в действии: пример создания библиотеки для валидации данных с возможностями последующего расширения функционала и встроенным строковым шаблонизатором
http://goo.gl/nNh9eW
6. Введение в использования наследование, или как передавать свойства от одного конструктора к другому
http://goo.gl/mxVKxJ
7. Наследование на практике: дорабатываем библиотеку для валидации данных с использованием наследования
http://goo.gl/yhz537
8. Дескрипторы в JavaScript: всё про Object.defineProperty
https://goo.gl/rj5LVH
9. Классы в ES6: нет, ничего не изменилось
https://goo.gl/LxCgLx
Ссылка на обсуждение:
https://vk.com/wall-54530371_91952
Введение в программирование на TypeScript
#javascript #web
На этом вебинаре вы познакомитесь с языком программирования TypeScript. Мы рассмотрим, почему вам стоит присмотреться к этому языку, как он может помочь уменьшить головную боль от программирования на JavaScript и повысить надежность вашего кода. Рассмотрим, как начать работать с TypeScript в Visual Studio Code, Visual Studio и WebStorm. Познакомимся с грамматикой и основными свойствами TypeScript. Вместе мигрируем небольшой Angular 1.x проект из JavaScript на TypeScript.
Целевая аудитория: Начинающие и опытные JavaScript разработчики, рассматривающие возможность добавление статической типизации в свои проекты.
https://www.youtube.com/watch?v=YvA1AkRXiPo
Обсуждение: https://www.youtube.com/watch?v=YvA1AkRXiPo
Курс лекций по администрированию Linux
#linux
1. Вводное занятие.
2. Терминология. Средства удаленного доступа. Вход в систему.
3. Алиасы, функции, bash_profile, bashrc и ssh-keys.
4. Права доступа, AAA/PAM, настройки системы.
5. Linux и сеть (часть 1-я).
6. Linux и сеть (часть 2-я).
7. Управление системой: софт, сервисы, логи.
8. DNS.
9. LAMP, http-сервер, nginx, apache.
Плейлист: https://www.youtube.com/watch?v=dQjUH0kTq8w&list=PLrCZzMib1e9pun72f4KmFopzPs5pGB85_
Обсуждение: https://vk.com/wall-54530371_91784
Рекомендую всем канал @freakbook - там каждый вечер выходит дайджест лучших статей дня, которые автор канала отбирает более чем из 100 популярных русскоязычных изданий. Очень удобно и познавательно!
Читать полностью…Нужен Web Front-End разработчик в компанию Cerebro для работы над «Стаей» и другими проектами.
Подробности по ссылке — http://proglib.staya.vc/job/269
Приемы объектно-ориентированного проектирования. Паттерны проектирования (2016)
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
#oop #design_patterns #book
В предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Паттерны появились потому, что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Авторы излагают принципы использования паттернов проектирования и приводят их каталог. Таким образом, книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с легкостью разрабатывать собственные приложения.
Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
http://vk.com/wall-54530371_91532
@englesson - лучшие материалы для начинающих и продолжающих изучение английского: уроки, интересные подборки фраз, тексты и цитаты на английском языке с переводом. Учите английский с удовольствием!
Читать полностью…Минутка общения
#social
Решили узнать самый популярный язык программирования среди подписчиков Библиотеки программиста.
Так как в данном опросе можно выбрать только один вариант из представленных, то указывайте в комментарии другие, часто используемые вами языки.
На каком языке вы программируете чаще всего?
Проголосовать можно по ссылке:
https://vk.com/wall-54530371_91347
Материалы для углубленного изучения C#
#csharp
1. Обобщенное программирование.
2. Делегаты.
3. Лямбды.
4. Методы-расширения (Extension Methods).
5. LINQ.
6. Nullable типы.
7. Динамическое программирование.
8. Отлов исключений.
9. Асинхронное программирование.
Ссылка на плейлист: https://www.youtube.com/playlist?list=PLzomAkQSuUyJ2oG-n1Tn5cm6HbjQyok8A
Обсуждение: https://vk.com/wall-54530371_91123
Хочу посоветовать вам канал, который поможет в изучении английского. У @dailyeng хороший контент, адекватная периодичность и удобная подача. Подписывайтесь!
Читать полностью…Как научиться программировать?
#novice #common
"Хочу стать программистом, но не знаю, как начать и с чего начать" — писали многие из вас нам. Мы подготовили развернутый ответ на эту тему, скомпоновав все важные идеи и мысли от матерых программистов c обсуждения на Quora.
http://theasder.github.io/learning/2015/01/25/let-us-learn-program.html