【独学でも挫折なし!】Pythonプログラミング学習方法と勉強のコツ

この記事は、Pythonプログラミング学習におけるさまざまなハードルを乗り越えて、プログラミング学習を成功させるためのノウハウについて記載しています。主にPython言語について述べていますが、他の言語学習者にとっても有用な部分があると考えていますのでぜひ参考にしてみてください。

(参考)なぜPythonが初学者におすすか?

Pythonはコード量が少なくさまざまなことが行えるプログラミング言語です。文法もシンプルです。さらに、Pythonユーザーは世界的に多く、便利なライブラリが開発されています。そして、データサイエンス・AI開発の際によく用いられる旬な言語です。これからプログラミングを始めようとする人におすすめです。

プログラミングの独学は難しい

プログラミング学習は、ダイエットと非常によく似ています。共通点は、「続かない」ということです。筆者自身、独学でプログラミングを学びましだが、一人でプログラミングを学ぶということは相当に困難だと感じました。だからといって、人に教わればこの問題を解決できるかというと、そう簡単ではありません。

ダイエットのためにジムに行くことををイメージしてください。ジムでトレーナーに指導を受けたとしても、それでもやはりダイエットは肉体的にも精神的にもきついものです。結局は運動をしたり、食事を我慢したりすることは避けられません。

たとえプログラミングを人に教わったとしても、乗り越えなければならないハードルはたくさんあるのです。

初心者がつまづくプログラミング学習の3つの壁

本記事執筆者による話題の新刊!発売即重版!

プログラミング学習者の前に立ちはだかる大きな壁は、次の3つです。

①「環境構築」という壁
②「プログラミングの目的がない」という壁
③「覚えられない」という壁

この3つのハードルを乗り越えれば、あなたのプログラミング学習は成功に向かっていくことになります。ここからはこれらの壁を打ち破るための方法について述べ、あまり知られていないとっておきの学習法について述べます。

「開発環境構築」という壁

そもそも、プログラミング言語をパソコンで使えるようにするということ自体が大きな壁です。開発環境をパソコン内に作ることに困難が潜んでいます。「プログラミングを始めるならPython。Pythonは文法も簡単!」という声をよく聞きます。その声にしたがってPythonをPCに入れようとすると、実際にプログラミングを始められるまでにエラーが多発します。筆者もパスを通すなどの作業で苦労した記憶があります。「PythonをインストールするならAnacondaというデータサイエンス用の環境構築プラットフォームを入れた方が簡単」という話もあり、「どうやてPythonをPCにインストールしようか?」と初学者は悩むことになります。そして筆者は、AnacondaでもPythonのインストールに苦労したということを述べておきたいと思います。

したがって、もしあなたが既に何らかの言語の環境構築を終えているなら、大きな壁を乗り越えたことになります。おめでとうございます!ぜひこの段階で自信を持ってください。

絶対挫折しないPython環境の構築方法

実はPythonを簡単に使用するための裏技があります。それは、Google ColaboratoryというGoogleが提供している無料のサービスを利用することです。なんと、パソコンにインストール不要で、インターネットブラウザからすぐに利用できます。あなたが行うことは、多くの人が既に保有しているGoogleアカウントで以下のサイトからログインするだけです。

Google Colaboratoryログイン

便利なライブラリがあらかじめインストールされており、自分で入れる必要がないのもメリットです。しかも、計算を速く実行するためのGPUも一部無料で使わせてくれます。これを提供してくれているGoogleには心から敬意を払いたいと思います。環境構築の壁はGoogle Colaboratoryで乗り越えることができました。自分のパソコンにPythonをインストールするのは、Google ColaboratoryでPythonをある程度使いこなしてからでよいと思います。Pythonに慣れた頃には、「よし!自分のパソコンにインストールするぞ!」と思えているはずです。

「プログラミングの目的がない」という壁

次に、「プログラミングの目的がない」という2つ目の壁について考えます。目的がなければ、次第にプログラミング学習からは足が遠のいていきます。やはりこれもダイエットと同じで、「夏までにやせる!」とか「59kgまでやせる!」など目標がなければ美味しい食べ物の誘惑に負けてしまいます。やはり、プログラミングにも学ぶ目的が必要です。

プログラミング学習者に推奨したい学習目的は、以下の3つです。

①データサイエンス・AI
②パソコン作業の自動化
③ゲーム・アプリ開発

目的①:データサイエンス・AI

せっかくPythonを学ぶのですから、データサイエンスやAIを学ぶという選択肢もありです。データサイエンスは、データから知見を得るための科学全般のことを言います。データ分析という言葉の方がわかりやすいかもしれません。なぜデータサイエンスとAIがよく同じ文脈で語られるかというと、データ分析もAIも機械学習という同じ技術に支えられているからです。機械学習は、データからルールやパターンを発見できるのです。Pythonでは、この機械学習を簡単に実行できるライブラリーが豊富にあります。たとえば、scikit-learnという果てしなく便利な機械学習のライブラリーが存在します。あなたの仕事においても役立つ瞬間が訪れるはずですので、Pythonと同時にぜひ機械学習を学びましょう!

目的②:パソコン作業の自動化

今、RPAというものがブームになっています。RPAとはRobotic Process Automationの頭文字をとったものであり、ロボットによる自動化のことです。ロボットといっても、実態は、人間が担っていたパソコンでのマウスやキーボード操作を自動化できるソフトウェアのことです。RPAにはソフトが多く販売されており、世界規模でシェアの高い『UiPath』や『NTT』による国産の『WinActor』などがあります。これらは年間で数十万から数百万円のコストがかかるのですが、Microsoft社がWindows10ユーザーを対象にRPAソフト『Power Automate Desktop』の無償提供に踏み切りました。RPAはofficeソフトやインターネットブラウザとの連携が多くなるのですが、そのofficeやブラウザを作っているMicrosoft社による強力なRPAソフトをタダで利用できるのです。今後のRPA市場は大きく変わっていくと予想されます。

さて、そんなRPAですが、なんとPythonでRPAを実装できます。筆者はPythonを用いてさまざまなPC作業を自動化しています。実はこの記事を書くときもそうです。この記事を書くために筆者が行っている自動化は以下のようになります。

①ブラウザを立ち上げ、ウェブサイト管理画面にログインし、新規記事投稿の画面を開く
②記事を書くための参考資料としてフォルダやWordファイルを開く

ちなみに、セキュリティの観点からパスワード入力だけは自動化せずその都度打つようにしています。

それ以外にも、仕事に応じてロボット(RPAを実装したPythonファイル)を作っておき、ファイルを実行すれば仕事にすぐ取りかかれる環境構築をしています。

目的③:ゲーム・アプリ開発

Pythonはさまざまなことが可能な汎用プログラミング言語です。したがって、みなさんがスマートフォンで体験しているようなゲームやアプリを開発することもできます。特に、まだ就職していない学生の方におすすめです。ただ、本格的なゲーム開発を行うには、C++やC#、Java、Ruby、JavaScriptなどの言語の方が用いられることが多いです。したがって、「将来はゲーム開発を行いたい」と思っている人にはPythonをすすめません。一方で、「ゲーム開発の道に進むつもりはないが、とにかくプログラミングの勉強をしたい」という人にはPythonで問題ありません。Pythonはゲーム開発以外にも多くのことができる優れた言語です。

「覚えられない」という壁

プログラミング初学者は、プログラミングのコードを見て、「こんなにもたくさん英単語のようなものの使い方を覚えないといけないのか」と圧倒されることになります。しかし安心してください。一部の記憶の天才を除き、人間は覚えられないのが普通です。そして、プログラマーと呼ばれる人たちが、コードを頭で記憶しているかといえば、そうではありません。最近、「9年たってもforループをGoogle検索している」というプログラマーの記事が話題になりました。そして多くのプログラマーがそれに共感しています。実は、そういうプログラマーは意外と多いのです。それでもプログラマーとしてやっていけるのです。

だから安心してください。コードをすべて覚える必要はないのです。忘れたらGoogle検索すればいいのです。

知識の量より経験の量が鍵

重要なことは、細かいコードを覚えることではなく、経験を重ねることです。forループでコードを走らせたことがあれば、細かい使い方を忘れてもまたGoogle検索などで調べて使うことができます。プログラミング学習では、便利なライブラリーの使い方を勉強することが多いです。そうしたライブラリーに触れていると、細かい使い方は忘れても手順の大まかな流れが自然と脳内に残っているものです。したがって、忘れてもまたスムーズにライブラリーを使えるようになります。コードを忘れていいのです。安心して学習を継続してください。

自分用チートシートでプログラミング学習は必ず身につく!

ただ、いちいちGoogle検索するよりも、良い方法があります。それが、自分用のチートシートを作ることです。チートシートとは、カンニングペーパー(通称、カンペ)のことです。プログラミング学習をしていて成功したコード、エラーの解決方法などをメモとして残しておくのです。

すると、仮に1年後であっても、「そういえば以前同じことをやった記憶があるな」とチートシートを見てコードを引っ張ってきます。エラーを克服するなど、自分の苦労体験が残っているので、エラーに陥らずにスムーズにコードを実行することができます。参考になったサイトのURLなどもメモしておきます。以下の画像が、筆者が自分用に作っているチートシートです。

PowerPointを使って作成しており、現在は200ページほどになっています(PowerPointは検索性に劣るので、違うツールでまったく問題ありません。筆者はデザイン性を意識してPowerPointを使用しています)。これがあるからこそ、筆者は安心してコードを忘れられます。過去に走らせて成功したコード、エラーの解決方法はすべてこのチートシートに掲載されています。今となっては筆者の大きな財産となっています。Google検索だとたまに自分の開発環境ではうまくいかないコードなどがありますので、Google検索よりも自分のチートシートを信用しています。

筆者以外にも、チートシートを活用しているプログラマーは多いです。ぜひ自分用のチートシートを作り、プログラミング資産を築いてください。

習慣の科学と学習の継続

プログラミングだけでなく、何事においても習慣を作ることが重要です。それでは習慣にするためにどうすればいいのかを、習慣に関する科学の観点からみていきます。プログラミング学習以外にも使える考え方です。

習慣化の鍵は「手間をなくす」こと

習慣化の大きな原則は、継続したい場合は手間や面倒をなくし、逆に習慣をやめたい場合は手間を増やすことです。たとえば、毎朝ランニングをすることを考えます。毎朝起きてランニングをするのは大変ですよね。そのためにどうするかというと、「手間を減らす」を行い、「ランニングウェアを着て寝る」のです。そうすれば朝起きてベッドを出て、そのまま玄関に向かい走り出すことができます。

手間が増えると習慣をやめる方向に力が働きます。たとえば、タバコをやめたい男性がいるとします。妻からも「やめて」と言われていました。自分一人ではついタバコを買ってしまうので、妻にも協力を頼むことにしました。そこで、「タバコを買うときは妻に『今からタバコを買います』というLINEを送る」というルールを設定することにしました。この手間を追加すれば、つい誘惑に負けてタバコを買うことが少なくなるはずです。

習慣にしたい場合は手間をなくし、習慣をやめたい場合は手間を増やす、というのが基本の考え方になります。

プログラミング学習においても、学習に向かう手間を少なくしてください。たとえば極端な例ですが、パソコンは遅かれ早かれ起動に時間がかかるものです。つまり、パソコンの前に座って電源をつけ、しばらくはじっと待つことになります。プログラミング学習のために、「パソコンの電源を切らない」というのも手です。パソコンは意外と電気代がかからなかったり、電源のオンオフがパソコンに負担をかけるため、意外と電源をつけっぱなしにしても問題なかったりします。これは極端な例ですが、プログラミング学習を阻む障害を可能な限り少なくしてください。

必ず、学習を続けられた日数をメモする

面倒なことを習慣にするためには、ルールを守って継続できた日数を必ずメモします。メモを取ることが大事です。筆者はカレンダーアプリを使ってメモしています。たとえば、月水金に勉強すると決めたとします。月曜日に学習を終えたら、「1日目成功」とカレンダーアプリにメモします。水曜日も勉強をすれば「2日連続成功」、金曜日、次の月曜日もうまくいけば、それぞれ「3日連続成功」、「4日連続成功」とします。こうして連続の日数が増えていくと、どんどん自信になり、さらには連続成功の記録を途絶えさせたくないので、進んで継続できるようになります。あなたは「189日連続成功」という状態になったとして、この記録を途絶えさせられますか? 筆者ならどんなに忙しくても継続したい誘惑に駆られます。学習の継続をメモに残すことは、モチベーションを高めるために非常に使えるテクニックです。

まとめ

ここまで、Pythonプログラミング学習を挫折なく成功させるための方法についてまとめてきました。この記事でみなさんのプログラミング学習のお役に立てれば幸いです。これからも頑張っていきましょう!ここまで長文をお読みいただきありがとうございました。またお会いしましょう!

スポンサードリンク
おすすめの記事