All Projects → xxxzsx → Software Engineer Roadmap

xxxzsx / Software Engineer Roadmap

🏎

Labels

Projects that are alternatives of or similar to Software Engineer Roadmap

Mobile Developer Roadmap
모바일 개발자 로드맵
Stars: ✭ 717 (+843.42%)
Mutual labels:  roadmap
Astuto
A free, open source, self-hosted customer feedback tool 🦊
Stars: ✭ 860 (+1031.58%)
Mutual labels:  roadmap
Cs education
Моя карта обучения Computer Science на 3 года
Stars: ✭ 42 (-44.74%)
Mutual labels:  roadmap
Cocorico
👐 Cocorico is an open source marketplace solution for services and rentals. More information right here: https://www.cocorico.io/en/ 🚀 Cocorico is also available in an off-the-shelf SaaS package, check out https://www.hatch.li to launch your platform today. 😍 We are hiring (telecommute welcome 🏡): https://www.welcometothejungle.com/en/companies/cocorico/jobs/candidatures-spontanees#apply
Stars: ✭ 765 (+906.58%)
Mutual labels:  roadmap
Interview
python, golang, devops 基础知识、 系统设计、后端开发路线图
Stars: ✭ 921 (+1111.84%)
Mutual labels:  roadmap
Softwarearchitect
Path to a Software Architect
Stars: ✭ 7,318 (+9528.95%)
Mutual labels:  roadmap
Software Architect Roadmap
Software architect roadmap
Stars: ✭ 640 (+742.11%)
Mutual labels:  roadmap
Roadmap
Stars: ✭ 57 (-25%)
Mutual labels:  roadmap
Roadmap nlp
Roadmap for NLP 涵盖NLP的理论知识、应用场景和工程实践等
Stars: ✭ 25 (-67.11%)
Mutual labels:  roadmap
Pinecoders.github.io
PineCoders Web Site
Stars: ✭ 30 (-60.53%)
Mutual labels:  roadmap
Hacker Roadmap
📌 Your beginner pen-testing start guide. A guide for amateur pen testers and a collection of hacking tools, resources and references to practice ethical hacking and web security.
Stars: ✭ 7,752 (+10100%)
Mutual labels:  roadmap
Devmap
A Simple tool to organize my roadmaps.
Stars: ✭ 16 (-78.95%)
Mutual labels:  roadmap
Feedback
📣 We love feedback ✨
Stars: ✭ 15 (-80.26%)
Mutual labels:  roadmap
Rust Web Developer Roadmap
Roadmap to becoming a Rust Web Developer in 2021
Stars: ✭ 749 (+885.53%)
Mutual labels:  roadmap
Roadmap.js
A simple roadmap display library
Stars: ✭ 42 (-44.74%)
Mutual labels:  roadmap
Aspnetcore Developer Roadmap
Roadmap to becoming an ASP.NET Core developer in 2021
Stars: ✭ 8,248 (+10752.63%)
Mutual labels:  roadmap
Yadr
Yet another development roadmaps and proficiency matrixes
Stars: ✭ 11 (-85.53%)
Mutual labels:  roadmap
Data Science Roadmap
Roadmap to learn Data Science and related areas.
Stars: ✭ 68 (-10.53%)
Mutual labels:  roadmap
Front End Roadmap
Tell you how to learn front end development ~
Stars: ✭ 1,070 (+1307.89%)
Mutual labels:  roadmap
Flutter Roadmap And Resources Guide
A roadmap from a beginner's point of view. Which can help you in becoming a full fledge flutter developer.
Stars: ✭ 28 (-63.16%)
Mutual labels:  roadmap

Карта развития профессионального разработчика


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


Ресурсы

Map of Computer Science - YouTube
RoadMap для начинающего разработчика - YouTube
Карта развития веб-разработчика


Инструменты разработчика


Среда разработки (IDE)

Лучший текстовый редактор — Sublime Text 3.

Лучшие IDE для работы — от JetBrains:
PhpStorm, WebStorm (JS), PyCharm (Python), RubyMine, IntelliJ IDEA (Java), Android Studio, AppCode (Swift), ReSharper (C#), CLion (C/C++).

Полезные онлайн-сервисы

Файлообменники

Тайм-менеджмент и заметки


Вёрстка


HTML

CSS

Инструменты для вёрстки

Figma • Zeplin • Avocode

Онлайн-сервисы анализа страниц

Расширения для удобной работы


Добро пожаловать в JavaScript


Полный курс по JavaScript

Взрыв жопы

  • Приведение типов данных
  • Области видимости, замыкания, хойстинг
  • Ивент луп

React

Vue.js

Webpack

Node

Express

Koa


Python


asyncio

aiohttp

Flask

Django

Книги

Книга "Легкий способ выучить Python 3 еще глубже" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Вероятностное программирование на Python. Байесовский вывод и алгоритмы" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Python for Finance Cookbook" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Разработка веб-приложений с использованием Flask на языке Python" — купить в интернет-магазине OZON с быстрой доставкой


C/C++


C

C++

Многопоточность

Производительность


Базы данных


Изменение данных (Data Modification / DML)

  • INSERT, AUTO INCREMENT, DELETE, UPDATE. Вставка записей в таблицы, их обновление и удаление. Методы разрешения дубликатов первичного ключа.
  • Заполнение таблиц данными с помощью графического интерфейса.
  • Фильтрация данных с помощью WHERE IN.

SELECT-запросы и WHERE

  • Получение и фильтрация данных с помощью SQL-команд SELECT и WHERE; проверка на NULL; фильтрация данных по нескольким условиям. Как использовать простые и агрегирующие функции, сложные типы данных, как сортировать и ограничивать результат запроса, объединять результаты нескольких запросов, использовать модификатор DISTINCT.
    • Агрегатные функции: Как суммировать данные, высчитывать среднее и определять количество строк с помощью функций COUNT, SUM, MIN, MAX и других.
    • Агрегатные функции по аналитическим разрезам: Как высчитывать минимальное и максимальное значения, группировать и фильтровать данные с помощью функций MAX, MIN, DISTINCT, HAVING и других.
    • Аналитические функции: Аналитические функции, такие как row_number(), lead/lag. Как применять аналитические функции по группам и выбирать данные из «окна».
    • Типы данных: Какие типы данных существуют, в каких случаях их применять и как преобразовывать.

Подзапросы и представления

  • Использование подзапросов и понимание их производительности. Виды представлений и как их создавать.
    • UNION. Объединение результатов нескольких SQL-запросов с помощью оператора UNION.
    • GROUP BY. Группировка выбранного набора строк с использованием оператора GROUP BY.
    • Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.
    • Секционирование и план запроса: как разбить большую таблицу на удобные секции и работать с данными внутри них. Оптимизатор Oracle и способы проверять и изменять план запроса.

Группировка

  • Способы группировать результаты запросов, использовать агрегацию и фильтрацию в результатах группировки. Порядок выполнения этапов запроса, особенности работы группировки с модификатором DISTINCT, ORDER BY, LIMIT и строгий режим SQL.

Отношения (реляции/relations)

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

Соединения (JOIN)

  • INNER JOIN, LEFT JOIN, RIGHT JOIN. Разберётесь в различных видах соединений. Научитесь применять соединения для отношений один ко многим и многие ко многим. Поймёте, что такое нормализация и денормализация и их влияние на производительность.
    • Объединение данных: как объединять и вычитать наборы данных, соединять таблицы, обогащать данные.
    • Присоединение таблиц: как соединить несколько таблиц и работать с нормализованными представлениями данных.

Оконные функции (Window Functions)

  • Оконные функции и как их применять. Особенности работы оконных функций с группировкой и выражениями ORDER BY и PARTITION BY.

Объекты базы данных

  • Работа с объектами базы данных, как распределять данные по ролям, создавать схемы и представлять данные в удобном для пользователя виде.

PL/SQL

  • Простейшие блоки: Процедурное расширение PL/SQL, как писать анонимные блоки и выводить информацию на экран. Операторы if/else.
  • Циклы: Как записывать и хранить информацию в переменных, как автоматизировать рутинную работу, циклы for и while.
  • Типы PL/SQL-объектов: Как создавать и вызывать процедуры и функции, передавать и получать параметры, создавать пакеты.
  • Использование PL/SQL: Системные и пользовательские исключения и как их обрабатывать. Как работать с курсорами и обходить ошибку запуска DDL.
  • PL/SQL-таблицы: Как складывать и преобразовывать данные в коллекции и работа с конвейерными функциями. Как обрабатывать большие объекты данных (CLOB).

Транзакции и ACID

  • TRANSACTION. Что такое транзакции и зачем они нужны. Атомарность, откат и изоляция транзакций, блокировка записей. Принципы ACID и требования ACID к транзакционной системе.

Программные средства работы с БД

  • Оптимальная работа с БД из кода. Как работает соединение с БД, как использовать фреймворки Query Builder, Active Record, Object Relation Mapping, принципы работы JDBC и программного контроля транзакций.

Производительность и системное устройство БД

  • Лучшие практики по проектированию схем БД и использованию индексов. Как работает оптимизация запросов и какие есть типичные ошибки, замедляющие запросы. Внутреннее устройство БД.
  • Проектирование базы данных, нормальные формы
    • Проектирование данных; нормальные формы; первичный ключ. Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.
    • Объявление структуры данных (Data Definition / DDL), триггеры и хранимые процедуры. Научитесь создавать и удалять схемы баз данных, объявлять и изменять структуру таблиц. Использование триггеров и хранимых процедур и их применимости.
  • Понятие согласованности или консистентности данных.
  • Индексы
    • Индексы и ключи, зачем они нужны, как влияют на производительность. Какие есть виды ключей, когда их применять, как работают индексы и каковы их ограничения.
    • Внешний ключ FOREIGN KEY CONSTRAINTS.
    • Составной первичный ключ.

Особенности MySQL

  • Чем MySQL отличается от других БД, особенности движков MyISAM, InnoDB и MyRocks, форка MariaDB.

Особенности PostgreSQL

  • Особенности PostgreSQL: оптимизатор, работа с JSON и XML, план запроса, язык PL/pgSQL.

Введение в NoSQL

  • Различия и применимость SQL и NoSQL решений, принципы хранения и структуры данных, производительность. Особенности Redis, MongoDB и других NoSQL решений.

Введение в MongoDB

  • Где применяется MongoDB и каковы её особенности. Как устроена схема и типы данных, простые запросы, использование индексов, работа с API из CLI и библиотек в языках программирования.

MongoDB: группировки, транзакции и JavaScript

  • Как работают группировки, агрегации и транзакции, как работать с MapReduce, как применяются JavaScript и хранимые процедуры в MongoDB.

MongoDB: работа в кластере, быстродействие и консистентность

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

Введение в Redis

  • Где применяется Redis, как работать с коллекциями и типами данных. Принципы хранения данных.

Redis: транзакции, хранимые процедуры и шардинг

  • Как работает Pub/Sub в Redis, как работать с языком Lua и хранимыми процедурами, кластерами и шардингом.

Ресурсы


Linux

Системное администрирование Linux

  • Основы устройства Linux, её файловая система, процессы и память. Что такое точка монтирования, ядро Linux, сокеты и пакетный менеджер.
  • Работа с файловой системой, дисками и разделами. Как настроить файл подкачки и смонтировать диск с файловой системой.
  • Основные операции в Bash-терминале. Работа с файлами и каталогами
  • Привилегии в Linux, управление доступом, учётные записи и групповые политики
  • Управление вводом/выводом. Конвейерная обработка
  • Управление процессами
  • Загрузка и конфигурация ядра в Linux
  • Запуск user space, Systemd
  • Управление системой, расписание
  • Логирование и мониторинг
  • Механизмы управления безопасностью. Основные понятия контроля доступа в DAC. Утилиты для управления безопасностью. Создание нового пользователя и ограничение его в правах доступа с помощью SELinux.
  • Повышение привилегий в Linux. Методы повышения привилегии пользователя в Linux. Рутинг, SUID, SUDO, cron jobs и контрмеры. Утилиты для повышения привилегий.

Сетевое администрирование Linux

  • Интернет
  • Как работать с маской подсети и определять адрес сети с помощью IP-адреса. Познакомитесь с методом бесклассовой адресации CIDR.
  • Маршрутизация. Таблицы маршрутизации. Default gateway.
  • ICMP и DNS
  • Физический уровень. Ethernet и сетевые интерфейсы
  • Network Configuration Manager vs ifconfig
  • DNS
  • Localhost
  • Транспортный уровень. TCP и UDP, порты и сервисы транспортного уровня.
  • DHCP
  • Настройка маршрутизации. Приватные сети и трансляция адресов (NAT).
  • Linux Firewall
  • ARP
  • Беспроводные соединения
  • Модель клиент-сервер
  • Сетевые сервисы
  • HTTP/HTTPS
  • SSH
  • Inetd and xinetd daemons. TCP Wrappers.
  • Сбор и анализ трафика с помощью pcap и netflow

Bash

  • Работа с файлами и папками. Относительные и абсолютные пути. Операции с файлами и папками. Размер папок и свободное место. Ввод, вывод и перенаправление данных. Команда grep.
  • Авторизация и права доступа. Пользователи и права доступа. Авторизация, FTP, SSH и SSH-ключи. Скачивание файлов.
  • Процессы, сервисы и задачи. Менеджмент джобов, jobs, bg, fg. Управление процессами, top, ps, kill. Планирование задач, crontab. Сервисы и управление ими.
  • Параметры и настройки bash. Популярные сочетания клавиш.

Ресурсы

Книги


Git



Проектирование


Функциональное программирование

Объектно-ориентированное программирование

Ресурсы

Книги

Thinking Recursively: Eric S. Roberts: 9780471816522: Amazon.com: Books
Книга "Рефакторинг. Улучшение существующего кода" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Шаблоны корпоративных приложений " — купить в интернет-магазине OZON с быстрой доставкой
Книга "Приемы объектно-ориентированного проектирования. Паттерны проектирования" — купить в интернет-магазине OZON с быстрой доставкой


Алгоритмы и структуры данных


Сложность алгоритма и простые алгоритмы

  • Асимптотическая сложность алгоритма: Сложность алгоритма; Анализ сложности алгоритма.
  • Оценка времени выполнения алгоритмов: O Большое (O) — худшее время выполнения алгоритмов; Тета Большое (Θ) — среднее время выполнения; Омега Большое (Ω) — лучшее время выполнения алгоритмов.
  • Линейный, ветвящийся, циклический алгоритмы: Линейный алгоритм; Ветвящийся алгоритм; Циклический алгоритм.
  • Алгоритм Эвклида, расширенный алгоритм Эвклида, решето Эратосфена: Алгоритм Эвклида; Расширенный алгоритм Эвклида; Решето Эратосфена.

Рекурсия, рекурсивные алгоритмы

  • Понятие рекурсии, простые примеры: Понятие рекурсии; Примеры рекурсии; Рекуррентное соотношение.
  • Числа Фибоначчи, факториал, стек вызовов: Числа Фибоначчи; Факториал числа; Стек вызовов.
  • Треугольные числа, анаграммы: Треугольные числа; Анаграммы.
  • Ханойская башня: История и правила задачи; Решение задачи.
  • Динамическое программирование: поиск с возвратом: Понятие “Динамическое программирование”; Метод поиска с возвратом; Задача о восьми ферзях; Обход конём шахматной доски.
  • Динамическое программирование: поиск всех возможных вариантов: Поиск наибольшей общей подпоследовательности; Поиск маршрутов шахматного короля.
  • «Жадные» алгоритмы: Определение “жадных” алгоритмов; Решение задачи о расписании; Примеры использования «жадных» алгоритмов.

Массив

  • Понятие и виды массивов: Понятие массива; Виды массивов; Одномерные массивы; Многомерные массивы; Матрицы; Треугольные массивы.
  • Базовые сортировки: Цель сортировки; Пузырьковая сортировка; Шейкерная сортировка.
  • Сортировки методом вставки и выбора: Сортировка методом вставки; Сортировка методом выбора.
  • Алгоритмы поиска: Алгоритмы поиска; Линейный поиск; Поиск с барьером.
  • Бинарный и интерполяционный поиск: Бинарный поиск; Интерполяционный поиск.

Сложные сортировки массивов

  • Быстрая сортировка Хоара: Сортировка Хоара; Сортировка (разбиение) Ломуто.
  • Быстрая сортировка. Улучшения: “Толстое” разбиение; Улучшенная быстрая сортировка; Плюсы и минусы быстрой сортировки.
  • Сортировка слиянием: Алгоритм нисходящего слияния; Алгоритм восходящего слияния; Алгоритм двухпутевого слияния; Плюсы и минусы сортировки слиянием.
  • Сортировка подсчётом, алгоритм со списком: Сортировка подсчётом (Counting); Сортировка алгоритмом со списком (Pigeonhole sort).
  • Блочная сортировка: Блочная сортировка; Плюсы и минусы; Пример кода.
  • Улучшенная сортировка вставками (Сортировка Шелла): Улучшенная сортировка вставками.

Стеки, очереди и списки

  • Динамические структуры данных: Стеки; Очереди; Дек; Приоритетные очереди.
  • Создание стека с использованием массива: Стек на основе массива; Базовые функции для работы со стеком.
  • Реализация очереди через массив: Очередь на основе массива.
  • Приоритетная и двусторонняя очереди: Очередь с приоритетом; Двусторонняя очередь.

Динамические структуры данных

  • Односвязные списки: Односвязные списки; Преимущества и недостатки использования.
  • Двусвязные списки: Двусвязные списки; Отличие от односвязных списков; Достоинства и недостатки.
  • Циклический список: Циклические списки; Причины использования.
  • Стек на основе односвязного списка: Стек; Типовые операции над стеком.
  • Очередь на основе двусвязного списка: Очередь; Типовые операции над очередью.

Деревья

  • Понятие и виды деревьев: Понятие дерева; Виды деревьев.
    • Бинарные деревья
    • Очередь с приоритетом и пирамидальная сортировка
    • Сбалансированные (АВЛ) деревья
    • B-дерево, R-дерево, K-d дерево
    • Суффиксные деревья
  • Построение бинарного дерева поиска: Структура дерева; Вставка узла; Скобочная запись; Удаление узла.
  • Рекурсивный обход бинарного дерева: Рекурсивный обход дерева; Примеры рекурсивного обхода дерева.
  • Построение сбалансированного дерева: Сбалансированное дерево; Описание на языке С.
  • Бинарный поиск в дереве: Деревья поиска; Бинарный поиск.
  • Пирамидальная сортировка (Heap sort): Пирамидальная сортировка.

Графы

  • Понятие и виды графов: Графы; Виды графов; Матрица смежности.
  • Обход графа в глубину: Обход графа в глубину; Пример описания обхода графа в глубину.
  • Обход графа в ширину: Обход графа в ширину; Пример обхода графа в ширину.
  • Волновой алгоритм: Волновой алгоритм Ли; Применение волнового алгоритма.
  • Реализация волнового алгоритма для дискретного рабочего поля.

Алгоритмы хеширования

  • Хеширование, хеш-функции: Хеширование; Хеш-функции; Хеш-таблицы; Коллизии; Метод цепочек.
  • MD5
  • CRC
  • SHA
  • Построение таблиц: Хеш-таблицы; Способы создания; Создание хеш-таблицы на основе метода цепочек.
  • Открытая адресация: Понятие открытой адресации; Подготовка хеш-таблицы.
  • Открытая адресация: Линейное пробирование; Квадратичное пробирование; Двойное хеширование.
  • Префиксное дерево
  • Алгоритмы поиска подстроки в строке
  • Алгоритм Хаффмана

Вероятностные и итеративные алгоритмы

  • Динамическое программирование
  • Одномерная динамика
  • Двумерная динамика
  • Численные методы и вычисления с заданной точностью
  • Метод Монте-Карло
  • Понятие вероятностных алгоритмов и фильтр Блума
  • HyperLogLog

Алгоритмы сжатия информации

  • Сжатие информации без потерь

Криптографические алгоритмы

Ресурсы

Книги

Книга "Алгоритмы. Вводный курс" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих" — купить в интернет-магазине OZON с быстрой доставк
Книга "Структура и Интерпретация Компьютерных Программ" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Искусство программирования. Том 1. Основные алгоритмы" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Искусство программирования. Том 2. Получисленные алгоритмы" — купить в интернет-магазине OZON с быстрой доставкой
Цифровая книга "Искусство программирования. Том 3. Сортировка и поиск" — купить в интернет-магазине OZON с быстрой доставкой
Книга "Искусство программирования, том 4А. Комбинаторные алгоритмы. Часть 1" — купить в интернет-магазине OZON с быстрой доставкой


Математика



Криптографические алгоритмы


  • Понятие и история шифра, принцип Кирхгофа. Симметричное шифрование, шифр Вернама, поточные и блочные шифры. Симметричные и асимметричные криптосистемы.
  • Критерии качества шифров, рассеивание и перемешивание информации, концепция абсолютно стойкого шифра, одноразовый блокнот, внутреннее устройство алгоритмов шифрования, сеть Фейстеля, SP-сеть, примеры алгоритмов: ГОСТ-28147-89 и AES
  • Режимы симметричного блочного шифрования, организация детерминированных цепочек блоков, генераторы псевдо-случайных чисел, гаммирование, поточные шифры
  • Криптографическое хеширование, современные стандарты: SHA-256, Keccak, Blake2, требования к безопасности и атаки на алгоритмы, принципы построения, примеры. Случайный оракул, подпись Лэмпорта, MAC, аутентифицированное шифрование.
  • Односторонние функции, алгоритм выработки общего секретного ключа Диффи-Хеллмана
  • Шифрование с открытым ключом. Понятия группы, кольца, поля. Протокол шифрования RSA, протокол Диффи–Хеллмана, система Эль-Гамаля‍
  • Цифровые подписи, назначение и требования. Подпись ECDSA и Шнорра, протокол подписи RSA, подписи на основании хеш-функций. Представление о PKI — инфраструктуре открытых ключей‍
  • PKI, секретная передача информации, схема электронной подписи основные ассиметричные криптосистемы: RSA, ECC, длины ключей
  • Практические аспекты криптографии, реализации протоколов, криптографическая безопасность, атаки man-in-the-middle, системы сертификатов, клептографические атаки
  • Threshold-протоколы, BLS-подписи, протокол разделения секрета Фиата-Шамира, протокол подбрасывания монеты и другие важные для децентрализованных систем протоколы
  • Zero-knowledge протоколы, свойства: soundness, completeness, zero-knowledge. Протоколы знания секретной экспоненты, pairings на эллиптических кривых, кольцевые подписи, multi-party computations.

Сетевые технологии


Общие сведения о компьютерных сетях

Физический уровень

Канальный уровень

Сетевой уровень

Транспортный уровень

Прикладной уровень

Защищенные сетевые протоколы

Продвинутые темы


Peer-to-peer сети


  • P2P-сети: отличия от архитектуры «клиент — сервер». Маршрутизация, bootstrapping P2P-клиента, announce vs request. Балансировка. Неструктурированные и структурированные оверлеи. eDonkey, KaZaaa, BitTorrent, mixed networks (TOR, i2p), блокчейны.
  • Общая схема работы децентрализованной сети, сообщения, маршруты, DHT (Distributed Hash Table)
  • Протокол Kademlia, метрики расстояния
  • IPFS и проблемы distributed storage
  • Хранение файлов в P2P и атаки на P2P. BitTorrent. IPFS‍
  • P2P сеть как транспорт для работы в децентрализованных сетях.

Ресурсы


Блокчейн


Введение в блокчейн

  • Обязательно знание #P2P и #криптографии
  • Основные продукты. Основы блокчейна: свойства, состояния, транзакции, блоки. Доверие к участникам сети
  • Работа с GPG: создание пары ключей, подпись, шифрование. Подключение к тестнету BTC, создание кошелька, работа с эксплорером. Работа с тестнетом Ethereum‍
  • Представление о вычислениях на несколько сторон. Схема разделения секрета Шамира. Схема commit-reveal. Криптографические протоколы garbled circuits и oblivious transfer. ORAM

Архитектура блокчейн-протоколов

  • Bitcoin и блокчейны, построенные на базе консенсусов типа proof-of-work (PoW)
  • Bitcoin, схема работы сети, алгоритм работы ноды, целостность блоков и работа с цепочкой
  • Bitcoin, организация транзакций в блоке, структура заголовка блока, полноценные и лёгкие ноды, мемпул. Требования к хешам блоков, сложность сети, nonce, майнинг. Адреса в Bitcoin, Ethereum, Merkle Tree, SegWit.
  • Bitcoin, структура транзакции, модель UTXO based consensus networks модель передачи value, комиссия сети, Bitcoin Script, передача владения
  • Обзор существующих сетей и особенности инфраструктуры: Ethereum, EOS, POA Network, DAOBet

Протоколы консенсуса

  • Протокол BFT — задача о византийских генералах. Обзор протоколов Paxos и Raft, масштабирование протоколов‍
  • Протоколы Proof-of-Work, майнинг
  • Bitcoin, Litecoin, Ethereum, Monero, требования к алгоритмам хеширования и их развитие, рассмотрение популярных PoW алгоритмов: SHA-256, Scrypt, Ethash, X11
  • Атаки на консенсус PoW сети: double spend, атака 51%, проблемы холодного старта
  • Препятствия децентрализации в PoW-системах: ASIC, пулы. Меры противодействия централизации. Масштабирование и пересчёт сложности майнинга, coin hopping‍
  • Стратегии майнинга: форки, эгоистичный майнинг, выборочное включение транзакций, объединённый майнинг‍
  • Консенсус типа proof-of-stake (PoS), наивный PoS, атаки nothing-at-stake, long-distance. Пулы в PoS-системах‍. Консенсусы типа Delegated Proof Of Stake (DPoS)
  • Экономическая безопасность консенсусов типа proof-of-stake (PoS), slashing, sybil атаки, атаки большим стейком, механизмы защиты
  • Примеры реальных алгоритмов типа proof-of-stake (PoS): рассмотрение вариантов DPoS в POA Ethereum, EOS, TON, Cosmos, Tezos
  • Валидаторы, орагнизация governance сетей, тестовые и приватные блокчейны
  • Консенсусы типа proof-of-authority (PoA), безопасность и производительность PoA алгоритмов, требования к safety и liveness, алгоритм Practical BFT
  • Другие варианты консенсуса: Proof-of-Space, Hashgraph. Блокчейны PrimeCoin, Storj, Filecoin

Смарт-контракты

  • Блокчейн как абстрактный автомат. Стековая машина bitcoin, скрипты bitcoin и их ограничения‍
  • Исполнение кода в консенсусе: детерминизм, безопасность, особенности виртуальной машины, модели аккаунтов, балансов
  • Смарт-контракты: понятие, принципы работы, основные свойства, организация среды исполнения. Bitcoin Script‍
  • Смарт-контракты Ethereum: cхема работы, виртуальная машина EVM, уязвимости, концепция газа, проблема останова, Solidity, окружение контракта, storage, вызовы других контрактов и библиотек
  • Смарт-контракты EOS: cхема работы, WebAssembly для контрактов, концепция ресурсов, storage
  • Runtime код Parity Substrate и Application Cosmos: принципы построения блокчейн-фреймворков
  • Безопасность систем смарт-контрактов: front-running, арифметические переполнения, типовые уязвимости кода контрактов и инфраструктуры, примеры атак, методики аудита кода
  • Средства автоматизированного аудита кода: Mythril, Slither, примеры аудитов и реальных ошибок
  • Типовые паттерны разработки смарт-контрактов: оракулы, голосования, commit-reveal
  • Publicly verifiable Random Beacon и проблемы генерации случайных чисел в блокейнах. Использование random-based паттернов в консенсусах, арбитраже сделок, экономических протоколах на основе теории игр

Протоколы анонимизации

  • Протоколы миксинга и конфиденциального вычисления‍
  • Кольцевые подписи, stealth-адреса. Концепция обязательств Педерсена, доказательства принадлежности интервалу. Анонимизация в Monero‍
  • Криптовалюты Mimblewimble и Grin. Анонимизация в Zcash и понятие zk-SNARK

Масштабирование сетей блокчейн

  • Ограничения блокчейн-сетей: число валидаторов, время процессинга транзакций, tradeoffs speed/security
  • Масштабирование блокчейнов: шардинг, многоуровневые архитектуры, архитектуры проектов Polkadot, Cosmos, Telegram Open Network, Ethereum 2.0
  • Succinct proofs и zkSNARKS/STARKS для масштабирования блокчейнов, rollups
  • Офчейн-протоколы. Lightning. Сайдчейны‍

Пользовательские аспекты работы с блокчейном

  • Типовое ПО сопровождающее блокчейны. Обозреватели блоков, рассмотрение Etherscan, BlockScout, основные компоненты обозревателя блоков, обзор кода.
  • Криптовалютные кошельки, обзор решений: Electrum (Bitcoin), Metamask (Ethereum), TrustWallet (Ethereum), Scatter (EOS), клиентский код для Hyperledger Sawtooth
  • Запуск и эксплуатация блокчейнов, проблемы тестирования производительности и устойчивости блокчейн-сетей, метрики мониторинга.
  • Инструменты для развертывания блокчейн-сетей, обзор инструментов для тестирования блокчейнов: Hyperledger Caliper, Hyperledger Fabric‍, MixBytes Tank
  • Permissioned-модели открытых блокчейнов и обзор решений‍
  • Кошельки и хранение ключей. Получение ключей из сид-фразы и иерархические детерминистские кошельки. Функционирование криптобирж. Устройство и проблемы смарт-контрактов, DAO, ICO, DeFi‍
  • Примеры DeFi и практика написания.‍
  • Правовые аспекты работы с блокчейном

Телеграм-чаты и каналы на ютубе



Тусовки


Конференции / Хабр
Хакатоны / Хабр
it-events
it-events/hackathons


Английский



Как найти работу


Как написать резюме

Где искать работу

Хабр КарьераHeadHunterIndeed

Работа заграницей

100% КАК УЕХАТЬ В США ПРОГРАММИСТУ/АЙТИШНИКУ - YouTube

Jobs | GlassdoorRMTWRKRemoteok WeloveremoteWe Work RemotelyStack Overflow Jobs

Фриланс

Ищите сами.


Предпринимательство



Финансы


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].