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

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

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

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

Q&A

解決済

3回答

1652閲覧

C#入門者向けドリル式の学習サイト探しています。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

0グッド

0クリップ

投稿2021/09/24 09:55

現在、ドットインストールでC#入門を学習中です。
https://dotinstall.com/lessons/basic_csharp

これが終わったら、どれくらい理解できているか、コードを書いて自分の理解度を確認したいと思っています。
ドリル式の無料の練習サイトを探しているのですが、なかなかいいものが見つかりません。
ご存じでしたら、教えていただけると幸いです。

よろしくお願いします。m(_ _)m

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

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

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

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

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

fana

2021/09/24 10:18

「いいもの」の基準が不明なので, 他者が何かしらを探して「これはどうか?」と提示しても ご自身で探した際に既に却下したものになる可能性が高そうに思います.なんとなくですが. 個人的には,あまりにも練習問題な「問題のための問題」みたいな事柄に取り組んでも面白くない気がしますので, 「せっかくC#を学んだんだから,俺はこれこれこういう動きをするソフトを作るぜ!」という課題に取り組んでみてはどうでしょう? とか思いますが.
gentaro

2021/09/24 10:49

iPhoneをお使いなら「へいしり、しーしゃーぷ、にゅうもん」。 Androidをお使いなら「おーけーぐーぐる、しーしゃーぷ、にゅうもん」。
ara_ara

2021/09/24 13:43 編集

こういった「オススメの○○教えてください」という類の質問は推奨されていません。 推奨していない質問 https://teratail.com/help/avoid-asking 書籍や他サイトをお勧めするのは宣伝行為になりうるので回答もし辛いです。 C#は応用範囲がとても広い言語なので、今後何をしたいかによって必要な知識が大きく変わってきます。 一元的にこのサイトを見ればC#はオッケーというものでもありません。 LINQまでできればひとまず十分と思いますので、学習した構文を用いてアプリを作りながら理解度をチェックするというやり方でもよいのでは
退会済みユーザー

退会済みユーザー

2021/09/24 15:55

fanaさん、gentaroさん ara_araさん コメントありがとうございます。 質問の仕方が乱暴でした。すみません。 実は、本業はUIデザイナーです。クライアント⇔営業⇔開発工程の営業と開発の中間に位置しています。 ちょうど今 「WinPC向けアプリ言語C#にて」、の仕事をもらってUI設計しているのですが、 自分がつくるUIが実装側にどれくらい負荷がかかるのか理解する必要があり自宅でC#を学んでいるのです。それでこの質問に至りました。 具体的になにか目標物を作って質問すべきでした。スミマセン...
退会済みユーザー

退会済みユーザー

2021/09/24 21:41

上記の件、今からでも遅くないので質問欄を編集して追記願います。
m.ts10806

2021/09/25 07:51

質問は編集できます。 目標や目的など具体的に書けばきちんとアドバイスつきそうな気もします。
guest

回答3

0

穴埋め形式になっている不完全なテストコードをテストが通るようにする問題集がkoanと呼ばれていろんな言語でありますので

csharp koanで調べると出てきます

投稿2021/09/25 07:42

ozwk

総合スコア13528

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

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

退会済みユーザー

退会済みユーザー

2021/09/25 14:34

ozwkさん 情報ありがとうございます!
guest

0

プログラミングっていうのは『書いて終わり』ではありません。

プログラムは魔法でもなんでもなく、現実世界で人間がやっている手順を逐一指示されながら処理しているだけの代物である』です。

簡単に言えば『現実世界のシミュレーション』です。

さらにデバッグやテスト(検証)も含みます。

なので、本を読むだけではなく、『実際に何か作品を作る』です。

ただし、『○○作りたいからコードくれ』ではなく、『自分で設計し、自分で考え、自分で作り、自分でデバッグまでする』です。

これができて初めて『初心者』と言えますね。

とりあえず作ってみてください。

最初は下手だと思います。最初から完璧にできる人なんていません。
なので軽いものでもいいので自分で考えて作りましょう。

そうすると、『for文の使い所』とか、設計方法や考え方、デバッグ方法も学べるはずです。

頑張ってみてください。


[追記1]

(修正時、修正依頼のコメントにて)

質問の仕方が乱暴でした。すみません。

実は、本業はUIデザイナーです。クライアント⇔営業⇔開発工程の営業と開発の中間に位置しています。
ちょうど今 「WinPC向けアプリ言語C#にて」、の仕事をもらってUI設計しているのですが、
自分がつくるUIが実装側にどれくらい負荷がかかるのか理解する必要があり自宅でC#を学んでいるのです。それでこの質問に至りました。

それを先に書きましょうよ……
場合によっては相当変わってきますから。

私は最初、「ITエンジニアになってウハウハな人生を送りたい人」なだけだと思っていました。
(最近めちゃくちゃ多いので)

まあ、それでも大体の方向性は同じになりますね。提案としては。

とりあえず、ざっと基本的な部分を学んで、LINQとかそういう部分まで学んで、
WindowsFormsのようなAPI等でのGUI系を学んで、「設計からデバッグまでする」ですね。

本を読んでも完全に習得できるものではありません。手を動かして初めて理解できるものです。
なのでオススメは「実際に何か作る」ですね。

自分がつくるUIが実装側にどれくらい負荷がかかるのか理解する必要があり

ということを考えてもやはり「実際に作る」でしょうね。

基礎部分だけやってもそれは単なる知識であって、意味をあまりなさないからです。
(かといって基礎をないがしろにしていいとは言っていません)

実際に自分が開発者に立って実践することで理解しやすくなるはずです。

頑張ってください。


[追記2]

そういえば、余談ですが、C#でGUIを作る場合はWPFかWinFormsなのかとかで違うようです。
作るもの( WinForms or WPF ) によって作法が異なるのでそこも考慮した方がいいかと思います。

おそらく、書かなくてもわかるとは思いますが。

WinFormsではイベントドリブン(イベント駆動)で、WPFはMVVMという考え方を取り入れるのが多いようです。(あまり詳しくありませんが)

コメントで『Windows上でのGUI系はイベントドリブンが基本』とのご指摘が入りました。
(確かにWinAPIで実装するときはイベントドリブンですね)


[追記3]

職場で開発者が使っているのは、「Windows Forms」で、GrapeCityの有償のGUIツールを使って画面を作ってました。

それならWindows Formsですね。

なので、自分としては、まずは「C#ってなに?」「プログラミングってなに?」から入って、上記ドットインストール入門を2回転くらいやって、さっとドリル、その後、Udemyなどで出ているWindows Forms編コースをやろうと思っています。

基本的な方向性はそれでいいと思います。

ただ、個人的には二周もしなくていいかなと。
その代わり、他のサイトも読む。特に自分の理解が怪しいところです。

変数とかfor文とかはいけるけど、オブジェクト指向周りがわかっていないなら、
『C# オブジェクト指向 わかりやすく』とかみたいに調べるとかですね。

少なくとも、『名称』、『基本的な概念』、『基本的な使い方』(軽いサンプル程度)
ぐらいは理解すべきですが、あとは実際に使っていけばわかるはずです。

WindowsFormsは単なるAPIで、
外観はそのAPIで、内部処理(ビジネスロジック)はC#とかでやります。
いくら外観ができても、内部処理ができないと話になりません。
なので最初はC#の基礎部分をやって、次にGUI部分、つまりWindowsFormsのことをやる。
そして実際に作るのです。

『C# 入門』、『WindowsForms 入門』とかで検索してみてください。
別にUdemyとかでもいいです。

なので、

C# 自体の基礎 → CUIとして軽い作品を数個作る → コツを掴んだら → WindowsFormsの基礎部分を学ぶ → GUIとして軽い作品を作ってみる

とかみたいな感じになるかと思います。

もしかしたら最初からWindows Forms編コースでいいのかもしれませんが、

NOです。むしろ逆です。
最初からWinFormsをやってもいいですが、内部処理はC#だし、
考え方自体もC#なのでどのみちCUIが作れないと話になりません。
そのため、C#の基礎からやる羽目になりますね。

UIデザインをやり始めた時、CSS飛ばしてBootstratpいじりだし、散々回り道したあげく、結局CSS基礎から仕切り直した黒歴史がありますので、今回は基礎からやろうと思います。

ですね。むしろそれが健全かと思います。
基礎を蔑ろにすると、何も理解できません。
よくてコピペ、悪ければそもそも何もできないです。

そうなるとやっぱりやり直しになり、基礎からやるはめになるので、
むしろ地道に、質問者さんがお考えのように堅実にやる方が無難ですね。

投稿2021/09/24 12:14

編集2021/09/26 05:00
BeatStar

総合スコア4958

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

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

dodox86

2021/09/24 12:35

質問中に暗記する為、とは書いていないように思うので「前提が間違っている」は言い過ぎなのではないでしょうか。プログラミング言語は実用品ではありますが、問題を解くこと自体に楽しみを見出したとしても、それはそれで個人の自由のはずです。仕事の為と決めつける方がやり過ぎです。そうであると「趣味でやる」ということが否定されますね。勉強や習熟度の確認のために使えるAOJのようなサイトもあります。もし、質問の内容自体が不適当だとしても。
BeatStar

2021/09/24 13:14

あ、そこは失念していました。 言いすぎましたね… 削除依頼出しておきます。
BeatStar

2021/09/25 07:09 編集

@ liataretailさん 私がク○で無○なのは否定しませんが、それを言う前にやるべきことがあるのでは? 過去質問で「解決しました」と一言だけで終わっています。 ですが、他のユーザからすれば「未解決」のままです。 せめてBAを選んでは? 私にク○だの何だの言うのですから。
m.ts10806

2021/09/25 07:49 編集

> 削除依頼出しておきます。 たぶん削除依頼通らない気がします。 https://teratail.com/help/delete-policy >内容の誤った回答をした >編集より修正するか、誤っている旨を追記してください 余程通報でも集まれば別かもしれませんが、投稿内容を修正すれば低評価が取り消される余地はあるでしょうし。 ※ただ、liataretailさんのコメントは単なる私怨による暴言にも取られますので、このコメントは通報されても仕方ないし私は通報した。 「同じような文章を貼りまくっている」部分には同意できますが、ずれてるならどうずれているか具体的に「改善してもらう方向」で指摘すべきで、「アスペルガー等の発達障害をお持ちの方」のように決めつけでプログラミングに一切関係のない暴言を吐く場面ではないです。 個人で場外乱闘したいなら他所へいくか、運営に「相談」してください。 BeatStarさんも「私がク○で無○」など同じレベルで応答する必要ないです。
BeatStar

2021/09/25 07:57

@ m.ts10806さん > たぶん削除依頼通らない気がします ですね。実際に削除依頼を出そうとしたところ、削除依頼のアイコンが使えない状態でした。 なので(本文内の)明らかなノイズ(冒頭)だけを削除しました。 > ※ただ、liataretailさんのコメントは単なる私怨による暴言にも取られますので、このコメントは通報されても仕方ないし私は通報した。 私もそう思いますが、一応書いておきました。まあ、同じような文章については反省点ですね。 > 個人で場外乱闘したいなら他所へいくか、 その意図は無かったのでここでやめたいと思います。
dodox86

2021/09/25 08:02

本回答を最初に読んだ時「質問の主旨を読み誤っている」と強く感じて最初のコメントをしたものでしたが、指摘で改善し得るかもしれないとも思ったのもあります。私は低評価は入れていませんが、正直、入れる気持ちは理解できます。回答の主旨がそもそも間違っていた場合は修正しづらいこともあるかもしれないので、難しいですね。私自身も質問を読み誤っての回答では断わりを入れた上であえて低評価を覚悟でそのままにしておくこともあります。次へ活かせば良いのではないでしょうか。
K_3578

2021/09/25 08:09 編集

>削除依頼のアイコンが使えない状態でした。 因みに削除依頼は解決済みの質問は出来ないシステムになってます。 https://teratail.com/help/delete-policy から >解決済みの(ベストアンサーが付いている)質問の回答は削除リクエストができません。 後回答が脱字してると思います。 >ログラミングっていうのは... 意味は分かると思いますが一応気になったので。
m.ts10806

2021/09/25 08:06 編集

私が言及したのは「削除依頼を申請しても却下される」ということであってそもそも押せないという意味ではないです。
m.ts10806

2021/09/25 08:08

あと場外乱闘云々はBeatStarさん宛ではないです。 何かと「答えられないなら」のように同じような煽り文句を色んな場所で貼りまくってる方に向けて言ってます。
BeatStar

2021/09/25 08:17

@ dodox86さん > 本回答を最初に読んだ時「質問の主旨を読み誤っている」... dodox86さんのご指摘で自分が(質問の)解釈ミスをしていることに気づきましたが、その時点では当時の回答より良い回答が出来そうになさそうだったので削除依頼を出そうかと考えていました。 ですが削除依頼が通りそうにもなく… > 私自身も質問を読み誤っての回答では断わりを入れた上であえて低評価を覚悟でそのままにしておくこともあります あー、それでいいんですね。
BeatStar

2021/09/25 08:18

@ K_3578さん > 因みに削除依頼は解決済みの質問は出来ないシステムになってます。 みたいですね。なので回答自体を修正しています。 脱字の件は修正しました。(最初の削除時に一緒に消えてしまったらしいです)
BeatStar

2021/09/25 08:20

@ m.ts10806さん > 私が言及したのは「削除依頼を申請しても却下される」ということであってそもそも押せないという意味ではないです。 OKです。 > あと場外乱闘云々はBeatStarさん宛ではないです。 あ、そうなんですね。(良かった…)
dodox86

2021/09/25 08:34

BeatStarさんの本欄[2021/09/25 17:17]コメントより: > 私自身も質問を読み誤っての回答では断わりを入れた上であえて低評価を覚悟でそのままにしておくこともあります > > あー、それでいいんですね。 他の回答者さんからの適切な回答がついていた時は、比較できる程度の意味はあるかと思ってのことです。あまりにトンチンカンな回答なら削除した方が良いこともあるでしょう。そんなものでは恐らく低評価が積み重なるばかりです。(本回答のことではないです)
Zuishin

2021/09/25 08:48 編集

> そういえば、余談ですが、C#でGUIを作る場合はWPFかWinFormsなのかとかで違うようです。 WPF も WinForms もどちらも Windows 専用でオワコン扱いされかけたりしましたが、UWP が推奨されたり、UWP があまりに使いにくいので XAML islands や WinUI 3 で融合の道が示唆されたり、.NET Core でも WinForms や WPF が使えるようになったり、Xamarin でも WPF 対応が開発され始めたり、MAUI や Uno や Blazor Desktop App が乱立したりと、迷走しまくっている感が否めません。 マルチプラットフォームの Xamarin を中核に据えようとしているようでいて、その Xamarin が来年にはサポートが切れるというふざけた状況ですが、やはり Xamarin は押さえておかなければいけないんだろうと思います。 この質問者さんは UI の負荷を確かめるために C# を学ぼうとしているようなので、話はそこからになるんじゃないかと思っています。 どれを使うにしても作法も負荷も違ってきますし、UI 層にはなるべくコードを書かないというのがトレンドです。 追伸 「発達障害」を悪口に使うようなのは、質問を見てもまともなユーザーではないし、黙って通報がいいと思います。
dodox86

2021/09/25 08:43

ところで「追記2」で: > WinFormsではイベントドリブン(イベント駆動)で、WPFはMVVMという考え方のようです。(あまり詳しくありませんが) えと、間違っているとまでは言えないのでしょうが、足りない、というか視点が違うというか。基本的にGUIのプログラミングはイベントドリブンだし、Windows FormsもWPFもどちらもイベントの考え方はあります。WPFがデータバインディングを元にMVVMの手法を積極的に活かせるようになっているだけです。内部ではPropertyChangedのようなイベントが発生しているわけですし。MVVMを使わなくても、Windows Formsのように簡便ににボタン押下などのイベントハンドラだけでもWPFのプログラミングはできます。
退会済みユーザー

退会済みユーザー

2021/09/25 15:13

みなさま、コメントありがとうございます。 今回のC#学習で、よりロスのないUIデザインづくりを目指したいと思っていますが、 同時に、何の言語であれ、「ロジカルに物事を考える」スキルが身に着けられればと思っています。 なにぜ、24日(昨日)からドットインストールC#入門を始めたばかりです。 学習が進んで自力でサンプルプロジェクトを作れるようになって、わからないことがでてきましたら、 またこちら(teratail)にお世話になろうと思っています。 その時、また力をお借りできればと思っておりますのでよろしくお願いします。m(_ _)m
退会済みユーザー

退会済みユーザー

2021/09/26 02:38 編集

@BeatStarさん 職場で開発者が使っているのは、「Windows Forms」で、GrapeCityの有償のGUIツールを使って画面を作ってました。なので、自分としては、まずは「C#ってなに?」「プログラミングってなに?」から入って、上記ドットインストール入門を2回転くらいやって、さっとドリル、その後、Udemyなどで出ているWindows Forms編コースをやろうと思っています。 もしかしたら最初からWindows Forms編コースでいいのかもしれませんが、 UIデザインをやり始めた時、CSS飛ばしてBootstratpいじりだし、散々回り道したあげく、結局CSS基礎から仕切り直した黒歴史がありますので、今回は基礎からやろうと思います。
BeatStar

2021/09/26 03:53

@ dodox86さん > 他の回答者さんからの適切な回答がついていた時は、… ですね。
BeatStar

2021/09/26 03:55

@ Zuishinさん > WPF も WinForms もどちらも Windows 専用でオワコン扱いされかけたり… その件は読んだことがあります。確かに私が読んだ記事では迷走していましたね。 > この質問者さんは UI の負荷を確かめるために C# を学ぼうとしているようなので、話はそこからになるんじゃないかと思っています。 確かに…
BeatStar

2021/09/26 04:00

@ dodox86さん > えと、間違っているとまでは言えないのでしょうが、足りない、というか視点が違うというか あー、そういう視点だったんですね。 私が軽く読んだ記事では『MVVM』(データバインディングによる制御?)という部分が大部分を占めていたので。
BeatStar

2021/09/26 04:02

@ 質問者さん 本文に追記しておきます。
m.ts10806

2021/09/26 05:03

質問者さん 色んな思いがあるみたいなので質問本文に追記してほしいなぁ・・。
guest

0

ベストアンサー

【自己解決】
コメントでいただいた中にベストアンサーを見つけましたので、一部抜粋して解決方法としたいと思います。

>LINQまでできればひとまず十分と思いますので、学習した構文を用いてアプリを作りながら理解度をチェックするというやり方でもよいのでは

それと以下のサイトも見つけました。しばらくはこれで練習してみようと思います。
https://kitako.tokyo/lib/CsExercise.aspx

コメントをくださったみなさま、ありがとうございました。

投稿2021/09/24 16:04

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Zuishin

2021/09/25 07:48

UI の話であれば LINQ までじゃ全然足りませんよ。
退会済みユーザー

退会済みユーザー

2021/09/25 14:43

Zuishinさん そうなんですね。峠が遠すぎる... 昨日から学習始めて今やっとクラスとコンストラクタまできました。 まだ動画講座の内容を真似して手を動かしながら必死についていってる感じです。 既にお腹いっぱいですが、地道に頑張ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問