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