プログラミングを始める人は多いけど、挫折する人も多い。それがずっと続いているためエンジニアが人手不足になっています。
たしかに未経験からプログラミングを始めると業界用語もよく知らない、勉強方法も知らないため、ただ受験のように学習していても成長できずに諦めていくことになります。
挫折しない学習方法は以下の3点を気をつけるだけで、挫折率は減ります。
- 簡単なことから始める。
- 暗記をしてはいけない。
- 慣れること
今回は独学でエンジニアになった僕がプログラミングの学習方法やNGな例を紹介していきます。
エンジニアの仕事を正しく理解する
挫折率が高いプログラミング。学習方法を間違えるとすぐに挫折してしまうのがプログラミング。
なぜ挫折してしまうのか。理由は簡単です。プログラミングに対して本気ではないという人がほとんどだからです。
インフルエンサーでも副業でプログラミングを進める人がいます。簡単な気持ちでプログラミングを始める人が増えているように感じます。
挫折する人の特徴やNGな学習方法を説明していきます。
プログラミングを甘く見ている人は挫折する
プログラミングに対する考えが甘い人は簡単に挫折します。僕の体感では挫折する人の5割くらいの人がここに該当するイメージです。そのような人たちはこのような感じで考えています。
- プログラミングは副業で稼げる
- かっこいい
- 将来性がある
このような考えで始めると、挫折率は上がります。実際には「そうではない」こともあるからです。
副業で稼げるという人は5%もいないはず。将来性?そんなのは実力がなければ関係ない。かっこいいイメージはあるかもしれないけど、けっこう泥臭いことも多い。
エンジニアの現実を知らない
最近、エンジニアという職業が注目されて、僕もうらやましいとか言われてます。でもエンジニアについて知らない人はこんな感じ。
- リモートで仕事ができる
- パソコン1台あればできる仕事
- 単価が高い
リモートでできる仕事も多いかというと全体の1割もないはず。コロナの影響で増えてはいるけど、収束したら出勤して開発するという企業の方がまだまだ多いと思う。
働き方や年収が良いというイメージがありますが、年収500万いかないエンジニアがほとんどです。どこの世界もできる人は給与も高いです。その他は普通。エンジニアも同じです。
エンジニアの単価はプログラマ < システムエンジニア < プロジェクトマネージャーのように経験を積むと上流工程の仕事を任されるようになります。そうすると年収は上がっていくのですが、単価が上がるのは上流工程の方です。
単価が高いのは、ある程度熟練したエンジニアのみです。将来性もそこそこのレベルで仕事ができるエンジニアです。
プログラミングでNGな勉強方法
先にプログラミングに対するイメージや間違った情報でプログラミングを始めた人は挫折する確率が高いということを説明したのですが、ここからは実際の学習方法が間違っているパターンです。
難しいことを理解しようとするのはNG
プログラミングに挫折する人は、すべてのことを理解しないといけないと考えて詰め込みすぎてわからなくなるパターンが多いです。
実際にエンジニアになって仕事をすると、いろんな分野に関する知識や経験、理解がなければならないのですが、最初からそれをすると混乱してしまい挫折します。
まずは全体像をざっと理解し、簡単なことから始めるのがコツです。
簡単なことって何や?というと、楽しいと思えること、簡単に動かせるものです。HTMLで静的な画面を作ったり、動画をみることから始めてもよいと思います。
暗記して覚えるのはNG
学校のテストや受験勉強をしてきた人たちは、テスト前に英単語を暗記したり、歴史でも何年にどんなことが起きたかを暗記するという方法で学習してきたかと思います。
けれどもプログラミングという分野では暗記は不要です。もし暗記が必要だとすると、試験の学習のみと考えてもよいでしょう。
資格試験、例えば、ITパスポート、基本情報技術者試験資格、PHPの上級試験などは暗記が必要な部分も多いです。
プログラミングに関しては、答えが決まっていて、そこにどのようにしてたどり着けるかを考えるという部分が重要なので暗記しても仕方がないといえます。
ググって解決方法を探すことができればいいです。(一部インターネットが使えない開発現場もありますが)
暗記はしない。極端なことを言うと、if文の書き方も調べてかければ大丈夫です。(勝手に覚えますが)
プログラムを書かないのはNG
初心者にありがちですが、とにかく動画を見てわかった気になるということ。見ているとなんとなくどのようなことをしているか頭ではわかります。
けれども実際にコードを書こうとすると、手が動かないということです。
見て、聞いているだけではプログラミングができるようにはなりません。とにかく手を動かさないと何も成長しません。
とにかく見たり聞いたことをコードで書く。作ってみる。考える。この繰り返しが必要です。
プログラミングの学習方法
プログラミングの学習方法に正解はありませんが、僕は考えて手を動かすと言うことに重きをおき独学で学習してきました。
学習方法は以下のような感じ。順番に説明していきます。
- 動画、本などからWebの概要について情報を得る
- 作ってみたいものを決める
- HTML, CSSを使って簡単な画面作ってみる
- プログラム言語を使いHTMLに組み込んでみる
- 機能を調べて組み込んでいく
学習方法:1 - 動画、本などからWebの概要について情報を得る。
ドットインストール、Progateなどで初級の動画をざっくり見てどのようなことをするのか理解することから始める。
僕が学んだ時は本が主流だったので本でもいいです。動画の方が早いので今は動画がよいかもしれません。
学習方法:2 - 作ってみたいものを決める。
動画見ながら、こんなもの作ってみたいなとか考えてみる。最初からすごいもの作りたいと考えず。とりあえず有名なWebサイトをマネてみる程度で探すとよい。
学習方法:3 - HTML, CSSを使って簡単な画面作ってみる
HTML、CSSでWebサイトをマネて作る。Webサイトの表示にはHTMLが使われているので、ブラウザからHTMLを見ることができるので、わからない場合はプロがどのようなタグを使って書いているのか確認しながら進めていくことができます。
H1タグ、divタグ、ulタグなどいろいろと使ってみるとどのような表示になるのか確かめながらどんどん書いてみる。HTMLとCSSはいろいろ書いて確認するのを繰り返すため、楽しさを感じることができる部分かと思います。
もちろん作りたいと思ったWebサイトが完成できなくても問題ない。楽しいと感じることができたら進みます。(僕の場合はホームページを作りたかったのでここに時間をかけました。デザインとコーディングを模写せずに作れるくらい)
学習方法:4 - プログラム言語を使いHTMLに組み込んでみる
プログラム言語を使いHTMLに動きを付けてみます。フロントでもサーバーサイドでも最初は興味がある方を使ってみるでよいと思います。
いろいろと手を動かすことで、HTML、CSS、またプログラムを書くことが楽しくなってくるはず。プログラムを書いていくうちに、この機能はどうやって作られているのだろう?といった疑問がでてくるはずなので、調べて作ってみるということを繰り返します。
学習方法:5 - 機能を調べて組み込んでいく
プログラミングというのは、機能を開発するということが目的です。この画面にこういう機能を付けたいから作ってという指示がきて、それを考えて実装する。
その機能を実装するために参考のソースコードが落ちているかもしれないし、考え方を教えているサイトがあるかもしれません。とりあえず調べてコピペでも作れるように繰り返して手を動かすということをします。
これを繰り返すことで自信がついてきます。
問題が起きて挫折する前に対策する
プログラミングの学習の問題点は難易度が上がってくると進めなくなる人が多いこと。
- 解決できるまで頑張る人
- 解決はできないが次に進む人
- あきらめてやめていく人
このようにいろんなタイプがいます。学習効率が悪くなるとか、挫折してしまったり。そのようにならないためにメンター(相談できる相手)がいると助けになります。
MENTAというサービスもあります。月額数千円〜とあるので少しの質問などであれば、このようなサービスを使うこともできます。ドットインストールやProgateの有料会員でも少しの質問は受け付けてくれています。
挫折するくらいなら、有料でもメンターをつけるべきです。
質問に制限があったりするとどうしても聞きにくいという人もいます。そのような人はプログラミングスクールで学ぶのがよいと思います。
他に比べると少し高めですが、一番スムーズに学習を進められるというメリットがあります。関連記事の方もご覧ください。
プログラミングの学習方法まとめ
プログラミングは他の人が書いているのを見たり、本を読んだりしても知識は増えますが、技術力は上がりません。技術力は調べて手を動かす以外は方法がないと思います。
毎日プログラミングしているエンジニアでも戦力(一人前の単価)となるのに3年かかります。早い人であれば1年程度で自分で開発進めていける人もいますが、それくらいの難易度です。
簡単に稼げるのは一部の人で、甘い考えでプログラミングをスタートすると挫折します。
挫折しないように簡単なことからはじめて、楽しさを感じること。問題がでたら相談できるメンターを作ること。このあたりを注意してプログラミングの学習をしてみてください。