こんにちは!ふるのーと(fullnote)です!(*^^*)
Pythonの勉強をしようと思って次のオンラインで勉強できるUdemy講座を申し込みました!
⇒現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
全部で30時間近くあるのですが、ひとまず基礎編を一通り見え終えたので感想を紹介したいと思います。
結論から言うと、チンプンカンプンです。
講座が難しいのか私が馬鹿なのかはわかりませんが、そういった状態ですが、ひとまずレビューしますので是非参考にしてみてください。
講師の酒井潤さんについて
講師の酒井潤さんは実際にシリコンバレーで働いている現役エンジニアです。
Wikipediaによると1979年6月14日生まれ(45歳)の千葉県出身だそうです。
非常に優秀な経歴で、
- サッカー大学日本代表で東アジア大会で金メダル
- 同志社大学
- 北陸先端科学技術大学院大学(JAIST)
- NTTドコモ入社
- 企業
- Splunk入社
- 本を出版
- 投資で1億円稼ぐ
などなど輝かしい実績の持ち主です。
また、登録者1万人以上のYoutuberとしても活躍されており、まさに「成功者」ですね。
Udemy:現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルについて
この酒井潤さんの講座がUdemyにありました。
「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」という名前の講座です。
- 現役のシリコンバレーエンジニアが講師
- 入門から応用までこの講座で学べる
- わかりやすいコードスタイルが学べる
- 30時間近い豊富なボリューム
- 5万人以上の受講実績
といったところが、おすすめポイントとなっています。
コースの紹介では以下のように書かれています。
このコースでは、Python3の基礎である入門コースを一通り終えた後に、今後のアプリケーション開発に役立つためのPythonのテクニックやデーターベースアクセス(SQLite, MySQL, MongoDB, SQLAlchemy, memcached, Hbase, neo4j etc)、WEB(Flask, socket, RPC etc)、インフラ自動化(Fabric, Ansible)、並列化(スレッド、マルチプロセス)、テスト(Unittest, pytest, Tox, Selenium, etc)、暗号化(pycrypto, hashlib)、グラフィック(turtle, Tkinter)、データ解析(numpy, pandas, matplotlib, scikit-learn), キューイングシステム(ZeroMQ, Celery)、非同期処理(asyncio)などのPythonを使った応用編を取り入れております。
また、Pythonのコードをただ書いて、プログラムが動けば良いというだけではなく、コードスタイルに関しても言及しております。pythonicにと言われるように、PythonはPythonらしく綺麗でわかりやすいコードを書くことが大切です。
私が10年以上勤務しているアメリカのシリコンバレーのIT企業ですが、どの企業にも世界の多くの国から、良いプログラマーが集まってきます。そのため、他の国から来た異文化の人がコードを読んでも理解できるように綺麗に書かなければなりません。
日本では、他の人にはわからない難しいコードが書ける人が素晴らしいプログラマーだとされる傾向がありますが、シリコンバレーでは、いかに綺麗にわかりやすいコードを書けるかが重要となって来ております。アメリカでは、解雇や転職などの機会も多く、コードは常に誰か新しいメンバーが入って来てもすぐにわかるようにしなければならないため、他の人にわかりにくいコードを書くブログラマーは解雇対象となってしまいます。
まずは、Pythonの基礎を学んで、アプリケーション開発の際には、コードスタイルに気をつけて、Pythonicなコードが書けるように目指しましょう。
皆様の今後のご活躍にお役に立てるようなコースとなれば幸いです。それでは、今後の皆様のご活躍を祈っております。
おお!めっちゃいい講座やんけ!この講座を受ければ一通りPythonが触れるようになるってことじゃん!
非常にキャッチーな説明文ですよね。
これを受けておけばPythonが一通り学べるような内容になっているとのことです。
講座内容
この講座のボリュームは
- セクションの数: 23
- レクチャーの数: 290
- 総時間: 28時間36分
となかなかのボリュームです。
入門編だけでも以下セッションがあります。
- ここから開始しましょう。
- はじめに
- アメリカ本社のUdemyオフィスに遊びに行ってきました
- 講義の話すスピードを変更したい場合
- Python環境の設定
- MacにPythonをインストールする
- MacにPycharmをインストールする
- WindowsにPythonをインストールする
- WindowsにPycharmをインストールをする
- Pythonの基本
- まずはprintで出力
- 数値
- 文字列
- 文字列のインデックスとスライス
- 文字のメソッド
- 文字の代入
- f-strings
- データー構造
- リスト型
- リストの操作
- リストのメソッド
- リストのコピー
- リストの使い所
- タプル型
- タプルのアンパッキング
- タプルの使い所
- 辞書型
- 辞書型のメソッド
- 辞書のコピー
- 辞書の使い所
- 集合型
- 集合のメソッド
- 集合の使い所
- 制御フローとコード構造
- コメント
- 1行が長くなる時
- if文
- デバッガーを使って確認してみる
- 比較演算子と論理演算子
- InとNotの使い所
- 値が入っていない判定をするテクニック
- Noneを判定する場合
- while文とcontinue文とbreak文
- while else文
- input関数
- for文とbreak文とcontinue文
- for else文
- range関数
- enumerate関数
- zip関数
- 辞書をfor文で処理をする
- 関数定義
- 関数の引数と返り値の宣言
- 位置引数とキーワード引数とデフォルト引数
- デフォルト引数で気をつけること
- 位置引数のタプル化
- キーワード引数の辞書化
- Docstringsとは
- 関数内関数
- クロージャー
- デコレーター
- ラムダ
- ジェネレーター
- リスト内包表記
- 辞書包括表記
- 集合内包表記
- ジェネレーター内包表記
- 名前空間とスコープ
- 例外処理
- 独自例外の作成
- モジュールとパッケージ
- コマンドライン引数
- Import文とAS
- 絶対パスと相対パスのImport
- アスタリスクのインポートとinit.pyとallの意味
- ImportErrorの使い所
- setup.pyでパッケージ化して配布する
- 組み込み関数
- 標準ライブラリ
- サードパーティーのライブラリ
- importする際の記述の仕方
- nameとmain
- オブジェクトとクラス
- クラスの定義
- クラスの初期化とクラス変数
- コンストラクタとデストラクタ
- クラスの継承
- メッソドのオーバーライドとsuperによる親のメソッドの呼び出し
- プロパティーを使った属性の設定
- クラスを構造体として扱う時の注意点
- ダックタイピング
- 抽象クラス
- 多重継承
- クラス変数
- クラスメソッドとスタティックメソッド
- 特殊メソッド
- ファイル操作とシステム
- ファイルの作成
- withステートメントでファイルをopenする
- ファイルの読み込み
- seekを使って移動する
- 書き込み読み込みモード
- テンプレート
- CSVファイルへの書き込みと読み込み
- ファイル操作
- tarfileの圧縮展開
- zipfileの圧縮展開
- tempfile
- subprocessでコマンドを実行する
- datetime
- 入門編の終了 応用編に行く前に簡単なアプリケーションの演習
- WindowsとMacのコマンド
- 簡単なアプリケーションを作って見よう
- デモアプリケーションの流れを説明したPDFファイル
- デモアプリのコードを展開する
- サンプルのデモアプリケーションのコード
- サンプルコードの設計とフォルダ構造の解説
- サンプルコードのViewsとテンプレートの解説
- サンプルコードのmodelsとcontrollerの解説
すごいボリュームですよね。
応用編ではこの後にデーターベースアクセス(SQLite, MySQL, MongoDB, SQLAlchemy, memcached, Hbase, neo4j etc)、WEB(Flask, socket, RPC etc)、インフラ自動化(Fabric, Ansible)、並列化(スレッド、マルチプロセス)、テスト(Unittest, pytest, Tox, Selenium, etc)、暗号化(pycrypto, hashlib)、グラフィック(turtle, Tkinter)、データ解析(numpy, pandas, matplotlib, scikit-learn), キューイングシステム(ZeroMQ, Celery)、非同期処理(asyncio)などがあります。
実際受けてみた感想⇒初心者が簡単に出来るようにはなりません。眠くなります。
プログラミングの勉強あるあるだと思うんですが、初めは文法の勉強からはじまります。
この講義も例にもれずに、淡々と文法の説明が進んで行きます。
特に面白い例題があるわけでもなく、文法をひたすら説明している動画が進んでいくので、半分以上の人が基礎編で挫折するのではないでしょうか。
比較的高い評価が多い講座ですが、評価が低い人の意見は以下のような感じです。
Programmerとしては優秀な方なのかもしれませんが、正直、説明は下手だと思います。
クロージャーのあたりから急に難しくなったにも関わらず、「ちょっとわかりにくいですが〜(こう発言するということは、説明が足りていないという自覚は薄々あるのでしょう。)」と言いつつ、説明は全然丁寧ではなく、淡々と進んでいくので、置いていかれた感じでした。
抽象度のレベルが上がった際は、細かすぎるほど細かく説明してもらわないと、初心者にはわかりません。
もし、Programmingの本質に関わる部分で、初心者には理解が難しいため、あえて説明に切り込んでいないなら、そう明言した方が良いです。
今までUdemy講座をいくつか聞いてきた感想ですが、
私は日本人なので日本語の方が英語よりも圧倒的に理解しやすい筈にも関わらず、説明が分かりやすいのは、語学のハンデを差し引いても、英語圏のTop講師の人なのです。
それは、彼らの場合、抽象的な概念に対する説明が丁寧だからです。日本人講師の場合、「これを〜して、〜して・・」とただの「コードの音読」になってしまっていることが多いです。
初心者が求めているのは、コードの音読ではなくて、「抽象的な概念の説明」なのです。ただ、きっとそれは、非常に難しいことなのでしょうね。講師がプログラミングの本質を深く理解し、かつそれを噛み砕いて初心者にも説明できるだけのSkillが必要なのだと思います。
淡々と進む講座は正直受講していて辛かったです。
めちゃめちゃ眠くなります。てか、寝ました。
オブジェクト?クラス?ジェネレーター?これらがどう役に立つの??わけわかめ。
文法書をお経のように読まれているのかと錯覚するほどです。
まあ、でも仕方ないのかなとも思います。
文法なんてそんなものなのでぐっと我慢して、よくわからなくてもひとまず進めることをおすすめします。
私も頭に全く入りませんでしたが、ひとまず「そういう言葉があるのか」くらいでドンドン先に進めていきました。
入門編最後のデモアプリケーションは作成困難
入門編最後に「デモアプリケーションを作ってみましょう!」という項目があるのですが、基礎編を受講しただけで作れる人ほとんどいないんじゃないでしょうか。
チンプンカンプンすぎてイライラする人、多数でしょう。
完全なる挫折ポイントです。
ここで講座リタイアする人も多いでしょうね。
少しスパルタなのでもう少し初学者に寄り添ってあげたほうが良いと思いました。
ひとまず写経
しかし、ここを乗り越えなければPythonの道は途絶えてしまいます。
せっかく受講したのであればなんとか応用編までは行きたいですよね。
と、いうことでこれから写経します。
それでわからなかったらもう次に進みます。
講座のボリュームはピカイチ
まだまだ理解しきれていませんが、この講座の魅力はボリュームの豊富さだいつでも質問できること思います。
そもそも一回受講して理解できるわけないのですよね。
なので、ひとまず一通り受講して、必要になったときに該当項目のレッスンを見直すような辞書的な使い方が良いのかなと思います。
そして分からなかったら遠慮せず、質問する。
これが大事だと思います。
なんとか頑張ってこの後、応用編も受講し終えたいと思います。
応用編はより具体的な内容になるみたいなので面白くなるのはそのあたりからかもしれませんね。
頑張ります!
これでも駄目ならPyqやテックアカデミーの講座も受けてみようかと思います。
それでは今日はこのへんで!ふるのーと(@fullnote)でした!(*^^*)
コメント