「staticおじさん」現象とは何だったのか

オブジェクト指向再考 連載目次

―「クソコード」批判に姿を変えたネット社会の同調圧力―

前回、「クソコード」という言葉がバズワード化していることについて触れました。
今回は、少し歴史をさかのぼって「staticおじさん」現象を振り返りながら、
“コードの正しさ”がどのようにして社会的な信仰に変わっていったのかを考えてみたいと思います。


「staticおじさん」というレッテル

「staticおじさん」という言葉を聞いたことがある方も多いでしょう。
2010年代初頭、オブジェクト指向が声高に唱えられていた時代、
C言語的な書き方――たとえばstatic関数やグローバル変数――を使い続けるベテランエンジニアを
揶揄するために生まれたネットスラングです。

当時、オブジェクト指向は“正しい設計思想”として教育現場でも現場でも広まり、
メソッド呼び出しこそが美徳であり、static(関数)を使うことは“時代遅れ”だとされていました。
しかし今振り返ると、彼ら(staticおじさん)が使っていた手法の多くは、
単なる無知ではなく、実務的な妥協や効率化の知恵だったように思えます。
プロジェクトの制約、納期、パフォーマンス、チーム構成――
そうした現実の制約を理解したうえで“あえて”選ばれた手段であったことも少なくありません。


「信仰」としてのオブジェクト指向

オブジェクト指向の時代には、「staticを使うのは悪」という単純な善悪構造が形成されました。
その背景には、エンジニア教育や資格試験、ネット上の設計論争などを通じて
「OOPこそが唯一の正解」とされる雰囲気があったのです。

この構図は宗教的です。
人々は“正しい設計”を信じることで安心し、
他者の異なるやり方を排除することで、自分の信仰を強化していきました。
それは技術的な議論というよりも、
「自分が正しい側にいる」という心理的な安定を得るための行為でもあったのかもしれません。


繰り返される「同調の構造」

staticおじさんを笑っていた人々が、
いま“クソコード狩り”をしているとしたら、
それは同じ構造の繰り返しです。

かつて“staticおじさん”を嘲笑していた人々の中には、
いま現場を離れてしまった人も少なくありません。
壮大なオブジェクト指向の実験の果てに、
多くのプロジェクトが炎上し、多くの人が疲弊しました。
その中で「失敗の原因は古いやり方にある」として、
staticを使う人々が“悪役”として語られたのです。

時が流れ、オブジェクト指向の幻想が薄れた今、
新たな“敵”として登場したのが「クソコード」でした。
コードの品質を語ること自体は重要ですが、
他者のコードを嘲笑し、排除しようとするその姿勢は、
十年前の“staticおじさん狩り”とまったく同じ構造をしています。

人を揶揄する文化は定期的に生まれ、やがて消えていきます。
そのたびに誰かが傷つき、誰も幸福にはならない。
そこに残るのは、「正しさ」を求めすぎた社会の冷たさだけです。


「正解主義」とどう向き合うか

この現象の根には、「正解を求める文化」があります。
多くのエンジニアは、「何が正しいのか」を明確にしたいと願います。
しかし、プログラミングという行為の本質は、
常に“仮の正解”を探りながら進む試行錯誤の連続にあります。

「わからないままにしておく」ことを許せない風潮は、
議論を貧しくし、思考を停止させます。
結果として、「○○はクソ」「△△は正義」という単純化が進み、
技術が信仰へと変わっていくのです。


次回予告

次回は、こうした「正解主義」の文化がどのようにしてプログラミング教育や職場文化に根を下ろしていったのかを掘り下げ、
「正しさ」と「自由な思考」のバランスを考えてみたいと思います。


この文章は、ChatGPTとの共同作業により作られています。

クソコードとコードコンプリート症候群

オブジェクト指向再考 連載目次

―「正しさ」を振りかざすエンジニアたちへ―

「クソコード」という言葉が、いつのまにかネットに氾濫しはじめた。
これは、冗長で、意図が読めず、保守性に欠けるコードを指して揶揄するものです。
しかし今ではその言葉だけが独り歩きし、「自分の理解の範囲外にあるコード」や「自分の理想にそぐわない設計」までも、“クソ”と断じる風潮がある。

この背景には、「コードコンプリート症候群」とでも呼ぶべき現象がある。


コードコンプリート症候群とは何か

「良いコード」を追い求める活動は昔からある。
古くは構造化プログラミングが提唱され、今ではそれが当たり前になった。
しかしそれだけでは解決できない問題が現れ、次々と新しい手法やデザインパターンが現れそして新しい問題が発生する。複雑さへの挑戦は終わりのない戦いである。

様々な手法が出てきてそれら自体の存在が複雑化した。そしてそれらの手法を体系化した書籍が登場してきた。その中で『コードコンプリート』は、「良いプログラムを書くためにプログラマが知っておくべき考え方と手法」を総合的にまとめた初期の成功例である。
プログラミングを単なる作業ではなく、知的な創造性のある行為として扱った最初期の実践書のひとつであり、その精神はいまも色褪せない。

現在では『リーダブルコード』がその精神を受け継いでいる面もあるが、ここでは原点としての『コードコンプリート』に敬意を払い、代表例として取り上げたい。

問題は、その内容に感銘を受けたエンジニアが、その理念を「唯一の正解」と信じてしまうときに始まる。

彼らはコードレビューでこう言う。
「この変数名は短すぎる」「コメントが少ない」「このクラスは単一責任原則に反している」「これはスパゲッティコードだ」――。
そして最後に決まって、「コードコンプリートにも書いてありますよ」と付け加える。
まるで聖典の一節のように。

だが現場は常に、時間とコストとレガシーの中で動いている。
理想を追うことと、現実を生きることは別問題だ。


理想の“押し付け”が生む現場の停滞

優れた原則や設計思想は、状況に応じて取捨選択されるべきものだ。
だが「教義化された正しさ」は、しばしば現場を麻痺させる。
新しいアイデアが「原則違反だ」として却下され古くても信頼できるコードが「レガシー」と称され書換えを強制される。進行中のプロジェクトが“改善活動”という名の足踏みを始める。
そして気づけば、誰もコードを書かなくなり、議論だけが増えていく。

「クソコード」というレッテルは、往々にして相手の努力や文脈を切り捨てる言葉でもある。
そこには、相手への敬意よりも、「自分は理解している側だ」という安心感がある。
それが一番、危険だ。


クソコードを超える視点

本当に優れたエンジニアは、「なぜこう書かれたのか」を考える。
時間的制約、チームのスキル、利用可能なライブラリ、歴史的経緯――すべてを踏まえて設計を評価する。
そこには「正しいコード」ではなく、「今ここで生き残るコード」という現実的な視点がある。

『コードコンプリート』の精神とは、本来この“文脈理解”そのものだったはずだ。
それを「規範の棒」として他人を叩くのではなく、「共通の言語」としてチームをつなぐために使う――。
その姿勢を忘れたとき、私たちは“コードコンプリート症候群”に陥る。


結びに

良書は人を育てるが、同時に、信者も生む。
それを避ける唯一の方法は、「本の中にある正しさ」よりも、「現場で生きる知恵」を信じることだ。
“クソコード”と笑うより先に、「なぜそうなったか」を問おう。
そこからこそ、真のプログラミング文化が始まる。


この文章はChatGPTが原稿を書き、人間が修正を加え、再度ChatGPTが校正・編集したものです。

炎上プロジェクトとクソコード

オブジェクト指向再考 連載目次

――「クソコードを書け」と私が思うようになったもう一つの理由――

「クソコードを書け」という主張はいささか偏っていますが、思えば私は他人のコードを「くそ」と思ったこともなければ、「直せ」と思ったこともほとんどありません。
では、なぜそう思うようになったのか。

キャリアのごく初期――35年程前になります――には、「コードの美学」というものが確かにありました。しかしそれは1、2年で消えました。
さらに数年後、決定的な出来事が起き、その美学は吹っ飛びました。


30年近く前、1996年前後のこと。私が担当していたプロジェクトが炎上しました。
どのくらい炎上したかというと、残業が170時間、それが3か月ほど続いたのです。
残業代で数十万円入ったものの、翌年の社会保障費が爆上がりし、給与の支給額が「14万円」とかになった。
総務に「なんでやねん!」と詰め寄ったら、「あなた去年170時間残業したから…」と言われたのを今でも覚えています。
ちなみに、そのときの数十万円がどこに消えたのかは、いまだに謎です。

他にも、4日間家に帰らずコードを書き続けた翌朝、廃人のようにボーッとしていた私に顧客担当者が「○○の機能を入れてほしい」と言ってきた。
相手の言うことが理解できず、とりあえず「無理です」と返して、担当者がすんなり帰っていったこともあります。
int型で定義した変数を、なぜかshort型でexternして、朝の4時にバグを仕込んだり、
風邪で寝ていたら上司に呼び出され、現場で顧客から「ボーっとするな!」と説教を受けたり。
炎上プロジェクトの「あるある」は、わりと経験しました。


その後、私は数年間体調を崩しました。
体調を直すのに苦労しましたが、それ以上に、「何が悪かったのか?」をずっと考え続けました。

そこで学んだことは、

  • 顧客からの無理な要求は受け入れないこと(プロジェクトマネジメントの重要性)
  • 一日の労働時間には限界があること(体調管理の重要性)
  • 信頼できるメンバーを見極めること
  • テストコードの必要性
  • そして何よりプログラミングテクニックだけでは炎上プロジェクトは救えない

ということです。


もちろん、開発プロジェクトに必要なプログラミング技術は存在します。
しかし、一度炎上した現場では、もっと広い範囲で問題を見抜く力が必要になります。
たとえば、最近のマイナ保険証の問題。あれは「プログラミングが悪かった」という話ではありません。
私たちが学ぶべきことは、コードの書き方だけではなく、プロジェクト全体を見渡す力です。
ただし、だからといってプログラミングの勉強をやめてよいという話でもありません。


幸い、その反省が生かされたのか、私が担当して炎上したプロジェクトは一度きりでした。
その後は、いくつかの炎上現場に「助っ人」として呼ばれる側になり、記憶にある限り3回ほど大炎上の火消しに入りました。


では、火消し屋にとって最も重要なプログラミングスキルとは何でしょうか?
あまり知られていないかもしれませんが、コードを読む力(リーディング能力)です。


コードリーディング能力を高めるには、まず自分がCPUになったつもりでコードを読むこと。
つまり、「このコードはどのように実行されるのか?」という観点で、主観や美学を捨てて追うのです。
次に問うべきは、「このコードの動作は正しいか?」ということ。
ここで確認するのは仕様との整合性であって、コードが綺麗かどうかではありません。
論理的な間違いを追い、問題箇所を見極めることが目的です。


バグを探しているときにコードを見て「クソコードだ!」と思った瞬間、冷静な論理的判断はほとんど不可能になります。
私の経験では、感情的な印象を保ちながら正確に問題箇所を指摘できる人はほぼいません。
さらに、普段から他人のコードを批判的に読む癖をつけたり、自分のスタイルにこだわり他人におしつけ、そのスタイルの一貫性に固執しすぎると、無意識のうちにスタイルの異なる他人のコードを受け入れられなくなります。
つまり、コードの「あるべき姿」を追い求めすぎたがために、多様な書き方を認められなくなってしまうのです。


確かに、コードの出来が悪くてバグが潜むこともあります。
しかし、それを炎上中に嘆いたところで、現場は何も救われません。


コードの美しさよりも、まず動作の理解。
「クソコード」と切り捨てる前に、CPUのように冷静に読み、仕様との整合性を確認すること。
それこそが、火消し屋としての第一歩であり、炎上を防ぐための最良の訓練でもあるのです。


この文章は、原稿を元にChatGPTが校正・編集しています

クソコードを書け

オブジェクト指向再考 連載目次

 ちょっと気づくのが遅い面がありますが、ネット界隈ではクソコードというワードが広がっているようです。要は品質の悪いコードを指して”くそコード”と称しているというこです。
ひと昔前に流行った「オブジェクト指向」と同様に今度は「クソコード」がある種のバズワードになっている感があります。
オブジェクト指向信者との闘いはここを見ていただければと思いますが、おかげ様でバズワードとしてのオブジェクト指向について冷静な議論をすることに一定の抑止効果があったと自負(?)しています。
一方で、今度はクソコードというバズワードが流行っていると認識しています。

実は、私自身ですが、他人のコードを見て「くそ」と思ったことはほとんどありません。「あーそう書くのか」と思うことがあります。そこに自分の常識にとらわれない新しい発見があるからです。

ちょっと古い25年前の例になるのですが、新人が書いたVBScriptの

name = “与太”
output = “ようこそnameさん”

というコードで、新人からの質問が「なぜoutputが “ようこそ与太さん” ではなく “ようこそnameさん”と表示されるのですか?」と質問を受けて逆に感銘を受けました。
ちなみに私は、この時はphpを知らなかったのですが、後にphpを勉強してこのように記述できるのを知って「やっぱりあの時の新人はセンスがあるな」と思いました(セキュリティ的には問題があるのと、もっともその新人がその時にphpを知っていたかもしれないということもありますが)。
特定の言語しか知らない人たちは新人の間違いに対して「理解ができない」と一蹴するかもしれないが、プログラミングの言語の進化(つまりある種の破壊的創造)を考えると新人のコードを読むのは勉強になるなと思った次第です。

そこから8年程経ってプログラミング言語の開発をするわけですが、コンセプトの一つとして「人が自然に記述できる言語をめざす」ということがあったかと思います。
要はエンジニアが書きがちなコードは一見クソに見えるかもしれないが、そこには「言語として表現されたもの」としてなにか意味があるのではないか?と思う次第です。

例えば、クソコードの一つに挙げられる「コピぺ」のコードですが、「なぜプログラマはコピペをするのか?」という風にコピペを行うプログラマの考え方やコピペが必要とされる場面や良さを考えるようになります。
オープンソースとかであるフォークもある種のコピペだと思います。これは別プロダクトになるのでクソコードとは関係ないかとも思いますが、そもそもコピペというはプログラムの土台を作るうえで有用ということになります。
誤解のないように言いますと、ある種の品質が問われる場面ではコピペは避けています。例を挙げると、私の場合、料金計算を行うコードは「一か所」と決めています。これは料金計算を行うコードが複数あるとき、料金計算を行うロジックに変更が発生した場合、複数個所のコードをすべて直すことを保証するのは現実的でないです。むしろ関数なりクラスなりにして料金計算は1か所で行う方が最終的に品質を確保できます。
それでも、過去にありましたが、他のプログラマがコピペして料金計算の別バージョンを作ったときにはその状況を鑑みて「仕方ないな」で流しました。

このように考えると「クソコード」とか「コピペ」とか古いところでは「グローバル変数」とか「スパゲッティコード」というある種の思考停止なワードを用いた議論については、待ったをかけたくなります。

別の観点でいいますと、プロジェクトの開発・保守の現場では、個々のコードについてはそこまで保守性が重要ではない場面があります。
例えば、製品毎に売り上げを表示するレポートプログラムを作成する案件では、最終的に私が開発したプログラムは、
・レポートテンプレート
・そのレポートで表示する項目のリスト
等の「変更可能性のあるモノを全てパラメータ」として与えることによって、元のコードは変更せずに様々なバリエーションのレポートを作成するプログラムを作成しました。
保守業務において、もはや元のコードは「そのままでよい」というこになり実際にコードを変更することはあまりありませんでした。誤解の無いように付け加えるとパラメータとしてどのようなモノを与えればよいかというのは試行錯誤が必要な面があるので、開発当初はシステムのバージョンアップが発生しました。

これはある種のプログラミング言語を開発し、その言語の上で開発を行っているという状況になります。この場合、私たちの目は元のシステムのコードに行くべきなのか新たに作った言語に行くべきなのか?ということが言えます。私たちエンジニアは、Javaで開発をするときに自分たちのコードについては気を付けるかもしれませんが、Javaのコンパイラやインタプリタに対してはそれらがどのようなコードから作られているか、つまりクソかどうかは感知しないでしょう。

さらに別の観点でいいますと、自動的に生成されたコードを保守しようとしたときに「本当にそのコードを保守するのか?再生成させたほうがよいのではないか?」という話もあります。
比喩的にいうと、Javaでコンパイルしたマシンコードの可読性をいちいち気にしないということと同じです。
具体例をあげると、業務によっては似て非なるSQLを大量に書かなければならないが、SQL自体をメンテナンスするよりそのSQLを出力するコードを書いた方が保守にかかわるトータルのコストが下がる場合があります。この場合、当然ですが、出力後のSQLを確認する意味では読みますがその可読性は問題視しません。
ちなみに私はコンパイルしたC++のアセンブラコードを読むこともあります。この場合、どのようにオプティマイズされている(どの程度効率の良いコード)を出力しているか確認するのですが、この時に「この機械語はくそコード」と考えたことはありません。もっとも、すでに20年以上前からコンパイラは腹が立つぐらいに(私的には)美しいコードを吐いてきます。

この2つの例ですが、要するに「ソフトウェアの品質を上げるには?」ということに関して「くそコードを書かないようにする」以外の回答があるということになります。

さて、AI時代になると、もはや人間がコードを書くことは減るかと思いますが、それでも人間がコードを読む時間は増えるでしょう。
この時に、AIに向かって「くそコードを書くな!」とかおっしゃるのでしょうか?

最後にChatGPTで遊んでみました。

P.S.
「お前は可読性の高いコードについて関心がないのか?」との質問については「当然関心があるが、自身が読みずらい・保守しずらいコードを読んで、クソコードということはない。もちろん個別の問題点については指摘する」ということが言いたいことです。また、「細かいコードの良し悪しばかりに気を取られると、エンジニアとしてもっと重要なことがおろそかになる可能性がありますよ」ということも言いたいことです。

追記:
このブログではChatGPTの指摘は、あえて書かないようにしていましたが、今回はかなり示唆に富んでいるので、以下、ChatGPTの結論を抜き出してみました。正直、そこまでは明確に意識していませんでしたが言われたらそうだと気付きました。

さらにChatGPTで遊んでみました。

ChatGPT1の 結語:「クソコードを書け」

クソコードを恐れるな。
クソコードを書け。

そこにはあなたの思考、試行錯誤、そして創造の痕跡が残る。
真にクソなのは、挑戦をやめて他人の美学に従うことだ。

さらにさらにChatGPTで遊んでみました。

ChatGPT2の結論

この文章は「クソコード=悪」という単純な構図を脱し、
「コードという文化現象」や「言語進化」「AI時代の人間の役割」まで踏み込む、
非常に知的で示唆に富む論考です。

ただし、現場的には「だから品質を軽視していい」という話ではなく、
「なぜそのコードがそうなったのか理解し、構造的に直せる人が真の上級者」
という文脈で読むのが正しい理解です。

35歳からのSESについて考える

老兵は死なず、AIと踊る

 以前にYoutubeでアップした動画(デジタル人材育成のための「実践の場」開拓モデル事業に与太話的に物申す)にコメントをもらいました。

 コメントされた方は、『この事業に参加してSES企業に入り2か月の研修で経歴詐称して客先に派遣されそうになった』ということで、大変憤慨されておられるようです。実は日本の中小のIT会社の多くはSES企業(つまり人売り企業)になります。見分け方の一つになりますが、入社したい会社の会社概要のページに「労働者派遣事業 許可番号 」というものがあればSESもやっている企業になります。もっとも全ての会社がきちんと労働者派遣事業許可番号をとっているか怪しいところもあるのでこの番号がないからといってSESをやっていないとは限らないので注意が必要です。

 SESとは「システムエンジニアリングサービス」の略で、要は派遣なのですが、派遣と言えば場合によっては違法になるので、客先常駐といったりSESといったりしています。私の知る限り少なくとも35年以上前からあり、30年前にはSESという言葉ができていたかと記憶しています。15年程前にはデジタル土方と言われるようになったかと記憶しています。経歴詐称も昔からあり、業務経歴書を見ながら面談をして『これは嘘だな』と思ったこともありました。ちなみに、建前上は面談(面接)はご法度ですが、実際にはコメント主のように『未経験者が偽って入ってくる』ということもあるので面談してある程度(実際の実力)を見てフィルターをかけないとお金をドブに捨てることになります。

このSESですが、悪しき習慣といわれていますが、一向になくならないだけでなく、最近では裁判沙汰になったりもしています。求職者の方々はこういうヤバイ会社には引っかからないようにしたいところですが、SESにもメリットというのは存在します。

SESのメリット

  • 顧客:雇用の調整弁になっている。正規や非正規でエンジニアを雇うよりも簡単に首が切れる。
  • SES企業:請負契約でシステムを構築するよりリスクがない。収支が読める。
  • 労働者:未経験者でも就業ができる(経験ができる)。短期かつ残業代がでるのなら正規雇用より儲かる。嫌なら後腐れなく辞めれる。向いている人がいる。

 顧客企業にとっては、非正規社員以上に合法的に労働者の首を切れることになります。あまり具体的なことは言えませんが、長い年月を経て多くの人が職場を去っていった後に、私自身も去ったことがあります(もっともこれは自らになりますので首を切られたというのはちょっと違います)。

本来ソフトウェア開発というのは請負契約で行うものなのですが、これは受注企業にとってはリスクがあります。特に顧客企業にソフトウェア開発の知見が無い場合は案件が赤字で終了する可能性があります。これを避ける為に準委任契約(SES契約)を行い、要は定額料金ではなく労働者が稼働したらその分課金するということを行います。
自ら作ったサービスを売るということもあります。こちらは王道と言えますが、当然にサービスが売れないというリスクがあり、赤字になれば、SES契約でエンジニアを売り、日銭を稼ぐという手段に出ます。
このようにSES契約が全て悪ということもないのですが、一度SES契約の味をしめると企業自体が努力をしなくなります。つまり請負契約で失敗しないように経験を積むとか顧客が求めているサービスをひねり出すという努力をしなくなります。

労働者にとってのメリットは『SESは未経験者の登竜門』ということも言えます。『経歴詐称はどうなるんだ?』と思われるかと思いますが、多くの場合、雇う側も経歴詐称であることを気が付いています。また、経歴書に詐称がなくても実際にプロジェクトに貢献していたかどうかというのもあり、実務的な観点からみると経歴詐称が一概に悪いとも断言できないところもあります。『じゃなぜ経歴詐称をするんだ』と思われるかと思いますが、これは受け入れ側の企業が書類選考をちゃんとしているという安心感を得る為にあります。もちろんですがプロジェクトによっては、経験者が求められていることがあったりするのでその場合に経歴詐称されると労働者があとで困ることになります。

SESのデメリット

もちろんSESのデメリットもあります。

  • 中間搾取、人月商売の横行が横行する こういう商習慣(人もモノとして扱う)が蔓延すると業界のレベルアップにならないです。個人のスキルに依存するのでチームとしてやプロジェクトの成長が期待できない。日本のITが伸びない理由の一つになっているかと思う。
  • エンジニアとして現場で使う以外の技術が身につかない 余暇を利用して新しい技術を吸収する(自己学習ができる人)が求められます。
  • IT土方として雇われてるのでエンジニアの社会常識が育たない 本人達は社会常識を持っていると思っているようで厄介ですが、ビジネスの話ができない人が多いです。実際にSESエンジニア上がりのある人に仕事の依頼の話をしたら、なぜかこちらが受注者として話が進んことがあり、こっちは発注者として仕事を頼んでいるのだが、なぜこのような勘違いをするのか相手の社会的な常識を疑ってしまった。ちなみに通訳案内士界隈も癖のある人が多いが、それでも友人と呼べる人はいるが、ITエンジニアの友人は残念ながら少ないです。
  • 顧客からのフィードバックが「契約終了」でエンジニアとしての見通しがたてられない 契約終了に関してエンジニア自身に具体的な原因がある場合、本来ならそのフィードバックがないとエンジニアが育たないが、そういう学習機会がそがれるので成長ができない。また、突然に契約終了となるとある種の失業状態になるので、エンジニアのライフスタイルが見通しにくい、40代ぐらいでSESが終了した場合割と困る。

労働者にとっての最大のデメリットは『SESは人売り』になるということで、これに耐えられない人が一定数います。このような方はSES企業には近づかない方がよいです。

ちなみに、私自身は総合的にはむしろSESで客先に常駐する方が気が楽な面があります。それでも会社として誰かを客先に出すというのはやりたくないです。

アドバイス

最後になりますが、未経験で35歳からIT業界に転職させる方に対してアドバイスするとなると以下の点を考慮されたうえでどうするか考えたほうがよいかと思います。

  • 未経験者がIT業界に入るとSESに捕まる確率が高い。実力がないうちはSESを避けて通るのは厳しい。SESに関しては向いている人と向いていない人がいるので、SESが嫌なら日本のソフトウェア開発会社は避けたほうがよい。
  • 本来、中途採用となると即戦力が求められ、新卒採用とは異なることを理解する。先輩とか上司に頼ることはできないと考えたほうがよい。
  • そもそも、SES企業の先輩とか上司自体がエンジニアとしてもいわゆるメンターとしてもきちんとしているかどうか怪しい。
  • 職場環境やその会社の業界の位置づけ、今やっている仕事等を考慮すると、キャリアアップするには転職が必要となる場合がある。実力が付いたらそれに相応しい会社に転職することも視野に入れる。
  • その職場に居続けるという選択肢もあるが、SES企業の場合、終身雇用との相性が悪い(辞めていく人間が多い)。その会社の規模や将来性、社歴と年齢構成(例えば創業から40年のSES企業で、50代の社員が少なく若い人しかいない会社というのは歳をとったら辞めていくと考えたほうがよい)、等を考慮する必要がある。例えば、今、新卒で入った会社で本当に将来性がないのか?、定年まで働けないかを今一度自問自動したほうがよい。
  • IT業界は『モノづくり』範疇に入るが、モノづくりの難しさ(完成させなければならない)を理解して、自分自身がモノづくりの適性(プログラムが意図どおりに動くと何とも言えない高揚感がある等)があるかどうか見極める。
  • 仕事に対しての困難さをどこかで楽しめるようでないと厳しい。
  • 自己学習を続ける必要がある。平均、一日に2,3時間は勉強時間を確保する必要がある。もちろん仕事が忙しいときは仕事に集中する必要がある。暇なときに勉強ができるかどうかがカギになる。
  • AIの台頭についてアンテナを張る。悲観的な見方をすると将来は開発の仕事はAIにとって代わられる。それが何時かということで他の職種も並行して勉強しなけれならない。

と厳しいことを書いていますが、実際には、きちんとできていないエンジニアが多いのも事実です。また、仕事が好きになれるのなら割と何とかなったりします。(私の場合、コンピュータが動いている様をみるのが好きで、面倒な顧客対応をしてイライラしてたのですが、そのあとコンピュータをいじっていたらやる気が出たりしてました。)

SES契約についてChatGPTで遊んでみました。

追記、少し別の角度ですが、AIによる自己学習の可能性について、プログラミングスクールとの付き合い方という記事にしました。

老兵は死なず、AIと踊る

怖いわChatGPT

老兵は死なず、AIと踊る

 クソコードを書けの記事でChatGPTを使いながら論点の整理をしていて、ChatGPTの指摘がなかなか面白いのと、どうもおべっかが過ぎるので他の記事はどうなんだろうということで、過去の記事をChatGPTに入れました。おべっかを除けば指摘はなかなか的確に感じ感想文のトーンから判断すると「つまらない記事」というのがあるんだなと気づきました。ちなみにChatGPTの指摘は有用で私自身はためになるのですが、今のところ過去の記事自体を修正するのは控えています(校正はやっています)。
「まぁ、AIが作った記事ってつまらんよね」と思っていたのですが、オブジェクト指向再考についていろいろ議論をしてましたところ、なんと途中からクソコードを書けオブジェクト指向再考についての記事の類似点を指摘しだしました。

やりとりはこちら

 こちらとしては、オブジェクト指向再考についての議論をしているつもりでしたが、ChatGPTがいきなりクソコードを書けとの類似点を指摘してきました。長いのでタイトルを出しますと「共通している本質」のところになります。ChatGPTの指摘が「つまり、どちらも“思考停止の信仰”からプログラマを解放する話なんですよね。」ということで逆に私が「なるほど」と思ったのですが、私自身はそこまで明確に自覚していませんでしたが、言われてそうだと気づいた次第です。

私自身、ブログやYoutubeをやるときに心構えとして「表層的だったり扇動的な議論ではなく、本質を追求する」とやっておったのは事実で、改めてそれを指摘された次第です。ChatGPTの指摘に「余計な指摘をしやがって」と思うと同時に、「こいつは良く分かっているな」というある種の満足感も得られました。

いままではChatGPTは主に文書校正とか簡単な論点チェックのみ使っており、あまり真剣に使っていませんでしたが、プログラミング関連の議論で、今回なかなかの突っ込みを見せてきましたのでその技術革新に驚きました。

このブログもしばしば過去に様々な議論を行ってきました。この議論はもちろん「世間の誤解を正す」という目的もありますが、「有益なツッコミによって自分自身、新しい発見をする」というものもありました。つまり相手からの反論を自身への攻撃とはみなさないで、「何が言いたいんだろうか?」とその意図を考えるようにしてました。つまり相手の話を聞くようにはしていました。もっともこちらは十分に下調べをしてから書くので簡単には反論できないのも事実で、特に感情的な人にとっては逆襲をうけたでしょう。ちなみにこの記事のコメント欄の「あいださん」2016-02-22 13:10:37(投稿)が理解されているとおり、私としては「変なコメントでも議論を続ける」ことが誠意を示しているつもりでした。

もっとも、上記の記事のあいださんの前のnagiさんとのやりとりですが、今、読み返すと「不毛」の一言につきるかと思います(10年経った今読み返すと論点が直感的にわからないのと、それが分かった時のレベルの低さを鑑みるとがっかりしました)。また、このやりとりのあと、当時としても明らかに不毛なコメントが入ってきたのでコメント欄を承認制しました。

コメント欄を承認制にしたので、有益なツッコミもなくなり、ある種つまらなくなったのですが、私自身通訳案内士としての活動も開始したので、あまりプログラミングについては記事を書くこともなかったのです。

今回改めて、「クソコード」で記事を書くにあたり、当然、AI(ChatGPT)を利用した次第ですが、ChatGPTの場合、傾向としては相手に寄り添うような表現を使うが、きちんと反論をしたり、こちらが気が付かない論点を持ってきたりします。活発な議論ができることになります。

つまり、ChatGPTを使うと私の中で議論が完結するという感覚になります。本来議論は人と行うものだったのですが、なんとも言えない味気ないものになったと同時に、私自身はそれで満足してしまっているわけです。

ELIZA効果など昔からAIを知っている人たちは、過度に機械との対話に依存することに警戒を持つのですが、ちょっとフェーズが変わったかもしれません。

というわけで当然この記事もChatGPTに評価させました。

老兵は死なず、AIと踊る

マイナ保険証(2025年7月)資格確認証を入手しました

 Youtubeの方ではマイナンバー問題ということでちょいちょい動画をアップいましたが(こちらが再生リストになります)、ここ数か月動画の更新をさぼっていましたが、この度資格確認証を入手しましたのでそれについての記事になります。

資格確認証を取得するメリット(ほぼ今までどおり保険診療が受けられる)

 マイナ保険証については過去にトラブルが発生しその検証・対策もまるで素人がやっているようで(詳しくはマイナンバー問題)、今後もきちんと運用がされるかどうか怪しいところがあります。
こういう状況で安心して保険診療を受けられるようにするには『資格確認証を取得する』ことが選択肢になるでしょう。具体的には、マイナ保険証の利用登録解除(および場合により多少の追加手続き)を行うと「資格確認証」が送られてくるようになります。これは従来の保険証とほぼ同じものであり、今後も従来どおりの保険診療が受けられるようになります。政府は「デジタルだ!」といいながら、不完全な(ベータ版としか言いようのない)システムを導入しているが、そんな不完全なシステムが引き起こすトラブルにいちいち付き合う必要はないでしょう。
ちなみに、2025年7月時点での利用登録解除は数万件程度であり、今の段階では比較的スムースに登録解除ができるようです。今年は私のマイナンバーカードの更新年で、新しいカードを取得するのに2か月半かかったが、利用登録解除はそれよりはるかい迅速に手続きができるようです。一度登録解除を行い、二度と登録しないようにすれば、今までどおり安心して保険診療が受けられるようになります。

マイナ保険証でよいのではないか?

 現在、マイナ保険証を利用しており特段問題がない方はそのまま利用するのも手であります。
もっとも、マイナ保険証を利用するには2つ程注意点があります。
1点目は、マイナ保険証での受付が出来ない場合があるということで政府をそれに対する対応策を示しています。要はマイナ保険証だけでなく「資格情報のお知らせ」を持った方がよいということで、マイナ保険証だけでは窓口でトラブルとなる可能性がある。
2点目は、マイナンバーカード(電子証明書)の有効期限を意識しなければならないことで、5年目(5回目の誕生日)で電子証明書の更新があり、10年目(10回目の誕生日)でマイナンバーカードの更新があります。更新を忘れるとマイナ保険証が使えなくなる。『その場合どうなるか?』ということがあるが、最終的には資格確認証が送られてくることになるが、それなら資格確認証でよいということになる。
もちろん、今後システムの完成度が上がり、マイナンバーカードの更新が習慣化すればマイナ保険証で受診するのが当たり前となるかと思われるが、時間はかかるかと思われる。

マイナ保険証の利用登録解除とそのデメリット

 利用登録解除を行うには、保険者(保険証に記載がある)に連絡することになる。保険者の名称からWEBで検索を行ってホームページから『利用登録解除』の方法を調べることになる。国民健康保険・後期高齢者医療保険は市町村に問い合わせることになる。サラリーマン等のいわゆる厚生年金加入者は健康保険組合と呼ばれる団体に問い合わせることになる。
サラリーマンの方が利用登録解除を行い、資格確認証を取得しようとすると、場合によっては資格確認証が会社に送られてくるかもしれない。多くの中小企業が入っている全国健康保険協会(いわゆる協会けんぽ)の東京支部の場合は、会社に送られてきた。また全国健康保険協会は会社に対して従業員に『マイナ保険証を使うように』と通知を行っており会社員の方にとってはプレッシャーとなるかもしれない。その他、確定申告時に医療費控除を受ける際に領収書を集めておかなければならないとか一定の不便さがある(このあたりは従来どおりと言えば従来どおりである)ので今一度、マイナ保険証のメリットを再確認して、メリットが失われた場合に本当に困らないかどうか、念の為、確認する必要があるでしょう。

ヤフオク vs メルカリ どちらが良いか?

ヤフオク歴はほぼ四半世紀で、PentiumIII600Bを売ったりしたこともありますが、そこまで真剣にオークションをやるようなことはなかった。
コロナ禍の時、マイニング用のGPUを入手するためにヤフオクを利用したのをきっかけに久しぶりにオークション熱が出て今では常時70個のアイテムをオークションに出している。もっとも、全て個人所有で不用となったものを出品している。

月に2個程度落札されていくのだが、おかげ様で少しずつ部屋が、かたずいて・・・いない。
理由はそれ以上に落札しているからで、憧れのHaswell/Broadwellのパーツの落札をきっかけとして、順調にコレクションを増やし、おかげ様で、Core iシリーズのHEDTが稼働状態で10台程ある。

稼働状態のマシンをCPU別にまとめると
Core i7-980X×2
Core i7-3970X
Core i7-4960X
Core i7-6850K
Core i7-6950X×2
Core i7-7820X
Core i9-10980XE
XEON E5-2696 V4

であり、CPU単体では他に
Core i7-920×2
Core i7-3930K
Core i7-5820K(動作品ということで入手したが未確認)
Core i7-5960X
XEON E5-1650 V4
XEON E5-2620 V4
XEON W-2120(動作環境が無いため確認できず)。
を保有しており、このうちのいくつかはヤフオクで出品中となっている。

実はこのコレクションだが、ちょっとした穴がある。各ソケットの最速CPUをリストアップすると
Socket 1366 Core i7-990X
Socket 2011 Core i7-4960X
Socket 2011-V3 Core i7-6950X
Socket 2066 Core i9-10980XE

となり他は持っているが、Socket 1366の最速CPU(Core i7-990X)だけ持っていない。
当時を知る人は分かってもらえるが、Core i7-990Xが出た当時(2011年頃)、『わざわざこれを買うのか?』状態であったのだが、ハイエンドということもありほとんど性能が同じ980Xよりも価格が下がりにくくなっていた。
私としてはむしろ値段がこなれた980Xを集め(マイニングをしていた関係で980Xを最大4個それ以外に970を2個持っていた)、990Xは眼中になかった。
YoutubeでHaswell/Broadwell(Socket 2011-V3)についてやっていたのが約3年程前になるが、その後、Skylake/CascadeLake(Socket 2066)と入手し、Sundaybridge/Ivybridge(Socket 2011)を入手したときに全てハイエンドCPUでそろえたのだが、気が付けば990Xが無いことに気が付いた。

ということで、最後のパーツを埋めるべくオークション・メルカリを漁っているのだが、990Xはいまだに人気があるようで動作品を入手しようとすれば約7000円からとなる。ちなみに4960Xは流通量こそ少なかったが、4000円程度で入手できたので、それより性能が劣る990Xが7000円程度というのはちょっと納得がいかない。もっとも6950Xは3万円、10980XEは6万円で入手したのだが・・・。
しかたなく、動作確認を行っていないもの(いわゆるジャンク品)に手を出すことになるのだが、この場合、「本当に動作未確認なのか?」という心配がある。
といってもたかが数千円程度のものであるので、最近は流行っているチャイナドラマに課金したと思って、メルカリで動作未確認を4000円程で購入したところ、晴れて「動作しない」ものを入手できた。安物買いの銭失いですな。

ここで、気づいたことがあるのだが、ヤフオクの場合このように「未確認」と言われて落札して動作しないものだった場合、私は評価を「どちらでもない」として「動作しませんでした」というコメントを入れるが、メルカリの場合「良い」か「残念」しかない為、このような評価を行うことができない。もちろん評価を「良い」としてコメントに「動作しませんでした」ということもできるがこの場合、いちいちコメントを読まないと、未確認品の結果がわからないのでこれはこれで不便である。まぁ「残念」という評価にすればよいのだが報復が面倒ということもある。
一方で、動作確認済みの商品で動作しない場合、ヤフオクの場合は自分でやり取りをする必要があるがメルカリの場合は割と迅速に事務局が間に入ってくれるので返金対応が早い、
そもそも、動作品が動作しないというのもおかしな話かと思われるがオークション・フリマというのはそういうものであるともいえる。

諦めきれずに、今度は動作確認品をメルカリで約7000円で購入したのだが、今度はこれがなかなか発送されない。ヤフオクの場合は概ね翌日に発送される(業者の場合は取引が多いこともあるのか平日で5日以内とかもある)。一方でメルカリの場合は翌日までに発送されることはまずなく、発送期日を超えることもざらである。あまりにも発送されないので結構な割合で取引のキャンセルを行っている。キャンセルについても事務局を通せば時間はかかるがしっかりと対応してくれる。
一方で、ヤフオクの場合は出品者が24時間以内に発送していると「この出品者は平均24時間以内に発送している」とマークされる。のでそういう出品者から落札することになる。

ということで、「ヤフオクとメルカリはどちらが良いか?」ですが、ここ5年程の傾向の感想になるが、以下落札者となった場合のヤフオクとメルカリについて

ヤフオク:評価システムがしっかりしているので事前に相手の評価がある程度把握でき対応ができる。出品者の質もある程度良い。(ただし詐欺的な出品者は多い)

メルカリ:事務局対応がしっかりしているので、トラブルがあった場合の事後対応が安心できる。出品者の質はあまり良くない。良くも悪くも素人が多い。

ということが言えるかと思う。
まぁ、何れにしてもトラブルを楽しめるようでないとオークション・フリマの利用はストレスがたまるかと思う。

フィッシング詐欺メールをさらす

最近のフィッシング詐欺メールですが、巧妙になってきました。

今のところの、対応方法ですが、「ご返金確認」や「キャンペーン詳細ページへのリンク」のURLがこの場合amazon.co.jpになっているかどうかのチェックですかね。ちょっと前ですとcnで終わっていたりするのですが最近はcn以外も増えてきました。このメールでは最後がcfd(”clothing・fashion・design”それぞれの 頭文字を取った、服飾・ファッション・デザインに関する情報を 発信するWebサイトやブログなどに最適なドメイン)でした。

あと、地味なところですが、HTMLではなくテキストで開くというのもありますね。HTMLの場合、リンクを確認するにはマウスカーソルを合わせるなりしてリンクを表示させる操作が必要ですが、テキストの場合、メールの本文にリンクが表示されるのでより明確になるかと思います。

PHPのバージョンアップの激しさに閉口する

WordPressのお知らせで、わざわざPHPのサポート終了について知らせてくれるのだが、Rocky Linux9(要はRHEL9)の場合、PHP 8.0系でも2032年までサポートするらしい。というこで気にはなるが今のところは放置でよい。
もっとも、過去にWordpressがPHP5系のサポートを止めて7系に強制アップデートしたときがありその場合(Centos5か7)の時はPHPのバージョンを気にしないとダメだったので面倒だった。
プログラミング言語のサポート期間が4年とか5年というのは、短すぎると思うのだが、如何でしょうか?