独学でプログラミングの学習を始めたいけど、どの言語を選べばいいのか。
学習が目的だから言語選びがうまくできない、間違った選択はしたくない、という方向けです。
プログラミング未経験から仕事で約5年間ソフトに携わってきた私ですが、C#をおすすめします。
理由は学習環境が良く、また私自身最初にC#を学べたおかげでその後の他言語の習得が非常にしやすくなったと感じているからです。
以下にC#の概要とおすすめする理由を説明します。
C#とは
Microsoft社によって作られたプログラミング言語です。オブジェクト指向という考え方を持つ言語です。
作れるものは、簡単に言うとPC上で動作するソフトが作れます。以下が一例です。
- 電卓アプリ、ストップウォッチアプリ
- データ整理を自動で行うソフト
- データ可視化ソフト など
言い方を変えると、画面上にウィンドが表示されて操作できるソフトです。
この特徴が非常に学習向きなのです。
初めてのプログラミング言語にC#を選ぶメリット
必要なものがパソコン1台だけ
プログラミングなら当たり前でしょうと思った方もいるかもしれません。
しかしプログラミング学習においてプログラムで制御される「何か」が必要です。例えばC言語の場合は、基板とPCをUSBケーブルで接続して、プログラムを基板上のチップに書き込んで動作の確認(例えばLEDランプの点滅など)をします。(以下は基板イメージ)
このような基板を用意したり配線することは手間なのでプログラミング学習に集中しずらいです。
その点C#でPCソフトを作る場合、プログラミングも動作確認もパソコン上で完結します。作ったソフトは、そのPC上で動くので確認が楽です。
始めのうちは自作ソフトのボタンをポチポチ押して「なんか動いた」という実感がうれしいものです。
開発環境であるVisualStudioが便利・分かりやすく学びやすい
C#はVisualStudioというツール(開発環境)上でプログラムを記述します。
何が便利かとに言うと、使う単語(変数の名前、関数名など)の頭文字を数文字入力すると候補が出てくるので作業効率がよい点です。
他の言語の開発環境でもこのような機能はありますが、経験上VisualStudioは入力候補の表示が早く、正確なのでストレスがないです。
また不具合があった場合のエラーメッセージも分かりやすいため、原因特定などもしやすいです。
(とはいえ何を言っているかを理解するのにはある程度経験が必要ですが)
プログラミングの根本理解に向くので長期的には近道になる
C#と最近流行りのPythonで同じ処理を記述した場合、基本的にC#の方が行数・文字数が多くなります。
裏を返せば、それぞれの処理において設定すべきパラメータの存在や記述を、C#の方が意識することになります。
私は初めて学んだ言語がC#で、後に他言語(Pythonなど)をやることになりましたが、調べて学びながらやれば特に困ることなく思い通りのプログラムを作れています。
ただ順番が逆(PythonからC#)の場合は絶対にそうはならなかったと思います。
実際、後輩に最初の言語がPythonの人がいますが、プログラミングの根本的な認識が甘いように感じます。Pythonは問題なくできるようですが。
Pythonのような言語は便利で楽ではあるものの、それはあくまで経験値がある程度あると実感できる特徴であり、プログラミングが初めての方には(少ない文字数で処理を記述できる特徴ゆえに)情報の密度が高く、苦痛に感じると個人的には思います。
プログラミングの学習以外に明確な目標(絶対に稼げる言語がいい とか Web系をやりたい)がないのであれば、プログラミングの本質に触れられるC#を最初に学ぶとその後他の言語も習得しやすいでしょう。
マークアップ言語も一緒に学べる
マークアップ言語(正確にはプログラム言語ではない)とは画面にどのように表示部品を配置・表示するかを指定する言語です。
もっとも有名なのはWebページの表示に使われるHTML(下画像)でしょう。
C#は、WPFという形式でPCソフトを作れます。この形式は、
◆C#で記載された処理の部分(いわゆる普通のプログラム)のファイル
◆画面上に表示するための情報(マークアップ言語:XAML)のファイル
をプログラム実行の際に1つに合体させて、PCソフトが生成されます。
「え?C#以外にも言語やるの?」と思った方、安心してください。マークアップ言語側は最初は最低限で問題ないです。C#の学習の妨げにはなりません。
ただWPFでC#を学ぶとマークアップ言語に触れる環境になるので、自然と徐々にできるようになります。
マークアップ言語を知れば画面上の配置ってこうやって指定されるんだなという概念を知れます。この経験はWebサイト作りにも役立つことでしょう。
さいごに+始め方
学習環境がよく、プログラミングの本質的な部分を学べるという理由でC#をおすすめしました。
初めての学習言語選びは、言語の性質・用途より開発環境の快適さや成果(プログラム変更による出力の変化)の分かりやすさを重要視すべきだと個人的には思います。それを加味してC#を勧めています。
始めてみようと思った方は開発環境VisualStudioを導入してみてください。必要があれば以下の記事参考にしてみてください。
当ブログではC#を中心にプログラミングの学び方も発信していく予定です。
下の本は私がC#学習で初めて買った本です。
全くのプログラミング初心者の方にお勧めです。
コメント