![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- XML ホームページ作成ーこういうのを作りたいんです 6 2022/05/23 18:37
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
- Ruby VBA 2 2023/01/14 14:14
- IT・エンジニアリング IT業界に就職を考えているが適正がないかもしれない 5 2023/06/08 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゲーム改造について
-
今、コンピューター言語で、COB...
-
「高スキルなプログラマーにな...
-
C++における継続行
-
exeファイルを作ったり改造した...
-
プログラミング言語「C#」の難...
-
Excelの開発言語ってなんですか?
-
プログラム言語について c言語...
-
Solve()とは、なんですか?
-
ニンテンドーDSのソフト作成に...
-
リピート再生が出来ません
-
Visual Studio Codeについて
-
ゲームは何文字のプログラムで...
-
c#で作ったアプリケーションを...
-
C/C++でマウスのクリックとホイ...
-
ペイント系ソフトのレイヤーの...
-
MacでVisual Basicしたい
-
一般に公開されたPDFがパスワー...
-
カシミール3Dで国土地理院の地...
-
C言語、C+、C++、C#の違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux Cプログラミングを学ぶた...
-
自作でプレステ対応ゲームは作...
-
工業高校生ですが、将来ゲーム...
-
プログラマーになったきっかけ...
-
プログラミングは独学で習得で...
-
情報工学科にはパソコン知識が...
-
Win32APIは覚えて損する?
-
「やさしいC」の次に読む本を探...
-
よい勉強法を教えてください!
-
プログラム脳の作り方
-
マックでCプログラミングを
-
ソフトウェア作成への勉強方法
-
C++Builder初心者の勉強法
-
397時間動画パソコン教室でスキ...
-
C#の基本文法が詳しく書かれて...
-
PGに慣れず適応障害と診断され...
-
プログラミングの学習方法
-
半年間で
-
ハッカーについて
-
Visual C++ .NET Standard Ver...
おすすめ情報