Русский
Русский
English
Статистика
Реклама

Книги по программированию

Библиотека Frontend-разработчика, часть 2 Интернет-ресурсы

27.12.2020 20:07:49 | Автор: admin

Предисловие к статье

В прошлой части мы рассмотрели книги, которые дают понимание основ языка, которые в некоторых случаях вводят новичка в сферу, а в некоторых помогают профессионалам разобраться как именно устроен язык и как именно он работает. Но мне верно подметили в комментариях - нельзя молиться только на книги. Есть огромное количество интернет-ресурсов, другие источники информации, помогающие понять иногда странную, но очень интересную философию этого "замечательного" языка.

learn.javascript или народная документация

learn.javascript

Гигантский проект Ильи Кантора, который начинался с сайта javascript.ru, а перерос в этот учебник, которым пользуется или пользовался каждый frontend-разработчик . Этот ресурс можно назвать одним из самых лучших за его краткость и понятно изложенный материал.

Учебник поделен на несколько частей - тематических разделов:

  1. Язык программирования javascript

  2. Браузер: документ, события, интерфейсы

  3. Тематические разделы (кратко обо всем)

Главный плюс учебника, как и любого сайта, который не забывают поддерживать - обновление информации. Об учебнике не забывают, его часто обновляют, он пользуется спросом и популярностью. Также он постоянно расширяется, появляются курсы, новые разделы, такие как "Скринкасты" и "Тесты знаний", где можно быстро проверить основы языка и оценить свой уровень.

Использовать ресурс можно в:

  1. подготовке к собеседованиям

  2. Обучении. На первое время - лучший ресурс для вхождения в сферу

  3. повторении. Иногда стоит открывать сайт и просто листать.

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

MDN

MDN

Что такое MDN? Это документация, своего рода википедия, которая предоставляет информацию обо всех открытых стандартах в веб-технологиях. Это справочник, который, как по мне, нужно использовать только тогда, когда нужно решить проблему. Не стоит сидеть за ним и учить каждую статью. Здесь нужно использовать "ленивую" загрузку знаний, использовать справочник по требованию.

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

LeetCode

Leetcode

Начитавшись книжек, насмотревшись справочников - время практиковаться. И нет места лучше для практики, чем leetcode.

Что такое leetcode? Это место, где вас заставят думать. Где заставят писать код, который должен пройти сотни тестов. Другими словами - полигон для собеседований. Здесь выложены задачи, которые можно решать для того, чтобы потом пройти алгоритмическую секцию в той компании с красно-белым лого, или просто "качать скилл" для будущих собеседований. Сейчас модно просить решить задачку на техническом интервью - leetcode научит делать это без проблем.

На сайте представлены как бесплатные, так и платные услуги. С бесплатным аккаунтом вы получите доступ к очень большому числу задач, стандартным на какие-то темы (массивы, строки и т.д.) челленджам, и ежемесячным марафонам , где суть марафона - ежедневное решение задач. За платную подписку вы получаете доступ к задачам, которые дают на собеседованиях в топовых компаниях, доступ ко всем задачам, к подробным объяснениям, большему количеству челленджей.

Я пробовал и другие тренажеры - тот же codewars. Но как по мне, тут задачи гораздо сложнее, гораздо интереснее, они смотрят в сторону классических алгоритмов и структур. Для решения задач выше среднего нужна неплохая алгоритмическая подготовка, как практическая, так и теоретическая. Для теории помогут книги - о них я напишу в следующем посте.

Что решать - решать вам. Но я смотрю в сторону leetcode.

Telegram-каналы

Телеграм уже не просто мессенджер - это целый "пакетный" менеджер, который позволяет накидывать нам нужные расширения под свои нужды. И js интегрировался в telegram, там есть большое количество интересных ресурсов. Описывать их - сложно, поэтому я просто представлю их списком, а вы для себя сами решите - что полезнее всего.

  1. JavaScript - канал про новое в мире веба

  2. Frontend Info - много информации про react, про js

  3. For Web - лучший канал про веб - очень много статей про весь веб в целом, постоянно появляются статьи про js, про браузеры и индустрию в целом

  4. JavaScript test - тесты на знание языка, которые выполнены в форме викторины

  5. Иван Акулов про разработку - про разработку на react. Интересный канал

  6. Фронтенд из Трущоб

  7. Frontend Interview

  8. Верстальщик от бога

  9. Senior Frontend

  10. <Easy-Peasy Code/>

  11. Frontend Песочница

  12. Javascript задачи с собеседований

  13. Бот от Яндекса - @YaSuggestionsBot . Подбирает статьи и материалы, в зависимости от ваших требований

Заключение

Невозможно перечислить всех авторов в интернет-пространстве, перечислить все сайты или блоги - их бесконечное множество. Взять тот же habr, который вы сейчас читаете. Многие скажут, что "он уже не торт", но и тут есть статьи, которые вмещают в себя столько информации, сколько не вмещают некоторые книги.
Тут не указаны такие сайты как caniuse, документации по фреймворкам и библиотекам - это все дополнение к основному пирогу.
Часто можно услышать фразу "Разработчик должен уметь гуглить" и в этой фразе есть огромный смысл, ведь вся наша работа заключается в постоянном повышении квалификации, увеличении количества компетенций для того, чтобы стать настоящим специалистом в своей сфере или перейти в другую сферу. Поэтому я призываю искать и изучать новое, а я, хоть чуть-чуть, помогу в поиске нового и интересного.

Спасибо за внимание!

Подробнее..

Библиотека Frontend-разработчика, часть 3 Литература уровня Middle и выше

09.01.2021 14:22:36 | Автор: admin

Предисловие

Явление деления разработчиков на уровни очень распространено. Даже в вакансиях чаще всего пишут не просто "Frontend-разработчик", а более развернуто - "Junior/Middle/Senior/${место для вашей должности} Frontend-разработчик". Для чего? С помощью такого деления легче делегировать задачи в команде. У каждого разработчика своя особая матрица компетенций, свои навыки, которые он оттачивал месяцами, а то и годами. С помощью такого деления процесс разработки ускоряется в разы.
Вообще на рынке (я смотрю на рынок стран СНГ) по состоянию на начало 2021 года среди Frontend-разработчиков имеют место быть такие должности (от низшего уровня, к наивысшему и без привязки к инструментам/библиотекам)

  • Intern Frontend-developer - другими словами - стажер

  • Junior Frontend-developer - уровень выше начального, уже более менее самостоятельная единица

  • Middle Frontend-developer - самостоятельная единица, командный игрок, много умеет, но чаще всего в одной сфере / направлении. Через тернии к звездам или стремится к Senior

  • Senior Frontend-developer* - старший, чаще всего в компаниях самый опытный. Человек, который попробовал многие инструменты, много может, много пробует.

  • Architector Frontend-developer** - человек, который часто занимается вопросами выбора технологий, решений в вопросах архитектуры будущего приложения

  • TeamLead - глава команды - распределеяет задачи, связующее звено между командой разработки и бизнесом. Хороший управленец и разработчик

* - он может быть также ведущим разработчиком, который выполняет все те же функци, что и выполнял senior, но при этом отчасти может выполнять функции архитектора. Я видел компании, где понятия "ведущий разработчик" и "Senior developer" отождествлялись.

** - Архитектор - достаточно размытое понятие. Иногда, в командах нет архитектора, но при этом есть techlead. Если загуглить, то он решает все те же задачи, что и архитектор.

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

Но даже несмотря на все эти условности, существует литература по уровням. Стажеру нет смысла брать книги с полки техлида о микросервисной архитектуре - все придет постепенно. Сейчас у стажера есть свои, не менее важные задачи, важные книги, материалы, интернет-ресурсы, которые он должен изучить.

Эта статья как раз о том сборнике книг для разработчиков уровня "Middle и выше".

Секреты Javascript Ниндзя. Джон Резиг, Беэр Бибо, Иосип Марас

У каждой книги есть своя цель, и у этой книги она тоже есть. Цель - напомнить вам о том, что есть в чистом js, что есть в браузере, что такое DOM и какие есть возможности у него.
Она буквально вам говорит: "Отвлекитесь от фреймворков и библиотек - посмотрите что умеет язык без этого!".
На страницах есть краткая информация для повторения основных понятий в js, некоторых стандартных приемов работы, например, с событиями. Все это приправлено от души хорошими примерами кода.
Книга хороша своим грамотным делением на главы и простым языком изложения. Тот самый случай, когда на ночь можно почитать не только с удовольствием, но и с пользой.

Рефакторинг кода на Javascript. Мартин Фаулер

Мы поняли как работают события, что такое замыкания, как использовать генераторы, как убежать от адской пирамиды вызовов и самое главное - с помощью чего. Теперь время писать код. Вот только мы не знаем самого главного в любом коде - способов его организации.
На просторах интернета и в книгах, о которых я напишу ниже вы сможете увидеть такие понятия как DRY, SOLID, KISS, YAGNI - это все общие положения, немного размытые, о построении архитектуры кода, приложения.
В Книге Фаулера идет полное описание каждого действия в момент рефакторинга кода. И да, Мартин Фаулер описал все способы - поверьте, Фаулер докопался и описал даже способ рефакторинга "Вынос в функцию". По факту - книга полноценный справочник или очень хорошая настольная энциклопедия, которая служит на благо архитектуры вашего кода.

Javascript для профессионалов. Джон Резиг.

Джон Резиг решил не вдаваться в подробности и не стал делать как многие авторы - описывать в первых главах все ключевые зарезервированные слова, встроенные методы перебора массивов и т. д.
Книга Резига имеет скорее обзорный характер, она рассказывает о языке в целом, о его перспективах, некоторых интересных и уже всеми забытых методах валидации форм, об интересных моментах в работе с событиями в браузерах и о браузерах в целом. Не скажу, что это мега-полезная книга. Книга скорее служит исторической справкой об языке. Может быть, у меня сложилось такое ощущения, потому что я первой прочел "Секреты Javascript ниндзя". В той книге информации было как-то больше, но обращу внимание на начало второго абзаца - Труд Резига имеет обзорный характер. Возможно, в этом есть свои плюсы.

Погружение в Паттерны Проектирования от RefactoringGuru

А что такое паттерны?

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

Взято с RefactoringGuru

Я уже говорил об DRY, SOLID, KISS, YAGNI. В электронной книге или на официальном сайте вы сможете ознакомиться с данными понятиями более подробно.
Авторов можно поддержать - купить электронную версию, что я советую всем сделать. Труд был проделан огромадный. Я всегда был сторонником идеи "Если можешь объяснить ребенку что-то - значит ты владеешь этим на все 100". Книга "Погружение в Паттерны Проектирования" будет понятна наверное даже ребенку, потому что все очень подробно описано как в главах об архитектуре кода, так и в главах про устройство и построение архитектуры всего приложения.

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

Чистая архитектура. Искусство разработки программного обеспечения. Роберт Мартин

Да, последние книги про архитектуру, но иначе никак - разработчик не должен писать код ради кода, он должен думать о пригодности этого кода в будущем. Даже не так - разработчик должен писать код ради бизнеса. А чтобы он был ради бизнеса, он должен быть поддерживаемым в будущем.
Роберт Мартин писал книгу не для Frontend-developer`ов, а для всех разработчиков и им сочувствующих. Мартин объяснил почему стоит уделять внимание архитектуре, как проводить архитектурный рефакторинг, с основными принципами, о которых также написано в refactoringGuru. (в refactoringGuru, как по мне, более подробно раскрыты некоторые моменты).

Вопрос архитектуры приложений всегда для нас будет стоять ребром, потому что размер приложений с каждым днем увеличивается, а следовательно увеличивается их сложность. Если мы изначально будем строить неструктурированный продукт - бизнес загнется, а вместе с ним и мы с вами.

Заключение

Лучший код там, где нас нет. Лучший код тот, который мы не писали. Любой код, который напишет один человек всегда будет заставлять другого напрягать голову и читать его.
Именно поэтому в этой части, я уделил больше внимания архитектуре приложений, а не возможностям функционального, структурного, объектно-ориентированного программирования на javascript.
Уделите время на архитектуру - она поможет другому разработчику чувствовать себя увереннее в вашем коде.

Спасибо за внимание!

Подробнее..

С каких книг можно начать изучать программирование (Python, C, C, Java, Lua,)

05.01.2021 14:11:03 | Автор: admin

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

Данная статья посвящена вопросу, который волнует большинствоначинающих программистовиробототехников(именно тех робототехников, кто готов постичь премудрости сложных систем и достич конструкторских решений как вBoston Dynamics).

Для начинания есть несколько путей:

  • запись в кружок или на курс

  • обучаться по книгам и документации

  • обучаться по видеороликам

Выбираем кружки и курсы.

Мой совет использовать и сочетать все три варианта. Какой курс или кружок выбрать необходимо решать исходя из того что вы уже знаете.
Если вам мало лет и вы не знаете ничего из робототехники и механики и автоматики, то вам подойдут курсы, где необходимо постичь основы сборки механических конструкций и применение простой автоматики для реализации работы механизма.
Для детей 7 -15 лет лет подойдут все кружки связанные с робототехникой, авиомоделирование и судомоделированием. Для взрослых людей есть также курсы робототехники, но не так много это связано с тем что для взрослого человека нужно давать более наукоёмкую информацию и стараться поднимать уровень его опыта до полупрофессионального и профессионального, а это не каждый преподаватель может, так как само доп. образование заточено под детей, а не под производство.

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

Я часто записываюсь на дистанционные курсы. Для начинающих лучше попробовать бесплатные. Например на Stepik есть огромное количество курсов.
Например, есть пару моих:
По основам программирования на python

По основам робототехники на базе Lego EV3

Курсов там огромное количество выбирай на свой вкус.

Если вы хотите создавать игры, то можете воспользоваться электронной версией книгиСоздание игр в Blender.

Выбираем книги для обучения программированию и робототехники

Второй вариант это обучаться по книгам. Для начала, я рекомендую обзавестись энциклопедиями по таким разделам, как математика и физика.

Почему энциклопедии? Это связано с тем, что энциклопедии содержат достаточно полную информацию о всех направления науки и неплохое разъяснение по той или иной теме кратко, но доступно. Например, я пользуюсь энциклопедиями по математике и физике для детей Аванта+

Энциклопедия Аванта по математике

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

Из книг по программированию рекомендую начать с основ. Например, Джейсона Бриггса Python для детей.

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

В качестве продолжения, могу рекомендовать данные книги по программированию. Все они связаны с математикой, 3D координатами, списками, функциями и классами1 из 2

Как уже и писал ранее python универсален и подойдёт для изучения в робототехники.

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

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

Есть книга для самых маленьких, которым предстоит знакомится с устройствами.1 из 2

Если вам будет под силу все эти книги, то можете смело приступать к более сложным вещам: компьютерное зрение и машинное обучение.

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

Если же вам нравятся языки со статической типизацией, то можно взять что по C++

Данная книга для студентов

Также есть хорошие книги по Delphi

Эта книга немного устарела, но коды рабочие для новых версий.

Если ваша мечта касается создания игр, то можно изучить C#на базе Unity.

Всё в ваших руках. Если вы горите этой идей, то вы обязательно достигните своей цели.

И напоследок, моё видео о выборе книг для программирования.

Подробнее..

Издательство Питер. Колонка редактора

03.06.2021 12:19:11 | Автор: admin
image

Привет, Хаброжители! Предлагаем ознакомиться с краткими обзорами сданных в типографию новинок.

image

JavaScript для глубокого обучения: TensorFlow.js


Пора научиться использовать TensorFlow.js для построения моделей глубокого обучения, работающих непосредственно в браузере!

Умные веб-приложения захватили мир, а реализовать их в браузере или серверной части позволяет TensorFlow.js. Данная библиотека блестяще портируется, ее модели работают везде, где работает JavaScript.

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

В этой книге:

Обработка языка и изображений в браузере.
Тонкая настройка моделей машинного обучения на основе клиентских данных.
Создание текста и изображений с помощью генеративного глубокого обучения.
Примеры исходного кода, которые можно изменять и тестировать.

Оформить предзаказ.

image

Делай как в Google. Разработка программного обеспечения


Автор(ы): Титус Винтерс, Том Маншрек, Хайрам Райт

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

В чем же разница между программированием и программной инженерией? Как разработчик может управлять живой кодовой базой, которая развивается и реагирует на меняющиеся требования на всем протяжении своего существования?

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

Вы изучите фундаментальные принципы, которые компании разработчиков ПО должны учитывать при проектировании, разработке архитектуры, написании и сопровождении кода.

Оформить предзаказ.

image

Программируем на C# 8.0. Разработка приложений


Автор(ы): Иэн Гриффитс

C# универсальный язык, который может практически всё! Иэн Гриффитс рассказывает о его возможностях с точки зрения разработчика, перед которым стоит задача быстро и эффективно создавать приложения любой сложности.

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

В этой книге вы:

  • Узнаете, как C# поддерживает классы, настраиваемые типы, коллекции и обработку ошибок.
  • Сможете создавать высокопроизводительный код с эффективным использованием памяти с помощью типов Span<Т> и Memory<Т>.
  • Научитесь запрашивать и работать с объектными моделями, базами, потоками данных и XML документами.
  • Примените многопоточность, чтобы задействовать всю мощь параллельной обработки.
  • Узнаете, как функции асинхронного языка помогают улучшить скорость отклика и масштабируемость приложений.

Оформить предзаказ.

image

Распределенные данные. Алгоритмы работы современных систем хранения информации


Автор(ы): Алекс Петров

Когда дело доходит до выбора, использования и обслуживания базы данных, важно понимать ее внутреннее устройство. Как разобраться в огромном море доступных сегодня распределенных баз данных и инструментов? На что они способны? Чем различаются?

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

Вы узнаете о принципах и концепциях, используемых во всех типах СУБД, с акцентом на подсистеме хранения данных и компонентах, отвечающих за распределение. Эти алгоритмы используются в базах данных, очередях сообщений, планировщиках и в другом важном инфраструктурном программном обеспечении. Вы разберетесь как работают современные системы хранения информации, и это поможет взвешенно выбирать необходимое программное обеспечение и выявлять потенциальные проблемы.

В этой книге вы углубитесь в:

  • Механизмы хранения: классификация и таксономия хранилищ, механизмы хранения на основе B-дерева и неизменяемые лог-структуры.
  • Строительные блоки хранилища: организация файлов баз данных, позволяющая создавать эффективные хранилища с использованием вспомогательных структур (кэш страниц и пулы буферов).
  • Распределенные системы: пошаговое руководство по подключению узлов и процессов и построение сложных схем взаимодействия.
  • Кластеры баз данных: модели согласованности в современных базах данных и согласованность распределенных систем хранения.

Оформить предзаказ.

image

Безопасность контейнеров. Фундаментальный подход к защите контейнеризированных приложений


Автор(ы): Лиз Райс

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

Лиз Райс исследует вопросы построения контейнерных систем в Linux. Узнайте, что происходит при развертывании контейнеров и научитесь оценивать возможные риски для безопасности развертываемой системы. Приступайте, если используете Kubernetes или Docker и знаете базовые команды Linux.

В этой книге:

  • Исследуем векторы атак на контейнерные развертывания.
  • Погружаемся в компоненты Linux, лежащие в основе контейнеров.
  • Принимаем меры для повышения безопасности контейнеров.
  • Выясняем, как ошибки конфигурации могут приводить к нарушению изоляции контейнеров.
  • Изучаем рекомендуемые практики создания образов контейнеров.
  • Выявляем образы контейнеров, содержащие известные программные уязвимости.
  • Используем безопасные соединения между контейнерами.
  • Работаем с утилитами безопасности для предотвращения атак на развернутую систему.

Оформить предзаказ.

image

Python, например


Автор(ы): Никола Лейси

Это Python, например! Познакомьтесь с самым быстрорастущим языком программирования на сегодняшний день.

Легкое и увлекательное руководство поможет шаг за шагом прокачать навыки разработки. Никаких архитектур компьютера, теорий программирования и прочей абракадабры больше практики! В книге 150 задач, которые плавно перенесут читателя от изучения основ языка к решению более сложных вещей. Руководство подойдет всем, у кого голова идет кругом от технического жаргона и пространных объяснений автор уверен, что учить можно и без этого.

Оформить предзаказ.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru