こんにちは。
プログラミング初心者です。C#を独学しつつ、簡単なものを自己満足の範囲で作っています。
学習不足でまだまだ理解できてないことが多いというのもありますが、コードがうまくありません。
冗長というか、無駄が多く、「こういう仕組み(アルゴリズム?)で書いとけばよかった」と見直して思うことが多いです。
自力で考えてすっきりとした最短のコードを書けないので、お手本といいますか、
他の方のコードを見ながら引き出しを増やしたいと思っています。
イメージとしては英語学習でよく言われる「英作文は英借文」をプログラミングでもできたらといった感じです。
こういう学習方法が邪道でしたら他のおすすめの学習方法や、
そうでなければ、おすすめのソースコード集のような本など教えてください。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
最短のコードを書きたいというところが少しひっかかります。
短さは必ずしも善ではありません。そこにこだわって読みにくくするのではなく、読みやすいコードを心掛ける方が良いと思います。
とにかく一流の人が書いたコードが読みたいというのであれば、.NET Framework のライブラリを読んでみるのも良いのではないでしょうか。
Reference Source .NET Framework 4.8
もともとは超一流企業のライブラリ作成者というエリート中のエリートが書いたものですし、今はオープンソースとして世界中のハッカーたちによって磨かれているものですから、参考になるところは多々あるのではないかと思います。
私のおすすめは System.Linq.Enumerable です。LINQ の中枢であり、様々な発見があります。
投稿2019/10/24 10:08
総合スコア28669
0
ベストアンサー
見やすいコード、ということだと
あたりを読む、もありでしょうが……うーん、迂闊に初心者に勧めてよいものか(汗
※ある程度コードが読める人でないとかえって混乱させそうですし
余談:
The Art of Computer Programming には手を付けてはいけません(w あれは書いてあることは大変素晴らしいのですが、読むのにものすごく労力を取られますから(w
※大学で高度な専門授業受けるようなものですから……
投稿2019/10/24 09:13
編集2019/10/24 09:18総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 01:26
2019/10/25 01:47 編集
2019/10/25 01:49
0
「こういう仕組み(アルゴリズム?)で書いとけばよかった」と
これが思えるだけでも十分です。
過去の自分のソースを読んで「こう書けばよかった」をやっていけばいいんですよ。リファクタリングというやつです。
いきなり他人の意図のわからないコードを読んでも宇宙コードとして混乱するだけなので、自身を少しずつリファクタリングしていくのが最も確実で効率的です。
投稿2019/10/24 08:42
総合スコア80875
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
※回答番外編としてお読みください。
質の高いプログラムソースコードを読んで、そのコードが意図するものは何(what)か、何故(why)そうなり、どう(how)実装したのかの理由を考え続けることはまったくの正道だと思うのですが、反対に、「これは悪い」と言われる既知のコードを読み、なぜ悪いのか、自分がそうなっていないかを考えるのも、直近で効く薬になると思います。「アンチパターン」と言うやつです。
質問者さんはプログラミング言語としてC#をメインにお使いということで、直接はあたらないのですが、「Cプログラミング診断室」と言う書籍があります。初版が平成5年(1993年!)とかなり昔のものとなりますが、著者様のホームページがあって、
Cプログラミング診断室
ここではなんと、ホームページ上で内容を無償で公開されています。内容は辛口かつC言語ですが、言わんとすることは他言語使いのプログラマー諸氏にも伝わると思うので、ベテランから初心者プログラマーへのコードレビューとして読んでみると面白い(胸が苦しい)かもしれません。
それと、その手のアンチパターンとしてはやはり書籍の、
新装版アンチパターン~ソフトウェア危篤患者の救出 SBクリエイティブ
がコンパクトで読みやすく、個人的に面白かったです。製品としてダメな成長をするパターンがいくつか紹介されています。内容は設計手法寄りですが、実業務に携わっていると「あるある」なことが良く分かります。
ただ、残念ながらどうも絶版のようで、現時点では古本や図書館の蔵書をあたるしかないようです。
amazon - アンチパターン―ソフトウェア危篤患者の救出
自分で挙げておいてなんですが、読み物として面白いレベルのものであるので、今の質問者さんがあえて苦労して手に入れ、読むほどではないかもしれません。
投稿2019/10/25 00:19
編集2019/10/25 01:00総合スコア9254
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
まだ、閉じていないみたいなので、、、
英語学習でよく言われる「英作文は英借文」をプログラミングで
プログラムでは、無理みたいです。なんせ、変化が速すぎです。
コンピュータの最初の頃は、Fortran/Cobol だったか? 次が、C言語?
まあ、多少の異論はあっても、たった50年ほどの時間です。英語は(まあ、日本語でも) そんなに大きな変化は無いでしょう。変な言い回し、と思ってもとりあえず、意思は通じるものです。
また、プログラミングと言っても、ここで話題になる事の多いゲーム系、Web系、そして、組み込み(ここだと、RasPi?) あまり、話題にはならないみたいですが、経理とかの業務系。それらは結構、違います。大学で言ったら、文学部と、理学部とか、果たして専門的な言葉は通じるのでしょうか? ってところです。
(日本では大抵、日本語での講義ですね)
まずは、その辺を絞られる事を勧めます。
あと、古き良き時代は、Unixのソースを読め、なんて言われた事もあります。
仕事で縁あって見た事がありますが、簡単に手を出せるものではありませんでした。当時の多様な機種に対応するため、 条件コンパイルの山。
何をしたいかを明確にして、地道にやるしかないのでは? と思います。
あと、ここの質問にあるコードを読んでみるのも良いかもです。良い悪いは別にして、自分と異なる視点で書かれたコードばかりで、色々と参考になります。
(長いコードも少ないし、、)
投稿2019/10/25 14:41
総合スコア6385
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
他の方のコードを見ながら引き出しを増やしたい
何をするコードなのかという内容がわかるコードを他の人に書かせればよい,ということになりますね.
方法は…
- プログラミングができる知人が存在するような状況なら
何かお題を出して勝負するみたいな遊びをするだとか,一緒に何かを作る等が考えられますが… (実現難度が高すぎて回答になりませんね.)
- 「特定の問題をどう解けばよいのか?」という話に落とし込んで,こういう場所で質問する,という手も有り得るかもしれません.
- 仕事なら隣の人間の書いたソースを(あえて読みたければ)読み放題なのですが.
投稿2019/10/24 09:07
総合スコア11985
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/24 10:23
2019/10/25 01:55
2019/10/25 02:08 編集
2019/10/26 04:45