Photo by Kathleen Franklin
こんにちは。谷口です。
先日、プログラミング言語別エンジニアの平均年収ランキングにて、Pythonが651万円で1位になったことが話題になりました。
Pythonは機械学習、人工知能分野、計算系の研究に適したライブラリが非常に多く、各分野の研究の盛り上がりとともにニーズが増えています。また、もちろんそういった研究分野だけでなくYouTubeやInstagram、Dropbox等といったメジャーな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公式ドキュメント(日本語訳)
料金:無料
いきなり公式ドキュメントというのは少しハードルが高いかもしれませんが、Pythonはドキュメントがかなり充実している言語ですので、押さえておいて学習中もすぐに確認できるようにしておくとよいでしょう
環境構築の段階から、各OSごとにしっかりした解説があります。
Python のセットアップと利用 — Python 3.9.4 ドキュメント
上記は日本語訳ですが、英語OKの方はもちろん本家の公式ドキュメントをご覧になるのもよいでしょう。翻訳される前の最新情報等も見ることができます。
◆2.paizaラーニング
料金:無料
paizaには、オンラインでプログラミング学習ができるpaizaラーニングという無料学習コンテンツがございます。そちらに、このたび「Python入門編」が追加されました。
Python入門編は、「paizaの人気キャラクター霧島京子(cv:上間江望さん)がやさしく・楽しく・わかりやすく教えてくれる1本3分のレッスン動画」 や 「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、未経験者でも無理なく学習を続けることができます。
また、paizaラーニングでの学習を進めていくと、このように学習ステータスがドット絵のキャラクターで表示されるようになりました。
◆3.まいけるすとーりー
料金:無料
MMORPG、PeriaChroniclesなどのゲームで使うためにPythonを勉強されている方のブログです。「講座などではなく備忘録のようなものです」とのことですが、充分Pythonを学ぶ初心者の方に広く役立つブログになっていると思います…!paiza.IOをブログパーツとしてご利用いただいているので、説明を読んですぐにその場でコーディングし、実行結果を確認することができます。
■とにかくたくさん問題を解きたい!コードを書きたい!
「基礎はわかっているのでPythonを使っていろいろ書いてみたい!」「とにかく問題を解いてみたい!」という方はこの辺から始めてみるとよいでしょう。問題をたくさん解くと、自分のプログラミングスキルのレベル感もわかります。
◆4.paizaのスキルチェック問題
料金:無料
「基礎は習得できたはず!もう少し歯ごたえのある問題を解きたい!」という方は、paizaのスキルチェック問題に挑戦してみてください!
paizaでは、コーディングスキルをはかるコーディング問題の結果により、S・A・B・C・D・Eの6段階でランクが分かります。ぜひ問題を解いて、ランクアップを目指してみてください!プログラミング業務経験のない方でも、Dランクが取得できると、プログラミングの基礎的な概要は理解できているということになります。
◆5.CheckiO
料金:無料
ゲーム感覚でPythonが学べるCheckiOです。グラフィックも美しいです!ゲーム作りやWeb開発に役立つ知識を得られる問題が出題されるので、特に「PythonでWebサービスを作れるようになりたい!」という方におすすめです。
◆6.paiza.IO
料金:無料
paiza.IOは、ブラウザ上でコードが書け、書いたコードをその場で実行出来るオンラインプログラム実行環境です。面倒な環境構築なしに、例えば本に載っていたコード、ネット上で他の人が公開していたコード等をオンラインで実行して結果を見ることができます。ブログパーツとして使えたり、GitHub(Gist)連携なんかもできますので、ぜひpaiza.IOでどんどんコードを書いてみてください!
詳しくはこちらの記事をごらんください。
24のプログラミング言語がブラウザで即実行できる『paiza.IO』 - paiza開発日誌
コードをリプライとして飛ばすと結果を返信してくれるツイッターアカウントで遊ぶこともできます。
■勉強会に行って勉強したい!
「勉強会に行ってみたいな」という方は、検索・申し込みサービスを利用してみましょう。全てpythonで検索した際のリンクを貼っておりますが、もちろん全て他にもいろいろなジャンルの勉強会を検索できるサービスです。
◆7.connpass
connpassはTwitterやFacebookと連携すると、友達がイベントを公開したり参加したときにお知らせをしてくれます。
◆8.dots
dots.はIT勉強会・セミナーなどエンジニアのためのイベント情報検索サービスということで、IT系イベントに絞った情報収集ができます。
◆9.シンプルIT勉強会リスト
シンプルIT勉強会リストはその名の通り、タブで選んだ言語に特化した勉強会を探せます。シンプル!
■書籍を購入して勉強したい!
初心者向けのPython3の書籍はまだまだ少ないので、少し勉強して「そろそろ初心者は脱出したかな?」という方や「他の言語での開発経験はあるので基礎的なことはわかっています」という方向けの書籍になります。
◆10.パーフェクトPython
定価:3,456円ある程度自分でPythonの開発ができる初級~中級者になった方々に多く読まれているのが、こちらの『パーフェクトPython』です。
主にPython3系を中心に、文法だけでなく内部処理など開発全体に対してかなり掘り下げた内容となっています。
まったくの初心者が手を出すにはなかなか重い内容の書籍ではありますが、「そろそろ初心者は抜け出したかな」という方や、「他言語の開発経験があって、オブジェクト指向については理解できてます」という方にはお勧めの1冊です。
◆11.Dive Into Python 3 日本語版 [Kindle版]
定価:99円電子書籍版のみになりますが、他の言語での開発経験があり、「とにかく3系を習得したい!」という方にはこちらもお勧めです。2系から3系への変化や補足的に書かれた書籍はいくつか存在しますが、こちらはほとんど3系についてのみ書かれています。
99円という充分な安さですが、さらに無料で読めてしまうWebサイトも存在しています。
■まとめ
前述のとおり、Pythonは近年求人の需要も多く、またコードも可読性が高く効率的に開発することができますので、初心者の方にもぜひおすすめしたい言語です。
「Python入門編」は無料で公開しておりますので、ぜひ独学でPythonプログラミングを勉強したい皆様にお役立ていただければと思います。
また、ITエンジニアに特化した転職・学習サービスpaizaもあわせてよろしくお願いいたします!
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。