PyQオフィシャルブログ

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

PyQ内の挫折の多かった学習コンテンツを改善しました

PyQ大村です。PyQ内の挫折の多かった学習コンテンツの改善を行いましたのでお知らせします。

f:id:nana_yu:20180702091047p:plain

PyQは受講者からのご質問、フィードバック、達成率、離脱率などを元にクエストの改善を定期的に行っています。

今回は「Python初級」「Python中級」の改善を行いました。 解説が分かりづらい、難しいなどの問題の位置の変更、ご質問が多い問題の差し替えなどを行いました。

問題改善箇所の全容

「NEW」マークが付いているパートが改善を行った箇所です。

f:id:kamekokamekame:20180627104334p:plain

問題改善

特にご質問が多かった以下の問題を改善し、差し替えを行いました。

問題整理(削除・移動・追加)

  • 「オブジェクト指向」パートと重なる部分が多かったため、「クラスの基本」パートを削除しました。
  • オブジェクト指向」は、Python中級に移動しました。
  • 課題が難しかった正規表現に 正規表現の基礎 を追加しました。

写経問題の削除

各パートの最初にあった写経問題を削除しました。 最初の写経問題は学習する文法項目を先に1度写経して体験いただいてから詳細な学習に進んでいただこうという意図で設定しておりました。 しかし、「学んでいないものを写経するのは混乱する」とご意見を多数いただきましたので写経問題を削除し、解説を追加しました。

チャレンジ問題の追加:Python中級「オブジェクト指向」

新しいオブジェクト指向のチャレンジ問題としてカードゲームの「ブラックジャック」を作る問題が追加されました。難しい問題ですが、是非、Python中級を完了した方はチャレンジください!!

pyq.jp

今回の更新一覧

今回の更新の詳細は、更新履歴を御覧ください。 docs.pyq.jp

プログラミング、Pythonで何ができるの?できることを4つ紹介します

f:id:nana_yu:20180625114939p:plain

id:hirokiky です。

プログラミングやPythonを学んでいったい何ができるの?という疑問にお答えします。 この記事ではPythonを使ってできることを紹介することで、 「プログラミング、Pythonを学べばこんなことができるんだ」 と感じてもらえればなと思います。

プログラミングとは「コンピューター(PCやサーバー)の処理すべきことを書くこと」を言いますが、その言葉の定義を聞いても何をやることなのかは正直イメージしにくいと思います。

具体的に、プログラミングでできることをお伝えします 。

今回お伝えする、プログラミングでできること4選

  1. Webサービス、Webアプリケーションが作れます
  2. Excelに代わり、自動でデータ処理や分析ができます
  3. 自動でWebサイトのデータを収集できます
  4. 機械学習、ディープラーニングや最適化ができます

この記事で紹介する4つはできることの一部にすぎません。プログラミングではよりたくさんの、色々な素晴らしいことができます。

1. Webサービス、Webアプリケーションが作れます

f:id:nana_yu:20180625115301p:plain

一番身近なプログラミングの例は、Webサービスだと思います。 TwitterやFacebook、AmazonというWebサービスも「プログラミング」することで作られています。

例えば

  • Instagram はプログラミング言語Pythonで作られています
  • イベント管理サービスの connpass もPythonで作られています (サーバーがPythonで作られています。iOSアプリなどは別のプログラミング言語です)

以下はイベント、勉強会プラットフォーム connpassの、DjangoCongressJP 2018というイベントのページです。

f:id:hirokiky:20180621155914p:plain

このように、プログラミングを学ぶことで InstagramやconnpassのようなWebサービスを作れるようになります。

プログラミングを学ぶことで、「こんなWebサービス・アプリがあったらいいのにな」というイメージから、実際に役に立つものを自分で作れるようになります。

プログラミング言語Pythonで作られたWebサービス、Webアプリの例:

出展

私のプログラミング活用方法:Webサービス・アプリケーション

f:id:nana_yu:20180316121616j:plain
hirokiky 例えば私自身もプログラミング言語Pythonを使って、Pythonの学習プラットフォームである PyQ を作っています。

2. Excelに代わり、自動でデータ処理や分析ができます

f:id:nana_yu:20180625115319p:plain

Excel(エクセル)でデータの整理やグラフを表示したりはよくやることだと思います。 ですが、同じExcelの処理を毎日、毎月ずっと繰り返すのは大変だと思いませんか?

PythonやVBAなどのプログラムでExcelの操作を自動化しておけば、同じ処理を何度も手動で行う必要がありません。 一度プログラミングしておけばデータの集計や余計なデータの削除、シートの結合やグラフへの描画などがすべて自動でできるようになります。

以下ではプログラミング言語Pythonを使って、あるエクセルファイルを読み込んで「期首」を横軸に「売上高」のグラフをプロットしています。

エクセルファイルの読み込み

f:id:hirokiky:20180621155332p:plain

売上高の推移をプロット

f:id:hirokiky:20180621155356p:plain

たった2行のプログラムでグラフをプロットできました。 このようにプログラムを1度書いておけば、同じ形式のどんなExcelファイルにでも、再利用できます。

以下のような、Excelでよくやる計算もPython(とpandasライブラリー)を使ってできます。

  • 列と列の計算結果を、別の列に書き込む
  • シートのある列ごとにグループして計算する
  • 月次での数値の推移を計算する

1日10分かかる処理を自動化しておくだけで、年間40時間の削減になります (1年で240日の10分の時間を削減したという計算の場合)。

私のプログラミング活用方法:データ処理・データ分析

f:id:nana_yu:20180316121616j:plain
hirokiky 私も、株価や有価証券の情報をまとめたExcelファイルを集計したり、グラフをプロットするためにPythonプログラムを書いています。 手動でやると面倒なExcelの処理などを、毎度同じように自動で実行できるので、かなりの楽ができます。

3. 自動でWebサイトのデータを収集できます

f:id:nana_yu:20180625115511p:plain

Webサイトの情報を自動で取得して、CSVやエクセルのデータとしてまとめられます。 これはWebスクレイピングと呼ばれる技術で、たとえば自分が 定期的にチェックしているWebサイトのデータを取ることで、手動でアクセスする手間を省けます 。Webサイトの更新を自動でチェックさせたり、定期的に価格を取得して保存しておいたりができます(アクセス対象のWebサイトの利用規約をよく確認する必要はあります)。

例えば、イベント情報サイト connpass にアクセスするPythonプログラムは以下のようになります。 たった数行プログラムを書くだけで、自動でWebサイトにアクセスし、情報を取得できるようになります。

import requests

# connpass.com にアクセスして情報を取得する
requests.get("https://connpass.com/")

プログラムを追加することで、アクセスして取得した情報をCSVやエクセルに保存したり、前回アクセスしたときと変わった部分を検知したりも自動でできるようになります。

私のプログラミング活用方法:Webサイトのデータ収集(Webスクレイピング)

f:id:nana_yu:20180316121616j:plain
hirokiky 私も個人的に 有報キャッチャー というサイトから企業の有価証券報告書を自動で取得、解析して投資判断に役立てたりしています。 自分でブラウザーをクリックしてダウンロードしてくるのは果てしなく大変な作業ですよね。 それをコンピューターに任せれば余った時間をより有意義なことに使えます。

4. 機械学習、ディープラーニングや最適化ができます

f:id:nana_yu:20180625115543p:plain

単にデータの操作や分析をするだけでなく、機械学習や最適化もできます。

例えば機械学習(回帰分析)を使って、東京都などの住宅価格の予想をさせることができます。 また最適化を使えば、株式や債券などのポートフォリオの最適化(リスクを最小にして、リターンを最大にする銘柄の組み合わせを算出)できます。

Pythonを使った機械学習(分類)のプログラムは以下のようになります。 複雑そうな機械学習ですが、Python(とscikit-learnというライブラリー)の力を使えば簡単にできます。

import pandas as pd

# CSVファイルの読み込み
df = pd.read_csv('./data.csv')

# データから特徴とラベルを分離
X = df[:-1, :].values
y = df[-1, :].values

from sklearn.linear_model import LogisticRegression

# 機械学習のモデルに学習させる
lr = LogisticRegression()
lr.fit(X, y)

# 値からラベルを予想させる
lr.predict([(165, 65), (170, 82), ...])

私のプログラミング活用方法:機械学習・最適化

f:id:nana_yu:20180316121616j:plain
hirokiky 私も最適化を使って(証券の)ポートフォリオのリスクを抑えてリターンを大きくする組み合わせを計算しています。 機械学習はまだ個人の趣味では活用できていないので、今後できれば面白いかなと思っています。

他にもプログラミングは色んなところで活躍しています

プログラミング(ソフトウェア)は日常の色々な場所で活躍しています。 その恩恵を感じる機会は少ないですが、スマホアプリや、美容院の予約をするWebサイト、倉庫からの荷物の配送を管理するシステムなど、色々な場所でソフトウェアは活躍しています。

まとめ

今回はプログラミングを学んでいったい何ができるの?という疑問にお答えしました。 具体例としてプログラミング言語Pythonを使った場合の例を紹介しました。

「プログラミングってよくわからない」「プログラミングってなんだかすごそう」から、 プログラミングって「こんなことができるんだ」 とより具体的に感じていただければ嬉しいです。

  • 欲しいなと思うWebサービスのアイディアがありますか?
  • 手動で繰り返しているExcelの処理はありませんか?
  • 毎日手動で更新をチェックしているWebサイトはありますか?

ぜひプログラミングを学んで、そのすごさや便利さを知っていただければと思います。

PyQメルマガ発行のお知らせ:Pythonの魅力とプログラミング学習の初めの一歩をお伝えします!

みなさんこんにちは、PyQスタッフnanaです。 この度、オンラインPython学習サービスPyQより、 Pythonとプログラミング学習についての メールマガジンを配信する運びとなりましたのでお知らせします。

http://lpm.pyq.jp/pyqmm-subscribe.html

メールマガジン配信の経緯

現在までも、PyQのユーザーのみなさんに向けて、 PyQブログやPyQカリキュラムの最新情報、Pythonのお役立ち情報をメール配信してきました。

学習者のみなさんの学習を支援したいというコンセプトでコンテンツを作る中で、PyQというサービスの説明のみならず、Python言語・プログラミング全般の学習tipsなどより広い範囲の情報を扱うようになりました。

それらを充実させ、PyQのユーザーのみでなくプログラミング学習者みなさんの学習をよりよくするお手伝いをしていきたいと考え、Pythonの魅力や学習について伝えるメールマガジンを発行することになりました。

メールマガジンの内容

メールマガジンでは、PyQ公式ブログの新規記事のお知らせや人気記事のご案内を主にお知らせします。また、Python書籍・PyQの新規リリースの紹介や、PyQ・コラボレーションコンテンツのお得なキャンペーンなども配信予定です。

現在Pythonを実際に学習している方にはもちろん、 プログラミングを学習してみようかな?という方やPythonという言語について知りたい方にも、Pythonの魅力やプログラミング学習のtipsなどをお届けします。

メールマガジンサンプル

下記のようなメールが届きます(ユーザーメールのサンプル)

▶PyQ新規リリースのお知らせ(クリックで展開)

▶おすすめブログのまとめ記事(クリックで展開)

購読方法

以下のバナーより配信希望フォームに入れます。 必要事項を記入し送信してください。

http://lpm.pyq.jp/pyqmm-subscribe.html

6月13日(水)午前6時〜7時にPyQのメンテナンスを行います

PyQ清原です。 PyQのメンテナンスについてお知らせします。

  • 日時: 6月13日水曜日、午前6時〜7時
  • 内容: 安定化、高速化の対応
  • 範囲: ログイン中の画面が停止します

ログイン中の機能がご利用いただけなくなります。 クエストの学習もこの期間できなくなります。

より安定した高速なシステム運用をするためにデータベースの変更を行います。 利用されている方の少ない時間帯でのメンテナンスとしておりますが、朝6時からの1時間を利用してプログラミング、Pythonの学習をされている方には申し訳ありません。

より良いPyQのサービス提供のためご協力ください。 PyQブログの良い記事もありますので、時間が空いてしまった方はぜひ読んでください。

blog.pyq.jp

blog.pyq.jp

blog.pyq.jp

PyCon APAC 2018 in シンガポールに行ってきました!

こんにちは。PyQチームのnao_yです。

シンガポールで開催されたPyCon APAC 2018に行ってきました!

さまざまな国のPython使いが集まるPyCon APACの雰囲気や、機械学習+Webという興味深い内容の発表についてお伝えしたいと思います!

PyCon APACとは?

2010年にシンガポールから始まった、アジア太平洋地域規模で開催されるPythonのカンファレンス(PyCon)です。

直近では台湾(2015年)、韓国(2016年)、マレーシア(2017年)といった国で開催されました。日本では2013年に開催されています。

PyCon APAC 2018

5月31日から6月2日に掛けての3日間に渡って開催されました。

会場はシンガポール国立大学(NUS)。世界大学ランクで3年連続でアジア首位に輝いている大学だそうです。

f:id:nao_y_py:20180607142926j:plain

マーライオンが描かれたロゴがまさにシンガポールという感じです!

f:id:nao_y_py:20180607142604j:plain

1日目がワークショップ、2,3日目がカンファレンスというスケジュールです。カンファレンスはデータサイエンスWeb開発その他とテーマごとに分かれた3トラック構成で行われました。どのトラックにも興味深いトークがあってどれを聞くか悩みまくっていました。

3日目には学生向けプログラミングワークショップが開催されていたようで、学生がちらほら見受けられました。プログラミング面接で使われるPythonの文法についての発表(Elements of Programming Interviews in Python)を真剣に聞いている姿が特に印象的でした。

すべての発表が英語で行われるので、英語慣れしていない私は頭をフル回転させながら聞いていました。あまりに頭を使いすぎて頭痛がするくらいでした。英語力を鍛えないといけないようです。

また、開催中には朝食、昼食、おやつがビュッフェスタイルで提供され、会場にいる間お腹が空くことはないくらい食事にも気合が入ったイベントでした。

APACの名前に相応しく、さまざまな国のPython使い(Pythonista)が集結します。最終日にはスタッフや発表者も交えて懇親会を行いました。台湾、韓国、インド、フィリピン、カナダとさまざまな国から来たPythonistaと交流しました(頑張って英語で交流を試みていました)。

f:id:nao_y_py:20180607142629j:plain

PyCon APAC 2018 ツアー

海外カンファレンス初参加なので、PyCon JPが企画するAPACツアーに加わりました。

PyCon JP Blog: PyCon APAC 2018 in シンガポール のツアー参加者募集

5月31日にシンガポール入りして、初日は観光、2, 3日目はPyCon APAC、4日目にまた観光、そして6月4日に帰国というスケジュールでした。PyConも観光も満喫できました。

f:id:nao_y_py:20180607142901j:plain

Build a Data-Driven Web App That Everyone Can Use

概要:

You're a data scientist with a machine learning model that you want to show everyone. Do you give your users your Python scripts and tell them to run "python mycoolmodel.py"? Is there a better alternative? How about a web app? The speaker will show you how Flask can be the best fit pun intended for this case.

概要(意訳):

自分の作った機械学習モデルをみんなに使ってもらいたいのに、mycoolmodel.pyなどと名付けたファイルをpythonコマンドで実行するよう伝えていませんか?他にもっと良い方法があるはずです。Webアプリはどうでしょうか?この発表ではFlaskを使ったベストな方法を紹介します。

特に興味深かった発表がBuild a Data-Driven Web App That Everyone Can Useです。

機械学習というとJupyter Notebookでコードを書いたり、結果をグラフ化する印象がありました。 Jupyter Notebookは機械学習モデルの作成には適していますが、チームメンバーや多くのユーザーにその成果を使ってもらうときにファイルを渡して実行してもらうわけにもいきません。

そんなときにWebアプリとして使うことができたら便利ですし、Webサービスに組み込むこともできそうです。Flaskは軽量WebフレームワークなのでシンプルにWebアプリを作れるのが特徴です。機械学習モデルをアプリ化するにはとてもよい選択肢と思いました。

発表の動画が後日公開される予定ですので、追って紹介します。

機械学習とFlaskはどちらもPyQで学べるので、応用例としてFlaskで作成した機械学習Webアプリをいずれ紹介したいと思います。

【2018.6.20 追記】発表の資料が公開されました。 (PDF形式)

Build a Data-Driven Web App That Everyone Can Use

また、その他の発表・ワークショップの資料も公開されています。

Slides for PyCon APAC 2018 | PyCon APAC 2018

発表の概要はスケジュールに併せて記載されています。

Conference Schedule | PyCon APAC 2018

シンガポールってどんな感じ?

シンガポールといえばマーライオンとマリーナベイサンズ。天候に恵まれてとてもいい画が撮れました。

f:id:nao_y_py:20180607143817j:plain

東南アジアに位置しているので雨がちな気候ですが、ツアー4日目は綺麗に晴れて観光日和でした。天気がいいだけあって赤道直下の暑さをとても感じましたが、ホーカーズと呼ばれる露店街で休憩しつつ晴天のシンガポールを散策しました。

f:id:nao_y_py:20180607144411j:plain Maxwell Food Centre

f:id:nao_y_py:20180607144515j:plain Lau Pa Sat Festival Market

Maxwell Food Centreではシンガポール名物の海南鶏飯を食べました。柔らかい鶏肉と鶏の茹で汁が染み渡ったご飯の組み合わせが最高でした。 f:id:nao_y_py:20180607144836j:plain

夕方にはアラブ街を散策してトルコ料理をいただきました。 f:id:nao_y_py:20180607145344j:plain

f:id:nao_y_py:20180607145408j:plain

地元の人々が集まる露店街、近未来的な高層ビル群、異国情緒あふれるアラブ街とシンガポールのさまざまな姿を楽しむことができた一日でした。

シンガポール豆知識

シンガポールの公用語は複数ありますが、英語もその一つです。歴史的な経緯から英国式の単語が使われています。例えば、中心部を指すセンターはcentre、色はcolourという感じです。初めて聞いたのが建物のフロアを表すstorieという言葉。綴りだけじゃなくて単語そのものも普段耳にする米国式と異なるんですね。

まとめ

初めての海外でカンファレンスなので発表が全く理解できないのではないかと不安でした。しかし英語とはいえPythonの話です。多少聴き取れなくてもスライドを読んだり、出てきたライブラリをその場で検索したりすることでなんとなく内容が伝わってきます。特に興味深かった"Build a Data-Driven Web App That Everyone Can Use"は話もスライドも理解しやすい作りですので、動画が公開されたらぜひ見てみてください。PyQでの学びを活かすアイデアが得られることでしょう。

また、シンガポールを訪れるのも初めてだったのですべてが新鮮でした。技術の話題だけでなく、その国の景色や食文化を楽しめるのも海外カンファレンスの醍醐味なのだと実感しました。

日本から海外のPyConに参加する人はあまり多くないようです。PyQで学んだあとは、海外のPyConに目を向けるのはどうでしょうか?刺激的な発表や綺麗な景色、美味しいものを味わいにいきましょう!

海外カンファレンスに興味があるけど一人では行きづらい、海外にあまり行ったことがないので不安という方は、PyCon JPが企画するツアーに参加するのがおすすめです。Pythonista仲間と行く旅は心強いですし、現地や他の国のPythonistaと交流するチャンスも得られます。

PyCon APACツアーやPyCon JPの情報は公式Twitterアカウント@PyConJで公開されます。ぜひチェックしてみてください。

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

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

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

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

pyq.jp

Copyright ©2017 BeProud Inc. All rights reserved.