エンジニア職を目指すならWindows PCくらい自作しろ〜道具に使われる無能と生き残るオトコの条件〜

Tech & Logic

昨年まで社員を雇って会社経営をしていた俺様だが、採用面接で落とす連中の志望動機はとにかく浅い。「プログラミングを学んで世の中に貢献したい」「最先端のAI技術を扱いたい」などとテンプレを並べ立てるが、薄っぺらすぎて面接するのすら面倒になるレベルだ。

巷のプログラミングスクールや情報商材に踊らされている情弱どもに、元経営者かつ現役エンジニアとしての辛口な現実を突きつけてやろう。「年齢を重ねても現場で生き残れる本物の技術者」と「真っ先に切られる道具使い」の決定的な違いについてだ。

プログラミング言語を1つ覚えたくらいで偉そうにするな

UdemyやProgateなどで言語を少しかじった程度の連中が「Python書けます」「Javaできます」とドヤ顔をしてくるが、おじさん世代から見ればPHPもPythonもC#もJavaも、本質的な構造は全部同じに見える。「で、何が新しいの?」とツッコミを入れたくなること請け合いだ。

なぜそう断言できるのか。今の50代が若手だった頃、世間がCOBOL全盛期の時代に、某大手メーカーの通信デバイス開発部門にいた俺様が使っていたのは「専用C言語」と「アセンブラ」だ。
デバッグといえば「ICE(In-Circuit Emulator)」を繋いでCPUの動作を物理的にエミュレートし、画面に流れるニーモニック(16進数の機械語の羅列)を直読してバグを追うのが日常だった。その後、初めて転職した現場で「Visual Basic」を触り、ブレークポイントで処理を一時停止して変数の値を視覚的に確認できた時、「こんな魔法のような環境があるのか」と恐ろしく感動したのを今でも覚えている。

30年以上前に泥臭く叩き込んだその本質は、驚くべきことに今でも現場で通用している。
言語やフレームワークといった表面的な流行だけを追いかけている奴は、バージョンのアップデートや仕様変更であっという間に使い物にならなくなる。しかし、「コンピュータがソフトウェアを実行する仕組み」そのものを理解していれば、道具がどれだけ進化しようが対応できるのだ。

最近の連中は「生成AIを活用したRAG(検索拡張生成)の構築」や「ハルシネーション対策」を最先端技術だとありがたがっているが、本質を見ればOracle8の時代(25年以上前)に存在したあいまい検索機能「InterMedia」の辞書チューニングと構造は何一つ変わっていない。
開発の本質は「仕組み」を理解することにある。「道具を使うこと」そのものを仕事にした時点で、エンジニアとしての寿命は終了だ。

道具を使うのを目的にするな

最近の若手エンジニアがVS Codeの拡張機能をこれでもかと盛り込んで作業している横で、俺様はいまだにviエディタやサクラエディタを使っている。VS Codeの過剰な機能など不要だし、設定に振り回されるだけ時間の無駄だとすら感じる。

昭和・平成の百戦錬磨の先輩たちから「viこそが最強のエディタだ」と叩き込まれた俺様からすれば、VS Codeでやりたいような操作はviのコマンドモードで全て完結する。
道具を使いこなしている気になってイキっている連中は、一度マウスすら置けない過酷なサーバリビングに放り込み、コンソール画面とキーボードのホームポジション打鍵だけでコードを書かせてやりたいものだ。マウスレスで作業を完結させることがどれほど効率的か、身をもって知るべきである。

そして、道具信奉者が必ずやらかすのが「自分のPC環境で動いたから作業完了」と言い出す愚行だ。

「僕の環境では正常に動きました!」

現場でこれほど屁の役にも立たないセリフはない。
その環境依存を排除するためにDockerのようなコンテナ技術があるわけだが、プログラムの本質は「入力データとマスターデータの整合性が取れて初めて検証できるもの」だという大原則を理解していない自称エンジニアが多すぎる。道具がどれほど便利になっても、使う人間が思考停止して退化していては話にならない。

文系・未経験を言い訳にハードウェアの勉強をサボるな

俺様がコンピュータに触れた原点は、中学生の頃に8ビットCPUを搭載したNEC「PC-8801」やSHARP「MZ-2000」、そして規格統一を目指した「MSX」で遊んだゲーム体験だ。「ゲームで遊びたい」という純粋な動機から、遊ぶために必要なBASICを独学したのが全ての始まりだった。

その後、一浪して進学した大学は「日本文学科」という生粋の文系学部だ(なぜ文系に進んだかの経緯は別記事で語る)。しかし、中学時代に培ったBASICの基礎知識があったため、手に職をつけるべく大手メーカー子会社に就職できた。官公庁系の大規模システム開発を3年ほど経験した後に転職し、客先常駐の現場からフリーランスのエンジニアとして独立していった経歴を持つ。

文系だろうが理系だろうが関係ない。「ハードウェアの構造を知っているかどうか」で、プログラミングやデータベースの設計精度は決定的に変わる。
現代はクラウドリソースが全盛の時代だが、ミッションクリティカルな高負荷案件になればなるほど、インフラ設計において以下のようなシビアなハードウェア知識が求められる。

  • AWS EC2のOS領域にどのストレージ(EBSボリュームタイプ)を割り当てるか?
  • RDSやAuroraのI/Oパフォーマンスを最大化するストレージ構成はどうするか?
  • EC2インスタンスをArmアーキテクチャ(Graviton)に刷新してコストと処理性能をどう最適化するか?

クラウドのパラメータを設定するだけでも、裏で動いているCPUアーキテクチャやストレージのI/O特性を理解していなければ、最適なアーキテクチャ設計など不可能だ。

だからこそ、本気でエンジニアを目指すなら「最低限、Windows PCを自分で組み立てられる知識」を身につけておくべきなのだ。

ノートPC一台でスマートに気取りたい気持ちも分からなくはないが、コストパフォーマンスと拡張性で考えればデスクトップの自作・BTOに勝るものはない。
今の時代、無駄にハイエンドな高額CPUを積まなくても、OSインストール領域を高速なM.2 NVMe SSDにし、メモリを32GB積んでおけば、Windows 11の要件を満たす第8世代のIntel CoreプロセッサクラスでもXboxのPCゲームやパチンコシミュレーター(777TOWN)程度はサクサク快適に動作する。実際、俺様のサブ機は第8世代Core構成で今も現役稼働中だ。

Windows 95〜98の時代に比べれば、現代の自作PCのハードルは劇的に下がっている。
いきなりパーツを個別で組むのが怖いなら、秋葉原のショップやBTOメーカーのPCを買って、蓋を開けて中身の構造を一つずつ確認・増設しながら勉強すればいい。

ゲーム実況配信をしている連中以上にPCハードウェアの知識すら持てないようなら、技術で飯を食うエンジニアなど早々に諦めることだ。

タイトルとURLをコピーしました