私は、機器制御や評価機のプログラムを20年以上開発していました。元プログラマーが経験をもとに、未来のプログラマーに贈る、プログラマーあるあるです。
プログラマーは、人知れず色々な苦労があります。これからプログラマーを目指す人に、その苦労と少し不思議な生態を紹介します。
・その2、開発環境(エミュレーター)と実機の差に泣かされる
・その3、デバッグは夜やるな!
・その4、欲しい情報のため本一冊購入、ネットではWebページ分からなくアタフタ
・その5、日常生活が・・こうなったらプログラマー引退?
・まとめ
その1 プログラマーは2種類に分類される
個人的な見解ですが、プログラマーは2種類に分類されます。そして、その傾向が強い人とそうでもない人がいます。
プログラミングやコンピュータ オタクの人
プログラミングやコンピューター、その業界などにとても詳しくその情報、知識、技術を愛している人です。プログラミングを道具として使うのではなく、プログラミング技術、知識やテクニックにこだわりを持っています。
プログラミングをするときは、自分の持っている技術・知識を使ってその求められる仕様を達成するのです。
プログラミングを道具として使う人
こちらのタイプの人は、他に専門があり、その専門仕事の目標を達成するため、プログラミングを道具として使います。プログラミングの技術・知識より、求められる仕様を達成するためのアルゴリズムや製品自体の性能を気にしています。
プログラミングするときは、その専門の目的を達成するために必要に応じて知識・技術を身に着けつつ開発します。
私は、後者でした。当初はオートフォーカスのソフトを、その後は評価装置などのソフトを担当したせいもあり、どうやれば、AFの性能が上がるか、どうすれば正確な評価ができるかを重視していました。
その2 開発環境(エミュレーター)と実機の差に泣かされる
機器系のソフトウェアの開発では、実機ではなくエミュレーターと呼ばれる実機を模倣した装置でプログラムを評価することがあります。
製品に組み込むワンチップマイコンの開発をやっていたときのことです。
A/D変換のタイミングをクロックの立下りで行っていたのですが、容量削減のために、タイミングを作るために入れていたNOP(no operation)のコマンドを1個削除しました。
エミュレータでもEEPROM付マイコンでも問題はなかったのですが、量産用のマスクROMのマイコンではA/D変換ができないことが起こりました。マスクROMマイコンでは、波形がなまりA/D変換がうまくできないのが原因でした。
EEPROMです。エミュレータでデバッグの後このデバイスにプログラムを書きこみデバッグをしていました。
この結果お客さんの工程を2週間止め挙句のはて800万円の損失をだしてしまいました。
ワンチップマイコンを搭載した基板です。
当時はアセンブラで開発していました。容量によりマイコンの価格が大きく変わる時代だったので、アセンブラプログラマーはできるだけ容量の小さいプログラムをつくることを要求されていました。
現在でも量産数量が多い製品は、エミュレーターなどを使用してデバッグし量産用マイコンをつくるようです。
その3 デバッグは夜やるな!
これは、疲れたプログラマーに良くある話です。夜遅くまでプログラムを作成していて、もう少しでプログラムが完成するときにデバッグすると動きがおかしいことがあります。
もう少しで完成するので、頑張って確認するのですが、いくら確認しても原因が分かりません、さんざん確認しても分からず諦めて泣く泣く帰宅します。
翌日、会社に来て再度プログラムを確認すると、とてもつまらないところでで間違っているのです・・ 誰かいじったの!?
こんなことは一度や二度ではありません・・昨日の夜に数時間は一体何だったんだろう・・?? ある時から、夜、プログラムがうまく動かなくなったら、速やかにやめて帰宅するようにしました。
これって私だけではないですよね・・
その4 欲しい情報のため本一冊購入、ネットではWebページ分からなくアタフタ!
私のプログラマーとしてのタイプは、プログラミングを道具として使うタイプです。
プログラムで達成させたい機能やアルゴリズムに対する、プログラミングの知識やテクニックが分からないことがよくあります。
今だと、すぐにググってしまえば、多くの場合解決をするのですが、私が一番プログラムを作成していたときは、多分現在よりもアセンブラやC/C++本がたくさん販売されており、本屋にも多く本が並んでいました。
休みに日には大きな本屋に行き、自分の求めたいる知識やテクニックを立ち読みにいくのです。
その記事を見つけ、その場で立ち読みをするのですが、完全に理解できなかったり、覚えられなかったりすると、ほんの数ページもしくは、ほんの数行のために何冊もの本を購入していました。専門書に近いのでの数千円ととても高価でした、ほんとにトホホです。
最近はググっていることが多いのですが、その知識や技術を見つけても。もっと良い記事や分かり易い記事がないかと思い、更にググってしまい、元々の良い記事がどこかへ行ってしまうことがよくあります。
知識やテクニックを整理して効率よく得る情報網や技術を身に着けるのはとても大切なことですね。
その5 日常生活が・・ こうなったらプログラマー引退?
小規模のワンチップマイコンの開発は一人で行うことも多く、自分の作ったプログラムだけでなく、周囲のハードウェアーも隅から隅まで知っています。
特に問題が出たときや性能が出ないときに多いことなのですが、電車の中や家で寝ている時に、何が悪いのか確認が始まります。コーディングもほぼ頭に入っているので検証ができるのです。
でもその結果、日常生活に支障がでていきます。ぼけ老人に近い現象が起きてくるのです。
人の名前がでてこなかったり、テレビを見ながらボーとして見たりしていました。
これは、かなりヤバいと思い休日は身体を動かすようにしました。
一つの事に集中しすぎる時間が長すぎると、日常生活に支障をきたすことになります。注意しましょう。ちなみに今は、問題なく日常生活を送っています。
まとめ
プログラマーのあるあるは他にもいっぱいあります。プログラムは組んだ人しか分からないところもあり、責任も大きいですが、頼られやりがいのある仕事です。
これからプログラマーを目指す人は、プログラムに飲み込まれないように、ストレスの発散方法も考えておきましょう。