No.7ベストアンサー
- 回答日時:
数学的センスが必要です。
物事を抽象化して考える能力です。例えば、「洗濯物を取り込む」という動作を考えて、整理できますか?
・洗濯物が干してあるか
・乾いているか?
・雨が降りそうか?
・雨が降っているか?
・どくらいの時間ごとに判断するか?
最低限、これだけの判断は必要ですね。
雨が降っているか?
/ \
いいえ はい ⇒ 取り込む
|
時間をチェック
↓
時間は前回判断より
/ \
30分後 30分未満 ⇒ 終了
|
干してあるか
/ \
はい いいえ ⇒ 終了
|
乾いているか
/ \
いいえ はい ⇒ 取り込む
|
雨が降りそうか
/ \
いいえ はい ⇒ 取り込む
↓
時間を記録して終了
と言う風にね。
実際には、これに取り込む準備とか、干してあるものの判断とか、ほかに優先しなければならないことがないかなど様々な状況判断が加わるでしょう。
★必要は発明の母と言いますが、プログラムをするかしないかは、その必要性があるときにはじめても構わないでしょう。プログラム自体を目的にしたって身につくものではありません。プログラムもあくまで手段ですから、それ自体が目標ではないのです。
★絶対に必要な能力
1) 客観的にあらゆる状況を含めてしたいことを整理できること
フローチャートを書いてみる。基本的にフローチャートからはじめます。出来れば複数のスタッフの助けも借りて、徹底的にフローチャートを煮詰めます。
2) 可能な最適な言語を選択する。
アドヴァイスありがとうございます。
フローチャート作りが大切なんですね。
それに必要なソースを書いて正しければ動くということですかね。
No.8
- 回答日時:
> プログラマーの皆様はどうやってプログラム脳を作られましたか。
○ 最初の2,3年くらい
最初は「習うより慣れろ」でひたすらコーディングしてました。この頃はプログラミング言語やオブジェクト指向の本ばかり読んでました。
○ 3年目あたりから
アルゴリズムやデータ構造を勉強し直しました。処理速度や結果の精度の重要さを実感したのがこの頃。必要なら、問題に合わせてアルゴリズムに色々な工夫を凝らすようになりました。
○ 8年目あたりから
設計やアルゴリズムやプログラミング技術ばかりでなく、問題そのものにも注意を向けるようになり、形式手法のような数学や論理で整理する方法も勉強し始めました。
一方で、#5さんと同様、分割統治(divide and conquer)や段階的詳細化(stepwise refinement)でのプログラミングを意識するようになったのもこの頃からです。
私の場合はかくの如し。
No.4
- 回答日時:
私は「ある程度までは」慣れだと思います。
一部は「慣れ」で解決してはいけない問題ですし、その「ある程度」を超えたら「慣れ」というよりは「自主学習」ですね。
私の場合は
「どうしてこう書くとこんなふうに動くんだろう」とか
「こんな感じに動かしたいんだけど、どう直せばいいんだろう」とか
そういうことばかり考えてたら、いつの間にか、思い描いたものをすぐにコードに起こせるようになっていました。
そうなるまでにかなりの時間がかかったのは確かです。
そこから先は、使える言語を増やして、知ってる概念を増やして、勉強、勉強です。
一方、「慣れ」の問題ではないと私が捉える部分もあります。
まず、「経験則」や「原則」などと呼ばれるものは、「慣れ」で解決すべきではないでしょう。
DRYの原則(同じ事を何度もやるな)やYAGNI則(使わないなら作るな)、KISSの法則(単純にしとけ)等が有名です。
あとはそうですね。
この世に多くの物の考え方があるように、この世には沢山のプログラミング言語があって、それぞれ理念や信念が微妙に異なってたりするものです。
「プログラマがやろうとすることを極力邪魔しない」という理念の言語(Cとか)で窮屈なスタイルを貫き通すのはある意味ではナンセンスですし、
逆に「プログラマが間違いを犯さないように極力見張る」という理念の言語(Javaとか)で型破りなコードを書くのは至難の業となります。
あるいは、「なるべく読みやすいコードが書けるように」という理念の言語(Rubyとか)で読みにくいコードをわざわざ書くのは恥ですし、
逆に「読みにくくてもいいからなるべく短く書けるように」という理念の言語(Perlとか)で読みやすい代わりに長ったらしいコードを書くのもまた、場合によっては恥となるかもしれません。
プログラミング言語に馴染めないのは、もしかすると言語との相性に問題があるのかもしれません。
どちらにしても趣の違った言語で遊んでみるのもいい経験になりますし、ためしてみると良いかもしれませんね。
尚、プログラミングに向いていない(他のことに向いている)頭脳の持ち主がたくさん居ることも事実です。
私の元同級生でfor文がどうも理解できていない人がいましたが、緻密なドット絵が上手かったものです。
アドヴァイスありがとうございます。
私はまだ知識も少なく慣れなければならない段階で、プログラムをどう動くようにすればどんな結果になるかがはっきりと理解できていない位の超初心者なので、先ずは公開されているサンプルソースを打ち込んで動かして、セオリーを覚える事をしなければならないようですね。
No.3
- 回答日時:
No2 とは逆ですが
>習うより慣れろ
だと思います。
ただ闇雲に自己満足に浸る作り方をしろという話ではないです。
見直す習慣をつけなさい という事です
国語の時間に書いた作文を見直してみると、
なんか下手糞だと感じる事ありませんか
小説家ならうまく書けるであろう言い回しや表現、
それらは、書く事に慣れなければ出来ません
まずは見直す習慣をつける事
自分の持っている知識で、お題に沿って動作するプログラムを作成した
完成したなら見直す。 下手糞だなと感じる
じゃあどこが下手糞なのかを考える
どうすればシンプルになるのか、
綺麗にブロック毎に処理が分けられた
自分なりの理想な作りになるか
誰だって作り直しはしたくないので
そういう見直しを繰り返して、知恵をつけていくと
自然とプログラム脳になっていきます
アドヴァイスありがとうございます。
確かにプログラムはいろいろな書き方で同じ結果が出ますから、よりシンプルでスマートなコーディングになるように見直して考えるようにしてみます。
No.2
- 回答日時:
私がプログラミングを始めたのは40年も昔のことで、今とは状況が違いますが。
。。>習うより慣れろという事は分かっていますが
これは、やめたほうがよいです。いわゆる「悪い癖」を付けるだけです。
プログラム上達のためには、コンピュータを使わないことをお勧めします。
ん('_'ゞ??? と思うでしょうが、簡単な問題をコンピュータなしで考えて、それをコンピュータに打ち込んだら1発で動くようにプログラムを書く。という練習が効果的です。
練習は、純粋に数学的な問題がよいです。
たとえば
・3の倍数に切り上げる(ある数を与えると、それに等しいか大きい、最小の3の倍数を表示する)
・金額をあたえると、その額になる紙幣とコインの数を表示する。(最も数が少なくなるように)
などです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PixivとかDMM(FANZA)みたいなサ...
-
オリジナルの占いサイトを作る...
-
プログラミング言語でif文って...
-
プログラミング質問 【素人】
-
SE、プログラマでの生涯。
-
ゲーム改造の解説本(BOTや...
-
HOLONついて教えてください。
-
COBOLでのNOT = の AND条件
-
C言語、C+、C++、C#の違い
-
Visual Studio Codeについて
-
パスカルケースの由来。
-
VBSとWSHは読み方が違うだけで...
-
MacでVisual Basicしたい
-
UNITY Float型の接尾辞fって
-
図形の中心の取り方を教えてく...
-
必要なプログラミング言語は?
-
c#で作ったアプリケーションを...
-
gettimeofday() と localtime_r...
-
アセンブリ名とは??
-
VBAプログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PGに慣れず適応障害と診断され...
-
オリジナルの占いサイトを作る...
-
「やさしいC」の次に読む本を探...
-
自作でプレステ対応ゲームは作...
-
組込技術者を目指しています
-
Webデザイナーになる為、独学で...
-
VBAの勉強の仕方
-
C++ API 全般 APIの概要は
-
Linux Cプログラミングを学ぶた...
-
OpenGLで質問があります。
-
『ゼロから作るディープラーニ...
-
C言語を1から始めるのですが・...
-
プログラマーになったきっかけ...
-
VisualC++ 6.0 と2005の違い
-
ExcelでのVisual Basicのプログ...
-
ActionScriptのステップアップ...
-
プログラマって儲かるのですか?
-
アマグラマーについて
-
シーケンサープログラマを効率...
-
工業高校生ですが、将来ゲーム...
おすすめ情報