2021年10月18日 • ☕️☕️ 8 min read
English

コロナ時代の今、eラーニングを利用する方が少なくないでしょう。対面式より手頃で、勉強する時間帯も自分で決められるのが、忙しいサラリーマンにとってメリットが大きいです。
自分AWSの初心者だがUdemyのコースを受けて、簡単にAWS Certified Solutions Architect - Associateを取りました。Udemyの前に、よくUdacityのフリーコースを受けました。内容はちょっと古いかもしれませんが(コースの中はKnockout.jsを使っている)、考え方がとても面白いJavaScript Design Patternsをずいぶん前受けたことがあります。そこでAngularJS, Reactなど何のために生まれたか理解できました。

5カ月前に、ずっとBlockchainに興味がある自分宛に、Udacityから値引きのメルマガジンが届きました。4カ月のBlockchainのコースが元々1596ドルだったが、値引き後ただ339ドルになるなので、受けることを決意しました。今は無事にCapstone(最後のプロジェクト)を合格させて”卒業”できました。Nanodegree-Blockchain Developerの感想をシェアして、これからUdacityのNanodegreeコースを受ける方にご参考になれば嬉しく思います。

Nanodegree Blockchain Developer卒業証書

開始前の懸念と決意

  1. 値段
    • 懸念:アメリカのプログラマーにとって決して高くないが、日本にとっては$1596(176,000円)安くないでしょう。(Udemyに1200円のコースが多い)
    • 決意:75%の値引きは決め手となった
  2. 時間
    • 懸念:平日仕事しなければいけないし、子供の世話も多少する。しかも6月にスタートアップ会社へ転職し、最初の段階でキャッチアップするために忙しそう
    • 決意:休みの時間を減らせば何となくカバーできると思った(これは甘かった)
  3. 難易度
    • 懸念:Blockchainにまったく経験のない自分が無事にプロジェクトを作れるか
    • 決意:難易度3(一番難しい)であるJavaScript Design Patternsを受けた時、何の問題も感じられなかった。Blockchainのコースは難易度2(中)しかないので、問題ないと(これも間違った)
  4. 言語
    • 懸念:英語の授業しかない
    • 決意:聞き取るのがほとんど問題ない、万が一専門用語が出てきてもUdacityの授業ビデオがYoutubeのソースなので、自動生成の字幕がある

Nanodegreeへの期待

Nanodegreeページに載せてありますが。

  1. プロフェッショナルな先生:Udemyと異なり、Udacity中の先生は名門企業出身の方が多い
  2. リアルワールドのプロジェクト:UdacityのNanodegreeに実装しなければいけないのは学生の”宿題”ではなく、実際に企業の中に使える(使われている)プロジェクトとなる
  3. プロジェクトのレビュー:プロジェクトを作るだけではなく、作ったプロジェクトをレビューしてくれて、問題点を指摘してくれる
  4. 指導者がQ&Aフォーラムに質問を答えてくれる

expectations.png

結局

平均週10時間で4か月なら卒業できるコースだが、結局5カ月かかりました。想像以上難しくて、時間も想像以上かかりました。その原因と感想をシェアします。

開始後の問題

時間

時間のないのが一番の問題でした。

  1. Udemyみたいにビデオをみるだけではなく、コースを理解するために、勧められる英語の文章などを読まなければいけません。想像以上時間がかかりました。最初の2つのプロジェクトまでまだそんなに多くないが、コースが進むと調べなければいけないことと読まなければいけない資料がどんどん多くなってきます。

  2. それ以外、コースの内容を理解するために、資料を調べるのにも時間がかかります。

例えば:最終のプロジェクトに使っているZK-SNARKsはBlockchainArchitecture部分のLesson4に5分ほどのビデオにほんの少しだけ紹介されていますが、プロジェクトに実装してくれと言われると、関連資料を調べないとどうすればいいかわかるわけないでしょう。

  1. そして、勉強の途中で新しい職場に転職しました。新しい職場のプロジェクトをキャッチアップするために時間が費やし、Blockchainコースを勉強できる時間帯は深夜と土日のみとなります。Blockchainに関心が高いが、流石に年中無休で勉強すると、疲れちゃいます。土日少し休むと、コースの進捗に待ち合わなくなり、結局最終の2つのプロジェクトをマイペースでやったため、合わせて1カ月延長しました。卒業するまで5カ月かかりました。

難易度

JavaScriptの部分は全く難しくないが、コースのメインはJSではなく、Solidityとなります。

  • この短時間で新しい言語をマスタするのが流石に難しく感じます。
  • 致命的な問題はコース内のサンプルおよびソースコードに使われているSolidityのバージョンが古すぎることです。最終の更新日時が2018のものがほとんどで、2019年のものが稀にあります。新バージョンに破壊的な変更が多くて、調べながら試行錯誤して進まなければいけない場所が多かったです。
  • 最後の2つのプロジェクトに関して説明が少なく、とにかく難しい。Solidityを最新のバージョンしなければ少し簡単になるが、Solidityのバージョンが金銭と関わっている死活問題なので、やはり過去の教訓を吸収してきた最新バージョンの使うことが重要でしょう。

まとめると、自分にとって難易度レベル3のJavaScript Design Patternsより難しく感じます。ここには個人差があるかもしれません。

Nanodegreeへの期待と現実

ほぼ期待通りです。

  1. プロフェッショナルな先生

確かにビデオの質が高いです。 2. リアルワールドのプロジェクト
最初のプロジェクトは簡単だが、勉強すればするほど、リアルワールドのものへ。特に最後のプロジェクトが難しかったが面白かったです。 3. プロジェクトのレビュー
レビューはレビュワーによるが、ほとんどのレビュワーがよくやっていると思います。ただ、会社ほど厳しくレビューされるわけではありません。(とはいえ、厳しすぎるとレビュー文化に慣れていない人が諦めるかも) 4. 指導者がQ&Aフォーラムに質問を答えてくれる
これは唯一の期待はずれとなります。指導者(mentor)が学生の質問に対して1回しか答えられない、追加質問が無視されるのがほとんどです。コミュニティ(学生たち)も活発していないので、Q&Aのみなら問題解決に不十分で、Google先生に聞く必要があると思います。

まとめ

Prons

  1. コースの質が高い
  2. 卒業するためにいくつのプロジェクトを完成しなければいけないが、やりがいをかじられる
  3. 宿題(プロジェクト)をレビューしてくれるのがとてもいい

Cons

  1. プロジェクトのソースコードが古すぎる

前述した通り、Solidityのバージョンアップとともに、今までスマートコントラクトにあった事故の教訓を受け、破壊的な変更が多いです。バージョンアップしないプロジェクトを提出しても通るが、やっはりセキュリティがとんでもない重要なスマートコントラクトを書くのに、最新版のSolidityを使った方が無難でしょう。
Udacityのエンジニアが最新版のメンテナンスできなかったら、コミュニティに公開し、みんなの力を借りたほうが全然ましだと思います。 2. Q&Aのフォーラムが人気ない
少なくてBlockchain Developerコースはそうです。 3. Blockchainが深くて、eラーニングだけでは不十分かもしれない 4. 正直コースの中リンク切れ、タイポなどが結構ある。
最初の段階自分が誤ちを指摘してみたが、しばらく経つとプロジェクトの古さに気づき、あきらめました。

教訓

  1. 十分な勉強時間を確保しましょう
  2. コース以外大量な英語文章を読むことを覚悟しましょう
  3. 使うメイン言語はJavaScriptではなく、スマートコントラクトを書くためのSolidityとなることを覚悟しましょう(ほとんどの人にとって新しい言語となり、勉強するために時間が必要です)

完了

平均4カ月卒業するコースですが、自分が5カ月かかりました。子供のいるパパママがこのコースを取ろうとする時同じぐらいの時間がかかると考えればいいでしょう。決して簡単なコースではありませんが、最後のプロジェクトを完成した時点、達成感が結構あり、楽しかったです。

お勧め度は人によるが、満点10点とすると、「値引きあり、Blockchainに興味あり、自主的に勉強できる方なら8点」に値します。一応頑張る必要があるのですが。


ThunderMiracle

Blog part of ThunderMiracle.com