質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

3回答

2140閲覧

プログラミング基礎について Unity C#

ryuuu11111

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

2グッド

2クリップ

投稿2020/09/10 08:39

編集2020/09/10 10:18

私は現在UnityとC#を使ってVR向けの開発を勉強しています。

Unityを触り始めるまではプログラミングの経験もなく、文系出身です。

書籍を見たりネットで調べたりしているのですが、わからない単語を一つ調べると3つ次はわからない単語が出てきたりして訳がわかんなくなってしまいます。

そこで一度コンピューターやプログラミングの基礎となる部分を学んだ方がいいのかなと思ったりしているのですが何かおすすめの書籍などはありますでしょうか?

また、どのようなことを学べばこの先スムーズにプログラミングが理解できるようになるでしょうか?

「追記」
私のレベルとしては初心者レベルです。
まだUnity、C#を触り始めてから3ヶ月程度です。
Unityの参考書は2冊と半分読んだ程度です。

プログラミングを始める時、始めにどのようなことから学んだ方がいいのか皆さんの意見を聞きたいです。
私はUnity、C#についての参考書を何冊か読みましたが、例えば「インターフェース」や「プロパティ」などといった、参考書の中に出てくる単語や、そもそもプログラムがどう言う構造になっているのかなどがいまいちわからないです。単語は調べれば出てくるのですが、1つ調べたら3つ分からない単語が出てきて訳が分からなくなってきます。
プログラミングについての基礎の中の基礎の部分を固めてから学んだ方がこれから先の学習がスムーズに進むのかなぁと思ってます。
そこでどのようなことを学べばいいのかを教えていただきたいです。

cushionA, AtsushiYonenaga👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2020/09/10 08:58

非推奨質問です。 https://teratail.com/help/avoid-asking あなたのレベルがわからないので薦めようがありません。 現状で言えるとしたら「わかるようになるまで何冊でも何件でも見ろ」という他ないです。 何をすればいいのかという意味では以下の「質問するときのヒント」も参考になるかもしれません。 https://teratail.com/help/question-tips 『質問をする前に自分で何がわからないのかを把握しましょう』という部分は特に重要です。
1T2R3M4

2020/09/10 13:33

文章読解力をあげましょう。 →本やマニュアル,コーディングルール等を読んでいくと思うので。 ルールやガイドラインを守るようにしましょう。 →文法は言うに及ばず、コーディングルールや禁止事項を守ることです。
ryuuu11111

2020/09/10 16:14

ご指摘ありがとうございます。大変助かりました!
guest

回答3

0

「具体的に何が分からないのか」「何を作りたいのか」「どの程度の実力なのか」かが分からない…というかそれらを赤の他人に伝えるのは難しいかと思います。
多分ここで募るよりも、書店行って立ち読みして内容を確認したほうが、適切なのではないかなと思います。
また、特定のライブラリやアセットを使いたいのであれば、大概マニュアルがあると思うので、それを参考にするのがいいと思います(Unity自体もある程度同じことが言えます)。

投稿2020/09/10 08:57

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuuu11111

2020/09/10 16:31

ご回答ありがとうございます。ご意見参考にさせて頂きます。
guest

0

ベストアンサー

こんにちは!
どの段階にいるのかはわかりませんがフローチャートにしてみました。
ちなみに自分も法学部の文系で独学でひーこら言いながらやってます!

ふりがなC#

独習 C#

実戦で役立つ C#プログラミングのイディオム/定石&パターン

Effective C# 6.0/7.0

More Effective C# 6.0/7.0

書籍の説明

ふりがなC#はとにかくわかりやすい入門書です。
コードを日本語に翻訳してわかりやすく教えてくれます。
ふりしゃー
ふりしゃー
その上Unityの基礎についても教えてくれるのでかなりありがたいです。
しかし簡単故にあいまいだったり説明しなかったりする要素も多いのでわからないことは気に留めとく程度でいいです。

それから次に独習ですが、これはC#の全体の概要を細かく教えてくれます。
しかし実践的な内容には欠けている教科書的な側面が強く、内容もほとんど基礎的。

実戦で役立つ C#プログラミングのイディオム/定石&パターン。
これは実際のコーディングでどうすべきか、なぜこうするのか、どういう考えが大切なのかということを教えてくれます。
また、内容も基礎は知ってる前提で応用的に。

Effective & More Effective
こちらは実戦イディオムと重複もありますが全体としてさらに発展的で、特にMoreは自分も理解できてないことが結構あります。
しかし中級者への壁を超えるために必要なエッセンスが詰まってると思います。
自分はまだ超えられてません。

と、ここまで言っておいてなんですが一番大切なのはコードを書くことだと思います。
自分はふりしゃーからあとここでは挙げてないふりしゃーと独習の間みたいな本を一冊やって数か月ひたすらコーディングしました。
そして独習を読みました。
次にまた数か月コーディングを続けて本を読みました。
そういう風にしないとあー!って感じで理解できません。
一度に詰め込んでも多分パンクするだけですし、意欲が続きません。

あと何より使わないことは忘れます。
同じ言語とはいえUnityのフレームワークと世間の参考書で使われているWindowsの開発環境のフレームワークには大きな違いがあり、エンジンを利用することにより使えなくなるテクニックや一からコーディングしなくてもできることが色々あります。
ですのでUnityの使い方を覚えるためにプログラミングを学ぶなら、Unityのコーディングと参考書の内容の調和をとるために実際にコードを書く時間があった方が絶対にいいです。
もっと言うならUnityの使い方を理解する方が大事です。
ほかの方が言う通りわからないことを調べたりここで聞いたりしながらコーディングしていくのがベストでしょう。
そしてあいまあいまに理解を深めるために参考書を使うと。

ということで、一気に読もうとせず必要性を感じたらステップアップしていくのが一番だと思います。

長くなりましたがここいらで失礼します。
自分もまだまだですがお互い頑張りましょう!

投稿2020/09/10 10:01

編集2020/09/10 12:08
cushionA

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2020/09/10 10:34

大変丁寧な回答ですが、気になった点があります。 > UnityC#と世間の参考書で使われているC#には隔たりがあります。(基本的にコンストラクタを使えないなど) C#の言語としての仕様はUnityとそれ以外で違いがあるということはありません。 コンストラクタを使えないのはMonoBehaviourがそうなっているだけなので、MonoBehaviourを使わないクラスではコンストラクタは使えます。 このような感じで、Unityの機能を使わない箇所であれば、他のC#の書き方をしても何ら問題はありません。
cushionA

2020/09/10 10:48 編集

C#に隔たりがあるという言葉は誤解を招いたかもしれません、すみません。 エンジンに乗っかる形になるので使わないこと、使わない方がいい事、つかわなくてもできること。 色々あるのだといいたかったのです。 申し訳ありません、修正しておきます。
Zuishin

2020/09/10 11:40 編集

C# に隔たりがあるという文言がまだ直っていないようですが、fiveHundred さんの仰る通り隔たりはありません。C# は ISO や JIS で規格が定められています。バージョンアップも一か所で行われており、各メーカーが勝手に仕様を決めて独自の実装をしているものではありません。 隔たりがあると感じたのは、おそらく Unity の C# と他で使われている C# ではなく、Unity と Windows Forms でしょう。これは言語ではなく、フレームワークの違いです。Unity の C# とその他で使われている C# は同じもので、Unity ユーザーがよく口にする「ネイティブの C#」というものは存在しません。 Unity と Windows Forms のほかにも UWP、WPF、ASP.NET、Xamarin、Uno Platform、Blazor など多くのフレームワークがあり、Unity も Windows Forms もその中の二つでしかありませんし、最も多く使われているものですらありません。
cushionA

2020/09/10 11:42

直した気になってました(謎) 疲れてるのかもしれません、わざわざありがとうございます。
Zuishin

2020/09/10 11:46

おちょくってるんでしょうか? それとも意味が分かっていないんでしょうか? 直るまで低評価しておきます。
cushionA

2020/09/10 11:55 編集

隔たり、という文章を(同じものを)違う使い方をする、というふうに直しておきました。 自分の画面では少なくともそう見えています。 反映されていないとかでなければ貴方にもそういうふうに見えていると思います。 それか、返信してから修正したので修正前の画面を目にしたのかもしれません。 もし修正後の記述が気になるということでしたら多分自分がわかってないんだと思います。 低評価は別に構わないのですが、なにか誤解がありましたらすみません。 もしそうなら浅学の身ですのでどこをどう直したほうがいいと直接的におっしゃっていただくか(質問者様のためには僕が理解して書くよりはそのほうがいいでしょう)、ご自身で回答してみるのが良いかもしれません。 最後に一番言いたいのは自分には誰かをおちょくるような意思はないということです。 まず直ってないようですがという返信を見て読み込まずすぐに書き換えたことと、単純に知識の欠如によりWindowsFormなどのフレームワークについての説明は文章に反映できてないかもしれませんが。 それも謝罪します、すみません。
Zuishin

2020/09/10 11:59 編集

まだ直っていないので修正前ではありません。おちょくっていないことはわかりましたが、間違っていてそれを理解していないので低評価はそのままです。私からの説明は既に済んでいるので、それ以上説明しろと要求されるのは不条理です。
cushionA

2020/09/10 12:01

https://i.imgur.com/BQGGEY8.png 僕の画面では修正されています。 そして編集は2020/09/10 20:43ですので後出しでもありません。 なにかの行き違いがあるようですね。
Zuishin

2020/09/10 12:01

その画像でも直っていません。
cushionA

2020/09/10 12:15

一応隔たりでページ検索してみましたがヒットしません。 「C# に隔たりがあるという文言が治っていない」とおっしゃっていたはずなのですが僕にはそれを見つけることができません。 なんとなくの心当たりに手は付けましたが、これでもダメならどこをどう直せばいいのか教えてください。 おそらくおちょくっているとわかってないの二択ならわかってないの方なのでそうしてください。 それをしたくないのであればもう僕にかまわずご自分で回答してください。 別に低評価はそのままでいいですが、純粋に質問者の方のためにこの場にいるのならばなにもわかっていない頭の悪いユーザーに直せと言い続けるのも不毛でしょう。
Zuishin

2020/09/10 12:20

> UnityC#と世間の参考書で使われているC#には違う使い方をするところがあり、 問題はここです。前述の通り「UnityC#」というものは存在せず、「世間の参考書で使われているC#」と何ら変わるものではありません。 直っていることを確認したので低評価を解除します。お疲れ様でした。
ryuuu11111

2020/09/10 16:27

ご丁寧な回答ありがとうございます。参考にさせて頂きます。ありがとうございましたm(_ _)m
guest

0

「コンピュータはなぜ動くのか」と言ったなぜシリーズ、「あなたはコンピュータを理解していますか」などがおすすめです。

数学分野では2・8・16進数や、離散数学、集合と論理と言った分野が頻出です。

わからない単語を一つ調べると3つ次はわからない単語が出てきたりして訳がわかんなくなってしまいます。

最初はそうなるのが自然だと思います。
が、ひとつひとつ理解していけば、以前通ったことのある道を再度通るような感覚で理解できる範囲が少しずつ増えて、だんだんと全体像が見えてくることでしょう。

私もVRには興味があって、HTC Viveを買ってほんの少しだけかじったりしていますが、わからないことだらけです。
お互い頑張りましょう。

投稿2020/09/10 09:15

AtsushiYonenaga

総合スコア116

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuuu11111

2020/09/10 16:28

ご回答ありがとうございます。今後の参考にさせて頂きます。ありがとうございましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問