⚙️ Engineering & Technology

💻ソフトウェアエンジニア

現代生活を動かすコードを書き、テストし、保守する仕事であり、AIが自分自身の日々の作業を自動化していく様子を最初に目の当たりにしている職業の一つでもある。

Also called: ソフトウェア開発者 · プログラマー · コーダー

基本データ

エイダ・ラブレス、1843年最初のプログラマー
13万3080ドル/年年収中央値(米国、2024年)
約170万人(2024年)米国のソフトウェア開発者数
チューリング賞、1966年創設最高の栄誉
世界全体で約23%女性比率
1968年、NATO「エンジニアリング」の呼称が定着

ソフトウェアエンジニアは、銀行や病院、工場、携帯電話、宇宙船を動かすプログラムを設計し、構築し、テストし、保守する。仕事の内容は新機能の開発から不具合の修正、そして100人もの他のエンジニアが後から安全に変更を加えられるようにシステムをどう構造化するかの決定まで多岐にわたる。あるソフトウェアエンジニアはモバイルアプリを最初から最後まで手がける一方、別のエンジニアは航空会社のシステムの座席割り当て部分のような、はるかに大きなシステムの一部だけをキャリアの間ずっと担当することもある。

この肩書きは仕事そのものよりも若い。1968年、NATOの会議が「エンジニアリング」という言葉をあえて借用し、コードも橋や航空機と同じ規律に値すると論じるよりずっと前から、人々は何十年もプログラムを書いていた。その論争は今も決着していない。構造エンジニアとは異なり、ほとんどのソフトウェアエンジニアは実務に免許を必要とせず、この分野は今でも自らを技芸なのか、科学なのか、あるいはその両方なのかを議論し続けている。

このサイトで扱う職業の中でも、ソフトウェアエンジニアリングには際立った特徴が二つある。正式な参入障壁の低さに比してきわめて高い報酬を得ていること、そして自らが作り出したツールによって日々の成果物の大きな部分──定型的なコード、初稿のテスト、日常的な修正──が置き換えられていく様子を目の当たりにする最初のホワイトカラー職の一つであることだ。後に残るのは、より難しく、より重要な部分の仕事である。

The profile

358055687890
  • Resists AI35
  • Pay80
  • Barrier to entry55
  • Autonomy68
  • Demand78
  • Impact90

How exposed is it to AI?

63 / 100

高い

エンジニアが一週間に書くコードの大きな部分──定型コード、初稿のテスト、日常的な変換──は、すでに言語モデルにとって比較的速く生成できるものになっている。自動化が難しいまま残っているのは、何を作るべきかを決めること、もっともらしく見える変更が微妙に間違っている箇所を見つけること、そして本番環境で失敗したときに責任を負うことである。

AI & The Future →

Seven ways into this profession

01

Origins & Evolution

1843年のエイダ・ラブレスのアルゴリズムからパンチカード、コンパイラ、Unix、ウェブを経て今日のAI支援コーディングまで、ソフトウェアエンジニアリングの発展の歴史。

Read →

02

Culture & Status

1967年に「コンピューターガールズ」を称賛した雑誌記事からシリコンバレー映画まで、ソフトウェアエンジニアの世間的イメージがどう変わってきたか。

Read →

03

University & Route In

学位、ブートキャンプ、独学のルート、実在の大学名、そしてソフトウェアエンジニアとして採用されるかどうかを決める面接という『関門』。

Read →

04

Craft & Know-How

実際に求められる能力、ある一日の過ごし方、業界標準のツール、そして経験豊富なエンジニアが実際に頼りにするデバッグの知恵。

Read →

05

The Greats

1843年のエイダ・ラブレスのアルゴリズムから、リーナス・トーバルズやグレース・ホッパーまで──今もソフトウェアの作られ方を形作る決断を下した人々。

Read →

06

AI & The Future

ソフトウェアエンジニアリングのどの部分がすでにAIによって行われているか、どの部分が自動化に抵抗しているか、そして仕事がどう変わりつつあるかを具体的かつ率直に見る。

Read →

07

Pay & Market

米国、スイス、ドイツ、英国、日本、インドの実際の給与帯に加え、需要動向と最も多くのエンジニアを採用している雇用主。

Read →

よくある質問

ソフトウェアエンジニアは実際に一日何をしているのか?
多くの日は、新しいコードを書くこと、レビューで他人のコードを読むこと、バグを修正すること、次に何を作るべきかチームメイトと話し合うことに分かれる。会議や計画立案、後輩の指導は新人が思う以上に時間を占める。シニアエンジニアはジュニアエンジニアより自分でコードを書く量が少なく、設計判断やレビュー、他者の障害を取り除くことに多くの時間を費やすことが多い。
ソフトウェアエンジニアになるにはコンピューターサイエンスの学位が必要か?
必須ではないが、依然として最も一般的で摩擦の少ない道である。4年制の学位ではアルゴリズムやデータ構造、システムの概念を学ぶが、これらは独学では習得コストが高い。ブートキャンプ卒業生や独学のエンジニアも採用されており、特に小規模企業ではそうだが、通常は学歴の代わりとなる強力なポートフォリオやオープンソースへの貢献が必要になる。
ソフトウェアエンジニアリングはAIによって脅かされているのか?
一部はすでにそうなっている。現代のコードエディタに組み込まれたツールは、定型コードや初稿のテスト、言語間の変換など、日常的なコードの大きな部分を、日常的に使うエンジニアのために書くようになっている。はるかに自動化が難しいのは、何を、なぜ作るのか、そして実際のユーザーや障害にさらされても生き延びるようにシステムをどう形作るかを決めることである。
ソフトウェアエンジニアの収入はどれくらいか?
国や企業によって大きく異なる。米国では中央値が年間約13万3000ドル、ドイツではおよそ6万9000ユーロ、業界が最も多くの人を雇用しているインドでは全国平均が90万ルピー前後になる。大手テクノロジー企業のシニアやスタッフエンジニアは、株式報酬を含めると全国中央値の数倍を稼ぐこともある。
ソフトウェアエンジニアとプログラマー、開発者の違いは何か?
実際にはほとんど違いがない。肩書きは重複しており、企業によって使い方も一貫していない。「プログラマー」は最も古い用語でコードを書くことを重視し、「開発者」はウェブやプロダクト企業でよく使われ、「ソフトウェアエンジニア」はより古いエンジニアリング分野から借りた規律あるプロセスやテスト、設計の考え方をソフトウェア構築に適用するという意味合いを持つ。求人票でこれらが一貫して区別されることはほとんどない。
採用にコーディング面接は本当に必要なのか?
多くの大手テクノロジー企業では、そうである。共有ドキュメントやホワイトボード上でアルゴリズム問題を解くライブまたは持ち帰り形式の技術面接が標準的な選考手法であり、より上級の職種にはシステム設計面接も加わる。小規模企業やスタートアップでは、有償の試用プロジェクトやポートフォリオレビュー、過去の実績についての会話で代替する可能性が高い。
ソフトウェアエンジニアはリモートで働けるのか?
できる。このサイトの他のほとんどの職業よりもリモート勤務が多い──プロの開発者の多くが完全リモートまたはハイブリッドで働いており、仕事そのもの(コードを書き、レビューし、ビデオ通話に参加すること)が物理的な出社をほとんど必要としないためだ。2023年以降、リモート採用を縮小した雇用主もあり、ハードウェアや機密システムに関わる職種は依然として出社を必要とする。
ソフトウェアエンジニアは卒業後も新しいツールを学び続ける必要があるのか?
常に必要である。ある10年間を席巻した言語やフレームワーク、プラットフォームが次の10年には周辺的な存在になることも多く、エンジニアがコードを書くために使うツール──最近ではAIコーディングアシスタント──は数年ごとに日々の仕事のやり方を変えている。学位やブートキャンプを終えた後に学ぶのをやめてしまうエンジニアは、スキルと収入の両方ですぐに頭打ちになる傾向がある。

More in Engineering & Technology