はじめまして。

株式会社Lizeの木村と申します。

はじめに

少し自己紹介ですが、私は若い頃からのエンジニアではなく、割と年を取ってからプログラミングを始めましたので、最新技術ガチガチの前線で働いてきたというよりは、フリーランスでボチボチ始めてスタッフも抱え、今年法人化という流れで来ていますので、最新技術よりも比較的早く安定して仕事出来る技術を好んで使ってきました。

それが Ruby on Rails であり、現在リリースされた Rails7 では、5or6 辺りの迷走っぷりが嘘のように簡潔になったので、スタートアップや中規模の開発においては、まだまだ当分現役だと感じています。(そもそも未だにRubyオワコンとか言い出した人だれなんでしょうね・・・)

また、私は某オンラインスクールでのメンター経験が相当数あり、今では1600名以上の方々と携わらせていただきました。

その中で、色々とスクールの不条理さにも直面してきました。(スクールが悪いというわけではなく、マッチングの問題だと思います。)

MENTAについて

ここのMENTAというサービスを使われている方というのは、少なからずスクール経験のある方もいらっしゃるのではないかな・・と感じています。

その中でもし、「学習期間が全く足りなかった」と感じた方で、もしかしたらご自身でプログラミングに向いてない人だという考えに陥って苦手に思ってしまった方もいらっしゃるかも知れません。

私がメンターを始めた頃はカリキュラムの完走率も高かったのですが、ここ数年は本当に完走率が低いです。
これは悪い事ではなく、より初心者向けにカリキュラムのターゲット層が改善され、多くの方々に学習の場所が提供出来てきた事の裏返しでもあります。
(実際にサービス開始時頃のメンター層はかなり「ggrks」臭を漂わせていました)

ですので、今のプログラミング学習には当初の短期間勝負のものは厳しいのではないかな・・と感じています。

そういう背景もあり、初学者の方へ何かお伝え出来る事はないかという思いでこのサービスに登録させていただきました。

プログラミング初学者

そして、完走率が下がった一因でもありますが、初心者向けという方の中にはPCを買ったばかりという方も含まれますし、そもそも学習という行為の苦手な方、基礎的な勉強をして来なかった方も含まれます。
そういう方たちもプログラミングに興味を持っているという事だと思います。これだけ敷居が下がったというのは嬉しい話です。

ただ、実際ちょっと怖い話ですが、英単語の読めない方も過去いらっしゃって、全てアルファベットで解説していた事もあります。

また、論法的なお話が苦手な方も多くいらっしゃって、例えば、

a == b
b == c

だから、

a == c

だよね・・というお話をすると「???」という事がしばしあります。

では、そういう方々は「プログラミングに向いていないのか?」という話です。

結論は「ほぼNo」です!

これは、私の先生がおっしゃっていたですが、

「webアプリ開発は中学卒業相当の数学の学力があれば大丈夫」

という事は、学習の感覚としては相当普通の学力で大丈夫そうです。

実際に私自身、高校卒業するのに5年も掛かっており、学生時代全然勉強をやらずに、遊び回っていた記憶しかありません。

その私がこうやって39歳でプログラミング学習を始め、仕事が出来ている事自体まぁまぁな結果だと思います。

そもそもweb開発の多くはプログラマーの仕事の中でもかなり簡単な部類であり、時間を掛ければ大体の人がモノにする事が出来るからなのです。

学習には時間がかかる

ただし、私のように能力がない部類の人間は人の何倍も時間を掛ける必要があります。

特にプログラミングで少しでもお金を生みたいとなると、どんなにセンスの良い人でも多少なり時間が掛かります。

なぜなら、スクールで習う部分だけ出来ても周辺知識がなければ、厳密にバージョンを指定された環境構築もできず、Githubに仕事の提出も出来なければ、テストの修正も出来なかったり、コーディング規約に則ったリファクタリング等も出来ないからです。
また、仕事を並行で捌く事ができなければ、収入も見込めませんので、ここにもコツが存在します。

私の経験で言えば、最初にお金を生んだのは、開始10ヶ月の時点で、一月2万円でした。

今は学習素材も豊富になった事から、学習は当時より進むかも知れませんが、企業側の要求レベルもかなり高くなっておりますし、未経験に厳しくなっている気がします。

ですから、「学生のうち」「働いているうち」に無理のないように時間を掛けてじっくり準備をする事が成功の秘訣だと思います。

特に学生の間は、そこでお金を産まなくても良いので、ひたすらスキルを上げ続ける、作品を生み続ける事が可能で、一番将来に繋げやすいはずです。

教職者が案外苦労する

これは苦手と言っていいのか分からないのですが、私が教えた経験では、小中高の学校先生の苦労率がなぜか高いです。

よくよく考えてみるとなるほどなのですが、学校の先生は教える前提のモノの覚え方をしたいみたいで、結果の体験をしようとしない方が多いのです。(多いというよりほぼです)

そして、その考えを改めるよう進言をしたとしても、聞き入れられる事があまりないように感じます。

なので、学歴職歴に関わらず、プログラミング学習が捗らない方というのは、能力よりも考え方の部分が多いのかも知れません。
また、一度社会で一定の地位を築いた方が、新たに自分の足場を崩すのはかなりのストレスなので、このあたりも挫折の一因ではないでしょうか。

自分で向いてないと感じた人の勝負の仕方

もしあなたが、それでもプログラミング向いてないと感じているなら、

  • 反復をする
  • 時間を使う

この2つだけを意識してみてください。

本当に解決方法は簡単で明確です。

バカなの?というくらい反復練習をする事でしか解決しません。
コードを試す間はロジックをあまり考えず、ひたすら繰り返す。
それも、値やプロパティ等を少しずつ変えて実験結果をひとつずつ確認して理解する。

ただ、「この少しずつ変える」という所に学習のコツが存在しますので、これを掴むまでは誰かに誘導して貰う事が有効な手段ともなります。

もし、一番メンターが必要な状況があるとすれば、このコツの部分ではないでしょうか。

それ以外は、技術的なTipsの話になるので、正直時間で解決する話でもあります。(その短縮に人に聞くというのは良いと思います。)

本当に向いていない人がする質問

私の持論はプログラミングに向いている向いていないは学力ではなく、考え方です。

今まで、厳しいな・・と感じた方は大体この3つの質問をしています。

「効率のいい学習方法ってありますか?」

「カリキュラムで飛ばしていいところ教えて下さい。」

「答えを先に教えてもらった方が理解できます。」

ここまで読んでいただいた方には、これらの質問が駄目なものだと分かっていただけるのではないでしょうか。

そうなんです。学習初期の段階において、効率の良いものなんてないんです。

最後に

長くなってしまい、読んで頂いた方にはただ感謝です。

疑問点やご質問などありましたら、お気軽にご相談ください。