見出し画像

プログラミングの壁

むらやまです。大阪でプログラムを書いたり、プログラミングの講義をしたりしています。今回は「プログラミングの壁」についてお話します。

タイトルをキャッチーにしすぎてわかりにくいので、もう少し具体的にいえば「プログラミング未経験者が、プログラミングの勉強を始めるとどのような問題に遭遇するのか」について自分なりの考えをまとめてみようと思います。

これからお話する「プログラミングの勉強を始めるとどのような問題に遭遇するのか」というのは、IT業界への転職を考えていたり、あるいは職業を変えなくても、今の仕事にプログラミングを使ってみたい、と考えている方や、プログラミングを習得して副業にチャレンジしてみたい、あるいはあるいは、すごいアイデアがあるのでアプリを自作してみたい、という方々をイメージして書いています。

長い文は読みにくいので、箇条書きにして整理しておきます。この note は以下のような動機づけからプログラミング学習に取り組むと、どのような問題が発生するのか、ということを書いています。

・IT企業に転職したい
・職場でプログラミングを使いたい
・副業を始めたい(WEB制作など)
・アプリ開発にチャレンジしたい

図にしておくとこんな感じです。

スクリーンショット 2020-12-20 8.24.58

図の学習者が「プログラミングを始めたい人」です。プログラミングに興味を持つ理由は様々あるわけです。

このように動機づけの部分はそれぞれ違っていても、プログラミングに興味を持ち「プログラミングを始めたい」という気持ちになる点では共通しています。このような方々が「プログラミングの勉強を始めるとどのような問題に遭遇するのか」について、お話しようと思います。

プログラミングを始めたい人

IT企業に転職したい。副業したい。動機づけは様々あるにしても「プログラミングを始めたい」と考えるようになると、多くの人はGoogleで「プログラミング」について検索したり、TwitterやYouTubeなどでプログラミングについての情報を収集するのが今の時代かと思います。

あるいは本屋さんに行って「コンピュータ・プログラミング」のような本棚を眺めてみる方もいるかもしれませんし、IT系の仕事をしている友人にLINEでメッセージしてみる、ようなケースもあると思います。

実際、多いんです。「プログラミングを始めたいんだけど」というメッセージをもらうことって。先日も姉から「プログラミングを教えてほしいっていう知り合いがいるんだけど」と連絡がありました。だから需要あるのかな、と思って、この note を書いています。

これも余談ですが、私の周りでプログラミングに興味を持ち始める方の年齢に上限はなく20代、30代、40代といろんな年代の方から「プログラミング始めてみたいんですけど」というご相談をいただくことがあります。

過去に(というか今も)タイムチケットというWEBサービスでプログラミングに関するご相談を受けていたことがあるのですが、その相談の大半は「プログラミングを始めたい」あるいは「始めたんだけど学習が上手くいっていない」という類のものでした。

プログラミングを始めたい人の頭の中

それで「プログラミングを始めたい」という気持ちになったときに、どのような思考になるのかというと、これは動機づけによってやや異なるのですが、だいたい最初に考えるのは以下のようなものではないかと思います。

たとえば「IT企業に転職したい」という動機づけの場合はこんな感じです。

・今からでもITエンジニアになれるのだろうか?
・プログラミング言語ってたくさんあるけど何を選べば良いのだろう?
・効率よくプログラミングを学ぶ方法は?
・そもそもプログラミングって何ができるのだろう?
・プログラミングスクールに通うべきだろうか?

こんなふうにプログラミングに興味を持ち始めると、頭の中に複数の疑問が湧いてきます。これらの疑問、一つひとつをGoogleで調べて、考えていくのは意外と時間も労力もかかるので、結局、調べることが面倒になってなんとなく(それなりの学費を払って)プログラミングスクールに通う、というケースも最近は増えているんじゃないかなぁ、と思っています。

スクールの良し悪しについてはまた別のnoteで考えてみたいのですが、一点だけ注意する点としては「プログラミングスクールに入りさえすれば、IT企業に転職できる」という考え方です。プログラミングスクールに入ってからも自分なりの目的意識、課題意識をしっかり持っていないと、ただ与えられたカリキュラムを消化するだけの時間になってしまいます。気がつけば卒業の日を迎えてしまい、これからどうしたら良いのかと途方に暮れることになります。

スクールの話にそれてしまったので話題を戻しましょう。「IT企業に転職したい」という方が、プログラミングに興味を持ってから、実際に「IT企業に転職する」までの流れを整理してみました。すると次のような流れになります。

スクリーンショット 2020-12-20 0.24.53

(図が小さくてすみません、でもクリックすると大きくなるはず。あとで分割した図も貼っておきます。。)

図にある赤色の「学習者」というのが、これからプログラミングを学ぶ人のことです。プログラミング学習に至る入口、動機づけの部分(緑色の部分)は人それぞれであっても、その後のプログラミングを学習していく部分では共通しています。図の中では「状況」が変化していく、流れていく様子を示していますが、スクールで学ぶにしても独学で学ぶにしても、この流れは大きく変わらないでしょう。

プログラミングの壁

さきほどの図にもう少し情報を加えてみます。各状況において、学習者にどのような課題(問題)が発生するのでしょうか。

スクリーンショット 2020-12-20 0.24.29

図に示すように、実は学習者の直面する課題は、学習者の置かれている状況によって変化していきます。このような状況によって変化する課題・ハードルのようなものを「プログラミングの壁」と呼ぶことにします。

「プログラミングの壁」

たぶん有吉の壁からのインスパイアです。

図に話を戻しましょう。最初は「プログラミングって何?」という漠然とした問題がプログラミングの壁として出現します。このとき学習者は、Web上の情報や有識者からのアドバイス、あるいはスクールの推奨する言語を選ぶなどによって、プログラミングや言語の特徴を知り、学ぶべきプログラミング言語を決定します。

プログラミング言語を選んだ後は、実際にプログラミングするために開発環境を整えていきます。具体的に言えば、プログラミングの言語の実行環境(ランタイム)をインストールして、環境変数PATHを設定して、テキストエディタなどの開発ツールをインストールしていきます。ここでは簡単に書きましたが開発環境を整えるにしても様々な選択肢があるので、プログラミング未経験者が独学でこれらの選択肢を理解していくにはそれなりの労力を要します。

スクリーンショット 2020-12-20 8.25.35

学ぶべき言語を決めて、それから開発環境を整えて、いよいよプログラミングの学習がスタートできたとしても、日々の学習継続は簡単ではありません。この頃になるとモチベーションの低下という、容赦ない壁が現れます。学習者の多くはこの壁の前に立ち止まります。一日、二日と学習に身の入らない日が続き、やがてプログラミング学習のフローから離脱していきます。

これらの困難な壁を乗り超えて、プログラミングの学習が一段落したとしても「はたして、これで十分な学習ができたのだろうか」という不安が頭の中をよぎるようになります。このような時期になると「自分のやり方よりもっと良い方法があるのではないか」「フレームワークというものを学ぶべきだろうか」「そもそも学ぶべき言語を間違えているのではないか」という疑問が湧いてくるようになります。

コンピュータやプログラミングについて学べば学ぶほど、知らないことが多くあることに気づくようになるのです。

さらにIT企業に転職するのであれば、企業を分析したり、ポートフォリオを準備したりといった、動機づけ固有のあらたな壁達も出現します。。

なんとなく進撃の巨人を思い出しました。

スクリーンショット 2020-12-20 8.25.43

ここまでのまとめ

このように「プログラミングを始めたい!」と思って動きはじめても、状況によって異なるいくつかの「壁」のようなものが出現します。これらの壁に対して、準備せずにぼんやりと直面してしまうと、どのように対処すればよいのかわからずに、思い悩んでしまうことになります。このような失敗でプログラミングの習得をあきらめてしまうのはとてももったいないことです。

今日は少し真面目な感じになってしまいました。話も長くなってしまったので本日の note はここまでにしておきます。次回以降は、このような「プログラミングの壁」に対してどのように向き合えば良いのか、各状況における問題を具体的に取り上げて、その対策について考えていこうと思います。

この記事が気に入ったらサポートをしてみませんか?