[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 17:58 / Filesize : 57 KB / Number-of Response : 328
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングが上達するコツ



1 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 22:43:51 ]
語り合おう。

83 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 10:54:03 ]
自分で作りたい物をガンガン作る
初めから大風呂敷広げないで、しょぼい物でいい

自分は最初の頃、時計作ったり
ブロック崩しやインベーダー風のシューティング作ったもんだよ

84 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 10:54:32 ]
Cで作れるプログラムを教えて。
やる気を出すために、挑戦しようと思って。

85 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 10:54:54 ]
>>83
プログラム言語は何で?

86 名前:デフォルトの名無しさん [2007/09/24(月) 10:56:23 ]
VBだったら笑う。

87 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 11:04:20 ]
>>85
言語なんて関係ない
好きな物を選びたまえ

88 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 11:05:43 ]
>>83はHSPだったりして。笑う。

89 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 11:07:15 ]
>>88
俺がプログラミングやりだしたのは13年前だ

90 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 11:09:02 ]
>>89
お前の自己紹介なんて要らんて。

91 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 11:37:07 ]
一日8時間以上のプログラミングは脳の機能を損なう恐れがあります。
プログラミングのし過ぎに気をつけましょう。



92 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 16:21:28 ]
>>84

C言語でトランプゲームを作りたい
pc11.2ch.net/test/read.cgi/tech/1189892773/

93 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 16:38:44 ]
トランプゲームか。いきなりは無理だろうがこれができればある程度は上達するな

94 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 17:22:23 ]
シャッフルができませんという質問がでるに違いない

95 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 17:23:05 ]
>>84
そんな事考える能力もない貴方に無理

96 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 17:40:40 ]
初めて自分で考えて作ったプログラムは何かって考えてみると、本当に簡単なものしか作れなかったな。
とりあえず本読んで、作れそうだと思ったものを作ってみるのがいいんじゃないか?

97 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 17:45:58 ]
頭の中で構想して「コイツはスゲェ!コイツはスゲェ!作り甲斐がありs・・・コイツはスゲェ!」って思ってても、
100行にも満たない、コーディング時間計数十分、手ごたえが無くて何かテンションが下がってしまう事はある。

98 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 17:55:54 ]
>>97
仕事でやると、長さや規模は出来とは関係ないことが分かるようになるよw

99 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 18:07:07 ]
ゲーム作りたいっていう目的は、そこまでの過程が長いなあ。
俺の場合、大きな目標が無く、CUIのテキスト処理プログラム→GUIのラッパをつけて・・・
って、主に利便性を求めて徐々に進んできた。
もちろん、ある期間は「MFCもマスターする!」とかって努力した面もあるけど。

あと、IDEだとドーンと立ち上げて、「今からやります」って気合がいるし、
変なプログラム書いたり消したりしているうちに環境が汚れるような気がして、
あんまし冒険できない気がした(今はまた使っているけど)。
71も書いているけど、Linux使うのは良いと思う。
おれはLinux常用するようになってから確実にプログラミングする機会が増えた。
IDEみたいな気合いがいらないのよね。

それと他人の作ったライブラリを使えるようになると、けっこうあれこれできて楽しくなるよね。

100 名前:デフォルトの名無しさん [2007/09/24(月) 18:15:14 ]
初心者の段階で一度はGUIを作るべきだ
GUIを作るまではその辺のアプリとかがめちゃくちゃ遠い存在に思えてしまうが
一回作ったら何だただこれだけやってるだけなのかじゃあ自分にも作れると思える
この意識の違いが大きい

101 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 18:37:05 ]
HSPで一瞬



102 名前:デフォルトの名無しさん [2007/09/24(月) 19:07:13 ]
で逝けます。

103 名前:デフォルトの名無しさん [2007/09/24(月) 19:07:48 ]
最近、TopCoderのマラソンマッチに参加し始めた。
成績はさっぱりだが、
問題を読み解いたり、
性能の比較のためにテスト方法を考えたり、
いろいろ楽しい。

104 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 19:10:19 ]
TopCoderのマラソンマッチ?

105 名前:デフォルトの名無しさん [2007/09/24(月) 19:44:20 ]
Oracleって高いですよね
本読んでるだけじゃ勉強にならん?

106 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 19:50:13 ]
>>103
TopCoderはまず英語という難関を乗り越えるのがちょっときついんだよなあ。

107 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 19:52:58 ]
あそこのは難関って言うほど難しくないぞ?
中学生レベルの英語で十分

108 名前:デフォルトの名無しさん [2007/09/24(月) 20:18:10 ]
2ちゃんねるにコードを貼るときに
インデントを入れないような感性の持ち主は
上達しないと思う。


109 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 20:19:25 ]
うpロダに載せることよりも
ソースからインデント無くしていく方が面倒じゃね?

110 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 20:38:33 ]
全角スペースでインデント

111 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 20:55:56 ]
インデント整形するコードぐらい書けるだろ



112 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 21:04:32 ]
mixiで整形するブックマークレットなら書いたな。
普通のブラウザで2chに書き込みするときにはブックマークレットのほうが楽だと思う。replaceを重ねるだけで済む。

問題は専用ブラウザだとブックマークレット使えないってあたりかな。

113 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 21:04:34 ]
ある程度の言語はツールでいいが
Python辺りでやられると非常に困るw

114 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 01:00:46 ]
上達するコツ。オレ流。

1.関数はできるだけ短く。100行とかになると嫌になってくる。
2.書き方に一貫性を持つ。
   関数名は動詞が先、とか。getTestData()とか。
   似たような変数名を作らないとか。strPrg、sPrg、strProg、sProgramとかは統一しろと。
3.業務的な条件文には必ずコメント。nullチェックとか分かりきってる場合は不要。
4.条件文は定数を左に書く。C/Javaで使える手法。
   if( true != bHogeFlg)。これだけで代入バグは消えるし。
   意味わかんない人は、if(true = bHogeFlg)と書けば分かる。
5.動けばいいというソースはアホが書く。できる奴は保守できるソースを書く、という信念を持つ。

それぞれ書き方はあるだろうけど、
各人のこだわりについての良し悪しよりも、
同一人物が書いてるソースなのに、
あっちこっちで統一感が無いのが一番ダメ。

115 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 01:03:29 ]
最初は動けばいいものを作ればいい。最初から難しく考えようとうするから嫌になってくるんだ

116 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 01:10:35 ]
趣味ならそれでもかまわんけど、同じチームにそういう奴がいたら改善させる。
初心者でもそれは一緒。

117 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 01:15:28 ]
いきなりそれは初心者にはきつくないか?まぁ仕事上仕方ないことだけどきついというか・・・
そこは先輩がフォローしてそっから改善させていけばいい。きついだけが仕事じゃないんだ

118 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 01:45:31 ]
言わんとすることは分かるけどね、
初心者には何が良くて何が悪いかの基準は設けてあげんと。
「気合入れてコーディングしました!」
とかって奴やら結局作り直しで迷惑でしょ。

それやったら最初に
「こういう作り方をしたら結局作り直しで、お前のやってることはマイナス工程になっとる」
ってのを直接的にじゃないけど教えてあげた方がそいつのためになるし。

119 名前:デフォルトの名無しさん [2007/09/25(火) 02:21:00 ]
#include <stdio.h>
void main(void) {  /* mに、x,y,zの「中間の値」を入れる */
  int m,x,y,z;
  sscanf("%d%d%d",&x,&y,&z); /* これでx,y,zを取り込む */
  m = /* ここをうまく考えてね。x,y,z3つを参照するはず。 */
  sprintf("mid = %d\r\n",m);
}

120 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 02:24:10 ]
string.hはいらないの?

121 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:27:38 ]
>>114
4番は要らない。そんなことに警告も出せないコンパイラを使うな。



122 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:43:00 ]
>>120 だってあの中でstrxxxとかmemxxx使ってないじゃん。

123 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 09:54:30 ]
m = MIN(x, MAX(y,z));

124 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 11:01:14 ]
>>123
xが最小だとアウト

125 名前:デフォルトの名無しさん [2007/09/25(火) 13:43:02 ]
>>106
短いマッチだと英語の問題文を読んでいるうちに終わってしまうけど、
マラソンマッチだと問題文を読む時間に余裕があるので、
英語苦手な場合にも辞書を引きながらなんとか出来ると思う。

126 名前:123 mailto:sage [2007/09/25(火) 19:40:13 ]
できたっぽい
m = x > y ? y > z ? y : z > x ? x : z : y > z ? z > x ? z : x : y;

127 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:02:06 ]
((x - y) * (y - z) >= 0) ? y : (((z - x) * (x - y) >= 0) ? x : z)

128 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:08:03 ]
あなるほど

129 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 20:22:44 ]
m = (x > y) == (y > z) ? y : (z > x) == (x > y) ? x : z;

130 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 21:05:14 ]
>>121
コンパイラの警告レベルがデフォルトだと代入は捕まえない場合あるからなあ。
コンパイラ任せよりもプログラマの意識が高いことはいいことだよ。

131 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 21:48:20 ]
>>130
確かにいいことだ。でも上達するコツなのか?
4以外はわからないでもないんだが、これだけがなんか違う。



132 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:00:37 ]
なんか違う、じゃなあ。
漏れも定数左派。
コーディングテクニックの一つってことで、
知らないよりは上達してるんじゃね?
知らない奴は代入バグが存在することに気がつかないし。

133 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:03:49 ]
なんかこのスレ、初心者同士の情報交換って感じで和むよね。

134 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:07:54 ]
そら達人プログラマーに
上達するコツは必要ない

135 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:14:21 ]
コンパイラの警告レベルは理由が無い限り常に最大に。
これを守るだけで解消できることのために可読性を犠牲にしてもなぁ。

136 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 22:20:11 ]
でもVCにWallオプション付けたらすんごい事になるよ
一応ワーニングサプレッサヘッダ作ったけど、これまた凄い行数で…

137 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:09:54 ]
>>135
可読性が落ちる?
んなわけねー

138 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:26:03 ]
可読性なんて人それぞれ。上がる人もいれば下がる人もいる。

139 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:29:57 ]
等値比較で定数を左に置くのがナンセンスな理由

- 今どきのコンパイラは警告を出してくれる
- 比較する対象が両方変数だった時にはどうしようもない
- プログラムを読むときには、普通左辺にあるものを主語として読むけれども、
  数値が主語になるのはいかにも不自然
  (コードの意味を理解するまでにワンクッション入ってしまう)


140 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:36:31 ]
IDEだと色もつくんじゃない?


141 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:39:32 ]
2行目で破綻してるんだが。定数って書いてあんじゃん。
3行目も、初心者だからだろ。
定数左に慣れるのは2、3日もあれば十分。クッションなんかいらんし。



142 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:43:12 ]
右利きと左利きどっちがいい?っていう質問で、
両利きが一番いい、って答えと一緒だな。
左定数が分かる奴は右だろうが左だろうが関係ないし。
可読性どうこう言ってる奴は、メリットを理解できないだけ。
コーディングテクニックを身につけることを何故拒絶するのか意味分からん。

143 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:44:43 ]
2,3日もかかるのかよ
俺は書かんけど一目見たら慣れたよ

144 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:46:13 ]
だろ。すぐわかるよな。

145 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:46:29 ]
警告放置するなよ
そっちのほうがよっぽど重要だ

146 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:48:34 ]
>>141
2番目に関して。
変数同士の比較をすることも結構多いんだから、
片方定数の場合だけアドホックに回避するんじゃなくて、
変数同士の場合でも大丈夫な対処法を取る方が賢いよね。
そしてそれはコンパイラの警告スイッチを入れるだけで十分な訳で。

147 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:50:34 ]
C#だから定数を左に書く必要がありません><
C++だと左に書いてもいいかな、昔のVCは警告出なくて困ったような

148 名前:146 mailto:sage [2007/09/25(火) 23:53:43 ]
失礼。「2番目」と書いてあるのは、
>>141 で「2行目で破綻してるんだが……」と
書いてあることについてのレスという意味ね。

149 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:55:06 ]
>>146
確かにその通りね。
ただ、それは警告してくれるコンパイラを使ってることが前提になるでしょ。
現場によっては優秀とは言えない処理系になる場合もある。

変数同士のは注意する。定数の場合は左に書く。
こういうコーディングテクニックを身につけておけば、
少なくとも定数に限って言えば、代入バグは回避できるでしょ。

150 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 23:59:54 ]
lintでチェックしようぜ


151 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:02:28 ]
長い事やってて代入バグなんて一度もないが。
どんだけ見難いソースなんだよ



152 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:03:59 ]
実をいうと俺もない。
他人のも見たことない。
けど議論には参加するw

153 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:05:01 ]
一度もないのはすごいな。
漏れは極まれにある。

あれ、常に同じ動作だな -> if(a = 1) { /* hogehoge*/} else { /*fuga*/}
みたいな・・・

154 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:07:42 ]
俺は数年前に1回だがやっちまった事がある
プログラミング歴8年
他人のは見たことが無い

155 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:08:32 ]
VB転向組がやらかしたのを見たことがある。

156 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:20:09 ]
俺はタイプ遅いからかなw
ひょっとして = をやってしまいがち人は & | もやってしまう?


157 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 00:22:49 ]
ビット演算で&&や||ならやったことある

158 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 01:01:02 ]
俺はやった事は無いが、俺が居ない時に代わりに仕事をやってくれる小人さんはしょっちゅうやってる。

159 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 02:10:41 ]
#define == eq

160 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 03:37:19 ]
>>145
STL使ってて「名前が長すぎるんで255文字にカットしましたよん」って警告はどうすれば?
ライブラリのほうではプリプロセッサで回避してるけど、少し長いSTL使うたびにこれではやってらんない。

テンプレートクラス一回派生して使うとかそういうことしないと駄目?
関数引数以外でテンプレート引数使う関数同士を識別出来ないVC6でテンプレート使うなって言われたらそれまでだけどさ…。

161 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 07:33:59 ]
>>160
そういう対処しようのない警告は無視するよう指定しておく。



162 名前:119 mailto:sage [2007/09/26(水) 08:36:56 ]
大勢乗ってくれてありがと。いろんなアイデアに出会えて良かったですね。ちなみに私のは
m = x+y+z - max(x,y,z) -min(x,y,z) 私が駆け出しの頃に達人にやられた噺、当時はFortran。

163 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 08:55:22 ]
本物の達人はオーバーフローを気にしない

164 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 09:01:07 ]
うーC++にも可変引数のmax,minが欲しいぜ
でもboost使えば引数nのmax,minは引数n-1のを使って楽に作れそうだから
もう誰かが作ってるだろうなぁ…

165 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 10:05:48 ]
>>57
DHCに相談汁

166 名前:デフォルトの名無しさん [2007/09/26(水) 16:11:41 ]
やる気だろ

167 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:14:49 ]
マジレスすると、運動。

運動して、気分を明るくするというか、眠気を覚まして、体とか精神をリフレッシュさせると
プログラミングもはかどるし、それに集中できる。

168 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:21:18 ]
昼は土木作業員
夜は趣味プログラマ
というのがいいんですね?

169 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:21:48 ]
夜って言っても、深夜は駄目だけどね。
午後10時ぐらいまでは、趣味でプログラミングするのはいい。


170 名前:デフォルトの名無しさん [2007/09/26(水) 16:45:47 ]
規則正しい生活を送ってないと、何をするにも集中できないよ。

171 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:14:22 ]
4:00〜8:30 仕事 9:00〜12:00 体育館でジム 13:00〜17:00 仕事 18:30〜19:00頃 就寝
ってパターンでやってます。ヘルシーでいいよ。



172 名前:デフォルトの名無しさん [2007/09/26(水) 17:34:16 ]
TopCoder
pc11.2ch.net/test/read.cgi/tech/1177344510/
に参加。

173 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:34:36 ]
>>171
どんな仕事してるの?

174 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:41:02 ]
英語を勉強。

175 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:47:47 ]
プログラマーライフを楽しみたければ生業にしてはいけないということだな

176 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 17:50:12 ]
まずは、
#include <stdio.h>
int main(void)
{
int i,j;

for (i=1; i<=9; i++) {
for (j=1; j<=9; j++)
printf("%3d",i*j);
putchar('\n');
}
return (0);
}
の理解を目指せ。

177 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:06:07 ]
参考にしてはいけないコード

178 名前:デフォルトの名無しさん [2007/09/26(水) 20:19:51 ]
目標がない

179 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:21:52 ]
今の環境で欲しいものとかあるでしょ
それを作るのを目標にすればいいじゃない

180 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 20:22:22 ]
環境でって?

181 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 21:14:40 ]
今の環境で欲しいものといえばおにゃのこです。




182 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:43:44 ]
>>181
親に頼め。

183 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 23:24:46 ]
>>161
ども。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<57KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef