ソースコードがあなたを救う ソースコードとキャリアをカンガエル

どうも、ミヤマです。

僕も一応、エンジニアです。

ソースコード(後、コードと略)を見ない日はありません。

休日にだってコードを書きますよ。

でもそんなにコードって大事なのでしょうか?

うん。大事ですよ。

こんなところで今回は、エンジニアにとってのコード、を考えます。

コードはキャリアを助ける

コードはシステムや、プロジェクトのためであるのは、自明でしょう。

今回はその他のメリットを考えてみます。

そもそも、エンジニアが絶対にコードを書けないといけないのでしょうか?

いや、そうとも限りません。

コードが書けなくても実際は、エンジニアになれます。

僕は、実際にそんな人を見たことがあります。

それでエンジニアでやっていました。

エンジニアの本質的な仕事は、問題解決です。

ヒアリングをして、要件定義をして、という工程ならそんなにコードが書けなくてもできます。

仕組みさえ理解していれば。

ただ、コードが書ける、手が動かせるというのは、キャリアという点でメリットです。

コードが書けると、フリーランスにだってなれるし、自分の好きなプロダクトも作れます。

そして、別の会社に入ったとしても、手は動かせるし、問題解決もできます。

この点においてメリットです。

なので、もし会社に縛られたくないなら、コードが書けるべきです。

コードの基礎はここから

んじゃ、コードってどんなことを勉強したらいいのか、と考えた時に多くのプログラミング言語を使えることは特に重要ではありません。

『ジョイ・インク 役職も部署もない全員主役のマネジメント』では、多くの言語を学んで自己を規定するのではなく、その時に適切な言語を選択すべき、といいます。

その理由は、このようです。

「想像してみてほしい。それから数か月後、iPhoneとApp Storeが発表され、Objective-Cという言語が突如として世界で一番重要な言語のひとつとなったとき、彼らはどれだけショックを受けただろうか? プログラミング言語への信奉は、まったく新しい世界でどのくらい役に立っただろうか?」

『ジョイ・インク 役職も部署もない全員主役のマネジメント』(リチャード・シェリダン, 原田騎郎, 安井力, 吉羽龍太郎, 永瀬美穂, 川口恭伸 著)より

ならば、その基礎にある、ルールや仕組みから入ったほうがいいと僕は考えます。

僕はそのコードの基礎はこれらの本から学びました。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック /Dustin Boswell,Trevor Foucher

この本はコードの書き方の定番で、この本を読んでようやくスタートラインでと言っていいです。

例えば、同著では「名前に情報を詰め込む」というアイデアがあります。

つまり、変数名や関数名にそれだけ気を使え、ってことです。

なぜなら、そのコードは一度だけ書かれるが、何度も読まれるから、です。

そんなコードの基礎がここにあります。

今まで、なんとなくで変数名をなんとなくで書いていた人、書いてる人、そして、エンジニアとして働き始めた人、始める人は読むべき一冊です。

新装版 達人プログラマー 職人から名匠への道/(AndrewHunt, DavidThomas, 村上雅章 著)

この本には達人プログラマー、じゃなくて、初心者プログラマーでもいいのではないかと思うくらいエッセンスが詰まっています。

それくらい全エンジニアが読んでほしいです。

(いや、読んでいるかもしれません。)

そのなかでも、僕が衝撃的だった一節があります。

「ソフトウェアは建築と言うよりもガーデニング(つまりコンクリートではなく、より有機的なもの)に近いのです。まず、初期の計画と条件に従って、庭にさまざまな植物を植えます。すると、あるものは力強く育ち、あるものは枯れて肥料になってしまいます。また、」

『新装版 達人プログラマー 職人から名匠への道』(AndrewHunt, DavidThomas, 村上雅章 著)より

僕は、この本でソフトウェアとはなんたるや、プログラミングとは何たるをここで思い知りました。

テスト駆動開発/KentBeck

特に最近のフレームワークは当たり前にテストコードを書きます。

(書かない会社もあるかもしれませんが。)

この本はまさに名は体を表し、テスト駆動開発のやり方が紹介してあります。

僕はこの本でテストコードを学びました。

テストを小さく書いて、レッド→グリーンにするのがとても楽しくてプログラミングをもっと好きになる一冊でもあります。

コードは手段

もう一度言っておきます。

コードが書けなくても、エンジニアにはなれます。

エンジニアは問題解決が本質的な仕事です。

問題解決の手段がコードです。

ただ、コードは書けたほうがいい。間違いなく。

こんなところで、このブログで、コードに対する意識が少しでも変わればな、なんてことを思いながら。。。

あとがき↓

ちなみに、あなたのコードを変えた本を教えてほしいです。

今回のテーマのヒント↓

  • 『ジョイ・インク 役職も部署もない全員主役のマネジメント』(リチャード・シェリダン, 原田騎郎, 安井力, 吉羽龍太郎, 永瀬美穂, 川口恭伸 著
  • リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック /Dustin Boswell,Trevor Foucher
  • 新装版 達人プログラマー 職人から名匠への道/(AndrewHunt, DavidThomas, 村上雅章 著)
  • テスト駆動開発/KentBeck

コメントを残す

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