Category: Обучение

30
Ноя
2021

📈 5 сложных навыков, которые позволят экспоненциально расти в программировании

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

Перевод публикуется с сокращениями, автор оригинальной статьи Pen
Magnet.

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

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

Посмотрим на следующую
диаграмму:

Экспоненциальная кривая (источник: <a href="https://en.wikipedia.org/wiki/Exponential_growth" target="_blank" rel="noopener noreferrer nofollow">Википедия</a>)
Экспоненциальная кривая (источник: Википедия)

Мы говорим о зеленом
графике.

Рассмотрим 5 вещей, которые могут привести к незамедлительному экспоненциальному росту вашей карьеры программиста.

1. Возня с игрушками

Какое отношение игрушки
(гаджеты) имеют к программированию?

Когда мне было 8 лет, я сломал свои цифровые часы, чтобы понять, как работает контроль времени. Мне потребовалось 2 дня, чтобы собрать все заново. После всех мучений я не смог понять, какова связь между микросхемой и цифрами на LCD-панели.

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

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

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

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

В этом занятии есть
три важных момента:

  • Это не должно быть сложно (нужно найти время, желание и т. д.).
  • Это должно быть добровольным (не запихивайте своих детей в школы программирования). Хотя можно создать среду и направить их.
  • Самое важное – это настойчивость. Сломайте все, и не сдавайтесь, пока не почините. Настойчивость подпитывает длительное желание решать проблемы. Это чувство – именно то, что поможет выжить в безжалостной индустрии ПО.

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

Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека программиста».

2. Бросать вызов самому себе

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

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

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

Допустим, вы написали
функцию, которая считывает набор переменных из конфига. Реализация будет
включать жестко заданное имя файла (например, «myfile.config»). Ее интерфейс
выглядит следующим образом:

        func readParams()
    

Чтобы испытать себя, после
написания этой функции настройте ее так, чтобы она принимала имя файла (с
аргументом по умолчанию, который является именем файла).

        func readParams(filename: String="myfile.config")
    

Только подумайте, сколько
возможностей откроет это небольшое изменение:

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

3. Грамматика

В течение многих лет
эксперты твердили: правое и левое полушария мозга контролируют различные
функции. Одна из них делает вас лучше в математике, а другая – в искусстве и
языке.

Теперь эта теория развенчана. Правда это или нет, но без изучения языка вы не сможете программировать. Дело не в словарном запасе, а в грамматике.

Если вы хорошо разбираетесь в грамматике любого языка (особенно английского), вы быстрее поймете что к чему. Вы сможете понимать код из интерфейсов иногда даже без необходимости в документации. Такие вещи, как isFinishedиwillRefresh, говорят сами за себя.

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

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

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

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

4. Презентация

Когда дело доходит до
работы, программисты практически не общаются. Они либо общаются на непонятном
для других техническом жаргоне, либо просто пишут код.

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

Представьте себе сценарий
входа в систему, объясненный 2 программистами:

Программист A:

Пользователь приходит на
экран авторизации, вводит имя пользователя/пароль и нажимает кнопку входа. Если
он вводит символы #, & или *, вход отклоняется, и пользователь остается на
той же странице. Если все хорошо, генерируется запрос к API. Пароль должен
быть хэширован, т. к. API сопоставляет хэш пароля с хэшем, хранимым в БД. Эта
проверка не должна происходить, если имя пользователя не совпадает. Когда совпадают
оба введенных параметра, возвращается код 200 и пользователь перенаправляется
на страницу профиля, а если нет – 401. В случае успеха выдается токен,
который действителен в течение 2 недель.

Программист Б:

  • У нас есть два процесса: внешний код и внутренний API (рисуем два квадрата).
  • Оба общаются через HTTP-запрос (соединяем их стрелками).
  • Фронтенд принимает вводимые пользователем данные и проверяет их.
  • Бекенд должен проверять наличие пользователя в БД и правильность хэша пароля.
  • И здесь начинается важная часть: если ответ будет успешным, фронт получит токен от серверной части, который будет хранить 2 недели. Пока он действителен, пользователь может сразу попадать на страницу профиля. Эта логика проверки токенов предшествует странице авторизации.
  • Вы можете посмотреть подробности API в документе, который я отправил всем/загрузил в облако.

(на этом этапе,
возможно, на доске/блокноте много стрелок, и каждая стрелка помечена порядковым
номером)

Чья презентация будет успешной? Программист А может быть на 100% прав, но он наверняка потерпит неудачу в своей передаче идеи. Коллегам было бы скучно из-за его неорганизованного способа представления и ненужных деталей (коды статуса HTTP).

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

В большинстве своем программисты не собраны. Они не могут долго заниматься одной задачей. В спешке с доставкой они в конечном итоге выражают себя только в коде. Если требуется презентация, они все
портят (как программист А выше), и страдает вся команда.

Цель презентации –
ясность и простота.

В Amazon это уже осознали
и теперь предпочитают шестистраничную
памятку, а не PPT-файл. Если вы не можете с помощью 6 страниц описать свою
идею, она не заслуживает внимания. Упростите любой ценой!

5. Переключение контекста

Мозг большинства
программистов подобен микросервисам. Разберемся на примере.

Монолитный подход:

API: /get/payments

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

Микросервисный подход:

Микросервис более
специфичен и ориентирован на объекты.

Микросервис для учетных записей (/get/payments) будет возвращать платежи только для
учетной записи, с которой совершается вход.

Микросервис для платежей (/get/payments) вернет все платежи, произведенные в
системе.

В чем разница? Парсинг – это налог за наличие монолита. Другими словами, микросервис уже знает, что он должен делать.

Микросервисы знают свою
область видимости, которая привносит контекст.

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

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

Ваша работа программиста
требует только доставки кода.

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

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

  • Решите, нужно ли вам срочно отвечать на этот вопрос.
  • Если да, уточните его категорию, прежде чем формулировать свой ответ.
  • Все несрочные дела могут подождать.
  • Для повторяющихся задач вы можете кэшировать свои ответы, как это делает ваш софт.
  • Чаще всего ваш код является вашим главным приоритетом. Не тратьте сосредоточенность впустую. Сведите к минимуму время отвлечения внимания, используя переключение контекста.

Заключение

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

Естественно, речь здесь
не идет о продуктивном программировании.

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

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

Истина лежит где-то
посередине.

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

Дополнительный материал:

23
Ноя
2021

👨‍🎓️ Самоучитель по C# для начинающих. Часть 1: установите среду разработки и освойте основы языка за 30 минут

В этой статье мы познакомимся с C# и платформой .NET, рассмотрим базовые концепции языка и его кроссплатформенность, а также напишем несколько несложных программ, чтобы закрепить изученные основы синтаксиса на практике.

Язык программирования C# и платформа .NET Framework прошли долгий путь развития с 2002 года и сегодня считаются одним из самых перспективных инструментов разработчика. С выходом .NET Core 1/2/3 и .NET 5 началась новая эра разработки программных систем на языке C#. Основной упор был сделан на кроссплатформенность.

Установка .NET и инструментов разработки на C#

Установка в ОС Windows

Для подготовки рабочего окружения в Windows, необходимо скачать и установить полнофункциональную среду разработки – Microsoft Visual Studio Community 2019. Запускаем файл vs_community.exe и в окне мастера установки выбираем необходимые компоненты(включая .NET 5):


После завершения установки выбранных компонентов и базовой оболочки Visual Studio можно приступать к написанию приложений.

Больше полезной информации вы можете найти на нашем телеграм канале «Библиотека шарписта».

Установка в Linux (Ubuntu)

Платформу .NET можно использовать в популярных дистрибутивах Linux: например, в Ubuntu 20.04 LTS поддерживается SDK .NET 5.0/.NET Core 3.1 и среда выполнения ASP.NET Core. Их можно установить по инструкции с сайта Microsoft. В терминале для добавления репозитория введём следующие команды:

        wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

    

Установим .NET SDK 5, введя в терминале команду:

        sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-5.0

    

Среда выполнения ASP.NET Core устанавливается следующей командой:

        sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-5.0

    

Завершающим этапом является установка редактора кода Microsoft Visual Studio Code: для этого нужно перейти на сайт и выбрать пакет с расширением .deb.


Запускаем и устанавливаем, после чего можно писать первую программу на C#. Для остальных дистрибутивов Linux все шаги сходны с точностью до используемой системы управления пакетами.

Установка в macOS

Платформа .NET и язык C# стали доступны и для операционной системы macOS. Также по аналогии с Windows была выпущена интегрированная среда разработки – Microsoft Visual Studio for Mac. Скачаем Visual Studio for Mac 2019.


Монтируем образ VisualStudioforMacInstaller.dmg и запускаем программу установки двойным щелчком:


Принимаем лицензионное и выбираем необходимые компоненты (.NET Core):


Нажимаем кнопку Install и ожидаем завершения работы установщика. Подробнее ознакомиться с инструкцией можно на сайте Microsoft.

Создание и запуск первого проекта

ОС Windows

В Windows запускаем Microsoft Visual Studio 2019 из меню Пуск и выбираем “Создание проекта”.


В следующем окне в качестве типа проекта выберем Console App (Консольное приложение) на языке C#.


На следующем шаге указываем имя и расположение проекта.


Выбираем необходимую версию .NET и создадим проект, щёлкнув кнопку Создать.


После успешного создания проекта, откроется основное рабочее окно Visual Studio 2019. Оно состоит из трёх панелей: редактор кода, обозреватель проекта (решения) и свойства.


Структура проекта состоит из файла Program.cs и зависимостей, в редакторе кода открыто его содержимое.

Программа простая, но выполняет вывод строки. Для её компиляции и запуска нажимаем клавишу F5 или на зеленую стрелку.


При успешном запуске программы в консольном окне выводится Hello World!.

Linux/Ubuntu

Создадим проект консольного приложения .NET – FirstApp в Visual Studio Code, для этого выберем Файл -> Открыть папку, далее в появившемся окне создадим папку FirsrApp и щелкнем Выбрать папку.

Откроем терминал в Visual Studio Code, выбрав Вид -> Терминал. В окне терминала введём следующую команду:

        dotnet new console --framework net5.0
    

Она создает простое приложение FirstApp и класс Program с методом Console.WriteLine(String) для вывода “Hello World!” в окне консоли.

Для запуска приложения в терминале вводим команду.

        dotnet run
    

В терминале после её выполнения будет выведена строка Hello World!.

Apple macOS

Запустим Visual Studio for Mac 2019 и щелкнем пункт New (Создать).


В разделе Web and Console (Интернет и Консоль) диалогового окна создания проекта выберем тип Приложение. Выберите шаблон Консольное приложение и нажмите кнопку Далее.


Вводим название проекта и щелкаем по кнопке Create (Создать).


Консольное приложение успешно создано: как и ранее оно содержит класс Program с точкой входа Main и методом Console.WriteLine(“Hello World!”);.


Запустим приложение, нажав на чёрную стрелку или комбинацию клавиш Option+Command+Enter.

Структура программы

В предыдущем разделе, мы создали простейшее приложение, которое выводит строку Hello World! и запустили на различных операционных системах. Рассмотрим подробнее структуру программы в файле Program.cs.

        using System; 

namespace FirstApp
{
    /*Моя первая программа.*/
    class Program
    {
        static void Main(string[] args) // Метод Main - точка входа в приложение
        {
            Console.WriteLine("Hello World!"); // WriteLine - выводит строку
        }
    }
}

    

Разберем построчно исходный код:

  • using System – подключает пространство имен System с библиотекой классов.
  • namespace FirstApp является контейнером для классов в рамках приложения, объединяя их в одно пространство имён.
  • Фигурные скобки {} обозначают начало и конец блока кода.
  • class Program – класс с данными и методами, который привносит функциональность в программу. Каждая строка исполняемого кода на C# должна находиться внутри класса. В нашем случае класс имеет имя Program.
  • Код внутри метода Main будет выполняться первым, этот метод является точкой входа в приложение.
  • Console – класс пространства имен System, имеющий метод WriteLine(), который используется для вывода текста. У нас будет выведена строка «Hello World!».
  • Если опустить строку using System, то придется писать System.Console.WriteLine() для вывода текста.
Примечание
Каждый оператор C # заканчивается точкой с запятой ; , к тому же язык чувствителен к регистру: «MyClass» и «myclass» имеют разное значение.

  • Ещё одним немаловажным блоком кода являются комментарии: они бывают многострочными и однострочными, а задаются символами /**/ и // соответственно.

Переменные и типы данных

Переменные служат для хранения данных и операций над ними. Объявлять переменные можно используя классический синтаксис: тип имя = значение;

        int number = 10;
    

Поддерживается интерференция типов: компилятор C# способен автоматически определять тип переменной, используя ключевое слово var.

        var number = 9;
    

Для объявления констант добавляется ключевое слово const и их значения остаются фиксированными во время выполнения программы.

        const int sizeArr = 10;
    

C# имеет следующие базовые типы: int, double, string, char, bool, float, long. Остановимся на базовых типах для простоты понимания фундамента языка.

Консольный ввод и вывод

Используя Console.WriteLine можно вывести информацию или значения переменных на экран.

        string manufactuer = "Tesla";
string model = "Model S";
int price = 6390000;

Console.WriteLine("Электромобили наше будущее!");
Console.WriteLine(manufactuer + " - " + model);
Console.WriteLine("Цена: " + price);
    

После вывода каждой строки перемещаемся на новую строку, а для вывода в одну строку используется метод Console.Write().

Зачастую необходимо вывести значения с форматированием строки для более наглядного результата.

        Console.Write($"Производитель: {manufactuer}  Модель: {model}  Цена: {price} руб");
    

В консоль будет выведена уже форматированная строка.

Для ввода информации с клавиатуры в C# используется метод Console.ReadLine().

        Console.Write("Как вас зовут? ");
string nane = Console.ReadLine();
Console.WriteLine("Ваше имя: " + nane);
    

Этот метод считывает строку в консоли и возвращает её в приложение. Для ввода значений других типов преобразуем строку используя Convert.ToType(), где Type необходимый нам тип.

        Console.Write("Введите модель авто: ");
string model = Console.ReadLine();

Console.Write("Введите вес: ");
double massa = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите кол.дверей: ");
int doorCount = Convert.ToInt32(Console.ReadLine());

Console.Write("Введите цену: ");
decimal price = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine($"Модель:{model}  Вес:{massa}т  Дверей:{doorCount} Цена: {price}Р");

    

Для приведения строк вес, количество дверей и цена в нужный нам тип, используем Convert.ToDouble(), Convert.ToInt32() и Convert.ToDecimal() соответственно. Подробнее о приведении типов в разделе Преобразовании типов.

Базовые операторы

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

Арифметические операторы

Операторы +, -, *, /, %, ++, — используются в основном для работы с числовыми переменными, объектами.

        int a = 8, b = 4;

Console.WriteLine($"a + b = {a + b}");
Console.WriteLine($"a - b = {a - b}");
Console.WriteLine($"a * b = {a * b}");
Console.WriteLine($"a / b = {a / b}");
Console.WriteLine($"a % b = {a % b}");

    

По каждой операции будет выведен соответствующий результат.

Операторы присваивания

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

        int a = 8;

a += 2;
a -= 2;
a *= 2;
a /= 2;
a %= 2;

    

Операторы сравнения

Операторы сравнения используются для сравнения двух значений и возвращают значение типа bool (логическое значение).

        bool condition1 = a == b;
bool condition2 = a != b;
bool condition3 = a > b;
bool condition4 = a < b;
bool condition5 = a >= b;
bool condition6 = a <= b;

    

Логические операторы

Здесь все стандартно и привычно, если вы имели дело с C-подобными языками.

        int a = 4;
Console.WriteLine(a > 2 && a < 5);
Console.WriteLine(a > 1 || a < 3);
Console.WriteLine(!(a > 2 && a < 5));

    

В языке C# существуют и другие операторы, рассмотрим их позже по мере необходимости.

Управление потоком

В программировании задачи и алгоритмы часто требуют принятия решений и выполнение кода при определенных условиях (conditions).

  • Если необходимо выполнить код по условию, для этого используются инструкции: if, else, ternary operation, switch.
  • Для многократного выполнения инструкций применяются циклы: for, foreach, while, break-continue.

If…else

Инструкция if…else в стандартной форме выглядит так:

        if (condition)
{
    // 
}
else
{
    //
}

    

По условию поток передается определенным блокам кода. При истинности условия (true), выполняется код в if {…}, а когда условие ложно (false), выполняется код в else {…}.

        string name = Console.ReadLine();

if(name != "")
{
    Console.WriteLine(name);
}
else
{
    name = "Антон";
    Console.WriteLine(name);
}

    

if…

Если требуется выполнить только условие, то else можно опустить.

        int x = 0;

if(x == 0)
{
    x = 5;
}

    

Как видно из примера, переменная получает новое значение, если она равна нулю.

if…else if…else

Можно добавить if после else и комбинировать их:

        string modelPhone = Console.ReadLine();
string manufactPhone = "";

if (modelPhone == "IPhone X")
{
    manufactPhone = "Apple";
    Console.WriteLine(manufactPhone + " " + modelPhone);
}
else if (modelPhone == "Honor 10")
{
    manufactPhone = "Huawei";
    Console.WriteLine(manufactPhone + " " + modelPhone);
}
else
{
    Console.WriteLine("No phone!");
}

    

Тернарная операция (Ternary operation)

Существует вариант if…else, известный как тернарный оператор, поскольку он состоит из трех операндов. Его часто используют для замены простых операторов if…else.

        int a = 10;
int b = 7;

int c = a < b ? (a - b) : (a + b);
Console.WriteLine(c);

    

switch

Для выбора одного из множества блоков кода используется оператор switch.

        int x = Convert.ToInt32(Console.ReadLine());

switch (x)
{
      case 1:
           Console.WriteLine("One");
           break;
     case 2:
          Console.WriteLine("Two");
          break;
    default:
          Console.WriteLine("Other number!");
          break;
    }
}

    

Шаблон, с которым сравнивается значение x определяется ключевым словом case. Далее по успешному совпадению с шаблоном, выполняется соответствующий блок кода. Если совпадений нет, то исполняется блок default для остальных случаев.

Цикл for

Цикл for в основном используется для перебора значений по условию с одновременным выполнением операций и имеет вид:

        for(start; condition; step) 
{
       // блок выполняемого кода
}

    

Рассмотрим работу цикла на примере вычисления таблицы умножения.

        for(int i = 1; i < 10; i++)
{
    Console.WriteLine($"{i} * {i} = {i * i}");
}

    

Цикл начинает выполняться со значения переменной i = 1 до 9, увеличивая её на единицу i++ (инкремент), каждая итерация вычисляет умножение числа само на себя, в итоге выводится таблица умножения.

Предлагаю поэкспериментировать самостоятельно с разными условиями цикла.

Цикл foreach

Также существует цикл foreach, который используется исключительно для циклического перебора элементов массива (смотрим раздел Массивы):

        foreach (type variable in array) 
{
  // блок выполняемого кода
}

    

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

        string str_hello = "Hello World!";

foreach(char ch in str_hello)
{
    Console.WriteLine(ch);
}

    

Строка представляет собой массив символов, используя переменную char ch, цикл перебирает и выводит все символы строки.

Цикл while

Цикл while выполняет перебор, пока заданное условие истинно и имеет такой синтаксис:

        while (condition) 
{
  // блок выполняемого кода
}

    

Таблица умножения в этом цикле, реализуется также просто.

        int n = 1;

while(n < 10)
{
    Console.WriteLine($"{n}*{n} = {n*n}");
    n++;
}

    

Цикл do / while ещё вариант цикла while, он выполняет блок кода один раз, прежде чем проверить истинность условия, а затем повторяет итерации, пока условие истинно. Синтаксис такого цикла выглядит так:

        do 
{
  // блок выполняемого кода
}
while (condition);

    

В качестве примера рассмотрим вычисление суммы чисел отличных от нуля, если вводится 0, то цикл завершается и выводится сумма.

        int n; 
int sum = 0; 

do
{ 
     Console.Write("Введите число: ");
     n = Int32.Parse(Console.ReadLine());

     sum += n;
} while (n != 0);

    Console.WriteLine("Сумма = {0}", sum);
    

break/continue

Часто возникает ситуация, когда необходимо управлять остановкой/продолжением работы цикла, для этого используются операторы break и continue.

        for (int i = 0; i < 20; i++) 
{
       if(i==10)
       {
           continue;
       }
       else if(i==17)
       {
           break;
       }

    

Из примера видно, что если i=10, то цикл продолжает работу, если i=17, то оператор break завершает цикл.

Массивы

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

Одномерные массивы

Одномерный массив состоит из однотипных N-элементов и синтаксис его объявления следующий:

        type [] nameArr;
    

Для использования массива, необходимо задать его размер, делаем так:

        type [] nameArr = new type [N];
    

Оператор new создает объект массива из N-элементов, также C# умеет автоматически подсчитать длину массива, если он проинициализирован. Например, если нам нужно создать массив, хранящий модели IPhone, при объявлении мы сразу инициализируем его.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

    

Также можно создать массив с числами, предлагаю поэкспериментировать самостоятельно.

Для обращения к элементам массива используются индексы. Поскольку C# является нуль-базируемым языком, начинаются они с нуля. Рассмотрим на примере обращение к одному элементу массива и перебору всех его элементов в цикле по индексам.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

Console.WriteLine(phones[0]);
Console.WriteLine(phones[3]);

for(int i = 0; i < phones.Length; i++)
{
    Console.WriteLine($"[{i}] = {phones[i]}");
}

    

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

Например, если вместо IPhone X нужно внести IPhone 11, то по индексу 2 просто изменяем значение.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

for (int i = 0; i < phones.Length; i++)
 {
      if (i == 2)
      {
          phones[i] = "IPhone 11";
      }
      Console.WriteLine($"[{i}] = {phones[i]}");
}

    

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

Многомерные массивы

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

Двумерные и N-мерные массивы позволяют хранить и обрабатывать многомерные данные. Синтаксис объявления таких массивов следующий:

        type[,] arrName;

    

Запятая в фигурных скобках указывает на многомерность массива, а его размер задается так:

type[,] arrName = new type[N, M];

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

        int[,] MatrixA = new int[3,3] { {1, 2, 3}, {4, 5, 6}, {7,  8, 9} };
int[,] MatrixB = new int[3, 3] { { 3, 2, 1 }, { 6, 5, 4 }, { 9, 8, 7 } };
int[,] resultMatrix = new int[3, 3];

for(int i = 0; i < 3; i++)
{
    for(int j = 0; j < 3; j++)
    {
        resultMatrix[i, j] = MatrixA[i, j] * MatrixB[i, j];
        Console.Write(resultMatrix[i, j] + " ");
    }
        Console.WriteLine("");
}

    

Как видно из примера, мы создали два массива размером 3х3 с числами результирующий массив – resultMatrix. Для прохода по столбцам и строкам массивов, используются два цикла for.

На этом с массивами заканчиваем и более подробно поговорим о них и структурах данных в следующих частях.

Методы (функции)

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

В нашей первой программе имеется пользовательский метод Main() – главный метод, а методы WriteLine() и ReadLine() являются библиотечными.

Метод – это блок кода, который выполняет определённые задачи и запускается только при его вызове.

Методы бывают с параметрами и без параметров, то есть могут принимать или не принимать данные, а также возвращать результат или только выполнять действия. Объявление метода выглядит следующим образом:

static type MethodName() {

........

}

Где MethodName () – это имя метода, а static означает, что метод принадлежит классу Program, а не объекту класса Program.

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

void означает, что этот метод не имеет возвращаемого значения.

void-методы

Рассмотрим пример создания и использования невозвращаемого метода без параметров и с параметрами.

        static void Main(string[] args) // Метод Main - точка входа в приложение
{
	string name = “Michael”;

        Hello();
        AreaQvadrata(a);
}

static void Hello()
{
      Console.WriteLine("Hello Method!");
}

static void HelloName(string input)
{
      Console.WriteLine("Hello, " + input);
}

    

Методы Hello() и HelloName(string input) вызываются в основном методе Main(), первый без параметров, а второй принимает строку и выводит уже Hello, Name.

return-методы

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

        static void Main(string[] args) // Метод Main - точка входа в приложение
{
     int a = 4, b = 5;

     int res = Sum(a, b);
     Console.WriteLine(res);

}

 static int Sum(int a, int b)
 {
    return a + b;
 }

    

Метод Sum получает в качестве параметров 2 числа и с помощью оператора return возвращает их сумму.

***

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

21
Ноя
2021

👨‍🎓️ ТОП-30 бесплатных учебных курсов для IoT-разработчика: от новичка до профессионала

Мы отобрали бесплатные курсы по Интернету вещей на русском и английском языках – от основ до построения Умных городов и внедрения технологий IoT в бизнесе. Эта подборка будет интересна не только новичкам, но и профессионалам.

На какие курсы стоит обратить внимание

Больше полезной информации вы можете найти на нашем телеграм-канале «Библиотека программиста».

Бесплатные курсы на русском языке

Интернет вещей. Введение в Arduino (Stepik, 24 урока) – попробуете себя в C++, Arduino (функции цифрового ввода/вывода, ШИМ, датчики).

Введение в Интернет вещей (Stepik, 10 уроков) – познакомитесь с концепцией IoT и ее ключевыми составляющими – датчики, беспроводные технологии, программное обеспечение, облачные технологии и др.

Интернет вещей (Stepik, 18 уроков) – научитесь программировать на платформе Arduino, управлять работой электрических схем, датчиков и устройств, а также изучите принципы создания веб-приложений на базе платформы для интернета вещей PTC Thingworx.

IoT / ИоТ: Всеобъемлющий Интернет. Введение в Интернет вещей 2020 (YouTube, 16 роликов) – теоретические и практические стримы по IoT: подключение IoT к сети, Python, Jyputer Notebook и PL-App и Arduino.

Разработка умных устройств на базе Arduino – узнаете, что такое Интернет вещей и из чего он состоит. Познакомитесь с платформой Tinkercad и научитесь моделировать электрические цепи с её помощью. Выполните лабораторные работы с использованием Arduino.

Введение в Интернет вещей (Открытое образование, ИТМО 80-100 ч.) – овладеете основными понятиями и терминологией в области Интернета вещей, протоколами стандартов и многоуровневых сетевых моделей. Научитесь разрабатывать и отлаживать устройства на Arduino.

Встроенные системы (Открытое образование, ИТМО, 80-100 ч.) – поймете принципы функционирования встроенных систем – база киберфизических систем и Индустрии 4.0, – научитесь выбирать средства и технологии их разработки и оценивать эффективность их использования в различных прикладных областях.

Основы проектирования приложений интернета вещей (Coursera, 49 видео) – курс от МФТИ дает общий обзор всей технологической цепочки разработки приложений интернета вещей, организации процесса разработки и распределения ролей в команде проекта.

Строим роботов и другие устройства на Arduino. От светофора до 3D-принтера (Coursera, 87 видео) – пройдя этот курс МФТИ, вы сможете проектировать устройства, которые считывают данные о внешнем мире с разнообразных датчиков, обрабатывают информацию, получают и отправляют данные на ПК, в Интернет, на мобильные устройства. Создание устройств будет включать проектирование, изучение компонентов, сборку схем, написание программ, диагностику. Также разберетесь с устройством и работой FDM 3D-принтера.

IoT академия Samsung (2 семестра, 80 ч.) – бесплатное обучение продолжительностью 1 год для студентов вузов-партнеров программы. На базе вузов-партнеров оборудованы специализированные IoT лаборатории, где установлены мобильные и носимые устройства Samsung, наборы для быстрого прототипирования и микрокомпьютеры Artik.

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

Raspberry Pi воркшоп: стань кодером и изобретателем (Udemy, 29 лекций) – узнаете об экосистеме Raspberry Pi, как кодить на Питоне, использовать GPIO, писать сценарии Shell, планировать задачи, создавать настольные приложения с графическим интерфейсом и использовать Малину в рамках Интернета вещей.

Введение в IoT (Сетевая академия Cisco, 20 часов) – познакомитесь с IoT, поймете, как он меняет бизнес-процессы, изучите проблемы безопасности, которые нужно принимать во внимание при реализации Интернета вещей.

Введение в программирование интернета вещей (Coursera, 38 видео) – проектирование, создание и внедрение IoT-устройств с использованием платформ Arduino и Raspberry Pi.

AWS IoT: Разработка и развертывание Интернета вещей (Coursera, 29 видео) – научитесь разворачивать IoT-устройства, интегрированные с такими сервисами, как AWS IoT Core, AWS IoT Device Management и AWS IoT Analytics и как собирать, обрабатывать и анализировать данные с устройств IoT в облаке.

Введение и программирование IoT (Coursera, 14 видео) – введение в IoT, сетевые технологии и IoT, программирование Arduino, Raspberry Pi и ARTIK Board.

Промышленные IoT в облаке Google (Coursera, 29 видео) – познакомитесь с архитектурой Google IoT. Реализуете передачу данных от устройства к BigQuery и Dataprep.

Промышленный Интернет вещей (IIoT) (Coursera, 35 видео) – на этом курсе слушатели познакомятся с концепцией промышленного Интернета вещей (IIoT), узнают, как он применяется в производстве, и что следует учитывать предприятиям при принятии решения о внедрении этой технологии.

IoT Devices (Coursera, 28 видео) – студенты изучат программирование устройств IoT (Arduino и Raspberry Pi), датчики, стеки протоколов IoT (Zigbee, 5G, NFC, MQTT и т.д.), обеспечение безопасности, науку о данных для IoT и облачные платформы IoT, такие как AWS IoT.

IoT (Интернет вещей) беспроводные и облачные вычисления (Coursera, 51 видео) – на этом курсе выполните проекты, которые учат анализировать беспроводные сети Bluetooth и Wi-Fi, настраивать и использовать облачные сервисы EC2 (Elastic Compute Cloud) в AWS (Amazon Web Service).

Архитектура программного обеспечения для Интернета вещей (Coursera, 31 видео) – рассказывают о лучших практиках проектирования сложных IoT-систем.

Кибербезопасность и Интернет вещей (Coursera, 15 видео) – узнаете, как обеспечить безопасность промышленных, домашних и носимых IoT.

Умные города: управление умными городскими инфраструктурами (Coursera, 36 видео) – рассказывают, как перейти от устаревшей городской инфраструктуры к интеллектуальным городским системам.

Индустрия 4.0: Как развивать свой бизнес (edX, 6 модулей) – узнаете об Интернет вещей (IoT) и промышленном Интернет вещей (IIoT), движущих силах Индустрии 4.0, облачных технологиях, автоматизации услуг и о том, как подготовиться к переходу в Индустрию 4.0.

Сети и протоколы IoT (edX, 6 модулей) – научитесь определять, какие протоколы лучше всего подходят для различных приложений IoT, проектировать базовую сеть для своих собственных идей IoT.

Введение в IoT (edX, ИТМО, 7 модулей) – курс университета ИТМО, на которым разберетесь в типах IoT-устройств, сценариях их использования, датчиками и программировании на C++.

Сетевые технологии IoT и туманные вычисления (edX, ИТМО, 3 модуля) – дают общую информацию о топологиях сетей, аппаратном обеспечении для платформы Raspberry Pi и учат программировать на Малине, используя Python (Raspbian OS) и С# (Windows 10 Core IoT OS).

Управление данными, безопасность данных и операционная система робота (edX, ИТМО, 4 модуля) – рассказывают как обеспечить безопасность IoT, устранять уязвимости и программировать ОС роботов.

IoT и большие данные (edX, 5 модулей) – научитесь применять программные решения для различных систем и работать с большими данными в проектах IoT; создавать скрипты на Python для управления большими массивами данных, собранных с датчиков.

Датчики и устройства IoT – после окончания курса сможете определять, какие нужны датчики для решения конкретной задачи и проектировать системы IoT.

Архитектура систем IoT: проектирование и оценка (edX, 3 модуля) – получите навыки проектирования системы IoT в соответствии с метода Attribute-Driven Design (ADD)

и оценки системы с помощью метода Architecture Tradeoff Analysis Method (ATAM).

Материалы по теме

20
Ноя
2021

🐍 28 лучших каналов YouTube про Python для начинающих

Подборка лучших каналов YouTube для начинающих изучение Python: базовые навыки, алгоритмы, Git, парсинг, телеграм-боты и веб-разработка.

Ищете с чего начать обучение?
Воспользуйтесь дорожной картой Python-разработчика, в который мы рассказываем в каком порядке нужно изучать Python, чтобы получить актуальные знания. Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека питониста».

Хауди Хо™ – Просто о мире IT! – уроки по программированию, в том числе по Питону: Python за час, телеграм-бот, 10 Советов новичкам в Python.

Гоша Дударь – разные тематические видео на IT тематику: Python в одном видео уроке за час, Python для начинающих, создание сайта на Django, 2D-игры на PyGame и уроки Python OpenCV.

DevRoadX – дают основы Python и Git.

Иван Викторович – мини-курс Python с нуля и разработка игр на Pygame.

Django School – прокачаете навыки программирования на Python (раз, два) и соберете социальную сеть на Джанго.

Тимофей Хирьянов – преподаватель кафедры информатики МФТИ рассказывает, как программировать на Python и знакомит с алгоритмами.

PyLounge – в плейлисте изучение Python сборная солянка из 55 роликов на самые разные темы: пробелы и отступы, основы Jupyter Notebook, Python и MySQL, 10 Трюков Python и т. д.

egoroff channel – автор делится своим опытом в плейлистах Python для начинающих, алгоритмы и структуры данных в Python, ООП и обучает созданию игры (раз, два, три, четыре).

Masters Of Code – пошаговое руководство «Как стать программистом с нуля», Python для начинающих, Python в веб-разработке и Data Science.

Data Science Guy – канал о том, как войти и развиваться в Data science.

alishev – видеоуроки по Питону, Git и алгоритмам.

PythonToday – видеотрансляции уроков для начинающих, парсингу, написанию ботов для Тик-Тока и Вконтакте.

Диджитализируй! – рассказывают о Python-разработке, Linux-инструментах, проектировании IT-систем, бэкенде и фронтенде.

Хитрый питон34 видео, в которых учат базе и продвинутым темам: декораторы (раз, два, три) и GitHub Actions.

Python Hub Studio – излагают в доступной форме всю информацию о языке программирования Python 3: гайды новичкам, ООП, разработка телеграм– и дискорд-бота.

ZProger [ IT ] – учат кодить на Python с нуля, основам Linux, парсингу и работать с MongoDB.

Изучаем мир ИТ / Олег Шпагин – уроки по программированию на Пайтоне (раз, два, три, четыре), Django, Flask, искусственному интеллекту (раз, два) выпуски про безопасность, подборки, топы, руководства и разное из жизни айтишника.

Олег Молчанов – еще один канал о змее: основы, асинхронность, Джанго, Flask и автоматизация задач.

Айтишник программирование на Python от Штукенции и гайд по Git/Github от Игроглаза.

Be Geek – еще один мультиинструментальный канал: основы Python (раз, два), парсинг страниц, создание телеграм-бота и игры, прохождение собеседований и интервью.

loftblog – введение в Python (раз, два), как учить английский и запуск IT-продуктов.

Python on Papyrus RU – про Питон и программирование в целом.

Мэлсик – основы Python, парсинг, кодинг телеграм-бота и курс по Tkinter.

Псевдо Программист – доступные и понятные занятия по Python, визуализации данных, библиотеке NumPy и нейросетям.

IT каждый день – канал про веб-разработку: Python (раз, два), Telegram-боты и Django.

Python Channelдоклады с конференции Moscow Python Conf++.

Minsk Python Meetup – сообщество, созданное разработчиками компании Wargaming.

MoscowPythonвидеозаписи со встреч питонистов и джангистов в Москве.

***

Успехов в учебе!

14
Ноя
2021

Поиск неверного ответа в тестах

есть тест. допустим 20 вопросов. всего вопросов пусть будет 1000.
N людей проходит тест 1 раз и получает отчет в диапазоне 0-100%. Допустим 50 человек.
Задача, найти алгоритм как можно выявить неверные ответы в тесте.
Т.е. вопросы людям да…

14
Ноя
2021

Поиск неверного ответа в тестах

есть тест. допустим 20 вопросов. всего вопросов пусть будет 1000.
N людей проходит тест 1 раз и получает отчет в диапазоне 0-100%. Допустим 50 человек.
Задача, найти алгоритм как можно выявить неверные ответы в тесте.
Т.е. вопросы людям да…

14
Ноя
2021

🎥 9 лучших каналов на YouTube по C# и .NET для новичков и профессионалов

Подборка посвященных C# и платформе .NET каналов на YouTube подойдет новичкам и профессионалам. Читайте наш ТОП, если изучаете язык с нуля или просто хотите расширить знания.

1. #SimpleCode

Канал #SimpleCode содержит плейлисты видео-уроков и домашних заданий по языку C#, которые позволяют освоить с нуля язык и закрепить практические навыки, а также расширить знания тем, кто уже программирует на C#. Основным циклом является C# уроки | C# от новичка к профессионалу: он содержит 104 видео (83 урока), в которых автор подробно разбирает конструкции языка. Плейлист Домашние задания C# закрепляет теоретический материал. Плюшки C# содержит видео о дополнениях, которые помогут продвинуться начинающим разработчикам.

Больше полезной информации вы сможете найти на нашем телеграм-канале «Библиотека шарписта».

2. Гоша Дударь

Канал Гоши Дударя имеет 710 тысяч подписчиков и более 99 723 618 просмотров. Здесь есть видеоуроки по программированию на различных языках и фреймворках, автор которых внимательно и доходчиво объясняет теорию и практику, подкрепляя материал примерами приложений. Языку C# и платформе .NET посвящены 5 плейлистов. Перечислим их:

  • Изучение языка C# для начинающих – этот плейлист (видеокурс) содержит 26 уроков, которые охватывают базовые конструкции языка и их использование в коде.
  • Уроки C# .NET Windows Forms + Базы данных SQL – видеокурс из 8 уроков научит вас работать с Windows Forms на базе C# и .NET, а также познакомит с созданием приложений для работы с базами данных на примере MySQL.
  • Изучение C# WPF на практике / Разработка программ на WPF и XAML – курс знакомит зрителя с написанием приложений на языке C# и WPF, также с языком построения дизайна – XAML.
  • Unity 5 C# уроки для начинающих – эти видео помогут освоить программирование игр на C# под Unity 5.
  • Уроки ASP.NET Core MVC / Создание сайтов на C# – курс знакомит зрителя с ASP.NET и помогает освоить сайтостроение на языке C#, а также учит работать с MVC-шаблонами, базами данных и создавать многостраничные сайты.

3. CODE BLOG

CODE BLOG – Программирование и IT – канал разработчика Вадима Шванова для начинающих и продвинутых программистов. Содержит обучающие видео по языку программирования C#, алгоритмам и структурам данных, а также по их практическому программированию:

  • C# уроки – обучающие видеоуроки по языку C# и платформе .NET. Изучаются конструкции языка и специфичные технологии.
  • Структуры данных (data structures) C# – видеоуроки по реализации структур данных на языке программирования C# с подробным объяснением и примерами.
  • Паттерны проектирования C# – видео по реализации и использованию паттернов проектирования на языке программирования C#.

4. Caleb Curry

На канале Caleb Curry можно найти видеоуроки на английском по изучению программирования. Среди них есть курс по программированию на языке C#, состоящий из 100 уроков и охватывающий фундаментальные аспекты языка. Материал подойдёт для начинающих программистов.

5. Naresh i Technologies

Naresh i Technologies – одна из крупнейших индийских компаний по обучению разработке программного обеспечения. На канале много видеокурсов, посвящённых языкам программирования и фреймворкам (включая язык C# и .NET Framework) от разработчиков Bangar Raju и Sudhakar Sharma.

  • C#.NET Tutorial Videos | Mr. Bangar Raju – от основ языка программирования C# до работы с LINQ и потоками.
  • ASP.NET MVC Tutorial | By Mr.Sudhakar Sharma – видеокурс знакомит слушателей с основами разработки сайтов и веб-приложений на языке C# с ASP.NET и шаблоном MVC.
  • ASP.NET Tutorials | Mr.Bangar Raju – видеоуроки по ASP.NET для начинающих от Бангара Раджу очень полезны для студентов. Они построены последовательно и с нуля обучают писать веб-приложения.
  • ASP.NET MVC Core Tutorials | by Mr.Sudhakar Sharma – видеоуроки помогут получить навыки веб-разработки от начального уровня до продвинутого.

6. Coding Cafe

Канал Coding Cafe – одноименной компании по разработке программного обеспечения. В его арсенале имеются курсы по разработке веб-приложений и мобильных программ. Языку C# и .NET Framework посвящен комплексный видеокурс.

7. ITVDN

ITVDN – один из лучших русскоязычных ресурсов по обучению разработке. Здесь можно найти более 200 видеокурсов на разные темы: FrontEnd, Java, Python, .NET, мобильная разработка и создание игр на Unity. Новые уроки и вебинары выходят дважды в неделю. Разработке на языке программирования C# и .NET Framework посвящено множество видеокурсов ITVDN на разные темы, начиная от основ языка, графического интерфейса WinForms/WPF и тонкостей платформы .NET, до разработки веб-сервисов и мобильных приложений.

8. Канал Евгения Попова

Канал Евгения Попова, автора ресурса по обучению программированию http://metanit.com/, динамично развивается и дополняется видеоуроками по языку программирования C# и платформе .NET. Здесь можно найти 2 полноценных курса.

  • Видеокурс по языку программирования C# посвящён основам: последовательное изложение материалов способствует быстрому освоению языка C#.
  • Видеокурс по ASP.NET MVC 5 посвящён разработке веб-приложений на языке C# и ASP.NET MVC 5 с нуля и до публикации их на удалённом сервере.

9. Byte++

Завершим нашу подборку каналом Byte++, на котором можно найти уроки программирования на языках C#, C++ и других, а также материалы по Xamarin, Android, ASP.NET, MS-SQL и т.д. Языку C# уделено особое внимание, видеокурсы охватывают все его аспекты с нуля и до разработки мобильных приложений.

***

На YouTube наверняка есть и другие интересные ресурсы по C# и .NET, помимо описанного в обзоре джентльменского набора. Если вы не нашли в рейтинге своего любимого канала, не стесняйтесь рекомендовать его в комментариях. Удачи в обучении!

08
Ноя
2021

∞ 11 лучших каналов YouTube, посвященных DevOps

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

04
Ноя
2021

🍏 Самоучитель для начинающих: освойте основы Swift за 30 минут

Думаете, чтобы освоить Swift нужно много времени? И да, и нет. В изучении языков программирования важна практика, но что может сделать начинающий за 30 минут? Только познакомиться с базовым синтаксисом с помощью нашего самоучителя.

Создать Playground

Запустим Xcode и создадим Playground. Назовем его “BasicSwift”:

File → New → Playground…

⌥⇧⌘N

Swift Playground – это такой тип файлов, который представляет из себя игровую площадку для ваших экспериментов с кодом Swift. Результат исполнения каждой строчки кода вы можете наблюдать в боковой панели (Sidebar).

Переменные, константы, типы

Переменные обозначаются с помощью ключевого слова var

        var hello = "Hello Proglib"
    

Чтобы объявить константу используется ключевое слово let

        let brandName = "Proglib"
    
Swift – это статистический типизированный язык, а это значит, что мы должно явно задать тип каждой переменной во время компиляции.

Указывать тип переменной необязательно. Компилятор Swift автоматически его определит. Эта особенность называется интерференцией типов(type inference).

Swift предлагает следующие базовые типы: Int или UInt, Double, Float, String, Character, Bool, Tuples, Optional.

Множество типов фундаментально и чаще всего используется для объявления переменных. Забегая вперед скажу, что вы также можете создавать и свои собственные типы.

Мы не будет детально разбирать их все! Посвятим этой теме следующую 30-ти минутку.

Укажем тип нашей константы.

        let brandName: String = "Proglib"
    
Больше полезной информации вы можете найти на нашем телеграм-канале «Библиотека мобильного разработчика».

Интерполяция строк

Давайте теперь выведем имя бренда в консоль при помощи функции print().

        print(brandName)
    

Интерполяция – это способ объединить переменные и константы внутри строки.

Теперь присвоим переменной hello новое значение, и выведем в консоль.

        hello = "Hello \(brandName)"
print(hello)
    

Вот еще пример:

        let name = "Ivan" 
var age: UInt8 = 30
print("\(hello). My name is \(name). I am \(age)")

    

Базовые операторы

Здесь все интуитивно. Предлагаю вам поэкспериментировать с ними самостоятельно и посмотреть на результаты.

Арифметические операторы

+ сложение
вычитание
/ деление
% деление по модулю
        var a = 1, b = 2
var result = a + b
// etc

    

Операторы присвоения

= , +=, -=, /=, %=

        var h = 10
h += 1
h /= 2
h %= 2
// etc

    

Операторы сравнения

Операторы сравнения в качестве результата возвращают значения типа Bool

==, ≠, >, <, ≥, ≤

        let condition = 2 > 3
let condition2 = 1 != 0
let resultCondition = condition == condition2
// etc

    

Логические операторы

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

Рассмотрим на примере:

        // логическое И
print(true && true)      // true
print(true && false)     // false

// логическое ИЛИ
print(true || false)      // true

// логическое НЕ – инвертирует булево значение
print(!true)              // false

    

Это еще не все операторы, которые существуют в Swift. Остальные мы рассмотрим в контексте целей их предназначения.

Коллекции

Swift предлагает нам три основных типа коллекций: Array(Массивы), Dictionary(Словари) и Set(Множества). Сейчас мы рассмотрим первые два.

Array

Используйте квадратные скобки [], чтобы создавать массивы(Array) и словари(Dictionary).

Получить доступ к элементам массива можно написав индекс внутри скобок.

        let digits: [UInt8] = [0, 1, 2, 3, 4, 5, 6, 7, 8 ,9]
 print(digits[3])

    

Попробуйте изменить значение в массиве digits. Что произойдет?

        digits[0] = 1
    
🪲
Cannot assign through subscript: ‘digits’ is a ‘let’ constant

Поскольку мы объявили массив как константу, то и все его значения становится не изменчивыми (immutable), как и его размер. А если мы объявим массив как переменную, то он будет изменчивым (mutable). Такое свойство называют изменчивостью коллекций (mutability of collection).

Это утверждение справедливо и для Словарей.

        // mutable
var numbers = [50, 10, 20, 34, 45]
print(numbers[0])
numbers[0] = numbers[0] + 1

    

Dictionary<Key, Value>

Создадим словарь sunSystemData, в который добавим данные о солнечной системе.

Пусть ключами (key) данного словаря будут номера объектов солнечной системы, а значениями (value) названия объектов. Поскольку звезда рождается первой, то будем считать, что ключ со значением 0 всегда указывает на звезду. Остальные объекты следуют в порядке по отношению к звезде.

        var sunSystemData = [ 0: "Sun", 1:"Mercury", 2:"Venus", 
	3:"Earth", 4:"Mars", 5:"Jupiter", 6:"Saturn", 7:"Uranus", 8:"Neptune"]

    

Мы не указали типы для словаря явно. Вы можете проверить как их определил Swift, используя функцию стандартной библиотеки Swift (Swift Standard Library) type(of: T).

        type(of: sunSystemData) // Dictionary<Int, String>

    

Обратиться к элементу словаря можно, написав ключ внутри скобок. Результат будет содержать значение опционального типа (Optional), а если по заданному ключу (в скобках) нет соответствующего элемента, то получим nil.

nil в Swift означает отсутствие значения.

Получим нашу родную планету и выведем ее в консоль.

        var homePlanet = sunSystemData[3]
print("My home is \(homePlanet)")

    

Когда мы попытались вывести переменную в консоль, то получили предупреждение!

🪲
String interpolation produces a debug description for an optional value; did you mean to make this explicit?

Давайте посмотрим какой именно тип приняла переменная.

        type(of: homePlanet) // Optional<String>

    

Чтобы избавиться от предупреждения в интерполяции строки, нам необходимо указать что именно мы выводим. Сделать это можно при помощи оператора as. В этом случаи мы увидим напечатанный nil , когда значение отсутствует. Попробуйте обратиться к элементу с ключом 0.

        print("My home is \(sunSystem[0] as String?)") // My home is nil
print("My home is \(homePlanet as String?)") // My home is Earth
    

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

Сделать это мы можем при помощи оператора объединения по nil??

        var homePlanet = sunSystem[3] ?? "Unknown planet"
print("My home is \(homePlanet)") // My home is Earth

    

Пока опустим темы об опциональных типах и приведении типов(type casting).

В следующих статьях я расскажу о них подробней.

Продолжим!

Кстати, если вы считаете, что Плутон это планета, то можете добавить её самостоятельно!

        sunSystem[9] = "Pluto"

    

Чем отличаются массивы от словарей?

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

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

Например:

        var HierarchyOfNumbers: [Character:String] = [
	"N":"Natural Numbers"
	"Z":"Integers"
	"Q":"Rational Numbers"
	"R":"Real Numbers"
	"C":"Complex Numbers"
]

    

Управление потоком

Часто необходимо выполнять различный код базирующийся на определенных условий (conditions).

  • Если вам необходимо написать различную логику, которая зависит от определенных условий, тогда используйте условные инструкцииif, switch. Инструкцияifхорошо подходит для простых сравнений, и нескольких вариантов исходов.
  • Инструкция switch подходит для более сложных условий. Лучше использовать ее, когда вам необходимо выбрать из множества вариантов альтернатив, основываясь на каком-либо значении, т.е. выполнить код соответствующий определенному шаблону.
  • Когда вам необходимо многократно повторить какие либо инструкции, используйте циклы: for-in,while.

If…else

Инструкция if бывает трех форм.

Традиционное ее представление выглядит так:

        var condition = true
if condition {
	// 
} else {
	//
}

    

В зависимости от условия, мы попадаем в определенные блоки кода. Когда условие истинно(true), выполняется блок следующий за if, а когда ложно(false), выполняется блок следующий за else.

Например, вы решили, что Плутон планета? Сейчас узнаем!

        var isPluto = sunSystemData[9] != nil

if isPluto {
	print("Pluto is planet")
} else {
	print("Pluto is not planet")
}

    

if…

Мы можем опустить блок else, когда нам необходимо выполнить только одно условие.

Рассмотрим такой случай. У нас есть данные, и мы не хотим перезаписать значение. Тогда необходимо проверить наличие данных, и только после добавить значение.

        var key = 0, value = "Sun"
var isExists = sunSystemData[key] != nil // false
if !isExists { // true
	sunSystemData[key] =  value
}

    

if…else if…else

Также мы можем добавить условия следующее за else.

        var value = 0
if value > 0 {
	print("\(value)")
} else if value == 0  {
	print(value)
} else {
	print(value)
}

    

Вы можете комбинировать if else.

Например:

        var a = 0, b = 3, c = 1
if a > b {
	print(a - b)
} else if b > a { 
	print(b - a)
} else if c < a {
	print(a - c)
} else {
	 print(a + b + c)
}

    

switch

В самой простой форме switch выглядит так:

        var value = "R2-D2"
switch value {
	case "R2-D2": print("Take him!")
	case "C-3PO": print("Take him!")
	default: 
		print("These aren't the droids you're looking for.")
}

    

Ключевое слово case определяет возможный случай (шаблон), с которым сравнивается значение value. Затем исполняется соответствующий блок кода на основе первого успешно совпавшего шаблона. В случаи если совпадений не найдено, исполняется блок default , который всегда следует после остальных случаев. Условие default гарантирует что наша конструкция полная и законченная.

Поменяйте значение value, и посмотрите, какой блок кода исполнился.

for-in

Цикл for-in упрощает перебор по последовательностям, т.к. массивы, словари, строки.

Синтаксис for-in выглядит так:

        for value in sequence{
  // 
}

    

Цикл for-in исполняет инструкции определенное количества раз, пока мы не достигнем конца последовательности.

valueэлемент последовательности на каждой итерации(iteration, повторении).

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

        for digit in digits  {
	print(digit)
}
for (key, value) in sunSystemData {
	print("Key:\(key) Value:\(value)")
}

    

while

while имеет две формы.

Первая из них начинается с вычисления условия. Такой цикл можно рассматривать как повторяющаяся инструкция if.

        var condition = true;
while (condition) {
	// тело цикла
}

    

Например, мы хотим пройти 10 000 шагов.

        var stepGoal = 10_000
var mySteps = 0
while mySteps < 10_000 {
	mySteps += 1
}

    

Цикл будет работать пока условие mySteps < 10_000 принимает булево значение true.

Внутри тела цикла мы увеличиваем переменную mySteps на один шаг.

Когда условие принимает значение false, то цикл останавливается.

Расчет факториала числа.

        var counter = 5                
var factorial = 1 // начальное значение             

while counter > 0 {            
    factorial *= counter       
    counter -= 1               
}

print(factorial)  

    

Здесь я вам предлагаю разобраться самостоятельно 😉

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

В остальном repeat-while ведет себя идентично while.

        var condition = true
repeat {
	// тело цикла 
} while (condition)

    

Также цикл while используется, когда нам заранее неизвестно число итераций последовательности. В отличии от цикла for-in.

Функции

В Swift есть два типа функций:

Пользовательские(User-defined Function) и функции стандартной библиотеки (Standard Library Functions).

Функции помогают организовывать код, разбив его на более мелкие части, что делает код более легким для понимания и переиспользования. Мы уже использовали функции стандартной библиотеки, такие как print() и type(). Рассмотрим, как создаются пользовательские функции.

Функция – блок кода, который выполняет конкретную задачу.

Каждая функция имеет уникальное имя, которое является ее идентификатором.

        func functionName(parameters) -> returnType {
  // тело функии 
}

    

Объявить функцию можно при помощи ключевого слова func.

За ним следует имя функцииfunctionName.

В скобках указываются параметры(parameters) функции.

Параметр – это значение определенного типа, принимаемое функцией.

returnType – указывает, какого типа значение возвращает функция

Чтобы исполнить функцию, ее необходимо вызвать (как мы уже делали это с print()).

        // вызов функции
functionName()

    

Функции без параметров

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

        func greetings() {
	 print("Hello Proglib!")
}
greetings()

print("Done!")

    

Мы объявили функцию с именем greetings() , которая просто печатает "Hello Proglib!" в консоли. Она не имеет параметров и возвращаемого значения. При вызове функции управление программой переходит к определению функции. Затем исполняется код, который содержится внутри тела функции:

        print("Hello Proglib!")
    

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

        print("Done!")
    

Функции с параметрами

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

Например, разница между двумя значениями:

        func difference(a: Int, b: Int) -> Int {
	return a - b 
}
var result = difference(a: 3, b: 2)
print(result)

    

Мы объявили функцию с именем difference, которая принимает два параметра типа Int и возвращает значение типа → Int. При вызове функции, мы передаем параметры в круглых скобках (a: 3, b: 2).

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

        func difference(of a: Int, less b: Int) -> Int {
  return a - b
}

    

Метка аргумента используется при вызове функции.

        difference(of: 1, less: 2)
    

По умолчанию параметры используют свое имя параметра в качестве метки аргумента(как в первом примере).

Если вам не нужна метка для аргумента, то напишите _ вместо конкретного названия метки для аргумента.

        func difference(_ x: Int, _ y: Int) -> Int {
  return x - y
}

difference(3, 4)

    

Мы можем опустить оператор return , когда тело функции является одним выражением.

        func difference(a: Int, b: Int) -> Int {
	a - b 
}

    

Заключение

Мы познакомились с фундаментальным синтаксисом языка программирования Swift. Рассмотрели основные операторы, научились объявлять переменные и объединять код в функции. В следующие полчаса разберем каждую тему более глубоко. На сегодня все! Playground доступен на Github.

04
Ноя
2021

🍏 Самоучитель для начинающих: освойте основы Swift за 30 минут

Думаете, чтобы освоить Swift нужно много времени? И да, и нет. В изучении языков программирования важна практика, но что может сделать начинающий за 30 минут? Только познакомиться с базовым синтаксисом с помощью нашего самоучителя.

Создать Playground

Запустим Xcode и создадим Playground. Назовем его “BasicSwift”:

File → New → Playground…

⌥⇧⌘N

Swift Playground – это такой тип файлов, который представляет из себя игровую площадку для ваших экспериментов с кодом Swift. Результат исполнения каждой строчки кода вы можете наблюдать в боковой панели (Sidebar).

Переменные, константы, типы

Переменные обозначаются с помощью ключевого слова var

        var hello = "Hello Proglib"
    

Чтобы объявить константу используется ключевое слово let

        let brandName = "Proglib"
    
Swift – это статистический типизированный язык, а это значит, что мы должно явно задать тип каждой переменной во время компиляции.

Указывать тип переменной необязательно. Компилятор Swift автоматически его определит. Эта особенность называется интерференцией типов(type inference).

Swift предлагает следующие базовые типы: Int или UInt, Double, Float, String, Character, Bool, Tuples, Optional.

Множество типов фундаментально и чаще всего используется для объявления переменных. Забегая вперед скажу, что вы также можете создавать и свои собственные типы.

Мы не будет детально разбирать их все! Посвятим этой теме следующую 30-ти минутку.

Укажем тип нашей константы.

        let brandName: String = "Proglib"
    
Больше полезной информации вы можете найти на нашем телеграм-канале «Библиотека мобильного разработчика».

Интерполяция строк

Давайте теперь выведем имя бренда в консоль при помощи функции print().

        print(brandName)
    

Интерполяция – это способ объединить переменные и константы внутри строки.

Теперь присвоим переменной hello новое значение, и выведем в консоль.

        hello = "Hello \(brandName)"
print(hello)
    

Вот еще пример:

        let name = "Ivan" 
var age: UInt8 = 30
print("\(hello). My name is \(name). I am \(age)")

    

Базовые операторы

Здесь все интуитивно. Предлагаю вам поэкспериментировать с ними самостоятельно и посмотреть на результаты.

Арифметические операторы

+ сложение
вычитание
/ деление
% деление по модулю
        var a = 1, b = 2
var result = a + b
// etc

    

Операторы присвоения

= , +=, -=, /=, %=

        var h = 10
h += 1
h /= 2
h %= 2
// etc

    

Операторы сравнения

Операторы сравнения в качестве результата возвращают значения типа Bool

==, ≠, >, <, ≥, ≤

        let condition = 2 > 3
let condition2 = 1 != 0
let resultCondition = condition == condition2
// etc

    

Логические операторы

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

Рассмотрим на примере:

        // логическое И
print(true && true)      // true
print(true && false)     // false

// логическое ИЛИ
print(true || false)      // true

// логическое НЕ – инвертирует булево значение
print(!true)              // false

    

Это еще не все операторы, которые существуют в Swift. Остальные мы рассмотрим в контексте целей их предназначения.

Коллекции

Swift предлагает нам три основных типа коллекций: Array(Массивы), Dictionary(Словари) и Set(Множества). Сейчас мы рассмотрим первые два.

Array

Используйте квадратные скобки [], чтобы создавать массивы(Array) и словари(Dictionary).

Получить доступ к элементам массива можно написав индекс внутри скобок.

        let digits: [UInt8] = [0, 1, 2, 3, 4, 5, 6, 7, 8 ,9]
 print(digits[3])

    

Попробуйте изменить значение в массиве digits. Что произойдет?

        digits[0] = 1
    
🪲
Cannot assign through subscript: ‘digits’ is a ‘let’ constant

Поскольку мы объявили массив как константу, то и все его значения становится не изменчивыми (immutable), как и его размер. А если мы объявим массив как переменную, то он будет изменчивым (mutable). Такое свойство называют изменчивостью коллекций (mutability of collection).

Это утверждение справедливо и для Словарей.

        // mutable
var numbers = [50, 10, 20, 34, 45]
print(numbers[0])
numbers[0] = numbers[0] + 1

    

Dictionary<Key, Value>

Создадим словарь sunSystemData, в который добавим данные о солнечной системе.

Пусть ключами (key) данного словаря будут номера объектов солнечной системы, а значениями (value) названия объектов. Поскольку звезда рождается первой, то будем считать, что ключ со значением 0 всегда указывает на звезду. Остальные объекты следуют в порядке по отношению к звезде.

        var sunSystemData = [ 0: "Sun", 1:"Mercury", 2:"Venus", 
	3:"Earth", 4:"Mars", 5:"Jupiter", 6:"Saturn", 7:"Uranus", 8:"Neptune"]

    

Мы не указали типы для словаря явно. Вы можете проверить как их определил Swift, используя функцию стандартной библиотеки Swift (Swift Standard Library) type(of: T).

        type(of: sunSystemData) // Dictionary<Int, String>

    

Обратиться к элементу словаря можно, написав ключ внутри скобок. Результат будет содержать значение опционального типа (Optional), а если по заданному ключу (в скобках) нет соответствующего элемента, то получим nil.

nil в Swift означает отсутствие значения.

Получим нашу родную планету и выведем ее в консоль.

        var homePlanet = sunSystemData[3]
print("My home is \(homePlanet)")

    

Когда мы попытались вывести переменную в консоль, то получили предупреждение!

🪲
String interpolation produces a debug description for an optional value; did you mean to make this explicit?

Давайте посмотрим какой именно тип приняла переменная.

        type(of: homePlanet) // Optional<String>

    

Чтобы избавиться от предупреждения в интерполяции строки, нам необходимо указать что именно мы выводим. Сделать это можно при помощи оператора as. В этом случаи мы увидим напечатанный nil , когда значение отсутствует. Попробуйте обратиться к элементу с ключом 0.

        print("My home is \(sunSystem[0] as String?)") // My home is nil
print("My home is \(homePlanet as String?)") // My home is Earth
    

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

Сделать это мы можем при помощи оператора объединения по nil??

        var homePlanet = sunSystem[3] ?? "Unknown planet"
print("My home is \(homePlanet)") // My home is Earth

    

Пока опустим темы об опциональных типах и приведении типов(type casting).

В следующих статьях я расскажу о них подробней.

Продолжим!

Кстати, если вы считаете, что Плутон это планета, то можете добавить её самостоятельно!

        sunSystem[9] = "Pluto"

    

Чем отличаются массивы от словарей?

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

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

Например:

        var HierarchyOfNumbers: [Character:String] = [
	"N":"Natural Numbers"
	"Z":"Integers"
	"Q":"Rational Numbers"
	"R":"Real Numbers"
	"C":"Complex Numbers"
]

    

Управление потоком

Часто необходимо выполнять различный код базирующийся на определенных условий (conditions).

  • Если вам необходимо написать различную логику, которая зависит от определенных условий, тогда используйте условные инструкцииif, switch. Инструкцияifхорошо подходит для простых сравнений, и нескольких вариантов исходов.
  • Инструкция switch подходит для более сложных условий. Лучше использовать ее, когда вам необходимо выбрать из множества вариантов альтернатив, основываясь на каком-либо значении, т.е. выполнить код соответствующий определенному шаблону.
  • Когда вам необходимо многократно повторить какие либо инструкции, используйте циклы: for-in,while.

If…else

Инструкция if бывает трех форм.

Традиционное ее представление выглядит так:

        var condition = true
if condition {
	// 
} else {
	//
}

    

В зависимости от условия, мы попадаем в определенные блоки кода. Когда условие истинно(true), выполняется блок следующий за if, а когда ложно(false), выполняется блок следующий за else.

Например, вы решили, что Плутон планета? Сейчас узнаем!

        var isPluto = sunSystemData[9] != nil

if isPluto {
	print("Pluto is planet")
} else {
	print("Pluto is not planet")
}

    

if…

Мы можем опустить блок else, когда нам необходимо выполнить только одно условие.

Рассмотрим такой случай. У нас есть данные, и мы не хотим перезаписать значение. Тогда необходимо проверить наличие данных, и только после добавить значение.

        var key = 0, value = "Sun"
var isExists = sunSystemData[key] != nil // false
if !isExists { // true
	sunSystemData[key] =  value
}

    

if…else if…else

Также мы можем добавить условия следующее за else.

        var value = 0
if value > 0 {
	print("\(value)")
} else if value == 0  {
	print(value)
} else {
	print(value)
}

    

Вы можете комбинировать if else.

Например:

        var a = 0, b = 3, c = 1
if a > b {
	print(a - b)
} else if b > a { 
	print(b - a)
} else if c < a {
	print(a - c)
} else {
	 print(a + b + c)
}

    

switch

В самой простой форме switch выглядит так:

        var value = "R2-D2"
switch value {
	case "R2-D2": print("Take him!")
	case "C-3PO": print("Take him!")
	default: 
		print("These aren't the droids you're looking for.")
}

    

Ключевое слово case определяет возможный случай (шаблон), с которым сравнивается значение value. Затем исполняется соответствующий блок кода на основе первого успешно совпавшего шаблона. В случаи если совпадений не найдено, исполняется блок default , который всегда следует после остальных случаев. Условие default гарантирует что наша конструкция полная и законченная.

Поменяйте значение value, и посмотрите, какой блок кода исполнился.

for-in

Цикл for-in упрощает перебор по последовательностям, т.к. массивы, словари, строки.

Синтаксис for-in выглядит так:

        for value in sequence{
  // 
}

    

Цикл for-in исполняет инструкции определенное количества раз, пока мы не достигнем конца последовательности.

valueэлемент последовательности на каждой итерации(iteration, повторении).

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

        for digit in digits  {
	print(digit)
}
for (key, value) in sunSystemData {
	print("Key:\(key) Value:\(value)")
}

    

while

while имеет две формы.

Первая из них начинается с вычисления условия. Такой цикл можно рассматривать как повторяющаяся инструкция if.

        var condition = true;
while (condition) {
	// тело цикла
}

    

Например, мы хотим пройти 10 000 шагов.

        var stepGoal = 10_000
var mySteps = 0
while mySteps < 10_000 {
	mySteps += 1
}

    

Цикл будет работать пока условие mySteps < 10_000 принимает булево значение true.

Внутри тела цикла мы увеличиваем переменную mySteps на один шаг.

Когда условие принимает значение false, то цикл останавливается.

Расчет факториала числа.

        var counter = 5                
var factorial = 1 // начальное значение             

while counter > 0 {            
    factorial *= counter       
    counter -= 1               
}

print(factorial)  

    

Здесь я вам предлагаю разобраться самостоятельно 😉

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

В остальном repeat-while ведет себя идентично while.

        var condition = true
repeat {
	// тело цикла 
} while (condition)

    

Также цикл while используется, когда нам заранее неизвестно число итераций последовательности. В отличии от цикла for-in.

Функции

В Swift есть два типа функций:

Пользовательские(User-defined Function) и функции стандартной библиотеки (Standard Library Functions).

Функции помогают организовывать код, разбив его на более мелкие части, что делает код более легким для понимания и переиспользования. Мы уже использовали функции стандартной библиотеки, такие как print() и type(). Рассмотрим, как создаются пользовательские функции.

Функция – блок кода, который выполняет конкретную задачу.

Каждая функция имеет уникальное имя, которое является ее идентификатором.

        func functionName(parameters) -> returnType {
  // тело функии 
}

    

Объявить функцию можно при помощи ключевого слова func.

За ним следует имя функцииfunctionName.

В скобках указываются параметры(parameters) функции.

Параметр – это значение определенного типа, принимаемое функцией.

returnType – указывает, какого типа значение возвращает функция

Чтобы исполнить функцию, ее необходимо вызвать (как мы уже делали это с print()).

        // вызов функции
functionName()

    

Функции без параметров

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

        func greetings() {
	 print("Hello Proglib!")
}
greetings()

print("Done!")

    

Мы объявили функцию с именем greetings() , которая просто печатает "Hello Proglib!" в консоли. Она не имеет параметров и возвращаемого значения. При вызове функции управление программой переходит к определению функции. Затем исполняется код, который содержится внутри тела функции:

        print("Hello Proglib!")
    

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

        print("Done!")
    

Функции с параметрами

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

Например, разница между двумя значениями:

        func difference(a: Int, b: Int) -> Int {
	return a - b 
}
var result = difference(a: 3, b: 2)
print(result)

    

Мы объявили функцию с именем difference, которая принимает два параметра типа Int и возвращает значение типа → Int. При вызове функции, мы передаем параметры в круглых скобках (a: 3, b: 2).

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

        func difference(of a: Int, less b: Int) -> Int {
  return a - b
}

    

Метка аргумента используется при вызове функции.

        difference(of: 1, less: 2)
    

По умолчанию параметры используют свое имя параметра в качестве метки аргумента(как в первом примере).

Если вам не нужна метка для аргумента, то напишите _ вместо конкретного названия метки для аргумента.

        func difference(_ x: Int, _ y: Int) -> Int {
  return x - y
}

difference(3, 4)

    

Мы можем опустить оператор return , когда тело функции является одним выражением.

        func difference(a: Int, b: Int) -> Int {
	a - b 
}

    

Заключение

Мы познакомились с фундаментальным синтаксисом языка программирования Swift. Рассмотрели основные операторы, научились объявлять переменные и объединять код в функции. В следующие полчаса разберем каждую тему более глубоко. На сегодня все! Playground доступен на Github.

29
Окт
2021

🐍 ТОП-20 бесплатных учебных курсов по Python для начинающих разработчиков

Учиться никогда не поздно. Предлагаем вашему вниманию 20 лучших бесплатных курсов по Python на русском языке для начинающих разработчиков.

Мы отобрали бесплатные и хорошо зарекомендовавшие себя курсы по Python на Stepik и Coursera. Если вы в начале пути, держите дорожную карту Python-разработчика. Нужно срочно, за один вечер освоить базовые понятия? Попробуйте самоучитель по Питону для начинающих. Нужны профессиональные навыки? Воспользуйтесь нашим курсом Python-разработчика.

Курсы на Stepik


“Поколение Python”: курс для начинающих8 модулей с теоретическими и практическими материалами и заданиями, формирующими базовые понятия структурного программирования. Этот курс победил в конкурсе Stepik Awards 2020 в номинации “Лучший бесплатный онлайн-курс.

“Поколение Python”: курс для продвинутых 11 модулей знакомят с дополнительными возможностями языка Python.

Программирование на Python (28 уроков) – курс по программированию на Python на базе программы Института биоинформатики.

Добрый, добрый Python – обучающий курс от Сергея Балакирева (66 уроков) – от азов до среднего уровня с большим количеством задач (331) и тестовых заданий (144).

Инди-курс программирования на Python от egoroff_channel (77 уроков) – Отзыв студента: «Этот курс, на ряду с ‘”Поколение Python”: курс для начинающих один из самых лучших курсов по питону для новичков. Спасибо автору за работу. Рекомендую».

ООП на Python от egoroff_channel (38 уроков) – продолжение курса от Артема Егорова по ООП.

Python: основы и применение (19 уроков) – курс для людей с начальными навыками программирования на Python или других языках программирования. Наряду с базой рассматриваются продвинутые темы: ООП, анализ текста.

Практикум по математике и Python (53 урока) – основы Питона, векторы, матрицы, теория вероятностей и статистика. Плюс, 238 задач и материалов для углубленного и более детального изучения.

Основы программирования на языке Python в примерах и задачах (13 уроков) – в научно-популярной форме объясняется физическая, математическая или экономическая суть каждой задачи. Дают только ту теорию, которая нужна для решения конкретной задачи.

Программирование на Python (часть 1, часть 2) – отзыв: «На самом деле это пять с двумя большими минусами. Годится этот курс как упражнения, для тех, кто уже какой-то курс прошел и хочет взбудоражить свои знания. Как теоретическая база – точно нет, учиться по нему не стоит. Есть очень сложные задачи, очень интересные, пройти курс стоит, но надо быть лояльным к тому, как он реализован.»

Python для решения практических задач (16 уроков) – научитесь правильно гуглить и решать задачи сбора данных.

Основы программирования начинающим. Python (23 урока) – отзыв: «Курс хоть и миниатюрненький, но все же парочку вещей удалось почерпнуть (я новичок).»

Программирование на Python [Отборный материал] (13 уроков) – создадите бота, защитите программу, зашифруете файлы в оперативной памяти, поработаете с декораторами и многое другое.

Онлайн подготовка к кружку по Python ПМ-ПУ СПбГУ (38 уроков) – узнаете о переменных, циклах и функциях. Отзыв: «Хороший вводный курс. Понравилось, что научили создавать бота в Telegram.»

Программирование на Python для решения олимпиадных задач (27 уроков) – повторите основы Питона и прокачаете логику, структурное мышление и подготовитесь к соревнованиям и конкурсам естественно-научной и технической направленности, таким как Олимпиада НТИ.

Курсы на Coursera


Основы программирования на Pythonизучите основные конструкции языка Python, ООП и научитесь автоматизировать задачи по сбору и обработке данных. Курс проводился в оффлайн варианте для студентов бакалавриата факультета компьютерных наук НИУ ВШЭ.

Погружение в Python – дают базу, ООП, асинхронность и многопоточность.

ООП и паттерны проектирования в Python – используя проверенные временем концепции, научитесь писать красивый код.

Python как иностранный – на курсе узнаете об основных понятиях языка, научитесь читать и анализировать csv-файлы и получите навыки веб-скрейпинга.

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

Материалы по теме:

Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека питониста».

19
Окт
2021

🎥 12 лучших каналов YouTube о Kotlin для новичков и профессионалов

У всех на слуху эта альтернатива Java с ее трендовостью и облегченным синтаксисом. Пришло время приобщиться к Kotlin и получить драгоценные скилы. Предлагаем вашему вниманию подборку лучших каналов YouTube об этом популярном языке программи…

12
Окт
2021

👨‍🎓️ Дорожная карта системного администратора: 4 шага от эникея до системного инженера

Системные администраторы – в современном мире их услуги по-прежнему актуальны, но путь в профессию стал гораздо труднее. Рассмотрим его основные вехи более детально.

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

Есть ли смысл заниматься системным
администрированием? Если вам по душе уединение, нравится ковыряться в железе,
что-то настраивать или устанавливать, тогда добро пожаловать! Чуть ниже будет
предложена дорожная карта, следуя которой можно отойти от примитивного эникейства и превратиться в
системного инженера (люди соответствующей квалификации не любят, когда их
называют администраторами), а то и в специалиста по DevOps или SRE. Проявив особую настойчивость, можно стать и тимлидом.

Сисадмин – умирающая профессия?

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

Даже представителям
столичного региона стоит помнить, что спрос на
системных администраторов, исчисляемый в человеко-часах, в последние годы стал
сокращаться
!

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

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

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


Кому нужен сисадмин?

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

  • компании из сферы IT c адаптированной под решение соответствующих задач
    технической инфраструктурой и подходящим ПО;
  • банки и крупные торговые сети;
  • фирмы, в которых роль сисадминов сводится лишь к уже упомянутому
    «эникейству».

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


Доходы сисадминов в России

Если немного
развить тему заработной платы, то у системных администраторов она варьируется в зависимости от
следующих факторов:

  • Проживание в том или ином регионе РФ.
<a href="https://russia.trud.com/salary/692/3303.html" target="_blank" rel="noopener noreferrer nofollow">Распределение средней ЗП сисадминов в зависимости от региона РФ.</a>
Распределение средней ЗП сисадминов в зависимости от региона РФ.
  • Вид хозяйственной деятельности компании-работодателя.
  • Специализация системного администратора.
<a href="https://zavistnik.com/skolko-poluchaet-sistemnyj-administrator/" target="_blank" rel="noopener noreferrer nofollow">Зависимость
ЗП сисадмина от его специализации.</a>
Зависимость
ЗП сисадмина от его специализации.
  • Квалификация специалиста, соотношение спроса и предложения на рынке труда и т.д.

Идеальный сисадмин – какой он?

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


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

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

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

Дорожная карта
системного администратора

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

Шаг 1. Выберите образование системного администратора


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

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

Настоятельно рекомендуется установить виртуальную машину с Linux и освоить популярные языки сценариев: Perl, Python и Bash.

Опыт работы с Vim,
Git и SQL тоже пригодится в будущей профессиональной деятельности:

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

Зато о вас узнают, что позволит обзавестись полезными
профессиональными связями.

Шаг 2. Приобретите первоначальный опыт работы


Работодатели хотят видеть в рядах имеющих стаж (обычно от 3 до 5 лет) сотрудников, поэтому позаботиться
о своей профессиональной привлекательности вам придется заранее, возможно,
находясь еще на студенческой скамье.

Сгодится все: фриланс, волонтёрская деятельность или даже самостоятельная занятость. Опыт увеличит ваши шансы на получение должности. Главное, не забывайте создавать портфолио. Эффект будет намного сильнее, если все сказанное будет подкреплено реально выполненными работами, результат которых можно показать.

Шаг 3. Получите сертификаты


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

Наиболее известными являются следующие виды
сертификатов:

  1. Oracle Linux System
    Administrator (OLSA) – от Oracle.
  2. RHCA – от Red Hat.
  3. Server+ – от CompTIA.
  4. МТА (для новиков), MCSA (для соискателей с
    базовым уровнем знаний), MCSE
    (для профессионалов)
    – сертификаты от Microsoft.

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

Шаг 4. Продвигайтесь
вверх по карьерной лестнице


Если вам удалось стать системным администратором, не стоит почивать на лаврах. Никогда не останавливайтесь и идите дальше, даже если вы достигли серьезных высот. Постоянно обучайтесь, чтобы уйти в DevOps/SRE, а то и в тимлиды.

***

Если вы только начинаете путь в профессии, обратите внимание на курс «Системный администратор» образовательной онлайн-платформы GeekBrains. Под руководством экспертов-практиков за семь месяцев вы получите востребованную профессию, научитесь поддерживать работу Linux-систем и сайтов, работать с веб-сервером nginx и пользоваться базами данных. Для освоения курса хватит школьных знаний, а успешно завершившие его слушатели получат диплом о переподготовке и помощь в трудоустройстве.

11
Окт
2021

Посоветуйте, где можно научиться программированию на Питоне, сайт, книга, по вашему опыту [дубликат]

уважаемые пользователи stack overflow. Посоветуйте пожалуйста начинающему программисту на Python найти нормальную, хорошую книгу, либо сайт, где можно начать изучать Python.
Всем большое спасибо!

10
Окт
2021

📖 ТОП-10 книг по C#: от новичка до профессионала

В статье представлен список из 10 лучших актуальных книг, которые должны быть в библиотеке каждого начинающего и продвинутого программиста, изучающего C#.

C# (C Sharp) – это универсальный язык программирования общего назначения, созданный специалистами корпорации Microsoft и работающий на базе фреймворка .NET. C# широко используется для создания кроссплатформенных приложений для настольных, серверных и мобильных платформ, включая сложные игровые программы.

1. Джозеф Албахари, «C# 9.0. Справочник. Полное описание языка»

Если у вас есть вопросы по C# 9.0 или .NET 5, в этом бестселлере на них найдутся ответы. C# – язык необычайной гибкости и широты, но из-за постоянного развития мы все время узнаем о нем что-то новое. Это тщательно обновленное издание является лучшим однотомным справочником по языку C# на сегодняшний день.


Преимущества:

  • Исчерпывающее описание C#, начиная с основ синтаксиса и заканчивая такими продвинутыми темами, как указатели, замыкания и шаблоны.
  • Три главы книги посвящены LINQ. Изучите параллелизм и асинхронность, продвинутое потоковое и параллельное программирование.
  • Описана работа с функциями .NET, включая регулярные выражения, сетевое взаимодействие, сериализацию, разветвление, отражение и криптографию.
  • С помощью этого справочника можно изучить Roslyn – модульный компилятор C#.

Недостатки:

  • Книга слишком подробна и не годится для быстрого получения справки: нужно читать весь посвященный нужной теме раздел.
  • Устаревание информации: раз в 1 – 2 года технология меняется и книга требует обновления.

2. Joe Mayo, «C# Cookbook»

Даже если вы знакомы с синтаксисом C#, умение сочетать различные возможности языка является важнейшим навыком при создании приложений. Эта удобная поваренная книга полна рецептов, которые помогут вам решить любые задачи программирования на C#. Вы узнаете проверенные приемы улучшения производительности и качества кода.


Преимущества:

  • В книге описаны приемы использования новейших возможностей C# 9.0.
  • Автор рассказывает об использовании шаблонов для решения широкого круга проблем.
  • Приведены рецепты для важных сценариев кодирования на C#.
  • Можно повторно использовать код, который решает общие проблемы.
  • Книга позволяет серьезно расширить знания в области программирования на C# и улучшить качество приложений.

Недостатки:

  • Не замечены.

3. Стивен Клири, «Конкурентность в С#»

Как использовать параллелизм, как написать асинхронный код или многопоточное приложение? Если вы задаетесь этим вопросами при старте нового проекта, эту книгу вам стоит прочесть.

Эта практическая поваренная книга изменит ваше мнение. В более чем 75 богатых примерами кода рецептах автор демонстрирует методы параллельной обработки и асинхронного программирования.


Преимущества:

В книге обсуждаются действительно сложные и интересные темы

  • async и await для асинхронных операций.
  • Параллельное программирование с помощью библиотеки Task Parallel Library.
  • Библиотека TPL Dataflow для создания конвейеров потоков данных.
  • Возможности, которые Reactive Extensions создает поверх LINQ.
  • Юнит-тестирование с параллельным кодом.
  • Сценарии взаимодействия для комбинирования параллельных подходов.
  • Неизменяемые потокобезопасные коллекции производителей/потребителей.
  • Поддержка отмены в параллельном коде.
  • Асинхронное объектно-ориентированное программирование.
  • Синхронизация потоков для доступа к данным.

Недостатки:

  • Книга написана не для нового С# 9, но принципы работы те же.

4. Джеффри Рихтер, «Сlr via C# (4 издание)»

Овладейте тонкостями C# и платформы .NET. Под руководством консультанта команды Microsoft .NET вы получите практические знания для создания надежных и отзывчивых приложений и компонентов.


Преимущества:

  • В книге детально рассказывается, как работает С#.
  • Много информации о фичах С#, вроде многопоточности и дженериков.
  • Есть примеры кода.

Недостатки:

  • Год издания.
  • Книга не подходит новичкам.

5. Jason Alls, «Clean Code in C#»

Развивайте навыки программирования, изучая такие важные темы, как внедрение TDD и BDD и проектирование API для преодоления неэффективности кода, избыточности и других проблем.


Преимущества:

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

Недостатки:

  • Не замечены.

6. Mark J. Price, «C# 9 and .NET 5 – Modern Cross-Platform Development»

Автор дает все необходимые сведения, чтобы начать создавать приложения на C#. Книга учит писать современные кросплатформенные программы с помощью .NET Core 5.0 и знакомит читателей с важными особенностями C# 9. Материал рассчитан на имеющих опыт программирования людей.


Преимущества:

  • Книга учит созданию кроссплатформенных приложений для Windows, macOS, Linux, iOS и Android.
  • В ней есть сведения о работе с ASP. NET Core 5.0 и создании веб-приложений.
  • Затронуто объектно-ориентированное программирование и многозадачность в C#, а также работа с данными при помощи LINQ.
  • Описана разработка приложений с помощью универсальной платформы Windows и XAML.

Недостатки:

  • Не замечены.

7. Andrew Lock, «ASP.NET Core in Action, Second Edition (2021)»

Это исчерпывающее руководство по созданию веб-приложений с помощью ASP.NET Core 5.0. Пройдите путь от базовых концепций HTTP до продвинутой настройки фреймворка. Иллюстрации и аннотированный код делают обучение наглядным и простым. Освойте логины, внедрение зависимостей, безопасность и многое другое. Второе издание книги охватывает новейшие возможности, включая Razor Pages и новую парадигму хостинга.


Преимущества:

  • Описана разработка приложений для серверов на Windows и других ОС.
  • Разобрано конфигурирование приложений.
  • Разобрано создание пользовательских компонентов.
  • Есть информация по ведению журналов, тестированию и безопасности.

Недостатки:

  • Не замечены.

8. Steven van Deurser & Mark Seemann, «Dependency Injection Principles, Practices, and Patterns»

Книга учит читателей использовать Dependency Injection для уменьшения жестко закодированных зависимостей между компонентами приложения. Тщательно разъясненные примеры создадут основу, которую можно будет применить к любой из многочисленных библиотек DI для .NET и .NET Core.


Преимущества:

Книга затрагивает важные темы

  • Интеграцию с распространенными фреймворками приложений .NET.
  • Паттерны и антипаттерны DI.
  • Аспектно-ориентированное программирование.
  • Использование библиотек и контейнеров DI от Microsoft, а также с открытым исходным кодом.

Недостатки:

  • Не замечены.

9. Konrad Kokosa, «Pro .NET Memory Management»

Понимание внутренней работы и методов управления памятью в .NET поможет вам избежать широкого спектра проблем с производительностью и масштабируемостью программного обеспечения. “Pro .NET Memory Management” – это полное руководство по написанию лучшего программного обеспечения.


Преимущества:

  • В книге описаны теоретические основы автоматического управления памятью. Книга глубоко погружает читателя в каждый аспект управления памятью .NET, включая подробное освещение реализации сборки мусора (GC). Без нее на освоение материала потребовались бы годы практики.
  • Есть практические советы о применении полученных знаний в реальной разработке программного обеспечения.
  • Приведены сведения об использовании связанных с управлением памятью инструментов .NET для диагностики различных проблем.
  • С помощью этой книги можно изучить различные аспекты расширенного управления памятью, включая использование типов Span и Memory.

Недостатки:

  • Не замечены.
10. David Thomas & Andrew Hunt, «The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition, 2nd Edition»
Эта книга не про C#, но вы будете читать, перечитывать и перечитывать ее снова на протяжении многих лет. Новички и опытные практики найдут в книге много полезных сведений.

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


Преимущества:

  • Книга обучает борьбе с «гниением» программного обеспечения.
  • Дает возможность постоянно учиться и позволяет избежать ловушки дублирования знаний.
  • Учит писать гибкий, динамичный и адаптируемый код.
  • Учит использовать возможности базовых инструментов.

Недостатки:

  • Не замечены.
***

Чтобы стать профессионалом, потребуется время, настойчивость и внимание. Если вы только собираетесь освоить популярный язык программирования, стоит обратить внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. За 13 месяцев вы сможете изучить язык программирования и платформу .NET с нуля, а также разберетесь с особенностями создания веб-приложений и корпоративных приложений. Преподают на курсах ведущие разработчики российских технологических компаний, под руководством которых вы не только получите теоретические знания, но и сможете добавить в портфолио 4 реализованных проекта. Успешно завершившие курс студенты получат дипломы о профессиональной подготовке и помощь в трудоустройстве.

06
Окт
2021

❓ Как использовать обобщения в C# – краткая инструкция для новичков

Обобщения (generics) необходимы в тех случаях, когда мы не можем заранее знать тип данных, который будем использовать. Они есть во многих языках программирования, и сегодня мы расскажем про обобщения в C# – материал будет полезен для начина…

06
Окт
2021

Повторяющиеся слова в тексте на Python

Есть вот такая задача: Напишите программу, которая считывает текст из файла (в файле может быть больше одной строки) и выводит самое частое слово в этом тексте и через пробел то, сколько раз оно встретилось. Если таких слов несколько, выве…

30
Сен
2021

☕ ТОП-10 актуальных книг по JavaScript на русском языке: от новичка до профессионала

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

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

В обзоре рассмотрены преимущественно издания, относительно недавно переведенные на русский язык.

1. Разработка на JavaScript. Построение кроссплатформенных приложений с помощью GraphQL, React, React Native и Electron (2021)


Автор: Адам Д. Скотт.

Книга о необходимых инструментах, концепциях и подходах к настройке javascript-программ. Предназначена она для разработчиков, желающих освоить полный стек. Автор рассказывает, как при помощи GraphQL, Node.js, React, React Native и Electron создавать надежные кроссплатформенные приложения и API-интерфейсы. Это идеальный помощник для навигации по постоянно меняющейся экосистеме современного JavaScript.

Не подходит для новичков.

Отзывы:

Содержание книги в целом довольно неплохое и это именно то, что мне нужно – руководство для тех, кто уже умеет кодить и знает приличное количество технологий, используемых в книге, но испытывает проблемы с тем, как их собрать вместе.
Источник: Amazon.com.

2. Рефакторинг кода на JavaScript. Улучшение проекта существующего кода (2019)


Автор: Фаулер Мартин.

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

Написанная еще в 1999 году первая книга Фаулера из этой серии – «Рефакторинг. Улучшение существующего кода» – долгое время была пособием по созданию удобочитаемых скриптов для большинства современных разработчиков.

Подходит как начинающим разработчикам, так и опытным профессионалам.

Отзывы:

По содержанию эта книга не имеет себе равных – это кладезь полезных методов, помогающих поддерживать код в наилучшей из возможных форме. Фаулер подробно описывает шаги, предпринимаемые для каждого вида рефакторинга.
Источник: Amazon.com.

3. Секреты JavaScript ниндзя (2018)


Авторы: Джон Резиг, Биер Бибо.

Чтобы начать читать эту книгу, не обязательно быть ниндзя – просто будьте готовы стать им.
Цитата

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

Предназначена для разработчиков среднего уровня.

Отзывы:

Книга станет для вас крепким подспорьем в мире “ванильного” JavaScript. Дает достаточно обширные и интересные знания того, как работают многие вещи в JS: функции, замыкания, области видимости, контекст вызова и тому подобные вещи. Объясняется, как можно использовать все вышеописанные средства языка на практике. Пройденный материал подкрепляется несколькими практическими упражнениями “на подумать”. Хочется отметить, что книга точно не подойдет для тех, кто только начинает свой путь в JS. Чтобы понять приведенные в книге концепции, как минимум, вы должны знать базовые составляющие языка.
Источник: livelib.ru.
Делайте скидку на год издания: книга не самая современная.

4. Бессерверные приложения на JavaScript (2020)


Авторы: Александр Симович, Слободан Стоянович.

Современное пособие по использованию JavaScript для создания бессерверных веб-приложений. Из него вы узнаете, как такие приложения создаются, работают, тестируются и переносятся. Книга – грамотно написанное практическое руководство, хорошо структурированное и правильно иллюстрированное примерами кода, диаграммами и скриншотами, а также некоторыми примерами из реальной жизни. Вместе с автором вы разработаете проект пиццерии, без использования серверной части поддерживающий онлайн-меню приема заказов, платежи и другие процессы и функции. При этом основными вашими инструментами будут Node.js, Claudia.js и AWS Lambda. Также будет освещена работа с Jenkins, фреймворком тестирования Jasmine и платежным сервисом Stripe.

Подходит для веб-разработчиков, уже знакомых с JavaScript и Node.js.

Отзывы:

Бессерверная система – важная парадигма, которая становится самым быстрым способом создания масштабируемых веб-приложений, но технология настолько нова, что новичкам может быть сложно изучить ее. В этой книге собраны воедино все ключевые методы, необходимые для понимания создания бессерверного приложения, используя NodeJS в качестве связующего звена между различными сервисами AWS.
Источник: Amazon.com.

5. Программирование на JavaScript для чайников (2017)


Авторы: Крис Минник, Ева Холланд.

Это простое в использовании руководство поможет вам изучить основы JavaScript. Вместе с авторами вы настроите среду разработки, познакомитесь с базовым синтаксисом языка, научитесь работать с CSS и графикой, а также узнаете о нюансах взаимодействия JavaScript с HTML5. Из книги вы также прочитаете про десять самых распространенных ошибок начинающих разработчиков и о том, как их избежать.

Подходит для новичков.

Отзывы:

В книге бегло описываются все концепции языка без детального описания. В 300 страниц умудрились вместить весь JS, плюс информацию по HTML, CSS, AJAX, JSON, JQuery. Не хватает посвящения в PHP и SQL для полноты ощущений. Стоит ли говорить, что подача материала очень поверхностна.
Источник: ozon.ru.
Делайте скидку на год издания: книга не самая современная.

6. Изучаем программирование на JavaScript (2020)


Авторы: Эрик Фримэн, Элизабет Робсон.

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

Подходит для новичков.

Отзывы:

В отличие от академического изложения большинства учебников, эта книга больше направлена на изучение практических моментов: наиболее частые ошибки, наиболее важные аспекты практического программирования, правильный стиль. Хотя имеет много воды – ненужных картинок и непонятных американских тестов в конце каждой темы.
Источник: oz.by.

7. JavaScript. Полное руководство (2021)


Автор: Дэвид Флэнаган.

Известный американский разработчик Дэвид Флэнаган – профессионал с двадцатилетним стажем, посвятивший жизнь написанию книг о языках программирования. Автор представил публике новое издание справочника по самому популярному языку программирования. В нем собрана самая актуальная информация по JavaScript, переведенная на русский язык, включая нововведения ES 2020 и подробное руководство по клиентскому JavaScript, собранное в одну главу под названием «JavaScript в веб-браузерах». В конце каждой главы есть раздел «Резюме» с самыми важными пунктами. Весь приведенный в книге материал тщательно актуализирован и обновлен, а его подача сделана на высшем уровне.

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

Отзывы:

Самое свежее на данный момент руководство по изучению языка. Однозначно рекомендую.
Источник labirint.ru.

8. Современный JavaScript для нетерпеливых (2021)


Автор: Кэй Хорстман.

Книга для изучения современного JavaScript, написанная в легкой форме с забавными иллюстрациями из произведения Льюиса Кэррола «Алиса в стране чудес». Здесь для каждой отдельной главы есть свой значок, показывающий уровень сложности:

  • Нетерпеливый кролик – обязательные для изучения основы.
  • Алиса – промежуточные темы, которые должен понимать каждый, но, возможно, не с первого раза.
  • Чеширский кот – продвинутая тема, которая вызовет улыбку на лице опытного разработчика и заставит задуматься новичка.
  • Безумный шляпник – сложная тема.

Автор рассказывает обо всех необходимых для работы с JavaScript вещах, излагая материал небольшими порциями и подкрепляя теорию практическими советами с примерами кода.

Подходит для начинающих.

Отзывы:

JavaScript – быстро меняющийся язык, поэтому здорово иметь книгу с последней информацией. Авторский стиль очень простой для понимания и совсем не многословный. Я всегда нахожу здесь то, что ищу, это объясняется должным уровнем детализации. Отличная книга – рекомендую!
Источник: Amazon.com.

Отечественные авторы в последние годы написали не так уж много книг по JavaScript, но они все же есть.

9. JavaScript для FrontEnd-разработчиков. Написание. Тестирование. Развертывание (2020)


Автор: Андрей Кириченко.

Книга по всем аспектам производства кода на JavaScript. Рассматриваемые темы:

  • Выбор архитектуры.
  • Подготовка кода к модульным тестам.
  • Отладка.
  • Интеграционное тестирование.
  • Сборка и отправка в продакшн.

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

Подойдет для начинающих разработчиков, имеющих базовые знания языка.

10. JavaScript. 20 уроков для начинающих (2019)


Автор: Владимир Дронов.

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

В 2021 году вышла новая книга автора под названием «JavaScript. Дополнительные уроки для начинающих». Там опубликованы полезные материалы, не вошедшие в первое издание.

Подходит для новичков.

Отзывы:

Книга неплохая но надо относиться к ней очень аккуратно – тонкий бумажный переплет, Хотя материал бывает подаётся довольно скучно.
Источник: ozon.ru.
Самое главное в книгах об ИТ – актуальность представленных в них сведений. Поэтому обязательно добавляйте нашу подборку в закладки, чтобы знать где найти свежую информацию. Приятного чтения!

***

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

  1. Изучение основ программирования.
  2. Базовый курс Git.
  3. Верстка (HTML/CSS), в том числе библиотека Bootstrap и препроцессоры SASS/LESS.
  4. Принципы ООП, JavaScript, работа с Veu.js, API Webpack, Parcel, с различным окружением, подключение библиотек.
  5. Работа с ReactJS и база backend-разработки с применением ECMAScript 6, Flux, Node.js, REST API.
  6. Разработка проекта с нуля до релиза. Разъяснение методологий Kanban, Scrum, Agile, принципов Countinuous Delivery и Continuous Integration.
  7. Дополнительно: подготовка к техническому собеседованию, базы данных, как заняться фрилансом и искать работу.
  8. Практика: создание посадочных страниц, верстка страниц и сайтов, учитывая валидность, кросплатформенность и адаптивную верстку, создание приложения для учета расходов.
30
Сен
2021

⛓ Справочник по блокчейну и криптовалютам. Часть 2: криптобиржи и трейдинг

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

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

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


Day-Trading (дей-трейдинг)

Всю торговлю на бирже можно разделить на активную (когда нужно следить на графиком) и пассивную (удержание криптовалюты до появления выгодных условий для ее продажи). Дневная торговля на бирже – активная стратегия, при которой сделки открываются и закрываются до вечера. При таком способе ведения дел используют RSI и Fibonacci, а вот фундаментальный анализ не проводят, поскольку в краткосрочный период курс крипты может сильно колебаться.

Задумываться о завтрашнем дне нет смысла, если сделки будут закрыты уже сегодня.

Такой метод торговли не подходит новичкам. Для получения прибыли при дневном трейдинге нужно обладать большими знаниями и опытом в торговле на криптобиржах.


FUD

От английского “fear, uncertainty, doubt”, что переводится как “страхи, неуверенность и сомнения”. Это один из эмоциональных фонов, при котором обстановка становится нагнетающей, а участники сети получают сигналы о том, что крипта, в которую они вложились, скоро обвалится. Тогда пользователи начинают массово ее продавать.

Такие сигналы подают другие трейдеры (для собственной выгоды) или средства массовой информации.

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


Fibonacci

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

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

Такой метод особенно полезен при конкретной точке входа в криптовалюту.


KYC и AML

KYC (от английского “know your customer”) – процедура идентификации личности, необходимая при регистрации на сервисе криптобиржи. AML (anti-money laundering) – меры против отмывания денег. Эти методы – не контроль криптовалюты со стороны государства, они используются везде. Это полезно для крипты, ведь такие монеты как Monero и Dash можно использовать для отмывания денег. KYC и AML – не такая уж высокая цена для роста криптовалют.

Moving average

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

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

OTC

От английского “over the counter” – внебиржевая торговля. При торговле на бирже сама система сводит покупателя с продавцом. При OTC пользователь связывается с контрагентом напрямую. Такой способ торговли подойдет для объемных сделок.

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


RSI

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


Волатильность

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

Криптовалюта – молодой рынок с низкой ликвидностью, поэтому волатильность здесь высока.

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


Киты

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

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

На фондовом рынке такая деятельность запрещена, но в криптовалютной области запрета нет – здесь полная анонимность.


Криптозима

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

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

Ликвидность

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

Зачем же продавать сразу, если можно подождать? Завтра вы захотите поехать в отпсук, и сразу обменяете биткоины на фиат и купите билеты. А в случае с креслом отдых придется надолго отложить.

Ордера в трейдинге

Есть два типа ордеров – текущие и последние:

  • Текущие – те, что открыты или отложены – с их помощью можно быстро оценить рыночную ситуацию. На бирже окно с текущими ордерами делится на следующие блоки: ордера на покупку/продажу, сумма сделок и средняя цена за период времени. Благодаря отложенным ордерам можно отслеживать объемы, влияющие на уровень курса.
  • Последние ордера показывают последние сделки по коинам. Полезной является функция сортировки таких ордеров по волатильности.

Роботы

Это программы, которые анализируют движение курса крипты и автоматически открывают/закрывают сделки пользователя. Роботы обладают самыми разными функциями. Вот основные, которые заинтересуют трейдера-новичка:

  • установка trailing stop loss – такая функциональность есть не на каждой криптобирже;
  • быстрое открытие и закрытие сделок сразу на нескольких биржах;
  • выявление паттернов на свечном графике – фича, помогающая моментально выполнять свечной анализ на нескольких коинах сразу;
  • копирование сделок других трейдеров (copy trading);
  • backtesting – тестирование новой (пробной) торговой стратегии на исторических данных актива.

Среди популярных роботов можно выделить следующие: 3commas, Auton.io, Cryptohopper, CryptoTrader, Gekko, Haasbot, Gunbot, Zenbot.


Свечи и свечной анализ

Это тип демонстрации движения цены на криптографике. Форма свечи позволяет рассмотреть 4 грани: начало торгов, их окончание, подъем и спуск курса. Нижняя тень свечи тоже может многое рассказать. Если она большая, значит покупатели сильнее активных продавцов и цена скоро пойдет вниз. А если маленькая – наоборот. Пустая свеча означает рост цены, а заполненная – обвал.

Кроме типа свечек нужно обращать внимание и на их фигуры:

  • doji – маленькое тело свечи (цена открытия и закрытия почти одинакова) и длинные хвосты (борьба быков-покупателей и медведей-продавцов);
  • бычье поглощение – свеча быка поглощает одну или несколько предыдущих;
  • медвежье поглощение – свеча медведя поглощает одну или несколько предыдущих;
  • молот – свеча с большим хвостом и маленькой основой (на повышение цены) или с маленьким хвостом и большим телом (на обвал).

Свинг-торговля

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

В сравнении с дневным трейдингом свинг проще и больше подходит новичкам.


Скальпирование

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

Сложный способ, который подходит только опытным игрокам.


Тренды и трендовые линии

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

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

Уровни сопротивления и поддержки

Это уровни, влияющие на цену любого криптоактива. Иногда цена идет вверх, но не может пробить “потолок” или, наоборот, не ломает “пол”. Эти полы и потолки и есть уровни поддержки и сопротивления. Такие зоны появляются, если на определенных уровнях курса есть немаленькие запасы отложенных ордеров, что противоречит тренду (при высоком курсе – ордера на продажу и наоборот).

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

Фьючерсы

Это пари, заключаемое по поводу роста/обвала курса актива по состоянию на указанную в договоре дату. Если пользователь уверен в росте цены, он покупает фьючерс, а если в обвале, то продает. Такая торговля также подходит более опытным игрокам, знакомым с волатильностью рынка и умеющим делать прогнозы.

Цикл эмоций

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

Во второй части справочника мы постарались максимально просто и ясно рассказать об основной терминологии и принципах работы трейдера на криптовалютных биржах. Желаем вам хорошего заработка. Удачи!

***

Если вы хотите разобраться с набирающей популярность технологией не только на пользовательском уровне, но и включить ее в сферу профессиональных интересов, обратите внимание на курс «Блокчейн-разработка» образовательной онлайн-платформы GeekBrains. За 5 месяцев практикующие эксперты познакомят вас с принципами функционирования блокчейн-систем, научат решать реальные бизнес-задачи и создавать собственные проекты. Успешно завершившие курс студенты получат удостоверение о профессиональной переподготовке и электронный сертификат, а также помощь в трудоустройстве.

29
Сен
2021

📖 ТОП-7 проверенных временем книг по AR/VR

Технологии AR/VR считаются относительно новым направлением, поэтому найти по ним толковую учебную литературу непросто. Читайте подборку проверенных временем книг, получивших высокую оценку читателей и критиков.

Обзор актуальных книг о технологиях VR/AR также доступен в «Библиотеке программиста».

Критерии отбора

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

1. The VR Book: Human-Centered Design for Virtual Reality (2015)


Издание: The VR Book: Human-Centered Design for Virtual Reality, Jason Jerald, Morgan & Claypool Publishers, 2015

Описание: В этой книге вопросы разработки VR-приложений обсуждаются с акцентом на человеческий фактор. Она предназначена для VR-дизайнеров, а также для менеджеров, программистов, художников, психологов, инженеров, студентов, преподавателей и профессионалов в области UX/UI.

Об авторе: Джейсон Джеральд, доктор философии, соучредитель и главный консультант NextGen Interactions. Он также является главным научным сотрудником Digital ArtForms и приглашенным адъюнкт-профессором в Технологическом институте Уотерфорда, входит в состав консультативных советов нескольких специализирующихся на технологиях VR компаний, а также координирует Research Triangle Park-VR Meetup.

Автор книги создает системы и приложения виртуальной реальности около 20 лет. Он участвовал более чем в 60 проектах и более чем в 30 организациях, включая Valve, Oculus, Virtuix, Sixense, NASA, General Motors, Raytheon, Lockheed Martin, трех национальных лабораториях США и пяти университетах.

Отзывы критиков:

Исчерпывающее руководство по созданию взаимодействия с пользователем виртуальной реальности.
Амир Рубин, генеральный директор Sixense.
Краткое руководство обеспечивает быстрый доступ со ссылками на прошлые страницы для дальнейшего понимания.
Крис Пущак, креативный директор SymbioVR.

Оценка читателей: 4,9 из 5 на Amazon и 4,16 из 5 на Goodreads.

2. Learning Virtual Reality: Developing Immersive Experiences and Applications (2015)


Издание: Learning Virtual Reality: Developing Immersive Experiences and Applications for Desktop, Web, and Mobile, Tony Parisi, O’Reilly Media, 2015

Описание: Это практическое руководство по основам разработки VR для настольных, мобильных и браузерных приложений. Читатели познакомятся с тремя популярными платформами (Oculus VR, Gear VR и Cardboard VR), с несколькими средами разработки VR, а также с инструментами и методами программирования.

Об авторе: Тони Паризи – предприниматель и архитектор программного обеспечения. Тони является пионером в области виртуальной реальности, соавтором стандартов VRML и X3D ISO для сетевой 3D-графики и считается новатором в области 3D-технологии. Автор этой книги – соорганизатор встреч WebGL и WebVR в Сан-Франциско, а также член рабочей группы Khronos COLLADA, создающей glTF – новый стандарт формата файлов для трехмерных веб-приложений и мобильных приложений.

Оценка читателей: 4,1 из 5 на Amazon.

3. Oculus Rift in Action (2015)


Издание: Oculus Rift in Action, Bradley Austin Davis, Karen Bryla, Phillips Alexander Benton, Manning Publications, 2015

Описание: «Oculus Rift в действии» научит вас создавать 3D-игры и другие приложения виртуальной реальности для Oculus Rift. Вы изучите оборудование Rift на примерах реальных проектов, использующих Oculus SDK и графический движок Unity 3D. Попутно вы получите практическое руководство по использованию датчики Rift.

Об авторах: Брэд Дэвис – разработчик программного обеспечения для High Fidelity, работающего над социальными VR-приложениями с открытым исходным кодом стартапа. Он является активным участником форумов разработчиков Oculus VR и поддерживает набор примеров приложений Rift на Github.

Карен Брыла – внештатный технический писатель и разработчик.

Филлипс Александр Бентон – младший преподаватель кафедры продвинутой трехмерной графики в Кембриджском университете и старший инженер-программист в Google.

Отзывы критиков:

Вы захотите, чтобы эта книга всегда была под рукой при работе с Oculus Rift.
Хосе Сан Леандро, ACM SL.
Лучший способ глубже погрузиться в виртуальную реальность.
Джордж Фриман, основатель Mazepuncher LLC.

Оценка читателей: 4 из 5 на Amazon.

4. Виртуальная реальность в Unity (2016)


Издание: Виртуальная реальность в Unity, Линовес Джонатан, ДМК-Пресс, 2016

Описание: Используя практический и проектный подход, эта книга познакомит вас с особенностями разработки виртуальной реальности в Unity. Вы узнаете, как использовать Unity для разработки приложений виртуальной реальности для устройств, вроде Oculus Rift или Google Cardboard.

Об авторе: Джонатан Линоус – владелец консалтинговой фирмы Parkerhill Reality Labs. Он настоящий энтузиаст виртуальной реальности и 3D-графики, веб-разработчик полного цикла, инженер-программист, успешный предприниматель и преподаватель. Автор книги получил степень по изящным искусствам в Сиракузском университете и степень магистра в MIT Media Lab.

Оценка читателей: 7.5 из 10 на Лабиринте.

5. Augmented Reality: Principles and Practice (2016)


Издание: Augmented Reality: Principles and Practice, Dieter Schmalstieg, Tobias Hollerer, Addison-Wesley Professional, 2016

Описание: Первое исчерпывающее, последовательное и авторитетное руководство по дополненной реальности объединяет ключевые достижения в этой области. Оно включает многочисленные тематические исследования, а также практическое руководство по разработке Android AR с помощью Qualcomm QCAR. Исследователи-новаторы Дитер Шмальштиг и Тобиас Хёллерер тщательно соблюдают баланс между принципами и практикой, освещая AR с технической, методологической и пользовательской точек зрения.

Об авторах: Дитер Шмальштиг является профессором и руководителем Института компьютерной графики и зрения Технологического университета Граца (TUG) в Австрии. Его исследовательские интересы – дополненная и виртуальная реальность, графика в реальном времени, трехмерные пользовательские интерфейсы и визуализация. Он также является автором и соавтором более двухсот рецензируемых научных публикаций, младшим редактором журнала IEEE Transactions, членом редакционного совета по компьютерам и графике в Springer Virtual Reality, членом руководящего комитета Международного симпозиума IEEE по смешанной и дополненной реальности, председателем рабочей группы EUROGRAPHICS по виртуальным средам (1999-2010), советником Центра компетенции K-Plus по виртуальной реальности и визуализации в Вене и членом Австрийской академии наук.

Тобиас Хеллерер – профессор информатики в Калифорнийском университете в Санта-Барбаре, где он возглавляет лабораторию «Four Eyes», проводя исследования по визуализации, взаимодействию и инновационным интерфейсам. Доктор Хеллерер имеет диплом по информатике Берлинского технического университета, а также степень магистра и доктора философии по информатике Колумбийского университета. Он получил награду CAREER от Национального научного фонда США за свою работу над «Anywhere Augmentation». Доктор Хеллерер является автором более ста пятидесяти рецензируемых журналов и публикаций на конференциях в области дополненной и виртуальной реальности.

Отзывы критиков:

Это важная книга для всех, кто интересуется дополненной реальностью (AR), написанная двумя ведущими пионерами отрасли. Она обеспечивает отличную основу для быстрорастущей области AR, как для тех, кто уже работает в этой области, так и для тех, кто просто хочет глубже понять технологию.
Доктор Марк Биллингхерст, Университет Южной Австралии.
Сначала я думал, что эта книга обеспечивает очень прочную основу для любого новичка в области дополненной реальности (AR), которому необходимо изучить все аспекты AR, но затем я понял, что не могу перестать копаться и учиться… она идет глубже, чем многие книг по дополненной реальности, которые я видел за последнее десятилетие!
Ори Инбар, исполнительный директор Augmented World Expo, генеральный директор и основатель AugmentedReality.org.

Оценка читателей: 4,5 из 5 на Amazon.

6. Designing Virtual Worlds (2003)


Издание: Designing Virtual Worlds, Richard A. Bartle, New Riders, 2003

Описание: Designing Virtual Worlds – это наиболее полное на сегодняшний день описание дизайна виртуального мира от одного из настоящих пионеров и самых востребованных консультантов по дизайну. Это потрясающий по интеллектуальному размаху образец дизайна VW, охватывающий литературные, экономические, социологические, психологические, физические, технологические и этические основы дизайна.

Об авторе: Ричард Аллан Бартл, доктор философии, стал соавтором первого виртуального мира MUD («Многопользовательское подземелье») в 1978 году. В прошлом преподаватель технологий искусственного интеллекта в университете, он является влиятельным писателем по всем аспектам проектирования и разработки виртуальных миров. В качестве независимого консультанта он работал почти со всеми крупными игровыми онлайн-компаниями в Великобритании и США за последние 20 лет.

Оценка читателей: 4,3 из 5 на Amazon.

7. Virtual & Augmented Reality for Dummies


Издание: Virtual & Augmented Reality for Dummies, Paul Mealy, For Dummies, 2018

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

Об авторе: Пол Мили работает с виртуальной реальностью с момента выпуска Oculus Rift DK1 в 2013 году. Он проектировал и разрабатывал приложения для Oculus Rift, HTC Vive, Samsung Gear VR, Windows Mixed Reality, Google Daydream и Google Cardboard. Пол работал с разнообразным оборудованием и технологиями дополненной реальности, включая Microsoft HoloLens, ARKit для iOS, ARCore для Android и Vuforia.

Оценка читателей: 4,2 из 5 на Amazon.

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

Заключение

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

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

***

Если вы всерьез решили углубиться в профессию и стать разработчиком VR/AR, стоит обратить внимание на «Факультет разработки VR/AR» образовательной онлайн-платформы GeekBrains. Там вы научитесь делать игры и мобильные приложения, а также получите востребованную специальность и возможность работать на фрилансе или в крупной IT-компании. На факультете GeekBrains изучают язык C# и движок Unity, а также на практике учат создавать продукты с VR/AR-технологиями – выпускники смогут добавить в портфолио 14 реализованных проектов.

24
Сен
2021

📖 ТОП-10 актуальных книг о виртуальной и дополненной реальности: от новичка до профессионала

Чтение специальной литературы помогает создателям контента и разработчикам VR/AR лучше разобраться в особенностях иммерсивных технологий. Мы собрали список актуальных книг о виртуальной и дополненной реальности, которые подойдут как новичкам так и профессионалам.

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

1. Augmented Reality and Virtual Reality: New Trends in Immersive Technology (2021)


Авторы: M. Claudia tom Dieck, Timothy H. Jung, Sandra M. C. Loureiro.

Описание: Augmented Reality and Virtual Reality, Springer, 1-ое издание, 5 мая 2021.

Содержание: Книга представляет собой сборник исследовательских работ видных ученых в области дополненной и виртуальной реальности. Она охватывает самые важные в этой сфере темы и представляет интерес для теоретиков и практиков.

Чем может быть полезна: В книге содержатся результаты последних исследований в области иммерсивных технологий, представленные на 6-й Международной конференции по дополненной и виртуальной реальности, которая состоялась в 2020 году. Читатели получат исчерпывающие сведения о современных достижениях в области виртуальной и дополненной реальности, а также о применении этих технологий в маркетинге, образовании, здравоохранении, туризме, индустрии развлечений, розничной торговле, игровой индустрии и других отраслях человеческой деятельности.

2. Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality (2021)


Автор: Amit Tyagi.

Издание: Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality, Engineering Science Reference, 7 декабря 2020.

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

Чем может быть полезна: Книга содержит сборник бизнес-примеров, охватывающих множество тем, связанных с VR/AR и смешанной реальностью (MR), включая их использование в приложениях.

3. Unity 2020 By Example: A project-based guide to building 2D, 3D, augmented reality, and virtual reality games from scratch


Автор: Robert Wells.

Издание: Unity 2020 By Example, 3 издание, 30 сентября 2020.

Описание: Изучите разработку игр Unity на C# на примере практических проектов, от создания простой 2D-игры до использования возможностей AR/VR и технологий машинного обучения простым.

Чем может быть полезна: Третье издание этой книги по Unity обновлено с учетом новых функций Unity 2020 и современных методов разработки игр. Она содержит:

  • высокоуровневый обзор игрового движка Unity;
  • практики для реализации игровой анимации, игровой физики, шейдеров и эффектов;
  • описание элементов управления плеером и функциями ввода для игр на Unity;
  • основы разработки игр, включая GameObjects, компоненты и сцены;
  • методы искусственного интеллекта, такие как поиск пути, конечные автоматы и машинное обучение с помощью ML-агентов Unity;
  • UnityVR и AR Foundation.

Книга будет полезна разработчикам, которые хотят изучить новые функции Unity 2020, включая возможности применения технологий VR/AR. Требуется базовое понимание программирования на C#.

4. Metaverse Charlie Fink’s (2018)


Автор: Charlie Fink.

Издание: Metaverse Charlie Fink, Cool Blue Media, 1-ое издание, 1 января 2018.

Описание: Книга написана бывшим руководителем Disney, AOL и AG Interactive, который теперь пишет для Forbes о VR, AR и новых медиа. В ней объясняются все аспекты того, что Финк называет метавселенной, от терминологии до технологий и продуктов.


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

5. Advances in Usability and User Experience (2019)


Авторы: Tareq Ahram, Christianne Falcão.

Издание: Advances in Usability and User Experience, Springer, 1-ое издание, 1 июля 2020.

Описание: Материалы международных конференций AHFE 2019 по юзабилити и опыту пользователей, человеческому фактору и вспомогательным технологиям, 24-28 июля 2019 г., Вашингтон, округ Колумбия, США.

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

6. Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing (2019)


Авторы: Erin Pangilinan, Steve Lukas, Vasanth Mohan.

Издание: Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing, O’Reilly Media, 1-ое издание, 30 апреля 2019.

Описание: В этой книге Эрин Пангилинан, Стив Лукас и Васант Мохан исследуют конвейер разработки AR и VR и предлагают практические задания, которые помогут вам отточить навыки.

Чем может быть полезна: С помощью пошаговых руководств вы узнаете, как создавать приложения и получите опыт, основанный на теории и поддерживаемый отраслевыми сценариями использования. В каждом разделе книги к авторам присоединяются известные специалисты, в том числе Тимони Уэст, Виктор Присакариу и Николай Мелоу, чтобы объяснить лежащие в основе пространственных вычислений технологии.

Книга состоит из трех частей:

  • Искусство и дизайн: взаимодействие пространственных вычислений и дизайна, ориентированное на человека взаимодействие и сенсорный дизайн, а также инструменты создания контента для цифрового искусства.
  • Техническая разработка: изучение различий между ARKit, ARCore и системами на основе пространственного картографирования, подходы к кроссплатформенной разработке на головных дисплеях
  • Примеры использования: узнайте, как визуализация данных, машинное обучение и искусственный интеллект работают в пространственных вычислениях.

7. Unreal Engine VR Cookbook: Developing Virtual Reality with UE4 (2017)


Автор: Mitch McCaffrey.

Издание: Unreal Engine VR Cookbook: Developing Virtual Reality with UE4 (Game Design), Addison-Wesley Professional, 1-ое издание, 6 февраля 2017.

Описание: Всемирно известный разработчик и инструктор виртуальной реальности Митч МакКэффри предлагает проверенные рецепты преодоления множества сложных проблем разработки. Unreal Engine VR Cookbook – полное и авторитетное руководство по созданию потрясающих приложений для любого VR-оборудования, совместимого с Unreal Engine 4.

Чем может быть полезна: Рецепты Маккафри содержат пошаговые инструкции, а также дают краткие объяснения лежащей в основе теории и математики. Книга содержит:

  • объяснение основных концепций и терминологии VR;
  • разъяснение логики VR с помощью визуальных сценариев Blueprint;
  • примеры базовых проектов VR, реализованных с помощью Oculus Rift, HTC Vive, Gear VR, Google VR, PSVR и других сред;
  • сведения об отслеживании взаимодействий и телепортации;
  • разъяснение работы с UMG и 2D UI;
  • сведения о реализации обратной кинематики персонажа (IK) для головы и рук;
  • сведения об эффективном взаимодействии с контроллером движения;
  • сведения об оптимизации приложений VR;
  • информацию о редакторе VR, ссылки на ресурсы сообщества и многое другое.

8. Virtual Reality and the Built Environment (2018)


Автор: Jennifer Whyte, Dragana Nikolić.

Издание: Virtual Reality and the Built Environment, Routledge, 2-ое издание, 14 февраля 2018.

Описание: Центральная тема этой книги – как виртуальную реальность можно использовать при проектировании, производстве и управлении созданной средой. В ней рассмотрено три ключевых вопроса:

  • Каковы бизнес-стимулы для использования виртуальной реальности?
  • Каковы его ограничения?
  • Как можно реализовать виртуальную реальность?

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

Чем может быть полезна: Virtual Reality and the Built Environment – важный материалом для профессионалов в области архитектуры, строительства, дизайна, геодезии и инженерии, а также для студентов профильных специальностей, которым необходимо понимание BIM, CAD и виртуальной реальности в этом секторе. Новая редакция расширяет возможности для рассмотрения иммерсивной виртуальной реальности как способа привлечения профессионалов в информационную модель здания, а также в качестве способа переноса этой модели и связанной с ней информации об активах на место работы. Технологии также рассматриваются в контексте таких разработок, как лазерное сканирование, мобильные решения и большие данные.

9. Augmented Reality Game Development (2017)


Автор: Micheal Lanham.

Издание: Augmented Reality Game Development, Packt Publishing, 20 января 2017.

Описание: Эта книга отправит вас в путешествие по созданию AR-игры, основанной на местоположении.

Чем может быть полезна: Книга затрагивает основные технические концепции:

  • основы GIS;
  • GPS для мобильных устройств;
  • картографирование;
  • текстуры карт в Unity;
  • камеры мобильного устройства, текстуры камеры в Unity;
  • доступ на основе определения местоположения;
  • сервисы и другие полезные советы по Unity.

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

10. Дополненная реальность. Все, что вы хотели узнать о технологии будущего (2019)


Автор: Хелен Папагианнис.

Издание: Дополненная реальность. Все, что вы хотели узнать о технологии будущего, Бомбора, 2019.

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

Чем может быть полезна: Это подробное руководство для дизайнеров, разработчиков, предпринимателей и студентов объясняет. Из него вы узнаете:

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

Какие книги кому подойдут?

Чтобы познакомиться с миром VR/AR с нуля и просто разобраться стоит почитать следующие издания из нашего списка:

  • Metaverse Charlie Fink’s
  • Дополненная реальность. Все, что вы хотели узнать о технологии будущего

Если вы мечтаете построить карьеру в GameDev и интересуетесь играми с элементами виртуальной и дополненной реальности, обратите внимание на эти книги:

  • Unity 2020 By Example
  • Unreal Engine VR Cookbook
  • Augmented Reality Game Development

Для разработчиков и дизайнеров приложений рекомендуем оставшуюся литературу:

  • Augmented Reality and Virtual Reality: New Trends in Immersive Technology
  • Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality
  • Advances in Usability and User Experience
  • Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing
  • Virtual Reality and the Built Environment

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

***

А если вы всерьез решили углубиться в профессию и стать разработчиком VR/AR, стоит обратить внимание на «Факультет разработки VR/AR» образовательной онлайн-платформы GeekBrains. Там вы научитесь делать игры и мобильные приложения, а также получите востребованную специальность и возможность работать на фрилансе или в крупной IT-компании. На факультете GeekBrains изучают язык C# и движок Unity, а также на практике учат создавать продукты с VR/AR-технологиями – выпускники смогут добавить в портфолио 14 реализованных проектов.

22
Сен
2021

💸 ТОП-10 книг по блокчейну и крипте: от новичка до профессионала

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

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

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

1. «Цифровое золото» (2015, Диалектика)


Автор: Натаниел Поппер.

Количество страниц: 358.

Средняя цена: 650 рублей.

Биткоин ломает все представления о роли денег в современном обществе. Автор делится невероятной историей, как идея одной команды привлекла внимание всего мира и сделала криптовалюту настоящим прорывом в экономике.

На страницах появляются студенты, миллионеры, предприниматели, банкиры, государственные деятели и сам Сатоши Накамото. Многие до сих пор сомневаются в надежности цифровых активов, но энтузиасты верят в силу биткоина.

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

В 2015 году это издание входило в шорт-листы Financial Times и Mckinsey в номинации «Финансовая книга года». Читать можно всем, кому интересны современные финансовые системы и особенно криптовалюта.

2. «Эпоха криптовалют» (2017, Манн, Иванов и Фербер)


Авторы: Пол Винья, Майкл Кейси.

Количество страниц: 432.

Средняя цена: 1200 рублей.

Специалисты из Wall Street Journal Пол Винья и Майкл Кейси просят читателей приспособиться к новой экономической реальности. Эра цифровых валют неумолимо приближается, и авторы развеют все мифы и предубеждения относительно биткоина и других криптовалют.

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

Эта книга для интересующихся криптовалютами и будущим цифровой финансовой системы в 21 веке.

3. «Как деньги обрели свободу» (2017)


Автор: Брайан Патрик Эха.

Количество страниц: 500.

Средняя цена: 1300 рублей.

Автор книги – журналист и редактор Entrepreneur Magazine. На ее страницах освещается все, что связано с историей и настоящим биткоина: влиятельные киты индустрии, взлеты и падения, тайная личности создателя, развитие области и прочее.

Работая в журнале, Эха изучал кибербезопасность и следил за ростом биткоина. Отрывки его книги были опубликованы в The Atlantic, The New Yorker, American Banker и Avaunt.

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

4. «Белая книга» (2008)


Автор: Сатоши Накамото.

Количество страниц: 9.

Средняя цена: в свободном доступе.

Впервые White paper биткоина мир увидел благодаря рассылке по электронной почте. Письмо называлось «Биткоин: Одноранговая электронная денежная система» и в нем было всего девять страниц. В ней подробно описывалась новая технология, а таблицы и схемы были лично подписаны автором – Сатоши Накамото.

15 августа 2008 года был создан официальный сайт Bitcoin.org, где до сих пор можно прочесть и скачать белую книгу первой в мире криптовалюты.

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

5. «Биткоин. Больше чем просто деньги» (2014, ОАО Тверская областная типография)


Автор: Алекс Форк.

Количество страниц: 290.

Средняя цена: 450 рублей.

Алекс Форк является председателем Blockchain.community – объединения, занимающегося популяризацией индустрии в России.

В книге «Bitcoin. Больше чем деньги» автор рассказывает об истории становления биткоина, описывает технические особенности криптовалюты, делает анализ анонимности, говорит о росте майнинга криптовалют, запрете биткоина в РФ и регулировании в других государствах, рисках и безопасности децентрализованной системы.

Также в книге есть переводы отчетов о биткоине Европейского Центробанка, ФБР, Управления по борьбе с финансовыми преступлениями Минфина США и огромное количество комментариев криптовалютных экспертов, а еще мнения криптохакеров.

6. “Blockchain: blueprint for a new economy” (2015, Kindle)


Автор: Melanie Swan.

Количество страниц: 152.

Средняя цена: 1400 рублей.

Биткоин популярен, но стоящая за ним технология блокчейна может оказаться гораздо более значимой. Эта книга выводит вас за рамки валюты («Блокчейн 1.0») и смарт-контрактов («Блокчейн 2.0»), чтобы продемонстрировать, как блокчейн может стать пятой революционной вычислительной парадигмой после мэйнфреймов, ПК, Интернета и социальных сетей.

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

7. “Mastering Bitcoin” (2019, O’Reilly)


Автор: Андреас М. Антонопулос.

Количество страниц: 400.

Средняя цена: 1200 рублей.

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

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

У автора есть завязанный на биткоин бизнес. Также он один из самых высококвалифицированных и ведущих консультантов по криптовалютным стартапам.

8. «Грокаем технологию Биткоин» (2019, Питер)


Автор: Калле Розенбаум.

Количество страниц: 496.

Средняя цена: 1000 рублей.

Хотите разобраться в технологии биткоин на глубоком концептуальном уровне? Автор на наглядных схемах и ярких примерах научит вас мыслить по-новому.

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

В книге рассматриваются следующие темы:

  • основы технологии биткоин;
  • хеш-функции и цифровые подписи;
  • криптография и алгоритмы шифрования;
  • анатомия транзакций;
  • верификация и пропускная способность;
  • хард- и софт-форки.

Для понимания материала от вас не потребуется продвинутых навыков программирования, но представление об основах (базах данных, компьютерных сетях, веб-серверах и математике) не будет лишним.

9. «Виртуальные миллиарды» (2018, Баланс Бизнес Букс)


Автор: Эрик Гейсингер.

Количество страниц: 328.

Средняя цена: 400 рублей.

По версии журнала “Inc.” – это одна из списка семи лучших книг, вышедших в 2016 году.

В книге рассказывается о виртуальной валюте на примере необычных историй и интересных персонажей, благодаря которых актив стал успешным: гения, создавшего биткоин и так и не открывшего миру свою личность (Сатоши Накамото); администратора крупнейшего магазина наркотиков в интернете; а также Кэмероне и Тайлере Уинклвосс, выпускниках Гарварда, которые победили в судебном процессе с Фейсбуком; членах олимпийской сборной США по гребле и предпринимателях, которые поверили в биткоин.

Это история не просто о цифровой валюте, а о преданных своему делу людях, которые трудились над ее созданием. Взрывной и беспрецедентный рост первой криптовалюты стал одним из самых известных и невероятных событий в истории человечества. Книга отвечает на волнующий вопрос: «Как это вообще произошло?»

10. «Блокчейн от А до Я» (2017, Эксмо)


Автор: Лоран Лелу.

Количество страниц: 190.

Средняя цена: 300 рублей.

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

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

Книга Лелу – важное пособие по принципам блокчейна и его особенностям.

Заключение

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

***

Если вы хотите быстро освоить востребованную специальность, обратите внимание на курс «Блокчейн-разработка» образовательной онлайн-платформы GeekBrains. За 5 месяцев практикующие эксперты познакомят вас с принципами функционирования блокчейн-систем, научат решать реальные бизнес-задачи и создавать собственные проекты. Успешно завершившие курс студенты получат удостоверение о профессиональной переподготовке и электронный сертификат, а также помощь в трудоустройстве.

22
Сен
2021

💸 ТОП-10 книг по блокчейну и крипте: от новичка до профессионала

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

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

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

1. «Цифровое золото» (2015, Диалектика)


Автор: Натаниел Поппер.

Количество страниц: 358.

Средняя цена: 650 рублей.

Биткоин ломает все представления о роли денег в современном обществе. Автор делится невероятной историей, как идея одной команды привлекла внимание всего мира и сделала криптовалюту настоящим прорывом в экономике.

На страницах появляются студенты, миллионеры, предприниматели, банкиры, государственные деятели и сам Сатоши Накамото. Многие до сих пор сомневаются в надежности цифровых активов, но энтузиасты верят в силу биткоина.

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

В 2015 году это издание входило в шорт-листы Financial Times и Mckinsey в номинации «Финансовая книга года». Читать можно всем, кому интересны современные финансовые системы и особенно криптовалюта.

2. «Эпоха криптовалют» (2017, Манн, Иванов и Фербер)


Авторы: Пол Винья, Майкл Кейси.

Количество страниц: 432.

Средняя цена: 1200 рублей.

Специалисты из Wall Street Journal Пол Винья и Майкл Кейси просят читателей приспособиться к новой экономической реальности. Эра цифровых валют неумолимо приближается, и авторы развеют все мифы и предубеждения относительно биткоина и других криптовалют.

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

Эта книга для интересующихся криптовалютами и будущим цифровой финансовой системы в 21 веке.

3. «Как деньги обрели свободу» (2017)


Автор: Брайан Патрик Эха.

Количество страниц: 500.

Средняя цена: 1300 рублей.

Автор книги – журналист и редактор Entrepreneur Magazine. На ее страницах освещается все, что связано с историей и настоящим биткоина: влиятельные киты индустрии, взлеты и падения, тайная личности создателя, развитие области и прочее.

Работая в журнале, Эха изучал кибербезопасность и следил за ростом биткоина. Отрывки его книги были опубликованы в The Atlantic, The New Yorker, American Banker и Avaunt.

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

4. «Белая книга» (2008)


Автор: Сатоши Накамото.

Количество страниц: 9.

Средняя цена: в свободном доступе.

Впервые White paper биткоина мир увидел благодаря рассылке по электронной почте. Письмо называлось «Биткоин: Одноранговая электронная денежная система» и в нем было всего девять страниц. В ней подробно описывалась новая технология, а таблицы и схемы были лично подписаны автором – Сатоши Накамото.

15 августа 2008 года был создан официальный сайт Bitcoin.org, где до сих пор можно прочесть и скачать белую книгу первой в мире криптовалюты.

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

5. «Биткоин. Больше чем просто деньги» (2014, ОАО Тверская областная типография)


Автор: Алекс Форк.

Количество страниц: 290.

Средняя цена: 450 рублей.

Алекс Форк является председателем Blockchain.community – объединения, занимающегося популяризацией индустрии в России.

В книге «Bitcoin. Больше чем деньги» автор рассказывает об истории становления биткоина, описывает технические особенности криптовалюты, делает анализ анонимности, говорит о росте майнинга криптовалют, запрете биткоина в РФ и регулировании в других государствах, рисках и безопасности децентрализованной системы.

Также в книге есть переводы отчетов о биткоине Европейского Центробанка, ФБР, Управления по борьбе с финансовыми преступлениями Минфина США и огромное количество комментариев криптовалютных экспертов, а еще мнения криптохакеров.

6. “Blockchain: blueprint for a new economy” (2015, Kindle)


Автор: Melanie Swan.

Количество страниц: 152.

Средняя цена: 1400 рублей.

Биткоин популярен, но стоящая за ним технология блокчейна может оказаться гораздо более значимой. Эта книга выводит вас за рамки валюты («Блокчейн 1.0») и смарт-контрактов («Блокчейн 2.0»), чтобы продемонстрировать, как блокчейн может стать пятой революционной вычислительной парадигмой после мэйнфреймов, ПК, Интернета и социальных сетей.

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

7. “Mastering Bitcoin” (2019, O’Reilly)


Автор: Андреас М. Антонопулос.

Количество страниц: 400.

Средняя цена: 1200 рублей.

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

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

У автора есть завязанный на биткоин бизнес. Также он один из самых высококвалифицированных и ведущих консультантов по криптовалютным стартапам.

8. «Грокаем технологию Биткоин» (2019, Питер)


Автор: Калле Розенбаум.

Количество страниц: 496.

Средняя цена: 1000 рублей.

Хотите разобраться в технологии биткоин на глубоком концептуальном уровне? Автор на наглядных схемах и ярких примерах научит вас мыслить по-новому.

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

В книге рассматриваются следующие темы:

  • основы технологии биткоин;
  • хеш-функции и цифровые подписи;
  • криптография и алгоритмы шифрования;
  • анатомия транзакций;
  • верификация и пропускная способность;
  • хард- и софт-форки.

Для понимания материала от вас не потребуется продвинутых навыков программирования, но представление об основах (базах данных, компьютерных сетях, веб-серверах и математике) не будет лишним.

9. «Виртуальные миллиарды» (2018, Баланс Бизнес Букс)


Автор: Эрик Гейсингер.

Количество страниц: 328.

Средняя цена: 400 рублей.

По версии журнала “Inc.” – это одна из списка семи лучших книг, вышедших в 2016 году.

В книге рассказывается о виртуальной валюте на примере необычных историй и интересных персонажей, благодаря которых актив стал успешным: гения, создавшего биткоин и так и не открывшего миру свою личность (Сатоши Накамото); администратора крупнейшего магазина наркотиков в интернете; а также Кэмероне и Тайлере Уинклвосс, выпускниках Гарварда, которые победили в судебном процессе с Фейсбуком; членах олимпийской сборной США по гребле и предпринимателях, которые поверили в биткоин.

Это история не просто о цифровой валюте, а о преданных своему делу людях, которые трудились над ее созданием. Взрывной и беспрецедентный рост первой криптовалюты стал одним из самых известных и невероятных событий в истории человечества. Книга отвечает на волнующий вопрос: «Как это вообще произошло?»

10. «Блокчейн от А до Я» (2017, Эксмо)


Автор: Лоран Лелу.

Количество страниц: 190.

Средняя цена: 300 рублей.

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

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

Книга Лелу – важное пособие по принципам блокчейна и его особенностям.

Заключение

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

***

Если вы хотите быстро освоить востребованную специальность, обратите внимание на курс «Блокчейн-разработка» образовательной онлайн-платформы GeekBrains. За 5 месяцев практикующие эксперты познакомят вас с принципами функционирования блокчейн-систем, научат решать реальные бизнес-задачи и создавать собственные проекты. Успешно завершившие курс студенты получат удостоверение о профессиональной переподготовке и электронный сертификат, а также помощь в трудоустройстве.

22
Сен
2021

Как не растерять изученное в JS? [закрыт]

На самом деле вопрос более общий, чем с JS.
Замечаю за собой, что через некоторое время, основы js ( я сам frontend ) вылетают из головы и я прибегаю к справочникам/документации, чтобы освежить материал в памяти.
Если меня спросить что-то …

21
Сен
2021

📖 ТОП-10 книг об ИТ не только для айтишников

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

14
Сен
2021

📊 Обучение на Data Scientist: как составить резюме, пройти собеседование и найти работу?

Читайте обзор ресурсов для составления резюме, поиска вакансий и прохождения собеседования на позицию Data Scientist.

Независимо от того, являетесь ли вы опытным специалистом по Data Science или новичком, вы можете столкнуться с трудностями при поиске работы. В небольшом обзоре мы разберемся, какие стратегии, ресурсы и инструменты помогут продать себя на рынке труда, и как получить лучшие офферы.

Составляем резюме

Контент

Наряду с навыками и знаниями, которыми должны обладать Data Scientist, узнайте о последних тенденциях отрасли: как работает корпорация, каковы востребованные рабочие роли, каковы новейшие языки программирования и т.д. Работа в Data Science – это прежде всего умение учиться самостоятельно и постоянно обновлять набор навыков.


Не забудьте включить в резюме ссылки на GitHub, Twitter, Linkedin и другие ресурсы, позволяющие продемонстрировать ваш опыт. Опубликуйте проекты, над которыми вы работали во время учебы и стажировок. Таким образом работодатель сможет заметить вас и оценить ваши навыки, отточенные на реальных задачах. Если вы являетесь новичком в науке данных и хотите найти первую работу, но у вас еще нет опыта, создайте собственные проекты! Для поиска первого оффера достаточно двух-трех примеров:

  • Опубликуйте результаты соревнований Kaggle и код;
  • Создайте проект, который покажет ваши личные интересы или примите участие в хакатоне;
  • Включите проекты и код, созданные во время прохождения курсов Data Science.

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

  • Почему вы это сделали? Какую проблему вы хотели решить? Покажите, какова была конечная цель проекта.
  • Что вы сделали? Объясните, как вы подошли к проблеме. Если вы можете показать код, статью, сообщение в блоге или презентацию на конференции – сделайте это!
  • Как вы это сделали? Представьте инструменты и ресурсы, которые вы использовали.
  • Чего вы добились? Отразите количественные результаты вашей работы в технических и бизнес-показателях.
Если вы начинаете карьеру специалиста по Data Science, будьте предельно настойчивы в поиске контрактов. Создайте личный веб-сайт с демонстрацией примеров вашей работы и убедитесь, что он прост в навигации, лаконичен и постоянно обновляется. Потенциальные работодатели обязательно захотят заглянуть в ваше портфолио, поэтому приступите к его оформлению в первую очередь.

Сбалансируйте ваше резюме: наряду с техническими навыками важно показать применение навыков визуализации и презентации данных, story telling, soft skills и умение работать в команде.

Стиль

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

  • Постарайтесь разместить всю информацию на одной странице. Если у вас большой опыт, много проектов или публикаций – упомяните несколько из них в резюме и предоставьте ссылку на Github или личный веб-сайт.
  • Выделите ссылки, используя Bold или Underline. Это позволит сотрудникам HR быстрее их обнаружить.
  • Соблюдайте единый стиль ссылок, дат, названий компаний и университетов, знаков пунктуации и т.д. Эти маленькие детали играют большую роль в общей визуальной картине вашего резюме.
  • Сделать хорошую профессиональную фотографию для резюме – сложная задача. Это необязательно, и никто на самом деле не ожидает, что у вас будет фотография. Многие компании предпочитают лаконичные резюме без фото, таким образом отбор кандидатов проходит более объективно.
  • Проверьте орфографию и пунктуацию. Ошибки и опечатки в резюме раздражают и указывают на недостаточное внимание к деталям. Перечитайте свои тексты с Text.ru, Advego (на русском) или Grammarly, ReversoSpeller (на английском) прежде чем отправлять их. Попросите друзей проверить ваше резюме: они могут заметить ошибки, которые вы упустили.

Обзор ресурсов


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

Примеры:

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

Примеры:

CVmaker – платформа для создания профессионального резюме за 10 минут. Интегрированные в CVmaker шаблоны позволяют легко изменять контент или цвета вашего резюме.

Поиск вакансий

Стратегии поиска

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

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


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

Лучше всего проанализировать свои возможности и не цепляться за каждый оффер.

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

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

Обзор ресурсов

При поиске офферов и проектов обратите внимание на самые крупные и авторитетные российские и международные онлайн-платформы: HH, Jooble, Работа.ру, Linkedin, Яндекс Работа, Upwork, AngelList, Freelancer, Kaggle, Indeed, Peopleperhour, Freelance.ru, Freelancehunt, Weblancer, Workzilla.

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

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

Собеседование


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

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

Самые распространенные типы интервью:

  • Интервью по кодированию (Python, R и т.д.);
  • Статистическое/Математическое интервью (проверка знаний концепций и навыков решения задач);
  • A/B проверка знаний.

Помимо подготовки к задачам для разных типов интервью есть и другие важные позиции, которые стоит подтянуть:

  • Коммуникативные навыки: всем специалистам Data Science необходимо умения общаться, строить коммуникации и презентовать проекты;
  • Знакомство с облачными платформам и хранилищами данных является плюсом, поскольку большинство компаний их использует;
  • Владение инструментами визуализации данных, например, Looker, Tableau и Microsoft Power BI.
Подробнее о том, чего ожидать и к чему готовиться, можно прочесть в материале «Собеседование на вашу первую работу Data Scientist’ом».

Заключение

Освоить профессию Data Scientist можно даже в самые краткие сроки. Разработанная в США методика Bootcamp предполагает интенсивное очное обучение с полным погружением в процесс. В России этот формат практикует образовательный проект Elbrus Bootcamp: студенты обучаются в московском кампусе, посвящая науке о данных все будние дни с 9 до 18 часов. Заниматься в онлайне без отрыва от производства не получится, формат буткампа обеспечивает высочайшую вовлеченность всех участников в учебный процесс. В течение 12 недель под руководством практикующего Data Scientist студенты осваивают сбор и анализ данных, нейронные сети, машинное обучение и другие hard и soft skills: количество практических занятий при этом сравнимо со стажировкой в крупной ИТ-компании. Успешно завершив курс, вы получите не только ценные знания, но и возможность их применить, а также добавите несколько проектов портфолио. Удачи!

13
Сен
2021

🕵 TikTok OSINT или 5 простых способов провести интернет-разведку по открытым источникам

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

11
Сен
2021

🤖 ТОП-10 актуальных книг по технологиям интернета вещей: от новичка до профессионала

Глобальная сеть стала обыденностью для людей всех возрастов, но термин «Интернет вещей» многих смущает. Что это такое и как используется ежедневно каждым жителем нашей планеты – читайте в тематической литературе из нашей подборки.

Об IoT говорил еще Никола Тесла, когда предсказывал, что радио будет «мозговым центром» для мелких инструментов и поместится в карман одежды. Так и вышло: интернет объединил все компьютеры в единую сеть, а его инструментами стали гаджеты. Особенность интернета вещей в том, что в системе участвуют не только компьютеры и телефоны с планшетами, но и почти любые обыденные вещи, оснащенные встроенными средствами и технологиями для взаимодействия друг с другом или с внешней средой.

Первое устройство IoT было создано в 1990 году Джоном Ромки, когда тот подключил тостер к компьютерной системе. Удаленное управление стало прорывом, к тому же кухонная техника могла работать автономно при необходимом программировании.

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

1. «Интернет вещей с ESP8266» (2016, BHV)


Автор: Марко Шварц.

Количество страниц: 191.

Средняя цена: 700 рублей.

В книге описывается процесс разработки бюджетных, но полезных устройств для IoT на базе ESP8266 – микроконтроллера с адаптером Wi-Fi. Приведенные в ней проекты отлично подойдут новичкам, а также специалистам по платформе Arduino.

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

2. «ARDUINO UNO И RASPBERRY PI 3: от схемотехники к интернету вещей» (2019, ДМК Пресс)


Автор: Макаров С.Л.

Количество страниц: 206.

Средняя цена: 800 рублей.

Книга представляет собой полное руководство по построению и программированию приложений для IoT. Материал поделен на две части: первая рассказывает о платформе Arduino и основных принципах схематической техники, а вторая построена на практических примерах реализации проектов на базе Raspberry Pi 3.

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

3. «Интернет вещей: видео, аудио, коммутация» (2019, ДМК Пресс)


Автор: Антти Суомалайнен.

Количество страниц: 122.

Средняя цена: 600 рублей.

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

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

4. «Архитектура интернета вещей» (2018, ДМК Пресс)


Автор: Перри Ли.

Количество страниц: 456.

Средняя цена: 750 рублей.

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

Пособие переведено на русский язык и считается самым подробным из последних выпущенных изданий. У книги есть рекомендация от Ассоциации интернета вещей в России.

При изучении материала у читателя сформируется правильное представление об IoT, современных технологиях и их альтернативах. Книга полезна для проектировщиков и архитекторов инфосистем, технических менеджеров и программистов.

5. «ИНТЕРНЕТ ВЕЩЕЙ новая технологическая революция» (2017, Эксмо)


Автор: Мачей Кранц.

Количество страниц: 330.

Средняя цена: 700 рублей

IoT – инструмент, который поможет любому бизнесу выйти на передовые позиции среди конкурентов. Автор подробно и доступно объясняет современные инновационные технологии и их особенности в разных областях.

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

6. «Создание умного дома на базе ARDUINO» (2018, ДМК Пресс)


Автор: Виктор Петин.

Количество страниц: 182.

Средняя цена: 800 рублей.

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

Книга научит читателей работать с умной техникой, расскажет обо всех современных сферах использования IoT, ознакомит с созданием и отладкой проектов на базе Arduino и NodeMCU.

7. “Internet of Things with Python” (2016, Packt Publishing Limited)


Автор: Gastón C. Hillar.

Количество страниц: 388.

Средняя цена: 2300 рублей.

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

Эта книга позволит вам оставаться в курсе передовых исследований в области Интернета вещей. Вы узнаете, как читать, записывать и преобразовывать цифровые значения для генерации аналогового вывода путем программирования широтно-импульсной модуляции (PWM) на Python.

Вы сможете подключить свое IoT-устройство ко всему миру, интегрировав настройки Wi-Fi, Bluetooth и Интернета. Когда все будет готово, вы научитесь работать в реальном времени на своем IoT-устройстве с использованием протокола MQTT в Python. Прочитав книгу, вы сможете разрабатывать прототипы решений Интернета вещей с помощью Python, библиотек и инструментов.

8. “Learning IoT with Particle Photon and Electron” (2016, Packt Publishing Limited)


Авторы: Rashid Khan, Kajari Ghoshdastidar, Ajith Vasudevan.

Количество страниц: 138.

Средняя цена: 2100 рублей.

Познакомьтесь с архитектурой Интернета вещей, инструментами сборки из командной строки и приложениями устройств и датчиков Интернета вещей. Проектируйте и разрабатывайте приложения IoT с использованием Particle Photon и Electron поэтапно, шаг за шагом.

Получите советы по устранению неполадок в приложениях Интернета вещей. Эта книга предназначена для разработчиков, энтузиастов IoT и любителей, которые хотят расширить свои знания об архитектуре «машина-машина» с помощью Particle Photon и Electron, а также реализовать облачные проекты IoT.

9. “MySQL for the Internet of Things” (2016, Apress)


Автор: Charles Bell.

Количество страниц: 335.

Средняя цена: 2600 рублей.

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

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

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

10. “Designing the Internet of Things” (2013, Wiley)


Автор: Adrian McEwen.

Количество страниц: 336.

Средняя цена: 1600 рублей.

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

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

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

Заключение

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

***

Чтобы освоить профессию разработчика решений IoT с нуля, новичку нужно набраться терпения. Изучить все необходимое достаточно сложно, поэтому стоит обратить внимание на курс «Инженер умных устройств» образовательной онлайн-платформы GeekBrains. Студентам предлагают одну из самых содержательных программ для начинающих IoT-разработчиков: за 19 месяцев они изучат язык программирования C, Git и операционную систему Linux, а также основы электроники и работу с микроконтроллерами на продвинутом уровне. Вместе с топовыми экспертами-преподавателями, учащиеся будут практиковаться в разработке умных устройств и добавят по 10 проектов в портфолио. Успешно окончившие курсы студенты получат диплом о профессиональной подготовке, а компании-партнеры образовательного портала помогут им с трудоустройством.