下町柚子黄昏記 by @yuzutas0

したまち発・ゆずたそ作・個人開発の瓦礫の記録

Python入門者の集い #PyNyumon でLTしました&プログラミング言語の学習法の自己整理

概要

Python入門者の集い #5というイベントでLTをしてきました。 ついでに自分なりにプログラミング言語に入門するときの考え方を整理しました。

他の参加者の発表

LTテーマは「最近Pythonを触り始めた話」ということで、

  • ハッカソンでこういうの作ったよ
  • データを可視化できるようになったよ
  • 写経を始めて今こんな感じだよ

などなど、多種多様な内容でした。 全員が楽しそうに話していて、聞いていて楽しくなってくるような、素敵な発表ばかりでした。

ほとんど上がっていませんが、一応こちらのConnpassのページが資料置き場かな。

どんな話をしてきたか

データ分析基盤を作るにあたって、これまでやったことを共有&困っていることの相談LTです。

会場がレバレジーズさんで「teratail」(国内プログラマ向けのQ&Aサービス)のPRをなさっていたのを聞いて、「そういえばQ&Aサイトで聞けば良かったのでは」と気付いた次第でした。

プログラミング言語の学び方

LTではさくっと流しましたが、プログラミング言語を新しく習得するときの流れとして、以下の3フェーズがあるのではないかと考えています。

f:id:yuzutas0:20170901205112j:plain

  1. 環境構築とHelloWorldと最低限のデバッグができたら、あとはひたすら調べながら機能要件を満たせるようになるフェーズ
  2. 他の人の書いたコードを読みまくって、よりベターな書き方・便利なライブラリを知り、リファクタリングを通して、保守性の高いコードが書けるようになるフェーズ
  3. ドキュメント・書籍で言語仕様を把握して、内部挙動までデバッグ&コードリーディングできるようになり、パフォーマンスを最適化できるようになるフェーズ

置いている前提としては以下の3つで、該当しない場合は、おそらく違う登り方になるだろうと思っています。

  • 最低限のコンピュータサイエンスや他のプログラミング言語の知識がある
  • あくまでも道具としてプログラミングを位置付けている(作るものが先にあった上で、技術選定を行っている)
  • 必要なときに、必要な知識を、必要な分だけ吸収するスタンスである(事前に勉強するのではなく、手を動かして壁にぶつかってから学ぶ)

人によりけりだとは思いますが、勉強するものではなく、結果的に使えるようになっているものなのかなぁ、という自論です。

CM

ただ、上記のやり方だと「これくらいは知っておけよ」が漏れる可能性があります。 まさにいま、Pythonがスラスラわからなくて、相談LTをしたくらいですから。

という話をしたら『スラスラわかるPython』なる本を読むといいよ!と著者の方がおっしゃっていた(気がした)ので、 スラスラPythonをわかるようになりたい私としては、『スラスラわかるPython』を買うしかないと思ったのですが、 本棚が限界に来ているので、ひとまずは書店で眺めてみようかなと思った次第です。

スラスラわかるPython

スラスラわかるPython

最後に

ちょっと早口だったり、内容面でも色々と省略してしまって、説明が伝わりにくかったのだろうなぁと反省しています。 9月に開催されるPyConでは、システム自体をもっと進化させた上で、きちんと内容を整理&練習して登壇します。

SREエンジニアがJupyter+BigQueryでデータ分析基盤をDev&Opsする話

がんばるぞい。