前回は、C#ってそもそもなにができるプログラミング言語なのか、について池ちゃん先生に聞いていきました。
そしてそれを受けての今回、
「そもそもC#って他の言語と違って身につきやすいものなのか、どうなのか」についてずいずい!聞いていきたいと思います。
私
「ということで、ずばり聞きます!
C#って他の言語と比べて身につけるのは難しいのでしょうか? それとも簡単なのでしょうか?」
池ちゃん先生
「うーん。これは実は一言では答えられないな。
けどまあ、難しいという人も多い。その理由は、いくつかあるけど、大きなものとして二つ。
一つは、環境を準備するのが大変なこと。
二つ目は、ルールが厳格で覚えることが多いこと」
私
「一つ目の環境っていうのは?」
池ちゃん先生
「単純にパソコンのスペックの問題だね。
C#を使うためにはVisual Studio(ビジュアルスタジオ)という開発ツールをPCに入れる必要があるのだけれど、このVisual Studioって、家庭にあるような通常のパソコンだと動かないことも多いんだ。なんといってもAIが組み込まれていたりもするからね。使いこなすためにはどうしてもハイスペックなパソコンが必要になる。
だから、まったくの素人が独学でいきなりC#っていうと、このハイスペックPCの準備がネックになって、C#敷居が高いと思う場合も多い」
私
「確かに、始める前にうちのパソコン使えるの?使えないの?って確認するとなるとさすがにハードルは高いですね」
池ちゃん先生
「そうそう。
で、次に覚えることが多い問題。これを語るためには、プログラミング言語の二つの処理方式について言っておかないといけない。
まず、一つ目の方式が、コンパイラ。C#やJavaはこちらの方式でプログラムが処理される。
もう一つは、インタプリタ。AIの開発にもよく使われるPython(パイソン)や、WEBページを作ることができるPHP(ピーエイチピー)あたりがこの処理方式で動いているね」
私
「ん? ん? インタ・・・なんですと?」
池ちゃん先生
「インタプリタ。まあ、通訳者みたいな意味だね。この二つの違いをざっくり説明するね。
コンパイラ、とは、人間が書いたプログラムを一度全部機械語、つまり機械のわかる形に翻訳し、その後実行するプログラム方式のこと。
それに対してインタプリタは、人間の書いたコードを一行ずつ機械語にし、都度実行する。
ちなみにScratchもインタプリタになる」
私
「え?! そうなんですか?」
池ちゃん先生
「ブロックを組んで実行を押せばすぐ動くよね。ああいう感じがインタプリタ」
私
「そっちの方が楽そうですね。C#より早くプログラム作れそう」
池ちゃん先生
「ところがそうでもない。インタプリタは、プログラムを実行しながらおかしいところがあればおかしいと教えてくれるんだけど、機械語に通訳しながら実行もするから処理速度が遅い。また、都度実行という方式ゆえに文法のチェックが緩く、アバウトなコードでも通ってしまう。
コンパイラはその辺り、全部翻訳した後で実行なので、処理速度が速い。また、プログラム実行の前に全部文法のチェックをして、『これは駄目!』と突っ返されるから、実行後、文法のミスによるエラーが起きにくい。その分、間違わないように書くためのルールはインタプリタよりも覚えないといけないけどね。
特にC#の場合だと、面倒って言われやすいのが、データ型をきっちり指定しなければならないところかな。文字なら文字、数値なら数値、それをコード上で明確に指示しないと、即座に文法のチェックが入って実行前に突っ返される。
『こんなんじゃ通せないね!』ってね。
難しいって言われる理由はこの辺りだろうな。がんがんプログラムが動くようになるためには、何回もコード書きなおしてやっとだからね。
インタプリタはコードを一文書いただけでも実行してくれるから簡単に見えるのかもしれない」
私
「うーん。そうするとやっぱりC#はかなり難しい、ということですかねえ」
池ちゃん先生
「いや〜確かにそうも思われるかもしれないけれど、そんなことはないって思うよ。
特に初心者がプログラミング言語を一から学ぼうというのであれば近道はC#じゃないかな。
文法のチェックが細かくされるってことは、正しい書き方をなんとなくではなくきちんと理解できるようになるってことだから。
とりあえず動けばいい、ということではなく、こう書いたらこう動く、みたいな道筋がちゃんとわかるようになるってことだからね。
C#はその辺り、ちゃんとしていて、C#の開発ツールであるVisual Studioでは、この書き方、なんかおかしいなって部分に赤い波線が出て、そこを確認すればコードを修正できたるようになっている。なにがおかしいのかが可視化されているっていうのは、学習において大事だよね。間違っているところを集中的に学習できるしね」
私
「なんか聞いてて思ったんですけど、C#は先生みたいですね。しかも超厳しい先生。で、インタプリタはわりと緩い先生っていうか」
池ちゃん先生
「あー!確かにそれだね! コンパイラは『これ書き方間違ってる。これじゃ動かせないね』と突っ返す単位を取るのが難しい先生。
インタプリタは『あー、まあ、とりあえず動かしてあげるよ』と、とりあえず単位は取れるけど、結果が伴っての単位かどうかは・・・という先生みたいなね(笑)」
私
「そうすると結論として、C#を身につけるのは難しい。けどプログラミングができるようになるには、こっちの方が近道になる、みたいな感じでしょうか」
池ちゃん先生
「そうだね。まあ、プログラミング言語にも性格がいろいろあるから、向き不向きも分かれるし、難しいと一概に言えない部分もあるけどね」
私
「性格?」
池ちゃん先生
「まあ、たとえば・・・」
ちょっと待った!
なんだか長そうな気配を感じます。
ということで、次回はプログラミング言語の性格とそもそもイフキッズがC#を教える理由、について掘り下げていきたいなって思います!
どうぞ引き続き、よろしくお願いいたしますm(__)m
無料体験授業実施中!
毎週火曜日 16:00~17:30、17:40~19:10
毎週木曜日 16:00~17:30、17:40~19:10
毎週土曜日 10:00~11:30、11:40~13:10
※日曜日も臨時で実施していることがあります
お気軽にお問い合わせください
お申し込み・お問い合わせは、こちら。
お電話でも受け付けております。
03-6806-6861
(平日10:00~18:00)
イフキッズLINE@お友だち募集中!
新着授業レポートの通知、無料説明会やイベントの案内など、
耳よりな情報を配信中です。
加えて、お友だち登録されている方には、
イベント参加費の割引、
入会の際の割引、プレゼントなどの特典も!