[断言]プログラミング上達のコツは「筋トレ」です[手順を解説]

こんにちは!好奇心おばけのかわそん (@KKohey4)です!

「プログラミングがなかなかできるようになりません。しっかりと勉強しているはずなのになあ。エラーが出た時も解決できなかったり、異常に時間がかかったり。。。
早く『作りたいものを作れる』ような力を身につけたいので、コツとかあったら、話を聞いてみたいです。」

このような意見に答えます。

本記事の内容

  • プログラミング上達のコツがわかります
  • よくある「力がつかない」例を紹介します
  • 力を効率よくつける手順を解説

この記事を書いている僕は、プログラミングスクールで年間50人以上を指導している、大学生です。

いろんな生徒さんをみていると、、、「力がつく」人と、「いつまでたっても力がつかない」人がかなりはっきり分かれるんですよね。

そこで今回は、その違いは何なのか、じゃあどうすればいいのかについて、お話します。

これは実際に僕が生徒さんに使っている方法でして、効果ありです。

[断言]プログラミング上達のコツは「筋トレ」です[手順を解説]

『筋トレ』して初めてプログラミングができるようになる

、、、いきなり、スミマセン。しかしわりと事実なので、お許しください。

『自分がちょっとキツイ』って思うようなことにチャレンジする

って言いかえれば、聞こえはよくなるかもですね。

というのは、『答えがあるもの=参考書とか』ばっかりやっても、たぶん、本質的な力はつきません。

だんだん、その内容に慣れてきますので、
ちょっとずつ負荷を上げていかないとですね。

✔️簡単な例

HTMLとCSSの基礎を勉強したら、簡単なポートフォリオサイトを作ってみる、とかとか。

こういうアウトプットをしてはじめて、『ググる力』とか、『0からものを作る力』がついてきます。

、、、ここで終わってもいいのですが、ちょっと寂しいので、あと少しだけお付き合いください。

3分あれば読み終わると思います。

プログラミングが上達しない原因[あるあるNG]

・できることばかり、ひたすら繰り返している
・簡単なものばかりやって、『できる気』になっている

結論として、上記の通り。本質的な力はつきません。

では、『本質的な力』ってどういうことかというと、『ググる力』とか、『0からものを作れる力』ですね。

✔️力がつかない例
よくあるのが、

プロゲートを何十周もやり込んだんだけど、結局、何も作れない

っていうパターン。

確かに、プロゲートは入門としては、たぶん最高です。

スライド形式で、サクサク進めますし。

でも、、、だからこそ知識がバラバラに身についてしまうんですよね。

Railsを勉強したあと、

「よし!自分でも作ってみよう!、、、あれ、何から始めればいいんだっけ。」

みたいなことは、けっこう、起こります。

「できるようになった」って思い込んでいるのが厄介でして、なかなか自分では気づけません。

程よい「筋トレ感」の見つけ方

結論からいうと、

『インプットしたこと + α = 程よい筋トレ』です。

カンタンすぎるのがだめなのはわかるかもですが、インプットしたものをそのまま再現するだけでも、不十分です。

もちろん、難しすぎても、ムリですね。

、、、ぶっちゃけ、このあたりのさじ加減は、『慣れ』が大きいので、試してみるのが一番早いのですが、参考までにちょうどいい例を出しておきます。

✔️『インプット + α』のいい感じの例

例えば、カウントアプリの作り方を勉強したとします。

『+』ボタンを押した時に、1増える、基本的なアプリですね。

それに+αするとどうなるか。
パッと思いつくのは、投票システムですね。

つまりこういうことです。

複数のカウントアプリを作って、それに投票できるようにする。
カウントアプリをベースにしつつも、色々考えないといけないことが出てきます。

「どのタイミングでインスタンスを作るのか」、「1人で何回も投票できたら、まずいのでは。。」みたいな感じ。

こうやって考えたり、ググったりしていく中で、どんどん「もの作り」の力がついていきます。

確実に上達する手順を解説[3ステップです]

結論は、ズバリ

  1. 目的にあった言語を選ぶ
  2. 正しい方法でインプット
  3. 筋トレ

です。

、、、もしかしたら、

「え、当たり前すぎるんですが。なに言ってんの?」

と考える方がいるかもですが、的外れです。

たぶん、本質はいつもシンプル。だからこそ、疑ったり、軽く見たりして、『行動に移せない』っていう状況が起きているはず。

という訳で、参考記事を貼りつつ、丁寧に説明していきますね。

とはいえ、イメージしづらいかもなので、
僕が0からTwitter解析アプリを作れるようになるまでの例をあげながら、説明していきますね。

①目的にあった言語を探す

自分の興味にマッチした言語を探します。

考えてみると、当たり前ですが、もし「その言語でできること」と「自分がやりたいこと」がずれていたら、勉強のやる気とか出てきませんよね。

じゃあ、どうやって選べばいいのか。

スミマセン。ボリュームが出てしまったので、別の記事を用意しておきました。

この記事で、『目的と手段』をマッチさせることができるはず。

なぜわざわざ、1記事かけて説明したか。
それは僕が昔、こういう記事がなくて、困ったからです。過去の自分を救います。

②正しい方法でインプットする

ぶっちゃけ、最重要です。

しかし、9割の初心者が挫折する場所でして、「正しい方法で」っていうのがポイントです。

例えば、

「よし!Railsを勉強しよう。チュートリアルから始めてみよう。」
と思った時。

次の瞬間、

「RailsがPCに入らないんだけど。。。SSHってなんだ?、真っ赤なエラー画面意味わからない。」

っていうことがおきます。

もしかすると、『独学の力も大事じゃん』、って思うかもですが、その通り。
でも、後からでOK。

僕の結論は、いつも一緒でして、

難易度が高い、『脱初心者』のためには、経験者の肩を借りるのがベスト。ですね。

この記事で、「挫折を防ぐにはスクール、そのコスパは高い」っていうことがわかります。

✔️僕がTwitter解析アプリを作った時

TechAcademyのWebアプリコースで知識をまとめてインストールしました。

シンプルに、カリキュラムのレベルは高いのに、受講費が安かったからです。

③アウトプット[筋トレ]

ちょっときつめのサービスを、インプットしたことベースで作ってみます。

この大切さは今までお話してきました。

ふりかえっておくと、この段階で

本質的な力=0から物を作る力、ググる力がつくから

でしたね。

✔️Twitter解析アプリのお話
テックアカデミーのカリキュラムに、Twitter解析なんか、ありません。笑

自分が成長できると思ったから、作ってみました。

その結果、身についたのは、

・TwitterAPIの使い方
・信頼できる情報の見極め方
・エラーを解決するための、合理的な手順

などですね。

なお、ここまで聞いて、「うーん、難しそうだな」と感じるかもですが、問題なしです。

『作りたい』っていう気持ちが強かったので、苦なく身についていました。

振り返ってみれば、って感じです。

ある程度、スキルが上達した後の話

ちょっと、補足です。

上達までと、あるていど上達した後では、次のレベルに進むためのアプローチが変わってきます。

結論はシンプルでして、

プライドを壊す

上記の通り。

ぶっちゃけ、ある程度できるようになってくると、

「あれ、、? もしかして、自分ってけっこう、才能ある感じ?」
みたいな勘違いをしがちになります。

で、この瞬間に成長が止まるんですよね。

対策もシンプルでして、

圧倒的な格上に会う

これだけ。

インターンや、エンジニアの勉強会に飛び込んでみると、まじで心がズタズタになります。

僕もサイ○ーズのオフィスで、何回ボコボコにされたか、、、笑
レベル1のスライムを倒していて満足していた自分が恥ずかしくなりますよ。

この恥が、成長には必要です。

まとめ:正しい方法でプログラミングレベルを上げよう

記事のポイントをまとめておきます。

  • プログラミング上達のコツは「筋トレ」です。
  • できることばかりやっても、本質的な力はつきません
  • 力をつける手順を説明しました。
  • ただし、方法を間違えると9割は挫折します。
  • あるていど力がついたら、プライドを壊そう

こんな感じですね。

やっぱり、思うように力が伸びないな〜っていう時期はどうしてもあります。

僕も、今ブログを書いていますが、、スランプ的なことは感じます。

でも、まあ、気にしてもしょうがないですよね。
筋肉痛だと思って、ちょっとずつ挑戦あるのみかなと。

この記事が、少しでも『力がつかない原因』を見つけるきっかけになったら、幸いです。