プログラミング勉強中だが上達した実感が湧かず、コツが掴めないまま継続してる人がほとんどです。
実は、プログラミング学習で上達しない人の特徴は共通しています。
|
これらの悩みを解決しながら、プログラミングを挫折しない方法を解説します。
記事を読み終えると、プログラミングが上達しない理由やプログラミングが上達するコツを理解できます。
結論は、プログラミングの学習手段を目的にすると上達しません。
また、筆者自身クラウドソーシングサイトであるランサーズにてコンスタントに毎月10万円を稼ぎ、プログラミング業務にて2021年6月に最高報酬額である30万円を突破しました。
年間報酬額も100万円突破するなど、実務的なプログラミングの活用方法や具体的な稼ぎ方について、一定の記事信頼を担保できると思います。
プログラミングは習得することで、本業/副業に十分活かせる武器になると先にお伝えしておきます。
目次
プログラミングが上達しない理由
プログラミング学習を続けても上達しない主な理由は5つです。
|
これらの悩みは、全てプログラミング学習手段の目的化によって引き起こされます。
今一度、学習状況を整理してみましょう。
プログラミング教材を終えることが目的化してる
これは最も避けるべき内容で、プログラミングが上達しない最大の要因です。
どこかで入手したプログラミング教材自体が悪ではありません。
インプット学習ではなく、アウトプット学習であることが重要です。
教材の内容がどれだけ100点の出来栄えだとしても、それ自体に価値はありません。
最近では、プログラミングスクール教材によって簡易的な量産型ポートフォリオ(成果物が同じ)が問題になっています。
周りと同じスキルセットだと差が生まれず、いつまでもプログラミング初心者から抜け出せません。
そのため、漫然とプログラミング教材を終えるのは上達しません。
専門用語ばかりにリソースを注いでる
本来プログラミングは、誰かに役立てる道具に過ぎません。
従って、専門用語ばかりに着目してインプットを続けても、肝心のアプリケーション開発に手が出せません。
専門用語はあくまで業界におけるコミュニケーション用語の一つとして捉え、知識の補完に役立てましょう。
『プログラミング教材→専門用語の理解→動作確認』といった学習の流れになりがちです。
『動作確認→コードの意味を理解するために教材による知識の補完』といった学習の流れに切り替えましょう。
エラーが起きると思考停止する
多くのプログラミング初学者は、プログラミング教材通りに進めてエラーを発生させると思考停止します。
ただ、ここで学習内容が進められないことにネガティブになる必要はありません。
現役エンジニアであってもエラーが頻繁に起きます。
むしろ、エラーと向き合うことがエンジニア作業の一つとさえ捉えることができます。
エラーと向き合い、エラー問題に対する情報収集力とエラーという課題に対する問題解決力を身につける成長の機会になります。
エラーの問題解決経験が上達する一つの鬼門です。
圧倒的に学習時間が足りない
そもそもプログラミング学習は隙間時間を有効化するだけで身に付くスキルではありません。
ただでさえ、アプリケーション開発も実践的に取り組む人であれば、膨大な時間を必要とします。
上達を具体化した数値が出せない分野なので、作成したポートフォリオとその内容で判断できるように学習計画を見直しましょう。
選択した言語学習で終わってしまう
よく勘違いされるのは、選んだプログラミング言語学習のみで様々な取り組みができると思い込まれてることです。
プログラミング言語を一つ習得しても、ツール・アプリケーション開発する上で把握・理解することはさらに増えてきます。
後述しますが、プログラミング学習の目的・目標を設定した上で網羅的な学習計画を立てる必要があります。
上達する前に、挫折しない学習方法を身につけましょう。
挫折しないためにも、挫折ポイントや対策を知りたい人は「プログラミング学習の挫折率9割の理由と対策」で解説します。
プログラミングが上達しない人は目的が設定できてない
プログラミングを利用する目的・目標設定することは重要です。
つまり、明確な学習計画を立て意味のない学習を無くし、目的達成に有効な学習内容のみに時間投下することです。
あなたが目指すエンジニア像はどれに当たりますか?
あるいは、特定のアプリケーション開発やサービスリリースを考えていますか?
成果物やたどり着く内容は様々ですが、達成したい目的がないとプログラミング学習において「遠回り」となり、上達するべき学習内容も把握できません。
|
具体的なWeb系エンジニアの職種を確認しておきましょう。
バックエンドエンジニア(サーバーサイド)
バックエンドエンジニアは、Webサービスのバックエンドであるサーバー側のコンピュータ上で動作するプログラムを作るのが主な業務です。
Webブラウザやスマホアプリ等のクライアントからリクエストを受け、データベース等からのデータ取得・更新・加工を施し、クライアントに結果を返すプログラム構築が基本的な役割です。
インフラエンジニア(クラウド)
インフラエンジニア(クラウド)は、サーバーやデータベース・ネットワークそのものを構築するのが主な業務です。
AWS・GCP等の『クラウド』が発展したことにより、クラウド環境でサーバーやネットワーク構築するのが一般的になっています。
フロントエンドエンジニア
フロントエンドエンジニアは、Webブラウザ上で動作するHTML/CSS・JavaScript等のプログラムを作成するのが主な業務です。
ブラウザ上に表示したボタンやテキストに対するユーザーのアクションに処理を加えたり、サーバー側と通信し結果を表示するのがフロントエンドエンジニアの基本的な役割です。
これらの業務内容やエンジニアの職種を把握した上で、目的から逆算した学習内容を決める必要があります。
副業目的でプログラミング学習を継続したい人は、「【副業】プログラミング言語学習から稼げる案件を認定ランサーが伝授!」で解説します。
プログラミングが上達する学習のコツ(計画編)
あなたの達成したい目的・目標に沿って、逆算したプログラミング学習計画を立てる必要があります。
ここでは、プログラミング言語Pythonを例に具体的なアクションプランを提示します。
筆者がおすすめしたい学習内容は、Webフレームワークを利用したToDoアプリケーション開発です。
|
もちろん、最初から全てを理解する必要はありませんし、これらは簡易的なToDoアプリ開発から身につきます。
利用したプログラミング言語やWebフレームワーク等は以下の内容です。
|
開発マシンは準備する必要がありますが、その他は全て無料で利用でき、コストは学習時間だけになります。
実際に開発したToDoアプリは、簡易的なメモ機能を持ったタスク管理アプリです。
プログラミングが上達しない人は、特定の言語学習のみを積み重ねてしまいます。
プログラミングが上達するコツは、達成したい目的と学習目標を立て、開発過程の中で周辺知識と言語学習を並行しながら取り組むことです。
Pythonにはなりますが、もっと簡易的な内容から始めたい人は「【認定ランサー】Python初心者が作れるものを目的別に学習方法解説!」をご参照ください。
上達する学習のコツはプログラミングノートを取ること(実践編)
優秀なエンジニア/プログラマーは、例外なくプログラミングノートを作成しています。
プログラミングノートを作成することで学習効率が高まり、上達速度が上がります。
プログラミング初心者はわからない/難しい/できないなど、挫折しやすい理由がいくつか存在します。
|
結局、分かったフリをした初学者が圧倒的に多く、プログラミング学習で習得する様々な概念を本質的に理解できていないことが原因です。
そのため、プログラミングノートを取る必要があり、現役エンジニアであっても同じです。
筆者も含め、今日まで技術トレンド(レガシーからモダンまで)を熟知しているエンジニアは、例外なく独自のプログラミングノートを作成しています。
|
特に、エラー時に「なんだっけ?」となることはほぼなくなります。
プログラミングノートで何をメモするべきか
プログラミングノートで何かをメモするとき、以下のパターンでメモすることが多いです。
|
2つのパターンでそれぞれメモする内容は異なります。
特に、プログラミング初心者はエラーに詰まった際のメモを取れるようになると学習効率が激変します。
知らないことを学ぶ際のメモ
知らないことを学ぶ際のメモは、以下の内容を記載します。
ただし、絶対的なルールはメモに存在しないので参考として確認してください。
|
上記の流れを繰り返すことで、知らない内容に関する情報が日々更新されていきます。
また、専門用語だけでなく関数/メソッドやフレームワーク、周辺知識等全てに活用できます。
圧倒的に知らない/わからないといった認識不足が解消されます。
エラーに詰まった際のメモ
エラーに詰まった際のメモは、以下の内容を記載します。
こちらも絶対的なルールはメモに存在しないので参考として確認してください。
|
上記の流れをエラーが発生する度にメモすることで、エラーへの対処方法や同じエラーの回避方法を身につけます。
「あ、これ前も見たな。」といった感覚が身に付いてくると、エンジニアとしてのエラー解決の勘が養われます。
プログラミングが上達するまでの流れ
プログラミング学習において、上達できず挫折してしまう理由は5つです。
|
いつの間にかこれらの理由に当てはまる人は注意してください。
あなたの目的(目指すエンジニア像やアプリ・サービス内容)がしっかり設定されているか確認してください。
エンジニアの職種でいえば、以下のものです。
|
目的によって上達すべき学習内容が変化するので注意してください。
筆者がおすすめする学習内容は、Webフレームワークを利用したToDoアプリケーション開発です。
|
簡易アプリ開発の過程で、言語学習と周辺知識を獲得していきましょう。
言語問わず学習の中で作りたいものが見つかっていない人は、「プログラミングを学ぶ上で作りたいものがない人へ提案させてください」で解説します。