No.3ベストアンサー
- 回答日時:
初めに言っておくと、僕はC#は「全く知らない」。
知らないのにここに書いてる、ってのもどーかと思うんだけど(笑)、多分言語選択「自体」は間違ってない、とは思うんだ。
ただ、そっちは問題じゃなくって、Microsoft製プログラミング言語に良くある事なんだけど、実は「プログラミングHow to」とか「プログラム指南」的な書物ってのがMicrosoft系言語では「全くと言って良いほど存在しない」ってのがむしろ問題なのね。
僕がMicrosoft製プログラミング言語を学ぶのを躊躇する最大の理由がこれ、だ。
これは「Microsoftが作ったプログラミング言語」が「良い」とか「悪い」とかとは全く関係ない、んだ。
ぶっちゃけた話、実の事を言うと、あれだけ人気がある「Visual Basic」の類でさえ「こう書けば綺麗なプログラムになります」とプログラミング初心者に対して示唆する「入門書籍」の類が一冊もない、んだ。
皆「見様見真似で」プログラムできちゃう。そして「見様見真似で」プログラムできちゃった人が本を書く。だからそこで書かれてるプログラムが、本当に「Visual Basicの設計思想に則った」綺麗なプログラムになってます、って保証が全くない。
これが一般に、Microsoft製プログラミング言語が抱える問題になっている。
どうしてこんな事になってんのか、っつーと、要はMicrosoftが長年、「強権的立場」に居続けたから、なんだ。そしてプログラミングのエキスパート、要はハッカー連中がそれを嫌ってきたから、なんだよ。
例えばHTML標準が制定されている。ところが、長い間Microsoftは「ユーザー数が最大の」Internet Explorer 6で「標準に従わない」事をやり続けてきた。結果、HTML違反なんだけど、「Internet Explorer 6でマトモに映るページ」が、HTML標準に「キチンと則ってる」ブラウザだとマトモに表示されない。「ユーザーをたくさん抱えてる」って事は、ユーザーは「HTML標準が何なのか」分かって無くても「IE6ならマトモに表示されてるページが××製のブラウザだとマトモに表示されない」と勘違いする。
結果、「HTML標準」に従わないページが増えても誰も気にしない・・・そういう事をMicrosoftは「やり続けて」来たわけ。
断っておくけど、Microsoftはかつての「そういったやり方」を改めて来てるし、色んな貴重な技術を最近では「オープンソース」化して広く皆に使ってもらおう、と方針を変更してる。
ただ、かつてがかつてだったんで、いまだにオープンソース陣営に属してるハッカー達の「疑いの目」が晴れてないのね。疑念を持たれてる、わけだ。
従って、今後は変わっていくとは思うんだけど、今のトコ、「ハッカーはMicrosoft製言語を使わない」。結果、プログラミングを「良く知ってる層」がMicrosoft言語を使わない以上、初心者向けの「Microsoft言語を使ったプログラミング指南書が出ない」って事になるわけだ。
なお、C#自体は「Microsoftが作った言語」なんだけど、方針変更のお陰で現在は国際標準規格も制定されてる。「標準規格」である以上、Microsoft以外のどんな言語ベンダーでも「C#を作る事が出来る」。そして標準規格である以上、もはや「Microsoftの勝手で」C#の仕様を変更する事も出来なくなっている。
その観点から言うと、CやC++くらいにはC#は既に「安全で安定している」言語になっていて、それで言うとJavaよりは信頼度は既に高いんだ(Javaには権威ある、国際的な「標準仕様」は存在しない)。
だから状況は今後変わると思っている。既にC#はLinux、つまりUNIX系OSでも「動く」ようになってて、「Windowsじゃないと使えない」って事は無くなってる。だから「スジさえ良ければ」今後ハッカー達も認めていく可能性はある。
ただ、残念ながら「現時点」ではまだまだ、なんだよね。
しかし、Microsoftの処理系を使ってる人は「Microsoftのドキュメントは非常に良い」ってみんな言うんだよ。UNIX系の人はとかくMicrosoftを攻撃するんだけど、実際、「デスクトップ向けにMicrosoft処理系でプログラムを組んでる」人は、MicrosoftのIDEは使いやすいし、ヘルプも充実してる、って皆言う。UNIX系プログラマがあたかも「Microsoftに対する偏見ばっかだ」って言うようなカンジになってる。
っつー事はだぜ?何はさておき、Microsoftが記述してるドキュメントに目を通してみる、ってのがファーストステップになるんじゃなかろうか。
C#:
https://learn.microsoft.com/ja-jp/dotnet/csharp/
とにかくMicrosoftは「自社製の言語を色んな人々に使ってもらいたい」って思ってる。これはかつての状況だろうとそうだったんだ。あったのはWindows vs. UNIXと言う・・・イデオロギー的?・・・でもねぇか(笑)、いずれにせよ「対立構造があった」のは事実なんだけど、「初心者Welcome!」って思ってたのはどのみち変わんないんだよね。
ハッキリ言っちゃえば、UNIX系の方が「初心者Welcome!」なんか全く考えてない、っつーか(笑)。Microsoftは「新人」に優しくしようとはしてた。販売する以上「金は取る」が(笑)。
(当時は「処理系は販売する」モノだった)
いずれにせよ、例えば次のようなMicrosoft「自身が」書いてるページを一通り読みながら言われた通りに「やってみよう」。
基礎:
https://learn.microsoft.com/ja-jp/dotnet/csharp/ …
チュートリアル:
https://learn.microsoft.com/ja-jp/dotnet/csharp/ …
この時点で「良く分かる!」って思うかもしんない。逆に「良く分からん!」と言う事もあるだろう。
でも仮に「良く分からん!」でも貴方のアタマが悪いから、とかそういう事は意味しないんだ。3つばかり原因が考えられる。
1. 単にC#がプログラミング初心者には難しい。
2. Microsoftが書いてるドキュメントが難しい。
3. 貴方自身のアタマの構造、っつーかセンスがC#に向いてない(つまり、貴方にはC#より別の言語の方が向いている)。
のどれかだ、って事だ。
1. と 3.の場合は、要は「別言語をやった方がいい」って事になる。世の中には星の数程のプログラミング言語が存在する。よって、「C#が難しい/向かない」=「貴方がプログラミングが出来ない」を意味しない。他に貴方向けのプログラミング言語があるかもしんない。いや、「ある」って考えた方がいい。そっちを探そう。
2.の場合は、結局 #1 氏が挙げたような書籍を入手すべきだ、って事だ。Microsoftのドキュメントが「痒いトコに手が届かず歯がゆいカンジがする」ならこれら書籍を頼るのがベストだろう。・・・正直それらも初心者向けだかどうか、は明言しないけどね。
でも lv4u氏はいっつも「正しい事」を言ってる回答者だって長い間見てて知ってるんで、ヘタな書籍は推薦せん、と思うんだ。多分初心者向けでも「良い書籍」を推薦してると思う。
取り敢えずまずは最初に「Microsoftが書いてるように」例に従ってプログラミングしてみよう。書籍を買ってやるかどうか、は別問題だ。
そんなトコかな。
加えると lv4u氏も言ってるけど、
> お金を払って書籍を購入しましょう。
> お金を惜しんで無料のネット情報には頼らないようにね。
と言うのは100%正しいし、「YouTubeで学ぼう」とか「Webプログラミングスクールで学ぼう」ってのは成功しない。これは言っておく。
最初にMicrosoftが提示してるドキュメントを利用する、って方針は変えないけど、色んな事をやってるウチにどのみちlv4u氏が言うような事になるのは間違いない、んだ。
お金には使いどころがある。かつてのように「プログラミング言語処理系」にお金を払う必要は限りなく低くなってきているけど、「書籍を買って勉強する」と言った古来からのスタイルからは、現時点ではどのみち逃げられない、んだ。
基礎やチュートリアルなど私がわかりやすいように教えていただきありがとうございます。しっかり読み書籍も購入して学びたいと思います。回答ありがとうございます!
No.2
- 回答日時:
プログラム言語を一つも知らないのであれば、いきなりC♯はちょっとどうかと思う。
まずはCが最低限使えるようになってからが良いような気がする。
C++は経由するとかえって混乱の元になりそうなので、
CのあとJavaによりみちしてみたりするのが急がば回れになるかと。
No.1
- 回答日時:
「教材」という言い方がちょっと気になります。
プログラム言語を学ぶならまずは書籍を購入しましょう。お金を払って書籍を購入しましょう。
お金を惜しんで無料のネット情報には頼らないようにね。
ただ、プログラム言語の書籍も、コミックスと同様、生鮮食品のように書店で目にした時に購入しないと、入手できなくなることが多いです。
書店の本棚が限られているので、新刊が出ると以前に出版された書籍は返品されてしまいますから。
そして、最近はPythonの書籍が増えた影響で、他言語の本が書店の棚からかなり消えたようです。
C#は、Visual Studio .NET 2002 で1.0がリリースされて以降、数多くの機能拡張が行われており、最新の Visual Studio 2022 ではC# バージョン12が公開されています。
C#は「いかに楽にプログラミングするか?」という観点から、多くの機能が追加されたため、「これ1冊で学習OK!」という本は無いと思います。
私の本棚には、多くのC#の書籍がありますが、とりあえず以下の4冊をお勧めです。
・新プログラミング環境 C#がわかる+使える / 川俣晶 / \2380
・C# フレームワーク ASP.NET Core入門 / 掌田津耶乃 / \3520
・実戦で役立つC#プログラミングのイディオム/定石&パターン / 出井英行 / \2980
・標準講座C# / Daniel Solis / \4800
新刊では入手できない書籍もあるようです。
Amazonで調べると、定価よりかなり安く中古本が入手できるものもあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
double型が正常に認識されていない恐れ
C言語・C++・C#
-
gccを行ってもexeファイルが生成されない
C言語・C++・C#
-
あなたは、Excelはどうやって学びましたか?
C言語・C++・C#
-
-
4
こんなことてしますか??
C言語・C++・C#
-
5
mallocについて
C言語・C++・C#
-
6
WindowsのCapsLock(キャップスロック)って、何の意味があるんですか?
C言語・C++・C#
-
7
C言語をコンパイルするとコンピュータ上でどう動くかというコードになるみたいな説明をよく聞くのですがこ
C言語・C++・C#
-
8
Stuck
C言語・C++・C#
-
9
なんかC言語でプログラム書いてると脳汁というかエクスタシーというかなんかすげえ気持ちいいんですけどな
C言語・C++・C#
-
10
プログラミングの課題がわからないので教えていただきたいです。特にサークル関数を定義した後に呼び出す方
C言語・C++・C#
-
11
CPUが16bitでも32bitOSでコンパイルしたコード(例えばintが4バイトと定義されている)
C言語・C++・C#
-
12
10進数からN進数に変換するプログラミング(C言語)
C言語・C++・C#
-
13
Notepad++の関数リスト表示でC言語のプログラムが正しく表示できない。
C言語・C++・C#
-
14
プログラム言語について c言語もコードによって機械語に通訳されると知りました。直接機械が通訳しなくて
C言語・C++・C#
-
15
Python、プログラミングについて質問です
C言語・C++・C#
-
16
[C言語]fputsとfprintfの違い
C言語・C++・C#
-
17
だれがとけるの?
C言語・C++・C#
-
18
c言語のリダイレクトによる円の描画について
C言語・C++・C#
-
19
昔のパソコン少年の武勇伝「店先のパソコンでゲームを作成し、それを売り、その金でパソコンを買う」本当?
その他(プログラミング・Web制作)
-
20
どちのほうがすきですか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++における継続行
-
vbaとc言語の関連性について
-
VBSとWSHは読み方が違うだけで...
-
UWSCはどのプログラミング言語?
-
C言語って古いですか?
-
クオンツに必要なプログラミン...
-
VBSでDim、Private、Publicの違い
-
C/C++でマウスのクリックとホイ...
-
プログラムからアイコンファイ...
-
C# でソフト開発をした事のある...
-
ホワイトハッカーを目指そうか...
-
プログラミング言語を学びたい...
-
昔、MZ-2000やX1でBASICを書い...
-
C言語って。
-
COBOLで文字タイプを数字...
-
UNITY Float型の接尾辞fって
-
フレームワークを使って学べること
-
CSS・Javascriptの著作権について
-
目指せ!!プログラマー!!
-
HTML の submit でゲットした ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
UNITY Float型の接尾辞fって
-
プログラムに書かれる"%"記号の...
-
vbaとc言語の関連性について
-
C言語とhtmlの違いを どな...
-
C++における継続行
-
プログラムからアイコンファイ...
-
TO_CHARで小数点以下がある場合...
-
COBOLで文字タイプを数字...
-
パスカルケースの由来。
-
VBSでDim、Private、Publicの違い
-
Excel VBAで文字化けする (英語...
-
VBSとWSHは読み方が違うだけで...
-
VBScriptで引数を省略したい場合
-
Solve()とは、なんですか?
-
プログラムははぜ小文字大文字...
-
C++ ってなんて読む?
-
HTMLとC++で、どんなホームペー...
-
今、コンピューター言語で、COB...
おすすめ情報