【プログラミングスクール】はじめてプログラミングの勉強をするときのノウハウ

【プログラミングスクール】はじめてプログラミングの勉強をするときのノウハウ

最近、プログラミングの学習方法の質問をよく受ける。
いきなりプロダクトを作るのは、近年Webページを見ればそれなりに作れるが後述するが、お勧めできないし、効率が悪い。
そこで、プログラミング初学者の学習ロードマップをざざっと備忘録的に書き記していこうと思う。

出典:http://www.photo-ac.com/

プログラミングを習得するためのノウハウ

プログラミングを習得する敷居は高くないが間違うと高くなる

最近のプログラミングブームにより、プログラミングをゼロから始めようという人が多くなった。これは良い傾向だと思う。プログラミングは敷居が高く学習するのに非常に時間がかかるので、毛嫌いされていた感がある。それが払しょくされたのはうれしいことだ。

実際、近年、Pythonをはじめ非常に扱いやすい、理解しやすい言語が登場していて学習難易度も低くなったのではないだろうか。
しかし、やはりというか初学者がハマるのは同じで、どこから手を付ければいいのかわからないのが現状のようだ。

そこでいろいろな商材が登場し、ロードマップを敷いている。いろいろ買って勉強してみるもおそらく挫折するんじゃないだろうか。

私は思うのだが、プログラミングは総合力だからだ。

ちゃんと勉強するなら情報処理技術の勉強をすべきだ。国家試験の基本情報技術者試験などちゃんと受かるレベルまで勉強してから取り組むとすんなり頭に入るだろう。
妥協したとしても、ITパスポートくらいなら100時間も勉強しなくても、過去問サイトをやるだけでも大丈夫だと思う。

今のプログラミング技術ができるまでの流れを知っている人と知らない人とでは、後のプログラミングコードの記述が違ってくる。
今は、分からなくて面倒な作業だが、バグだらけのアプリを提出して多くの人に迷惑をかけることを思えば安い話かと思う。

つまり、昨今それぐらいITの知識がない人が多いということだ。

国家試験勉強のメリット

先ほど、国家試験を受かろうと提案したが、なぜ試験を受けるのだろうか?

初学者ほど、楽してスキルをしたい人が多い傾向にあるので、あえて触れておくと、極端な話、試験を受けなくてもいい人もいる。

何を矛盾したことをとツッコミが聞こえるが、これには理由があり、試験を受けるというのは、自分がITに関して勉強した内容がちゃんと体得できているか確かめたいからに他ならない。

昔定期テストを受けたのもまさにそれで、自分がちゃんとその単元を理解できているか、数値を用いて表しているのである。
人間は、そうやって定期的に確認テストしないと、覚えたつもりになって、やがて忘れていく動物だからだ。

そのため、国家試験を受けるというのは、就職のための肩書きだけでなく、自分のためにもなるのでお勧めした次第だ。確認テストしなくても理解できていると確証できる方は、スルーで問題ないだろう。

こういったところでも、論理的なものの考え方でその行動が無駄ではないことを証明するのもプログラマー脳を育てるためにはいいトレーニングになる。

ある程度IT知識が得ることができれば、次はサイト?

国家試験には過去問サイトがあるので、そこで合格である6割正解が出来てきたら、次のステージに進んでもいい。ITパスポートなら1ヶ月に何度かあるが、基本情報技術者試験は半年に一回なので、合格を待てない人はそれでも良いかと思う。
我々がやりたいことは、合格することではなく、プログラミング力をつけたいのだから。

次のステージは、2パターンある。参考書を買うか、Webサイトで入門ページを読むかだ。

一昔前なら、参考書の一択だったが、近年Webの発達により、Qiitaなど優秀な記事が増えて、参考書なみの記事が多い。
しかも、参考書が好きだが、紙媒体が嫌いならKindleの電子書籍を利用するのも悪くない。スマホで手軽に読めるのはありがたいからだ。

私のおすすめは、まずQiitaなどで、入門編を読み漁る方がいいだろう。
理由としては、初学者ほど、分厚い、高価な参考書を購入して、小難しい文章に挫折する。また、内容の薄っぺらい本を購入(セットアップなどが大半書いてある本)して、何も残らないなどあるからだ。
つまりムダ金を使って(初学者は学習にお金を払ってそれで満足する傾向がある)何も得れないくて、プログラミング難しいで終わるのだ。
これが非常に悲しくもったいないパターンだ。

結論として、例えば、「Python 入門」などでブラウザ検索して、読めそうな記事をいくつか読めばよい。

記事の中で分からないワードがあればその都度、ブラウザ検索するというのを心がけていれば読み進めることができるだろう。

人間は分からないワードが2つ以上あればその分の意味はほぼ意味不明だからだ。ITというのは、日々いろいろなテクノロジーが出てくるので、その都度ちゃんとキーワードの意味を理解しておかないと詰まってしまうのだ。
国語や英語の長文を読んでいて辞書で調べるのと同じである。

調べることもまた勉強である。憶測や予想で読み解いていうと将来思わぬ落とし穴にハマることになるだろう。

入門サイトを一通り見れたら

サイトをただただ読んでいくのは、暇すぎて蒸発するかもしれない。
そこで、実際に書かれているサンプルをVisualStudioなどで実行してみよう。
導入の仕方はこちらを参考されたい。
それすらも嫌な人には、良いサイトがあるPaiza.ioである。例えばJavascriptやPHPなどちょっと試したい人なんかは、コード書いて実行したらすぐに出力されるので、お手軽である。

しかし、今後もプログラミングしていくのであれば、VisualStudioなどでデバッグの仕方など慣れておく方が良いと私は思う。

もちろん読みながらコードを試し打ちして結果を目で見て納得して次に進むのでも良い。手を動かして勉強すると眠くなくなるので良い方法だ。

人によっては、いろいろな言語を学ぶ人もいるが、それをすると混乱するかもしれない。そういう時は、ノートとボールペンで、言語ごとにそのメソッドをまとめていくと良いだろう。もっと言うとあるポイントごとに比較資料を作っておくと整理されて頭に入るからちゃんとした理解ができると思う。

ここまできたら次はプロダクト?

そろそろ限界だろうか?プロダクトを作りたくてうずうずしてるんじゃないだろうか?
結論から言うと、作ってみよう。
と言っても、まずは、20~30行のプログラミングからはじめよう。
つまり簡単なゲームを作る方が良い。3目並べとかおすすめだ。
理由としては、短いコードにいろいろな要素が詰まっているので、実に良い訓練になるからだ。
次に100行プログラムとレベルを上げるのが良いだろう。
現実問題、それすら作れないプログラマーもいるので、実際に働きだしたとき、大変で鬱になる人が多い。

競技プログラムについて

最近、AtCoderを筆頭にいろいろな競技プログラミングが登場している。
私はこれは是非利用すべきと考えている。
自分はアルゴリズムは使わないからとかいうのではなく、速さを競いたいわけではないから、とか言わずやってみることをおススメする。

プログラミングに速さは必要ないと考えるのは、素人的な発想で、これは特にフリーランスでやっていくときに効果を発揮する。プログラミングというのは、どの言語も基本的に理解できていれば何とかある文法がある。
それは、いわゆるコレクション操作で、文字列を入力、格納、出力というのが多い。
つまり、「if文」「for文」「while文」これを組み合わせたコードが多い。そこに四則演算が入ったりする。これらは、プログラミングにおいて、いわばルーティンワークなので、この手の作業を思考0秒で書けることが好ましいと考える。フリーになると成果をあげて収入になるので、こういったところで、Web検索するのは時間の無駄である。丸暗記しろとは言わないが、3秒くらいで書ける訓練をした方が良い。実際に年収の高い人間はこのようなところで止まらないからだ。

そういったトレーニングはどうすればよいのかというと、それが競技プログラミングになるわけだ。競技プログラミングの一番レベルの低い問題は、実にこの訓練のいい材料になる。

是非競技プログラミングを利用して、プログラムの変換バイパスをブラッシュアップされたい。

よくある質問 Paiza VS AtCoder

ここでよくある質問を載せておく。
先ほど、競技プログラミングでPaizaとAtCoderを言及したが、どちらをやればいいのか?よく問われる。

答えはどっちもやればよい。

初めは、PaizaはD問題。AtCoderはBeginnerのA問題をやればよい。

ただ、Paizaは、他人の答えを見ることができないので、最初はAtCoderで他に人の答えを見ながら進めていくと自信が付く。

何もコンテストに参加しなくても大丈夫だ。初学者はやる目的をごっちゃにしがちだ。今自分は何がしたくて、これをやっているのか。
いつも自分に自問自答することを忘れないことが重要。

そして、コンテストに参加するときは、今の自分のプログラマーのレベルを知りたくなった時だ。ただただ、井の中の蛙でプログラミングしていると、どのレベルの企業に応募したらいいのか客観的にわからないので、こういったコンテストを利用ウすることで、明確になる。

まだ不安ならプログラミングスクールに手を出すのも良い

ここまでくるとかなりプログラミング力も上がってきていろいろ書けるはずだが、もう一押しという方も少なからずいる。
これは、誰にコードを見てもらっているわけでないので、いささか不安になるからだ。
つまり、メンターと呼ばれる先生にアドバイスをもらうことで精神的に楽になる。
これを最初にすると訳が分からなくて、月謝ドロボーだと思うだろう。
しかし、今はITの知識を付けてきたのでそれなりに理解できるはずだ。

ということで、メンターに心を預けたい方は、下記のプログラミングスクールにあたってみるといい。人気かつ保証も充実している。

→【耳よりの話】
 このリンクで動画を購入しようと思ったとき、少し高く思うかもしれない。
 このUdemyは定期的に1/10くらいの価格になるので、それを待つのもいいし、
 その他でも興味の物を見てみると1000円くらいであるかもしれないです。
 個人的な話、この動画を1度購入すると永続的に視聴でき、
 かつ解説者(メンター)に質問できるので、スクールより安い?かもしれません。
 しかも、2万円で購入したとしても、1つの案件って何十万円もするので
 元はすぐ取れる計算です。

おさらい 参考サイトや参考書など

これから学ぶJavaScript

新品価格
¥1,320から
(2020/4/25 17:45時点)

これから学ぶ JavaScript

新品価格
¥2,640から
(2020/4/25 17:47時点)

Kindle版

JavaScript: The Good Parts ?「良いパーツ」によるベストプラクティス

新品価格
¥1,980から
(2020/4/25 17:49時点)

JavaScriptの絵本 第2版 Webプログラミングを始める新しい9つの扉

新品価格
¥1,756から
(2020/4/25 17:54時点)

スラスラわかるJavaScript

新品価格
¥2,400から
(2020/4/25 17:53時点)

初めてのJavaScript 第3版 ?ES2015以降の最新ウェブ開発

新品価格
¥3,520から
(2020/4/25 17:44時点)

基礎 Python (IMPRESS KISO SERIES)

新品価格
¥6,200から
(2020/4/21 20:50時点)

入門 Python 3

新品価格
¥4,070から
(2020/4/21 20:53時点)

Effective Python ?Pythonプログラムを改良する59項目

新品価格
¥3,520から
(2020/4/21 20:52時点)