プログラマー

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

コンピュータープログラマー
ENIACを操作している2人の女性(フル解像度).jpg
BettyJenningsFranBilas、最初のENIACプログラミングチームの一員
職業
名前コンピュータープログラマー
職業タイプ
職業
活動部門
情報技術ソフトウェア産業
説明
コンピテンシーコンピューターコードの作成とデバッグ、ドキュメント化タスク。いくつかの設計および開発作業が頻繁に実行されます。
必要な教育
関連分野の見習いから学士号までさまざまです

コンピュータープログラマーは、ソフトウェア開発者プログラマー、または最近ではコーダー(特により非公式な文脈で)と呼ばれることもあり、コンピューターソフトウェアを作成する人です。コンピュータープログラマーという用語は、コンピューターの1つの領域の専門家、またはコンピュータープログラムを作成するジェネラリストを指す場合があります

プログラマーの最も頻繁に使用されるコンピューター言語(たとえば、AssemblyCC ++C#JavaScriptLispPythonJava )は、プログラマーという用語の前に付けることができますWebプログラミング言語を使用する人の中には、タイトルの前にwebを付ける人もいます。

用語

業界全体の標準的な用語はないため、「プログラマー」と「ソフトウェアエンジニア」は、異なる会社で同じ役割を指す場合があります。最も一般的には、「プログラマー」または「ソフトウェア開発者」という肩書きを持つ人は、コンピューターコードへの詳細な仕様の実装、バグの修正、およびコードレビューの実行に集中する可能性があります。彼らは、コンピュータサイエンスの学位、準学士号を持っているか、独学であるか、プログラミングブートキャンプに参加している可能性があります。「ソフトウェアエンジニア」という肩書きを持つ人は、ソフトウェアエンジニアリングの原則、より高度な数学、および科学的方法を理解することが期待されます。、およびソフトウェアエンジニアリング、コンピュータエンジニアリング、またはコンピュータサイエンスの学位を取得する必要がある場合があります一部の国では、実際の工学の学位をエンジニアと呼ぶことが法的に義務付けられています。区別する企業では、ソフトウェアエンジニアは、新しいプログラム、機能、およびプラットフォームの設計や「設計」など、より広く、より高いレベルの責任を負う場合があります。設計、実装、テスト、および展開を含むソフトウェア開発ライフサイクルの管理。プログラマーのチームを率いる。ビジネス顧客、プログラマー、およびその他のエンジニアとのコミュニケーション。システムの安定性と品質を考慮します。ソフトウェア開発方法論の調査[1]

システムアーキテクトは関連する役職であり、実際のプログラミングを他の人に任せながら技術設計を作成する必要がある場合があります。

歴史

Ada Lovelaceは、多くの人から最初のコンピュータープログラマーと見なされています。[2]

イギリスの伯爵夫人で数学者のエイダ・ラブレスは、 1842年10月にチャールズバベッジ分析エンジンでの実装を目的としたプログラムの一部(具体的にはアルゴリズム)を最初に公開したため、最初のコンピュータープログラマーと見なされることがよくあります。アルゴリズムが使用されましたBernoulli数を計算します[2] バベッジのマシンは、ラブレースの時代に機能する標準として完成したことはなかったため、アルゴリズムが実際に動作しているのを見る機会はありませんでした。

機能している最新の電子コンピューターでプログラムを実行した最初の人物は、1941年 にコンピューター科学者の コンラート・ツーゼでした。

Kay McNultyBetty JenningsBetty SnyderMarlyn WescoffFran BilasRuth Lichtermanで構成されるENIACプログラミングチームは、最初正規のコンピュータープログラマーとして認められています。[3] [4]

ソフトウェア業界

ソフトウェア製品とサービスを提供するために特別に設立された最初の会社は、1955年にComputer Usage Companyでした。それ以前は、コンピューターは顧客または当時の数少ない商用コンピューターメーカー(Sperry RandIBMなど)によってプログラムされていました。[5]

ソフトウェア産業、コンピュータが最初に大量生産された直後の1960年代初頭に拡大しました。大学、政府、および企業は、ソフトウェアの需要を生み出しました。これらのプログラムの多くは、専任のスタッフプログラマーによって社内で作成されました。特定のマシンのユーザー間で無料で配布されるものもあれば、商用ベースで販売されるものもあります。Computer Sciences Corporation (1959年に設立)などの他の企業も成長を始めました。コンピュータメーカーはすぐに、オペレーティングシステムシステムソフトウェアプログラミング環境をマシンにバンドルし始めました。IBM 1620には、1620シンボリックプログラミングシステムとFORTRAN[6]

1970年代半ばのパーソナルコンピュータ(PC)の台頭により、業界は大幅に拡大し、平均的なオフィスワーカーにコンピューティングがもたらされました。その後数年間、PCは、ゲーム、アプリケーション、およびユーティリティソフトウェアの絶えず成長する市場の創出にも貢献しました。その結果、その期間のソフトウェア開発者の需要が増加しました。[7]

21世紀の初めに、サービスとしてのソフトウェア(SaaS )と呼ばれる、ホストされたソフトウェアの別の成功したビジネスモデルが生まれました。一部のプロプライエタリソフトウェアのプロデューサーの観点から、SaaSはWeb経由でのみアクセスでき、定義上、エンドユーザーのPCにクライアントソフトウェアがロードされないため、不正コピーの懸念を軽減します。SaaSは通常、クラウドを使い果たします。[要出典]

作品の性質

コンピュータープログラマーは、コンピュータープログラムと呼ばれる、コンピューターがその機能を実行するために従わなければならない詳細な指示を作成、テスト、デバッグ、および保守します。プログラマーはまた、コンピューターによって問題を解決するための論理構造を考案、設計、およびテストします。プログラミングにおける多くの技術革新(高度なコンピューティングテクノロジーと洗練された新しい言語およびプログラミングツール)により、プログラマーの役割が再定義され、今日行われているプログラミング作業の多くが向上しました。役職や説明は、組織によって異なる場合があります。[8]

プログラマーは、企業情報技術(IT)部門、大規模なソフトウェア会社、小規模なサービス会社、あらゆる規模の政府機関など、さまざまな場面で働いています。多くのプロのプログラマーは、請負業者としてクライアントサイトのコンサルティング会社でも働いていますプログラマーとして働くためにライセンスは通常必要ありませんが、専門的な資格は一般的にプログラマーによって保持されます。プログラミングは職業と広く見なされています(ただし、法的なライセンス要件のあるキャリアのみが職業としてカウントされるという理由で、一部の[誰? ]当局は同意しません)。[8]

プログラマーの仕事は、彼らがプログラムを書いているビジネスの種類によって大きく異なります。たとえば、財務記録の更新に関連する手順は、フライトシミュレータで訓練するパイロットのために航空機の状態を複製するために必要な手順とは大きく異なります。簡単なプログラムは数時間で書くことができます。より複雑なものは1年以上の作業を必要とする場合がありますが、他のものは「完全」とは見なされず、使用されている限り継続的に改善されます。ほとんどの場合、複数のプログラマーが上級プログラマーの監督下でチームとして協力します。[9]

プログラマーは、主に上級プログラマーまたはシステムアナリストによって決定された仕様に従ってプログラムを作成します設計プロセスが完了した後、その設計をコンピューターが従うことができる論理的な一連の命令に変換するのはプログラマーの仕事です。プログラマーは、これらの命令を多くのプログラミング言語の1つでコーディングします。プログラムの目的に応じて、さまざまなプログラミング言語が使用されます。たとえば、 COBOLは通常、メインフレームおよびミッドレンジコンピュータで実行されるビジネスアプリケーションに使用されますが、 Fortranは科学および工学で使用されます。C ++Python科学アプリケーションとビジネスアプリケーションの両方に広く使用されています。JavaC#JavaScript 、およびPHPは、Webおよびビジネスアプリケーションで人気のあるプログラミング言語です。プログラマーは一般に複数のプログラミング言語を知っており、多くの言語は類似しているため、新しい言語を比較的簡単に学ぶことができます。実際には、プログラマーは、 Javaプログラマーなどの知っている言語、または実行する機能のタイプや作業環境(データベースプログラマーメインフレームプログラマーWeb開発者など)によって呼ばれることがよくあります。[要出典]

プログラムを定義するソースコードに変更を加える場合、プログラマーは他のプログラマーにルーチンが実行するタスクを認識させる必要があります。彼らは、ソフトウェアのドキュメントを作成し、ソースコードにコメントを挿入して、他の人がプログラムをより簡単に理解できるようにすることでこれを行います。時間を節約するために、プログラマーは特定のアプリケーション用に変更またはカスタマイズできる基本コードのライブラリを使用することがよくあります。このアプローチは、より信頼性が高く一貫性のあるプログラムを生み出し、いくつかの日常的な手順を排除することでプログラマーの生産性を向上させます。[要出典]

テストとデバッグ

プログラマーは、プログラムを実行してバグ(エラー)を探すことにより、プログラムをテストします。それらが識別されると、プログラマーは通常、適切な修正を行い、許容できるほど低いレベルと重大度のバグが残るまでプログラムを再チェックします。このプロセスは、テストデバッグと呼ばれます。これらは、すべてのプログラマーの仕事の重要な部分です。プログラマーは、プログラムの存続期間を通じてこれらの問題を修正し続けることができます。既存のプログラムの更新、修復、変更、および拡張は、メンテナンスプログラミングと呼ばれることもありますプログラマーは、ユーザーガイドオンラインヘルプに貢献したり、テクニカルライターと協力してそのような作業を行ったりする場合があります。

アプリケーション対システムプログラミング

コンピュータープログラマーは、多くの場合、アプリケーションプログラマーとシステムプログラマーの2つの大きなタイプに分類されます。アプリケーションプログラマは、組織内の在庫を追跡するプログラムなど、特定のジョブを処理するプログラムを作成します。また、既存のパッケージソフトウェアを改訂したり、独立系ソフトウェアベンダーから頻繁に購入する汎用アプリケーションをカスタマイズしたりする場合もあります。対照的に、システムプログラマーは、オペレーティングシステムデータベース管理システムなどのコンピューターシステムソフトウェアを保守および制御するためのプログラムを作成します。これらのワーカーは、ネットワーク、ワークステーション、およびCPUの方法を決定する命令を変更しますシステムの一部は、与えられたさまざまなジョブと、プリンタディスクドライブなどの周辺機器との通信方法を処理します。

資格とスキル

プログラマーは、コンピューティングの特定の側面に関する技術的な専門知識を持っている必要があります。一部の職種では、コンピュータサイエンス、情報技術、工学、プログラミング、またはその他の関連研究などの関連分野で学位を取得する必要があります。

ソフトウェアの種類

プログラマーは、さまざまな分野の専門家と直接協力して、ビデオゲームから教育用ソフトウェア、デスクトップパブリッシングや金融アプリケーション向けのプログラムに至るまで、特定のクライアント向けに設計されたプログラムまたは一般的な使用のためのパッケージソフトウェアのいずれかを作成できます。パッケージソフトウェアのプログラミングは、コンピュータサービス業界で最も急速に成長しているセグメントの1つです。一部の企業や組織は、小規模なものであっても、社内のエンドユーザーからの非常に具体的なニーズに対応するための社内ソフトウェアの設計と開発を確実にするために独自のITチームを設立しました。特に、既存のソフトウェアが適切でないか、高すぎる場合はそうです。 。これは、たとえば、研究所の場合です。[[要出典]

一部の組織、特に小規模な組織では、プログラマーアナリストとして一般に知られている人々が、システム分析と実際のプログラミング作業の両方を担当しています。メインフレーム環境から主にパーソナルコンピューター(PC)に基づく環境への移行により、プログラマーとユーザーのかつての厳格な区別が曖昧になりました。熟練したエンドユーザーは、以前はプログラマーによって実行されていたタスクの多くを引き継ぐことがますます増えています。たとえば、スプレッドシートやデータベース管理ソフトウェアパッケージなどのパッケージソフトウェアの使用が増えているため、ユーザーはデータにアクセスして計算を実行するための簡単なプログラムを作成できます。[要出典]

さらに、インターネットの台頭により、Web開発はプログラミング分野の大きな部分を占めています。現在、多くのソフトウェアアプリケーションは、 Webブラウザを持っている人なら誰でも使用できるWebアプリケーションです。[要出典]このようなアプリケーションの例としては、Google検索サービス、Outlook.com電子メールサービス、Flickr写真共有サービスなどがあります。

ソースコードエディタとも呼ばれるプログラミングエディタは、プログラマまたは開発者がアプリケーションまたはプログラムのソースコードを作成するために特別に設計されたテキストエディタです。これらのエディターのほとんどには、プログラマーに役立つ機能が含まれています。これには、色構文の強調表示、自動インデント、オートコンプリート、ブラケットマッチング、構文チェックが含まれ、プラグインが可能です。これらの機能は、コーディング、デバッグ、およびテスト中にユーザーを支援します。[10]

グローバリゼーション

英国の市場の変化

BBCニュースによると、コンピュータサイエンスの学生の17%は、2009年の卒業後6か月で自分の分野で仕事を見つけることができませんでした。これは、調査対象の大学の科目の中で最も高い割合であり、医学生の0%が同じ調査で失業していました。[11]

米国の市場の変化

ドットコムバブルの崩壊1999年から2001年)と大不況(2008年)の後、多くの米国のプログラマーは仕事がないか、賃金が下がったままになりました。[12] [13]さらに、米国でのコンピューター関連の学位およびその他のSTEM学位(STEMの減少)[14]への登録は、特に女性の場合、何年もの間減少しています[15][16]は、科学と数学に対する一般的な関心の欠如に起因する可能性があり、プログラミングが製造業や農業のキャリアと同じ圧力にさらされることへの明らかな恐れからも起因する可能性があります。プログラマーの場合、米国労働統計局(BLS)Occupational Outlookは、2016年から2026年にかけて7%の減少、2019年から2029年にかけてさらに9%の減少、2020年から2030年にかけて10%の減少を予測しています。世界では、企業は賃金が低い国でプログラマーを雇うことがあります。[17] しかし、ソフトウェア開発者の場合、2019年から2029年までのBLSプロジェクトでは、雇用が22%増加し、年間の基本給の中央値は1,469,200から1,785,200になります。この予測は、ソフトウェア開発者が予測した2010年から2020年の30%の増加よりも低くなっています。[18] [19] [20]区別はややあいまいですが、ソフトウェア開発者はアプリケーション開発のさまざまな側面に従事し、一般的にプログラマーよりも熟練しているため、アウトソーシングのリスクが少なくなります。[21] [22]プログラマーが衰退するもう一つの理由は、雇用主が時間の経過とともにポジションの要件を増やすにつれて、彼らのスキルが開発者などの他の職業と統合されていることです。

も参照してください

参考文献

  1. ^ [1] [2] [3] [4]
  2. ^ a b Fuegi、J。; Francis、J。(2003年10月〜12月)。「ラブレース&バベッジと1843年の「ノート」の作成" 。IEEEAnnalsof the History of Computing .25(4):16–26。doi 10.1109 /MAHC.2003.1253887
  3. ^ 「メモリアル」Eniacprogrammers.org 2021年3月13日取得
  4. ^ 「ABCニュース:最初のコンピュータプログラマーはドキュメンタリーを鼓舞する」Abcnews.go.com。2007年12月4日2021年3月13日取得
  5. ^ Elmer C. Kubie(1994年夏)。「最初のソフトウェア会社の回想」。コンピューティングの歴史の年報16(2):65–71。土井10.1109 /85.279238S2CID5733812_ 
  6. ^ 「IBMアーカイブ:1620データ処理システム」www.ibm.com2003年1月23日2021年3月17日取得
  7. ^ 局、米国国勢調査。「情報技術の職業」米国国勢調査局2021年3月21日取得
  8. ^ a b "コンピュータープログラマー:職業展望ハンドブック::米国労働統計局"www.bls.gov 2021年3月13日取得
  9. ^ 「コンピュータープログラマー| ComputerScience.org」世界が必要とする教育を受ける| ComputerScience.org2020年10月13日2021年9月20日取得
  10. ^ 「BBCBitesize-GCSEコンピュータサイエンス-プログラミングソフトウェアとIDE-リビジョン4」www.bbc.co.uk。_ 2021年3月13日取得
  11. ^ シャンクルマン、マーティン(2010年7月1日)。「」「10人に1人」英国の卒業生は失業中です」。BBCニュース2021年3月13日閲覧。
  12. ^ マン、アマール; ヌネス、トニー(2009年8月)。「ドットコムバブル後:2001年と2008年のシリコンバレーのハイテク雇用と賃金」(PDF)地域レポート、米国労働統計局:1–8 2021年3月13日取得
  13. ^ 「STEM危機は神話です」2013年8月30日。
  14. ^ 「STEMの減少:STEM分野に出入りする大学生の道」nces.ed.gov2013年11月26日2021年3月13日取得
  15. ^ 「hpの開発者ポータル| HP International Women's Week:1980年代以降コンピュータサイエンスの女性が減少」developers.hp.com 2021年3月13日取得
  16. ^ Beaubouef、テレサ; メイソン、ジョン(2005年6月)。「コンピュータサイエンスの学生の離職率が高い理由:いくつかの考えと観察」。ACM SIGCSEBulletin37(2):103–106。土井10.1145 /1083431.1083474S2CID207157501_ 
  17. ^ a b "コンピュータープログラマー:職業展望ハンドブック::米国労働統計局"
  18. ^ 「ソフトウェア開発者、品質保証アナリスト、およびテスター:職業展望ハンドブック:米国労働統計局」www.bls.gov 2021年7月29日取得
  19. ^ 「ソフトウェア開発者、品質保証アナリスト、およびテスター:職業展望ハンドブック::米国労働統計局」2013年9月1日にオリジナルからアーカイブされました。
  20. ^ 「STEM危機は神話です」2013年8月30日。
  21. ^ 「コンピュータープログラマー対ソフトウェア開発者:違いの解読」www.rasmussen.edu 2021年7月29日取得
  22. ^ 「2つの主要なキャリアの比較:ソフトウェア開発者とプログラマー」online.maryville.edu2020年7月31日2021年7月29日取得

さらに読む

  • ワインバーグ、ジェラルドM.コンピュータプログラミングの心理学、ニューヨーク:ヴァンノストランドラインホールド、1971年
  • プログラミング作業の性質に関する経験的研究:Lucas、Rob。「DreaminginCode」 ニューレフトレビュー62、2010年3月〜4月、125〜132ページ。
  • トンプソン、クライヴ(2019)。コーダー:新しい部族の作成と世界の再作成ペンギンプレス。ISBN 978-0735220560

外部リンク