Udacity Blockchain Developer Nanodegreeを修了して

Udacityの提供するBlockchain DeveloperのNanodegreeを修了しました。今年はMachine Learning EngineerとDeep Reinforcement LeaerningのNanodegreeも修了しているので、3つ目です。UdacityのNanodegreeへの取り組み方もようやく掴めてきました。

UdacityのNanodegreeは、あるIT技術職に就くために要求されるナレッジを、プロジェクトベースで身につけるように構成されたオンライン学習のサービスです。大学の学位(Degree)よりもターゲットを絞ってNanodegreeという単位で習得した技術レベルを証明することができます。

大学時代に数学をそれなりに勉強していたので、Machine LearningやDeep Reinforcement Learningはほとんどコンテンツを見ずに、それぞれ、正味1ヶ月、3ヶ月で修了することができました。その前に失敗したRoboticsでは学習環境構築で失敗しまくっていたので、PCをGPU搭載のものに変えて臨みました。

Blockchainについては、そのうちIoTの世界にも入ってくるだろう、という程度の認識であまり前知識はありませんでした。私自身はIoTのSolution Engineer Architectという肩書でやっているので、技術をちゃんっと理解しておこうというモチベーションで受講しました。フロントエンドの開発をあまりやってなかったので、JavaScripなどあまり馴染みが無く、不安がある中での受講でした。

結果は、Udacity側の想定通りの4ヶ月での修了できました。内容は、Blockchainの基礎、Solidityの文法はもちろん、ERC721によるNFTアセットの売買を、Zokratesを使ったゼロ知識証明によってプライバシーを保って行うプロジェクトや、OpenZeppelinやデザインパターンによるセキュリティを考慮した演習、Oracleとも連携するdAppなどを含んでおり、Ethereumを中心として多くの領域をカバーしていたのではないでしょうか。

コンテンツは一年以上前に作成されているので、Solidityのバージョンが0.4.23あたりだったり(最後のプロジェクトのテンプレートは0.5.0だった)を前提としていて、足の早い技術ではどうしても起こってしまうコンテンツの陳腐化は多少ありました。基本を抑えて将来的な変化の対応できるように多くのビデオコンテンツは丁寧に作られていました。私は、すべてSolidityがらみのプロジェクトは0.5.Xベースにしてプロジェクト課題を提出しました。Boilerplateというプロジェクトの雛形を0.4.Xから0.5.Xに対応させなければならなかったのですが、それほど苦労はなかったです。コンパイラのエラー、またはVisual Stuidoコードのプラグインが適切にバージョンの違いによるエラーメッセージを出してくれていたからかもしれません。

実質、私が苦労したのはJavaScriptだけなので(JavaScriptの文法の本やReactの本を数冊読む羽目になりました)、フロントエンドの開発者で英語が苦にならなければ、もっと早い時間で修了することができるのではないでしょうか。私の場合、フライトの保険アプリプロジェクトで、JavaScripでフロント開発に結構はまってしまい、そこで半分近くの時間を費やしてしまいました。プロジェクトは全部で5つあります。

テンプレートとして提供されている、ありものを使えばよかったのですが、なぜかReactでやりたいと思ってしまい、TruffleSuite.comの提供するReactベースのDrizzleとか持ち出して、一からフロントを作っていました。要らん努力でした。

参考までに、私のPC環境ですが、

Ubuntu 18.04LTS,
CPU Core i7(9thGen) 8750H 12コア
メモリ16GB
NVIDIA GeForce RTX 2060 <== Blockchainではマイニングでもやらない限り関係なし

となっています。Blockchainがらみでは、

Truffle v5.0.40 (core: 5.0.40)
Solidity v0.5.8 (solc-js)
Node v10.16.2
Web3.js v1.2.1
MetaMask7.3.1 + Braveブラウザ

となっています。

修了してみての感想としては、EthereumやdAppやSolidityは面白い技術でした。お金とモノやサービスをここまでタイトに結びつける技術って初めてかもしれません。管理会計とかでActivity Based Costingとかなんだとかいろいろ、苦労してERPなどで実装して実行していたのが、これから変わるかもしれません。IoTという面でも、モノのインターネット化がちゃんとサービス経済化に貢献するのに最適の技術なのかもしれません。資産の減価償却を考慮した、モノの利用課金がBlockchainで実現するかもしれません。ただ、商用利用するにはまだまだ業界全体にナレッジが十分に蓄積されていないように思えます。今は技術課題が盛んに議論され、ビジネス課題が広く議論されるのはこれからのような気がします。このあたりはEnterprise Ethereumなどで解決されていくのかもしれません。

そういった意味で、企業相手にBlockchain開発者として生きていくのであれば、Enterprise Ethereumは押さえておく必要があるのでしょう。

安くはないコースで、一部のコンテンツには多少の不満あるものの、多くのビデオコンテンツは丁寧に作られていて、私自身としては受講してよかったと思えるコースでした。この受講した分をどうマネタイズしてくのか、そこは考えどころですが、機械学習とかよりもビジネスやお金のあり方を変える興味深い領域なので、興味があればチャレンジしてみるといいと思います。ガートナーのテクノロジーハイプでも、幻滅気にあるそうです。幻滅気は熱が一通り冷め、適用される範囲や、弱点が洗い出されるフェーズです。実用化に必須の重要なフェーズとなっています。このフェースで、Blockchainでできること、できないことを見極めておくことが大切だと思っています。

別途、個別プロジェクトを拡張して、ブログネタにするつもりですが、今回のところはこんなところで。

コメント

タイトルとURLをコピーしました