生涯現役のITエンジニアを目指して、日々成長していくためのコラムを紹介します

45歳でプログラマとしてやっていくということ

»

エンジニアライフ読者のみなさま、こんにちは。

誕生日を迎えて45歳になりました。四捨五入すると50代。いよいよ人生そのものが後半にさしかかってきました。あといったい何年生きられるのでしょうか。

事業内容

現在やっているお仕事の内容としてはソフトウェア開発と出版事業の2本立てです。

ソフトウェア開発は組み込み系のプログラマをやっています。出版事業は自分で書籍や雑誌の執筆を行うことだけではなく、作家さんを探してきて書籍の企画および編集を行う編集者としてのお仕事もやっています。

自己都合で長く勤務した会社を辞めたのですが、もし辞めなかったら、いまごろは管理職になっていました。

それにしても、日本の企業は30代後半や40代になると管理職になるべき、という文化なのはなぜなのでしょう?

技術職と管理職はまったくの別物。エンジニアはコンピュータに向き合うのが仕事ですが、管理職は他人と向き合うのが仕事です。なかなか人をコントロールするのは難しく、論理だけではうまくいきません。

マネジメントができるかどうかは人によりますし、向き不向きもあるので、エンジニアが年を取ったらマネジメント、という一律な考え方もどうなのかなと疑問に思っています。

開発言語

前職では長らくC言語を使っていたのですが、現在ではC言語以外のプログラミング言語を使うようになりました。

C言語を使わなくなってから気付いたのですが、C言語は学習コストが最小であるということです。C言語の規格としてC89(C90)、C99、C11などとバリエーションがあるのですが、現場でもっぱら使うのはC89(C90)です。C99を使うとレビューアーから使うなと怒られることもあります。C11にいたっては、そもそもクロスコンパイラが対応していないので使いたくても使えないという状況です。

C言語以外のプログラミング言語だと、言語仕様のバージョンアップに追従していく必要があり、開発者としても常に勉強です。言い換えると、C言語は一度文法を覚えてしまえば、長く通用するということです。

プログラマの仕事

一般的に組み込み開発ではウォーターフォールモデルが適用されます。ソフトウェアは(理屈の上では)あとからいくらでも改修ができますが、ハードウェアは(理屈の上では)そうではないからです。

プログラマの仕事としてはプログラミング作業にかける時間は少なく、それ以外の作業に時間が取られます。仕様変更、機能追加、機能改善、バグ修正といった作業を行う場合、いきなりソースコードを修正するわけではありません。

トラブルシューティング

組み込み機器が不正な動作をした場合、その原因を探る必要があります。この作業のことを障害対応やトラブルシューティングといいます。実を言うと、自分はこの作業がいちばん好きです。

数少ない手がかりから、あれこれ推測して手がかりを見つけていく、まるで物語に出てくる探偵のようではありませんか?

状況を整理して事実と推測に分割し、ひとつずつ仮定を設定して、裏付けを行っていきます。そのためには実装調査(机上調査ともいいます)と再現試験が必要です。

そして、トラブルシューティングは納期が厳しいことが多いので、ほどよい緊張感も生まれます。ここで焦ってばかりいると、ストレスばかりが溜まり、進捗も出ません。

スキルアップ

年を取ってくるとスキルを上げることよりも、スキルを下げないようにすることが大切です。

そのために自分が実施していることとして、いくつかあります。

①ソースコードを定期的に読む時間を作っています。主にLinuxカーネルのソースコードを読むようにしていますが、このことにより読む力が衰えることがなくなります。

②たくさんの本を読むようにしています。本のジャンルは技術書だけではなく、幅広く読んでいます。このことにより、文章を読むスピードが速くなるのです。

③英語のドキュメントは翻訳ソフトを使わずに、原文のまま読むようにしています。分からない単語があれば、語彙数を増やすという目的で辞書を引きます。

④究極は、本を書くということです。本を書くには、自分が腹落ちするまで調べ尽くす必要があります。この調査で大幅にスキルがあがるのです。本を書くことは多大なエネルギーを消費するので大変なのですが、出版できると、ものすごい充実感があります。

おわりに

年を取ると体力も気力も落ちてきますが、どんなに酷い状況でも楽しみつつ、常に前向きでポジティブに仕事していけたらいいなと思っています。

いまから5年後、自分がまだプログラマをやっていたら、そしてエンジニアライフが存続していたら、「50歳でプログラマとしてやっていくということ」というコラムを執筆します。

Comment(2)

コメント

空は基本的に高所恐怖症なんで、、海を泳ぐモンティパイソン

平田先生、いつも楽しいコラムありがとうございます。そうですね。自分もCisco Systemsの技術参考書を読む機会(いつもはグーグル先生の自動翻訳に頼っていますが、、、、)が多いのですが、Paloalto NetworksやAruba Networksの技術参考書(インターネット上での、、)はほとんど英語です。グーグル先生の自動翻訳様様ですが、へんな翻訳で訳が分からなくことが多いのでじっくり読むときは辞書と格闘しています。変なもんで最近感じるのですが、通信機器のソフトウェアを特権モード(シスコでしうIOSのコマンドラインの『#』のモード、、)で処理中はなんかUNIXをいじっているモード(『$』ではなく”#”なのです。そう『root』で使っているような、、、)錯覚を覚えるのですが、やはりUNIXクローンなんでしょうね。Cisco Systemsの新型OS IOS-XEはもうちゃんとLinuxカーネルとモジュラ構造のIOS(Cisco IOS 【Cisco Internetwork Operating System】の略)がVMとして存在して分散処理していると明記されています。通信=UNIX=c言語なのですね。

平田豊

>海を泳ぐモンティパイソンさん

コメントありがとうございます。
IOSは以前使ったことありますが、Ciscoらしい独自OSだなぁと思ったのを
思い出します。
昔からあるLinux/UNIXのアプリは、C言語で実装されたものが多いので、
アプリのソースコードを読むのは敷居が低くて楽ですね。


コメントを投稿する