「ブロック機能」のリニューアルについて

プログラミング言語「C#」の難易度ってどれくらいですか?

初心者がやるには、もともとの「C言語」や「C++」は手を付けない方が良いとありました。
※過去にやったことがありますが、もうほぼ忘れてます。

教えて!goo グレード

A 回答 (4件)

> Cってそんなに難しいのですか、、、。



Cは「材料だけ提供してるんであとはまぁ勝手にしてくれ」ってスタンスに見える(笑)。
もちろん、外部のライブラリとか使ってプログラミングすればいいんだけど、その導入も敷居が高いんですよね。一見さんお断り的な。

> BASICも経験はありますが、しょせん、お遊びレベル。
> 難しいんですね。

難しいですね。この辺、往年の88BASICとか使ってた人は、まぁ「慣れてる」だろうから意見が違うんでしょうが、正直、懐古趣味的な意味での「優しい」から超えてない気がしてます。
例えば、真偽値が取り出せない。

LET a = 3 > 2
END

これはJIS/ISOのFullBASICだとエラーになります。非常に構文的には厳しいし、かつどうやら単体で真偽値が「ない」と言うかなり珍しい・・・モダンな観点から言うと「これで一体どうやってプログラミングすればいいんだ」と言うカンジで「機能が欠けてる」かな(色々調べたけど解決策が見つからない)。
例えばPythonだと

a = 3 > 2
a
True

で、計算結果はきちんと変数に代入出来て、なおかつ真偽値は真偽値としてキチンと存在してる。
これはPythonだけじゃなくってモダンな言語だと「当たり前」なんだけど、それがBASICには欠けてるし、翻るとこの辺が足かせになってプログラミングの難易度は跳ね上がると思いますね。
どう考えても初心者向けとは思えない程難しい言語です。

> これらは今の旬の言語のようですが、かなり簡単になってるんですね。
> 素直に超簡単系からやるのが良いのかな、、。

個人的にはそう思いますね。
これらはC言語じゃ扱えない(あるいは扱いづらい)機能が満載で、正直、それらの概念を、例えばC#で学ぶのは遠回りな気がしますね。

2014年のJava 8以降、ラムダ式とか高階関数とか遅延評価とかC系言語に取り入れられる例が増えてきましたが(もっとも前二者はC++のテンプレートには既にあったけど)、型変換の煩わしさとか色々面倒な事が多くて、概念学ぶ前に使うのが面倒になる可能性がある。
それよか、そういう「新機能」が当たり前にある言語を学んだ方がモダニズム的には正しい気がします。

一応「超簡単」とは書いたけど、概念が「超簡単」かどうかは知りません(笑)。先にも書いた通り「言語提供の機能が豊富 = 簡単」と定義するなら、って意味です。やり方が増えると混乱する人もいるでしょうしね。
ただ、まぁ、そういう「モダンな機能」は上に書いた通り、JavaやC#にも取り入れられて来てる。ただし、それらをその言語上で「学ぶ」のは結構厄介かな、って事です。
    • good
    • 0
この回答へのお礼

度々ありがとうございます。


詳しく感謝です^^

お礼日時:2022/05/16 05:53

中くらいかな。

c++よりは難しくない。

ただ、文法が解ってそれなりに書けるようになっても
OOP前提の言語なんで、OOP知らないと猫に小判なんだよね。
書けるだけじゃなくて適切な設計が出来なきゃいけない。

現役のプログラマで、C#でCの書き方でしか
書けない人知ってるけど
ああなってはC#が泣きます(^_^;)

最初は何でそんな言語仕様なのかなかなか理解に
苦しむと思う。

で、言語そのものより、OOPをどう使うかに
物凄い時間を使う事になると思う。

最初はpythonあたりの非OOP機能から入る方が
良いかも。
    • good
    • 0
この回答へのお礼

ありがとうございます。
C++よりは簡単なんですね^^

お礼日時:2022/05/16 05:55

No.1さんの回答にあるけど、言語の難易度の定義って難しいと思う。



特にC#は、「使いやすくするためには、どんどん言語仕様を拡張しまっせ!」って感じで、拡張されているから、汎用機のPL/Iみたいに、「なんでもできます!」的な雰囲気を感じてしまいますね。

それから、オブジェクト指向、LINQ、ラムダ式、ジェネリック、部分クラスなど、CやBasicでは見かけないものがあったりするし・・。
VB6やっている方が、C#のソースを見ると、暗号のように見えるかもしれません・・・。

初心者が「C言語」や「C++」に手をつけない方が良いってのは、よくわからない。知っているほうがメリットはあるけど、まあ、C#学びたいなら、回り道しないで、素直にC#を学べってことかな?

なお、最近は書籍、雑誌が売れないといわれていますが、コンピュータ系の専門書もそんな感じがしますね。
書店で「このC#の解説本いいね!」って思ったら、さっさと買っておかないと書店から消えます。
まあ、書名が分かっていれば、Amazonなどで買えますけどね。
    • good
    • 1
この回答へのお礼

ありがとうございます。
難しそうですね。

お礼日時:2022/05/16 05:54

難易度って何だろうねぇ・・・意外と定義がムズい。



基本的に、機能が高度だとプログラミングが易しくなる、って枠組みが前提だと、

何も出来ないくらい難しい: C/Assembly
かなり難しい: C++/Pascal/Rust/BASIC
難しい(中級程度?): Java/C#
超簡単: JavaScript/Ruby/Python/Lisp

ってカンジかなぁ。まぁ、個人的な意見だけど。4段階なカンジ?
まぁ、当然この辺は異論はあるでしょうけどね。
例えば「BASICとC++が同じランク?」とか思う人もいるだろうし、「BASICって簡単なんじゃねーの?」とか思う人もいるだろうけど、現代的な観点だと機能的に「フツーにあるべきものがない」ので、結果「書きづらさ」では結構難易度高ぇんじゃねぇの?ってのが個人的意見。PythonとBASICを比べると明らかにBASICの方が難しい、と思ってます。
C++/Java/C#は機能的には「元々C系言語に無かったアイディア」が色々付け足されて、Cに比べると自由度が高い、とは思うんだけど、「超簡単」な言語に比べると結構イビツなカンジで付け足されてて、扱いが面倒な部分が多いかな、と。
だからこういうランク分けで、どっちにせよC#も「中級程度の難しさかな」って印象です(ただ、C++よりも難しさが低いのは、ガベージコレクタがあるから)。

とまぁ、あくまで参考意見です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
詳細に感謝。
Cってそんなに難しいのですか、、、。

実は学生時代、C言語(++も)とアセンブラは少しだけかじりました。
ほんのさわりの部分なので、難易度を実感する前にやめました。

BASICも経験はありますが、しょせん、お遊びレベル。
難しいんですね。

超簡単: JavaScript/Ruby/Python/Lisp
⇒これらは今の旬の言語のようですが、かなり簡単になってるんですね。
素直に超簡単系からやるのが良いのかな、、。

お礼日時:2022/05/12 19:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング