未経験プログラマーの雑記

元個別指導塾運営者、現プログラマーによるブログです。教育や自身の学びについて発信していきます。

【プログラミング学習】何となく気になる人にオススメの学習方法

本文約4500字

およそ9分〜10分で読み終わる内容です

 

・はじめに
 「プログラミング学習必修化!」
「小学生のあこがれの職業の上位にシステムエンジニア!」
「AIで人の仕事が奪われる!」
などなど、世間ではプログラミングに関する様々な話題があふれていますよね。
 そんなわけで、プログラミングに全く関わりが無い人でも、
 
「プログラミングってどんなことするんだろう」
 
とちょっと興味を持つタイミングってあると思うんですが、
 
「別にプログラマーになりたいわけじゃないし」
「別に何か自分で作りたいわけじゃないし」
「どうせ自分には理解出来ないだろうし」
 
というような、せっかくの興味を台無しにしてしまう感情も、同時に自分の中でわいてきますよね。
 
今回はそういう方が
 
「プログラミングって意外と簡単かもしれない」
「自分もちょっとやってみよう」
 
と思えるように、簡単なプログラミングの文法の紹介と、勉強するためにお勧めのサイトをご紹介致します。
 
1.     自己紹介
2.     プログラミングを学ぶメリット
3.     プログラミング言語の種類と文法の一例
4.     お勧めの学習サイト
 
 
1.自己紹介(飛ばしても大丈夫です)
・現役プログラマー(1年目)
・前職はプログラミングとは無縁な塾スタッフ
・プログラミングを学び始めて10か月
・私立文系学部卒
・プログラミングスクールなどに通った経験無し
 
だいたいこんな感じです。また、僕自身「こういうことがやりたい」という目的意識をもってプログラミング学習を始めたのではなく、「なんか面白そう」「出来たらかっこいい」「仕事で楽出来そう」「儲かりそう」という、この上なく頭の悪い動機から勉強し始めました!(笑)
 
今では実務経験も積みつつ自分で勉強する中で「こういうもの作ってみたいな」「こんなことの役に立てたらいいな」というイメージがわいてきたので、最初は目的とか難しく考えず、何となくやってみたら良いと思います!
 
 
2.プログラミングを学ぶメリット
「何となくやるって言っても、そこまで暇じゃないし、メリットが無いとやる気にならない」という人が多いですよね。当然ですよね。僕みたいに後先考えずに動く人の方が変です。僕と同じ、「頭がちょっと変な人」は読み飛ばしてください。
 
僕と違って賢くて冷静な人のために、ざっくりメリットをまとめると
・1つの大きな課題をたくさんの小さな課題に分解する力がつく
・分解した小さな課題を順序立てて解決していく力がつく
・課題を解決するための方法を自己学習する力がつく
・作業の自動化に繋がる
 
こんな感じでしょうか。
3つめまではいわゆる「プログラミング的思考力」と言い換えられます。(僕はそういう短くまとまった字面ばかり広まって、中身が浸透しているか怪しい言葉は出来るだけ使いたくないので、あえて分解し、文で表現しました。)
 
特に最後に書いた「作業の自動化」については、おそらく大半の人が、少しプログラミングについての知識を身に着けるだけですぐ実現出来る、大きなメリットだと思います。
 
「日々繰り返し作業が多く、それに時間がかかっている」
「時間がかかるというほどではないけど、単調作業のわりに注意力が必要でミスが起こりやすい」
 
こんな状況の人には本当にお勧めです。
 
3.プログラミング言語の種類と文法の一例
 
さて、プログラミング言語と一口に言っても、たくさんあります。
PythonC言語C#javaSQL、Go、RubyPHP、HTML、CSS
 
「なんでそんなにいっぱいあるの!?」
と言われると、
「それぞれに得意不得意、文法の違いがあり、必要に応じて使い分けているから」
です。
 
ただ、プログラミング言語ごとに違いはあれど共通点も多く、基本となる文法も少し見た目が違うだけで、考え方は同じ、ということが多いです。(HTMLとSQLは用途が限定されているのでかなり特徴的ですが)
 
様々あるプログラミング言語の中で、以下2つを最初に学ぶことをお勧めします。
1.     VBA
2.     Python
 
VBAとはMicrosoft officeのWordやExcelの「マクロ」という機能を作るための言語です。
業務効率化のために、まずマクロは欠かせません。
 
「マクロ」という言葉を聞いたことが無い人に説明すると、Excelに記録されているデータに対し、毎回決まった処理を行う場合、その処理をいつでも繰り返し使えるように保存しておいたものがマクロです。
 
例えるなら、決まった材料突っ込めば決まった料理が自動で出来る機械、みたいなもんですね。めっちゃほしいので誰か作ってください。
 
Excelを使う仕事(作業)はめちゃくちゃ多いので、実用的ということを考えると、VBAがダントツでお勧めです。
 
VBAに関しては文法の例を示すよりも「簡単なマクロの作り方」を見ていただく方がより「思ったより簡単かも」と思っていただけるはずなので、こちらについては別記事で解説させていただきます。
 
次にお勧めなのがPython(パイソン)です。お勧めする理由は「文法・単語がシンプルだから」です。
 
例えば、プログラムには「もしこの値がこれの場合はこうする」という条件分岐を書くことが多いのですが、Pythonの場合、
age = 20
if age < 20:
    print(“成長途中って一番楽しいですよね”)
elif age == 20:
    print(“成人おめでとうございます!”)
else:
    print(“大人として責任感を持って行動しましょう”)
 
例えばこんな感じの書き方になります。
まず最初に「age」という「変数」に「自分の年齢となる数字」を代入しています。これで「age」はこのプログラム内では「20」という意味を持ちます。変数とは数字や文字を入れておくためのもので、「age」じゃなくても「toshi」とか「a」とか、何でも良いです。わかりやすくしておくために英語で表記されることが多いですが。
 
次にifの部分で条件分岐です。「age < 20」は「ageが20より小さかったら」という意味です。今回はこれに該当しないので。この下のprint(“成長途中って一番楽しいですよね”)という部分は無視します。
 
次にelifという文です。elifはifの部分の条件に一致しなかった場合かつ、他の条件を指定するときに使います。今回は「ageが20と同じ」が条件です。その通りなので、その下のprint(“成人おめでとうございます!”)を使用します。
print()は()内のものを表示する役割を持っています。そのため、このプログラムを実行すると、毎回「成人おめでとうございます!」と表示されます。
 
最後のelseからの部分は、上記の分岐以外のすべての場合に使用されます。今回であれば、「ageが20より小さい」「ageが20と同じ」以外のすべてです。ageには必ず数字が代入されるという前提なら、「ageが20より大きい」場合、「大人として責任感を持って行動しましょう」と表示されます。余計なお世話ですよね。
 
プログラミングでよく使用するのはこの分岐であるif文と、繰り返しを表現するfor文ですので、ここまでの説明で理解出来た人であれば、独学でプログラミングを始めても、基本的な文法で躓くことはないはずです。
 
4.お勧めの学習サイト
前提としてですが、プログラミングを独学する際、本での学習はあまりお勧め出来ません。プログラミングを出来るようになりたければ、実際にプログラムを書くことが絶対に必要ですので、「本を読んで理解しよう」は絶対にやめましょう。
 
基本となる文法を理解した上で、「こういうものを作りたい」「この部分についてもっと深く知りたい」という場合は本での学習をお勧めしますが、最初はネットで出来る学習サイト、出来ればブラウザ上でプログラムを実行出来るものを活用しましょう。
 
1.Progate(一部無料、全コンテンツを使いたい場合は月額1080円)

Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
 プログラミング学習サイトとしてはおなじみ。僕のブログでもたびたび登場します。インプットすべき知識はスライドで解説され、解説された内容をもとに、実際にプログラムを書いて正しい結果になれば次に進める、というものです。
 
 プログラミング学習を始めるにあたり、地味に壁となるのが「プログラミングをする準備をすること」です。プログラミングを行うには、テキストエディタと呼ばれるプログラムを書くためのソフトや、使用する言語に必要なデータ、パソコンの設定など色々と必要な手順がありますが、Progateで学習する分にはそうした手間が一切かからず、すぐにプログラミングを学び始めることが出来ます。
 
 かわいらしいキャラクターが出てきて会話形式で解説されているので、小さいお子様や女性でもとっつきやすい作りになっています。
 
 VBAについてはこちらでは学ぶことが出来ませんが、Pythonをはじめとして、多くの言語に対応していること、実際に自分のパソコン上に開発環境を整える場合の手順などもわかりやすく解説されており、「プログラミングを始めるならProgate」と自信を持ってお勧めします。
 
 スマホアプリ版もあり、ブラウザ版と違って文字を打ち込むのではなく選択肢から選び、正しく並べていくような回答形式になっているので、こちらは小学生でも取り組みやすいくらいのレベルだと思います。(実際に打ち込まない分、成長は緩やかだと思いますが)
 
 
2.ドットインストール(一部無料、プレミアム会員になると全コンテンツ利用可能。月額1080円)

https://dotinstall.com/
こちらも部分的に有料のコンテンツですが、Progateと違い、短い3分ほどの解説動画でインプットし、それを参考に自分でプログラムを書いてみる、というものです。こちらはVBAにも対応した講座があります。
 
Progateと違いテキストエディタなど開発環境を最低限整える必要はありますが、もしVBAの学習のみに限定するなら、VBAのコンテンツはすべて無料で利用出来ますし、ExcelがあればVBAでのプログラミングは可能なので、心配いりません。
 
3.paiza(一部無料、1か月600円~1078円で全てのコンテンツ利用可)

ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】
こちらも一部無料のサービスです。Progate同様、僕のお勧めであり、ブログにたびたび登場します。
 
Progate同様VBAは学習できませんが、Pythonの講座は無料会員でもすべて利用出来、ブラウザ上でプログラムを書いて実行することが出来るので、Progate同様「とりあえずプログラミングに触れたい」という方にお勧めです。
 
また、paiza.ioという、ブラウザ上でプログラムを書き、実行出来るサービスも無料で使えるため、「自分が考えたプログラムを動かしてみたい」という人で開発環境を整えるのに手間取るようであれば、一旦こちらで試してみることをお勧めします。
 
そして最近リリースされた「コードクロニクル」をはじめとして、「プログラミング学習をしながら遊ぶことが出来るコンテンツ」が多数そろっています。
中学生、高校生が気軽にプログラミングに取り組むためのきっかけとして、十二分に活躍するはずです。
 
おわりに
プログラミングは僕もまだまだ勉強途中でわからないことだらけです。「実用的なスキル」というのももちろんそうなんですが、「新しく何かが出来るようになる楽しさ」をここまで実感出来ることもなかなかないんじゃないか、と思います。
 
ご紹介した通り、無料でも多くのことが学べるサイトはたくさんありますし、有料サービスを受けるにしても月々1000円程度でここまで出来るのか!と驚くものばかりです。
 
ここまで読んだ忍耐力のある真面目な人なら、というかここまで読んでるってことは絶対プログラミングにかなり興味あるはずなので、今すぐProgateかドットインストールかpaizaの会員登録を済ませて、実際にやってみてください!面白いので!!

はてなブログ特別お題キャンペーン #学び応援WEEK

はてなブログ特別お題キャンペーン #学び応援WEEK
by ギノ