PyQオフィシャルブログ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

【Pythonエンジニア列伝:vol.4】cocoatomoさんの将来のPythonistaとしての展望とPyQについてお聞きしました。

この記事はPythonエンジニア列伝第四回の7記事目です

f:id:nana_yu:20180403143439p:plain

Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを紐解く」連載です。

連載はトピックごとになっているので記事単体でも読むことができます。最終回となるこの記事では、cocoatomoさんのPythonの関わりにおけるこれからの展望をききました。

バックナンバー

  • その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
  • その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
  • その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
  • その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
  • その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。
  • その6…cocoatomoさんというPythonistaのこれまでの足跡を聞きました。

pyq.jp

cocoatomoさんのこれからの展望についてお聞きします。

f:id:nana_yu:20180316122251j:plain
清原

ここまで、過去から現在の話をしてきたんですけども、未来の話も聞きたいです。

cocoatomoさんが、Pythonとかとの関わりの中で、将来に向けて考えていることや今後どういう活動していきたいことを教えてください。

cocoatomo

やはり今は翻訳ですね。 CPythonの翻訳をもうすこしやりたいです。

人は増やしたいのですが、そちらはまだそもそも分母が小さいのでゆっくりやろうと思います。ハンズオンなどで着実に増やしていきたいですね。

それはそれとして、自分ももうすこし翻訳の作業者のほうに戻りたいのが一番ですね。管理側だと本当に翻訳しなくなるので、忙しくて。

f:id:nana_yu:20180316121622p:plain

Python ドキュメント翻訳ハンズオン

対談後、cocoatomoさん主催でPythonドキュメントの翻訳ハンズオンが開催されました。翻訳プロジェクト運営者に質問しながらドキュメント翻訳に触れることができます。ハンズオンは今後も開催していく予定です。イベント情報はPythonドキュメント翻訳グループのページを参照してください。

f:id:nana_yu:20180316122251j:plain
清原

そうですよね。その感じが分かります。プロジェクトの運営、OSSの運営みたいな感じになってると、実際、コード触ってないんじゃねとなって、寂しい瞬間ってありそうです。

cocoatomoそうなんですよ。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

Python.jpとかから翻訳の仕方とか、どんどん書いて紹介してもらえるといいですよね。そこは自分が教えなきゃではなくて、自動で新しい人がジョインしてくるような。

そういうシステムを作っていければ、プレイヤーとして活躍できそうです。

cocoatomo

そうですね。自分もPython mini Hack-a-thonとか、外に出て宣伝できればいいんですけど。それがなかなか今難しいので、隙間時間にできるクエストみたいなものだと思って文章を少しずつ訳していて楽しいです。続けていきたいなと思います。

f:id:nana_yu:20180316121622p:plain

仕事面でのPythonに関わる将来の展望はありますか?

f:id:nana_yu:20180316122251j:plain
清原お仕事的な面では、Pythonでどこかいきたいとかそういうのはないんですか?
cocoatomo

そういうのはないですね。いったらいったで面白いかもしれないですけど、ウェブ系に偏ってしまうので。

積み上げてきたものとすこしずれてくるので、翻訳メインでいきたいと思ってます。

ただ、機械学習とかそういう分野に関連して、すこし仕事でもPythonが回ってくるようになっています。ようやく仕事で回ってくるような言語になったな、と感慨深いですね

f:id:nana_yu:20180316121622p:plain

仕組みを作るという視点からの発信

cocoatomo

あとはブログを書きたいなと。最近だと、さっきのCPythonの原文の更新自動化のところを書こうかなと思いつつ、まだちゃんと書けていないので。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原それは面白いと思います、話題として。

Python 日本語ドキュメントのお引越しについてのブログ記事

対談後、上記の内容のブログ記事を発表されました。対談記事その2その3の内容とさらに掘り下げたお話になっていますのでぜひご覧ください。

tink.elliptium.net

cocoatomo

すこし昔の話になりますけど、前、Python mini Hack-a-thonに行って、こういう翻訳をしましたよっていう報告をしたら、あ。やっぱり裏で人がやってるんだって言われまして。

そういう、知られていないというか、意識されてないんだなというところを知らせていこうっていうのが、一つのモチベーションですね。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

確かに。さきほどのPEPの話でも、人がやってるんだって意外と忘れちゃうというか、見えてこないですもんですね。

cocoatomo

そうみたいなんですよね。たぶんそれはhirokiky(清原)も自分がやっているものでそう思われていると思う。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原あるかも。あると思う。
cocoatomo知らずに生えてくるとか、公式がお金を掛けてやってるとか。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原それ絶対思われてる。
cocoatomoそう。そうじゃないですよね。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原企画する人がいて、イベントをやろうぜと集まっている。例えばPython mini Hack-a-thonだって、あした、主催者のたかのりさんとかがみんな死んだらなくなっちゃうんですもんね。
f:id:nana_yu:20180316121637j:plain
大村

最近社内でやってる方々に会うまで、人がやってるというイメージはなかったです。Djangoの日本語とかもなんか、書いてあるなー、としか意識していませんでした。

f:id:nana_yu:20180316122251j:plain
清原

これが、人が作りたもうたものだー、って、グーっと力を入れて見る人はそんないないもんね。物は人が作っているんじゃんって当たり前になってきてしまう。

でも、確かに普段便利に使っているものはそれぞれ思いを持って人が作っているんだと、そういうものは発信していきたいし、どんどんして欲しいですね。

cocoatomo

はい。なかなかそういう仕組みを作る側の人、たくさんはいないと思うので、そういうところを発信していきたいです。

f:id:nana_yu:20180316121622p:plain


まとめ

プログラミング初学者に向けてアドバイスをお願いします

f:id:nana_yu:20180316122251j:plain
清原

cocoatomoさんから、これからPythonとかプログラミングとか始めたばかりとか、始める人にアドバイスはありますか?

cocoatomo

続けてみてくださいというのがまずあります。あとは、何かしら、間違っててもいいので理屈を付けて理解してみてほしいです。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原ただ、やってるんじゃなくて、ですね。
cocoatomoはい、写経するときも単純に写すんじゃなくて、これがこう動くはずだからこうなってっていう理屈付けを考えるのがいいと思います。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

それは大事ですね。写経しているときに、これってどんな働きをするオブジェクトで、なぜ呼び出してるんだろうとかを考えるということですね。

写経

写経とはプログラムを写して書いて、動かす学習法です。

写経がプログラミングスキルを身につける一番の近道です。 コードをコピー&ペーストするのではなく、1字ずつどこになにを書くのかを確認しながら書き写してください。 動かしてみると書き間違いや勘違いでエラーが出ます。

エラー発生後、問題点を検討し、修正するプロセスを通してプログラミングに馴染んで行きます。 知らない文法、疑問に思ったことを調べることで更に知識を深めます。

写経とは - Pythonオンライン学習サービス PyQドキュメントより

cocoatomo

あとはとにかく人に聞いたほうがいいですね。Python.jpのSlack入ってしまうのが手軽で良いと思います。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316121637j:plain
大村Slack内での質問用の場所(#beginnerチャンネル)が面白いです。いつも石本敦夫さんが答えてくれています。
cocoatomo

日本語版のスタック・オーバーフローとか、teratailとか、回答してくださる方が沢山いらっしゃる。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

Pythonのいい文化はそういうところもあるかもしれないですね。みんな親切に教えてくれる気がする。

cocoatomo

ですよね。なので、初学者のみなさんはぜひコミュニティーに入っていって、存分に質問してください。

f:id:nana_yu:20180316121622p:plain


PyQについて

f:id:nana_yu:20180316121637j:plain
大村最後になりますが、PyQはご存知ですか。
cocoatomo今回ちらっと。お金を払っていないんで中は見られないですけど、見られる範囲でブログなどを見ました。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原ありがとうございます。
f:id:nana_yu:20180316121637j:plain
大村

初心者の裾野を広げようとしてやってるんですけど、そういう取り組みはどう思いますか。

cocoatomo

もちろん私もいいと思っています。

プログラミングが上手なのと教える能力はまた違うので、そこを補填してPythonの裾野を広げていただいたり、コミュニティの技術を底上げしていただけるのはとても助かる。研修などもしてますよね?TA(アシスタント)が何人かいて教えてくれる研修スタイルの。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

教材や手を動かす演習としてPyQをつかってます。講師陣の講義と、PyQで実践しつつアシスタントが補助で教えていますね。

cocoatomo

ウェブの上で聞けるよりももっと気楽に聞けるのが良さそうです。細かい部分の何を勘違いしてるかのニュアンスがお互いに伝わるので。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122110p:plain
佐藤

確かにPyQを使った研修はとても好評ですね。2017年から始めたんですが、お客さまから学びやすいという感想を頂いています。

f:id:nana_yu:20180316122251j:plain
清原

面白いんですよ。もちろんPyQなしにオフラインでPythonを学んでももちろんいいんですけども、PyQでやってると誰が何回失敗したかを教える人が把握できるんです。

「大丈夫ですか?」という声がけをするタイミングが目に見えるんです。

cocoatomoそれはすごくいいですね。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

PyQはオンライン上でも、質問の文化を定着させようという部分を重視していて。

フォーラムのような形で質問できる機能を作ったりもしています。オンラインでもそういう「分からない」のニュアンスを拾っていけるように仕組み作りを頑張っていきたいと思います。

cocoatomo

いいですね。じゃああと1つ。PyQでドキュメントの読み方講座やりませんか。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

ああ、いいですね。僕たちの中でも課題としてあります。

PyQとしてPythonを教えていますが、いつかは巣立ってほしい。自力でドキュメントを読む、調べる能力っていうのが必要になるんです。

でも、公式ドキュメントに慣れて欲しいからといって、いきなりPyQの問題から公式ドキュメントにリンクを貼っても難しい。

初学者にはそもそもの読み方とか調べ方が解らないという問題が出て来ます。ですので、ドキュメントとの触れ合い方っていうのは伝えたいと思っています。

cocoatomo

CPythonのドキュメントを読んで、あわよくば誤植報告してください、というところまで教えて欲しいですね。

Cpythonのドキュメントは、各パートがそれぞれ役割が違っていて、表現などの雰囲気が違います。

自分は目次が頭に入ってるから読めるんですが、学習している人に意見をもらって構造や全体の統一感の改善はしたいと思ってます。

あと間違いがあったら、軽い誤植、句読点がおかしいとかPull Requestを出す練習をしてほしいですね。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原ドキュメントの構造、読み方や修正案の出し方まで含めて学べると良いですね。
cocoatomo

自分も最初はドキュメントの読み方で迷子になっていました。この内容はどこにありそうかな?とかです。提案できるところがあれば協力します。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316121637j:plain
大村

ありがとうございます、よろしくお願いします。

Pythonエンジニア列伝第四回、いかがだったでしょうか。普段何気なく参照しているドキュメントなどの裏にいる人の熱などを感じていただけたでしょうか。今後もPyQでは、Pythonの第一線で活躍するエンジニアのお話を聞いて、臨場感のあるPythonの世界を伝えていきたいと思います。

本記事からご覧頂いた方は、バックナンバーもぜひご覧ください。

バックナンバー

  • その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
  • その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
  • その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
  • その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
  • その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。
  • その6…cocoatomoさんというPythonistaのこれまでの足跡を聞きました。

エンジニア列伝アーカイブ

過去回も充実した内容です。次回配信までにいかがですか?

第一回:清水川貴之さん

第二回:鈴木たかのりさん

第三回:石本敦夫さん

PyQブログの更新は、SNSで告知しています。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

https://www.facebook.com/pyqjp/www.facebook.com

pyq.jp

学習中に疑問が出てきたらどうする?Pythonプログラミング学習でつまづいた時の「解決のコツ」を紹介します。

f:id:nana_yu:20180404165106j:plain
nana こんにちは、PyQスタッフnanaです。今回のPyQ機能紹介は、 PyQ限定の紹介というよりも、Pythonのプログラミング学習全般の学習に関するお話です。

独学で問題を解いていると、どうしても疑問が出てきて解説だけでは解決しきれないこともあると思います。 そんなときの課題解決のコツをご紹介します。

この記事は、プログラミング初心者で全員現役プログラマーのPyQスタッフの中で働いている私が スタッフになっての三ヶ月で学んだことや、頂いたアドバイスのまとめでもあります。 初心者からプログラミングを独学している人に知って頂きたいなと感じて書きました。 悩んでいる方の参考になれば嬉しいです。

(もちろんPyQを使ってのやりかたもご紹介しますよ!)

pyq.jp

まずは何がわからないのかを明確にしよう

問題をといていて詰まったら、解らないと感じるプログラムをよく読んで、 「どこまで理解できていて」「どこが解らないのか」を理解することはとても大切です。

「全部が解らない!」 「何が解らないのか解らない!」 というままだと、検索することも人に質問することもできませんよね。

疑問にぶつかったら、ここまでは大丈夫、と まずはわかるところを消し込んでいく作業をしてみましょう。

解らないことを調べよう

用語を検索しよう

自分が何が解らないのかがわかったら、解らない部分に出てくる表現を調べましょう。 検索をかけたり、PyQの問題であれば、解説内にPyQドキュメントへのリンクが貼られているので、 その内容を読んでみるのも一助になるかもしれません。

ドキュメントを読んでみよう

PyQドキュメントはTOPから用語の一覧も参照できるので、 出てくる用語の項目を読んでみるのもいいでしょう。 PyQのドキュメントは初学者向けの基本項目が網羅的に解説されているので、 PyQを使っていなくても、Python一般の用語集として使うことができますよ。

PyQドキュメント

http://docs.pyq.jp/python/index.html?utm_source=pyq-mailer&utm_medium=email&utm_campaign=pyqmail180403

また、少し深く理解したいと思った時は、公式のドキュメントもおすすめです。

Python 3.6.5 ドキュメント

https://docs.python.jp/3/index.html

疑問を整理した時に複数の行き詰まっている項目が出てきた時は、 これらを繰り返して一つずつ解決していきます。

質問してみよう

コミュニティに参加してみよう

調べても解らない事柄は質問してみましょう。 PyQでスタンダードコースを学習している方は、学習サポートを活用しましょう。 (学習サポートについてはこの次の項目で紹介しています。  ライトプランを受講している方や、PyQが気になっている方は読んでみてくださいね)

ライトプランで独学している方や、検索などでこの記事を読んでいる学習者の方には、 Pythonのコミュニティに参加してみることをおすすめします。 Pythonはとてもコミュニティが盛んでビギナーに優しい人が多いです。 Python.jpのslackのビギナーチャンネルなどは、活発に動いていておすすめですよ。

Python.jp slack

https://www.python.jp/pages/community.html#pythonjpslack

マナーを守って、答えやすい質問をするように心がけよう

どこで質問するにも言えることですが、質問はコミュニケーションですので、 質問をする時は洗い出した解らない項目を答えやすい形にまとめましょう。 相手に伝わりやすいような質問を意識してまとめることで自分の理解に繋がりますし、 回答をもらった後も、回答の意味が理解しやすくなります。

具体的には、PyQドキュメントの質問のコツがコンパクトにまとまっていておすすめです。 ぜひこちらも読んでみてくださいね。

PyQドキュメント:質問のコツ

http://docs.pyq.jp/column/qa/question.html?utm_source=pyq-mailer&utm_medium=email&utm_campaign=pyqmail180403


PyQ学習サポートの紹介

紹介したこれらの疑問解決方法は、浮かんだ疑問を Pythonの一般的な事柄まで分解する必要があります。 また、新しいコミュニティに積極的に参加していく時などは、 心理的にすこしハードルを感じるかもしれません。

実務ではそのような能力を育んでいくことはとても大切です。 ただ、そうして何度も行き詰まり、解決のためにたくさんの時間を使うことになってしまうと なかなか学習が進まず、モチベーションの低下に繋がってしまいます。

そこで、スムーズに自学自習できるよう習慣付けをサポートするのが、PyQの学習サポートサービスです。 学習サポートはPyQスタンダードプランで受けられ、サポートチームは全員現役のPythonプログラマーです。

PyQ学習サポートは3月から、メールでのサポートから専用の質問・回答機能に切り替わっています。 ですので、 メーラーなどを起動する手間なく、問題画面から直接質問できます 。 PyQの問題に紐づけて質問ができ、関連したPythonの一般的な質問もできるので、気軽に質問できます。

質問・回答機能とは

  • 問題画面の左下のボタンから、質問機能を直接呼び出せます
  • ボタンを押した問題のプログラムの状態・実行結果は自動的に共有されます
  • 質問のコツや質問テンプレートを使ってよりよい質問ができるようになりました
  • 似た質問の多い問題は、過去の質問を参考にできます

質問・回答機能

機能の詳細は、以下の記事をご覧ください。 blog.pyq.jp

プランの詳細

ライトプラン・スタンダードプランの機能詳細についてはプラン紹介をご覧ください。 pyq.jp

 

まとめ

プログラミングを学習をしていて疑問でつまづいた時の、疑問解決についてご紹介しました。

プログラミングを学習していると、問題をたくさんといて素早く回答を得ることが重要と感じる時もあれば、 他の学習者やプログラマーとコミュニケーションを取ることに価値を感じるときもあるでしょう。

複数の解決策を知っておくことで、それぞれの学習深度やできるようになりたいことに合わせ、その時々で活用できるといいですね。 今日紹介したコミュニティやPyQの機能が参考になれば嬉しいです。

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

https://www.facebook.com/pyqjp/www.facebook.com

pyq.jp

【Pythonエンジニア列伝:vol.4】cocoatomoさんに、Pythonistaとしてのキャリアパスと訳書「グッド・マス」についてお聞きしました。

f:id:nana_yu:20180403143439p:plain

この記事はPythonエンジニア列伝第四回の6記事目です

Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを紐解く」連載です。

連載はトピックごとになっているので記事単体でも読むことができます。この記事では、cocoatomoさんご本人のPythonとの関わりやキャリアパスについてのお話を聞きました。

バックナンバー

  • その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
  • その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
  • その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
  • その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
  • その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。

pyq.jp

cocoatomoさんのPythonistaとしてのこれまでをお聞きします

Pythonを学ぼうと思ったきっかけ

f:id:nana_yu:20180316122251j:plain
清原

ここまで、代名詞的な活動としてドキュメント翻訳のお話を主に伺ってきましたが、cocoatomoさんPython自体を始めたきっかけは何ですか?

CPythonの翻訳に関わる前からPythonを使っていたんでしょうか。

cocoatomo

仕事で使っていました。IBMの製品でWebSphere Application Server、通称でWASっていうのがあって、その管理ツールで使っていました。

WASについて説明すると、Java仕様に準拠したパッケージファイルに、JAR、WAR、EARとあって、後ろに行くにしたがって規模が大きくなります。一番大きいEARっていうのは、エンタープライズアーカイブの頭文字をとって、EAR。そのEARをデプロイできるアプリケーションコンテナがWASです。なので比較的大型のものですね。

管理ツールは使用可能な言語がJythonとJaclで、そのときはJythonが推奨だったんです。なので、私のPythonの導入はJythonなんです。CPythonからじゃないんですよ

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原まさかのJython!

Jython

Pythonの処理系の一つで、Javaで作られたPython(通常PythonというときはC言語で作られたCPython)。JythonはJVM上で動作するので、Pythonの文法をJavaの資産を活かして使える利点がある。

cocoatomo

はい、それでJythonを知って、ちょうどそのタイミングで「エキPy」の第1版が出てて。発売直後だったので清水川さんが勉強会をやってくれてたんですね。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原「エキPy」の読書会とかですか。
cocoatomo

そうです、翻訳された日本語版の出版記念で、清水川さんが先頭から読んでいって。懐かしいですね。

そこに、Pythonってなんだろうっていうところを解決したくて参加していました。せっかくなんでCPythonも勉強してみようという。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原そこから、CPython関連の翻訳へ、いうパスなんですね。
cocoatomo

そうですね。何かしらOSSをやってみたい、でも、どうしたらいいかよく分かんなくて。

うろうろしてたときに、たまたまDive Into Pythonを見つけたんで。で、ライセンスを見てみるとGPL(GNU General Public License)で、条件を満たせば好き勝手に翻訳して公開していいと、じゃあやろうかな、って。

f:id:nana_yu:20180316121622p:plain

Dive Into Python

2009年ごろにcocoatomoさんが翻訳を手がけたのはPython2の内容を扱うDive Into Pythonで現在はファイルが残っていないそう。

参照リンクはその後2011年に別の方が同様のライセンスに則り公開したDive Into Pythonと、 現在のバージョンであるPython3の内容に合わせて改定されたDive Into Python3(※現在Pythonの参考書籍として読みたい場合はこちらをどうぞ)。

参照リンク

f:id:nana_yu:20180316122251j:plain
清原素晴らしい。Pythonエンジニア列伝でいろんな話を聞いていったら、同じ人の名前が何回か登場するんですね。意外と人と人とがつながってるなみたいなことを感じるわけです。


競技プログラミングについて

f:id:nana_yu:20180316122251j:plain
清原

JythonからPythonを始めた。JythonからPythonを始めた人はなかなか珍しいと思いますね。

IBMの製品でPythonでカスタムするためにJythonを使っていた。でもずっとそれだけというわけではないですもんね。そのあと何かに使うことはあったんですか。

cocoatomo

その後は、自分で遊んでただけですかね。何かを作った覚えもあまりなくて。

あ、でも、Googleの競技プログラミング。Google Code Jamには参加していました。自分にとって一番早くコードを書けるということで、Pythonを使いました。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

競技プログラミングというとC++のイメージがあります。Pythonは実行速度が遅いと、定説のようによく言われますね。そのあたりはどうでしたか?

cocoatomo

取りあえず時間オーバーしなければいいんですが、計算量だけは気を付けたほうがいいですね。

どこかで失敗して他人の模範解答を見て、改善点に気づくこともあったりしました。Nの3乗にしてたけど本当は2乗でいける、というようなミスだと、普通はもうアウトになるんです、時間切れで。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原では結局のところ、書き方でカバーするというか、アルゴリズムで勝負なんですね。
cocoatomo

そうですね。ここからちょっと自慢なんですけど、Google Code Jam、予選が何回かあって、世界で1,000人以内に入ると、Tシャツがもらえるんです。そのTシャツはもらいました。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316121637j:plain
大村全世界で? そのシャツすごい。
f:id:nana_yu:20180316122251j:plain
清原レアシャツ。
cocoatomoどうなんだろう(笑)。でも、そのぐらいまではいけたので、Pythonがそんなに遅いわけではないです。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原ほんとだ。それはいい情報ですね、Google Code JamでPythonで戦えたぜ、と(笑)。
cocoatomo

はい。クリアすると昔の人の回答や上位の人の回答も見られるので、それを見て、インプットはこうやって処理するんだとか、定型文とかを勉強していました。とてもプログラミングの勉強になったと思います。

f:id:nana_yu:20180316121622p:plain


「グッド・マス」について

f:id:nana_yu:20180316122251j:plain
清原あとはcocoatomoさんといえば数学の、『グッド・マス』を見ました。どうのような経緯で翻訳することになったんですか。
cocoatomoお世話になった編集者さんが、誰か訳す人いない? ってTwitterでつぶやいてて、じゃあっていって軽く始まりました。じゃあのあとDMでやり取りして。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316121637j:plain
大村

私、ずっとcocoatomoさんは数学を研究されてる方かと思ってました。

職業も謎ですし、雰囲気とかイメージで、どこかの大学の先生なのかなと思っていました。

cocoatomoいや、全然。一般人です(笑)。発言内容がそういう方向に見えそうだというのは解りますけど。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

『グッド・マス』、どうですか。僕は数学、詳しくないですけど、プログラマーで知っておいたほうがいい数学ってあります?

cocoatomo

『グッド・マス』に書いてあるのがだいたい、プログラマーで知っておいた方がよい数学という範囲の内容になりますね。基本的には全部、プログラミングネタとなんかしら関わってる。

元はブログなんですよ。「Good Math / Bad Math」という名前で、本になったときに後半が落ちたんですけど。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原ちょっと柔らかい感じにしたんだ。
cocoatomoそうですね。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316121637j:plain
大村

読んで、絵がいっぱい載ってて普通の本より読みやすかったです。

著者が数学の本は難しい、というかさっぱりしすぎているから、いろいろ骨も肉も付けて書きたいという動機で書かれたブログ由来の本なんですよね。

f:id:nana_yu:20180316122251j:plain
清原

エンジニアの人で数学が知りたいなという人がつまずかずに知っていける、そんな感じの理解でいいですかね。

cocoatomoはい、そういう目的のものですね。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原それは読まねばっていう気がしてくる。どういう人にお勧めですか、『グッド・マス』は。
cocoatomo

プログラマーをやっていて、数学の話題が出てきて気になるような人ですね。

プログラムと数学は、文化が違うと思うんです。例えば数学の分野ではあまり「実装」という概念がないんです。実体はよく分からないけど、こういう性質のものがあるよ、と定義するのが今の主流な数学です。

たとえば、Cのインターフェースファイルしかないような状態ですね。あとはテストがあるぐらい。実装はよく分かんないけど、取りあえず宣言は書いてある。そういう物だけ使って、うーんってやって、こう組めばいいかなってコードを書いていって、中身のよく分からんバイナリーをリンクすると動いたっていうような。

そういう概念的な仕組みをプログラマー的に説明してあるので、導入には良いと思います。

f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原

僕は数学とかそんな慣れてないので、機械学習の本を読んだときに、数学の話とか数式の話とか出てきたときにやはりどうしても読めないんですよね、すっと入ってこない。

概念的な部分がよく分かってないというか、腹落ちしてないというイメージなんですけれども、そういう人にお勧めできるんですね。

cocoatomoそうですね。まずは数学らしい文章に触れるのにちょうどいいかなと思います。
f:id:nana_yu:20180316121622p:plain
f:id:nana_yu:20180316122251j:plain
清原いいですね。じゃあ機械学習を学んで数学を分かんない人はぜひ『グッド・マス』を読みましょう。

グッド・マス ギークのための数・論理・計算機科学

次回の内容と配信スケジュール

次回はcocoatomoさんのこれからのPythonistaとしての展望をお聞きします。次回が第4回cocoatomoさんとの対談記事の最終回となります。次回もどうぞお楽しみに。Pythonエンジニア列伝の次回配信は 4/27(木) 配信予定です。どうぞお楽しみに。

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

https://www.facebook.com/pyqjp/www.facebook.com

バックナンバー

  • その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
  • その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
  • その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
  • その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
  • その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。

エンジニア列伝アーカイブ

過去回も充実した内容です。次回配信までにいかがですか?

第一回:清水川貴之さん

第二回:鈴木たかのりさん

第三回:石本敦夫さん

pyq.jp

Python ドキュメント翻訳ハンズオンの紹介

Pythonに関するハンズオンイベントのご紹介

f:id:nana_yu:20180404165106j:plain
nana みなさんこんにちは、PyQスタッフnanaです。今日は、現在連載中のPythonエンジニア列伝vol.4 にて、主にOSSのドキュメント翻訳のお話をしていただいているcocoatomoさん(Twitter:@cocoatomo)主催の、「Pythonドキュメントの翻訳ハンズオン」についてご紹介します。

pyq.jp

「Pythonドキュメントの翻訳ハンズオン」イベント内容の説明

喫茶店で管理者に質問や相談をしながら翻訳を進めるイベントで、 下記のように翻訳初心者も対象としたハンズオンです。

イベント対象者

  • 翻訳は初めてだけどやってみたい人
  • Python ドキュメントの翻訳をする時間を確保したい人

イベント詳細リンク

興味のある方は下記のイベント詳細を参考にしてください。 次回4/27に開催される第2回は定員に達していますが、今後も不定期開催予定だそうです。 開催日時は、下記リンク先の翻訳グループよりチェックできます。

Python ドキュメント翻訳ハンズオン

対談後、cocoatomoさん主催でPythonドキュメントの翻訳ハンズオンが開催されました。翻訳プロジェクト運営者に質問しながらドキュメント翻訳に触れることができます。ハンズオンは今後も開催していく予定です。イベント情報はPythonドキュメント翻訳グループのページを参照してください。

まとめ

Pythonお役立ち情報として、Pythonドキュメントの翻訳ハンズオンをご紹介しました。 PyQブログでは、今後も書籍やイベントなどPythonコミュニティやイベント情報を発信していきます。

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

https://www.facebook.com/pyqjp/www.facebook.com

PyQ公式

pyq.jp

for _ in range(4)などで使われる、Pythonの"_" は、何ですか?

f:id:nana_yu:20180404160808p:plain
斎藤こんにちは。 斎藤です。皆さまからPyQメールサポートにご質問いただいた内容から質問と回答をご紹介します。今回は『for _ in range(4)の _ は、何ですか?』という質問に回答します。

Pythonお悩み解決とは?

オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から プログラミング言語Python一般に関する面白い質問をご紹介し、解説するコーナーです。

プログラミング学習者の目線から見たつまづきを解決していくよう、現役プログラマーのサポートチームがお答えします。

pyq.jp

質問

for _ in range(4)の _ は、何のために使っているのですか?

この質問は、疑問に思っても、なかなか検索しづらいと思います。

回答

「for _ in range(4)」は「for i in range(4)」のように書いてもOKです。 変数名が「_」になっているだけです。

変数名を「_」にすることによって、「その変数を使っていません」ということを表現しています(Pythonの習慣です)。

Pythonで使われる「_(アンダースコア)」記号の用途あれこれ

PyQの回答ではありませんが、_ のあれこれをご紹介します。 _ は、アンダースコアと呼びます。下線符号、アンダーライン、アンダーバーと呼ばれることもあります。 Pythonや他の言語では、変数名にアルファベットとアンダースコアが利用できます。

他に、Python独自のアンダースコアの利用方法を挙げてみましょう。

  • インタープリタで最後に実行した結果。
  • 非公開のメソッドなどをアンダースコア1つで開始。
  • システム用のメソッドなどをアンダースコア2つで開始。

順番に解説します。

インタープリタで最後に実行した結果

使われることは、少ないかもしれません。

ジェネレータ((i for i in range(4)) みたいなもの)の結果が、<generator object <genexpr> at 0x...>となった時に、すかさず、list(_) とすると、リストで見ることができます。

非公開のメソッドなどをアンダースコア1つで開始。

Pythonには、C++などに見られる private関数は ないのですが、代替品として使われます。private関数と異なり、呼ぶことはできます。

特殊用途のメソッドなどをアンダースコア2つで開始。

__init__とか __name__ です。初心者が初めて見ると、とっつきにくいかもしれません。

PyQ の関数のクエストでもimportなどについて学習できますので参考にしてください。

pyq.jp

おわりに

以上です。 PyQメールサポートではこのようなPythonの不思議についてやプログラム、設計の意図や勘所についてもお答えしております。 プログラミング・Python学習を集中して無駄なく行なうためにお手伝いいたします。

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

www.facebook.com

pyq.jp

Copyright ©2017 BeProud Inc. All rights reserved.