1: 仕様書無しさん 2011/08/03(水) 16:51:35.02
教えてください
引用元: プログラミングの能力上げるにはどうすればいいの?
http://kohada.2ch.net/test/read.cgi/prog/1312357895/
2: pure ◆vCtiwSWdZQ 2011/08/03(水) 18:53:10.75
俺も知りたい
教えてください
3: 仕様書無しさん 2011/08/03(水) 18:57:45.83
いっぱい読んでいっぱい書くことだね。
4: 仕様書無しさん 2011/08/03(水) 19:01:39.85
正論だな
他に術はない
5: 仕様書無しさん 2011/08/03(水) 19:42:58.22
能力上げる必要があるのかよく考えろ
職場によってはプログラミング能力があると30過ぎに肩叩かれるぞ
7: 仕様書無しさん 2011/08/03(水) 21:14:07.36
絵と同じでどれだけこなしたかが重要
分厚いアルゴリズムの本とかお勧め
真面目にやれば全てを網羅する頃には凡人の域は軽く越えられてる
8: 仕様書無しさん 2011/08/03(水) 21:16:59.32
プログラムだけなら、並に三倍速行けるやつはいるからな
給料三倍にはならんがw
9: 仕様書無しさん 2011/08/03(水) 21:53:24.13
プログラマなら終電まえに並盛り三倍速で食えるよなw
13: 仕様書無しさん 2011/08/05(金) 09:27:57.91
Lispやったら筋が良くなるって聞いたんでGauche触ってたら
確かになんぼかマシなコード書けるようになったわ
21: 仕様書無しさん 2011/08/08(月) 19:40:02.51
>>13
なにがどう変わったの?
具体的な技術のことでも、感覚的なことでもいいから聞かせてくれ
22: 仕様書無しさん 2011/08/09(火) 14:14:51.24
>>21
Lisp触る前までは、処理の目的ごとに分類したプログラム構造で、やたらと手続きの抽象化に腐心してたけど
今はデータの作成処理ごとに分類されてる感じ
変数の中身を弄ることも少なくなって、無駄に状態を増やさなくなったよ
25: 仕様書無しさん 2011/08/09(火) 19:16:05.30
別にオブジェクト思考が万能だなんて思ってないよ
ただ、>>22の書き込み見たら、単にオブジェクト思考の基本もちゃんと理解出来てないんじゃないの?
と、思っただけ
ソース整理のツールって表現には違和感有りまくりだけど、まあ適宜使い分けられれば良いと言う意味では同意
14: 仕様書無しさん 2011/08/05(金) 11:01:39.26
クロージャが使えるとなにがうれしいの?
15: 仕様書無しさん 2011/08/05(金) 11:10:02.27
プログラムがなんだかとってもダイナミックな感じになるよ
というかダイナミックな感じに作ろうとしたら自然と外側の変数が内側に入り込んでくる
あとしょうもないグローバル変数を作らなくてすむ
16: 仕様書無しさん 2011/08/07(日) 07:12:38.78
俺の場合、先の事を深く考えずにコードをガリガリ書いてる時はクロージャ大活躍なのに
後々整理していくと、いつの間にやらクロージャいらねーじゃんって形に落ち着く
17: 仕様書無しさん 2011/08/07(日) 09:06:04.08
そのメソッド内でしかいらない処理を書く時に有効
非同期処理を書く時に有効
18: 仕様書無しさん 2011/08/07(日) 09:46:55.59
わかるようなわからないような…
クロージャを有効に活用してるソースが見れるとこあったら教えてくれ
19: 仕様書無しさん 2011/08/07(日) 10:58:32.28
function OutputData(data){
OutputExcel(
new function (exl){
exl.Cells(0,0).SetValue("ヘッダ")
exl.Cells(0,1).SetValue(data)
}
)
}
function OutputExcel(func){
exl = new Excel()
exl.Open()
func(exl)
exl.Close()
}
こんなイメージかな
20: 仕様書無しさん 2011/08/08(月) 19:33:56.69
>>19
それってクロージャなの?
いまいちピンとこないんだけど
23: 仕様書無しさん 2011/08/09(火) 14:21:49.44
たんにオブジェクト思考をちゃんと理解出来てないだけじゃないのそれ
24: 仕様書無しさん 2011/08/09(火) 14:41:51.14
オブ指に思想的に入れ込むと碌な事にならない
ソース整理の方法のひとつと割り切るのが健全だよ
26: 仕様書無しさん 2011/08/10(水) 03:42:29.60
なんで世の中には「オブジェクト指向を理解出来てない」って言いたがる奴がこんなに溢れてるんだろう
27: 仕様書無しさん 2011/08/10(水) 04:05:23.00
・最近の主流の言語は大抵オブジェクト思考言語
・なのに実際理解出来てない奴が多い
・けど自分は理解してると思っているから
28: 仕様書無しさん 2011/08/10(水) 06:32:19.04
オブジェクト指向論とか語っちゃってる割に、実際に作ってるクラスは構造体もどきな奴とかいるけど
自分の書いたソースに何も感じないのだろうか
29: 仕様書無しさん 2011/08/10(水) 10:07:21.19
オブジェクト型より、本質的に重要なのはスコープが明確に限定されることでは?
だったら、Cでもアセンブラでもそう書くことは可能だろ?
30: 仕様書無しさん 2011/08/10(水) 20:45:06.98
本質的に重要なのは疎結合を達成することだ
31: 仕様書無しさん 2011/08/10(水) 20:55:55.18
クラスの責務がどうのと悩んでる奴は
関数がファーストクラスオブジェクトの言語やったほうがいい
今まであーだこーだやってたのがあほらしくなる
35: 仕様書無しさん 2011/08/20(土) 02:58:39.92
今高校生なんですけど、まじめに学校の勉強をするべきですか?
プログラミングとかの勉強をしていると学校の勉強がおろそかになるので
36: 仕様書無しさん 2011/08/20(土) 03:34:35.47
>>35
プログラミングに命をかけるだったら学校の勉強はそこそこでいいんじぁないかな!あと、友達が大切だよ~
38: 仕様書無しさん 2011/08/20(土) 10:39:06.87
良い大学に行く為の勉強とリア充になるための努力の方が大事かな。
プログラミングの勉強なんかその次で良い。本当にそう思うよ。真剣にそう思うよ。
39: 仕様書無しさん 2011/08/21(日) 06:00:52.47
C言語難しくてわかりません。
40: 仕様書無しさん 2011/08/22(月) 03:26:05.28
>>39
あれが難しいなんてどうかしてる
42: 仕様書無しさん 2011/08/23(火) 03:04:32.52
>>40
いや普通に難しいから
41: 仕様書無しさん 2011/08/22(月) 08:27:23.22
Cは学ぶのは簡単だけど使うのは難しいと思う
45: 仕様書無しさん 2011/08/23(火) 19:29:25.19
C言語はポインタを駆使するのでもなければ簡単。
プログラムで難しいのは、構造を考えるところ。
46: 忍法帖【Lv=40,xxxPT】 【東電 75.1 %】 2011/08/23(火) 20:19:41.32
よく壁と言われるポインタと構造体は最初つまづいたけど
Perl でリファレンス使って戻ってきたら簡単に思えた。
47: 仕様書無しさん 2011/08/23(火) 23:53:48.14
最初はアセンブラから始めろよ。
48: 仕様書無しさん 2011/08/25(木) 00:20:05.36
アセンブラから始めたらCは優しく見えるだろうな。
ただ、アセンブラは使い所がほぼ無いから、苦行にしかならないww
54: 仕様書無しさん 2011/09/06(火) 16:51:40.54
ここだけの話、数学
できなくてもいいという奴は、
単に自分ができないから言い聞かせてるだけ
57: 仕様書無しさん 2011/09/06(火) 19:50:16.18
>>54
数学の知識が必要なら勉強しなくちゃしょうがないけど、論理的思考能力を鍛えるため、とかいう
馬鹿な理由だったら、お前のこと指差して笑っちゃうw
お前馬鹿そうだから、理由は言わないでおいてあげる
59: 仕様書無しさん 2011/09/07(水) 02:17:49.18
>>57
馬鹿そうなんて言われるとは思わなかった。
自分の経験として書いただけなんだけどな。
55: 仕様書無しさん 2011/09/06(火) 17:57:23.23
論理的思考、これに尽きる
56: 仕様書無しさん 2011/09/06(火) 19:12:13.90
機能設計の説明を聞いて適切な実装がすぐに浮かばない奴はマとしては無能
58: 仕様書無しさん 2011/09/06(火) 23:37:47.48
数学が必要なのは式とかパターンを見つけるのが、あるとなしとじゃ大違いだから
だと思うな。
だいたい、コンピュータは行間も空気も読まないから、人間の持っている論理性
だけじゃどうしようもない部分が多い。 思ったとおりに動くわけじゃなく、書いた
とおりにしか動かないわけだし。
どちらかと言えば柔軟的な思考や、想像力が大事だと思う。
60: 仕様書無しさん 2011/09/07(水) 21:36:34.39
数学力とプログラミング能力が相関関係にあることは明らかだろ
61: 仕様書無しさん 2011/09/07(水) 22:44:34.68
離散数学だけはやっとけ、必須
62: 仕様書無しさん 2011/09/07(水) 23:35:31.65
学問の中で最も論理的な思考能力が要求されるのが数学
一つでも論理が間違っていれば動かなくなるのがコンピュータ
63: 仕様書無しさん 2011/09/07(水) 23:36:33.47
一番必要なのは国語じゃねーかな
64: 仕様書無しさん 2011/09/07(水) 23:45:37.47
論理を重視するなら法律の勉強でもやった方がマシじゃね。
65: 仕様書無しさん 2011/09/08(木) 00:59:43.28
プログラミングに限定するのであれば数学は暗記すべきことが少ないから
好きという面倒臭がりな奴に向いてる
逆に暗記系の科目が得意な奴は信用できない
職業プログラマにはどっちのタイプが向いてるかは考えたくない
68: 仕様書無しさん 2011/09/08(木) 08:23:43.82
CでOOPを書いていると能力上がるよ。
実装の継承を一杯作るとか、多段継承を一杯作るとかすると、オブジェクトにアクセスするのにポインター多用するので、
何が心労になるか理解できるようになる。 「何をやっていけないか」を理解するのが重要。
Cでデザパタ各種を一杯書くともっと能力あがるよ。
OOPの内部動作を含めた理解には、Cが一番。 ただし、DelphiとかC#で多少のOOP経験が必要だけど w
72: uy 2011/09/12(月) 15:23:32.40
>>68
君がそれを誰かからの受け売りではなく自分でたどり着いたのなら 君は中級者と名乗っていいよ
C++のように「はじめから」多彩な機能のある言語だとどれを使ったらいいのかわからなくなるが
Cのように最初は何もなく、必要な機能を時にはマクロを駆使して作っていくことで
OOPに本当に必要な機能がわかってきて、C++を触ったときに余計なゴミ機能を使わずにコード書くことが出来るようになってる
ゴミグラマには、早い話なんですけど
74: uy 2011/09/12(月) 15:59:08.15
switch文をfor、if文に変換、 2重ループを1重ループに変換 3重ループを1重ループに変換
これをやってみろ
あとは、最低、3重配列以上を使ったソースコードくらいは躓かずにかけるようになれ
あとは、ループ文を再帰文に変換、2重ループを2重再帰文に変換までは一瞬で出来るようになれ
あとは、「最初からリファクタリング完了したソースコード」をかけるように心がけろ
これは、かなり慣れていないと不可能なんだけどな、 ソースをかいて徐々に良くしていくのではなく
最初から最適解をかく それが出来るとコーディング速度は何倍にもなる