2019年11月13日プログラミング言語について本記事ではC#の特徴、動作環境などの解説C#と他のC言語との違いC#でできることC#で仕事や学習方法などについて詳しく解説していきます。C#は近代において幅広く使われているプログラミング言語です。基礎的な作法さえ覚えてしまえば他のメジャーな言語である「VB」や「java」も何不自由なく組めるようになります。いった点もあり、「初心者教育の一環」として取り入れているIT企業が増えてきています。・電子機器ゲーム・鉄道会社のシステム・ホテルのフロントが利用するシステムなどの大半がC#が作られています。ここからはC#がどのような言語なのか詳しく解説していきます。C#を本で学ぶならC#とはどんなプログラミング言語なのかC#を習得したり、今後「仕事用のプログラミング言語」として使って行く上で必要な知識を解説していきます。どのような言語なのかを簡単に説明致します。C#の特徴C#の特徴を簡単に言えば、「javaとC++とVBのいいところをかけ合わせた言語」になります。これは現役エンジニアが全員口を揃えていうことです。「java」や「C++」はオブジェクト指向(プロうグラムの部品の一部と考えて、その部品を組み合わせたり拡張することで最低限のコストでシステムを作り上げる思想のもと作られたプログラミング手法)として作られていました。「VB」は「BASIC」という言語から派生してより人間の感性に近い言語形態となっています。それらの特徴を盛り込んだ、「人間の感性に近いオブジェクト指向型言語」として生み出されたのがこのC#になります。C#の動作環境C#はWindows上で動くことを想定した言語になります。StudioというIDE(統合開発環境=開発用のソフト)を利用して開発をします。2019が公開されました。Frameworkという開発や実行を補助するツール(ライブラリ)が存在します。注意点としてご利用中のOSでサポートしていないと正しく動作をしない可能性があります。サポートが切れているバージョンもあります。したがって導入する前に以下のサイトからご利用中のOSに対応しているか、サポートは切れていないかをご確認下さい。システム要件https://docs.microsoft.com/ja-jp/dotnet/framework/get-started/system-requirementsC#とC言語の違い「C#」と「C言語」は全く違う言語になります。・開発時の作法など全てに於いて異なっており同じ「C系の言語」でありながら互換性はありません。「C++」と「VB」と「java」を足したような形になっています。そのなかで何が一番近いかと言われたら「java」が一番近い言語になります。Studio」でCの開発環境として有名な・Linuxのviエディタ・Windowsで動くBorlandなどと比較しても「java」のIDEである「eclipse」に酷似しています。・外部のファイルを読み込むときの作法(参照)・メモリの管理の仕様などはとても「java」に近いものがあります。C#と呼ぶところもあります)には違いはありません。厳密にいえばあるのですが、「C#」自体がMicrosoftが開発した言語です。Frameworkが提供するJITコンパイラしか存在しません。C#は・コマンドの一部として動くVBScriptやWSHと同等の機能を有するWindowsコマンドのようなもの・目に見えるプログラムとしてexe形式やwebで使われることを目的としたものの二つで分かれており、当初はそれぞれに専用のコンパイラが存在しました。現在では公式に提供されているコンパイラがJITコンパイラしかないです。そのため、「C#」と「C#.Net」は同義となります。歴史の話になりますが、「C#」と「C#.Net」がどのように統合されたのかを記載します。「C#」は習得難易度も低いことから初心者向けの言語と言われています。ここからは「C#」が初心者におすすめの理由と他言語と比較した習得難易度を細かく見てきましょう。「C#」の学習がプログラミング初心者になぜおすすめなのかを簡単に述べると1,専門知識を有していなくてもプログラムが組める2,新人プログラマであっても数カ月の内にシステムが組めるようになるという2点に集約されます。それぞれの理由を、細かく解説していきます。専門知識を有していなくてもプログラムが組める「C#」は専門知識を有していなくてもそれなりのプログラムが組むことが出来ます。StudioというIDEで開発することを前提として作られています。Frameworkが提供する機能はとても多いです。仕組みなどは本来であればかなり高度な知識の必要がある機能です。Frameworkの該当する機能を呼び出せば実現できるようになります。暗号化するために・System.・Security.・Cryptographyなどの機能を利用するとします。これは本来であれば暗号化を理解し、数百行のプログラムを組まなければならないところです。Frameworkであればものの10行程度で実現できます。新人プログラマであっても数カ月の内にシステムが組めるようになる新人プログラマであっても数カ月のうちにシステムが組めるようになります。・ソースの結びつきで過不足を指摘する機能などが全て備わっています。これらの機能はクラスダイアグラム、オブジェクトブラウザと呼ばれます。「C#」を他の言語と比べた時の学習難易度は低いです。新人でも1カ月も経たないうちにWebサイトやアプリでなど簡単なものは組めるようになります。大体の人は1年足らずでかなり大きなアプリが作れるようになったり、勘が鋭い人はゲームも作れるようになります。「C#」は初心者でも「それなりに」作れてしまう反面、落とし穴もあります。「C#」は変数の型(数値、文字列など)をかなり厳密に見ています。その一例として「数字の1」と「文字の1」は全くの別物です。条件の「True」と文字で記載した「true」は別物です。以下のようなプログラムは通るどころかエラーになります。“true”)実際、「それなりに」作れてしまった人の大半がこの不具合に陥ります。string」「int.Parse、int(値)」といった型変換などの勉強に注力する必要があります。上記のように「数字を文字に変換する」作業は何百回と書くことになるのでそこまで苦労はしません。・応用として任意の文字をボタンに変換する・どのボタンやクリック時の動作を動的に制御するといった実際のシステムで「メジャーに行われいる処理」が理解できずに不具合になる原因になります。厄介なことに、「それなりに」作れてしまった人は不具合混入に気付かない不具合の原因が理解できないといった障害にぶつかったりします。この点を理解すれば、「C#」は「誰でも習得が可能な言語」になります。C#でできること:C#はどんなサービスやプロダクトを開発できるかここからは世の中のどの分野で「C#」が使われているかを「業界別」にメジャーなところを解説していきます。ゲームのクライアントの大半はC#で作られている王道でいえばゲームになります。ゲームにはクライアント(プレイヤーが実際に操作する画面)とサーバー(データの通信をしたり、ソシャゲであればガチャの抽選を行う部分)の二つに分かれます。現在この「クライアントの部分」の殆どはC#で書かれています。Unity」という文字をゲーム起動時に見たことは無いでしょうか。Unityは「C#で書かれた言語」になります。有名どころだと・ドラゴンクエスト・ポケモンGOなどがUnityの代表作になります。ホテル事業でもC#が使われているホテルのフロントの人が利用している端末にも「C#」が使われています。この端末は・いつ予約が入ったかを知らせる・どの部屋に予約が入ったかを知らせる・客の金額を予約内容から計算するなどの機能があります。これらの機能はクライアントもサーバーも全て「C#」で作られていることが多いです。他にも旅行の予約サイトも「C#」で組まれています。自動釣銭機にはC#が使われている近年主流になってきた自動釣銭機の世界シェアの50%ほどは「C#」が使われています。「世界シェア80%を誇る外資系企業」の自動釣銭機レジの大半はC#で作られています。「VBScript」や「java」「javascript」で作られている機能もあります。「C#」のみで作られているものはありません。・大手デパートで使われているレジはC#で組まれています。C#はどんな仕事につけるのかC#はどのような仕事につかるかを実際の求人情報を参考に記載いたします。C#を使う仕事の求人数エンジニア向けの転職サイト「Green」によるとC#の求人数は2019年10月6日現在で598企業、1292求人あります。・VR・NHKなど多岐に渡り存在しています。年収の中央偏差は大体450万~500万前後です。キャリアによっては700万以上を狙える求人も存在します。求人サイトなどには掲載されることは少ないですが以下の求人数が増えている傾向にあります。「C++」や「java」のプログラムを「C#」で書き直す移行案件が比較的多いです。「C++」は機能が充実した「C#」で書くことで・メンテナンス性を上げる・C#の可読性の高さを実現するといった目的の案件が増えています。「java」については最近版権がOracleになって(以前はサンマイクロシステム)有償化されています。いった流れもあって「C#」を利用する現場が多く存在します。VB6のプログラムの移行VB6のサポートが切れたり、「新しいOSで動作保証がない」ことが要因でC#への移行が増えてきてるのです。Windows7のサポート終了が発表されてからWindows10に環境を移す検証が行われています。これらは「VB6が一部正常に動作しない」という事例が多数挙がっているためです。Framework」があらかじめ入っています。これらの要因もあって「C#」でプログラムを書き直す案件が急増しています。高度な専門知識が要求されますが、クラウド開発に力を入れている現場が増えてきています。MicrosoftのクラウドサービスであるSharePointやOneDriveが「C#」で作られているのです。「クラウドサービスの処理を自動化するアプリ」の開発案件も存在しています。クラウドで管理する必要性のある保険会社がここに相当します。・契約確認などのアプリをクラウドに利用しています。SharePointがシェア40%前後で世界最大のシェア)など現在のIT業界の世界最大シェアのトップ2に「C#」が使われています。東京オリンピックに向けて色々な会社がスマホやタブレットで独自サービスを提供しようとしています。その技術として「C#」が主流とされている「Ruby」や「Python」と並んで注目されているのです。一部の会社ではオリンピックの会場にARとVR機能を使っています。することによって臨場感あふれるサービスを提供できるように試みているところもあるのです。C#のおすすめの学習方法C#のおすすめの学習方法としてはオンライン受講サービスと経験をしながら学べる書籍がおすすめです。ここからはそれぞれの学習方法について解説していきます。C#を学べる学習サービスのおすすめはオンライン受講サービス引用元:PaizaラーニングC#を学べる学習サービスとして「Paizaラーニング」というオンライン受講サービスがあります。プログラミング学習はもちろんスクールに通うのが一番早いです。Paizaラーニングでは勉強したことを復習をしながらゲームの制作過程を習得できます入門編は無料公開されているので気軽に始めることが出来ます。・Dictionary(配列の使い方)など幅広く説明しています。現場で作業するためにはこの知識だけでは不十分です。1日1章勉強するとして、30分程度でC#に慣れ親しむことができます。どのような学習方法にせよ、まずは・C#は難しくない・C#を理解すればこれだけのことができるということを理解すれば挫折をせずに勉強が出来ます。C#を本で学ぶならC#を本で学ぶ際におすすめの書籍を紹介していきます。アスキー・メディアワークスアスキー・メディアワークスの書籍紹介ページC#を本で学ぶなら「つくって覚えるC#入門」が初心者にはオススメです。この本は「記載されたプログラムをそのまま入力」することでプログラムの動作を見ることができます。そのため、「自分が作っている」という実感と達成感が得られます。初心者のうちは「なぜ動くか?」かは二の次で良いです。「動くものを作れるだけ作ってみる」ことが大事になります。書籍紹介ページこちらの「独習C#」という本もおすすめです。こちらの本は・なぜ動くか・どういう仕組みで動くか・どのように書くかなどの疑問の解説に特化した本です。そのため、「プログラム未経験者」や「初心者」には少しハードルが高いかもしれません。「ある程度慣れた後のステップアップ」に使うには物凄く優秀な本です。先述したように初心者は理屈よりもとにかく動作実績を積んでください。すると自ずと「動く仕組み」というのが少しずつ理解できるようになります。プログラミングを始めようか迷っていませんか?プログラミングを始めてみようと思っても学習で挫折しないか職業として生計を立てていけるか不安ですよね。プログラミングジャパンでは全くの初心者でも最速で安定した収入を得るプログラマーになる為に必要なステップをLINE@で配信しています。必須サイトコメントプログラミングジャパンとはプログラミングジャパンは日本初の「スマホアプリ開発」専門のプログラミングスクールです。スマホアプリ開発企業と直接提携することによって他のスクールにはない『スマホアプリエンジニア』としてのキャリアを最短2ヶ月で築くことが出来ます。プログラミング学習入門者向けサイト(プログラミングジャパン公式ブログ)—>。