こんにちは、Webエンジニアの腐川(ふかわ)です。
未経験でプログラミングを始めた人や、初学者の皆さんはどのように学習を進めていますか?
といった未経験ならではの悩みを持っている方も多いのではないでしょうか?
実際、プログラミング業界では「初心者の挫折率は90%」とも言われています。
「プログラミングを始めたい!」という人が年々増える中、プログラマーの人材不足が続いているのにはこのような現状あるからかもしれません。
現在プログラミング学習で行き詰っている人は、当てはまるものがないかチェックしてみてください。
「挫折する人がやっている間違った学習方法」を改善することが継続への近道になるはずです。
では、どうすれば「学習を続けられるようになるのか?」陥りやすいポイントを詳しく解説していきましょう!
目次
全てを理解しなくてOK!今の自分に分かることから
まず一番に陥りやすいポイントが、「全部を分かろうとして挫折してしまう」です。
プログラミングを学び始めたばかりの頃は、とにかく知らない用語や技術に直面します。
- PHPを動かすには?
- 開発環境ってどうやって作る?
- 関数の使い方は?
- クラスって何するもの?
これって一体何だろう?と思うことは大事ですが、いきなり全てを理解するのはとても時間がかかります。
- 思っているように動かせればOK
- 仕組みを完璧に理解しなくてOK
- 「これは何をしているのか」をふんわり分かっていればOK
まずはこんな感じで、自分に分かることから理解していくだけで構いません。
今の自分にはまだ理解できないレベルだったと知るだけでも成果は充分です。
たくさんの関数も全部の書き方を覚えなくても、その都度調べれば大丈夫です。
もちろん、プログラミングのコードや関数の意味を一つ一つ理解せずに、丸々コピーして使って「思った挙動にならない!原因がわからない!」のはNG。
次は、プログラムのエラーを解決する能力に関するつまづきポイントを見てみましょう。
検索力 = 調べる力を強化して、解決力を身に付けよう
書いたプログラムを実行してみると、
- エラーが出て思ったように動かない!
- 想定した結果にならない!
ということは頻繁に起こります。
そんなとき「なぜか動かない」状態で諦めてしまうのがプログラマーにとって一番のNG行動です。
うまくいかないのには必ず理由があり、それを伝えるエラーや結果が必ず返ってきているはずだからです。
それらのヒントを元にGoogle検索や書籍を駆使して解決方法を探し、プログラムを書き直して正しく動くかを検証する力がプログラマーには必要不可欠です。
そのために重要なのは、解決策を探すための「検索力 = 調べる力をつける」ということです。
- エラー文やログ(処理の記録)が出ている場合はそれを検索&翻訳
- 「PHP 関数名 アップロード 保存されない」等の目的や状況をキーワードに入れて検索する
- 使用しているプログラミング言語の「公式ドキュメント」や「リファレンス」を読む
ということを意識してみましょう。
エラーやうまくいかない現象は、ほとんどの場合上記のように検索することで同じような例がヒットしてきます。
ヒットしたページが英語のサイトでも、投げ出さずに一度読んでみましょう!
(翻訳をかけたり、コードを読むと何となく理解できますし、英語に慣れてきます。)
最終的に分からなかったとしても、調べて考える癖を付けることがポイントです。
次は、もっと根本的なモチベーションに関するポイントを解説します。
「勉強」ではなく「何かを作ったり実現する」目標を立てよう
基礎学習を終えた後「次に何をしたら良いか分からない」と手が止まった方も多いのではないでしょうか?
あひるくんのように「こういうものが作りたい!」というものがなく、漠然とプログラミングができるようになりたいと考えている場合、一気にモチベーションが下がってしまう傾向があります。
このような目標でも構いませんが、もっと先のゴールを考えてみましょう。
プログラミングを学ぶことで、あなたには何かを作ったり、便利にする能力が身に付きます。
それを活かして、できること・やってみたいことや考えてみましょう!
プログラミングが「勉強」ではなく、作りたいものを作るための手段になると・・・
作ったサイトを公開するには?
同じものを自分でも作れないかな?
こんな風に次にやりたいことがたくさん出てくると思います。
せっかく始めたプログラミングなので、形にしてさらにレベルアップを目指しましょう!
さらに"作る"に繋がるポイントについて、重要なことを次で解説します。
自分で処理の流れを考えてプログラムを書こう
プログラミングの勉強を始めてから、自分で考えてコードを書いていますか?
プログラミングの技術はただ覚えるだけでは身に付きません。
関数の意味を覚えたりするよりも、実際に思った通りにプログラムを動かす技術力が必要です。
つまり、「わかる」ではなく「できる」という状態にしていくことがとても重要になります。
× 基礎レッスンの同じ問題を繰り返し解くだけ
× 1からプログラミングコードを書いて動かすことをしない
× エラーやバグなどの原因を探さず、ただコードを見比べるだけ
これではプログラミングを勉強している気になって満足してしまい、「実践的な技術」が身に付かず結果的に続かなくなってしまいます。
レッスンや技術書で学んだ後は、プログラムを実際に自分でも何も見ずに書いて動かしてみましょう。
実際に自分で処理の流れを考えてプログラムを組むと、より理解が深まります。
- お問い合わせ内容を送信するフォームを作る
- 入力された内容を送信する → 「値を送信するには?」
- 送信された内容を受け取る → 「送信した値を受け取るには?」
- 空白の入力欄が無いかチェックする → 「値が空かどうかの判定と、調べる関数は?」
- チェックに引っかかればエラーを表示する → 「入力フォームに戻ってエラーを出すには?」
- 問題無ければ問い合わせ内容をメールにして送る → 「メールを送るためには?」
このようにプログラムを組み立てると、実際にどんな関数を使えば良いか考えることができます。
処理の流れを考えた後は、学習したこととGoogleを使って調べながら「自分でプログラムを書いて」お問い合わせフォーム作ることができますね。
PHPでプログラムを書く場合、MacならPHPをインストールせずにローカル環境(Macの中だけで)実行させることもできます!
もし、プログラムを動かす開発環境作りで詰まってしまった場合は、ブラウザで実行できるオンライン実行環境を使ってみるのもおすすめです。
自分でプログラムを動かす楽しさを知って、「勉強するもの」という苦手意識を無くしていきましょう!
最後は、「自分以外の学習環境について」のつまづきポイントです。
質問できる人や場所を見つけて、効率的に学ぼう
独学の場合は特に「わからないことを教えてくれる人」がいないと孤独になりがちです。
もちろん、自分で解決しようとすることは良いことですが、学習の進みが遅くなってしまいます。
その点、スクールであればいつでも質問できる講師がいたり、学習をサポートしてくれる体制が整っています。
そのため、「初心者でも立ち止まらず学習を進められる」利点があります。
プログラミングスクールの詳しいメリットやスクールの選び方は下記で詳しく紹介しています!
もし、独学で詰まってしまった場合には下記のような手段もあります。
独学だけでなく、プログラミングをしていると外部との接触が薄くなりがちです。
下記サービスでイベントや勉強会を調べて参加してみると新しい発見があるかもしれません。
また、MENTAは単発や時間単位でも個別に相談できるので、特に独学の人におすすめです!
スクールよりも、より自分に合った学習について相談できると思います。
MENTAなどで個別に質問したり、対面で教えてもらうのはまだハードルが高い・・・と感じる人は、テラテイルもおすすめです!
(エンジニア版知恵袋のようなサービス)
また、人に聞く場合は「検索力」と同様、知りたいことを明確にした「質問力」が大切になってきます。
- 何について聞きたいのかを伝える
- 今どのような状態なのか現状を伝える
- 解決のために自分が試したことを伝える
- 最終的にどのような動きにしたいのかを伝える
「エラーで動きません」と投げるのではなく、プログラムの状況を整理して伝えることで、自分の理解も深まります。
まとめ:学習方法を見直して、挫折せず学ぼう!
いかがでしたでしょうか?
当てはまるポイントがあるなら、プログラミング学習を挫折するにはまだ早いです!
- 全てを理解しようとしない!わかるところから
- 検索力 = 調べる力と、解決力を身に着ける
- 「勉強」ではなく「何かを作ったり実現する」目標を立てる
- プログラムの流れを自分で考えてコードを書く
- 質問できる人や場所を見つけて、効率的に学ぶ
プログラミング学習が思うようにいかず悩んでいる方は、この5つのポイント抑えて学習を進めてみましょう!
未経験者がつまづきがちな勉強方法を変えるだけで、必ず挫折せずに学習を続けていくことができるはずです。
より早く、確実に「現場で必要とされるプログラマー」になりたい場合はプログラミングスクールもおすすめです。
「必ず成長できるプログラミングスクール」を厳選して紹介していますので、ぜひ合わせてご覧ください。
自分にあった学習スタイルを見つけて、プログラマーを目指しましょう!
以上、Webエンジニアの腐川(ふかわ)でした。