プログラミング学習で絶対にやってはいけないこと〜まったくの初心者から3ヶ月でハンバーガーメニュー付きペラサイトを作れるようなった理由〜プログラミング独学講座①〜

プログラミング学習で絶対にやってはいけないこと〜まったくの初心者から3ヶ月でハンバーガーメニュー付きペラサイトを作れるようなった理由〜プログラミング独学講座①〜

プログラミングに正解はない 結果がすべて

プログラミングは覚えなくていい

プログラミングで重要なことは、問題解決能力と情報収集力

 

 

ある時、突然、プログラミングを勉強したい、と思いました。

その瞬間まで、プログラミングのプさえ知らなかったのに、です。

きっかけは小学校におけるプログラミング教育の導入でした。

プログラミング教育を導入するにあたって、準備を進めているうちに、

ああ、と思ったことがありました。

つまり僕達の身近にあるコンピュータは、すべてプログラミングによって成り立っていること、

そのプログラミングは、人の手によって作られていること、

今の世の中は、このプログラミングで、ほぼ全てが成り立っていること、

です。

当たり前ですが、たとえば自動ドアは、なぜ自動で開くのか、

外灯はなぜ自動点灯するのか、

スマホはなぜメールが送れるのか、

ネットとはなんなのか。

グーグルマップはなぜ、現在地を表示できるのか、

などなど、

すべてがプログラミングなのです。

であるなら、

これまでブラックボックスだった、プログラミングとやらを、勉強してみようか、という気になったわけです。

それから、副業でプログラミング、というキーワードも、結構、目につきました。

プログラミングで月5万稼ぐ方法

といった記事も多くあります。

ホントかいな、という猜疑に満ちながらも、3ヶ月前、突然、プログラミングの海に飛び込んだのでした。

 

と、もっともらしいことを書きましたが、実は、下にまとめたものが、本音の動機です。

プログラミングができるとカッコいい。

プログラミングができるとお金が入る(らしい)。

小学校でもプログラミング教育が始まった。

パソコン(インターネット)がこれだけ身近なのに、その中身をまったく知らない。

 

ということで。

3ヶ月、毎日、プログラミングの独学だけをしました。

失敗もたくさんしました。

けれど、3ヶ月後、ハンバーガーメニュー付きのペラサイトを、誰の力も借りることなく、作れるようになりました。

とはいえ、まだまだ初心者には変わりません。

ですから、この記事は、

プログラミング初心者によるプログラミング超初心者に向けたプログラミング講座

 

ということになります。

ですからこの記事の長所といえば、

プログラミング初心者ゆえに、初心者ならでは視点で記事が書ける。

 

この一点につきます。

 

まったくの独学で始めて、3ヶ月経った現在のスキルは、以下です。

jQueryを使ったハンバーガーメニューを実装したペラサイトは作れる。

とりあえず模写をやれと言われれば、できる

 visual studio code を使ってgitによるバージョン管理ができる

レスポンシブに対応できる

 

そんなモンかい、という方もいれば、

3ヶ月では、結構いいんじゃ、

という方もおられるかもしれません。

とりあえず、そんな感じなのですが、

ゼロから3ヶ月、ほぼ毎日、プログラミングの独学に集中して、自分なりにつかんだことをお話しします。

まとめると以下のようになります。

 

プログラミングに正解はない 結果がすべて

プログラミングは覚えなくていい

プログラミングで重要なことは、問題解決能力、と、情報収集能力

これが、3ヶ月、集中してプログラミングを独学して得た教訓です。
そしてこれが、本記事で一番言いたいことです。
ひとつずつ解説します。

プログラミングに正解はない。

 

最初にやったのは、「ドットインストール」でした。基本的なhtmlとcssの講座をすすめていきました。

次にやったのが、「プロゲート」でした。これも基本的なhtmlとcssの講座をすすめていきました。

ここで、最初の大失敗をしました。

ドットインストールの講座もプロゲートも、新しいことが出てくるたびに、ノートにまとめていったのです。

新しい知識が出てくるごとに、それはつまり、ほぼすべてだったのですが、そうした新しい事象が出てくるごとに、ひたすら律儀にノートにまとめたのです。

それはまるで受験勉強で歴史をノートにまとめるのと、ほとんど同じ方法論でした。

瞬く間にノートは2冊分、埋まってしまいました。

それだけの量の「覚えること」が出来上がってしまいました。

続けて、第2の大失敗をしてしまいました。

ノートにまとめたことを、覚えようとしたのです。

さらに第3の失敗をしました。

ドットインストールも、プロゲートも、しっかり覚えるまで、繰り返しやろうとしたのです。

けれど、どちらも2周目を迎えるときに、投げ出しました。

あまりにもつまらなかったからです。

苦痛以外の何物でもなかったからです。

覚えても覚えても、キリがありませんでした。

あまりにも覚えることが膨大すぎました。

というか、無限でした。

しかも、まったく身につきませんでした。

やっぱりプログラミングは難しい。止めよう、と、挫折しかかりました。

ここで僕の失敗をまとめてみます。

出てくる知識をひとつずつ、完璧に覚えようとした
そのためノートにまとめた
ドットインストール、プロゲートに出てくるコードをそのままそのとおり覚えようとした

 

ここで、ようやく気がついたのでした。

プログラミングの勉強、というのは、学校での勉強とまったく違う

ということに。

というより、受験勉強とまったく違う、ということに。

つまり、発想を転換させないと、プログラミングは上達しない、のです。

それはどういうことかというと、

覚えようとしない
ノートにまとめるなんて論外
正解はないものだ、ということを悟る
ということです。
ドットインストールも、プロゲートも、極々、基礎の部分を習うには最適の教材です。けれど、それは何周もやるものではないのです。だいたい基本的なことを、ぼんやり掴むだけで良いのです。
ドットインストールやプロゲートで提示されたプログラミングを、最初から最後まで、一字一句、同じように書く必要はないのです。
結果的に、出来上がったサイトが、作ろうとしたサイトに出来上がっていれば、それで良いのです。
もちろん、厳密には、良いプログラムと悪いプログラムは、厳然としてあります。
良いプログラムとは、きれいなコード、可読性の高いコード、でしょう。
けれどそれは、プログラマーあるいはコーダーのプロ(つまりお金をもらう立場)になって、チームや会社で実際にプログラムを書き始めて、初めて、どんなコードが良いのか、分かってくるレベルの話です。
初心者は、とにかく、コードを書きまくればいいのです。
または、ググって、ひたすらググって、やりたいことのやり方を検索すればいいのです。
プログラミング、とは、たったそれだけのことなのです。
目指すサイトを作るにあたって、
とにかくコードを書く。
ゴールは、作ろうと思っているサイト、です。
つまずいたら、ひたすらググる。
とにかく、自分で調べる、ことが大切です。
ですから、僕なんか、一行書くのに、3日かかったこともありました。
その間は、ひたすら、ググり、読み、または、youtubeを見まくり、考えていました。
または、いろんなコードを、ひたすら読んでいました。
なんでこういうふうにコードを書くんだろう、とひたすら考えていました。
そして、自分の考えがまとまったら、コードを書き、プレビューして、コードを直し、またプレビューして、を繰り返しました。
欲しい動きがあれば、またひたすら、ググりました。
もちろん、コードのコピペは、当たり前のように、やりました。
そうして、思い描いたサイトを作り上げていきました。
模写も、いくつもやりました。
そして得たことは、
つまり、ひとつの同じサイトを作るにも、無限のやり方があるっていうことでした。
つまり、コードの書き方は、たぶん、100人、プログラマーがいたら、100通りのコードが、あるわけです。
そしてそれでいいのです。
サイトが、最初に思い描いていたように出来あがればいいのです。
それがプログラミングなのです。
つまり、プログラミングには、

正解はない 結果がすべて

なのです。
さらに、

プログラミングは、覚えなくていい

のです。
必要なときに、思い出すか、もう一度、ググればいいのです。
その答えに到達する手段さえ、覚えておけば、いいのです。
ヒトに聞く、というのも、もちろん、悪くありません。
近所に、たまたまプログラマーがいた、同級生にいた、先輩にいた、たまたまプログラマーのブログを読んで感動し、そのヒトに質問のメールを出そうした、そうしたことがあったとします。
そうしたヒトに、今、つまずいていることを聞く、というのも、もちろん、それも選択肢のひとつです。
けれど、超初心者は、とりあえず、ヒトに聞く、というのは、やめた方がいいかもしれません。
なぜなら、質問の仕方が分からないからです。
例えば、あなたが、スマホのことを、近所のおばあちゃんに聞かれたとします。
おばあちゃんは、まったくスマホのことを知りません。
だからおばあちゃんは、
「スマホってやつは、持ってた方がいいのかい?」
と言った、とても大雑把な質問をしてきます。
なんて答えたらいいか、分からないですよね。
それと同じです。
たぶん、きちんと質問ができれば、そのヒトはもう、初心者ではなくなっている可能性が高いです。
ということで、僕は、ヒトに質問することなく、誰かにメールを出すこともなく、
ひたすらググりました。
またはyoutubeを見まくりました。
幸せなことに、今は、そうすれば、ほぼだいたいの、プログラミング初心者がつまずくような壁への答えは、見つかるのです。
それはプログラミングの技術的なことに限りません。
僕が今、ここで書いているような、いわゆる心構え、のようなものも、しっかりと答えがインターネット上にはあります。
だから、今、自分が抱えている課題に対する答えに、いかに的確にその情報までたどり着くか、が、そのスキルが大切になってくるのです。
そこで、三つ目の悟りに行き着きます。

プログラミングで重要なことは、問題解決能力と、情報収集能力

これまでも、書いてきましたが、ひとつのサイトをつくるにあたって、まず構想をします。

こんな感じのサイトにする、という構想がまとまったら、次に、そこに必要な技術を盛り込んでいきます。

例えば、ハンバーガーメニューを実装したい、と思います。

すると、ハンバーガーメニューを解説したサイトやyoutubeをググりまくります。

そしてひたすら、読んだり、見たりします。

そうして自分の構想に必要な技を見定めていきます。

その技に、例えば jQueryが必要なら、 jQueryを学びます。その過程で、JavaScriptが必要となれば、JavaScriptを学びます。

そんなふうに、行きつ戻りつ、必要な技を実装するために、情報を収集していくわけです。

つまり、プログラミングの学習で大切なことは、

ゴールに行き着くためには何を学ぶべきか

課題となっていることは何か

課題を克服するためには、どんな情報が必要か

その情報はどこにあるか

を、しっかり考えることこそが、上達の近道です。

 

このプロセスこそが、重要なのです。

つまり、

問題解決能力

 

そして、

情報収集能力

 

です。

ですから、この二つの能力をしっかりと育てれば、プログラミング学習は、ほぼ、終わったようなものなのです。

ということで、もう一度、結論です。

 

プログラミングに正解はない 結果がすべて

プログラミングは覚えなくていい

プログラミングで重要なことは、問題解決能力と情報収集力

いかがでしたか。

これで、第1回、プログラミング初心者によるプログラミング超初心者に向けたプログラミング講座

は終了です。

次回は、具体的にどういうふうに学習をすすめたか、特にドットインストール、プロゲートについて、解説しています。