【初心者向け】プログラミングが上達しない原因と解決策【経験談】
プログラミングが中々上達しない、正確には上達している気がしない、多分これじゃダメだ。毎日勉強しているのにステップアップ出来ている気がしないのはなぜだろう。このままじゃヤバイ気がする。
こんな悩みに現役のエンジニアが回答します。
本記事では、プログラミングが上達しないと感じた時の原因と解決策について解説しています。初心者の方や独学中の方に向けて書きました、難しい言葉は使わず必要な情報だけをストレートに提供します。
プログラミングが上達しない原因
プログラミングを勉強していると「これって上達してるのか?」と途中で疑問に持ち不安になる方は多いと思います、残念ながらそれは当たっている事が多く、原因は取り組み方にあると私は思っています、下記に当てはまる方は要注意です。
- 入門書に沿ってお勉強だー!
- ドットインストールを真似して作るぞ!
- プロゲートでレベル上げ頑張ろ!
- 動かす事が大事!HTML最高!
これに当てはまるなら危険信号。プログラミングって「お勉強感」が強すぎるとダメなんです、分かりやすく言うと「知識 < 経験」で、上のような取り組みの中で知識は増えても経験値は貯まりにくいと考えています。
努力の方向性が悪いし甘い
入門書は所詮入門レベル、これに一日以上かけてちゃ上達もくそもない。無料の動画教材を参考にサンプルコードを動かして体験は得られても経験値としてはゼロに等しい。プロゲートでレベル上げ、それすなわち勉強でしょという考えはそもそも論外なわけで。
その取り組み自体は否定しませんが、それをずっとやってちゃそりゃ上達なんかしないわというのが本音、上達しないと感じる人は共通してステップ1から上に上げる努力や取り組みが足りない。いわば玄関の前でドアノブを回しているだけ、中に入らなきゃダメなのよ。
プログラミング上達のコツ【解決策】
プログラミング上達に欠かせないのは経験です、経験とは「考えて、作って、動かして、改善して、調べて」を繰り返す事で蓄積します、取り組む内容を濃くしていくと得られる経験値も大きくなる、ベタすぎますが「作る事が大事」ってこと。
アプリだったり便利ツールだったり色々作る中で、吐かれたエラーに対処し最適化、分からない事があればググって調べて使えそうな情報を探す、使い回せそうなコードはメモして覚えておいて次に活かす、これを繰り返していくと自然に上達感が湧いてくる。
効率的なスキルアップ手順
効率よくプログラミングを覚えるなら兎にも角にも何か作ること、下記の手順を参考にするといい。
- 作るものを考える
- 実装に必要な機能を考える
- 機能単位で作ってみる
- 作った機能を合体させる
- コードを最適化する
「何を作ればいい?」「作りたいモノがない」って方は【解決策】プログラミングを学びたいけど「作りたいものがない」を読んでください、心配せずとも湧いて出てきます。
例えば、小規模のECサイトを作るとするなら。
- 作るものを考える
→ECサイトを作る - 実装に必要な機能を考える
→ログイン、カート、発注、お気に入り、商品管理、などなど - 機能単位で作ってみる
→上で挙げた機能をそれぞれ個別に作る - 作った機能を合体させる
→上で作った機能を合体させてECサイトを完成させる - コードを最適化する
→無駄な記述や、改善点を探し最適化する
作りたいモノを決めて、それを作るために必要な機能を洗い出して、機能単体で作ってみて全部出来てら合体させて完成させる。エラーは絶対に出ると思います、たくさん調べることになると思います、でもそれが学びである経験となる。
いきなり難しいものを作れとは言わない、徐々に難易度を上げていく感じ。
- 計算ツール【初級】
→数字を入れてボタンを押すと税込み表示する - 見積もり計算ツール【中級】
→数字を入れる欄が複数個あり、リアルタイムで計算する - 見積もり発注ツール【上級】
→計算結果をファイルに書き出す
最初から「見積もり発注ツール」を作りたいと考えていたのなら、それを逆算して考えることで学習手順に落とし込むことができる。こういった考え方が出来る人、自走力(自分で何とか出来る力)が高い優秀な人材として雇用されやすい傾向にあります。
まとめ:プログラミング勉強の注意点
ここまでの話をまとめると、プログラミングが上達しないのは取り組み方の問題、知識を付けることに集中しすぎて脱入門に時間をかけすぎている、上達したいのならひたすら何か作れ、難易度も徐々に上げていこう。こうこう話です。
最後に、プログラミング勉強をする上でのアドバイス(注意)を一つだけ。
一番の壁は自分自身です
結局やるのは自分自身なわけで、プログラミング勉強をしていると「これでいいのか」「本当に上達しているのか」と定期的に悩むことになると思います、先が見えない暗闇を手探りで進む感覚に襲われると思います、間違いなく。
その中でも、諦めずやり遂げて下さい、ひたすら作って学んでください。そこにかけた時間や熱量は無駄になりません、一番ヤバいのは「別に無理してやらなくても」という思考に走ってしまう事。
例えば、今あなたはECサイトを作るためにログイン機能を実装しようとしています、その際に出たエラーが中々解決しません、調べても全く分からず時間だけが過ぎていく、その時あなたはこう思う「別に無理してやらなくても、ログイン機能なしでゲストでいいよね」と。
こういった諦めや妥協が一番ダメ、その姿勢じゃ無理です、諦めて下さい。それを何とかするのが経験となり勉強になるわけで、実務に就けばすぐ覚えると言われるのは「実装しなければいけない」という責務があるからなんです。
それが無理ならプログラミングスクールに行くしかない、大金を使って学びを求めるしかない。これも結局「お金をかけた以上諦められない、諦めたら大損だ」という損したくない感情から行動するだけで、自分の意思を貫ける人にはスクールは不要なんですね。
以上おつ。
飲食→派遣→IT系ベンチャーに転職。
本業をベーシックインカムとし、やりたい事に挑戦するWebエンジニア。