独学でもプログラミングを挫折しない方法は「分解思考」です

2018年12月27日

エンジニアの虎岡です。みなさんはプログラミングを挫折した経験がありますか?私は十数回あります笑。

今日は曖昧な精神論抜きにプログラミングに挫折しないコツを教えます。

プログラミングがわかる人が周りにいない

プログラミングに挫折する原因として、周りに詳しい人がいないということがよく挙げられます。私もこれに深く同意します。詳しい人がいれば教えてもらえるし、悩み相談を聞いてもらえるからです。

しかし!!!

そんな友だちどこにもいねええ!!!。。。

と言いたくなりますよね。

実際私も大学で勉強していたとき周りの友だちはアホばかり。勉強ができる人は一人もいませんでした。プログラミングのことを聞こうにも全く参考にならなかったのです。

詳しい人がいるに越したことはありませんが、いなくても大丈夫なようにコツを教えます。

ラーメンのスープではなく「ゆでたまご」を作れ

初心者は難しいことをやりがち

プログラミングに挫折してしまう原因は「難しい」からです。もう少し言うと「難しく感じてしまっている」ということです。難しく感じる原因はやりたいことが整理できていないからです。

プログラミング初心者を見てよく思うのが難しいことをやろうとしすぎです。できもしないことをやって失敗し諦める人が後を絶ちません

いきなりラーメンのスープは作れない

料理に例えてみます。言うなれば初心者はラーメンのスープを飲んだだけで自分でラーメンのスープを作ろうとし、作り方がわからず悩んでいるのです。

ラーメンのスープの作り方は複雑です。ラーメンの店主が膨大な時間をかけて研究した味です。素人に毛の生えた初心者にわかるはずがありません。

初心者は日頃からラーメンを食べているので自分でもラーメンが作りたくなるケースが多いです。気持ちはわかります。グッとこらえてください。ラーメンは必ず作れるようになりますから。

ITサービスにおいても同様です。

  • インスタグラムのようなサイトを作りたい
  • メルカリのようなアプリを作りたい
  • 自分でECサイトを作りたい
  • 好きな趣味の人が集まる新しいSNSを作りたい
  • YouTubeのような動画サービスを作りたい

これらの要望はすべて「あそこの行列ができるラーメン屋に行ったら美味かった。自分でも作ってみたいんだよね〜」と言っているのと同じです。99%途中で挫折して諦めます。

ゆでたまごを作れ

初心者がまず作るべきなのは大したことない料理です。「ゆでたまご」を作りましょう。ゆでたまごを食べて作り方を想像してみてください。

卵を買う > 卵を茹でる > 皮をむく > 完成!!

できそうな気がしませんか?笑。

ITサービスで言うと

  • 自分はSNSをたくさんやっている。自分のアカウントが一覧表示されるだけのページを作ろう。

これくらいのことならできそうです。発想の仕方次第では簡単なページでも役に立つ場合が十分にあります。SNSアカウントが一覧で見れるページ。便利ですよね。

重要なポイント「分解」

ゆでたまごの優れているところは工程を分解しやすいということです。

実はこの「分解」という考え方はプログラミングにおいて非常に重要です。なぜなら分解ができていないとコンピュータに正しい命令を送ることができないからです。

分解が下手な例

ゆでたまごの分解がうまくいっていない例を書きます。

卵を買う > なんかいい感じにする > 完成

これじゃ作れませんよね?「茹でる > 皮を剥く」という2つの行為に分解できていないので作り方がわからない状態になっています。

こんなことが誰でもできるわ!と思うかもしれませんが、実際多くの人ができていません。10年エンジニアをしている人でも正しくできない人もいます。

分解がうまい例

一方うまい例ではこうなります。

  1. イトーヨーカドーに行く
  2. 地下の生鮮食品売り場に行く
  3. 卵を買う
  4. 水を沸騰させる
  5. 沸騰した湯に卵を入れる
  6. 10分待つ
  7. 卵を取り出す
  8. 皮を剥きやすいように冷やす
  9. 皮を剥く
  10. 皿に盛り付ける
  11. 完成

ここまで詳細に書くと明確に作るイメージが浮かびますよね?ゆでたまごの工程を細かく、細かく分解するとできます。

分解のメリット「質問力がつく」

このように分解が正しくできるとやることがはっきりします

当然初心者ですから分解してもそれをプログラミングできるかはわかりません。しかし分解できているので何がわからないが把握できます疑問点がわかっていると質問することができますStackoverflowなどの質問サイトを使えば熟練者が疑問に答えてくれるでしょう。

挫折する人は「何がわからないのかわからない」状態になっています。分解の思考術はそこから救ってくれます。

分解のメリット「目標が立てやすい」

分解ができるようになると目標が立てやすくなります。例えばインスタグラムを作りたいという大きな目標を持っていたとします。しかし技術力が足りず作れそうにありません。

インスタグラムを分解すると次のようになりました。

  1. 写真を撮る
  2. 写真にエフェクトを適用する
  3. 写真に説明文をつける
  4. 写真と説明文をuploadする
  5. タイムラインに表示される
  6. 友達からいいねをもらう

この分解は当然十分ではありません。しかし分解ができているので「工程1をできるようにする」という小さな目標が立てられます。このような小さな目標をこなしていけばいずれはインスタグラムを作るという大きな目標を達成できるのです。