Cowardそうかしら?他のメジャーな言語と比べて変わらないと思うし、ちゃんとしたコードが書けるようになるまでが他と比べて険しい言語と思うんですけどねCやC++って。(#3744483)GUIやら何やらが面倒だからね。Worldする難易度は他と変わらないけど、その次のマイルストーンが見つからない。少なくとも現状では、最初に覚えるべき言語ではなく、3番目ぐらいに習得するのが良さそうな印象。「最初の言語としてCを学ぶ意味が少ない(他の言語から入るべき)」って話でしょ。プログラミング言語より先に、日本語を勉強してよ。C言語が理解できない人はこういう事を言いますね。実際はCを学ぶ意味が少ないのではなくてあなたがC言語を理解できてないだけです。C言語を勉強してから出直しましょう。「最初の言語としてCを学ぶ意味が少ない(他の言語から入るべき)」って話でしょ。プログラミング言語より先に、日本語を勉強してよ。C言語が理解できない人はこういう事を言いますね。実際はCを学ぶ意味が少ないのではなくてあなたがC言語を理解できてないだけです。C言語を勉強してから出直しましょう。現状で、プログラミングを過去に経験していない人が最初にC言語を学ぶ意味って何だろう。Coward低級な部分がよく見えるので、コンピューターの基礎を学ぶ人にはちょうど良いのでは?コンピューターの基礎を、別途身につけているなら不要だと思いますけれども。Coward最初に学ぶ言語としてPythonとCだったら、Pythonのほうがいいよ。楽だし覚えること少な目ではじめられて、段階的に覚えてけばいい要素が多い。Cのループや条件分岐、あるいはその組合せとか、勉強したことが、ほとんど無駄にならず、そのまま読み書きに使える。C#の場合、そういう「基礎」の組合せで書けるようになっても、一般的なコードでは、そういうのが表われことが非常に稀。単純なループだけでもLINQやらラムダも覚えなきゃ普通のコードを読むことすら出来ない。必要最低限度に到達するまでの敷居が高すぎる。ポインタ関連の概念もJavaやC#では不要になるわけじゃないしね。Cとかアセンブリとかの低レベルなところを、いずれやらなきゃいけないなら、早い時期にやっといたほうがいいとは思う。高級言語ばかりやった後で、低レベルなところで頑張るのは辛い。低レベルを先に体験しとくと、たいていの言語で、あれよりは楽と思えるとかはメリット(?)になる。やらなくていい人生なら一生やる必要はない。やっているのがもったいなく感じるのですが(もっとスタックを使おうよ!)、こういう感覚ってC言語でメモリを使った経験があればこそですよね。いった要求にも応えられる懐の深い言語なのですね。Cowardプログラミングを学ぶのとコンピューターの基礎を学ぶのは別でしょ。プログラミングを学ぶ上では、コンピューターの低いレイヤーの部分に関する知識よりも、まずロジックの組み方やデバッグのやり方などを教える必要がある。いう点ではC言語は機能が少なすぎてメリットがありません。低レベルなコンピューターの基礎動作を学ぶのは、ある程度、プログラミングの技術が身についてからのほうが良いです。なければ中途半端にC言語とか平行でやるより、座学で理論として教えたほうがいい。C#の場合、そういう「基礎」の組合せで書けるようになっても、一般的なコードでは、そういうのが表われことが非常に稀。別に基礎学習レベルの人がLINQだラムダだを読む必要はないでしょ。言語仕様としては使わなくても使えるようになってるから。(async・awaitあたりは微妙かもしれないけど)そういう上級者が書いたコードを写経・読解する学習法が前提、というなら、Cでも最初からポインタやらバッファやら理解してないといけない。読解難易度ではそっちのほうが遥かに高いよ。Coward現実問題として「言語仕様としては使わなくても使えるようになってる」けど、上級者のコードではなく、底辺レベルのコーダの物であっても、それが使われないコードなんてのは、現実にはありえないわけですよ。C#の場合はラムダやLINQの理解は、超初心者レベルでも必須ですよ。ポインタやらバッファなんてのは、それらと比べれば、はるかに簡単な概念ですから、文系の新卒に教えても(そちらと比べれば)簡単に理解してくれますよ。老害というより、メンテコストを増大させるだけなので有害。GCに頼れない分、逆にメモリ問題を把握しにくくなる。Frameworkを設計・実装した人より有能だという自信があるプログラマーだけだと思うよ、そんなことやっていいのは。いう感覚ってC言語でメモリを使った経験があればこそですよね。そんなアホなこと言いだすぐらいならC言語なんざ若い人に触らせちゃダメだよ。基礎を理解するのと、基礎がわかった気になってエンジニアとして使えない方向に拗らすのは全然違う。CowardBASIC->ASM->C->C++とプログラム言語を進めたオレからすると、C/C++は基本のその他のPC系言語を知ったうえで習得した方が間違いなく簡単に習得できると思うから、最初にC言語を学ぶ意味が少ないってのは同意。BASICやってたから、ASMやってたからC/C++の構文や宣言や規則、ポインタも違和感なく習得できたってのがある。80年代のBASICはホントに基本の言語でインタプリタ言語だったからテストも習得も容易だったし、その知識の有無はC/C++に進むにはかなり有用だった。現在のしきい値以下です。Cowardそんな「ううままうままううまううままうって避け方分かってんじゃん、簡単だよそんなの」みたいなこと言われましてもですね。Cowardで、「どうやって実機と同期するんだ?」ってところで悩む。「ボタンの背景色を赤にしたら、このLEDが光るんだけどできるよね?」とか言ってくる。#「デバイスドライバ?ナニ?ソレ?いるの?」ぐらいは平常運転。Coward現在の主要なアプリ開発ではほとんど求められないんだろうけど、それでも駆け出しの頃にCのポインタ操作を習得して学んだ知識(メモリ操作に対する全般的な概念とか、アライメントに関するあれこれとか)は、その後のデバッグ作業をだいぶ捗らせてくれたなぁと思います。いや、普段は全然縁がないんですけど、でも例えば、ある時AIXのC++コンパイラの最適化のバグでSTLの挙動が変になったことがあって、あれをデバッグする時に大いに役立った。Coward昔、コマンドラインが基本だったころならCからでもよかったのかもしれないですが、(それでもBASICとアセンブラの知識があった方が良かったですが)今は、下位層が複雑すぎるので前者の方がつまずきにくいように思います。Cowardもとのコードがよろしくないのもあるのだろうけど、参照渡しや構造体あたりでやらかしたり理解できなかったりする人をたまに見かけるので第二言語としてやっておいて損はないかもね。多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。service.閉じるスラド処理中...。