スライドショースライドショースライドショー

プログラミングが早く上達するコツ│上達する人・しない人の違いも解説

どうも、こんにちは。インストラクターの佐野です。

突然ですがあなたは、

プログラミングが一向に上達しない..こんな頑張って勉強しているのに..
このままで大丈?一体どうすればいい?

と、お困りではないでしょうか?やってもやっても中々自分が思った通りに上達しないと不安になりますよね。

実は、プログラミングが上達しない人には共通項があります。もしかしたらこの記事をご覧のあなたは、その共通項に当てはまってしまっているのかもしれません。

でも安心してください。上達しない共通項を理解して、修正し、正しい勉強方法を実践すれば、プログラミングは確実に上達していきます。

そこでこの記事では、過去20人ほどインストラクターとして指導してきた僕が感じる「プログラミングが上達しない人の共通項」を提示しながら、効率的にプログラミングが上達していく勉強方法を紹介していきます。

この記事でプログラミング上達のコツを掴んで、楽しくプログラミングを学んで頂ければ幸いです。それではどうぞ!

はじめに:プログラミングの上達に才能は関係ない

画像:Shutterstock

まずはじめに言っておきたいことが、プログラミングの上達の早さに才能のある・なしは関係ないということです。

タイピングスキルによってコードを書く速さに個人差がある場合はありますが、それは微々たるものです。

結局はたくさんコードを書き、プログラミング上達のために努力した人が早くマスターできます。

とはいえ、その努力の仕方が間違っていてはなかなか上達しません。

つまりプログラミングを早く上達するためには「正しい方法での努力」が必要となるのです。

ちなみに、挫折せず独学でプログラミングを上達させるための方法は以下の記事にまとめていますので、こちらも読んでみてください。

もう挫折しない!プログラミングの独学を成功させる「正しい」勉強法
更新日 : 2019年6月27日

プログラミングが上達しない人は手段の目的化が起きている


画像:shutterstock

続いては、プログラミングが中々上達しない人に共通している点を紹介します。

それは、「手段が目的になってしまっている」という点です。

手段が目的になる」というのは、「目的を達成するためにプログラミングという手段を使っているが、いつしかプログラミングを学ぶことが目的になる」ということです。

ちょっと難解なので、具体例をあげてみましょう。

具体例1.技術書を終えることが目的になる

技術書は分厚く、ちょっとやそっとじゃ終わりません。何事も最後までやり遂げる根気は必要だと思いますが、技術書に書いてあることが全てあなたにとって今必要な知識とは限りません。

技術書を最後まで終わらせることがいつの間にか目的になっていませんか?

具体例2.1つの用語を完璧に理解することが目的になる

分からないことを理解することにこだわりすぎて、学習が思うように進まない人などが当てはまります。これは真面目な方や完璧主義な傾向がある方によく見られます。

分からない用語が1つあったら、ただひたすら1つの用語を理解できるまで調べ続け、なかなか理解ができないまま時間が過ぎてしまう。そういった経験はないでしょうか?

手段が目的になるとプログラミングが上達しない!

画像:Shutterstock

では、なぜ手段が目的化している人はプログラミングが上達しないのでしょうか?

一言でまとめると、「遠回り」だからです。

プログラミングを学ぶことはあなたにとって「手段」でしかないはずです。プログラミングを学ぶのは、その先に叶えたい「目的(夢や目標)」があるからだと思います。

例えば、

  • フリーランスエンジニアになりたい
  • WEBサービス・アプリを作ってみたい
  • ビジネススキルの一環として身につけたい
  • (プログラミングスキルを身につけて)起業したい

このような目的があるはずです。

プログラミングの教科書や技術書を買って学習する、スクールや塾に通って学習することは目的を達成するための1つの「手段」として使っているだけです。

教科書や技術書を完璧に理解すること、スクールに通い続けることが目的ではありません。

サービスを作ってみたい」という目的を持った人であれば、教科書の内容で理解できない、分からない部分が多少あっても問題になることは少ないです。

WEBフレームワークやプログラミング言語の仕様を全て理解できなくとも、見よう見まねでコードを書けば動くものは作れます。知識が不十分でも実際にサービスを公開することもできます。

「サービスを作ってみたい」という「目的」を一度でも達成することが重要なのです。そうしないと、いつまで経っても次のステップへ進めません。

分からなかった部分や言語仕様を理解したりすることは、次のステップで行った方がいいと考えます。

逆に言えば、プログラミングの上達が早い人と遅い人・上達しない人の差は「手段が目的になっていないかどうか」にあると言えます。

目的を正しく設定するとプログラミングが上達する3つの理由

画像:Shutterstock

ここまでの内容を踏まえると、「目的を正しく設定するとプログラミングの上達が早くなる」と言えますが、そう言える3つの理由を解説します。

理解が早く、学習時間が短くなるから

理解ができない部分はとりあえず飛ばして、一通り学習を終わらせても最低限の知識しか身につきません。

しかし、一通り学習することで「スタートからゴールまでの流れや全体を把握すること」ができます。

そうすると自分が分からなかったのはどういう部分だったのか、足りない部分はどの部分なのかが理解できるようになります。

あとはこの部分が理解できればOK!

という状態になるわけです。

それによって明確に自分の分からない部分を質問することだってできるようになります。それによって学習がスムーズにいき、結果として理解が早く上達が早いのです。

学習のモチベーションが維持できるから

プログラミングは一朝一夕で習得できるようなスキルではありません。継続して学習していくことが非常に重要なのです。そのためには、「モチベーション」は必要不可欠です。

手段が目的にならないということは、自分の立てた目的を最短最速で達成できます。そのため、さらなる学習意欲が湧きます。小さな目的達成をすることで、成長を感じられ充実感も味わえます。

さらに、自分に足りない部分がわかるので、ゴールまでの道のりがより明確になります。

目的に集中しやすくなるから

当たり前ですが、目的を達成しやすくなります。「手段が目的」にならないので、「手段」を選ばなくなります。とにかく「目的」を達成することに意識を集中するので、遠回りすることがないです。

これは、もはやプログラミングの上達だけに関した話ではありません。

  • 英語がしゃべれるようになりたい
  • 料理が上手くなりたい

こういった、ありとあらゆる目的に共通して言えることです。

プログラミング上達のための具体的な3つの解決策

画像:Shutterstock

では具体的に、「手段を目的にしない」ためには何をすれば良いのでしょうか?

目的の再確認

答えは簡単です。今一度、あなたの「プログラミングを学習する目的(夢・目標)」を確認し直してください。

日々の勉強方法はその目的を達成するための1つの手段にすぎないということを理解することです。これは、何度も何度も念じて頭にすりこまねばなりません。「エビングハウスの忘却曲線」によると、人間の記憶力はなんと「1時間で56%で、1日経つと74%忘れる」、と言われています。

img
参照元URL:http://matome.naver.jp/odai/2135467329396936701

本来の目的を忘れ、プログラミングを学習すること自体が、いつしか目的にすり替わってしまうのも仕方ないと頷けます。目的を再確認し、それを毎日しっかりと自分の意識の中に落とし込むことが必要です。

期限を決める

そして次に、「期限を必ず設けること」です。あいまいな期限を設定しても意味はありません。目的(目標)を達成できる可能性が下がります。

  • 〇〇技術書を来週の日曜日までに終わらせる
  • 〇〇技術書記載のサンプル改造を来月の1週目までに終わらせる
  • オリジナルアプリのワイヤーフレームの企画をその次の週に終わらせよう

目的(目標)設定は必ず、「SMARTの法則」を意識して設定することです。

  • SMARTの法則
    • Specific:具体的である
    • Measurable:計測ができる
    • Agreed upon:同意している
    • Realistic:現実的である
    • Timely:期日が明確

当てはめるだけで、最高の目的(目標)設定ができるので、ぜひ参考にしてみてください。

学習プランを見直す

最後にあなたが今やってるプログラミングの学習プランを見直すのも実は重要。

学習プラン自体が間違っていては上達するものもしません。

たとえば、Webサイトの制作をしたいのに、一般的にWebサイト開発に用いることのない言語を学習していても意味がありません。

また、基礎部分ができていないのに、学習難易度の高い言語にいきなりチャレンジしてしまう例もあります。

こうした誤った学習プランを避けるためにも、下記リンクからあなたに最適な学習プランを診断してみましょう。

無料で使えますし、3つの質問に選択式で答えていただくだけで簡単なプログラミング学習診断ができます。

プログラミング学習プランを診断する

プログラミングが上達するコツ・勉強法


画像:shutterstock

ここまでの解説で、プログラミングが上達しない人の共通項と、その解決策がお分り頂けたかと思います。では、次にどのように勉強していけばプログラミングが上達するのか?そのコツやポイントを紹介していきます。

具体例があった方が分りやすいかと思うので、ここでは「オリジナルのWEBアプリを作る」という目的を持った人を例として、効率的な勉強方法・コツを紹介していきます。

プログラミング学習本で基礎を再確認

ネットに落ちている情報などを見て独学で勉強を始めてしまった人は、そもそもプログラミングの基礎部分がわかっていない・できていない場合も多いものです。

そこで改めてプログラミングの基礎をマスターするために、初心者向けのプログラミング学習本を読むのもおすすめです。

例を挙げると「Webとプログラミングのきほんのきほん」等がすべてのプログラミング言語に共通する基本部分を中心に学習できるのでぴったりです。

その他、おすすめのプログラミング学習本は以下の記事にまとめていますのでこちらをお読みください。

【初心者向け】プログラミング入門書としておすすめの本9冊
更新日 : 2019年10月8日

見よう見まねでコードを書く(写経)

学習動画や参考書などのサンプルコードを、見よう見まねでいいので、そのまま書き写す事を「写経(しゃきょう)」と言いますが、これは一つの効率的な勉強方法です。

すでに書いてあるコードをそのまま書き写すだけで意味あるの?と思う方もいるかもしれませんが、写経によって、

  • デバッグ能力が身につく
  • 実際に動作を確認できる
  • タイプミスするポイントを掴める

など、様々なメリットがあります。コードを眺めて時間を消費してしまっているよりも、圧倒的にプログラミングの基礎能力を向上させることができるので、どんどん実践してみましょう。

ただし、コピー&ペーストでは意味が無いので注意が必要です。

なお、プログラミングの上達に写経が最適な理由と具体的な方法については以下の記事にまとめていますので併せてお読みください。

【初心者必見】プログラミング上達のコツは写経!学習方法と教材を紹介
更新日 : 2019年8月29日

とにかく無理やりでもいいので作る

理解しようとし過ぎるのも良くありません。これも手段が目的になってしまう時の例です。まずは細かい事を気にし過ぎず、とにかく動くモノが作れるまでやってみましょう。

究極を言えれば、コードの意味をあまり理解していなかったとしても、自分が作りたいモノを作れればそれでオッケーなのです。

エンジニアの方でさえ、みんながみんなきちんとロジックを理解しているかというとそうではありません。とにかく手を動かして作るという事を意識しましょう。

分からない部分へ戻って詳しく調べる

不細工なコードでも、ある程度作り終えたら、そのあと分からなかった部分を調べると理解度が増します。

「手を動かして書いてみる→無理やり作る→分からなかった部分を調べる」これを反復していくうちに、次第にプログラミングが上達していきますよ。

ちなみに、「調べる」際はポイントがあり、実はこれはプログラミングの学習効率にかなり影響してきます。「検索のコツ」に関しては以下の記事で詳しく解説しているので、目を通してみてください。検索力で学習効率は一気に上がりますよ。

プログラミング上達のコツとは?エンジニアに学ぶ検索テクニック
更新日 : 2019年12月6日

時には時間を置く

分からない部分に悩んでいる時、段々と頭が熱くなってしまったり、視野が狭くなってしまったりする事は誰にでもあります。

煮詰まってしまったら、一旦寝たり、シャワーを浴びたり、体を動かしたりして、リラックスすることも非常に大切です。そうやって頭が整理されると、学習に戻った際に急にエラーが解決できるというのは意外とあったりします。

もちろん、休憩のしすぎには気をつけましょう。

30分悩んで分からなかったら質問する

これはプログラミングを上達する為に最も大切な事と言えます。

プログラミング学習をしていて、必ずぶつかるのが「エラー」ですよね。中には、「一つのエラーを解決するのに丸一日かかってしまった」なんて経験をした事がある人もいるのではないでしょうか?

これでは、時間を消費してしまうのは勿論のこと、モチベーションがドンドン下がり、上達どころか結果として挫折してしまいます。プログラミング独学の挫折率はよく8割ほどと言われますが、この理由のほとんどがエラーとの戦いに消耗してしまうことです。

なので、「一つのエラーと向き合って悩むのは30分まで」と決めてしまいましょう。もし30分で解決できなかったら、分かる人に聞くしかありません。

周りにエンジニアや、コーディングができる人がいる方は、その人に聞くといいでしょう。とは言っても、「聞ける人なんていないよ!」と思っている人も多いことでしょう。

その場合は、やはり多少お金はかかりますが、プログラミングスクールを利用して、メンターを作り、効率的にプログラミングが上達する環境を作る事をオススメ致します。

独学に自信がない方・より早くプログラミングが上達したい方は…

また、ご紹介してきた内容はいずれも「独学」を想定しています。独学は費用がほぼかからずマイペースで学習できるのが強みですが、一方で

  • 分からない部分がすぐに質問・解決できない
  • モチベーションが続きづらい
  • 偏った・もしくは誤った知識やスキルが身についてしまう

等のデメリットがあることも確かです。

事実、以下の図にもあるように「プログラミングの挫折率は約90%」という結果が出ています。

独学の大半の人が挫折してしまう事実がある中、プログラミングをより早く上達させるためにはサポートが重要になります。そのサポートを受けられるのがプログラミングスクールになります。

弊社でも、オリジナルWebアプリ開発のサポートなどプログラミングを上達させるためのサポートが徹底的に行われていて、あなたの目的を達成する為の「オーダーメイドカリキュラム」を作成した上で、現役エンジニアがマンツーマンで指導を行います。

だからこそ、最短・最速で目的を達成しやすく、結果としてプログラミング上達への近道となります。

興味がある方は、まずは無料体験レッスンを利用してみてください。下記カレンダーから1分程度で直接予約が可能となっています。オンラインでの利用もできるのでまずはお気軽にご相談ください。

まとめ

いかがでしたでしょうか?意外とハッとした方もいらっしゃるのではないかと思います。そんな、あなたのお役に立ったのであれば幸いです。

一番重要なのは、本来の「目的」を忘れないこと。意識するだけで、あなたのプログラミング上達スピードは飛躍的に向上するでしょう。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

cta_under_btn

書いた人

佐野裕史

佐野裕史

侍エンジニア塾インストラクター。
主に技術担当をしています。

【経歴】
力仕事、接客業、営業職など様々な業界を経てIT業界に参入。
IT未経験からスタートし、1ヶ月で仕事獲得に奇跡的に成功。
1年半後にフリーランスに転身。

Web開発を主に行っており、得意とするのはRails、Ruby。
【技術スキル】
Rails、Ruby、Swift、Java(Android)、JavaScript

【趣味、趣向】
麻雀
MTG(マジックザギャザリング)
ダーツ、卓球、野球、ボウリングなどの球技

【Facebookページ】
https://www.facebook.com/hiroshi.sano.7
【Twitter】
プログラミング講師@佐野裕史
自分でプログラミングができない人のために情報を発信しています。
お気軽にフォローください。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説