PyQオフィシャルブログ

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

【クエスト追加】「NumPyデータ処理」リリースのお知らせ

斎藤です。「データ分析・機械学習入門」コースに「NumPyデータ処理」をリリースしました。

NumPy

Pythonで、数値計算を効率的に行うためのライブラリです。効率的な数値計算を行うため、ベクトルや行列などを表現できる型付きの多次元配列のサポートをPythonに加えるとともに、それらを操作するための数学関数ライブラリが提供されています。

詳しくはNumPy — Pythonオンライン学習サービス PyQドキュメントも参照してください

NumPyを直接使う機会は少ないかもしれません。しかしNumPyは、pandasを始めとする多くのライブラリで使われています。 Python界の縁の下の力持ちといえるでしょう。

pandasは、NumPyをベースにしているので、使い方が似ている部分があります。 つまり、NumPyを覚えると、pandasも便利に使えるようになります。

今回のリリースでは、以下の4つのパートがあります。それぞれ、紹介します。

  • NumPyデータ作成
  • NumPyの基本
  • NumPyの関数
  • 役に立つNumPy

f:id:tsutomu3:20180320152442p:plain

pyq.jp

NumPyデータ作成

データの作成方法についての3つのクエストがあります。

f:id:tsutomu3:20180320151542p:plain

NumPyを使おう

NumPyの基本を学びます。

f:id:tsutomu3:20180320162635p:plain

NumPyの多次元配列の作成

NumPyの多次元配列とよばれるオブジェクトのいろいろな作成を学びます。

乱数を使おう

NumPyでは大量の乱数を効率よく生成できます。 ここでは、さまざま分布の乱数の生成方法を学びます。

NumPyの基本

参照方法や、大事なブロードキャストなどの4つのクエストがあります。

f:id:tsutomu3:20180320151942p:plain

いろいろな参照

NumPy特有の便利な参照方法について学びます。この参照方法は、pandasでも使えるので、是非覚えましょう。

ブロードキャスト

NumPyが便利なのが、このブロードキャストという仕組みです。 多次元のブロードキャストは、複雑です。ここでは、どんな状況でも対応できるように、根本的なしくみを学びます。

f:id:tsutomu3:20180320162604p:plain

続ブロードキャスト

ここでは、状況に応じたブロードキャストの便利な使い方を学びます。

NumPyでセル・オートマトン

セル・オートマトンを題材に、NumPyの便利さを体感します。

NumPyの関数

関数を中心に6つのクエストがあります。

f:id:tsutomu3:20180320152006p:plain

ユニバーサル関数

ユニバーサル関数とは何かと計算時間の高速さを学びます。

続ユニバーサル関数

さまざまなユニバーサル関数の使い方を通して、NumPyの理解度を深めます。

その他の関数

NumPyで頻出の関数を学びます。pandasでも同じように使えます。

便利な関数

統計量やソートなどの便利な関数を学びます。

続便利な関数

argで始まる関数を使うと、インデックスを求めることができます。 他にも集合関数や相関係数の計算などを学びます。

f:id:tsutomu3:20180320162434p:plain

行列計算

逆行列や連立一次方程式の計算方法を学びます。 他にも、数学の線形代数で学ぶ固有値などの概念が出てきます。少し難しいですが、「こんなこともできる」くらいに覚えて必要になった時に見直せば良いでしょう。

役に立つNumPy

実践を意識し、2つのクエストを用意しました。

f:id:tsutomu3:20180320151843p:plain

商品をレコメンドしよう

協調フィルタリングを使った「おすすめ商品」を求めます。

ページランクを計算しよう

マルコフ連鎖を使ってwebページの有用性の指標である「ページランク」を求めます。


いかがでしょうか?

NumPyは行列計算がメインのように思われますが、データ分析の道具としても覚えておくべきかと思います。

今回は、基本となる機能や考え方を抜粋し、学習しやすいように作成しました。

これからも、コンテンツを拡充していきたいと思いますので、よろしくお願いします。

pyq.jp

PyQ 「データ分析・機械学習入門」コース詳細

迅速に質の高い回答をする、PyQのサポートチーム体制を紹介します

みなさんこんにちは、nanaです。 PyQチームでは、問題への質問やシステムに関するお問い合わせに誠実に答えていくために様々な工夫しております。 今日はPyQの紹介の一環として、PyQチームのサポートに関する工夫を紹介したいと思います。

PyQのメールサポート体制

PyQのメールサポートで使っているツール

PyQのメールでのお問い合わせへの対応は、Re:lationという メール対応をチームで行うためのサービスを使用しています。

最新のメール管理システム|問合せ管理の新基準 Re:lation(リレーション)

メールサポート用のサービスを使う利点

このようなサービスを用いる一番の理由は、届いたメールをチーム全員で共有できる ことです。

f:id:nana_yu:20180326181934p:plain

  • ひとりのスタッフに作業を依存させないことで、迅速な対応が可能になります。
  • 全員が内容を参照することができるので、間違った情報を回答してしまうリスクを軽減できます。

f:id:nana_yu:20180326182638p:plain

2018年三月現在、以下のようなPyQの機能へのお問い合わせにこのツールを使って回答しています。

  • 機能の不具合報告
  • 対応環境に関するお問い合わせ
  • PyQの使い方に関しての質問

これらの問い合わせは、メールに回答している担当だけでなく、PyQ開発担当スタッフもリアルタイムで見る事ができます。 そのため、不具合修正や使い勝手の改善も逐次取り入れられ、ユーザー視点に立った改善を優先的に行うことができます。

学習サポートでのサポート体制

メールサポートでのノウハウを活かし、専用の質問機能を実装しました

PyQではこれまで、上記の機能面や使い方についてのお問い合わせとスタンダードプランでの学習サポートでメールサポートを受け付けていました。 そのノウハウを活かしつつ、メールサポートでのデメリットを解消するため、専用の質問回答機能を実装しました。

  • 質問のためにメーラーを開くのが面倒
  • プログラムの分からない箇所を引用するためのコピー&ペースト作業が煩雑

上記のような不便なところを解決する質問回答機能、使い方などについては以下の記事をご覧ください。 blog.pyq.jp

学習サポートはスタンダードプランから受けられます。 プランについてはプランに関するFAQ — Pythonオンライン学習サービス PyQドキュメントをご覧ください。

質問と回答のノウハウ

ではこのようなシステムを使って、サポートチームがどのように質問に回答しているかを紹介します。 質問が届くと、それぞれの質問に担当のスタッフがつきます。

f:id:nana_yu:20180327095637p:plain
担当者は回答前に自分のアサイン設定をします。

f:id:nana_yu:20180327095258p:plain
サポートチームは現在寄せられている質問の一覧から、誰がいつ回答予定なのかを一目でチェックすることができます。

寄せられた質問とその回答は全てのメンバーに共有されているので、 担当スタッフ以外のメンバーが、回答に間違いや解りにくい点がないか等を確認することができます。 また、特に専門性の高い問題については、その分野に特に知見の深いスタッフが回答作成を行うようにチームで調整します。

質問への回答内容の具体例

上記のような流れで回答される質問の具体的な内容が気になる方は、是非当ブログのPythonお悩み解決のカテゴリ記事をご覧ください。 これらの記事は、実際にメールサポートに寄せられた質問の中から、数が多いもの・面白い質問をピックアップしています。回答の文体なども、参考にもなると思います。

blog.pyq.jp

まとめ

今回はPyQチームのサポート体制について紹介しました。 今後もより一層受講者のみなさんの自学自習に寄り添えるような仕組みや機能を実行していきます。 受講者の皆さまへのアンケートフォームからもフィードバックを受け付けておりますので、ぜひご協力もよろしくお願いします。

pyq.jp

PyQ内でPythonやプログラミングの疑問を解決できる、質問と回答機能をリリースしました

id:hirokiky です。 PyQ に新しく 質問と回答機能 がリリースされました。 スタンダードプラン 学習サポート の場となる機能です。 以下で機能の詳細と使い方をご紹介します。

pyq.jp

プログラミングやPythonについての疑問はありませんか?

プログラミングやPythonを学習しているときに、「これの意味が分からないなぁ」という疑問はありませんか? PyQではそのプログラミング、Pythonの疑問を解決するための PyQスタンダードプラン を用意しています。

このPyQスタンダードプランでは、プログラミングやPythonに関する疑問や悩みをPythonのプロフェッショナルに問い合わせいただけるサービスです。 この PyQブログ でも今まで Pythonお悩み解決 で、いただいた質問の例をご紹介してきました。

blog.pyq.jp

疑問を手間なく解決したい

そのPython学習サポートですが、これまではメールでお問い合わせいただいた内容にPyQ学習サポートチームが回答していました。

ですがこれでは、メーラーを起動して質問を書く必要がありましたし、プログラムの一部を添付する必要もありました。 また、メールに書いたPythonプログラムはハイライトされないので、とても読み難い問題もありました (白黒のプログラムは、あまり読みたくはないですね)。

そこで PyQのプラットフォーム上から直接質問を投稿したり、回答を読んだりできる機能を作りました

  • 疑問が湧いたときに すぐにPyQ上で質問ができます
  • プログラムの状態や実行結果、判定結果が自動で共有 されます
  • 100件以上の「過去のよくある質問」 を読めます

これでもうメーラーを起動する必要もなく PyQの中で質問と回答ができるようになります。 自分の質問に回答が付いた場合は、メールが送信されて気付けるようになっていますのでご安心ください。

質問回答機能の使い方

質問と回答機能の使い方を6ステップでご紹介します。

1. 学習中に疑問を感じたときに質問ができます

疑問が湧いたときに、画面左下の 「質問する」 ボタンからすぐに質問ができます。

f:id:hirokiky:20180313114009p:plain

1.a 過去の質問を参考にできます

質問を投稿する前に、今取り組んでいる問題に関する最近の質問が表示されます。 自分の疑問と同じ内容の質問があれば、質問したり回答を待たずとも疑問を解決できます。

f:id:hirokiky:20180313114020p:plain

2. 質問を書く画面に移動します

「新しく質問する」 をクリックすると質問を入力する画面に移動します。

以下の内容を入力できます

  • 質問のタイトル
  • 内容

f:id:hirokiky:20180313114048p:plain

2.a プログラムの状態や実行結果やエラーが自動で共有されます

また、プログラムの状態や実行・判定結果は自動で質問に含まれます。 別途プログラムをコピーペーストする必要はほぼありません。

f:id:hirokiky:20180313114056p:plain

2.b 質問のコツや質問テンプレートを参考に質問文を書けます

さらに、 質問のコツ を読んだり、 質問テンプレート を使うことで、 より良い質問ができるようにもなります。

自分の疑問を明確にした質問をすることで、より疑問にマッチした回答が得られるようになります。 質問のコツを知っておけば、PyQ以外のコミュニティーやメーリングリストで質問するときにも役立つでしょう。

f:id:hirokiky:20180313114107p:plain

3. 公開した質問は整形されて表示されます

「保存して公開する」 をクリックすると質問内容がPyQ学習サポートチームに共有されます。

公開された質問は整形されてキレイに表示されます。 質問文中のプログラムもハイライトされるのでとても読みやすくなります (質問文をMarkdown形式という書式で書く必要があります。 質問、回答画面で使える記法 を参考にしてください)。

f:id:hirokiky:20180313114135p:plain

3.a プログラムの状態なども公開されます

f:id:hirokiky:20180313114139p:plain

4. PyQ学習サポートチームが疑問にお答えします

質問が投稿されると、PyQ学習サポートチームに通知されます。 PyQ学習サポートチームが回答すると以下のように回答のコメントが追加されます。

回答が投稿されたときは、 質問者の方にメールが送信されます のでご安心ください。 PyQの画面を毎日確認して、返信があったかどうかを見る必要はありません。

f:id:hirokiky:20180313114145p:plain

5. コメントから回答に返信できます

さらに質問をしたい場合や、お礼を返したい場合はコメントから書き込んでください。 PyQ学習サポートチームは疑問がスッキリするまで何度でも回答いたします。

f:id:hirokiky:20180313114150p:plain

6. 疑問が解決できれば「解決する」ボタンを押して終了できます

疑問が解決したときには 「解決する」 ボタンをクリックしてください。 これで質問が完了状態になり、過去の質問としてデータ化されます。

f:id:hirokiky:20180313114154p:plain

他にも

過去のよくある質問が100件以上データ化されています。 質問を投稿する前の画面や、質問の一覧画面から過去の質問を参照して疑問解決に役立てられます。

f:id:hirokiky:20180313115454p:plain

PyQスタンダードプランの紹介

この質問と回答機能は「PyQスタンダードプラン」にご契約いただくとご利用いただけます。 PyQ学習サポートチームが疑問に回答いたします。 疑問をすぐに解決することで理解を早めたり、ハマってしまう時間を削減できます。

また、「PyQチームライトプラン」でもチーム内での質問と回答にこの機能を利用いただけます。 「PyQチームスタンダードプラン」では、さらにPyQ学習サポートチームが回答や疑問の解決をお手伝いいたします

チーム利用向けの質問、回答機能や新規機能については後日ご紹介いたします!

pyq.jp

終わりに

この質問回答機能は、私 id:hirokiky もとても注力して作れた本当に良い機能だと思っています。 PyQチーム内でも、プログラミングやPythonをより効率的に身に着けていただくために何度も議論して機能を作ってきました。

細部や使い勝手にもこだわって作れたので、ぜひ皆さんの疑問解決のために役立てると嬉しいです。

pyq.jp

【クエスト追加】「Python機械学習中級」リリースのお知らせ

斎藤です。IFからの機械学習と scikit-learn が学べる「Pythonデータ機械学習初級」に続き、「Python機械学習中級」をリリースしました。

以下の4つのパートがあります。

  • クラスタリング
  • 次元削減
  • 決定木の良いモデルとは
  • 機械学習中級・演習

f:id:tsutomu3:20180129181334p:plain

pyq.jp

Python機械学習中級の紹介

今回のリリースでは、以下の scikit-learn の全体的なカテゴリをわかりやすくしました。

  • 前処理(欠損値、データのカテゴライズ)
  • 分類(ロジスティック回帰、決定木、サポートベクターマシン)
  • クラスタリング(K-means法)NEW !
  • 次元削減(主成分分析)NEW !
  • モデル選択(決定木の良いモデルとは)が追加されています。NEW !

  • 「決定木の良いモデルとは」の一部のクエストは、Python機械学習初級より移動しました。

  • Pythonデータ処理初級と中級、Python機械学習初級も、解説をブラッシュアップしました。
    • 「はじめての機械学習」パートに「scikit-learnとは」を追加しました。教師あり学習、教師なし学習を紹介しています。

クラスタリング

教師なし学習で、よく使われる手法です。顧客ごとの販売データを元に、顧客をクラスタリングしています。

f:id:tsutomu3:20180129182510p:plain

次元削減

画像データを元に、教師なし学習の次元削減について学習します。

f:id:tsutomu3:20180129183357p:plain

決定木の良いモデルとは

良いモデルとは、どういうモデルかについて、決定木モデルをベースに学習します。

f:id:tsutomu3:20180129184326p:plain

機械学習中級・演習

復習するパートです。 PyQでは写経を通してやり方を学び、繰り返し実行することでプログラミングができるようにサポートします。

f:id:tsutomu3:20180129184632p:plain


いかがでしょうか?

scikit-learn は、機械学習の入り口として広く使われてます。 しかし、多くの機能があって、全部を把握するのは大変です。

今回は、全体的な見方を補足することによって、学習しやすいように増補しました。

これからも、コンテンツを拡充していきたいと思いますので、よろしくお願いします。

pyq.jp

PyQ 「データ分析・機械学習入門」コース詳細

書籍「独学プログラマー」コラボ問題公開 訳者のお二人にインタビューしました。

f:id:nana_yu:20180226161356j:plain みなさんこんにちは!PyQスタッフnanaです。

2018年2月23日に、PyQと技術書籍のコラボレーション第二弾として 「独学プログラマー Python言語の基本から仕事のやり方まで」 とのコラボレーション問題を公開しました。

公開にあたり、監訳、翻訳に携わった清水川さんと新木さんにお話を伺います。

pyq.jp

書籍「独学プログラマー」とはどんな本ですか?

独学プログラマー表紙ビープラウド所属の清水川・新木の二名が監訳・翻訳に携わった「独学プログラマー」は、独学プログラマーである著者が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。 Pythonを通して、プログラマーとして業務に携わるための知識とノウハウを伝授する本です。(シェル、正規表現、パッケージ管理、バージョン管理、データ構造、アルゴリズム、仕事の始め方・やり方など)プログラミング初学者・初級者で職業プログラマーになりたい方におすすめします。 今回PyQとのコラボレーションとして、「データ構造」の分野から問題を提供していただいています。コラボ問題についてはこの記事の最後でも詳しくお話頂いています。書籍とあわせて使うと理解をより深められ、単品でも「データ構造」「アルゴリズム」の導入が学べる問題です。 ***
  • 名称:独学プログラマー Python言語の基本から仕事のやり方まで
  • 単行本:322ページ
  • 出版社:日経BP社
  • 価格 :2,376円(税込)(紙媒体)
  • 著者:コーリー・アルソフ (著)
  • 監訳:清水川 貴之
  • 翻訳:清水川 貴之 , 新木 雅也
  • 発売日: 2018/2/23 URL:http://ec.nikkeibp.co.jp/item/books/C92270.html
***

監訳・翻訳に携わったお二人はどんな活動をされていますか?

それではまず、簡単に自己紹介をお願いします。

f:id:nana_yu:20180226160007j:plain
清水川プロフィールは独学プログラマーの自己紹介欄がそれっぽいので載せていただくということで(笑)

はい(笑)

清水川 貴之

清水川貴之株式会社ビープラウド所属、一般社団法人PyCon JP 会計理事。オープンソースのPython製ドキュメンテーションツールSphinxのコミッター。Python mini hack-a-thonやSphinx-Users.jpの運営の1人。2003年からPythonを使い始め、国内外の多数のPythonイベントに登壇、Pythonとその関連技術の普及に努めている。最近は、公私ともにPythonを教える立場で多く活動している。

著書/訳書

「Pythonプロフェッショナルプログラミング第2版(2015 秀和システム刊)」「Sphinxをはじめよう第2版(2017 オライリー・ジャパン刊)」「エキスパートPythonプログラミング (2010 アスキー・メディアワークス刊)」。

www.freia.jp

新木 雅也

新木 雅也株式会社ビープラウド所属。大学院研究のシミュレーションモデル構築のためにPythonを利用するようになり、その後様々な用途でPythonと関わるようになった。現在は、ウェブ開発、データ分析、機械学習などに携わる。大学留学と研究でカナダ生活が長く、英語での議論の楽しさに目覚め、余暇には議論グループであるSocratesCafeTokyoの共同オーガナイザーなども務めている。

「独学プログラマー」はどのような本ですか?

この度お二人が訳された「独学プログラマー」はどのような本ですか?読んでもらいたい人や、読む事によって得られるベネフィットを教えてください。

新木プラグラミング初学者の学習を航海と例えた時に、よい指針になる、そのような本です。Pythonという言語を使ってはいますけれど、プログラミング初心者に向けて、こう言う風に学んで行けばいいんだよという方向性を指し示す、よい道標となる本です。

ベネフィットという面では、日本語版は英語版に比べ、かなりクオリティが上がっていると思います。日本語版を読むことで得られる情報量はだいぶ増え、実用性も上がっています。
f:id:nana_yu:20180226160001j:plain
f:id:nana_yu:20180226160007j:plain
清水川この辺りブログにまとめている記事があるんですけれども。

はい、ご紹介しておきますね。

www.freia.jp

f:id:nana_yu:20180226160007j:plain
清水川これの、「この本は買いですか?」というところ。あとがきに書いたのを引用してるんですけど、Pythonの入門本がたくさんある中でなぜ新しくこの「独学プログラマー」を翻訳したのか。言い換えると、これはどんな本なのかということですね。

先ほどmasaya(新木さん)が言っていたように、単なるPythonの書き方の本ではなく、プログラミング初学者へ学習法や方向性を指し示す本です。では、そのような学習者が進んだ先のゴールはどこかというと、プログラマーとして働けることです。

「プログラミングで仕事をしたい」「プログラマーとして面接を受けて仕事を得てチームで仕事をしたい」そういうプロとして仕事をする事に興味のあるプログラミング学習者を対象に、独学、自分の力でプログラミングを学ぶための学習法が書かれています。なので、そう言う気持ちを持った人にはおすすめできるんじゃないかなと。

実用性というのは、プロとして業務でプログラミングを書く為の実用性、ということなのですね。

「独学プログラマー」における監訳・翻訳の役割

「独学プログラマー」でお二人は監訳・翻訳と表現されていますが、どのような役割をされているのですか?日本版を翻訳する事になった経緯も教えてください。

f:id:nana_yu:20180226160007j:plain
清水川はい。自分が出版社さんからお話いただいて。 最初にもらった話というのが、この本を日本語に翻訳して出版する意義があるか。内容のレビューをして欲しいという話だったんですよね。

まず最初の仕事としてはレポートを提出して、レビューの結果適切であれば翻訳もお願いしたいと。 そこで、5つの観点でレビューをまとめました。

  1. 想定読者に役立つか
  2. どのように役立つか
  3. 日本での類書は何か
  4. 扱われているバージョンは現在も適切か
  5. コーディング作法は一般的か


の5点です。
f:id:nana_yu:20180226160007j:plain
清水川 独学プログラマーは、「Pythonだけ」を学ぶ本ではなく、 「プログラミング全般の知識」や「仕事を得てチームで働くやりかた」を伝える本です。これがこの本の魅力です。

最近はPythonの入門書が多数ありますが、近いコンセプトの本は「Pythonで学ぶプログラム作法(2001年)」「初めてのプログラミング 第2版(2010年)」 の他に見当たりませんでした。

逆に、この本に掲載されているコードには粗いところがあって、そこは翻訳する上での課題だろうと感じました。

最初の段階では、翻訳それ自体というよりは原著に書かれている内容の精査が依頼の内容だったんですね。

f:id:nana_yu:20180226160007j:plain
清水川このような内容でレポートをまとめたところ、 出版社さんから出版することに決めたので引き続き翻訳も行って欲しい、と連絡をもらいました。

このとき、別に2冊の本を進めていたので、時間的には厳しかったんですが、類似の良書がなかったこともあって引き受けることにしました。

引き受けたからには、人にお勧めできる本にしたかったし、出版社さんからも間違いの修正や訳注での補足はしてほしいと言われていたので、気になる部分にかなり手を入れました。これで、レポート時点で課題だと感じていた内容の粗さはほぼ解消していると思います。

なるほど。その、英文から日本語への翻訳だけではない、技術的な監修を含めていることで、それが清水川さんの担当されている監訳、ということなのですね。 

では、翻訳のお話を受けた時に、清水川さんから新木さんへ一緒に「独学プログラマー」を翻訳してほしいというお話があったと。

新木はい、そうですね。
f:id:nana_yu:20180226160001j:plain
f:id:nana_yu:20180226160007j:plain
清水川初めは一人でやるつもりだったんですが、一人で翻訳してもつまらないかな?と思ったんです。 本を翻訳するっていうせっかくの機会なのに、苦労や経験が自分一人に閉じてしまうのはつまらないです。

複数人なら一緒に経験したりモチベーションをもらったりできるかなと思って、二人でやることにしました。

お話を持って行く相手に、新木さんをお選びになった理由というのは?

f:id:nana_yu:20180226160007j:plain
清水川masaya(新木さん)はカナダに10年以上住んでいたこともあって、英語はネイティブ並みに使いこなせます。 英語の微妙なニュアンスなどは調べてもなかなか分からなかったりするので、彼の英語スキルが翻訳するうえでの強い味方になってくれるかなと思って声をかけました。

新木さんはお話を頂いた時どのように感じましたか?

新木光栄です、と。実際に原著は、技術書ではあまり使わない口語で書いている部分も散見するので、 意図を汲み取った訳を提供する事を期待していただいたのだと思います。そう言う意味ではお役に立てたのでは無いかと思います。
f:id:nana_yu:20180226160001j:plain

翻訳という作業について。翻訳者としてどのようなところに苦労されましたか?

「独学プログラマー」翻訳で苦労したところや気をつけたところを教えてください。

新木そうですね、一番大変だったのはやっぱり時間の確保ですね。 個人的に、去年子供ができたこともあって。夜の時間が思った以上にとれなくて。作業が押しちゃって。清水川さんにいつもご迷惑かけましたね…
f:id:nana_yu:20180226160001j:plain

なるほど…業務の間にってことですもんね?

f:id:nana_yu:20180226160007j:plain
清水川というか、そもそも業務として頂いたお話ではないので。作業を進める時間を作ることは必然的に課題になりますね。
新木あとは、想定していたクオリティでの作業時間と実際に求められているクオリティの高さとのギャップがあり、 予想していた時間よりも大幅に時間がかかりました。

清水川さんの想定ではもっと高い翻訳の質を求めているんだという事に、翻訳をしはじめてから気がつきました。 なるほど、ここで止めちゃダメなんだ、もう一段階深いものを求めているんだ、という。質へのこだわりがすごかったです。
f:id:nana_yu:20180226160001j:plain

どうやって乗り切りました?

新木いやもう、愚直に。遅い時間、21時半ぐらいからはじめて、日によっては夜中までがんばって仕上げました。
f:id:nana_yu:20180226160001j:plain

技術者だからこそできる翻訳を。本から得られる情報としての価値を高めるために意識した事。

それだけ質に拘った翻訳、監訳の清水川さんとしては、満足いく出来になりましたか?

f:id:nana_yu:20180226160007j:plain
清水川はい。満足いくクオリティになったと思います。英語版よりも日本語版をお勧めしたいです。もちろん、最終的な判断は読者の皆さんにしていただいて、その結果は販売数や書評などに表れるかなと。

masaya(新木さん)の話に出ていた質へのこだわり、の部分なんですが、それはそのまま私がこの本を翻訳する上で意識した点でもあって。 具体的には、技術的に間違った情報を提供しないこととか。

あとは、機械的に翻訳するだけなら、やる意味があんまりないんですよね、技術書って。技術者の人って、英語の原著を、読める人はそれなりに読んじゃう。 今は機械翻訳の精度も高いので、英語版を買って読もうと思えば読めちゃうんですよ。 あるいは、職業翻訳者が翻訳すれば、私がやるよりも何倍も早く翻訳できてしまう。

それでも私に依頼が来たということは、翻訳の速さ以外の価値を求められていると思うんです。そこで、「技術的な背景や言い回しも含めて正しい」翻訳になることを目指しました。

内容を精査できる技術者が翻訳するからこその、翻訳ということ。

f:id:nana_yu:20180226160007j:plain
清水川そうです。それに、単に翻訳するだけだと、Pythonでこういうコードは書かないよね、 といった内容があってもそのまま翻訳されてしまいます。 そういう現実的でない話には訳注を付けたり修正したりしました。

その上で、原著の内容は尊重しないといけない。むやみに内容を付け足したりとかしないようにしないといけないんですよ。原著に書いていないことを作文してはいけないんです。

勝手に新しい事は言わずに、内容の間違いや合ってないところを自然にしていく。難しい作業ですね。

f:id:nana_yu:20180226160007j:plain
清水川気を配りましたね。矛盾しないように、これは著者の勘違いなんじゃないかな、と言うところに訳注をつけたり。この人の言っている事この言い方だと間違って伝わるから、本当は何を言いたかったのかな、とか、そう言うところを気をつけて翻訳しました。いくつかの箇所は、著者に連絡をとって確認しています。
f:id:nana_yu:20180226160007j:plain
清水川それから、価値という面でいくと日本の事情にあった情報を提供することですね。特に、この本は参考文献をたくさん紹介してるんですけど、リンク先は殆ど英語なんですよ。たまに和訳されていたりするので、そこは和訳のほうにリンクを貼りました。

和訳がないところは、全く同じではないけれどこの分野はここを見るといいですよ、という日本語の参照先を探してきたり、どうしても大事なところはリンク先も翻訳しました。リンク先の要点を翻訳するのをmasaya(新木さん)にやってもらったりしました。

すごい。かゆいところに手が届く。学習していく上での実用性をあげている、という事ですね。

f:id:nana_yu:20180226160007j:plain
清水川そうですね、実用性があがることを期待してます。この本は、英語の電子版は日本語版の半額以下なんですよ。その価格差に納得していただけるにはどうすればいいのか、ということで。日本人が学習していく上での実用性、情報を追加して価値を高めています。

"日本人にとって必要な情報をコラムとして追記している例。日本語の文字列の扱いを解説しています"

f:id:nana_yu:20180226160007j:plain
清水川ですので、日本版のほうが英語版よりも、日本人にとっては価値のある書籍になっていると思います。もちろん結果は読んでいただかないと分かりませんので、ぜひフィードバックいただければと思います。

PyQとのコラボ問題についてお伺いします。

この度、オンラインPython学習サービスPyQ(パイキュー)とのコラボということで、コラボ問題は監訳の清水川さんに、作成・提供いただきました。これはどのような問題なのですか?

f:id:nana_yu:20180226160007j:plain
清水川第4部(Part4)の第21章がデータ構造、第22章がアルゴリズムとなっていて、ここに関連する問題を提供しました。データ構造・アルゴリズムは本編では短く紹介している部分なんです。

著者の指針としては、データ構造とかアルゴリズムからプログラミング学習を始めてしまうと、つまんなくなってやめてしまう人が多いので。 まずは全体像を見ようということで著者は短くしています。でも流石にちょっと短い。なのでその補足になるような問題にしています。

f:id:nana_yu:20180226172543j:plain

f:id:nana_yu:20180226160007j:plain
清水川あと、この本って、実際に手を動かすことを重視していて、各章にチャレンジ問題が付いているんです。

23章のチャレンジ問題は、 「https://leetcode.com に登録して、簡単レベルのアルゴリズム問題を3つ解いてみよう。」なんですが、このリンク先は英語なんですよ。これはちょっと日本人がやるのはつらい。そこで、日本語に対応していて、さらにブラウザだけがあればPythonの学習環境が整うサービスであるPyQでチャレンジ問題を提供できるといいんじゃないかなと考えました。

本を訳して行く上で気を配っていた、参照先の翻訳であったり、より日本人向けの情報を提供しようと、そういうコンセプトにしたがってのオンライン連動という事ですね。

f:id:nana_yu:20180226160007j:plain
清水川はい、PyQはたまたま、自分の勤めている会社のサービスと言う事もあってカリキュラムの内容も把握していたのですが、PyQにはまだデータ構造やアルゴリズムに関わる問題は殆どない。というわけで、そこを補間する問題としても良いんじゃないかと考えました。

本の購読者にも、PyQのユーザーに対しても、価値が最大化されるような問題なんですね。

 

PyQユーザー・Python独学者へのメッセージ

それでは最後に、PyQのユーザーや、「独学プログラマー」に興味のあるPython学習者に向けてメッセージをお願いします。

f:id:nana_yu:20180226160007j:plain
清水川前書きからの引用になるんですが、この本は「手を動かしてみよう」「毎日少しずつ繰り返して、プログラミングを身につけよう」というコンセプトがあるんですね。PyQもそれは同じだと思うんですよ。

はい、まさにそうですね。

f:id:nana_yu:20180226160007j:plain
清水川なので、この本とPyQの親和性は高いと思います。22章まで独学プログラマーを読んでチャレンジ問題を進めていただいたら、コラボ問題をやってみて。そうすると、PyQの、Python入門の問題もお試しでできるようになってるので、そこまでの自分がどれぐらいプログラミングできるようになっているのか、ぜひ腕試しをして欲しいなと思います。

PyQチャレンジ問題の挑戦方法

PyQの登録画面で書籍に記載しているキャンペーンコードを入力すると、三日間無料でコラボ問題を含めたPyQの問題にチャレンジできます。 詳しい操作方法は以下をご覧ください。

PyQキャンペーンコードの利用方法 — Pythonオンライン学習サービス PyQドキュメント

また、PyQの購読ユーザーはクエスト一覧よりコラボ問題を選択する事ができます。手を動かして覚えるデータ構造とアルゴリズム、ぜひ挑戦してみてください。

pyq.jp

Copyright ©2017 BeProud Inc. All rights reserved.