- ベストアンサー
文系プログラミングの苦悩:算数の分野で頭が真っ白になる
- 文系SEがプログラミングの研修に苦悩:文章でのプログラム作成が難しい
- 理系出身者にとって簡単な問題も解くのに苦労:絶対値や最小値・最大値の問題に1時間かかる
- どのようにjavaを学習したかを知りたい:文系SEの悩みをかかえる人にアドバイスを求める
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問と 先の2つへのお礼を見て気づいたことよ。 たぶん、苦手意識や、 「自分は文系だから」 が前に出てしまい 自分の成長を阻んでいないかしら? プログラミングというのは 文法さえ覚えてしまえば あとはたくさんある関数を使いこなすだけよ。 新しい国の言葉を覚えるのと大差ないわ。 大変なのは単語(関数)を覚えることよね。 先輩方が「慣れ」といっているのはここよ。 Javaには絶対値を求める専用の関数があるわ。 最小値・最大値も専用の関数で求められるわ。 これらを使わなくても、加減乗除その他で求めることもできるわ。 プログラムの世界ではアルゴリズムって呼ぶけど アルゴリズムって言うのは定型文よ。 こういう風に書くと プログラムって実に文系よりだと思わない? 理系の人が比較的得意なのは 理系の人は今までに使う機会を持っていたからなのよ。 今はまだ苦手意識が表に出てしまっていると思うけど 一度頭の中でプログラム=文章という構造ががっちり組み合わされば 一気に使えるようになるかもしれないわ。
その他の回答 (3)
- e00083
- ベストアンサー率31% (25/80)
まず、みんなスタートが違うことを自覚しましょう。 おそらく、小学校や中学校の勉強は全員ほぼ同じスタートです。 それに対しプログラムは勉強している期間がみんなバラバラです。 私は理系で4年勉強しました。 向き不向きではなく勉強している期間が違うので当然差がでます。 少し居残りをしてでも時間差を埋めましょう。 (最初は一問を1日なんて当たり前)
お礼
返事が遅くなって申し訳ありません。 最近ようやくプログラムというものに慣れてきたかなと思います。 あと4年でできるようになるか不安ですががむしゃらにがんばろうと思っています。 しかし、理系の方は勉強熱心な方が多いようで居残り組が大多数です。 なんとか差を埋められんものか、ここももう少し考えなければいけませんね。 ご回答ありがとうございました。
- OKbokuzyo
- ベストアンサー率43% (130/296)
文系だとかSEだからとか関係なく、 「絶対値を求めなさい」や、「最小値・最大値を求めなさい」くらい プログラミングじゃなくてもいいから 紙上ですらできない人はどんな会社に行っても困ると思うんですけど。 「絶対値なんて日常生活に要らない!」とかそういう問題ではなくて 中学生レベルの数学でしょ?義務教育で受けているでしょ?? あなたがSEとして不向きかどうかは分かりませんが それがダメで不向きというなら あなたはどんな仕事も不向きでしょうね。
お礼
お返事ありがとうございます。 書き方が少し悪かったようなので訂正します。求め方は義務教育で習ったので当然とけるのですが、それをプログラミングで変換するということをいまいちイメージできていません。 また、理系の方々は論理でものを組み立てるのが得意な方が多いので「不向き」という表現を使ってしまいました。 よく考えれば社会人になって1週間で向き不向きがわかるはずもないですよね。失礼しました。 とりあえず役立たずのごみっかすにならないように努力します。 ありがとうございました。
- mizutaki
- ベストアンサー率33% (111/333)
プログラム言語というのは元々 数学の分野の一つで、あらゆる概念を変数や関数に置き換えて、様々な証明に応用しようとする。 そういう分野から進化した物なので、 ・自信の知ってる言葉を、変数に置き換える ・想定される考え方を、論理的なロジックに置き換える みたいな考え方が必要です。 自分の思考から「最大値を求める」場合大きい値を順番に探していきますが、 その思考をロジックに置き換えるというのは、英語への翻訳のように概念がつかめないとうまく出来ない という感覚を持っているのではないかと思います。 ようは、思考をロジックに置き換える。 というものになれる必要があります。 http://vipprog.net/wiki/exercise.html ここにいろいろな問題がありますし、自分が分かりそうなものから作ってみると良い勉強になります。 それ以外でも自分の思考をロジックに置き換える(プログラムソースを書く)前に コピー用A4用紙あたりにいろいろと書いてみてはどうでしょうか? 「絶対値」でしたら、 ・0からの距離が絶対値 ・マイナスは存在しない ・-10はマイナスのマークを取った10になる と言った定義を出来るだけ書きだしてみます。 次に自分の頭の思考はどういう風に絶対値を求めるかを考える ・マイナスマークがついていたら、マイナスのマークを外せばそのまま絶対値だ 自分の思考を紙に書き出したら、もう少し論理的に紙に書いてみる [値] ↓ (1)→(マイナスじゃない)[そのまま表示] ↓ (マイナスマークがついている) ↓ (2)(マイナスを取る処理) (1)判定処理:マイナスかどうかを判断する (2)計算処理:マイナスを取る為の処理 みたいな感じでしょうか? そして、 (1)と(2)を行う為にはどういう処理をするべきか考える (1) /*マイナスかどうか判断*/ $num; /* 判定される値 */ if($num < 0){ /* 0以下ならマイナスです */ true; }else{ false; } (2) /* 値をマイナスにする処理 */ $num; /* マイナスを消す値 */ $result = $num * -1; 後は、この(1)と(2)の処理を組み合わせれば絶対値を求めるソースの完成です。 少々面倒な事ですが、 ※.条件を細かく書き出す ※.自分の頭の中でやるならどういう処理順番でやるかを出来るだけ細かく書き出す 1.判断処理や計算処理を出来るだけ細かく分析して、全部書きだしてみる 2.全部書きだしたら、それぞれのプログラムを作ってみる 3.2で作った複数のプログラムを組み合わせてみる と、大雑把な流れを作って、組み立ては細かい部分から組み立てていく という風に練習すれば、考え方が分かってくると思います
お礼
お返事ありがとうございます。 すごく丁寧な文章で非常にわかりやすかったです。 プログラミングを打ち込む前には必ず紙に自分の考えをまとめるようにはしています。どうも書いた情報を自分の中でうまく整理することができていないようです。 回答者様のおっしゃるとおりで「想定される考え方を、論理的なロジックに置き換える」ということが自分には圧倒的に欠けていると感じました。論理的にものを考えることに今まで抵抗があった(つまり何も考えていなかった)ので慣れるまでは時間がかかってしまいそうですね。 載せていただいたURLを拝見いたしました。 非常に細かくやさしいHPでした。気合を入れて問題を解いてみたいと思います。 まだ社会人になって1週間で不向きという表現を使ってしまいましたがまだわからないですよね。これからどうやっていくかが自分がこの職業に向いているか向いていないかを左右するということを理解しました。 ありがとうございました。
お礼
お返事が遅くなって申し訳ありません。 丁寧なご回答ありがとうございました。 確かに回答者様におっしゃるとおり、プログラムの「言語」は文系に似ていると感じました。 私と研修を共にしている同期の理系は、プログラムに対する考え方がとても論理的でそこから苦手意識が出ているというのは否定できません。 先輩たちは「あるとき突然プログラムを理解できるようになる」といいます。 私にそのときがいつくるのか、あるいはこないのか。その瞬間を切に望みながらがむしゃらにがんばっていこうと思います。 ありがとうございました。