この記事を読んで少しだけ人生を変えるのに必要な時間は約 12 分です。
近頃は小学生でもプログラミングを勉強するのは、当たり前になりました。
そんな昨今では、我々社会人にとってもプログラミングを学ぶことは今や特別なことではありませんね。もちろん理系や文系なども関係なく。
でもプログラミングが仕事でない、いわゆるノンプログラマーがどやってプログラミングを学べばよいのか?悩みをお持ちの方も少なくありません。
実はわたしもそうでした。
そこで今回は、そんなプログラミングを学びたいノンプログラマー社会人がどうやって効率よくかつ独学でプログラミング学習したらよいかについてご紹介します。
プログラミングで仕事を効率化して、らくらく定時退社する生活を目指しましょう。
わたし自身エンジニアですが、非ITのノンプログラマーです。なんならプログラミングを学んだのは、社会人になってからどころか管理職になってからなんです。
そんなわたしが、仕事をやりながら仕事で役に立つプログラミングを学んだその方法についてご紹介します。
非プログラマーのためのプログラミング学習のコツ
結論から言いますと次の順序で学ぶのが、最も効率が良いです。
効率の良いプログラミング学習の順序
- 超基礎を学ぶ
- 演習問題をやる
- 基礎+ちょっとした応用を学ぶ
- 応用を含んだ演習問題をやる
- 作りたいものを作ってみる
上記にかかる期間は、全くの初学者から始めて早ければ2ヶ月といったところでしょうか。
もちろん、ご自身のペースで進めばOKです。
ではそれぞれのステップでの、具体的な方法や役立つサービスについてご紹介します。
超基礎を学ぶにはProgateがいい
完全な初学者であるという前提で考えますと、まず入り口の「超基礎」はプログラミング学習のウェブサービスProgateから入るのが良いでしょう。
いま職業プログラマーをやっている方でも、実はProgateから入ったという方は少なくありません。
ブラウザ上で講義を受けながら、コードも書く仕組みになっているのでプログラミングのために何かインストールするなど環境構築をする必要がありあせん。
プログラミングを学ぶ際に最初につまずくのは、環境構築ですからこれは心強いです。
もちろん環境構築についてのレクチャーもありますので、学習の合間にチャレンジしてみればよいです。
Progateの特徴は、超初心者のために超基礎からコツコツ教えてくれること。
それに一つ一つのチャプターも短いので、初心者も飽きずに無理なく学習をすすめることができます。
まずは無料コースに登録して、雰囲気を掴んで見るのも良いでしょう。
月額コースでも1,000円程度です。ここでいくつもの言語を学ぶことができますが、まず初学者は一つの言語をしっかり学んで超基礎を固めてください。
私のオススメ言語は、Pythonです。比較的容易だけどかなり応用範囲が広い言語です。AI開発のような高度なことにも使われていますが、エクセル編集の自動化のようなすぐに使えるテーマでも役に立ちます。
超基礎の演習問題をやるならKindleUnlimitedがおすすめ
Progateで学んだ超基礎を定着させるのには、すこし自分の頭で考えながらコードを書くのが一番です。
とはいえ、いきなりなにか完成品を作り始めるのは敷居が高い。
それならば、演習問題をやってみましょう。
Amazonを覗いてい見れば、Python の演習問題集がたくさん掲載されています。
おすすめ方法はKindle Unlimitedの読み放題をつかって問題集を探すことです。
例えば私のオススメは、『Progateの次に学ぶ!Python演習問題100問パック』です。
100問と結構やりごたえがありますが、一つ一つのは非常に短いのでどんどんすすめることができます。
それに、実際によく使う基礎的コードがたくさん載っていますので自分でコードを考えるようになる際にとっても参考になります。
参考書は割と高価なものが多いのですが、超初心者のわたしたちにはまだ必要ありません。
読み放題の演習問題を気軽にこなしてみましょう。
Progateの次に学ぶ!Python演習問題100問パック!〜データ構造編〜
基礎+ちょっとした応用を学ぶには動画で学ぶUdemyがおすすめ
ここまで超基礎を身に着けたら、少し自分の作りたいものにフォーカスした学びをしてみましょう。
Pythonの場合だと、データサイエンスやWebスプレイピング、機械学習などできることはたくさんあります。
でもまずはじめは、自分の作りたいものに必要なテーマ1つに絞りましょう。
先々はいろいろなことにチャレンジしたいと考えていても、いまは1つ絞る方が結果的に近道になります。
わたしの場合は、仕事でデータを取り扱うことも多いのでデータサイエンスに分野を絞りました。
この段階の学習におすすめは、動画学習プラットフォームのUdemyです。
プログラミング学習のなかでも、テーマが絞られているので自分のテーマに合うものを選ぶことができます。
少しテーマが絞られると、周辺の知識が必要になってきます。
例えばデータサイエンスについてのプログラミングを学ぶのには、少しだけ統計の知識がといったように。
Udemyのコースの中には、テーマに係る周辺の基礎知識についてもプログラミングと一緒に紹介しているものもたくさんあります。
ですから初心者のうちは、周辺知識を調べる時間も節約できて便利です。
コースで紹介される知識だけで全てを網羅ことはできませんが、理解の取っ掛かりとしては十分な情報を与えてくれますよ。
それからUdemyは動画で学ぶスタイルなので、通勤時間を学習時間に活用できて時間の節約ができるのも利点ですね。
価格は1テーマ2,000円程度から選べるので、わりと気軽に試して見ることができます。
\Pythonの基礎から応用が学びたいならこちらのコースはがおすすめ/
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
関連記事:【スキマ時間活用】海外駐在員が動画でガッツリ学ぶ厳選11講座【Udemy】
応用の演習問題をやるこれもKindleUnlimited
応用についても、Kindleの演習問題で知識を定着させましょう。
Python のデータサイエンスを学んだのであれば、データや演算を扱うライブラリのPandasやNumpyについて演習をやってみてはどうでしょうか。
たとえば『実践式初めてのPython 問題集まとめ』では、データフレームの使い方について演習問題が紹介されています。
演習問題とはいえ、実践で本当によく使うものばかりですから初心者のうちは知識の定着と参考書としてとっても役に立ちます。
実践式はじめてのPython問題集まとめ.numpy pandas編: Python入門 問題集
作りたいものを作ってみる
ここまできたら、いよいよ自分の作りたいものを作ってみましょう。
わたしが最初に作ったのは、仕事で毎日毎日たくさん作られるエクセルファイルを一括でまとめるプログラムでした。
会社のアシスタントが、たくさんのエクセルファイルを毎日コピー&ペーストしてまとめている作業を自動化してあげることができました。
自宅で土日を使って四苦八苦しながらやっとできあがってみたら数行程度のシロモノでした。でも人に役に立つものが作れたという経験は本当に楽しいものでした。
初心者のうちは少し手間を掛けて
自分の作りたいものを作ってみるにあたって少しだけアドバイス。
始めのうちは、いきなりコードを書き始めないことです。まずどんな処理が必要か手書きで、日本語で書き出してみることです。
例えば次のようになイメージです
- 指定フォルダー内のファイル名をリストに取り込む
- ファイル名をリストから呼び出して1つずつファイルを開く
- データフレームのかたちを整える
- データフレーム同士をくっつける
- CSVに書き出す
というように。
要するに紙の上で「設計」してみるということですね。
ちょっとしたお助けアプリ
わたしが「設計」するときはよく付箋を使います。
付箋を使う理由は
- 全体がどんな処理の組み合わせか視覚的に見やすい
- 付箋の数だけ処理をコードを考えれば良いので迷いが減る
- 繰り返し使える処理がある事に気が付きやすい
からです。
本題から少しずれますが、付箋を使うならタブレットで使える3MのPostItアプリは便利ですよ。
紙の手書きの付箋でももちろん良いのですが、なくしてしまいます。
アプリならデータで残っていますから、後で見返してみたり組み替えてみることもできます。
メモ程度の付箋もあとで振り返ってみると、意外な気づきがあったりもしますよ。
プログラミング初心者が気をつけること
わたしたち初心者が独学でプログラミングを学ぶことは、決して無理なことではありません。
ただし独学で一番気をつけたいのが、途中で挫折してしまうこと。
挫折しないためには、できるだけ効率よく学ぶ必要があります。
そのために、初心者が気をつけることがいくつかあるのでご紹介します。
まずは作りたいもののイメージを持っておく
プログラミングを学んで最初に作りたいものはどんなものか、イメージだけでも持っておきましょう。この段階では、あまり難しく考えずとても簡単なものでよいのです。
作りたいものを実現させるために必要なことは何なのか、はじめはわかりませんがそれでも構いません。
超基礎を学ぶうちに、「あ、こういうことか!」と見えてくるものがあります。
ものによっては「こんなのプログラミングでなくても、エクセルなんかでできるじゃない?」みないな疑問も湧いてくるでしょうけど、そこはあえてプログラミングでやるんです。
エクセルでできることも、いちどプログラムで書けるようになるとそれ以上の世界がぐっと広がりますから。
まずは基礎固め、はじめから脇道に入りすぎない
プログラミングできることはたくさんあるし、学ぶこともたくさんあります。
ですがまずは、焦らずに基礎固めに時間をかけましょう。
「Hello Worldばっかりでつまらないよ。」「こんなの、なんの役に立つのよ。」と思うかもしれません。でも先々の理解を早めるためにも、まずは基礎を固めることです。
少し力がついたあとも同じです。応用分野に面白そうなものがたくさんあったとしても、次々と手を広げてはいけません。先述の通り、一つのテーマに絞ってすすめるほうが効率が良いです。
応用分野でも大事な要素は繰り返し使われますので、一つのテーマに通じているとテーマを変えたあとの理解も格段に早くなります。
全部覚えようとしない
基礎を固めたら、使ってみるということが大事です。
プログラミングって使ってなんぼなんですから覚えることより、使うことを優先しましょう。
使ってるうちに覚える、くらいで丁度よいです。
ましてや、暗記できるまでコーディングしないなんてもったいない。
わからないことは、いつだってGoogleに聞けばいいんですから。
Pythonのコーディングや学習のお助けサイト3選
わたしがよく利用するPythonのコーディングの際に参考にしたいサイトがありますのでご紹介しておきます。学習のお役に立ててください。
Let’sプログラミング
環境構築から始まり、基礎的構文、Pythonからのファイルの操作などサンプルコードと日本語での説明が豊富です。
teratail
エラーが出たけど、どこが悪いのかわからない。
独学の場合、一番困るのが周りに誰にも聞けないということです。そんなときは、teratailで聞いてしまいましょう。
初心者がつまずくところはだいたい同じですから、自分の悩みと全く同じ質問を見つけることもあります。
note.nkmk.me
自分のやりたいことは、このメソッドを使ってできそうなんだけど具体的にどう書けばわからない。初心者のうちは、モヤッとした疑問がよく湧いてきます。
こちらのサイトでは、1つのメソッドに対して複数のアプローチでやり方を説明してくれているのでとってもわかりやすく。自分のやりたいことに近いものをすぐに見つけることができます。
まとめ
プログラミングを独学するのは、ネットを使えば決して難しいことではなくなりました。
一方で、これだけ情報があふれるなかであれこれ迷いが出るのも仕方のないこと。
今回の記事では初学者が、プログラミングを学ぶにあたって気をつけることは次の3つを上げました。
作りたいもののイメージを持っておく
基礎を固めるまで脇道に入らない
全部覚えようとしない
これを踏まえて、学習の順番は次のようになります。
- 超基礎を学ぶ おすすめはProgate
- 演習問題をやる おすすめはKindle unlimited
- 基礎+ちょっとした応用を学ぶ おすすめは Udemy
- 応用を含んだ演習問題をやる おすすめはKindle unlimited
- 作りたいものを作ってみる
いちど作ったプログラムは、もちろん何度でも使えます。
コードも使いまわしができます。その結果、積み上げ式に自分のツールが増えることで仕事の効率が上がっていきます。
プログラミングの効果は、初心者のうちからすぐに感じることができますから是非チャレンジしてみてください。