こんにちはKoh(@misc_log)です。
僕はエンジニア&マーケターとしてECサイトを管理していますが、最近よくPython(パイソン)を書いています。
エンジニアとして他言語の経験はあったものの、Pythonに関しては全くの素人だったので普通に一から勉強したんですが、PyQというサービスを利用して学習しました。
このPyQというサービス、使ってみると「すごいな」と思うところが多く、入門者がPythonを学習するのに最適だと感じたので、レビューしてみます。
この記事は、これからプログラミング・Pythonを勉強したい、または、勉強していたけど挫折したという入門者に向け、「PyQ」なら続けられるかもしれないよということを書いてます。
どう学べばいいの?どうすれば習得できる?という疑問に答えます。
僕がPythonで作ったもの
まず、僕がPythonを書くことになった理由ですが、仕事で機械学習を使って解決したい問題があり、機械学習といえばPythonだよねということで、まずはPythonについて勉強することにしました。
もちろん本も買ったりしたのですが、最近オンラインで学習できるサービスが豊富なので、せっかくだから使ってみようと思い、PyQを選んでみたという感じです。
そんな感じでPythonを勉強しながら、これまでに下記のようなものを開発しました。
- 定期的にWebサイトをスクレイピングし、結果をCSVにして出力する
- CSVを加工・整形し所定のフォーマットにし、SFTPで所定の箇所にアップロード
- GoogleAnalyticsAPIで特定の数字を定期的に収集
- 定時実行しているバッチがエラーになったらChatWorkに通知
- Googleが開発したTensorFlowという機械学習ライブラリを使った画像分類器
- jupyterでデータ分析
などなど。これらは全部サービスとして動いてます。
スクレイピング、CSVなどのファイル操作、データ分析、AI・機械学習など、Pythonが得意とする分野はだいたい作ってみましたね。
他にも、ただの悪ふざけみたいなものも含め結構いろいろ作りました。やっぱり仕事中の悪ふざけ開発は楽しいです。あくまでも勉強の一環です。
もちろんPyQだけでなく、書籍やGoogleに頼りながら開発しましたが、Pythonの扱い方はPyQのおかげで効率的に学習できたなと思っており、挫折なくある程度書けるようになりました。
Python・プログラミング入門者の壁は挫折
いや、もともとプログラミングできたからじゃないの?
と思われるかもしれませんが、確かに前提となるプログラミングの知識を持っていたのは事実です。
ただ、僕の場合、せっかくPyQを使ってみたということもあり、最も初心者向けのコースからやってみたんですが、やっていて感じたのは、プログラミング初心者であってもこれならきちんと学べるんじゃないかなということです。
そりゃ全くの初心者がPyQを1周しただけで、Pythonが超絶ゴリゴリに書けるスーパーエンジニアになれるかというと、そうなれる人は少ないと思いますよ。
とはいえ、初心者がプログラミングやPythonを学習するには、いろいろな壁があるのも事実であり、みんな挫折しちゃうんですよね。
できないんじゃなくて、やめちゃうんですよ。
なので、いかに挫折せず続けられるかということがプログラミング学習において最も重要なことだと思っていて、そのあたり、PyQには挫折しないための工夫が随所にあるなーと感じました。
ということで、まずはPyQってどんなサービスなの?どんなところが挫折させない仕組みなの?ということを見ていきます。
オンラインでPythonを学習できる「PyQ」
PyQとは
まずは、PyQがどんなサービスなのか、どんな流れでPythonを学習していくのかをざっと説明します。すぐ読み終わると思います。
PyQとは、用意された課題をクリアしていく形式の、ブラウザだけで本格的なPythonが学べるオンライン学習サイトです。
分野や難易度別にクエストと呼ばれる課題が用意されており、ブラウザ上でPythonを書き、クエストをクリアしていくことで、Pythonの習得を目指します。
PyQの対象者は?
Pythonどころかプログラミングが始めてという初級者〜中級者が対象です。
コースとクエストと問題
まずコースがあって、コースの中に複数のクエストがあり、クエストの中に複数の問題があります。
例えば、「未経験からのPython文法」というコースがあり、「print()、変数」というクエストがあり、「変数への代入と利用」という問題があるといった関係です。
問題を解いてクエストをクリア、それを繰り返してコースを学んでいくという学習スタイルです。
「未経験からのPython文法」、「Webアプリ・API」、「データ分析・機械学習入門」など、分野、難易度毎に複数のコースがあり、1,000問以上の実践的な課題が用意されています。
このように、プログラミング入門〜Pythonの基礎〜AI・機械学習までPython初心者がステップアップしながら学べるのがいいですね。
もちろん、いや、それは知ってるしというコースは飛ばしても問題ありません。
オンラインPythonPyQを学習していく流れ
まずはチュートリアルを実施して、PyQで学習していく流れを理解します。
これがブラウザ上で表示したPyQのクエスト画面です。
まずは写経をする
まずは写経、つまり、書き写すだけのステップがあります。
画面左側に解答が記載されています。そのコードをそのまま右側部分にタイピングして書き写しします。
くれぐれもコピペしてはダメですよ。自分で打つことが大事です。
次に写経したものが正しいかどうか判定します。
判定すると、画面右側下枠部分に、正解 or 不正解と表示されます。
写経なのでタイプミス以外で不正解になることは無いと思いますが、不正解の場合は、ヒントというか誤っている部分を教えてくれるので、間違えているところがわかるようになっています。
また、判定ボタンのとなりにある「実行」ボタンを押すことで、Pythonの実行ができ、判定はしたくないけど、実行した結果を知るということも可能です。
正解したら、画面左側下部にある「次の問題へ」ボタンを押して、次に進むことができます。
問題が出題される
次に、いよいよ問題に答えます。
写経の次は演習と呼ばれるステップとなり、先程とは違い、問題が出題されます。
問題は、前ステップで写経した内容の応用的なものになっています。
今度は自分で考えて、正解を書かなければなりませんが、特に制限時間があるわけではないので、ゆっくり考えて解答しましょう。
もしどうしてもわからない場合は「模範解答」を見ることができます。
模範解答はそのまま書けば正解するようになっていますので、考えてもわからなければ模範解答を見て、解答を写経しましょう。
いずれにしろ、画面右側に解答を書き、判定をして正解すればクエスト終了となります。
学習ノートを残す
クエスト完了時に、そのクエストに対する履歴を残すことができます。
これの何が嬉しいのかというと、クエスト完了はしたけど、理解があいまいだなという部分や、そのクエストに対する感想を書いておくことで、復習する際にとても役に立ちます。
クエストに対する自分の理解はどうであったか?を5段階で評価し、加えて、メモを残しておけば、振り返る際にどういったことでつまづいてたかがわかるので効率的な復習が可能です。
また、自分の解答を他のPyQユーザーに向けて公開することができます。公開すると他のユーザーがそのコードを見ることができるので参考になりますよという機能です。
もちろん公開するしないは選択できるので、絶対公開しなければいけないわけではありません。
PyQがPython入門者の学習におすすめな理由2つ
PyQの学習の流れは理解してもらえたと思いますが、次に、僕がPyQはこれだからすごいと思ったおすすめポイントを2つ紹介します。
1. PyQは初心者に合理的な学習方法が用意されている
PyQの挫折させない仕組みはここにあると思います。そこを詳しく紹介します。
まずは、PyQでの学習の流れを振り返ります。
- 写経する
- 問題を解く
- 復習する
基本的にこのサイクルを繰り返してPythonを学習していきますが、このサイクルが初心者のプログラミング・Python学習に対し、とても理にかなっています。
写経で手を動かす
さんざん言われていることですが、写経して手を動かすことで得られるものはやはり大きいです。
ただ丸写ししていて何か意味があるのかって感じる人も多いと思います。昔は僕も写経に何の意味があるんだと思ってました
でも、繰り返し書いていると、あれ、この書き方さっきと違うなという気付きがあったり、こう書くとこう動くんだろうなとか予測ができたり、わからないながらも少しずつ「見えてくる」ことがあるんですよ。
もちろん写経だけを延々としていて、プログラミングを習得できるかというとそんなことはないですが、何もかもわからない状態で、自分で何か書けって言われても不可能じゃないですか。挫折するだけです。
写経していても最初は意味がわからないと思います。でもそれを繰り返し、考えを巡らせることができるようになると、少しずつ理解できるようになってきます。
初心者は特に、わからなくても、とにかく手を動かすのが一番学習効果が高いです。
問題を解く
繰り返しますが、写経だけではプログラミングもPythonも習得することはできません。
自分で考えて書くには、何かを作る、あるいは、問題を解くのが最適です。
実際に自分で開発すると一気に理解が進むのは間違いないんですが、一体何を作ればいいの?って思うじゃないですか。
また、作りたいものが高度過ぎてまったく歯が立たないというパターンもあります。
考えてコードを書くのに最適なのは、「少し努力すれば乗り越えられる」という、絶妙な課題がベストです。
あまりにも簡単すぎるものはやっても何にもならないし、難しすぎると心が折れて終了です。
自分のレベルにあった「少しむずかしい課題」を超えていくのが最も効率的に学習を進められます。
PyQはそういった意味でも絶妙な難易度の課題が出題されるので、考えながら、少しづつでも丁寧に課題をクリアしていくことで、成功体験を積み上げていくことができるようになっています。
この部分が、本だけで学習するのとは大きく違うポイントです。
「動いたああああ!」という小さな成功体験が最も「自分に刺さる」気がするんですよね。
ただ何かを読むだけとか聴くだけではなく、たいしたことじゃないんだけど、なんか動かせたという小さな体験が、手を動かし続ける原動力にきっとなってくれます。
これが、挫折をさせないPyQの優れた仕組みだと思ってます。
復習する
覚えていてほしいのは、一回やっただけで全て理解できないということです。
プログラミング初心者ならなおさらです。
もちろん内容によっては一度で理解できるものもありますが、当然ながらクエストを進めていくと高度になってくるので、理解できない部分も出てくると思います。
逆に一回で理解しようとすると、いつまで経ってもクエストやコースが終わらないです。
もしわからないところがあったら、かならずメモするなりしておき、後で考えます。
PyQはクエスト終了後に理解度とメモを残せるので、気になったことはとりあえず書いておき、あとで復習します。必要があれば何度も何度も。
そうすることで、理解していたつもりだけど理解していなかった部分が出てきたり、全くわからなかったコードが少しづつ「読める」ようになってきます。
学習記録って、残す行為そのものがめんどくさかったりするので、なかなか習慣化しないんですよね。PyQなら気軽にメモすることができるので、効率よく復習や振り返りができます。
2. PyQはPCとブラウザさえあればPython学習ができる
PyQはオンライン、かつ、ブラウザ上で学習できるサイトですが、学習に集中できる環境が揃っています。
Pythonを学習しようとして少しでも手を動かしたことがある人は知っているかもしれませんが、Pythonが実行できる環境を自分のPC上に作るのって結構めんどくさいです。
Pythonの実際の開発はPythonバージョンを複数使う場合があります。
そのため、Python2系と3系が同居できる環境を作っておく必要があるよね、とか、そういった話を含め、環境構築そのものが初心者にはハード過ぎて、Pythonに辿り着く前に挫折する可能性が高いです。
ハマると余裕で2,3日溶けます。
Qiitaとか見ながらやればできるよって話も事実ではあるんですが、環境構築っていろいろな前提や依存関係の上に成り立つという性質があるので、Qiitaの記事が書かれた時点ではそれでよかったけど今はもう違うとか、普通に発生します。
そのあたりの依存関係含め、いろいろと自力解決を求められます。
経験や知識があれば何とか出来るんですが、初心者がそれに対応するのはかなりキツいです。
一旦余計なことを考えるのはやめよう
最終的には環境構築含め理解したほうが良いのはもちろんなんですが、Pythonに触れる前に時間をかけ、挫折して結局何もできるようになりませんでしたという状態を避けるためにも一旦余計なことを考えないようにするべきです。
まずはPythonを覚えることに集中しましょう。
PyQならブラウザだけでPython環境が手に入ります。
まとめると、僕が個人的にPyQが優れていると思ったポイントは下記2点です。
- 成功体験を積み上げることで挫折する確率を下げる
- Pythonを学習することに集中できる。
PyQの料金は書籍1冊分とそうかわらない
では次に、PyQの料金についてです。
さすがに無料ではないですが、高くはありません。得られるものを考えると費用対効果はかなり高いと思います。
PyQには2つの料金プランが用意されています。
個人ライトプラン | 2,980円(税込)/月 |
---|---|
個人スタンダードプラン | 7,980円(税込)/月 |
2つのプランとも全コースを学習することができます。スタンダードプランさらに下記の特典があります。
- PyQ内にユーザーが質問として投稿した内容を閲覧できる
- プロが質問に答えてくれる
ライトプランは基本的に質問することができませんが、スタンダードプランはどうしてもわからない点や、納得のいかない点などを質問して、回答をもらうことができます。
また、他ユーザーが質問として投稿した内容を閲覧することが可能です。
この特典のメリットは確かに大きいです。やはりわからないところは出てくるものなので、それを質問できるのは強いです。
とはいえ、個人的にはライトプランでもいいのかなとは思います。
僕もライトプランです。ググればある程度のことはわかるので、どうしても質問したければ後でプランを変更すればいいです。
プランの変更はいつでも可能ですし、途中で一時休止をすることもできます。それにより学習状態がリセットされることはありません。
なので、来月はちょっと学習できなそうだなとか、そういったことがあれば一時休止をすることも可能です。
ライトプランであれば2,980円なので、技術書一冊とそう変わりません。
この「みんなのPython」、通称「みんpy」はPython入門の定番書と言われていて、非常に評判のいい書籍です。
確かにこれは優れた教材なのですが、僕はやはり「問題を解く」ことが初心者がプログラミングやPythonを習得するのに最も効率が良い方法だと思っています。
ブラウザさえあればPythonが学習でき、様々なコースと課題が用意されているPyQは、本だけでは得ることができない高い学習効果をもたらしてくれるはずです。
まとめ:PyQでPythonを効率よく挫折なく学習する
実際にPyQは結構支持されているようで、学習後の満足度調査で、94%の受講者から高い評価を得ているそうです。
開発元である、株式会社ビープラウドの代表の方が下記のように言っていました。
プログラミングを学び始めたあなたに、私のようなつらい思いをさせないために
かっこいいですね。
僕もまだまだ勉強中ではありますが、それなりにPythonを書けるようになりました。
繰り返しますが、Python、ひいてはプログラミングをある程度のレベルまで身につけるために必要なのは、やめないことです。
プログラミングを習得しようと思ったあの時の情熱を維持したまま続けていくにはどうしたらいいのか?
もちろん、自分なりに工夫してモチベーションを維持する努力は素晴らしいものではありますが、やはり個人的には「動いた」あの瞬間の喜びとか高揚感が何よりの原動力だと思います。
理解できないものを延々と続けていけるほど人って強くないので、小さな喜びと理解を積み重ねていける学習方法を選択するだけで、もともと持っていた目的を達成できる確率はかなり高くなります。
PyQならその環境が揃っていると個人的には思うので、これからPythonを学ぼうという人も、一度挫折してしまった人も、PyQでやめずに済むプログラミング学習を始めてみることをおすすめします。
今日は以上です。