がじぇったー

お金と家電とプログラミングのブログ

『現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門』は短時間でPythonによるWEBアプリケーション構築方法を学びたい人にもおすすめ

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。

この3連休で酒井さんの新しいUdemyの講座、現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門をがっつりやりましたのでその感想を書きます。


前回の記事が評判良かったんで、調子こいて今回も書かせて頂きます。








TL;DR(要約)

  • ブロックチェーンを学びたい人はもちろん、短時間でPythonによるWEBアプリケーション構築手法を学びたい人にオススメ(自然とflaskの使い方が学べる流れになっている)
  • 特に面白いのがセクション5と6。手を動かしながらflask(Python用の、軽量なウェブアプリケーションフレームワーク)での画面遷移やRest API を作る手法を学べるところがめちゃ良かったです
  • Pythonの簡単な文法を理解していることが前提なので、個人的には酒井さんの基礎講座(特にセクション7のオブジェクトとクラス)を受講してからやるのがオススメ
  • 講義は4〜5時間で一通り聞けるので週末がっつりやればすぐ終わります


あなた(筆者)誰??


私は文系から第二新卒でWEBエンジニア(インフラ寄り)になった者です。(6年目)
専門はAWSGCPを使ったインフラ構築ですが、Pythonで社内の便利ツールを作りまくって腕を上げ、今は副業先で月10万程度、Pythonで追加収入を得ています。


その時の記事はこちら


話ずれちゃいますが、企業がエンジニアをSIerやSESから調達しようとすると月額80万〜150万くらいはするので、月10万程度で副業エンジニアに業務を発注できるのは企業側にも大きなコストメリットがあります。

なのである程度エンジニアの経験がある人が副業で働くとまぁまぁ稼げます。


受講した講座の内容



本題に戻ります。
以下、講義の目次です。


個人的にブロックチェーンサーバーのAPIからが特におもしろかったです。
flaskの説明や使い方がとても分かり易かったです

1 講義の目次 所要時間
2 はじめに(ブロックチェーンエンジニアの求人とブロックチェーンを採用する大企業の状況) 17:57
3 ブロックチェーンとは 11:29
4 ブロックチェーンの作成 46:36
5 ウォレットの作成 37:48
6 ブロックチェーンサーバーのAPI 01:03:32
7 ブロッックチェーンネットワークの構築 01:18:17

※講義のページより引用




どんな人にこの講義がオススメか

メインターゲットは手を動かしながらPythonブロックチェーンの知識を得たい人、
だと思うのですが、

そもそも自分はブロックチェーンを学びたい、というよりはちょうど副業でflaskのプログラムの運用保守をやらないといけなくなったので、flask学びたい!という感じでこの講座に飛びつきました。


なので自分のように

  • Pythonの基礎を一通り勉強して、WEBアプリケーションの勉強に入りたい人
  • Restful APIを作る手法を学びたい
  • Python学んでるのはいいが作りたい題材がない

という人にもオススメだと思います。






どんなところがオススメなのか



私が、以前からUdemyの酒井さんの講座を激推ししてるのは、とにかく実践的かつ効率的だからです。

Pythonチュートリアルとか、初心者向けの本読んで写経しても一週間後にはhello worldやったなぁくらいの記憶しか残らないんですよね。

手を動かしながら学んでいける講座が好きなんです。



この講義も自分がPythonでWebアプリケーション作った際に苦労して学んだ内容が簡単に学べるようになっていてすごいなぁと思いました(小並感)



例えば、Rest APIを作って、リクエストを受け取りjsonifyで返すところとか
※ 以下のCodeは講義より引用させて頂いております。

  
@app.route('/chain', methods=['GET'])
def get_chain():
    block_chain = get_blockchain()
    response = {
        'chain': block_chain.chain
    }
    return jsonify(response), 200


APIにPostされたデータを検証する方法とか

  
        if not all(k in request_json for k in required):
            return jsonify({'message': 'missing values'}), 400


特定のページにアクセスしたら、flask側にPostしてjson responseを受け取る方法とか
※この辺体系的にまとまってないのでほんと嬉しかった

  
$(function () {
   $.ajax({
     url: '/wallet',
     type: 'POST',
     success: function (response) {
         $('#public_key').val(response['public_key']);
         $('#private_key').val(response['private_key']);
         $('#blockchain_address').val(response['blockchain_address']);
         console.info(response);




標準出力のログを見やすくするテクニックとか

  
def pprint(chains):
    for i, chain in enumerate(chains):
        print(f'{"="*25} Chain {i} {"="*25}')
        for k, v in chain.items():
            print(f'{k:15}{v}')
    print(f'{"*"*25}')

app.loggingで簡単にログを出力する方法とか

  
        app.logger.warning({
            'private_key': miners_wallet.private_key,
            'public_key': miners_wallet.public_key,
            'blockchain_address': miners_wallet.blockchain_address})


ナドナド、
自分がWEBアプリケーションを作る際に参考にしたいテクニックが満載でとても有用な講義でした。

PythonでWEBアプリケーションを作るリファレンスってRailsとかに比べて圧倒的に少ないのでほんと有難いです。




以上です。

受講させて頂いたUdemyの講義

現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル