【エンジニア仕事術】勉強嫌いのエンジニアが最短でシステムを作る方法

こんにちは

エンジニアのhiroです。

今回は、私が実践している仕事術の一つを公開します。

それは、今まで私が扱った事のない開発言語や技術で、何かシステムを作ってほしいと依頼された時に最初に試すことが多い方法です。

基本的に以下の2つで実現しています。

  1. サンプルコードベースで作る
  2. ベイビーステップで作る

1.サンプルコードベースで作る

前提として、まだ使い方が分からない開発言語や技術等でモノづくりをする時には、一から言語の仕様を勉強するのには時間が掛かります。

もちろん事前に勉強時間等がもらえれば良いのですが、そうでない場合もありますよね。

そんな時は、なるべく規模が小さいが動くサンプルコードを全力で探します

Googleで調べながらgithubだったり、記事に書いてるサンプルコードを探します。また本屋に行き、書籍にサンプルのコードやプロジェクトのURLを載せているものがないかという基準で探します。

新しい技術を勉強するときに、一番壁になるのが、概念を理解してコードに落とし込む事です。

本や動画などを見て勉強せずに、新しい概念を理解するには、実際に動くものを探して動きを再現させるのが一番早く理解できます。

そして、取得してきたサンプルの設定値や、項目を少しいじったりして挙動を確認し覚えるのです。

もちろん、開発言語ごとの細かい仕様や、なぜ動くかを理解することが上級のエンジニアになる上では必要かと思います。

しかし、そこまで勉強して専門性を高めようと考えてない開発言語や技術の分野でシステム作成の手伝いをすることもあるかと思います。そのような場合は最短で目標に達成することだけを考えましょう。

良く使うキーワードや本の探し方

  • [特定の技術] or [実現したい機能] + sample or github or exmaple or 入門
  • 本屋で、本の目次の次ページくらいにURLがあればメモしておく、書籍内にサンプルコードが多くあれば購入する

楽して、動くコードを手に入れるのがゴールに最短で近づく鍵です。

2.ベイビーステップで作る

1で、最低限動くサンプルが手に入り、そこから自分で手を加えなければいけない場合は、この方法がおすすめです。

ベイビーステップとは、一気に大きく作らず、少しずつコードを追加して目標に達成する手法です。

TDD(テスト駆動開発)との相性も良いので、是非TDDも取り入れてみましょう。TDDについてはまた別の記事で紹介します。

開発する前に、必要な処理を全部考えて一気に実装する、勉強嫌いな人はそんな面倒なことをしたくないはずです。

ならば、たったの1ステップで目標を達成してしまえばいいです。

例えば、自動販売機のようなシステムを作るとして、1000円を入れて120円の商品を買うと、880円のお釣りを返すような場合は最初に以下のような処理を書きます。

public int calculate() {
  return 880;
}

こんなコードを書くと、何円入れてもどんな商品を買っても、必ず880円しか返ってこないダメなシステムじゃないか(怒)と言うかもしれません。

しかし、最初は、これだけで良いのです。

そこに、TDD的な考え方で、500円を入れたら、380円を返すという処理を加えると以下のようになります。

public int calculate(int payment) {
  int price = 120;
  return payment - price;
}

このコードなら、

  • 1000円を入れたら、120円引かれて、880円になります。
  • 500円を入れたら、120円引かれて、380円になります。

次に、120円以下のお金を入れた時にストックする処理を考慮し、その次は120円以外の商品を追加し・・・

と必要なケースを考えて、処理を追加していくのです。

特に、経験の少ない開発言語の場合は、少しずつ処理を増やせるので実装がしやすいのはもちろんですが、経験豊富なエンジニアでもベイビーステップは非常に助けになる開発手法です。

もし皆さんが勉強時間を最小化して目的に達成したいと言う場合は、今回の記事の内容を実践してみるのも良いかと思います。

===============

以上、勉強嫌いのエンジニアが最短でシステムを作る方法について紹介してみました。

この情報が皆さんの人生のお役に立てれば幸いです。

エンジニアとして日本のITリテラシーを高めていきたいと共感して頂いた人は、是非このブログの拡散とyoutubeの方も見ていただけると嬉しいです。

記事を最後まで見ていただきありがとうございました。

執筆者: hiroエンジニア

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です