蛇ノ目の記

技術のことも。そうでないことも。

みんなのPython勉強会#33に行った

startpython.connpass.com

1週間も経ってしまったけどまとめる。

大津雄一郎(リブロワークス)

プログラミング『超入門書』から見るPythonと解説テクニック

本を書く人は周りに結構いて話を聞けるけど、編集する側からの話はなかなか聞けない。

単なる入門書から、プログラムが書けることで何ができるかを体験させていく体験重視の超入門書の時代に入っているらしい。そのなかでもPython本はここ数年ブームが来ているそうな。確かに本屋の技術書コーナーに行くとPython本が目立つ(Pythonな会社・コミュニティに関わっているので著者を知っている本もちらほらある)。

以下、編集プロダクションから見たプログラミング言語の特徴。

Pythonは文法が簡単でインデントに厳しいので綺麗に書けて入門者に向く反面、GUIが作りにくいので目に見えて触れるモノづくりを体験させづらいのが弱点だとか。まあ確かに。Webアプリ作るならできるけどゲーム製作などとなると弱い。

一方、JavaScriptは簡単にゲームなどが作れる反面、仕様の変化が激しいのが弱点。JSを使っているわけではないけど変化が激しいというイメージがある(だから入門しにづらいと勝手に思っている)。

C#はUnityがあるお陰で触れるモノづくりにとても強いそう。UnityのGUI+コードの組み合わせ。社畜ちゃんとかニンジャスレイヤーのゲームでUnity製のがあったようななかったような。

一昔にプログラミング言語の定番だったCやC++は、簡単に覚えられる言語がは多いため超入門書の題材にはしにくい。そういやNewGameのねねっちはC++でゲーム作ってたな。

超入門書の定番テクニックとして、

  • 図解

  • ステップバイステップ写経

という2つがあるそう。図解は言わずもがな。

後者は一つのプログラムを少しづつ写していって、段階ごとに成果を見れるようにするというもの。小出しの説明で覚えやすいことがメリットということだけど、達成感を少しづつ積み上げることでモチベの維持もできるんじゃないかと思った。

わざと失敗例を先に見せることで、処理の必要性が伝えやすくなる。テクニックもある。これは僕が仕事でPyQの問題文・解説の追記やら修正をしていく中でも実践してみた。前もって失敗例・アンチパターンを紹介することで、ユーザに正しい書き方や使い方をスムーズに説明できると思う。

次に流行りそうな言語は?という質問が会場から飛んだけど、そういう本が書かれ始めてから編集側がわかることなので、なかなか言えないそう。Python人気はしばらく続きそうとのこと。よかった。

岩崎 圭 (@laughk, 株式会社SQUEEZE)

入門書を読み終わったらなにしよう?

Python と WebAPI の使い方から学ぶ次の一歩〜

@laughkさん。スラスラわかるPythonの著者の1人。

プロジェクターは無事動いた(身内ネタ)。

入門書を一冊一通りやった初学者は次にどうすればいいのって話。

3つの方法がある。

  1. 入門書の内容をカスタムしてみる

  2. 次のレベルの書籍

  3. 実践的なコードを書いてみる

今回の話では3. 実践的なコードを書いてみるを紹介。

とはいえ、いきなり実践的と言われても困ってしまうのが初学者の気持ち。そこで、自分がやりたいこと・日々のタスクの自動化を提案。

laughkさん自身はその日にしたPullRequestをSlackに通知するプログラムを書いた。実際に取り組むステップは以下の通り

  1. 課題を見つける

  2. 課題の解決に必要な登場人物を洗い出す(ここではGitHub API, Slack API)

  3. 登場人物のことを知る(ドキュメントを軽く読む)

  4. Pythonインタラクティブシェルを使って雑にライブラリを試す

  5. 3と4を繰り返して自分が欲しい機能の使い方を探る

  6. エディタを立ち上げて書く

なにより、とにかく書いてみるを大切にする。これが大事。ほんと。

ドキュメントってだいたい英語で最初は怯むけど、自分に必要なところはピンポイントだったりするし、なんならQuick Startとかを読むだけで解決したりする。

清原 弘貴 (DjangoCongress JP 2018 代表)

Pythonを学んだ人にWebもオススメしたい理由

ky氏。5月19日に開催される日本で初めてのDjangoカンファレンスDjangoCongress2018の代表としての登壇。

Djangoに触れる前に、Web開発そのものについての話。個人の開発で作った価値を世界中に広げることができるのがWeb。 ではどうやってPythonでWebで価値を共有するのか。そこで出てくるのがフルスタックフレームワークであるDjango。 connpassもPyQもInstagramDjangoを使っている。みんながDjangoの友達という言葉が印象深い。

Pythonといえば最近はデータサイエンスの文脈で存在感が増していて、スクレイピングでWebからデータを集めて前処理をして機械学習をしたりする。 具体的なパッケージでいえばScrapy, Pandas, Scikit-learnだ。PythonのパッケージなのだからこれらをまとめてDjangoの中で実現することで Webと機械学習の組み合わせができる。データサイエンスに強いPythonだからこそできることで、作れるモノの幅はとても広い。

最後にPythonの他のWebフレームワークにも触れた。難易度順でいえばBottle, Flask, Django, Pyramid。前の2つは軽量フレームワークなのであまり規模の大きいWeb開発には向かない (個人的にはデータ系の人がさくっとデータの可視化なんかをやるのによさそうと思っている)。こうしてみるとDjangoのバランスのよさがわかる。

質疑応答では、Django入門に適した本に関する質問があった。英語であればあるけど、日本語書籍はとても少ない。しかし近い未来に出る、かも知れないとか。気になる。

Webへの熱い気持ちが伝わってくる話だった。

ky氏の発表はとても聞きやすい。話し方に余裕がある。

自分が発表するときは早口になりがちなので参考にしたい。


勉強会後の二次会にて「みんなのPython勉強会 in 長野 #2」のメンター手伝いをすることが大決定したので、3月21日は長野に行ってくる。

startpython.connpass.com