語り合おう。
U―20プログラミングコンテストを目標とする。
教科書通りに勉強していると飽きる。
好きなソフトを作ることを目標とする。
しかし、作り方がわからない。
教科書を買い勉強する。
しかし、つまらない。
結局、何もできない。
楽しむことだ。
6 :
デフォルトの名無しさん:2007/09/23(日) 22:56:34
IPAなんとかプログラミングを目指す
目標を持てばできる。
外国語を学ぶのと一緒
ひたすら読んで、ひたすら書く
ショートカットなんて存在しない
9 :
デフォルトの名無しさん:2007/09/23(日) 22:58:36
自宅でやるより、学校行った方がいいのか?
10 :
デフォルトの名無しさん:2007/09/23(日) 22:58:47
>>4 正確に言うと四つ目は「つまらない」じゃなくて「分からない」だ
ひたすら読む。飽きる。続かない。
分からないじゃなくて、つまらない。
賞を狙え。
メモ帳でも作ればいいよ。
HSPからはじめれば?
分かるだけいいだろ・・・俺はわからないだ・・・
お前ら、アホか。
まじめに勉強せずに、プログラミングできるわけないだろ。
楽しまないと上達しないよ。
教科書どおりなんてつまらん。
Cを3年はしろ。
英語は必要なのか? あと、数学もいるの?
数学的な発想は必要。
まあ、簡単な数学の知識も必要。
英語は、関数を覚えるときに助かる。分かっていると。
プログラム自体にはあまり必要ないけどもらった仕様書が英語だと最悪。今はほとんどないけど
作りたいソフトだけ、考えてもしょうがない。
作りたいソフト+それを作る知識がいる。
だから、目的と言語が必要。
課題を出してもらいながら勉強する。
一日何時間勉強すればいい?
友達を作って、競い合うようにしながら、覚えたらいいよ。
友達と競うほうが、覚えやすい。
毎日することが大切。
あと、プログラミング的な発想も必要。
日常生活でね。
31 :
デフォルトの名無しさん:2007/09/23(日) 23:07:32
少しでもできたら、ネットに公開したらいいよ
32 :
デフォルトの名無しさん:2007/09/23(日) 23:08:35
教科書で勉強するにしても、少し改造しながらしろ。
よく理解しながらしろ。
33 :
デフォルトの名無しさん:2007/09/23(日) 23:10:00
HTML,CSSからはじめたらいいよ。
プログラム言語じゃないけど、簡単だから。
それから、Cをするのがいいよ。その次はJava。
11月いっぱいまでにC言語で何か作らないといけない。プログラミング初心者で3日で初級本を読み上げた。
でも、ポインタとか構造体とか複雑になってくると分からない・・・
読んだだけ?
パソコンにソースを打ち込みながらやりながら読むのは良くないよ。
なぜかというと、頭で考えないようになるから。
パソコンなしで、本を読んで、頭で、流れとかを考えるほうが、
身に付く。
テレビを見ない、ゲームをしないなどして、時間を作り、
その中で集中して勉強すれば身に付くよ。
毎日しろとは言わない。土日くらいは休んでもいい。その代わり平日を受験生なみのペースですればいい。
分からないことがあったら誰かに聞くなりしないとな。
仕事で毎日5時間以上プログラミングしてたら確実に上達するよ
ということでハロワ逝け
ハロワに逝けないお子様はそんなことをするよりも
もっと勉強しろ。
勉強が面白く思えない奴にはプログラミングも面白くないだろうよ
勉強するってのは本を読むことじゃないぞ?自分で考えることだからな
毎日5時間もやってたら、太るし、禿げるし、目が悪くなる。
健康に悪いよ。
43 :
デフォルトの名無しさん:2007/09/23(日) 23:40:25
教科書を読みながら、打ち込むのか。
一冊読んでから、打ち込むのか。
どっちがいい?
>>42 なんていうか・・・本に書いてあるプログラムを書いて勉強したつもりになるんじゃなくて自分で考えるというか・・・
教科書見ながら打ち込んでたら、時間かかるだろ。
一冊読んでからやったほうがいいぞ。
数学の勉強?
本読まずに、プログラミングできるわけない。
邪念を振り払って勉強しろ。
本を読み込め。
仕様書だろ。
52 :
デフォルトの名無しさん:2007/09/23(日) 23:46:30
我慢強く頑張れ。
C言語の勉強を続けるためには何が必要?
55 :
デフォルトの名無しさん:2007/09/23(日) 23:47:47
英語できないと、何もできないよ。
集中力が続かん。困った。皆さんは、どうしていますか?
何か分からないことがあって他の本を見ても今一理解できないときどうしますか?
勉強できない奴はだいたいプログラミングもできないね。
頭のよさってのもあるかもしれんが、問題はそこじゃない。
勉強できない奴は、勉強する根性が無いんだよ。
読解能力が必要なのでは?
根性っていうか適性はあるかもしれない
勉強にしろ、運動にしろある程度の基礎がないと楽しめない
勉強や運動が楽しくない奴はその段階まで行っていないんだろう
すぐに自分の中で面白い、つまらないと結論をつけて
○○は俺には向いていないと逃げ出す
そんな人間にはプログラムどころか何も上達などできないだろう
63 :
デフォルトの名無しさん:2007/09/24(月) 00:18:40
読解力というかプログラムの流れを理解することかな
なに作ってるのかわかってないのは、表現力がないコード書くからすぐバレる。
65 :
デフォルトの名無しさん:2007/09/24(月) 00:35:58
例えば Hello, World! を Hello, Work! に変えてみるとか
自分なりに考えて楽しまないと読んだだけ、打ち込んだだけになる
66 :
デフォルトの名無しさん:2007/09/24(月) 00:38:06
>>56 それだから、プログラミングの勉強が英語の勉強にもなった俺。
目的があって、そのための課題を細かく設定してこなすことかな
ex)
ゲームが作りたい
表示するだけ→動かす→壁までしか動かさない→...
とりあえず何か作る。
それ以外にない。
Linuxを使い始めると良いよ。Ubuntuでも入れてみな。
行数、見易さ、変更のしやすさ、処理性能に気をつける。
そのためにアルゴリズムの本も読む。
例えば、3変数x,y,zの最小値を見つける例。
ただし、わざとmin関数は使わない、という条件付。
実装1:素朴な方法
f(x,y,z)
if(x<=y)and(x<=z)then
return x
elsif(y<=x)and(y<=z)then
return y
else
return z
end
実装2:再帰を使う
f(x,y,z)
if(x<=y)and(x<=z)then
return x
else
retrun f(y,z,x) <---ここがポイント
end
実装3:if分岐先が比較結果フラグ値で決まっていることを利用
f(x,y,z)
retrun (x<=y)*(x<=z)*x + (y<=x)*(y<=z)*y + (z<=x)*(z<=y)*z
(ただし、真=1、偽=0の場合)
楽しいことはするが楽しくないことはしない。俺はそんなの奴でプログラミングはやろうと思ったけど
面白くなくて途中で挫折した。でもその後、どうしてもやらないといけないことになって苦労したよ。
おかげで痩せた。これから始める人は俺みたいにはなるなよ
int a,b,c,min;
min=a;
if(b<min) min=b;
if(c<min) min=c;
return0;
>>75 main(){
int a,b,c,min;
min=a;
if(b<min) min=b;
if(c<min) min=c;
printf("%d\n",min);
return0;
}
言いたいことは分かるが
>>72でやろうぜ!
まずは「動く喜び」を知ること。これが無いとプログラムなんてただの苦行。
VBでもHSPでも何でも良いので一度見えるものを作っていじくって遊ぶべし。
素人の他人に見せびらかして同時に自尊心も養うとモアベター。
80 :
デフォルトの名無しさん:2007/09/24(月) 08:51:59
ディバッグが楽しいと思えないと、プログラムの上達は難しいね。
本一冊読んでから、プログラミングを始めるか、
本を見ながら、プログラミングを始めるか、どっちがいい?
82 :
デフォルトの名無しさん:2007/09/24(月) 10:47:55
本を読みながら、それをノートにまとめて、
本を一冊読み終わって、ノートにまとめ終わったら、
ノートを読み。ノートを読んだら、プログラミングを始める。
自分で作りたい物をガンガン作る
初めから大風呂敷広げないで、しょぼい物でいい
自分は最初の頃、時計作ったり
ブロック崩しやインベーダー風のシューティング作ったもんだよ
Cで作れるプログラムを教えて。
やる気を出すために、挑戦しようと思って。
86 :
デフォルトの名無しさん:2007/09/24(月) 10:56:23
VBだったら笑う。
>>85 言語なんて関係ない
好きな物を選びたまえ
>>88 俺がプログラミングやりだしたのは13年前だ
一日8時間以上のプログラミングは脳の機能を損なう恐れがあります。
プログラミングのし過ぎに気をつけましょう。
トランプゲームか。いきなりは無理だろうがこれができればある程度は上達するな
シャッフルができませんという質問がでるに違いない
初めて自分で考えて作ったプログラムは何かって考えてみると、本当に簡単なものしか作れなかったな。
とりあえず本読んで、作れそうだと思ったものを作ってみるのがいいんじゃないか?
頭の中で構想して「コイツはスゲェ!コイツはスゲェ!作り甲斐がありs・・・コイツはスゲェ!」って思ってても、
100行にも満たない、コーディング時間計数十分、手ごたえが無くて何かテンションが下がってしまう事はある。
>>97 仕事でやると、長さや規模は出来とは関係ないことが分かるようになるよw
ゲーム作りたいっていう目的は、そこまでの過程が長いなあ。
俺の場合、大きな目標が無く、CUIのテキスト処理プログラム→GUIのラッパをつけて・・・
って、主に利便性を求めて徐々に進んできた。
もちろん、ある期間は「MFCもマスターする!」とかって努力した面もあるけど。
あと、IDEだとドーンと立ち上げて、「今からやります」って気合がいるし、
変なプログラム書いたり消したりしているうちに環境が汚れるような気がして、
あんまし冒険できない気がした(今はまた使っているけど)。
71も書いているけど、Linux使うのは良いと思う。
おれはLinux常用するようになってから確実にプログラミングする機会が増えた。
IDEみたいな気合いがいらないのよね。
それと他人の作ったライブラリを使えるようになると、けっこうあれこれできて楽しくなるよね。
100 :
デフォルトの名無しさん:2007/09/24(月) 18:15:14
初心者の段階で一度はGUIを作るべきだ
GUIを作るまではその辺のアプリとかがめちゃくちゃ遠い存在に思えてしまうが
一回作ったら何だただこれだけやってるだけなのかじゃあ自分にも作れると思える
この意識の違いが大きい
HSPで一瞬
102 :
デフォルトの名無しさん:2007/09/24(月) 19:07:13
で逝けます。
103 :
デフォルトの名無しさん:2007/09/24(月) 19:07:48
最近、TopCoderのマラソンマッチに参加し始めた。
成績はさっぱりだが、
問題を読み解いたり、
性能の比較のためにテスト方法を考えたり、
いろいろ楽しい。
TopCoderのマラソンマッチ?
105 :
デフォルトの名無しさん:2007/09/24(月) 19:44:20
Oracleって高いですよね
本読んでるだけじゃ勉強にならん?
>>103 TopCoderはまず英語という難関を乗り越えるのがちょっときついんだよなあ。
あそこのは難関って言うほど難しくないぞ?
中学生レベルの英語で十分
108 :
デフォルトの名無しさん:2007/09/24(月) 20:18:10
2ちゃんねるにコードを貼るときに
インデントを入れないような感性の持ち主は
上達しないと思う。
うpロダに載せることよりも
ソースからインデント無くしていく方が面倒じゃね?
全角スペースでインデント
インデント整形するコードぐらい書けるだろ
mixiで整形するブックマークレットなら書いたな。
普通のブラウザで2chに書き込みするときにはブックマークレットのほうが楽だと思う。replaceを重ねるだけで済む。
問題は専用ブラウザだとブックマークレット使えないってあたりかな。
ある程度の言語はツールでいいが
Python辺りでやられると非常に困るw
上達するコツ。オレ流。
1.関数はできるだけ短く。100行とかになると嫌になってくる。
2.書き方に一貫性を持つ。
関数名は動詞が先、とか。getTestData()とか。
似たような変数名を作らないとか。strPrg、sPrg、strProg、sProgramとかは統一しろと。
3.業務的な条件文には必ずコメント。nullチェックとか分かりきってる場合は不要。
4.条件文は定数を左に書く。C/Javaで使える手法。
if( true != bHogeFlg)。これだけで代入バグは消えるし。
意味わかんない人は、if(true = bHogeFlg)と書けば分かる。
5.動けばいいというソースはアホが書く。できる奴は保守できるソースを書く、という信念を持つ。
それぞれ書き方はあるだろうけど、
各人のこだわりについての良し悪しよりも、
同一人物が書いてるソースなのに、
あっちこっちで統一感が無いのが一番ダメ。
最初は動けばいいものを作ればいい。最初から難しく考えようとうするから嫌になってくるんだ
趣味ならそれでもかまわんけど、同じチームにそういう奴がいたら改善させる。
初心者でもそれは一緒。
いきなりそれは初心者にはきつくないか?まぁ仕事上仕方ないことだけどきついというか・・・
そこは先輩がフォローしてそっから改善させていけばいい。きついだけが仕事じゃないんだ
言わんとすることは分かるけどね、
初心者には何が良くて何が悪いかの基準は設けてあげんと。
「気合入れてコーディングしました!」
とかって奴やら結局作り直しで迷惑でしょ。
それやったら最初に
「こういう作り方をしたら結局作り直しで、お前のやってることはマイナス工程になっとる」
ってのを直接的にじゃないけど教えてあげた方がそいつのためになるし。
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);
}
string.hはいらないの?
>>114 4番は要らない。そんなことに警告も出せないコンパイラを使うな。
>>120 だってあの中でstrxxxとかmemxxx使ってないじゃん。
m = MIN(x, MAX(y,z));
125 :
デフォルトの名無しさん:2007/09/25(火) 13:43:02
>>106 短いマッチだと英語の問題文を読んでいるうちに終わってしまうけど、
マラソンマッチだと問題文を読む時間に余裕があるので、
英語苦手な場合にも辞書を引きながらなんとか出来ると思う。
126 :
123:2007/09/25(火) 19:40:13
できたっぽい
m = x > y ? y > z ? y : z > x ? x : z : y > z ? z > x ? z : x : y;
((x - y) * (y - z) >= 0) ? y : (((z - x) * (x - y) >= 0) ? x : z)
あなるほど
m = (x > y) == (y > z) ? y : (z > x) == (x > y) ? x : z;
>>121 コンパイラの警告レベルがデフォルトだと代入は捕まえない場合あるからなあ。
コンパイラ任せよりもプログラマの意識が高いことはいいことだよ。
>>130 確かにいいことだ。でも上達するコツなのか?
4以外はわからないでもないんだが、これだけがなんか違う。
なんか違う、じゃなあ。
漏れも定数左派。
コーディングテクニックの一つってことで、
知らないよりは上達してるんじゃね?
知らない奴は代入バグが存在することに気がつかないし。
なんかこのスレ、初心者同士の情報交換って感じで和むよね。
そら達人プログラマーに
上達するコツは必要ない
コンパイラの警告レベルは理由が無い限り常に最大に。
これを守るだけで解消できることのために可読性を犠牲にしてもなぁ。
でもVCにWallオプション付けたらすんごい事になるよ
一応ワーニングサプレッサヘッダ作ったけど、これまた凄い行数で…
可読性なんて人それぞれ。上がる人もいれば下がる人もいる。
等値比較で定数を左に置くのがナンセンスな理由
- 今どきのコンパイラは警告を出してくれる
- 比較する対象が両方変数だった時にはどうしようもない
- プログラムを読むときには、普通左辺にあるものを主語として読むけれども、
数値が主語になるのはいかにも不自然
(コードの意味を理解するまでにワンクッション入ってしまう)
IDEだと色もつくんじゃない?
2行目で破綻してるんだが。定数って書いてあんじゃん。
3行目も、初心者だからだろ。
定数左に慣れるのは2、3日もあれば十分。クッションなんかいらんし。
右利きと左利きどっちがいい?っていう質問で、
両利きが一番いい、って答えと一緒だな。
左定数が分かる奴は右だろうが左だろうが関係ないし。
可読性どうこう言ってる奴は、メリットを理解できないだけ。
コーディングテクニックを身につけることを何故拒絶するのか意味分からん。
2,3日もかかるのかよ
俺は書かんけど一目見たら慣れたよ
だろ。すぐわかるよな。
警告放置するなよ
そっちのほうがよっぽど重要だ
>>141 2番目に関して。
変数同士の比較をすることも結構多いんだから、
片方定数の場合だけアドホックに回避するんじゃなくて、
変数同士の場合でも大丈夫な対処法を取る方が賢いよね。
そしてそれはコンパイラの警告スイッチを入れるだけで十分な訳で。
C#だから定数を左に書く必要がありません><
C++だと左に書いてもいいかな、昔のVCは警告出なくて困ったような
148 :
146:2007/09/25(火) 23:53:43
失礼。「2番目」と書いてあるのは、
>>141 で「2行目で破綻してるんだが……」と
書いてあることについてのレスという意味ね。
>>146 確かにその通りね。
ただ、それは警告してくれるコンパイラを使ってることが前提になるでしょ。
現場によっては優秀とは言えない処理系になる場合もある。
変数同士のは注意する。定数の場合は左に書く。
こういうコーディングテクニックを身につけておけば、
少なくとも定数に限って言えば、代入バグは回避できるでしょ。
lintでチェックしようぜ
長い事やってて代入バグなんて一度もないが。
どんだけ見難いソースなんだよ
実をいうと俺もない。
他人のも見たことない。
けど議論には参加するw
一度もないのはすごいな。
漏れは極まれにある。
あれ、常に同じ動作だな -> if(a = 1) { /* hogehoge*/} else { /*fuga*/}
みたいな・・・
俺は数年前に1回だがやっちまった事がある
プログラミング歴8年
他人のは見たことが無い
VB転向組がやらかしたのを見たことがある。
俺はタイプ遅いからかなw
ひょっとして = をやってしまいがち人は & | もやってしまう?
ビット演算で&&や||ならやったことある
俺はやった事は無いが、俺が居ない時に代わりに仕事をやってくれる小人さんはしょっちゅうやってる。
#define == eq
>>145 STL使ってて「名前が長すぎるんで255文字にカットしましたよん」って警告はどうすれば?
ライブラリのほうではプリプロセッサで回避してるけど、少し長いSTL使うたびにこれではやってらんない。
テンプレートクラス一回派生して使うとかそういうことしないと駄目?
関数引数以外でテンプレート引数使う関数同士を識別出来ないVC6でテンプレート使うなって言われたらそれまでだけどさ…。
>>160 そういう対処しようのない警告は無視するよう指定しておく。
162 :
119:2007/09/26(水) 08:36:56
大勢乗ってくれてありがと。いろんなアイデアに出会えて良かったですね。ちなみに私のは
m = x+y+z - max(x,y,z) -min(x,y,z) 私が駆け出しの頃に達人にやられた噺、当時はFortran。
本物の達人はオーバーフローを気にしない
うーC++にも可変引数のmax,minが欲しいぜ
でもboost使えば引数nのmax,minは引数n-1のを使って楽に作れそうだから
もう誰かが作ってるだろうなぁ…
166 :
デフォルトの名無しさん:2007/09/26(水) 16:11:41
やる気だろ
マジレスすると、運動。
運動して、気分を明るくするというか、眠気を覚まして、体とか精神をリフレッシュさせると
プログラミングもはかどるし、それに集中できる。
昼は土木作業員
夜は趣味プログラマ
というのがいいんですね?
夜って言っても、深夜は駄目だけどね。
午後10時ぐらいまでは、趣味でプログラミングするのはいい。
170 :
デフォルトの名無しさん:2007/09/26(水) 16:45:47
規則正しい生活を送ってないと、何をするにも集中できないよ。
4:00〜8:30 仕事 9:00〜12:00 体育館でジム 13:00〜17:00 仕事 18:30〜19:00頃 就寝
ってパターンでやってます。ヘルシーでいいよ。
172 :
デフォルトの名無しさん:2007/09/26(水) 17:34:16
英語を勉強。
プログラマーライフを楽しみたければ生業にしてはいけないということだな
まずは、
#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);
}
の理解を目指せ。
参考にしてはいけないコード
178 :
デフォルトの名無しさん:2007/09/26(水) 20:19:51
目標がない
今の環境で欲しいものとかあるでしょ
それを作るのを目標にすればいいじゃない
環境でって?
今の環境で欲しいものといえばおにゃのこです。
そろそろ終了しそうな雰囲気
185 :
171:2007/09/27(木) 03:24:10
>>173 フリーで、主に自宅で書いてます。小さいチップのクミコ。
客先の人達、私が朝型だと知ってるので、夕方のメールは翌朝返事がデフォになってます。
186 :
デフォルトの名無しさん:2007/09/27(木) 15:07:09
好きこそ物の上手なれだ
187 :
デフォルトの名無しさん:2007/09/27(木) 16:26:27
俺の生き方みたいに、スマートにコーディングしてると上達が早い。
189 :
デフォルトの名無しさん:2007/09/27(木) 18:20:28
>>168 体も動かせて運動不足どころか鍛えれて良いと思う。
ただ土木作業員にプログラミングなどする奴がいるかどうかは不明だが。
190 :
デフォルトの名無しさん:2007/09/27(木) 18:50:23
マッチョなプログラマーを目指せば、自然とプログラミングも上達するよ
それなんてノムソウ社員?
192 :
デフォルトの名無しさん:2007/09/27(木) 18:54:28
筋肉留学ならぬ、プログラミング留学すれば、技術も付くと思う。
違う環境で頑張るのもいいと思う。気分一新頑張れると思う。
専門学校に行くのはどうよ。
194 :
デフォルトの名無しさん:2007/09/27(木) 18:56:08
目標リストC言語の場合
初の初級:
初級:九九
中の初級:
中級:
上の初級:
上級:
初の中級:cal
目標リストC言語の場合
下の下:Hello,World
下の中:九九
下の上:
中の下:
中の中:
中の上:
上の下:
上の中:
上の上
198 :
デフォルトの名無しさん:2007/09/27(木) 22:39:24
目標リストC言語の場合
下の下:Hello,World
下の中:九九
下の上:受験勉強
中の下:東大入学
中の中:東大卒業
中の上:東大助手
上の下:ソフトウェア作成
上の中:逮捕
上の上:勝訴
他人まかせ
->
を使ったプログラムを作れ
49氏ですか?wwww
printf("->");
>>201 「アロー演算子」の積もりならそう書かないと
不明と言っただけだろう
へぇ居るんだね で終わり
肉体労働して金が貰えるんだから嬉しいじゃないか。
俺なんか金払って肉体労働してるんだぞ。
typedef void (*const t_cmdsub)(char*);
typedef struct { // 識別コマンド+処理関数型
char cmd[12]; // コマンド名
t_cmdsub funca; // 関数アドレス
} t_cmdfunct;
static const t_cmdfunct cmdtbl[] = { // 識別コマンド+処理関数tbl
{ "VER?" , cmdver }, // Version?
{ "$GPGGA" , cmdgga }, // GPS NMEAセンテンス
{ "$GPRMC" , cmdrmc }, // GPS NMEAセンテンス
・・・
こんな感じにmax-n文字のコマンド名とそれの処理ルーチンの関数ポインタテーブルを定義
209 :
つづき:2007/09/29(土) 03:02:09
void etcfunc(char *p) { sendout("?\r\n"); } // 再入力のプロンプトルーチン
static void *cmdmatch(char* cmd) { // コマンド名識別ルーチン
// in : *cmd コマンド名のあるバッファのアドレス、
// return : 認識したコマンド処理ルーチンのアドレス、
register t_cmdfunct *p = cmdtbl;
do {
if( memcmp(cmd,p->cmd,strlen(p->cmd))==0 )
return (void*)(p->funca); // n番目のコマンドを識別
} while( (++p)!=(cmdtbl+(sizeof cmdtbl/sizeof cmdtbl[0])) );
return (void*)etcfunc; // 不一致時、空func
}
210 :
つづき:2007/09/29(土) 03:09:23
構造体[n].メンバ という参照をするたびに、「添え字から[n]番目のメンバへのアドレス計算」
が実行されるが、ポインタp+オフセットというアドレッシングはたいていの石で速い。
なのでループ中でアドレス計算が何度も実行されないというのが利点1。
cmdfunct[n].cmd という参照が、p->cmd で、短く書けて楽、なのが利点2。
テーブルの並べ方は、コマンドABCDとABC があるような時はABCDのほうを前に置くこと。
珈琲はブラックでないとだめみたいだね。
>ポインタp+オフセットというアドレッシングはたいていの石で速い。
最近はそうとも限らない。
とくに構造体のサイズが2のべき乗の場合は。
元が
>>201なんだから、そんなとこにつっこまんでも・・・ 201はこれでも食いきれないだろうし。
214 :
デフォルトの名無しさん:2007/10/08(月) 12:25:24
プログラミング的な発想
とは?
物事が予測可能だと思うこと、かな。
ラプラス気取りか
経験した物事しか予想できない、だな
プログラマ的発想なら分かる。
「手でやれば1分で片付く作業を、10分かけてスクリプトにやらせる」
でも、ある入力をどう加工すれば目的の出力になるかということを考えるのは、いいトレーニングになると思う。
219 :
デフォルトの名無しさん:2007/10/09(火) 19:27:08
ここに書いてる人ってみんなプログラマーなんですか?
このスレの3割ぐらいはプログラマじゃない俺のコメントです。
ごめんね。
うちにきて妹をデバッグしてもよいぞ
ゲーム好きなら、GUIでゲーム作ってるだけで楽しい
まぁ簡単なSTGくらいしか作れないけど
224 :
デフォルトの名無しさん:2007/10/10(水) 04:09:48
達人〜初級者から見て
プログラム超初心者が参考になるようなまたは参考になったサイト教えてください
とりあえず入門書をダラダラ1冊読破。
作りたいもの作りながら必要な技術をググる。
何か一つ、これで学べば大丈夫って便利な物は無いと思うべき。
入門書が何段階かに分けてある場合は、ある程度前巻が理解できた段階で次を読む。
物によっては中級編の内容が初級編に足りない項目足してあるだけの場合もあるから初級を飛ばせる場合もある。
出来るまでやる。
わかるまで調べる。
227 :
デフォルトの名無しさん:2007/10/10(水) 11:46:46
昔はベーマガのリストを手入力
俺は保存出来なかったから
遊ぶ度に全入力してたから自然と身についた
いまはDVDやらで配布され入力の手間を惜しんでる
とにかく 一から全部作れ なんでもいい
コピペなんかすな
初心者のうちからemacs用の補完入力リストとかスニペット作ってちゃだめってことですね…
自分で入力しようとするだけマシ
習うより慣れろってころれすか
一般的な語学学習に於いては
1)文法
2)単語
3)慣用句
4)その言語を話す国(地域)の文化・習慣
等と言ったものを学んでいきます。
文法だけ知っていても、単語だけを知っていてもカタコトしか話せませんし、
慣用句を知らなければ自然な言葉になりません。
また文化を知らない場合も同様にコミュニケーションに齟齬を来たします。
プログラミング言語にもこれと同じことが当てはまります。
他人のコードを沢山見て、読んで、書いてみろって事でしょう。
233 :
デフォルトの名無しさん:2007/10/11(木) 23:26:46
>>232 昔のUNIXはソースコードが全部付いていたから、勉強になった。
lsとかのコマンドのソースを見れたからね。
234 :
デフォルトの名無しさん:2007/10/11(木) 23:51:43
むしろ今の方が見放題。
しかし、慣れないとどこに何があるか判らないもろはの剣。
それに慣れようとする行為に意味があるんだろうがよ
ソースを読むのとは全然別の学習だがな。
ああすまん。どこでどのファイルが入手できるのかわからんていう話ね。
まあ、必要な情報をどっからともなく引っ張ってくるのも技術のうちだよね。
ていうか一番重要な技術かもしれんね。
コピペばっかでプログラム書いてる香具師は自分の頭使ってないから
新しい仕事で自前でソースを書き起こすしかないときに対処出来ない
243 :
デフォルトの名無しさん:2007/10/12(金) 11:11:29
いつもIDEで窓にボタン貼り付けてメッセージ出して満足してプログラミング終了してしまう
俺にアドバイスをください
満足するならそれで十分なんじゃね?
Windowアプリ書いてるけど出力にはコンソール開いてる
>>241 引っ張ってきて、それを「理解して使える」ことかも。
後は目的にあわせて何が必要なのか考える頭があれば問題無い。
>>242 まぁ、この場合は「学習するために他人のソースを読む場合」だから、コピペとはまた別かと。
>>245 ウィンドウに出すのは大概メドイから悪くは無いんじゃね?
コンソールのごとくウィンドウ上のエディットコントロールを操作する関数でも書いてやるとかすると、そのうちGUIも便利に感じてくる。
とりあえずの対処でプログラム書く人間が案外多いことに突っ込む人はいないのか。
UWSCで書かれたあるゲームのマクロをVB.net2005に移行
(この時初めて勉強)する事からチャレンジしたら割と
すんなり入って行けた。
少しコツを掴んだらあとは世界が広がって楽しくなった。
と言うことでこの辺のきっかけは凄く個人差があると思う。
最初にC#選んでおけばよかったとちょっとだけ後悔したけど
それはそれで挫折したかもしれん。
好きこそ物の上手なれというけど、興味なり沸かなければ
そういった仕事に就くとかしない限り到底無理だと思う。
emacsとかunixのコマンドラインツールとか
便利なツールの使い方を知りながら進めていけば早く学習できると思ったが
別にそんな事はなかったぜ!
# emacsのカスタマイズに嵌ってしまって言語の勉強の方はなかなか進まない
あまりカスタマイズに凝ると他人の環境で仕事できなくなってストレスたまるぞw
そういう時はカスタマイズした環境をUSBメモリに放り込めば割と幸せになれる。
欠点はカスタム環境を持ち込めなかったときのストレスがさらに増えること。
USBメモリ禁止なら、Webサイト作ってemacs.elをあげておくという方法がある。
いやあの、外部とのデータ交換禁止端末とか、フリーウェア禁止とか、そういう状況の事を言ったつもりなんだが。
俺の場合は他所行くとキーボードの配列が違ってていきなりイライラする。
初心者の「自分はこうして覚えた」は、アテにしないほうがいい。
>>254 自称上級者さんの覚え方を教えて下さい。
目標ではなく目的を持つこと
あ〜それは確かに大事だと思う。
違いを説明してくれ。よくわからん。
言葉遊び
言葉尻はどうでもよくて、こういうプログラムを
書けるようになりたいとかじゃなくて、明確に
こういうソフトなり機能を作りたいって事じゃないの。
ぜんぜんわかんねえ(;´Д`)
例えばそれぞれ英単語にしたらどう違うの?
くだらん。
モチベーション維持しろってことだろ
わかりやすく書くと
× 超スゲー検索エンジン作ってGoogle超えてやるぜ!
○ 連番エロ画像自動ダウンロードスクリプト作るぜ!
一日一つだけでも、成功するように勉強計画を立てるのが重要。
あと、その成功を記録するのも大事。
プログラムを書くことを目標にするんじゃなくて
書いたプログラムを使って何かをすることを目標にしようってことだよね。
プログラムを書くことを目的にするんじゃなくて
書いたプログラムを使って何かをすることを目的にしようってことだよね。
わからないのに無理して上達しようとしなくてもいいじゃん。
269 :
デフォルトの名無しさん:2007/10/23(火) 23:04:21
いまネット上のサンプルプログラム見ながらwin32api勉強してるけど
C/C++言語ある程度使いこなせてもあんま意味ないと感じてる
「この定数は何?」「こんなのwin32apiリファレンスに載ってねーぞ」
で、HELP見て、つたない英語力と翻訳ページつかって
SDKのヘルプを読解して、コメント付加して・・・
MFCはなんかよくわかんねーし
やっぱC#勉強すべきかな・・・
プログラムが上達したと言う定義は何?
実際にコーディングするより、ライブラリやAPIについて調べるのが多いってのは
どの言語も同じだと思うよ。プログラミング全体のうち、コーディングなんて3割あれば
かなり多い方で、調査、テスト、デバッグが行程のほとんどを埋めるのが普通。
とはいえ、それらをやりやすい言語や環境ってのはある。
272 :
デフォルトの名無しさん:2007/10/23(火) 23:34:36
>>269 JAVA→C言語→C#→C++の順番で勉強することを勧める
C→Java or C#の方がよくね?
言語仕様だけならCの方が簡単
オブジェクト指向を何処で入れるかだよな。
C言語はどっかでやっとくと理解が深まるから入れておきたいし。
仕事のプログラミングに夢はない。
楽しいプログラミングはおうちでやるものだね。
そりゃあ、夢は与えられるものじゃなくて
自分で描くものだからな。
C -> C++ -> アセンブラ
C -> C++ -> アセンブラ = (*((*C).C++)).アセンブラ
Dreamインターフェースは他者から与えられるものだが、
継承して実装書くのは自分で、インスタンス化するのも自分という動作環境なんだ。
つまんね
現実はつまらなさとの戦いでもある
面白き事もなき世を面白く
住みなすものは心なりけり
285 :
デフォルトの名無しさん:2007/10/31(水) 01:04:42
この仕事10年やってるけど
趣味でプログラム組んだことないわ
俺、就職のためにC/C++とか勉強してるけど
プログラミングを学べば学ぶほど、とてもじゃないが
趣味ではやってられんと思う日々つれづれ
いつかは楽しくなるんかいな
仕事でやったら一気に萎えるぞw
仕事で好きに書けないストレスを発散するために趣味でコード書く奴も多い。
289 :
デフォルトの名無しさん:2008/02/17(日) 01:12:10
>>30のプログラミング的な発想ってたとえば何ですか?
>>289 while(所持金>=料金){
風俗;
}
フラグがたったなんて、元はプログラムじゃねぇか
左定数の話題ですけど、
そもそもifの条件にイコールを使うのがいけてないんじゃないの。
それは話が飛躍しすぎだ。nullとの比較すら困難になるじゃないか。
イコール使わないとして、たとえばどんな?
292が言いたいのは代入の=のことで、比較の==のことではないと思う。
実際、それでコンパイラは警告出すから、左に定数を置く意味はないというのが現在の主流。
ん、
>>292が言いたいことがわかったかもしれん。
「==」というoperatorがいけないということでこれが、例えば「@」というoperatorなら「=」とのtypoなんかしないじゃん?ってことでは?
そうであるなら、変えてもいいと思うのは比較ではなく代入の演算子だとは思うが・・・
あんがい if()の括弧のなかで代入=を許すな、ってことかも。
if(foo=func()) とかいうの。
298 :
297:2008/02/17(日) 22:53:21
構文として許すなってことね、コーディングスタイルとかじゃなくて。
if (!(hoge - 100)) ;
と書けば良いのジャマイカ?
typoが怖いなら、もういっそのことマクロにして一か所にしとけばいいじゃまいか。
#define IS_EQUAL(x,y) ( ( x ) == ( y ) )
そこで#include <iso646.h>
(x eq y)
…と思ったらeqは無かった、スマン
#define eq ==
if((fp=fopen(...))==NULL)
if(NULL==(fp=fopen(...)))
どっちか忘れたけど入門書でこういう風に習った覚えが有る。
代入のときは一回余分に括ると警告出なかったりするんだよな。
APIのエラーチェックのときはたまに使うけど、気持ちのいいもんではない。
そもそも括弧がないと正常に動作しない。
よく見られる手法だし、慣れだとおもう。
1年前くらいから、その詰め込みやめたな。
今は
fp = fopen(...);
if(fp == NULL)
みたいに書いてる。
でも305より303のほうが最適化がかかりやすい。
そこまで気になる人は詰めればいいやん。
今のコンパイラの最適化は、
303で書いても、一旦305に変形した後に最適化するんだから、変わらんよ。
でも、俺は303で書くが。
ホームページを作るのは、勉強になるだろうか?
もちろんツールとかは使わないで。
LintにかけてVaildなHTMLを書くなら多少は意味がある。
多少は。
それで『多少』か…。
プログラム自体まだVBAとSQLがようやくわかってきた程度で、他のもなんかできんかな〜、って挑戦しようと思ってたんだが…。
ま、いっか(´・ω・`)。
プログラムなんてできてもあまり良いことないよ。
一般人との距離がさらに遠くなるし
俺もう既に一般人じゃないから…。
せめて色々言語知って使えれば、ちっとは金になるかなぁって。
…甘いな。
>>309 htmlを吐き出すコードを自分で書けばいいw
ナルホド!
ゲーム作りたい
↓
Cについて学ぶ
↓
Cだけじゃ無理。WIN32apiの基礎を学ぼう。そして学ぶ
↓
プログラミングにおける設計やdirectxその他諸々が必要(心が折れそうです!)←今ここ
行きたい場所はわかるのに目的地に近づけば近づくほど
自分の考えが浅慮で無謀である事に気付きゴールが程遠い事に気付いてしまった
もうここまで我慢して学習したのにやめるわけにはいかないし…dirextxなんて鬼だろうな・・・
オープンソースを覗くのが手っ取り早い気が。
入門書読んでなんとなく理解したら、後はすごいことやってるけど読みやすいプログラムを探して
ひたすら解読。ググルのコードサーチとか割とピンポイントでやりたい事が見つかる。
318 :
デフォルトの名無しさん:2008/09/15(月) 22:38:42
>>316 そんなあなたにDxLibraryをおすすめする
左手はキーボードじゃなくてペニス。豆な。
ソース嫁とはよく言われるけどさ、実際には何を読めばいいのかすらわからん。
自分の場合、プログラムを勉強して何をしたいのかが定まってないってのもあるけど。
プログラム覚える必要ないんじゃないの?
作りたいものがあるじゃん?
そしたらそれに必要なプログラムがなんとなく想像できるじゃん?
(例えば、フォルダの中身を再帰的に検索するプログラム、とかね。)
でね、そしたらそのソースをネットで探すわけ。大抵みつかるから。
で、その中身を見て、なんでこんな面倒臭いことやってるんだとか、
なるほど!こりゃすごい!とか思うのさ。
で、自分だったらこう書くってのをそれを見ながらかいちゃうわけ。
元々動くやつを見本に書くから簡単にできちゃうわけよ。
で、後々仕様の追加とかデバックとかしていくと、大抵元のソースに近づいていくの。
結局自分しか使わないプログラムなんかより、
何人もの人間がたたき上げたプログラムの方が良くできてるって結論にたどり着くわけさ。
で、その良くできてるって作り方をまねると。これは本では中々手に入らないんだよね。
323 :
デフォルトの名無しさん:2009/01/16(金) 20:26:55
age
324 :
デフォルトの名無しさん:2009/01/17(土) 12:36:44
>>316 DxLibを使い始めてあまりのお手軽さに鼻血出そうになった
ドキュメントも丁寧だし利用者も多いのでお勧め
325 :
ダニ麻呂:2009/01/17(土) 15:45:54
なんだか、人が書いてくれた構文をいろんなところから引っ張ってきて、名詞や変数変えたり
継ぎ接ぎしながら少しずつ作りたいプログラムができていく・・・なんか実力が付いてる感じが全くしないw
自分では書けないけど、書かれてることはなんとなくわかるみたいな・・・なんかくやしい
ある程度、規模が大き目のやつを作り始めると
設計の重要性がわかるな…
最初は慣れで早く作れるが…後半部分になると
頭の回転が遅くなって、打ち込みが遅くなる
やっぱり、そこそこ規模が大きい場合は設計もしっかりしないと
できないものなんだな