3章人間と関わる

コミュニケーションにおける唯一最大の問題は、コミュニケーションできたという幻想だ。

――ジョージ・バーナード・ショー

キッチンに立ち、今晩何を作ろうか考えています。カラフルな写真や手順がたくさん載っているレシピ本をめくってみます。レシピってアルゴリズムみたいだと思いませんか? 環境を整え、手順に従えば、結果が得られます。創造性、正確さ、方法論、そしておいしさといったものが、エンジニアとしての心に響きます。アルゴリズムについて考えていると、プログラミングを最初に習った頃のことを思い出します。最初から情熱があったわけでもなく、一瞬でわかるようになったわけでもありませんでした。時間をかけて、ゆっくりとひも解いていったのです。最初はプログラミングが嫌いでした。とてもイライラしました。ほとんどのプログラミング言語の基礎となる概念や、変数、メソッド、引数、ループなどの馴染みの構成要素も、何も理解していなかったのです。いじくっていても、コンパイラはわけのわからないエラーを延々と吐き出し続けました。

でも、努力しているうちに、コンピューターとの関わり方がだんだんわかってきました。初めて自分で書いたプログラムを覚えているでしょう。宿題の一部で、ユーザーに数字の入力を求め、1からその数字までの合計値を表示するものでした。うまくいって、結果が即座にコンソールに表示されたときは、すごい満足感でした。

それから何年ものあいだ、学校や大学でも、それ以外でも、プログラミングのプロジェクトをいじくるのにどれだけ時間をかけたかわかりません。オープンソースのソフトウェアをダウンロードして、他の人が書いた巨大なコードベースに驚嘆することもありました。学位取得の最終年のプロジェクトは、自分で発明した、小さいながらも楽しいプログラミング言語のコンパイラの開発でした。すると、ありえないことが起こりました。自分の趣味にお金を出してくれる職を得たのです。 ...

Get エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.