
本記事では
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上で動くことを想定した言語になります。
(後の「C#」と「C#.Net」の違いで詳しく説明します)
また開発環境としてはMicrosoft Visual StudioというIDE(統合開発環境=開発用のソフト)を利用して開発をします。
ご参考までに2019年4月にVisual Studio 2019が公開されました。
Visual Studio導入時の注意点
Visual Studioには.Net Frameworkという開発や実行を補助するツール(ライブラリ)が存在します。
注意点としてご利用中のOSでサポートしていないと正しく動作をしない可能性があります。
また、サポートが切れているバージョンもあります。
したがって導入する前に以下のサイトからご利用中のOSに対応しているか、サポートは切れていないかをご確認下さい。
・マイクロソフト公式ブログ [Visual Studio] 開発ツール対応 OS 一覧
https://blogs.technet.microsoft.com/mssvrpmj/2018/11/20/vs_osall/・マイクロソフト公式ドキュメント .NET Framework のシステム要件
https://docs.microsoft.com/ja-jp/dotnet/framework/get-started/system-requirements
C#とC言語の違い
「C#」と「C言語」は全く違う言語になります。
・開発する環境
・開発時の作法
など全てに於いて異なっており同じ「C系の言語」でありながら互換性はありません。
「C++」と「VB」と「java」を足したような形になっています。
そのなかで何が一番近いかと言われたら「java」が一番近い言語になります。
また開発する上でのIDE(統合開発環境)は「Microsoft Visual Studio」でCの開発環境として有名な
・Windowsで動くBorland
などと比較しても「java」のIDEである「eclipse」に酷似しています。
・メモリの管理の仕様
などはとても「java」に近いものがあります。
C#とC#.netの違い
「C#」と「C#.Net」(Visual C#と呼ぶところもあります)には違いはありません。
厳密にいえばあるのですが、「C#」自体がMicrosoftが開発した言語です。
現在プログラムを実行形式に直すコンパイラは.Net Frameworkが提供するJITコンパイラしか存在しません。
元々C#は
・目に見えるプログラムとしてexe形式やwebで使われることを目的としたもの
の二つで分かれており、当初はそれぞれに専用のコンパイラが存在しました。
しかし、現在では公式に提供されているコンパイラがJITコンパイラしかないです。
そのため、「C#」と「C#.Net」は同義となります。
補足:C#とC#.Netの歴史
歴史の話になりますが、「C#」と「C#.Net」がどのように統合されたのかを記載します。
.Net Framework1.0
「C#」と「C#.Net」は別物として存在『2003年』
.Net Framwork1.1
「C#」と「C#.Net」は別物として存在
『2004年』
.Net Framework1.1 SP1
「C#」と「C#.Net」は.Net寄りになっているが、それぞれのコンパイラが存在
『2005年』
.Net Framework2.0
・「C#」のコンパイラの開発が停止され、「C#.Net」に統合される
・またこのころから「C#.Net」という呼び方が改められ、「Visual C#」と呼ばれるようになる
『2006年』
.Net Framework3.0
・「C#」と「C#.Net」の違いが一切なくなる
C#の学習とプログラミング初心者におすすめの理由
「C#」は習得難易度も低いことから初心者向けの言語と言われています。
ここからは「C#」が初心者におすすめの理由と他言語と比較した習得難易度を細かく見てきましょう。
C#がプログラミング入門者や初心者におすすめの理由
「C#」の学習がプログラミング初心者になぜおすすめなのかを簡単に述べると
1,専門知識を有していなくてもプログラムが組める
2,新人プログラマであっても数カ月の内にシステムが組めるようになる
という2点に集約されます。
それぞれの理由を、細かく解説していきます。
専門知識を有していなくてもプログラムが組める
「C#」は専門知識を有していなくてもそれなりのプログラムが組むことが出来ます。
「C#」はVisual StudioというIDEで開発することを前提として作られています。
そのため、補助機能や.Net Frameworkが提供する機能はとても多いです。
本来であればかなり高い専門性の知識を必要とする機能も簡単に実現することができます。
・通信の仕組み
などは本来であればかなり高度な知識の必要がある機能です。
しかし、開発者は.Net Frameworkの該当する機能を呼び出せば実現できるようになります。
例えば暗号化するために
・Security.
・Cryptography
などの機能を利用するとします。
これは本来であれば暗号化を理解し、数百行のプログラムを組まなければならないところです。
しかし、.Net Frameworkであればものの10行程度で実現できます。
新人プログラマであっても数カ月の内にシステムが組めるようになる
新人プログラマであっても数カ月のうちにシステムが組めるようになります。
システムを組むには、
・機能の呼出し順序
などを理解している必要がありますが、Visual Studioには
・クラスの概要を表示する機能
・ソースの結びつきで過不足を指摘する機能
などが全て備わっています。
これらの機能はクラスダイアグラム、オブジェクトブラウザと呼ばれます。
C#を他の言語と比べた時の学習難易度
「C#」を他の言語と比べた時の学習難易度は低いです。
新人でも1カ月も経たないうちにWebサイトやアプリでなど簡単なものは組めるようになります。
大体の人は1年足らずでかなり大きなアプリが作れるようになったり、勘が鋭い人はゲームも作れるようになります。
C#学習難易度が簡単であるが由の注意点
「C#」は初心者でも「それなりに」作れてしまう反面、落とし穴もあります。
「C#」は変数の型(数値、文字列など)をかなり厳密に見ています。
その一例として「数字の1」と「文字の1」は全くの別物です。
当然条件の「True」と文字で記載した「true」は別物です。
つまり以下のようなプログラムは通るどころかエラーになります。
if (bln = “true”)
実際、「それなりに」作れてしまった人の大半がこの不具合に陥ります。
そのため、C#を勉強するときは、「プログラム本体の書き方を勉強する期間や労力」より
・「varとは何か?objectとは何か」といった「なんでも入ってしまう型」の扱い
・「ToStringとstring(値)、As string」「int.Parse、int(値)」といった型変換
などの勉強に注力する必要があります。
上記のように「数字を文字に変換する」作業は何百回と書くことになるのでそこまで苦労はしません。
しかし、その「仕組み」を理解していないと、
・どのボタンやクリック時の動作を動的に制御する
といった実際のシステムで「メジャーに行われいる処理」が理解できずに不具合になる原因になります。
しかも厄介なことに、「それなりに」作れてしまった人は
不具合混入に気付かない
不具合の原因が理解できない
といった障害にぶつかったりします。
この点を理解すれば、「C#」は「誰でも習得が可能な言語」になります。
C#でできること:C#はどんなサービスやプロダクトを開発できるか
ここからは世の中のどの分野で「C#」が使われているかを「業界別」にメジャーなところを解説していきます。
ゲームのクライアントの大半はC#で作られている
王道でいえばゲームになります。
ゲームにはクライアント(プレイヤーが実際に操作する画面)とサーバー(データの通信をしたり、ソシャゲであればガチャの抽選を行う部分)の二つに分かれます。
現在この「クライアントの部分」の殆どはC#で書かれています。
「Unity」や「Powered by 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求人あります。
仕事内容も
・ARエンジニア
・自動車産業
・VR
・NHK
など多岐に渡り存在しています。
年収の中央偏差は大体450万~500万前後です。
キャリアによっては700万以上を狙える求人も存在します。
求人サイトなどには掲載されることは少ないですが以下の求人数が増えている傾向にあります。
C++やjavaで書かれたプログラムをC#に移行
「C++」や「java」のプログラムを「C#」で書き直す移行案件が比較的多いです。
「C++」は機能が充実した「C#」で書くことで
・C#の可読性の高さを実現する
といった目的の案件が増えています。
また、「java」については最近版権がOracleになって(以前はサンマイクロシステム)有償化されています。
そういった流れもあって「C#」を利用する現場が多く存在します。
VB6のプログラムの移行
VB6のサポートが切れたり、「新しいOSで動作保証がない」ことが要因でC#への移行が増えてきてるのです。
Windows7のサポート終了が発表されてからWindows10に環境を移す検証が行われています。
これらは「VB6が一部正常に動作しない」という事例が多数挙がっているためです。
さらにWindows10は「.Net Framework」があらかじめ入っています。
これらの要因もあって「C#」でプログラムを書き直す案件が急増しています。
クラウド開発
高度な専門知識が要求されますが、クラウド開発に力を入れている現場が増えてきています。
MicrosoftのクラウドサービスであるSharePointやOneDriveが「C#」で作られているのです。
「クラウドサービスの処理を自動化するアプリ」の開発案件も存在しています。
クラウドで管理する必要性のある保険会社がここに相当します。
実際に一部の保険会社が
・契約確認
などのアプリをクラウドに利用しています。
C#を使ったサービスなど
C#をメインで使っているサービスとしては
・クラウドサービス(Microsoft 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#
著:山田祥寛
出版社・翔泳社
こちらの「独習C#」という本もおすすめです。
こちらの本は
・どういう仕組みで動くか
・どのように書くか
などの疑問の解説に特化した本です。
そのため、「プログラム未経験者」や「初心者」には少しハードルが高いかもしれません。
「ある程度慣れた後のステップアップ」に使うには物凄く優秀な本です。
しかし、先述したように初心者は理屈よりもとにかく動作実績を積んでください。
そうすると自ずと「動く仕組み」というのが少しずつ理解できるようになります。
プログラミングを始めようか迷っていませんか?
プログラミングを始めてみようと思っても学習で挫折しないか
職業として生計を立てていけるか不安ですよね。
プログラミングジャパンでは全くの初心者でも最速で安定した収入を得るプログラマーになる為に必要なステップをLINE@で配信しています。