LINEで現役エンジニアに直接質問してみよう!登録無料

プログラミング・エンジニアを本気で学びたい人は、作業を細かく分割して確かめることで理解&大きく成長できる!

プログラミングをする時、細かい事柄を色々すっ飛ばして、はじめから大きな事をやろうとしていませんか? プログラミングで大きく成長するには、「色々調べないで、とりあえずやってみる」という事が大事なんです。 プログラミングをしているということは、なにかしたいことが合って、それを目標に勉強をしているはずです。 そこで陥りやすいのが、必要な事柄の1〜10までのすべてを勉強してから始めようと思ってしまうことです。 結論から言うと、それは「効果的ではありません」。 何故か?それは、プログラミングとは論理だから。論理は1つ何かが壊れると、すべてが崩壊します。 つまり、勉強でなにか1つ間違ったことを覚えれば、それ移行はすべて意味が無くなっていまいます。 だから、少しずつ進む事が大事。 何もかも調べないで、全部を知ろうとしないで、できる範囲でそれが本当に正しいのか?を常に疑って進めていくことが大事です。 まずは、今すぐにやってみましょう。

作業を分割する粒度はどのくらいにしたらいいの?

「作業を分割する」。やったことがない人には、以外に難しいものです。 その人それぞれがどのくらいの理解力があるかによって、粒度は異なるからです。 一般的に言うのは難しいので、ここでは自分の体験から一例を紹介しましょう。 例えば、「画像を最適化するシステムの作成」という目標があるとします。 まずはじめに「単体のファイルを圧縮するプログラム」を作成します。 手軽なライブラリを1つ見つけましょう。ここで、sharpを使います。 ライブラリの吟味は「ライブラリの吟味は粒度の増大」につながるからおこないません。 プログラムは、READMEにあるような初歩的なものを写経します。このように。
$ npm install sharp -g
const sharp = require('sharp');

sharp('lena.jpg')
  .rotate()
  .resize(200)
  .toBuffer()
  .then(data => {
    console.log(data)
  })
  .catch( err => {
    console.log(err)
  });
これだけでは使いにくいし汎用性も低いので、サーバーに画像をアップロードしたらこのプログラムが動くようにしましょう。 サーバーでプログラムを動かすには、expressが適当です。 そうすると、「画像を最適化するシステムの作成」目標の下に 「画像を最適化するプログラムをexpressに組み込む」という目標ができます。 「expressに組み込むには、データをexpressにPOSTしたとき、expressではどのような形式で受け取れる」のかを知る必要がありますよね。 なので、「画像を最適化するプログラムをexpressに組み込む」という目標の下に「expressでPOSTデータを受け取る&データの確認」という目標ができます。 そして、次々と、目標の下に更に目標を立てて、階層化していくんです。 これが、一番はやく成長できる「粒度分割方」です。 階層化は、行き当たりばったりで大丈夫ですよ あれこれ考えるより、手を動かしたほうが成長は早いし楽しいです。 目標は実際に行動できるものにしましょう。

まとめ

目標を階層化して粒度を細かく立てる方法を紹介しました。 これができれば、、自分を大きく成長させることができます。 はじめから目標を立てても仕方ありません。行き当たりばったりで行きましょう。
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。