機械に搭載するシステムを開発する組み込みプログラマ
私たちの生活に欠かせない仕事
組み込みプログラマは、エアコンや洗濯機、自動車や工場で使われるロボットなど、さまざまな機械に組み込まれる部品のプログラムをする職業です。
ロボットはともかく、エアコンのプログラムと言われてもピンと来ない人も多いのではないでしょうか。確かにエアコンには大きな液晶画面が付いているわけでもなく、マウスやキーボードのような一般的な入力機器もありません。ですが、エアコンは指定した温度に近づくと勢いが弱くなり、そこから離れ始めると勢いが強くなります。また、機種によっては人間のいる場所を感知し、そこを狙い撃ちするような物もあります。これを自動的に繰り返せるのは、人間のように考える力があるからでも、内部に妖精が住んでいるからでもありません。エアコンの中に組み込まれた小さなコンピューターと、その上で働くプログラムがこうした温度調節や複雑な動作を制御しているのです。そう考えると、テレビや炊飯器、電子レンジなどほとんどの家電は組み込みプログラマ無しには今のような便利さを保てないことがわかるはずです。
それは家の外にも言えます。自動車や鉄道、バスや飛行機といった交通機関から、それこそ道端の自動販売機に至るまで、私たちの生活の多くの場面は小さなコンピューターとプログラムによって支えられているのです。その名前が表に出ることはほとんどありませんが、大きな誇りを持てる職業と言えるでしょう。
慎重さや丁寧さに自信がある人におすすめ
通常、こうした用途に使われるコンピューターは、普通のPCやゲーム機で使われる物よりもはるかに安い物です。高性能が求められるPCやゲーム機なら「多少高くなっても買う」という購入者は多いですが、組み込み用途の場合は製品全体の価格を少しでも安くするため、性能的にギリギリのラインの物が選ばれます。そうなると、苦労するのはそれを扱う組み込みプログラマです。高価なコンピューターなら、適当に書いたプログラムでもそこそこの速さで実行してくれますが、そうでない場合は徹底的に無駄を省かなくてはいけません。使用する言語についても、Javaのような人間にわかりやすく扱いやすい言語が使えることは少なく、ほとんどの場合はC言語か、それ以上にコンピューター寄りのアセンブリ言語を使うことになります。
このため、習得が難しい言語を自在に扱う能力だけではなく、さらにバグを出さない注意力も組み込みプログラマには求められます。もちろん、バグに注意すべきなのは他のプログラマにも言えることですが、企業で使われるシステムにしても、ゲームなどに使われるシステムにしても、ソフトとハードが分かれていれば後から修正を行うことは比較的簡単にできます。ところが、組み込みプログラマの場合は、こうした後からのバグの修正ができないことが多く、その場合、万が一修正が必要になってしまうと「製品を回収して該当部品を交換」という大変な手間がかかってしまうのです。
プログラマにもいろいろなタイプがありますが、組み込みの現場で求められるのは職人的な丁寧さです。開発速度や最新技術の習得に自信が無くても、コツコツひとつのことを責任を持ってやり遂げられるタイプの人は、組み込みプログラマに向いていると言えるでしょう。