プログラマー、コンピュータプログラマー、またはコーダーとは、コンピュータのソースコードを作成する人、あるいはコンピュータプログラミングのスキルを持つ人のことを指します。ソフトウェア開発者やソフトウェアエンジニアといった専門職名は、プログラマーを必要とする仕事に使用されることがあります。
ソフトウェア開発者は、主に仕様に基づいてソフトウェアを実装し、バグを修正します。その他の業務には、コードの変更内容の確認やテストなどが含まれます。この仕事に必要なスキルを習得するために、コンピュータサイエンスの学位や準学士号を取得したり、プログラミングのブートキャンプに参加したり、独学で学ぶ人もいます。
ソフトウェアエンジニアは通常、開発者と同じ業務に加え、ソフトウェアエンジニアリングにおけるより広範な責任を担います。これには、新機能やアプリケーションのアーキテクチャ設計、新しいプラットフォームへの対応、ソフトウェア開発ライフサイクル(設計、実装、テスト、展開)の管理、プログラマーチームのリーダーシップ、顧客、マネージャー、その他のエンジニアとのコミュニケーション、システムの安定性と品質の考慮、ソフトウェア開発手法の探求などが含まれます。
ソフトウェアエンジニアには、ソフトウェアエンジニアリング、コンピュータエンジニアリング、またはコンピュータサイエンスの学位が求められる場合があります。一部の国では、エンジニアと呼ばれるためには工学の学位が法律で義務付けられています。[ 1 ] [ 2 ] [ 3 ]

イギリスの伯爵夫人で数学者のエイダ・ラブレスは、しばしば最初のコンピュータプログラマーと考えられています。彼女は、チャールズ・バベッジの解析機関でベルヌーイ数を計算するアルゴリズムを作成し、1942年10月に発表しました。 [ 4 ]この機械は彼女の生前に完成しなかったため、彼女はアルゴリズムが実際に動作するのを目にすることはありませんでした。
1941年、ドイツの土木技師コンラート・ツーゼは、プログラム制御の電子計算機上でプログラムを実行した最初の人物となった。[ 5 ] 1943年から1945年にかけて、コンピュータ科学者のヴォルフガング・K・ギロイとAI教授のラウル・ロハスらによると、ツーゼは最初の高水準プログラミング言語であるPlankalkülを作成した。[ 6 ] [ 7 ]
1945年のENIACプログラミングチームのメンバーであるケイ・マクナルティ、ベティ・ジェニングス、ベティ・スナイダー、マーリン・ウェスコフ、フラン・ビラス、ルース・リヒターマンは、その後、最初のプロのコンピュータプログラマーとして認められるようになった。[ 8 ] [ 9 ]
ソフトウェア製品とサービスを提供する目的で設立された最初の企業は、 1955年に設立されたコンピュータ使用会社でした。それ以前は、コンピュータのプログラミングは顧客または当時の少数の商用コンピュータメーカー(スペリー・ランドやIBMなど)によって行われていました。[ 10 ]
ソフトウェア産業は、コンピュータが初めて大量生産されて販売された直後の1960年代初頭に拡大しました。大学、政府、企業がソフトウェアの需要を生み出しました。これらのプログラムの多くは、専任のプログラマーによって社内で作成されました。一部は特定のコンピュータのユーザー間で無料で配布され、その他は商用ベースで販売されました。コンピュータサイエンスコーポレーション(1959年設立)などの他の企業も成長し始めました。コンピュータメーカーはすぐに、オペレーティングシステム、システムソフトウェア、プログラミング環境をコンピュータにバンドルし始めました。IBM 1620には、1620シンボリックプログラミングシステムとFORTRANが付属していました。[ 11 ]
1970年代半ばにパーソナルコンピュータ(PC)が登場したことで、業界は大きく拡大し、一般のオフィスワーカーにもコンピューティングが普及しました。その後数年間、PCはゲーム、アプリケーション、ユーティリティソフトウェアの市場を継続的に成長させるのにも貢献しました。[ 12 ]

コンピュータプログラマーは、コンピュータがその機能を実行するために従わなければならない詳細な命令(コンピュータプログラムと呼ばれる)を記述、テスト、デバッグ、保守します。プログラマーはまた、コンピュータで問題を解決するための論理構造を考案、設計、テストします。プログラミングにおける多くの技術革新(高度なコンピューティング技術、洗練された新しい言語やプログラミングツールなど)は、プログラマーの役割を再定義し、今日行われているプログラミング作業の多くを向上させてきました。組織によって、職名や職務内容が異なる場合があります。[ 13 ]
プログラマーは、企業の情報技術(IT) 部門、大手ソフトウェア会社、小規模サービス会社、あらゆる規模の政府機関など、さまざまな環境で働いています。多くのプログラマーは、コンサルティング会社に契約社員としてクライアントの現場で働いています。プログラマーとして働くためにライセンスは通常必要ありませんが、プログラマーは一般的に専門資格を保持しています。[ 13 ]プログラミングは専門職とみなされています。[ 14 ] [ 15 ] [ 16 ]
プログラミングエディタ(ソースコードエディタとも呼ばれる)は、プログラマーや開発者がアプリケーションやプログラムのソースコードを記述するために特別に設計されたテキストエディタです。これらのエディタのほとんどには、プログラマーにとって便利な機能が含まれており、色による構文強調表示、自動インデント、オートコンプリート、括弧のマッチング、構文チェック、プラグインの有効化などが含まれます。これらの機能は、コーディング、デバッグ、テストの際にユーザーを支援します。[ 17 ]
BBCニュースによると、2009年の卒業から6か月後、コンピュータサイエンスの学生の17%が自分の分野で仕事を見つけられなかった。これは調査対象となった大学の学科の中で最も高い割合だったが、同じ調査では医学部の学生の失業率は0%だった。[ 18 ]
ドットコムバブルの崩壊(1999~2001年)と大不況(2008年)の後、多くの米国プログラマーは職を失ったり、賃金が下がったりした。[ 19 ] [ 20 ] [ 21 ]さらに、米国ではコンピュータ関連の学位やその他のSTEM学位(STEMの離脱)[ 22 ]の入学者が長年にわたって減少しており、特に女性で顕著である。[ 23 ] [ 21 ] [ 24 ] BeaubouefとMasonによると[ 25 ] 、これは科学や数学に対する一般的な関心の欠如と、プログラミングが製造業や農業のキャリアと同じような圧力にさらされるのではないかという明らかな恐れに起因する可能性がある。プログラマーに関しては、米国労働統計局(BLS)の職業展望では、当初、2010年から2020年にかけてプログラマーが12%増加すると予測されていました[ 26 ]。その後、2016年から2026年にかけて-7%減少、2019年から2029年にかけてさらに-9%減少、2021年から2031年にかけて-10%減少[ 13 ]、そして2022年から2032年にかけて-11%減少[ 27 ]と予測されていました。2024年から2034年の現在の予測は-6%の減少です。コンピュータプログラミングは世界中のどこからでも行うことができるため、企業は賃金の低い国でプログラマーを雇用することがあります[ 13 ] 。国内需要が増加したとしても、それは主に高齢のプログラマーやこの職業を離れるプログラマーの減少を補うためです。[ 28 ]しかし、BLS はソフトウェア開発者の現在の成長率を 15% と予測しており[ 28 ]、これは 2019 年から 2029 年にかけての雇用の 22% 増加、1,469,200 から 1,785,200 の雇用、年間基本給の中央値 $110,000 という予測を下回っています。この予測は、以前の 2010 年から 2020 年にかけてのソフトウェア開発者の増加率 30% よりも低くなっています。[ 29 ] [ 30 ] [ 20 ]区別はやや曖昧ですが、ソフトウェア開発者はアプリケーション開発のより幅広い側面に関与し、一般的にプログラマーよりも高いスキルを持っているため、アウトソーシングのリスクは低くなります。[ 31 ] [ 32 ]プログラマーの減少のもう 1 つの理由は、雇用主が時間の経過とともに職位の要件を引き上げているため (たとえば、フルスタック開発者)、プログラマーのスキルが開発者などの他の職業と統合されていることです。このスキル統合により、一部の雇用主はプログラミング人材に関してスキル不足があると主張しています。しかし、米国のプログラマーと労働組合は、一部の雇用主は賃金の低い国からプログラマーを獲得し、非常に特定の技術のトレーニング費用を支払うことを避けるために、自分たちの主張を誇張していると反論しています。 [ 33 ]さらに、人工知能とバイブコーディングの最近の進歩が、将来の世代のソフトウェア職業の需要に劇的な影響を与える可能性があるという懸念もあります。 [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [41 ] [ 42 ]
2024年現在、日本では、主に労働人口の高齢化と出生率の低下によりプログラマーの需要が急速に増加しており、そのギャップを埋めるためにAIの利用が増えている。 [ 43 ] [ 44 ]一方、2020年現在、日本には120万人以上のプログラマーがいるにもかかわらず、日本の企業の40%以上がプログラマーを含む熟練した資格のあるIT人材が不足していると回答しており、2030年までにプログラマーの数は160万人を超えるが、プログラマーを含む約80万人のエンジニア不足が発生すると予想されている。[ 45 ] [ 46 ]

プログラミング教育とは、コンピュータプログラミングの概念、言語、実践を教えたり学んだりすることです。正式なコンピュータサイエンスの学位プログラム、職業訓練、キャリアおよび技術教育センター、コーディングブートキャンプ、図書館、[ 47 ]オンラインコース、自己主導型学習など、さまざまな形式で提供されています。教育イニシアチブは、問題解決、計算的思考、論理的思考、アルゴリズムの開発に焦点を当てることがよくあります。初等および中等教育では、 Hour of Code、Code Club、Learn to Codeなどのイニシアチブや、教室にコンピュータを導入することによって、プログラミングはコンピュータリテラシーカリキュラムにますます統合されています。[ 48 ] [ 49 ]高等教育レベルでは、プログラミング指導には、ソフトウェアエンジニアリング、データ構造、デバッグ、ソフトウェア設計、ゲーム開発、人工知能、暗号化、データサイエンスなどの専門分野のコースワークが含まれる場合があります。AIチャットボット、教育用プログラミングソフトウェア、オンライン統合開発環境などの多数のプラットフォームとリソースにより、プログラミング教育へのアクセスが拡大しています。[ 50 ] [ 51 ] [ 52 ]
コンピュータプログラマーは、この絶えず進化する職業に就き、スキルを最新の状態に保つために、コースを受講したり、資格を取得したりすることがよくあります。
この職業について調べて、コンピュータ プログラミングのキャリアで成功する方法を見つけてください。