PyQオフィシャルブログ

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

Pythonのコードの中の半角スペースは必要ですか?:コーディング規約「PEP8」について

f:id:nana_yu:20180502143157p:plain

f:id:nana_yu:20180316121637j:plain
大村こんにちは、PyQサポートの大村です。今日のPythonお悩み解決は、『半角スペースは必要ですか?』という質問に答えていきます。

pyq.jp

Pythonお悩み解決とは?

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

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

質問内容「半角スペースは必要ですか?」

PyQ では、各課題に 模範回答 を表示しています。その模範回答のコードに書いてある 半角スペース は必要なのかとご質問を受けました。

半角スペースは無くても実行、判定に問題はありません。 例えば、下記の2行はどちらでもプログラムとしては問題なく動きます。

health_result['名前'] = '佐藤'  # 半角スペースあり
health_result['名前']='佐藤'  # 半角スペースなし

なぜ、半角スペースがはいっているかというと、PyQはPEP8(ペップエイト)というPythonのコードスタイルに準拠し模範回答を作成しています。Pythonを書く人はみんなでなるべく同じように書いて、プログラムを読みやすくしましょうという コーディング規約 と呼ばれるものです。

この決まりでは例えば「=」や「+」の前後に半角スペースを入れましょうと決まっています。

PEP8

一般にコーディング規約は、会社、プロジェクトにより個別に規定されます。しかし、Pythonでは共通のコーディング規約がPEP8(ペップエイト)として定められています。PEP8をコーディング規約として利用することで世界中のPythonプログラマーと共通のコーディング規約を利用していることになります。以下にPEP8で規定されていることの一部を抜粋します。

  • コードのレイアウト
  • インデント
  • 1行の長さ
  • import
  • 式や文中の空白文字

より詳細な内容に関しては下記URLを参照してください。

PEP 8

更に詳しく学びたい方は、PyQのクエスト「実務でのPython」のFlake8 を実施ください。

PEP8はPythonをチームで利用する場合、知っていたほうが良い知識ですので、学習をおすすめしております。

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

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

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

ブラウザのみでPythonを学習できるオンラインサービス「PyQ」はこちら

pyq.jp

ITエンジニアを目指すなら覚えておきたいMarkdown記法

f:id:nana_yu:20180427091332p:plain
nao_y PyQチームのnao_yです。

PyQの質問投稿フォームではMarkdown記法というテキストの書き方を使うことができるのをご存知でしょうか?

ソフトウェア開発に使うさまざまなツールがMarkdownに対応していて、ITエンジニアにとって欠かすことのできないものになっています。今回はITエンジニアがMarkdownを使うことのメリットとMarkdownの書き方を解説していきます。

Markdownとは?

見出しやリストでまとめられた構造的なドキュメントを作るための記法の一つです。まずはMarkdownで書いたテキストがどのようなものかを見てみましょう。

PyQチームのnao_yです。

PyQの質問投稿フォームでは**Markdownというテキストの書き方**を使うことができるのをご存知でしょうか?

ソフトウェア開発に使うさまざまなツールがMarkdownに対応していて、エンジニアにとって欠かすことのできないものになっています。
今回はエンジニアがMarkdownを使うことのメリットとMarkdownの書き方を解説していきます。

### Markdownとは?

 . . .

実はPyQブログはMarkdownで書かれているのです。はてなブログがMarkdownで書かれた記事を変換して、ブラウザーで読めるHTMLにしています。

Markdownは.mdファイルとして通常のテキストエディターで編集することができます。PyCharmやAtomのようなプレビュー機能を持つエディターを使うとブラウザーでの見た目を確認しながら書くことができます。

エンジニアにとってのMarkdown

プロジェクトやプログラムの説明、更新履歴などのドキュメントを書くことが多いエンジニアにとってMarkdown記法は身近な存在です。Markdownのどのような点がエンジニアにとって嬉しいのでしょうか。

覚えやすい

Markdown記法はとても単純にできています。

例えば見出しレベルは # の数で決まっていますし、リストは - による箇条書きで表されます。他のページへのリンクも[PyQ](https://pyq.jp/)のように簡単に書くことができます。

編集するツールが限定されない

使い慣れたエディターで仕事をするITエンジニアも多くいます。Markdownはプログラムと同じように普通のテキストファイルとして扱えるため、ドキュメントを書くためだけにエディターを切り替える必要がありません。

プロジェクト管理ツールと相性がよい

GitHubやRedmineといったプロジェクト管理ツールがMarkdownに対応しています。これには以下のような利点があります。

  • 普通のテキストファイルなのでプログラムと一緒にバージョン管理できる
  • ブラウザーで読めるHTMLに変換され、読みやすいドキュメントになる

ドキュメントはプログラムの更新と併せて整備するので、同じ方法で管理できるのはとても重要です。

またGitHub上で直接、編集できるので微修正であればブラウザー上で行うこともあります。

可読性の高いドキュメントになる

見出しやリストで内容を整理することでドキュメントが読みやすくなります。

GitHub上でコードレビューをする際にもMarkdownを使っています。疑問点や指摘事項を簡潔にすることで、相手に伝わりやすくなります。結果として同じ箇所のレビュー回数が減り、仕事の効率化に繋がるのです。

Markdownの書き方

PyQの質問投稿フォームで使うことのできるMarkdown記法です。

参考: PyQドキュメント - 質問、回答画面で使える記法

一覧

Markdown
- The Beatles
- Oasis
- Arctic Monkeys
出力結果
  • The Beatles
  • Oasis
  • Arctic Monkeys

見出し

Markdown
# 見出し

## 見出し2
出力結果

見出し

見出し2

コードブロック

Markdown
```python

def hello_world():
    print('Hello world!')

hello_world()
```
出力結果
    def hello_world():
        print('Hello world!')

    hello_world()

言語を指定するコードブロックはGitHub Flavored Markdownという種類の記法です。Webサービスやエディターによっては正しく使うことができない場合があります。その場合は、言語を指定しない形式を使いましょう。

言語を指定しないコードブロックのMarkdown
```

print('Hello world!)

```

強調

Markdown
**The Zen of Python**
出力結果

The Zen of Python

引用

Markdown
> Beautiful is better than ugly.
出力結果

Beautiful is better than ugly.

リンク

Markdown
[PyQブログ](http://blog.pyq.jp/)
出力結果

PyQブログ

まとめ

覚えやすいドキュメントの構造がわかりやすいの2点がMarkdownの強みです。

加えて、さまざまな開発ツールが対応している書くエディターを選ばないことがエンジニアにとって嬉しい点です。

普段、Markdownでドキュメントを書く機会がないという方はPyQの質問投稿フォームで使い方を身につけていくのはどうでしょうか?

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

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

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

ブラウザのみでPythonを学習できるオンラインサービス「PyQ」はこちら

pyq.jp

Pythonの変数名の'_'(アンダースコア)の意味は?

f:id:nana_yu:20180316121637j:plain
大村こんにちは、PyQサポートの大村です。今日のPythonお悩み解決は、『変数名の'_'(アンダーバー)の意味は?』という質問に答えていきます。
pyq.jp

Pythonお悩み解決とは?

オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から PyQユーザーだけでなく、学習者みなさんに役立つプログラミング言語Python一般に関する質問を選んでご紹介し、解説するコーナーです。

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

質問内容「変数名の'_'(アンダースコア)の意味は?」

PyQ の問題中に order_dozen という名前の変数がでてきます。この変数名中の '_' (アンダースコア)の意味が知りたいとご質問を受けました。

まず、Pythonの変数の命名規則についておさらいしましょう。

Pythonの変数名に利用できる文字は以下です。

  • アルファベット(大文字・小文字)
  • アンダースコア
  • 数値(但し、変数名の先頭には利用できない)

また、Pythonプログラムの中ですでに扱いが決まっているキーワード(ifimport など)は変数名として利用できません。

以下は、変数名として正しくありません。

  • 10x : 数値からはじまる
  • if : キーワード
  • a b : 途中にスペース
  • @a,$a,aa## : 記号を利用

話を'_'(アンダースコア)に戻します。

これは変数名をつける上での慣習の様なもので、複数の単語(例: order, dozen)を使った変数名をつけたい場合は、単語を'_'(アンダースコア)で繋げます。

  • 注文という意味の変数 -> order
  • 注文ダースという意味の変数 -> order_dozen
  • 注文のリストという意味の変数 -> order_list

あくまで慣習ですので、 order_dozenorderdozen にしても dozen にしても動作は変わりません。 ただ、'_'(アンダースコア)をつけることで、単語の区切りがわかるため見やすくなります。

そのほかのPythonで使われる_(アンダースコア)について

変数で使われる以外に、Python言語のそのほかの_(アンダースコア)の使われ方は 以前のPythonお悩み解決の記事にまとめられています。 こちらもぜひご覧ください。

blog.pyq.jp

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

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

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

ブラウザのみでPythonを学習できるオンラインサービス「PyQ」はこちら

pyq.jp

GWはお家でプログラミングを学ぼう!空き時間に合わせたPyQでPython独学短期集中プラン2通り【プログラミング初心者編】

ゴールデンウィークにPythonを学びませんか

f:id:nana_yu:20180502141800p:plain

f:id:nana_yu:20180404165106j:plain
nana みなさんこんにちは、PyQスタッフnanaです。 明日からゴールデンウィークという事で、長期休暇となる方もいらっしゃることでしょう。

お外にお出掛けも素敵ですが、人混みに疲れたり、行きたいところの予約が取れなかったりということもありますよね。 そこで、長い休日の時間を使って、 Pythonのスキルアップ や 新しい事へのチャレンジとして、初心者からはじめるプログラミング学習 に挑戦してみませんか?

ということで、実際にPyQでの学習をイメージできるように、 「完全にプログラミングは初心者です!」という方に向けて PyQで学習プランを立ててみました。

「90日で初心者からWebプログラマーへ」がコンセプトです。PyQとそのカリキュラムの紹介

検索などから初めてPyQブログにこられた方のために、 オンラインPython学習サービスPyQ(パイキュー)についてご紹介します。

PyQは、プログラミング言語Pythonを学ぶ為のオンライン学習サービスです。 技術書1冊分の価格で、Pythonの基本文法からWeb開発・スクレイピング・機械学習などの内容のカリキュラムを 使い放題で学習できます。

pyq.jp

PyQのカリキュラムは、全くのプログラミング初心者からでも、 「仕様書を見て1つ以上の機能の実装ができる=新人プログラマーとして働ける」 ようになることを目標に作られています。

プログラミング初心者のモニターさんに実際にPyQを使っていただき、 Webアプリケーションの開発ができるようになるまでのコースを学習していただいた結果、 90日で学び終わる事ができました。

モニターユーザーの学習時間のフローチャート
(TOPページより)90日でプログラマーへ

クエストごとの時間測定では合計で150時間でしたので、1日1.5〜2時間の学習の結果という事になりますね。

これらの学習内容はコースとして纏められています。 初心者からウェブアプリの開発までマスターしたい方は、 「未経験からのPython文法」 コースの後「Webアプリ・APIコース」を学習することをおすすめします。

pyq.jp pyq.jp

ゴールデンウィークの間に、「脱プログラミング初心者」するなら?

上記の目標だと、ちょっとボリュームが多くて尻込みするかもしれませんので、 今回の目的である「ゴールデンウィーク中の学習プラン:プログラミング完全初心者向け」を立ててみましょう。

「プログラミングって何」を知る。基本文法を学んでみる合計4時間〜6時間プラン

PyQチームに入った時点で全くのプログラミング初心者だった広報スタッフ(わたしです)が、 以前上記の「未経験からのPython文法コース」に挑戦した時は、1日30分〜2時間、4日間学習し、 以下のクエスト一覧の「チュートリアル」「はじめてのプログラミング」「Pythonはじめの一歩」 の3項目・13のクエストを学習しました。

クエスト一覧

pyq.jp

「今日はここまでクエストを進めよう!」というやり方で学習したので、 毎日の時間にばらつきがありますが、平均して1日1時間ぐらいだったと思います。

これで、初心者向けのPython書籍のだいたい三分の一程度の内容です。 ゴールデンウィークのお出かけの間の空き時間を使って学習するのに、ちょうどいい目標ではないでしょうか。

もうちょっと頑張ってみようという方へ。入門書一冊分の内容を一週間(合計目安:40時間〜60時間)で学んでみるプラン

「そんなんじゃ物足りない!」「ゴールデンウィーク暇なんです!」 という方は、上記の内容を1日で学習し、クエスト一覧の「Python初級」まで終わらせちゃいましょう。

1日4時間から6時間の学習時間を確保できる場合、 以下のようなスケジュールで学習すれば、Python初級までの内容を学習することができます。

  • 1日目…「チュートリアル」「はじめてのプログラミング」「Pythonはじめの一歩」
  • 2日目…「Python初級」:関数の基本・タプルの使い方
  • 3日目…「Python初級」:文字列
  • 4日目…「Python初級」:データ型
  • 5日目…「Python初級」:osモジュール・繰り返しを学ぼう(前半)
  • 6日目…「Python初級」:繰り返しを学ぼう(後半)・ユニットテストの基本
  • 7日目…「Python初級」:初級の総合演習

目安ですが、プログラミングの基本を学ぶための入門書一冊分程度の内容を学ぶことができますよ。

コラム:書籍とオンラインサービスそれぞれのメリットは?

文章中での「初心者向けPython書籍」は、PyQともコラボしている「いちばんやさしいPythonの教本」を参考にさせていただきました。 書籍とオンラインサービスではどのような差があるでしょうか。

上記で紹介した内容と書籍の前半の内容を見比べると、書籍では最初の項目でプログラミングを書くための環境を作る方法を30ページほど説明しています。 PyQはブラウザだけがあればすぐに学び始めることができるので、環境構築に関する項目は上記の学習プランには含まれていません。

また、「いちばんやさしいPythonの教本」の後半では、ユニットテストなどに代わりWebアプリケーションの入門内容が入っています。 一冊の中でより実践的なイメージを持ちプログラムを完成させられる構成ですね。

以上を踏まえて、ゴールデンウィークなどの短期間で集中して学習する時に考えられるメリットを考えてみました。

書籍
  • 環境設定から学ぶことができるので、後々活かせる
  • もう一度復習したいと思った時に見直しやすい
  • 一冊で成果物を作ったという達成感が得られるので、今後の学習のモチベーションになる
オンラインサービス(PyQ)
  • 面倒な環境設定なしで学べるので、最初の挫折が減らせる
  • 自分の理解度に合わせて高度な内容やWeb以外の内容も学習できる
  • より高度な内容をやりたくなった時に、使い放題で先のクエストまで学習できる

一長一短あると思いますので自分に合った方法を探すことも大切ですね。ユーザーさんのご意見を見ていると、より理解を強固にするために併用している方も多いです。

学習した時間などは「学習カレンダー」に記録されます。

せっかく集中して学習するのですから、学習した自分の記録は残したいですよね。 あとで見返すことができれば自信やモチベーションにも繋がります。

PyQでの学習時間は、ログイン後の画面で視覚的に見ることができますよ!濃い緑を目指してがんばりましょう。

学習カレンダーの機能詳細は以下からどうぞ。 blog.pyq.jp

「でもお高いんでしょう?」PyQには、使った日数分以外の日割り返金があります。

ここまで読んで、PyQでのプログラミング学習に興味を持ってくださった方の心配は、やっぱり金額面だと思います。

PyQのプランは個人で契約する場合以下の二つがあります。

  • 個人用ライトプラン … 2980円/月
  • 個人用スタンダードプラン …7980円/月

休みの日しか学習できない…という方は、少し割高に感じるかもしれません。 ですが、PyQのプラン購入は、購入後休会処置をした場合、残りの金額が日割りで返金されます。 例えば5/1にライトプランを購入し、ゴールデンウィーク開けの5/9に購入停止した場合(9日間の使用) 2980 ÷ 31 × 9 = 約866円を差し引いた金額が返金されます(日割りですので契約日で若干の差があります)

学習サポート機能で現役プログラマーに問題の質問ができるスタンダードプラン*1でも 7980 ÷ 31 × 9 = 約2317円と、本一冊分程度の金額で学習可能です。

プランの詳細は以下のページをご覧ください。

pyq.jp

まとめ

今日はプログラミング初心者向けの、PyQでの独学スケジュールの例を紹介しました。 一歩踏み出してプログラミングの世界に触れてみませんか? PyQがあなたのスキルアップのお役に立てれば幸いです。

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

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

Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

ゴールデンウィークには、Pythonお悩み解決強化期間として 初心者がつまづきがち・中級者でも以外と知らない、 Pythonに出てくる記号や書き方・業務に役立つMarkdown記法のtipsなどを 配信予定です。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

ブラウザのみでPythonを学習できるオンラインサービス「PyQ」はこちら

pyq.jp

*1:スタンダードプランは運営会社ビープラウドの営業日(休日祝日を除く、月曜日〜金曜日)の2営業日以内に回答します。詳しくは プランに関するFAQを参照ください

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

f:id:nana_yu:20180502145953p:plain

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

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ドキュメント翻訳グループのページを参照してください。

python-doc-ja.connpass.com

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

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

Copyright ©2017-2018 BeProud Inc. All rights reserved.