DIVE INTO CODE

2019年06月13日
  • #初心者
  • #未経験
  • #プログラミング

初心者にありがちなプログラミング学習の壁

Aws4 request&x amz signedheaders=host&x amz signature=0964c062a91f254903617d25b1f365e44ec19698ef9c2af5684ff3111c9f708a

プログラミング学習を進めていくにあたって、初心者が直面しがちな壁が3つあります。今回は、これら3つの壁を乗り越える方法について、具体例も交えながら解説していきます。

【こんな方におすすめ】
・プログラミング学習で今まさに壁に直面している人
・プログラミング学習に興味があるけど続けられるか不安がある人

【目次】
1.初心者にありがちな3つの壁とは
2.「用語」の壁
3.「学習法」の壁
4.「孤独」の壁
5.まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

初心者にありがちな3つの壁とは

今回は、初心者にありがちなプログラミング学習の壁についてお話しましょう。社会人から学んだ人で、壁にぶちあたらなかった人を、私は見たことがありません!

やっぱり壁にあたったときに、一人だとへこたれてしまいますよね。自分で抜け出せる方法をぜひ教えてください!

初心者にとっての壁は3つあるんです。1つ目が「用語」の壁。2つ目が「学習法」の壁。そして3つ目が「孤独」の壁です。この3つがほぼすべての人に当てはまるんです。

「用語」の壁

1つ目の 「用語」の壁
例えば永田さんは「環境構築」という言葉を初めて聞いたときのこと、覚えていますか?「環境構築」って何だと思いました?

「環境」って「場所」なのかな、とは思いましたが、それを「構築」するってどういうことかな?と・・・

そうですよね。あとは「プログラミング言語」と聞いて「言語って何だ?」と思いませんでしたか?

あー!なりましたね。プログラミングって、タイピングをするイメージしかなくて。プログラミング言語という特殊な「言語」がある、ということ自体も知らなかったですね。

そうですよね。となると例えば「オブジェクト指向」なんていう言葉は訳がわからないですよね?

「しこう」って・・・そういう「思考法」ですか?って感じでした。

ですよね。やはりプログラミングってわからない「用語」がたくさん出てくるんです。ひとつずつ単語の意味を理解していくと、プログラミング用語の成り立ちも理解できるんですが、最初はどうしてもアレルギーが出てしまいます。

たしかに。

そういう時に必要なのが「用語」の壁を突破すること。具体的には、まずわからない用語を全部挙げて、単語帳を作ると良いです。私も昔、わからない単語が出てくると、エクセルやgoogleスプレッドシートを使って単語帳を作っていました。例えば「環境構築」という単語をググって、検索結果の1ページ目に出てくる解説ページにすべて目を通しながら、そしてそれらのページに書いてあることをシートにまとめるんです。検索結果の1ページ目に出てくるコンテンツにすべて目を通せば、8~9割の精度で正しい知識を得られると思います。

もちろん、自分の言葉でまとめるのが大事、ということですよね?

そうです。コピペだけだと意味がわからないままになってしまいます。きちんと目を通すことで、もしかしたらまた別のわからない単語が出てくる可能性もありますしね。「環境構築とは」と調べていたら「プログラミング言語~」という節が出てきて「プログラミング言語ってなんだっけ?」となる、とか。そうしたら「プログラミング言語」でググる。

たしかに、わからない単語がどんどん出てくるのはありそうですね。

これを常に「わからない用語」に対して行なうのは、実は誰でもできることです。にも関わらず、やらない人が多い。でも、プログラミングの世界で学ぶには、用語の壁は避けて通れないことだと思います。いずれやらなければいけないなら、早い段階で一気に調べて単語への不安を無くした方が良いでしょう。単語がわからないでモヤモヤしていると、モチベーションも下がっていきますから。単語帳を作り貯めていくことで、「自分が理解したもの」を可視化していけばモチベーションも上がります。

なるほど。単語がわかっていくと、プログラミングの世界が広がっていく感じになりますか。

そうですね。プログラミングの文章も読めるようになっていくので。それが楽しみにもなります。「わかる!わかるぞ!」という感覚で(笑)

「学習法」の壁

2つ目が 「学習法」の壁 について。
プログラミングを勉強していくと「答え」を先に知りたがってしまい、「暗記すれば良い」という勉強方法に偏ってしまうんです。すると、プログラミング言語のいろいろな文法を片っ端から暗記したり、テキストなどに書いてあることを全部そのとおりにやってみるだけの作業になってしまう。そうなると、プログラミングの勉強自体がつまらなくなってしまうんです。

なるほど。僕は英語の勉強は嫌いなんですけど、海外に行くのは好きなんです。海外に行くと「英語勉強したいな」と思うようになるんですよね。

海外で英語を話して相手に通じると、「俺、使えてるかも!」と嬉しくなりますよね。それと同じで、プログラミングも「こういうプログラムを作りたいんだけど、どうすればいいだろう?」ということを考えながら勉強すると、結構楽しいんです。

「答え」を求めすぎてしまうと、悩むことが「答え」にたどり着けない苦しみになってしまうけど、そうではないということですか。

そういうことです。最初は忘れたりしてもいいんですよ。
大事なことは「どうしたらこういうプログラムができるかな?」というおもしろい問題に出会うことです。例えばDIVE INTO CODEでやっている例を出すと、数学の問題をうまく組み合わせておもしろいプログラミングの問題をやってもらっています。例えば「紙を何回折れば月の高度まで届きますか?」という問題。もちろん自分の手で紙を折るのは無理ですけど、プログラミングを用いて解くのには向いてるおもしろい問題です。

なるほど。あくまで「答え」を出すことだけが目的ではない、ということですね。

特に1人で勉強していると、「受験勉強」のイメージで取り組んでしまうことが多いんです。「早くやらなければ」とか、わからないときにはすぐ「答え」を見てしまうとか。そういう学習方法も必要なときはありますけど、一方で「どうしたらできるかな?」と考えることも大事なんです。

プログラミングの学習って、ある意味では「答え」がない作業を続けていくということだと思うんですけど、最終的なゴールはどこに定めればいいんでしょうか?

最終的なゴールとは何なのかは、自分で定める必要があります。就職をするのか、エンジニアと会話できるようになりたいのか、あるいは趣味でちょっとやってみたいとか。「就職をしたい」という場合には、例えばプログラミングスクールのカリキュラムを見て、そこに書いてあることを全部自力でやれるようになろう、とか。エンジニアと会話したいのであれば、短期間のスクールのカリキュラムがそのイメージですね。スクールのカリキュラムはWebなどで公開されていますから、そこから目標を設定するのも良いですよ。あるいはプログラミングについて知っている人に聞いてみるのもいいです。これこそが3つ目の「孤独」の壁の突破につながります。

「孤独」の壁

1人でプログラミングを勉強していてもおもしろくない、という 「孤独」の壁 は誰しもが感じるものです。

そもそも、プログラミングという作業自体にそういうイメージがありますもんね。

そういう意味で、1人でやっていくのはモチベーションが続きづらいと思うんです。例えば先日、コンピュータサイエンス系の大学生向けの講座を開催したのですが、一緒にペアプログラミングで学ぶという体験を提供したら、みんな楽しそうに取り組んでくれたんです。以前からスクールでは取り入れている学習法なのですが、「誰かと一緒に問題に取り組むことは楽しい」ということを再認識しました。

1人で黙々と勉強するときよりも、かなり雰囲気も変わりそうですね。

1人で孤独にやっていくと、ときには「おもしろくないな」という気持ちになることもあるんですけど、誰か一緒に学ぶことによるモチベーションアップはすごく強いんです。

一緒にプログラミングを学ぶ仲間を見つけるには、どうすればいいんでしょう?

仲間を見つけるのは、特に社会人の方だと難しさはありますが、一番良いのは「勉強会」などの集まりに参加してみることです。「プログラミング 勉強会」で検索してみると、「Compass(コンパス)」や「Doorkeeper(ドアキーパー)」などのイベントサイトが出てきます。そういったものに顔を出してみるのが良いです。必ずしもそういった集まりに自分と同じようなレベルの人がいるとは限りませんが、それでも「孤独」ではなくなり、プログラミングについて話ができる環境をつくることが大事です。

なるほど。

ただ、同じレベルで一緒に勉強する仲間を見つけるには、勉強会などでも難しいかもしれません。そういう場合は、例えばYoutuberがやっているサロンに参加するなど「コミュニティ」に所属するのがひとつの方法です。DIVE INTO CODEでも、そういった場を提供する準備を進めているのですが、お金を払ってそういった環境に身を置くのも良いでしょう。あるいは家族を巻き込んでしまうのも手段ですね。いずれにしろ、誰かと一緒に勉強するっていうのが、モチベーション持続にはとても重要です。

まとめ

・「用語」の壁は、単語帳を自作するなどして知識を貯め込んで乗り越えよう
・「学習法」の壁を乗り越えるには、「答え」を見つけることに執着せずに「どうしたらできるかな?」と考えることを大事にしよう
・「孤独」の壁を乗り越えるには、勉強会やコミュニティに顔を出して、誰かと一緒に勉強する環境を整えよう

わからない単語があればひとつひとつ調べて知識を貯め込んでいくこと、「答え」を見つけることに執着せずに「どうしたらできるのかな?」とポジティブに考えることなど、プログラミング学習は地道に辛抱強く進めていくという心構えが必要です。

そのようなプログラミング学習において、一番の壁は「孤独」。一緒に勉強に取り組んでいけるような仲間を見つけることが楽しく学習を進めていく一番のポイントになるといえるでしょう。

DIVE INTO CODEの公式HPこちら

DIVE INTO CODEの無料カウンセリング予約こちら

DIVE INTO CODEのことをもっと知ってみませんか?