С чего начинать изучение программирования в контексте блокчейн технологий?
Например, с знакомства с составляющими частями блокчейн экосистемы. Цель этого поста -- дать общее сравнение областей/сегментов технологий релеватных для блокчейн проектов, на основании которого можно начинать выстраивать систему обучения.
Ключевым вопросом в изучении программирования является поддержание мотивации и упорства на достаточном уровне до того момента, пока программирование не начнет давать реальные результаты, увеличивающие благосостояние и/или глубина погружения не начала генерировать внутреннюю мотивацию и интерес.
Криптовалюты отлично для этого подходят, предоставляя реалистичную возможность трансформировать время и усилия в значимую материальную выгоду и что-то изменить в мире по пути.
Позаботьтесь о том, чтобы искра любопытства горела все ярче и ярче.
Управление собственной мотивацией – один из критичных элементов, необходимых для успешного закрепления привычки программировать.
Материальная выгода или внешняя мотивация является только первой стадией ракеты-носителя, которая выведет навыки разработчика на орбиту. Вторая стадия требует настоящего, неподдельного интереса. Чтобы достичь такого состояния сознания, необходимо осознанно и смело подходить к выбору и тестированию конкретной области программирования.
Криптовалюты не являются продуктом теоретических изысканий в абстрактном вакууме, но есть результатом эволюции (часто случайной) не только технологий, но и экономических и философских аспектов социо-экономического контекста науки о компьютерах.
Блокчейн, ноды, консенсус протоколы
Стек технологий: криптография, распределенные базы данных, формальная верификация, системное тестирование и контроль качества
Стек навыков: теория игр, экономика, финансы, философия, политические течения, маркетинг и коммуникация.
Языки: C++, Rust, C#
Количество образовательных материалов: низкое
Примеры: Bitcoin, Bitshares/Steem/Golos, Ethereum-geth, Parity-bitcoin, Parity-ethereum
Смарт контракты
Языки: Solidity/WASM
Стек навыков: теория игр, экономика, финансы, философия, политические течения, маркетинг и коммуникация
Количество образовательных материалов: низкое
Примеры: Gnosis, Augur, Digix, OmiseGo
Веб приложения
Языки: JavaScript/TypeScript, HTML/CSS, транспилируемые языки вроде Elm, ClojureScript, PureScript и т.д. Отдельно следует отметить WASM, который недавно получил поддержку основных браузеров.
Стек технологий: React/Redux, вебсокеты, REST, GraphQL, HTTP, JSONRPC, Responsive дизайн.
Стек навыков: UX/UI, дизайн, lean marketing, итеративная разработка, маркетинг и реклама
Количество образовательных материалов: высокое
Примеры: блокчейн эксплореры, golos.io, steemit.com, Openledger, Waves DEX
Мобильные приложения
Языки: Java, Swift, JavaScript, CSS
Стек технологий: iOS, Android, HTTP, WS
Стек навыков: апп маркетинг, дизайн, UX/UI
Количество образовательных материалов: высокое
Примеры: Blockfolio, кошельки криптовалют
Бекенд
Языки: широкий спектр, от Ruby и Python до Golang и Elixir
Стек технологий: HTTP, WS, дизайн API, GraphQL, REST
Стек навыков: UX, DX (Developer eXperience), веб безопасность
Количество образовательных материалов: высокое
Примеры: GoldVoice, Mapala, Glasnost
Аналитические системы
Языки: SQL, JavaScript/Typescript, широкий спектр языков для обработки и трансформации данных
Стек технологий: PostgreSQL, MySQL, Hadoop, Spark, Druid, InfluxDB
Стек навыков: UX/UI, анализ данных, статистика, теория вероятности
Количество образовательных материалов: высокое
Примеры: fork.lol, coin.dance, razumgolosa.com
Индивидуальные отличия и предпочтения играют ключевую роль, правильный выбор области приведет к тому, что зубодробительная скука превратится в наполняющий поток осмысленной деятельности. И наоборот.
Список технологий и навыков никак не является исчерпывающим и намеренно упрощен.
Если есть вопросы -- задавайте, на простые отвечу в комментариях, на обширные -- в следующем посте.