プロが教える店舗&オフィスのセキュリティ対策術

私は高校の頃、たとえば河合の記述模試では国語英語社会の偏差値は75ほどあったのですが、数学だけはどうしてもできるようにならず、最後まで55程度でした。
数学は出来ないし面白いとも思わなかったのでほぼ捨てて京都大学に合格したのですが、最近プログラミングをやってて、数学に似た感覚を覚えます。
つまり、やってもやってもできるようにならないのです。
周りの人を見てても、プログラミングができる人は数学や物理のできる人が多いです。
これは何が原因なのでしょうか?
今止むに止まれぬ事情でプログラミングをしなければいけないのですが、もうやめたいと言うのが正直な感想です。
なぜなら、英語を読んだり読書をしたりピアノを弾いた方が充実感があり楽しいし、身についている感覚があるからです。
どうしたら克服できるのでしょうか?

質問者からの補足コメント

  • なるほど
    私には思考力がないのでしょうか?
    現代文は得意でしたし、大学に入ってからも哲学や政治学、倫理学や宗教学、文学や社会学、経営学などに触れ思考力が必要だとされる場面に出くわすこともありましたが、出来ない、と言う感覚はありませんでした。
    なぜ数学やプログラミングができないのでしょうか?ちなみに簿記も苦手でした。

    No.3の回答に寄せられた補足コメントです。 補足日時:2018/02/19 12:07
  • なるほど。
    プログラミングはまずエラーの原因が特定できないのですよね。
    しかもAがやりたいと思って調べてもよくわからないことが多い。専門用語もわからないし、専門用語を調べてもよくわからない。たとえばサーバーとかプロトコルとか説明されてますが、読んでもそれが一体何なのかがわからない。調べたことが自分のやりたいこととあってるのかもわからないし、下手にコードいじるとめちゃくちゃになって取り返しのつかないことになる。自分の問題としてることを解決する直接の方法がどこにも書いてない。など、本当に難しく感じます。100勉強して1も進まない感じなんですよね。悲しいです。

    No.5の回答に寄せられた補足コメントです。 補足日時:2018/02/19 12:52
  • 文系の場合、答えが分かれる時は対象に価値観や文化的背景が反映される時や、あるいはもう少し叙情的な意味合いが含まれるのに対して、プログラミングの書き方の個人差は数学で別解を作るようなものに近くはないですか?
    全体像が見えないかつどんな手段があるかもわからないため、細分化出来ないし、ある程度出来ているところでもそれが解けないというのが今の状況です。

    No.7の回答に寄せられた補足コメントです。 補足日時:2018/02/19 13:55
  • 「それこそ画面にメッセージを表示したり、繰り返し構造を使った練習をしたり」は山ほどして、それに関しては問題なくできるのですが、そこから先ができないのですよね。
    基本的な、本に書いてあることしかできず、それ以上のことや本に書かれていないことをやろうとしても実現できないという状況です。

    No.8の回答に寄せられた補足コメントです。 補足日時:2018/02/19 18:31

A 回答 (12件中1~10件)

プログラマです。


数学・物理が得意で、ある公的機関で数学や物理の問題を
プログラムを書いて解く仕事をしています。

確かに、数学や物理が得意なほうが、圧倒的に有利ですね。
明らかに数学とは違うのですが、数学に似た雰囲気を持っています。

私の感覚ですが、
全体の流れと、個々の具体的な処理が入れ子になっている感じが
数学的なのだと思います。
(うまく言えません・・・)

数学でもそうですよね。
大きな流れと一行一行の式変形は少し違う次元ですよね。

数学や物理(特に物理な気がします)をやっていると、そういう
入れ子の作業になれるんだと思っています。

とはいえ、文系科目をきちんと体系的に勉強したわけではないので、
文系の人たちがそのような脳の鍛え方をしていないかどうかは知りません。

あと、奇麗に論理だてて式変形をする習慣がついているので、
コーディングも自然と見やすくなります。

よく、マーカーとか定規とか使ってきれいなノートを書く人がいますが、
ああいう話ではなくて、「美しい論理展開」のようなノートを志している、
ということです。
「わかりやすく・見やすく・飛躍がなく・丁寧」を心がける、ということです。

抽象的な表現ばかりですみません。
    • good
    • 0

「数学や物理が苦手な人でも、プログラムを作れるように


なるにはどうしたら良いですか」ではなくて「プログラム
が作れないのは数学や物理が苦手なのが原因」という風に、
問題の解決方法ではなく、プログラムを作れない言い訳を
探し求めようとしているだけの質問の仕方、考え方がプロ
グラマ向きでは有りません。
それは、補足コメントを見ても明らかです。

おそらく、試験で良い成績を取る為のテクニックとしての
技術しか磨いてこなかったからだと思います。
短時間で解くことが出来る問題を優先して、時間の掛かる
検証問題は後回し、もしくは捨てる。
勉強自体も、高得点を取りやすい学科に重点的に時間を
割り振っていたのでしょう。
その結果として、現在の状態が有るのでしょう。

数学は単に公式や定理を暗記するだけでは出来ません。
それらの内のどれを適用するか、どう組み合わせてどう
使いこなすかを考えていかなければ解答は出てきません。
既存の書籍に書かれているプログラムを探して、それを
そのまま並べるだけで、答えが出るならプログラマなど
必要が有りません。
それは、スポーツの入門書に書かれている事だけをして
いるだけでは、上手くなれないのと同じです。
    • good
    • 7

読書が好きということなので、読み物として


「60%の人間はプログラマの素質がない」で検索してみてください。
コンピュータ関係者の間で話題になった(その後、実験自体は再現性があるものの、因果関係に疑問が残るとして撤回された)論文にまつわる話が見つかります。

おそらく、この論文での「一貫性のある人」は、数学や理科でもその「一貫性」を発揮して、好成績を修める人が多いのではないか、と予想します。


ただ、理系文系って、多くは素質もあって好き、という人が多いでしょうけど
・理系の素質があるけど文系の方が好きな文系
・理系の素質が無いけど文系が壊滅的だから理系
とかも考えられて、安易に決めつけるのはよく無いと思ってます。



エラーの直しかたって、入門書にはまず書いてません。
ですが、それこそがプログラミングの肝だと思ってます。

理由もなくエラーにはなりません。
エラーになるのは、「エラーになるプログラムを書いたから」です。
自分がどう思ったかは関係ありませんし、コンピュータは察してなどくれません。
だから、素直に受けいれましょう。

その上で「どうしたらそのエラーにすることができるのか?」と考えます。
できれば、複数考えます。
そのうちのどれか(場合によっては複数)が、エラーの原因の可能性がある、ということです。
それを直せば、エラーが無くなるはずです。
一つ一つ確認していきましょう。


こんな「ある場面を元に、そこに至るまでの経緯やそこからもたらされる将来を考える」って、国語や英語にもよく出てきますよね?
    • good
    • 2

本に書かれていないことをやろうとしても実現できない…と言うのはおそらく、コンピュータにさせるべき仕事が理解・分析できていないのではないでしょうか?プログラムができないって言うより、させるべき仕事を細分化してコンピュータに理解させる道筋が作れていないのだと思います。



「こうやればコンピュータでできる、じゃあ具体的にどうするか」ってのを考えて書くのがプログラムです。

サーバとの通信を行うプログラムであれば、サーバに送る電文を用意して、ネットワークに送信して、サーバの返事を待つ…みたいなことをするわけですが、

1)具体的にどういう処理が必要で、
2)それぞれの処理一つ一つをコンピュータにさせるにはどうやればいいか?

ってのが両方とも見えてないと、プログラムは書けません。2)は書いてみないとわからない場合も多々ありますが、1)が見えていなければ全く進まないです。

おそらくきっかけをつかめれば、「な~んだ、あいつが言ってたのはそういうことだったか」ってのが見えるとは思うんですが。
    • good
    • 0

サーバだのプロトコルだの言われるようなものに、一足飛びにそこまでやろうとしているならば、目標が高過ぎるのではと思います。

もっと地味に、それこそ画面にメッセージを表示したり、繰り返し構造を使った練習をしたり、そうしたことから積み上げていかないと届きません。

またそうした通信を扱う場合は、必ず相手がいますよね?ってことは、一方的にデータを投げつけたって相手の都合が悪いと受け取ってもらえません。またプロトコルに従わないと、全く聞いてもくれません。そうしたことを考慮してプログラミングしないとだめです。その辺の知識なしに挑むのは、無謀でしかないです。

国語の勉強はひらがなから始めるように、プログラミングも基礎が必要です。今はそこを飛ばしていきなり結果を求めているように見えるんですが。そのやり方で通信を扱えるのは、そもそもプログラミングの才能がある人でしょう。
この回答への補足あり
    • good
    • 0

果たして数学や物理に似てますかね?


プログラミングは『こう動いてほしい』という解がある以上、その過程をどう考え構築するか、という意味では、ほぼ定まった解法がある数学などではなく、人によって考え方が違う文系の方が向いている、と感じます。
その過程の中に、数学や物理学が含まれたことがあっても、プログラミング自体が数学や物理と一緒とは到底思えません。
だから、同じ目的のプログラミングを複数人にやらせても、全員が全く同じ過程になるとは限りません。

プログラミングも、やればやるほど身につきますよ。
色んな考え方ややり方を知ればそれも刺激になります。
ANo.6の方も仰っていますが、そもそもの苦手意識があるために、興味を持つことがないからでしょう。

大体苦手な人は、『求めるものはこれだ!』だけが先行して、じゃあそれを実現するためにはどうするとできるんだろう、と、物事を細分化して、実現する方法を考えるということが頭から抜けてます。
元々コードがあるなら、求めているものに対して、どういう過程でそれを導き出しているのだろう?ということを前提として読み解きます。

何をやろうとしているのか知りませんが、サーバー、プロトコルなんてのは、必要は必要ですが、逆説的には、それが関わるプログラムでなければ覚える必要がありません。
だから現在のあなたに必要がなければ覚えなくていいです。

また、あなたがやろうとしていることを調べても、さすがにそれは出てきませんよ。
あなたがやろうとしていることは、あなたが求めているのであって、他の人は求めていません。
やろうとしていることは、いくつもの積木が複雑に積み重なったものです。つまり、1つ1つの積木を調べれば出てきますね。
この回答への補足あり
    • good
    • 0

得意だとおっしゃる国語だって


漢字を覚えるのと、文法を理解するのと、文章題で作者の意図を予測するのだと
同じレベルで興味を持つことは難しいですよね
たんに興味がないから上達しないだけでしょう
興味がないことをそれなりにこなすように、ごまかしごまかしやるだけです
    • good
    • 0

適性ってことで言えば、論理的思考力と言う話じゃないですか?ただ、私も数学は嫌いだけどコードは書けます。

なので感覚がつかめればできるはずです。

多くの場合、バリバリのソフト屋さんは数学に強い一方で、一般の文章は「日本語でおk」なものしか書けないことが多いような印象もあります。プログラミングも「言語」とは言うものの、自然言語とは全く別物だし、数式の方がはるかに近いですよね。

ちなみにコンピュータにできる仕事って突き詰めていくと究極的には、「メモリにある値を読んで計算なりの処理をして、それをまたメモリに書くこと」です。その処理をまんま表現したものがアセンブリ言語で、アルファベットの略号と数字と記号だけの、こんなん言語と違うわボケ的なものですが、それだけにコンピュータの仕組みが一番わかる言語でもあります。が、これも感覚で何とかなったりします。

感覚って言うのは表現するのが難しいですけど、やらせたい処理はどうすればコンピュータに理解できる形に落とし込めるだろうか?ってのがわかるってことですね。いきなり細部までわかることもあれば、なんとなくしかわからなくて、仮に作り始めないと細部が見えないこともあったりいろいろですが、とにかくどうすりゃコンピュータがわかってくれるのかの道筋が見えるわけです。

そうした感覚を身につけて磨くには、経験するしかありません。
この回答への補足あり
    • good
    • 0

Yonakikkoです。


 私の回答は、あなたが数学、物理が苦手のように記載されていたので文系の思考力ではなく、理系の思考力についての回答です。
 勿論、文系の思考力も理系の思考力もどちらも大切です。
 
 頑張ってください。
    • good
    • 0

少なくても高校までの数学や物理は暗記して覚えるのではなく、思考力をやしなうための科目です。


 プログラミングを作るのには、思考が大切です。

 思考力をやしなうには、高校の数学、物理の教科書を判らなくても考えて、なぜそうなるのか参考書などに頼らないで勉強することです。
 少し、難しいパズルを解くこともよいです。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!