プログラマー

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

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

コンピュータープログラマーと呼ばれることもあり、ソフトウェア開発者プログラマより最近またはコーダ(特により非公式な文脈では)、作成者であるコンピュータソフトウェアを用語のコンピュータープログラマーは、のいずれかの分野の専門家を参照することができ、コンピュータやソフトウェアの多くの種類のコードを書き込みますジェネラリストに。

プログラマーの最も頻繁に使用されるコンピューター言語(例えば、AssemblyCOBOLCC ++C#JavaScriptLispPythonJava)は、プログラマーという用語の前に付けることができます働く人々のいくつかのWebプログラミング言語はまたしてそのタイトルの接頭辞ウェブ

用語

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

システムアーキテクトは、他の人に実際のプログラミングを残しながら、生産技術的な設計を必要とするかもしれない関連の役職、あります。

歴史

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

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

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

ENIACのからなるプログラミングチーム、ケイマクナルティベティ・ジェニングスベティ・スナイダーMarlyn WescoffフランBilasルースLichtermanは、まず通常のコンピュータプログラマとしてクレジットされています。[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)職業Outlookは、2029年から2019年から9%のさらなる減少、2020年から2030年までの10%の減少、2016年2026から7パーセントの減少を予測する[17]コンピュータ・プログラミングのどこからでも行うことができるのでそのため、企業は賃金が低い国でプログラマーを雇うことがあります。[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年の作成 'ノート'」。コンピューティングの歴史のIEEE年報25(4):16–26。土井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.279238S2CID 5733812 
  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. ^ マン、アマール; Nunes、Tony(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.1083474S2CID 207157501 
  17. ^ a b 「コンピュータープログラマー:職業展望ハンドブック::米国労働統計局」
  18. ^ 「ソフトウェア開発者、品質保証アナリスト、およびテスター:職業展望ハンドブック:米国労働統計局」www.bls.gov 2021年7月29日取得
  19. ^ 「ソフトウェア開発者、品質保証アナリスト、およびテスター:職業展望ハンドブック::米国労働統計局」2013年9月1日にオリジナルからアーカイブされまし
  20. ^ 「STEM危機は神話です」2013年8月30日。
  21. ^ 「コンピュータープログラマーvs.ソフトウェア開発者:違いの解読」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

外部リンク