プログラミングの初心者の挫折しやすさは異常

僕は大学一年の春にプログラミングを勉強し始めました。最初はProgate、次にドットインストール。次にテックアカデミーに6~7万ぐらい払ってRailsコースを学習し、大学一年の夏休みからインターンでガリガリコードを書いていました。

今ではRailsのほか、インフラ系の知識も基本的なところは抑えていますし、フロントエンドに関しても、現在のインターン先がReactで、色々コードを書いている毎日です。

現在では、プログラミングの第一宇宙速度は突破したかな、という感じでして、独学&自走していけば、勝手にプログラミングのスキルはどんどん伸びていく段階に到達しました。

環境構築も(当たり前ですが)一人でできるようになりましたし、なんかよくわからないエラーが出ても、英語でぐぐり、公式ドキュメントを漁り、それでも解決できなければ公式のgithubのissueを見て問題解決、なんてところまでは普通にできます。

そんな僕が思ったのは、プログラミング学習の挫折しやすさは異常だな、ということです。地雷がそこら中に埋まってるんですよ。まず環境構築でドーンチュートリアルと同じコードなのになぜかエラーが出てドーンwindowsのパソコンだと、大体操作が違うのでドーン、ドーンドーンドーン。とこんな感じでして、まあ大変なわけです。

僕は早稲田大学の理工学部に通っていますし、一般受験で入ったので、学習能力は高い方だと思うのですが、それでも、間一髪でした。つまり、一歩間違えるだけで終わってたんじゃないかなと。

最初のインターン先に恵まれたのがめちゃめちゃ大きかったですが、違う会社に入っていたら今頃どうなっていたんだろう、と恐怖することもたまにあります。

では、なんでそんなにプログラミング初学者は挫折しやすいのか。理由はたくさんあるんですが、その中でもキツイやつから挙げていきます。

一つのエラーで数日悩む

一つのエラーで数日悩む、なんてことも最初は普通に起きます。

社会人だったらキツイですよね。せっかくプログラミングを学んで転職しようと頑張ってて、仕事が終わってから勉強してんのに、一つのエラーで数日簡単に吹き飛んでしまうという。

そりゃあね、挫折しちゃいますよね。

地獄の環境構築

僕はProgateから入ったので、環境構築という概念を最初は知りませんでした。

テックアカデミーでは、AWSのcloud9というオンラインでコードが書けるサービスがあり、それを使っていたので(使うように指導されたので)、環境構築とは無縁でした。

インターンに入って最初にやることになったのは環境構築です。

当時の僕からしたら、「環境構築ってなに?」状態だったので、まあー大変でしたよね笑。控え目に言って地獄でしたね笑。その分猛烈な勢いで成長したと思いますけど。

調べても調べても出てくる専門用語

これもまたインターン先での話になるんですが、最初は社員の方がなにを言っているのか、さっぱりわかりませんでした。専門用語のオンパレードで、?????????みたいな。

僕がわからないことを聞いたときには、僕のレベルに合わせてわかりやすく説明していただいたのですが、社員同士の話になるともうワケワカメですよ。

まず、わからない単語を一つ調べるじゃないですか。そうすると、そこからまた何個かわからない単語が出てくるんですよ。で、それらの単語を調べていると、また知らない単語が出てきて...の無限ループでした。ググってるだけで1日終わっちゃうよ!、みたいな

同じコードを写経してもバグる

ネット上の記事にコードが書いてあるので、それをコピペで使おうとするじゃないですか。バグるんですよw

色々な原因があるんですけど、例えばバージョンの問題とか。1年前の記事でも古くて役に立たない、みたいなことはよくあります。

ものすごいスピードで発達していく技術

近年、業務未経験の人がこの業界に入る時に求められるレベルがどんどん上がっている、ということをよく聞きますが、これは技術のトレンドとしても、実感としても正しいです。

バックエンドもフロントエンドもインフラも、なんか最近進化しすぎじゃね?ってよく思います。ちょっと前までは刺身のつま的な役割しかなかったフロントエンドも、現代のビジネス要求に答えるべくものすごい成長を遂げています。

技術が進歩して、ツールがどんどん開発されていくことで、なにが起こるか。それは、「なにを勉強すればいいのかわからない」という現象です。

Dockerとか、CircleCIとかよく聞くけど、それって全部勉強しなきゃいけないの?、みたいなやつですね。もう専門用語がありすぎてわけわからないよ><っていう方は多いのではないでしょうか。

プログラミングスクールの価値

最近、タピオカ店のごとき勢いでプログラミングスクールがぽこぽこ生まれていますよね。プログラミングスクール戦国時代です。

スクールの単価もどんどん上がっていって、20万30万ぐらいのプライシングだったら、あれ、やすくね?と感じるぐらいにはインフレしてきているこの頃。

僕の思うプログラミングスクールの存在意義というのは、予備校と一緒ですね。

僕は大学受験で予備校とか塾には通いませんでしたが、プログラミングスクールには通いました。正確には、オンラインだったので通ってはいませんけど。

僕は、プログラミングスクールで講座を受講してよかったです。超よかった。多分独学だったら心折れてたはずですし、色々な情報がありすぎてわけわからなかったので、スクールが提供する情報だけ学んでおけばいいよ、というのは非常に楽でした。

思うに、スクールの価値は大きく分けて3つあります。

  1. 情報をフィルタリングしてくれること
  2. モチベーションを高めてくれること
  3. 質問できること

あれ、これってまさに予備校とかと一緒ですねw

まず1に関して。「プログラミングスクールに通ってるやつは情弱だ。情報なんてググればいくらでも出てくる」、みたいな紋切り型の批判を目にしたことがありますが、これは全くのナンセンスですし、いくつかの考慮しないといけない重要なポイントを知ってか知らずかスルーしています。

この「情報なんてググればいくらでも出てくる」というもの。確かにこれは真なんですが、もう少しよく考えてみると、まず、

その出てきた情報が正しいかわからない

ですし、いくらでもググったら出てくるからこそ、一定のフィルターをかけて情報を制限しないといけない。

つまり、プログラミングスクールの価値って、「情報を与える」ことではなく、「情報を制限すること」にあるんですね。

プログラミングってやろうと思ったらどこまでも無限に勉強できてしまうからこそ、「ここまでやれば大丈夫だよ」というのを、信頼できる相手からもらえることに価値があるわけです。

次に2に関して。これもまさしく、予備校と同じです。

モチベーションを高めてくれるんですよ。オンライン型であれ、オフライン型であれ、同じ環境で切磋琢磨しあえる仲間がいるのは本当に心強いです。

予断ですが、僕の高校は、偏差値50半ばでして、ほとんどみんな地方のよくわからない大学に進学するので、旧帝大、早慶、医学部を目指すような目標の高い友達がもっと欲しかったですね。

そして3に関して。質問がいつでもできるって、安心感ありますよね。特にプログラミングなんて、ブラックボックスのモノが多すぎて、初学者にとってはどこが間違っているのかチンプンカンプンです

そんな中で、困っても聞けばなんとかなる、というのは大変心強いですよね。

とはいえ、質問がいくらでもできるからといって、ググったら一瞬でわかるようなことを聞くのもアレです。

力がつきません。こう言うと、「じゃあ、すぐ聞いていいこととダメなことの違いってなんなんだよぉぉおおおおお!!!!」という反応が返ってくるのですが、そこの境目のラインを自分の中に設定することがプログラミング上達の秘訣なんですね。

例えばプログラマーとして会社に入ったとしても、質問しなければ絶対にわかりようのないことってたくさんありますし、ググったら解決するようなこともたくさんあります

そこの違いを意識せずになんでもかんでも片っ端から質問しまくっていると、お荷物認定されてしまうんですよ。

質問し放題のスクールはいいんですよ。こっちがお金を払っているので。遠慮なく質問してください。ただ、実際に会社で働くとなると、質問をすることは相手の時間をいただくということなわけじゃないですか。

これ以上は長くなるので割愛しますが、どんな質問をしても、わかりやすい答えが必ず返ってくる、というのは本当に超大切です。プログラミングの力を効率よく身に付けたいなら、そういう環境に身をおくといいですね。

下手の考え休みに似たり、これに尽きます。

田舎の数学者が、誰とも交流しないまま考えまくって、三平方の定理を発見したと言っても、いや、それとっくの昔に発見されとるがな、っていう話です。

プログラミングを0から学ぶのって超ハードル高いよね、地雷を踏み抜かないように気をつけてね、という話でした。

カテゴリー