作成したコードは信用しない

自分で作成したコードは信用しない。

これは当たり前の話で、少なくとも動かして見てそれが仕様通り正しく動くかを確認しないうちは、動かないことを前提に考えておくのが正しい対応の仕方だと思う。

だからコーディングを始める時に、最初に押さえておかないといけないことは実際に動かす環境をどうするかという事。

組み込みの場合は特に実際の動作環境が整うまでに時間がかかるので、その間にデバッグできる環境を作れないか、パソコン上でシミュレーション出来ないか、そこから始めないといけない。

そうすれば少しコーディングを進めて不安があれば動くかどうかをすぐに確認できる。

いわゆるテストファーストの考え方。

新人の頃から意識しているプログラミング・スタイルと言ってもいいかもしれない。

これは立ち上がりに少し時間はかかるが、コーディング途中でも動作を確認しながらプログラミングを進められるので、出来上がりのコードはそれなりに信頼できるコードになっている。

これが最初に一気にコーディングを進めてその後デバッグしようと考えると、デバッグの観点が大雑把になってしまって、細部にまで動作確認できずにデバッグ完了としてしまいかねない。

テストファーストは自分がコーディングのプロとして一番基本としている考え方になっていると思う。

仕様は柔軟が良いと思う

プログラマーとしてはあまり良いことではないのかもしれないが、仕様に対しては柔軟に対応することが自分の役目と考えている。

普通は、仕様が確定しないとプログラミング出来ないというスタンスで構えておくのが筋で、そうでないといくらでも仕事が増えてしまうし、最終的に出来上がるシステムがつぎはぎだらけになってしまう。

特に複数人で開発するような大きなシステムだと、各人ごとに考え方が違うので仕様は文書として共有する必要もあり、あとから仕様が変わるのはかなり大変な話になる。

しかしそれでも柔軟に仕様に対応することがプログラミング作業には求められると思っている。

これは昔から課題としてソフトウェア工学でも議論されている。

だいたい今どきのシステムで作る前に仕様を全て洗い出すことなどできそうにない。

それだけ複雑だし、複数のシステムが絡み合うことも普通にあるようになってきて、それを出来るだけ早くリリースして評価を市場に委ねないと、その価値が見出せなくなっている。

大変ではあるけれど、多分それを解決に導く方法はあって今は試行錯誤。

今の自分の一番のテーマ。

ハリーポッター祭り

今TVでハリーポッター祭りをやっている。

DVDは全て持っていてTVを見る必要は無いのだけれど、久しぶりに見たくなった。

見ればストレスの溜まった気持ちを癒してくれる気がする。実際見るたびにいろいろ気付きがある。

例えば音声を英語にしてみていると、拙い自分の英語力でも、第1話や2話はそれなりに聞こえて内容もなんとなく理解できているのが最終話になってくると、かなり難しくて聞き取り難くなっている。

多分使われている語彙や時制が変わってきているのだと思う。

自分の英語力で第3話から4話辺りが理解できる英語の境界なのでは無いかと感じている。

何れにしても週末に仕事を終えて一息ついて気持ちをリラックスさせてくれる良い時間を与えてくれると思う。

そういうツールを幾つか持っていることが社会人にとって必要なスキルになっている時代だとつくづく感じる。

プレッシャーには脆いタイプ

実はかなりプレッシャーには弱い。

他の人が見てどうなのかはわからないが、そういう状況になると、背中に汗はかくし、手は震えるし、目は泳いでいるし、頭の中は真っ白になる。

脆いと書いたのは、この状況が続くと心が折れてしまうから。

自分で言うのもなんだが、辛抱強いことが自慢。しかしそれ故、プレッシャーにギリギリまで我慢して、最後に折れる 。

心が折れると全てを投げ出す。いわゆる敵前逃亡というやつ。究極は自殺というところまで行くかも。

幸い社会人になってからは、そこまで追い詰められたことはない。

それに息を抜く方法も自然と身につけてきたように思う。プレッシャーに感じていることをなかなか人には言えない状態は変わらないが、このようなブログに書いたり、多重人格になって別の自分と対話してみたり。

ちょっと怪しい人格を形成してしまっている気もするが、それで世間を渡っていけるのであればそれで良いと思う。

プレッシャー自体はそれが活力になったりするので初めから避けることはしたくないのだが、何事も行き過ぎると良いわけはなく、息を抜く方法を持っておくことが大事だとつくづく思う今日この頃です。



Webの技術の進歩に驚く

今やっている仕事で多少Web周りの技術を知る機会がありその技術に驚いている。

15年ほど前に少しだけWebの仕事に携わって、CGIやらWebサーバーやらHTMLなど一通りのことは学んでいて楽観視していたのだが、その技術的な進歩には本当に驚いた。

スマホでユーザとして普通に使っているノーティフィケーションなども裏を覗くと様々な技術が組み合わさって実現されていることがわかる。

iOSAppleのサーバ経由で、AndroidGoogleのサーバ経由でメッセージが送られてくる仕組みが構築されていて、誰でもそのサービスを利用することが出来るようになっている。

また家庭内にあるパソコンなどから直接スマホにつなげるサービスもあって、確かにそういうアプリを使ったことはあるが、裏でどう動いているのか深く考えたこともなかった。

目に見えないサービスがインターネット上にゴロゴロあって、しかも日々増殖しているらしい。

知ってしまえば必要なサービスを見つけ出すことはそれほど難しくない。

大抵のことならアイデアさえあればそれを個人で構築することが簡単にできてしまう。

ワクワクするけど考えると恐ろしいようなそんな世界が垣間見えた。


専門分野

初めての仕事は8bitマイコンアセンブラ

その後パソコンが普及し、工場でも使われ出したことでパソコン上でのプログラミングが主たる仕事となった。

会社の関係でシステムは制御系。業務系の仕事はほとんど経験していない。それ以外は何でも受け入れてあらゆる分野の仕事を経験した。

マイコン・パソコンはもちろん、ワークステーションや大型汎用機に至るまで。

あと言語も色々やった。アセンブラに始まって、C言語パスカルBASICVBにVCそれとC#、Script言語も経験済み。

組み込み制御から、パソコンのスタンドアロン、ネットワーク系、Webサーバー、スマホアプリまで、動作形態も様々。

で現在携わっている仕事は広範囲にわたるプロジェクト。今時の言葉で言うとIoT関連とだけ言っておこう。

しかし色々な経験の中でも、やっぱり専門分野はできるもので、とりあえず画像処理関連の仕事はこちらに回ってくるようになってきている。

以前は静止画が多かったが最近は動画になって、それはやはり処理性能が上がってきて、リアルタイム処理が要件としてあるからだと思う。

何れにしても自然と専門分野が出来るのは悪いことではない。技術職においては自分の色が人に認められる手がかりなることは間違いない。


仕事のことで頭がいっぱい

この頃仕事が忙しい。単に時間的に追い詰められているだけでなく、頭から仕事のことが片時も離れない状態。

こういう状態が嫌いなわけではない。ただ、他のことに手がつかなくなってきている。

特にこのブログはまだまだ続けていきたい訳で、仕事との両立を目指して行きたいとは思っているのだが、なかなか思うようにいかない。

頭は一つしかないから、考えられるのも一つだけ。

仕事で占領されてしまうと、ブログのことが置き去りになる。悪くすると、放り投げてしまいたくなる。

今はそういう衝動との戦いになっている。

それで何かいい方法はないかと考えて、仕事のことをブログの記事にしてしまえば、ストレス発散にもなっていいかと。

ただ詳細なことは書けないから、記事の書き方が難しくなるが、これも経験と思ってやってみよう。

どっちにしろ仕事人間な自分にとっては、最終的には仕事の話しか書くことがなくなるのは目に見えていた。

覚悟を決める。