読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

paiza(https://paiza.jp)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

初心者におすすめ!Python3を習得できる4つの学習法と11のコンテンツ

Webサービス紹介 プログラミング初心者 プログラミング学習 書籍紹介

f:id:paiza:20161204175218j:plain
Photo by Kathleen Franklin
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

先日、プログラミング言語別エンジニアの平均年収ランキングにて、Pythonが651万円で1位になったことが話題になりました。

www.itmedia.co.jp

Python機械学習人工知能分野、計算系の研究に適したライブラリが非常に多く、各分野の研究の盛り上がりとともにニーズが増えています。また、もちろんそういった研究分野だけでなくYouTubeInstagramDropbox等といったメジャーなWebサービスでも多く使用されています

Pythonは他のプログラミング言語に比べても、構文がシンプルで、一つの処理について誰がコードを書いても同じ書き方になりやすいという特徴があります。そのおかげで初心者でも比較的コードが書きやすく、また他人が書いたコードを読む際も読みやすい言語となっています。プログラミング自体が初心者な方の学習にも向いていますし、開発で使う際もメンテナンスがしやすくなっています。

ですので、「プログラミングしてみたい未経験者なんだけど、一体どの言語から勉強したらいいのかわからない……」という人には、個人的にはPython(もしくはRubyをおすすめしたいところです。

今回は、Python3系(3系って何?ということは後ほど説明します)の学習に役立つコンテンツをご紹介します。

Pythonのいいところ

◇誰が書いてもコードが同じになりやすく、可読性が高い

Pythonには、ざっくり言うと「やりかたはひとつ!」というポリシーがあります。一つの処理をコードで書くと、誰が書いても同じになりやすい、つまり他の人や昔の自分が書いたコードでも可読性が高く何をするコードなのかがわかりやすいというのがPythonの特徴です。

例えば、Pythonはブロックをインデントで表します。この記法だと他の言語だと書く人の趣味で位置がばらけたりする{}やendがないため、同じ処理であれば誰が書いても大体同じような書き方になり、読みやすくメンテナンスがしやすくなっています。(※他の言語での書き方に慣れてしまった方の中には「ブロックインデント読みづらい」と言う方もいらっしゃいますので、その辺は好みによります)このPythonならではの記法は本当にありがたいと思うので、Python未経験の方はぜひ実際に書いて体験していただきたいです……!

◇ライブラリやドキュメントが充実している

pythonは公式ドキュメントがかなり充実していて日本語にも対応していますので、多少他のプログラミング言語の経験がある人であれば、公式ドキュメントだけである程度マスターできてしまうんじゃないかと思います。

また標準ライブラリもかなり充実していろいろな便利機能が手厚く入っています。個人的には、Pythonはドキュメントやライブラリが他の言語に比べても整備が重視されている感じがするので、そういった点からも初心者の方にもおすすめできると思います。

また、Pythonには機械学習で役立つデータを処理するライブラリ(数値演算をするためのライブラリや図を作成するためのライブラリなど……)がそろっていて、呼び出したり組み合わせて処理したり……といったことがしやすいため、多くの人が機械学習で使っています。

■Python2系とPython3系について

学習する際に注意しなければならないのが、PythonにはPython2系とPython3系があるということです。

2、3というのはバージョンの違いなのですが、3系には後方互換性がない変更が入れられています。つまり、Python3のコードがPython2で動かせなかったり、また逆のパターンも起こり得る状態にあるので、学習を始める方は注意が必要です。

3系は、2系に対して様々な改善が施されています。最近は過渡期といった感じで主流なライブラリも3系への対応を始めており、いずれ3系が主流になっていくだろうという風潮があるため、「今から勉強するけどどっちがいいの?」という人は、3系を学習するのがよいでしょう。

ただ、まだ3系に対応していないパッケージも存在しているため、「実務でPythonを使うことになった/なりそう」という方は、確認してから学習を始めた方がよいでしょう。

また、入門者の方はとりあえず検索して出てきた書籍や記事で勉強を始めてしまうと、後になって「3系を勉強したかったのに、これ2系だった…」ということになりがちなので、どちらに対応しているのかよく確認して学習することをおすすめします。

それでは、これ以降はPython3系の勉強に役立つコンテンツを学習方法別にご紹介していきます。3系に特化した学習サービスや書籍はまだ充分に多いとは言えないのですが、ご自分に合った学習方法や興味がわいたところから挑戦してみてください。

■ドキュメントや説明を理解して、簡単な問題から解いていきたい!

プログラミング自体が未経験です!」という方は、まずはここから始めてみた方がよいでしょう。プログラミングの基礎を習得したりチュートリアル的な問題を解いたりすることで、理解を深めていきましょう。

◆1.Python公式ドキュメント(日本語訳)

料金:無料
f:id:paiza:20150407164816p:plain
いきなり公式ドキュメントというのは少しハードルが高いかもしれませんが、Pythonはドキュメントがかなり充実している言語ですので、押さえておいて学習中もすぐに確認できるようにしておくとよいでしょう

環境構築の段階から、各OSごとにしっかりした解説があります。
Python のセットアップと利用 — Python 3.5.2 ドキュメント
f:id:paiza:20150408150627p:plain

上記は日本語訳ですが、英語OKの方はもちろん本家の公式ドキュメントをご覧になるのもよいでしょう。翻訳される前の最新情報等も見ることができます。
f:id:paiza:20150407164510p:plain

◆2.paizaラーニング「Python入門編1・2」

料金:無料
f:id:paiza:20160307113923p:plain
paizaには、オンラインでプログラミング学習ができるパイザ・ラーニングという無料学習コンテンツがございます。そちらに、この度Python入門編1・2が追加されました。

Python入門編1・2は、「paizaの人気キャラクター霧島京子(cv:上間江望さん)がやさしく・楽しく・わかりやすく教えてくれる1本3分のレッスン動画」 や 「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、未経験者でも無理なく学習を続けることができます。

また、paizaラーニングでの学習を進めていくと、このように学習ステータスがドット絵のキャラクターで表示されるようになりました。

レッスンの進み具合によってキャラクターは進化していきますので、ぜひ最後までチャレンジしてみてくださいね!

◆3.まいけるすとーりー

料金:無料
f:id:paiza:20160202174730p:plain
MMORPG、PeriaChroniclesなどのゲームで使うためにPythonを勉強されている方のブログです。「講座などではなく備忘録のようなものです」とのことですが、充分Pythonを学ぶ初心者の方に広く役立つブログになっていると思います…!paiza.IOをブログパーツとしてご利用いただいているので、説明を読んですぐにその場でコーディングし、実行結果を確認することができます

■とにかくたくさん問題を解きたい!コードを書きたい!

基礎はわかっているのでPythonを使っていろいろ書いてみたい!」「とにかく問題を解いてみたい!」という方はこの辺から始めてみるとよいでしょう。問題をたくさん解くと、自分のプログラミングスキルのレベル感もわかります。

◆4.paizaのスキルチェック問題

料金:無料
f:id:paiza:20150205133638p:plain
基礎は習得できたはず!もう少し歯ごたえのある問題を解きたい!」という方は、paizaのスキルチェック問題に挑戦してみてください!

paizaでは、コーディングスキルをはかるコーディング問題の結果により、S・A・B・C・D・Eの6段階でランクが分かります。ぜひ問題を解いて、ランクアップを目指してみてください!プログラミング業務経験のない方でも、Dランクが取得できると、プログラミングの基礎的な概要は理解できているということになります。

◆5.CheckiO

料金:無料
f:id:paiza:20141014144603p:plain
ゲーム感覚でPythonが学べるCheckiOです。グラフィックも美しいです!ゲーム作りやWeb開発に役立つ知識を得られる問題が出題されるので、特に「PythonWebサービスを作れるようになりたい!」という方におすすめです。

◆6.paiza.IO

料金:無料
f:id:paiza:20150205121058p:plain
paiza.IOは、ブラウザ上でコードが書け、書いたコードをその場で実行出来るオンラインプログラム実行環境です。面倒な環境構築なしに、例えば本に載っていたコード、ネット上で他の人が公開していたコード等をオンラインで実行して結果を見ることができます。ブログパーツとして使えたり、GitHub(Gist)連携なんかもできますので、ぜひpaiza.IOでどんどんコードを書いてみてください!

詳しくはこちらの記事をごらんください。


24のプログラミング言語がブラウザで即実行できる『paiza.IO』 - paiza開発日誌

コードをリプライとして飛ばすと結果を返信してくれるツイッターアカウントで遊ぶこともできます。


Twitterでプログラムコードを実行!結果を返信してくれるpaiza_run - paiza開発日誌

■勉強会に行って勉強したい!

勉強会に行ってみたいな」という方は、検索・申し込みサービスを利用してみましょう。全てpythonで検索した際のリンクを貼っておりますが、もちろん全て他にもいろいろなジャンルの勉強会を検索できるサービスです。

◆7.connpass

f:id:paiza:20141205172032p:plain
connpassはTwitterFacebookと連携すると、友達がイベントを公開したり参加したときにお知らせをしてくれます。

◆8.dots

f:id:paiza:20141205173817p:plain
dots.はIT勉強会・セミナーなどエンジニアのためのイベント情報検索サービスということで、IT系イベントに絞った情報収集ができます。

◆9.シンプルIT勉強会リスト

f:id:paiza:20160307201549p:plain
シンプルIT勉強会リストはその名の通り、タブで選んだ言語に特化した勉強会を探せます。シンプル!

■書籍を購入して勉強したい!

初心者向けのPython3の書籍はまだまだ少ないので、少し勉強して「そろそろ初心者は脱出したかな?」という方や「他の言語での開発経験はあるので基礎的なことはわかっています」という方向けの書籍になります。

◆10.パーフェクトPython

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

定価:3,456円

ある程度自分でPythonの開発ができる初級~中級者になった方々に多く読まれているのが、こちらの『パーフェクトPython』です。

主にPython3系を中心に、文法だけでなく内部処理など開発全体に対してかなり掘り下げた内容となっています。

まったくの初心者が手を出すにはなかなか重い内容の書籍ではありますが、「そろそろ初心者は抜け出したかな」という方や、「他言語の開発経験があって、オブジェクト指向については理解できてます」という方にはお勧めの1冊です。

◆11.Dive Into Python 3 日本語版 [Kindle版]

Dive Into Python 3 日本語版

Dive Into Python 3 日本語版

定価:99円

電子書籍版のみになりますが、他の言語での開発経験があり、「とにかく3系を習得したい!」という方にはこちらもお勧めです。2系から3系への変化や補足的に書かれた書籍はいくつか存在しますが、こちらはほとんど3系についてのみ書かれています。

99円という充分な安さですが、さらに無料で読めてしまうWebサイトも存在しています。

Dive Into Python 3 日本語版

■まとめ

前述のとおり、Pythonは近年求人の需要も多く、またコードも可読性が高く効率的に開発することができますので、初心者の方にもぜひおすすめしたい言語です。


Python入門編の動画は全9チャプターありますが、初心者でも1時間~1時間半ほどあればレッスンを終えることができるかと思います。独学でPythonプログラミングを勉強したい皆様にお役立ていただければと思います。

また、ITエンジニアに特化した転職・学習サービスpaizaもあわせてよろしくお願いいたします!

paiza.jp





paizaではスキルのあるエンジニアがきちんと評価されるようにし、技術を追い続ける事が仕事につながるようにする事で、日本のITエンジニアの地位向上を図っていければと考えています。特にpaizaではWebサービス提供企業などでもとめられる、システム開発力や、テストケースを想定できるかの力(テストコードを書く力)などが問われる問題を出題しています。

テストの結果によりS,A,B,C,D,Eの6段階でランクが分かります。自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください。

http://paiza.jp

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編