どうも皆さま。こんにちは。こんばんは。
渋沢です。

Web系スクールで講師をしていると、プログラミング初心者の受講生から質問をいただくことが多いのですが、「挫折」について聞かれることがあります。

例えばですが、

「プログラミングで挫折する人とマスターする人の違いってありますか?」
「学習をスタートしてから、初めて挫折しそう。挫折しないコツとかありますか?」

といった質問は、何度か聞かれました。

ここでは、プログラミングを学び始めた初心者の方向けに、

  • プログラミングで挫折しやすい「マジメなタイプ」
  • 技術力の高いエンジニアの情報はシャットダウンしてもいい

ということについて、お話します。

この記事を書くわたしは、「スタートアップ → Web系企業・副業ワーカー → スクール講師 → フリーランス」というキャリアを歩んできました。

プログラミングに挫折しそうなときもあったので、自分自身の経験やエンジニア仲間の話をもとにお話します。

過去にスクール講師としてプログラミングを教えていた経験もあり、挫折しそうな初心者さんをサポートしてきたので、ここでもプログラミング初心者の悩みを解決していこうと思います。

3分ほどで読める内容にしていますので、参考にどうぞ。

プログラミング学習で挫折しやすい「真面目なタイプ」

プログラミング学習で挫折しやすいのは、「マジメな人」が多いです。

例として、下記をご覧ください。

  • スクールのカリキュラムを順番に進める
  • 本を1ページ目から少しずつ進める
  • Progateやドットインストールの講座をひとつずつ進める

一見、よくある学習方法かもしれませんが、挫折する人には共通点があり、マジメにコツコツ勉強をしがちです。

独学で本を買ってきて、プログラミングを学び始めたとしましょう。

1ページ目から読んで、毎日5ページ進める

途中でわからないところに詰まる

わからないページを何度も読み返す

まったく理解できず、同じところでずっと悩む

悩みすぎて、気づいたら挫折する…

上記の「わからない箇所」を長い時間をかけて悩んでしまい、挫折するパターンがけっこう多いです。

すべてマジメに理解する必要はありません。

成長するタイプの人は、「わからない箇所を放っておく」勇気も持ち合わせています。

詰まった箇所は一回ググりまくって、調べる

「悩んでも、今は分からないだろう」と一旦諦めて、ひとまずコードを書いてみて動かす

「そういうものなんだ。後で戻ってこよう」と決め、とりあえず先に進む

先に進んだところで、「もしかしてこの前詰まったのこういうことかな?」というヒントを見つける

詰まった箇所に1回戻ってみて、再度コードをチェック

「はいはい。なるほど!」と理解する

上記のとおり、進めていくうちにわかるときが来るので、わからないところはそのまま放置してもOKです。

分からなくて長時間悩み、イライラして、モチベーションを下げるくらいなら、一旦諦めて、サクサク進めていったほうが効率がいいですよ。

すべてを完璧に理解しようとしない「諦める勇気」を持って、とりあえず「動くもの」をつくりまくると、徐々にプログラミングも楽しめるようになるはずです。

なので、本を読んでわからないところがあっても、「Aという機能を実装するには、こういった実装方法があるのか。また実装するときに調べよう」程度の感覚で進めてください。

わからない箇所があろうが、あなたがつくりたいWebサイトやWebサービスはつくれますので、安心してください。

暗記も、ノートも必要ない

テキストで学ぶにせよ、動画で学ぶにせよ、コードを丸暗記しようとしたり、ノートに色付きのペンでメモする必要はありません。

わたし自身、スクールで講師としてプログラミングを教えていたのですが、マジメにノートを書く受講生もなかにはいました。

ちょっとしたアドバイスをメモするくらいならOKですが、テストじゃないので、コードを丸々暗記しようとしなくていいです。

エンジニアとして現場に入れば、「カンニングし放題 = ググり放題」なので、初めて実装する機能があったとしても、まずググります。

わからないときはググれば、だいたいのことは解決するので、完璧に覚えようとしないでください。

完璧に覚えようとすると、挫折しやすいので…

わたし自身、大学時代は情報系の学部だったので、「C言語」や「アルゴリズム」を学習した経験があるのですが、ほんとにつまらなかったんですよね。

必死にノートを書いたり、友達のノートを借りてコピーを取る人も多かったですが、今考えたらムダな学習方法です…

「空欄を埋めよ」みたいなテストをしたところで、コードは書けるようにならないですし。

なので、ノートは机の奥にしまって、コード書いて動かしまくって、とにかく楽しんでほしいなと思います。

プログラミングが「勉強」になった瞬間、勉強嫌いの人はプログラミングが「苦行」に変わってしまいますからね。

下記の記事では、「暗記もノートも必要なし」というテーマを深堀りしてお話してますので、参考にどうぞ。

マジメな人は、技術力の高いエンジニアの情報は見なくてもいい

マジメな人は、技術力の高いエンジニアの情報を鵜呑みにしてしまうかもしれないので、基本的に見なくてOKです。

学習方法をググる初心者の方もいるかもしれませんが、技術力が高そうなエンジニアさんの記事を読み始めると、人それぞれ違う学習方法ですし、初心者に向かないことをしていることもあるので、混乱する可能性が高いです。

技術力の高いエンジニアが発信する情報は、必ずしも「初心者の自分にとって正しい情報」とは限りません。

仮にですが、尊敬する技術力の高いエンジニアが、初心者の頃に「リーダブルコード」を読んでいたという情報を知ったとします。

「このエンジニアさんも良いコードを書こうとしていたのか。じゃあ自分もこの本を読もう」となっても、おそらくほとんどの初心者は理解できません。

「ProgateでRubyを学んだあとに必読すべき本」として「リーダブルコード」を挙げるエンジニアもなかにはいるかもしれませんが、個人的にはまだ読む段階ではないと思っています。

現場に入ってから必要に応じて、読めばいいですよ。

技術力の高いエンジニアの情報を受け入れる前に、目的を再確認せよ

そもそもですが、初心者の方は「プログラミングを身につける目的はなにか」を考えたほうがいいです。

  • 大手企業の面接に受かるためですか?
  • 技術力を高めることが目的ですか?
  • 良いコードを書くことが目的ですか?

目的を間違ってしまうと、ただのプログラミングの勉強になってしまいます。

プログラミングはあくまでビジネスのための道具なので、目的がないと挫折しやすいです。

例えばですが、

  • 良いサイトをつくって、ビジネスを成長させることが目的
  • 良いサービスをつくって、社会に役立つことが目的
  • つくりたいものをつくって、リリースすることが目的

人それぞれ目的は違うかもしれませんが、「なにかをつくるため」にプログラミングを学ばなければ、プログラミング学習がただの「苦行」になってしまいます。

  • 5ヶ月以内にWebメディアを開発するのが目的なら、「WordPress+PHP」関連の書籍を買ってきて、必要なところを読みながら開発してみる
  • スタートアップに就職するのが目的なら、希望する企業の環境を調べ、必要なスキルの基礎をProgateなどで学び、実際に簡単なサービスを開発して公開してみる

上記のとおり、技術力の高いエンジニアに憧れる前に、つくることが大切です。

もちろん技術力の高いエンジニアに憧れて目標にするのも良いことですが、まずは「コードを書いて、動かし、つくりきる」ということを忘れないでください。

まとめ:学習するときは、全体像を把握しつつ、学ぶべき

書籍やProgateを使って学ぶ場合は、ついコードを写経したくなると思います。

写経は効果的なので続けたほうがいいですが、最初からいきなりコードを書き始めなくて構いません。

では、最初はなにをすべきか。

  • 書籍なら、まず目次をざっとみて、そのあとパラパラみて、全体像を掴む
  • Progateなら、まずスライドをすべてみて、全体像を掴む
  • ドットインストールなら、まず1つのレッスンの全動画をざっと見て、全体像を掴む

という感じで、ざっと全体像を掴んでからコードを書き始めたほうが、「今自分はなにをやっているのか」「何のためにこれを学習しているのか」が見えてくるので、迷わずにすみます。

あとは疑問に思ったことは、どんどんググることが大切です。

ほとんどの悩みや疑問は、先人が解決して、発信してくれていますからね。

よく使うコードも、コードを何回も書いているうちに、自然に染みついてくるので、最初から覚えようとする必要はないです。

初心者の方は、ポートフォリオ(作品)つくりきるために、プログラミングを学んでください。

関連記事もどうぞ

下記記事では、「プログラミングの写経学習法」について書いています。

下記記事では、「プログラミング学習のよくある失敗」と「エンジニアになるのは難しくない根拠」について書いています。