• ベストアンサー

プログラミングは大体時間が解決しますか?

職業プログラマーです。 最近思うのですが、プログラミング(主にアルゴリズムに関して) って時間掛けないと出来ないような気がしてきました。 昔は集中力で何とか定時までに出来るようにと頑張ってきましたが、 どうも集中力と仕事のはかどりが比例していないような気がします。 自分の場合、アイデアがひらめく時は精神がリラックスしている時が多く感じます。こういう事でプログラマーとは残業が多いのですか? 「常に何か作業をしている」=残業ではなく、「考えている」=残業 に近いのでしょうか? とりとめなくなってしまったのですが、質問は以下です。 1.仕事中に精神状態を意識してコントロールしていますか? していれば、どのような状態を望んでいますか? 2.時間が解決してくれると思ってしまう自分は適性があまり無いのでしょうか?(納期に遅れた事はありません)

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.6

No.1ですが。。。 >>納期に遅れていないのなら、優秀であり、問題ないと思います。 >その分、人より多く働いているとおもいますが、それで問題はないのですね。 「働く」の意味がわかりません。仕事の考え方が違うのかな? 仕事というのは、残業をする事ではありませんよ? 仕事の定義は「ある物を変更するために必要なエネルギー」物理法則どおりです。 AさんとBさんが同じものを作ったとして、Bさんが2倍時間がかかったとしても同じ仕事量です。(単位時間当たりの仕事量(Wh)は違いますが) だから、あなたがどれだけ残業しても、会社として問題ないのであれば(会社から「残業しすぎだからもっと効率上げろ」と言われないのであれば) おそらく会社の想定どおりの作業量で作業時間なのです。 一般的に集中可能な時間は2時間でしょう。 集中しているときより、リラックスしているときの方が良い考えが浮かぶというのは、創作活動ではよくある話です。 適当に気を抜く事は良いことだと思います。それも含めて製作時間でしょう。

tomojyuu
質問者

お礼

遅くなりました。再び回答ありがとうございます。 >適当に気を抜く事は良いことだと思います。それも含めて製作時間でしょう。 言葉使いは違っていてもいいたい事は同じようですね。 仕事をしているという意識がある以上、その間の時間は仕事をしているのですね。

その他の回答 (10)

  • caceres
  • ベストアンサー率43% (61/140)
回答No.11

30年弱ハード,ソフトを設計、製作しています。 >1 20歳代はむしゃらに突き進みましたが、なるべく午前中に思考レベルが高い作業,設計を集中させました。 どうしても解決しないときはテーマを記憶して残して寝ます。朝方、夢の中でヒント、答えが出たことが何度もありました。 >2 時間が解決 経験ですね。もうすぐ50歳ですが同じことで1週間は悩むことが無くなりました。引き出しが増えたのでしょうか。 >納期に遅れた事はありあません きっと一生懸命に思考されているのですから無駄な時間を過ごされているわけではないので問題ありません。 でも一歩引くことはあっても時間にゆだねては何の解決にもなりませんから攻撃的退却でなければならないと思います。

tomojyuu
質問者

お礼

遅くなりました。回答ありがとうございます 参考になりました。

回答No.10

>実は社員が自分一人なもので、… 大規模開発などでは、コードインスペクションやウォークスルーなどにより、必然的に他の開発者さんとコミュニケーションをとるようになる状況がいろいろとあるのですが、一人だけだとなかなか難しいですね。小規模開発を主としたXPでも、ペアプログラミングなどは二人一組といった感じですし…。 私の通っていた大学の先生方は、「プログラミングとは芸術みたいなものだ。」とよくおっしゃっていました。ある程度、高度な創作活動をしている以上(業務内容にもよりますが)、時間がかかるというのはいたしかたのないことだと思います。ビジネスである以上、常に時間と品質とのトレードオフを求められますので、しっかりしたプログラムが書けたといっても納期に間に合わなければ、あまり意味がありませんし、逆に予定より早く終ったとしてもテストが不十分だったりドキュメントの作成が疎かだったりすると、結果的に後でしっぺ返しを食らうことになります。 伝記にも出てくるような偉人の方には、よく散歩を日課とされていたとのことですが、重要なことは早く自分なりのワークスタイルを確立することだと思います。単に、いつも定時までに仕事が終ればいいというわけでもないですし、私が今までに出会ってきた、素晴らしいエンジニアだなあと思う人の多くは、ここぞというときにはたとえ夜遅くになってでも、問題解決の為に奮闘します。要は、定時までに仕事を終えようが、残業をすることになろうが、どちらでも臨機応変に対応できるようになることだと思います。

tomojyuu
質問者

お礼

遅くなりました。回答ありがとうございます 参考になりました。

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.9

No.4です。 >>1について >結果的に時間が過ぎていく事になりますが、これも仕事と考えていいのでしょうか?  仕事とは「結果」ですよ。過程や姿勢に意義を見出す人もいますが、それも「結果を出す」という前提あっての話です。  決まったスケジュールで求められた成果を上げるのが仕事です。集中力を取り戻すために時間を割くのも同じです。が、それを理由に遅延したら怒られるだけですね。 「締め切りに間に合わない、でもうまい手が考え付かない。リラックスするために色々やった。仕事ができた。でも3日遅れ」 という展開は駄目です。考え付かなければ回りに相談するなりなんなりすればいいだけです。  スケジュール内に成果を上げるために、あらゆる手段を採る。その一環が瞑想(考え事、風呂、タバコ、休憩)だったり、相談(同僚、上司、ネットで検索)だったりするだけです。  時間が過ぎていくことに何か焦りを感じているのかもしれませんが、気にしなければいけないのは過ぎ去った時間の量ではなく、締め切りまでに終わるかどうかだけですよ?

tomojyuu
質問者

お礼

遅くなりました。再びの回答ありがとうございます。 過ぎ去った時間の量が気になるのですよ。なぜその時間かかったのか、無論 時間が過ぎていくことに何か焦りを感じているからですね。それも締め切りまでに終わるかどうかだからです。 今回の質問では、締め切りは「主」ではありません。「時間」を「主」に 考えています。

noname#45950
noname#45950
回答No.8

こんにちは。 私はアルゴリズム関係で詰まった時は、「人と話す」ことで、大体解決しています。 ただ、これは「現在は」なんです。 私はPGとしての会社は今で3つめなんですが、 ・1社目の時は、とにかく考え込んでいました。夜寝るときや、食事の時も、ずっと考えていた気がします。 ・2社目の時は、この道20年以上の大ベテラン(中学のときからプログラミングしていたそう!)に、とにかく色々教えてもらいました。 ・3社目の今は、ディスカッションを重ねています。話すことで、自分にはないロジックを取り入れたり、話すうちに自分の中での不明点がわかったり、方向性がつかめてくることが多いです。 また、ちょっと込み入った物は、設計しながらコーディングはせず、設計終了してからコーディングするようになりました(結果的に、この方が絶対早くて正確なので)。 こういう風に変わってきたのは、自分の変化もさることながら、周りの環境が大きいです。最初の会社は、「いつでも、草木も眠る丑三つ時?!」というくらい、静かでしたが、今の会社は、この業界にしては、騒がしいです。 また、結婚して頭の切り替えが自動的に出来るようになったのもあります。今、食事中に考えるのは、仕事ではなく「今日の材料の残りで、明日の献立どうしよう」ですから(笑)。 質問者さんは、お一人で仕事なさっているとのことですので、自由といえば自由ですが、なかなか難しい面もありそうですね。

tomojyuu
質問者

お礼

遅くなりました。回答ありがとうございます。 自分の会社は静かです(笑)。今の自分はsuzume00さんの1社目の時ですね。とはいえ、「一人だから」というのが理由にはなりませんが、仕事の 仕方も環境によって変わるべきと思っています。大勢の人がいたほうが ディスカッションできる面は羨ましいと思います。一人だから、こんな質問 をしてしまうのかもしれませんね。

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.7

1についてですが、 仕事中にディスプレイを見つめてじっくり考えていませんか? ディスプレイを見つめるって動作自体が集中力低下します。 私の経験ではディスプレイを見つめていても、はかどるときははかどります。 そういうときは意識が脳にいっているんです。 でも、たいていディスプレイを見つめれいれば意識は目にいきます。 つまり、注意力散漫なんですね。 煮詰まったときは机上で紙に書いてモデリングしてやります。 私の場合はこれが最も効率がいいです。 その他では食事時や通勤中にアイディアが浮かぶときもあります。 歯磨きしているときなんかに思いつくこともあります。 2についてですが、私も時間が解決してくれると思うことはあります。 私の場合は何かがおかしいとか、整然としてないと感じるときですけどね。 頭の中では引っかかるけど、漠然としていてまとまりがつかない。 こういう経験はプログラマやSEなら必ずあるところですが、 こういうときは焦っても仕方ないですから、 とりあえず意識にまとまるようになるまで頭、机上で整理いたします。 形になってまとまったところで一服いれます。 こうなると上記の例ではありませんが、食事中にアイディアは出やすいです。 結局、我々は四六時中仕事のことを考えているんですね・・・

tomojyuu
質問者

お礼

遅くなりました。回答ありがとうございます。 1について >煮詰まったときは机上で紙に書いてモデリングしてやります。 参考にします。 2について >結局、我々は四六時中仕事のことを考えているんですね・・・ そうですね、自分で仕事をしているという意識がある以上、その間の時間は どんな所で何をしてようと「仕事」をしているのでしょうね。

  • KNIGHT11
  • ベストアンサー率21% (82/376)
回答No.5

> 1.仕事中に精神状態を意識してコントロールしていますか? > していれば、どのような状態を望んでいますか? ハマった時は10分に1回くらいタバコ吸いに席を立ちます(笑) 場合によっては近所をウロウロ徘徊したりもします。 要は気分転換して質問者様も仰っている「ひらめき」が出やすいようにしてあげると言うことですね。 > 2.時間が解決してくれると思ってしまう自分は適性があまり無いのでしょうか?(納期に遅れた事はありません) そんなことは無いと思います。 私も「時間があればどうにかなる」とは思いませんが、結局のところ「ひらめき」だと思っているので、 その「ひらめき」が発生しやすい環境を作る=時間が必要と考えれば正しいと思いますよ。 わたしも複数の仕事を同時にやることが多いので、  AでハマったらBのコーディング、  BでハマったらCのコーディング  CでハマったらAのコーディング みたなことはよくやります。

tomojyuu
質問者

お礼

回答ありがとうございます。 >1について 気分転換に時間を使う事はいけない事ではないようですね。 実は社員が自分一人なもので、他の人の仕事に対する姿勢がわからないのです。 >2について わかりました。

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.4

>時間掛けないと出来ない 経験を積めば時間も短くなりますよ。経験とはつまり「引き出しの多さ」で、アルゴリズムを丸ごと覚えていなくても「こういうのがあった」と記憶から引き出せれば、後はネットなり書籍なり過去の自分のソースからなり、探せば済みます。 1.自分は集中が長く続かない性格で、しかもそれを自覚していますから、途切れたら他の業務をやったり、トイレに行ったり、考え事をして集中力が戻るのを待ちます。 2.納期に遅れないならそれで良いのでは? 私は駄目なときは諦めてさっさと帰ります。自宅で解決策を思いつくこともありますし、そうでなくても翌日気分を新たにすれば、煮詰まって悩むより解決しやすいと思っています。 それでスケジュールが厳しくなるなら、残業時間に別の仕事を片付けて全体の進捗を調整します。

tomojyuu
質問者

お礼

回答ありがとうございます。 >1について 結果的に時間が過ぎていく事になりますが、これも仕事と考えていいのでしょうか? >2について こちらも結果的に時間が解決してくれているような気がします。 前の回答者様の所でも書きましたが、「ネジを締める仕事」をしている 訳では無いので、仕方ないのでしょうか?。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.3

1について 私は結構まめに休憩を取っています。 コーディングに煮詰まったとき、一区切りついたとき、疲れを感じたときなんかです。 煮詰まってるときなんかは休憩しながらも考えてることは多いですね。 そんなときに結構いいアイディアがうかんだりします。 新しいものに取り組むときは、休憩と称して本を読んだりもします。 2について 時間があれば解決必ず解決するというわけではないと思いますが、時間が無いとできないというところはあるとおもいます。 前者の言わんとするところは、壁にぶつかっていいアイディアがずっと浮かばなければ、時間がいくらあってもすすまないでしょう。 後者は絶対量が多ければやはり時間がかかるとおもいます。 時間が解決してくれるというより、取り組み方ではないでしょうか? わからないときは本を買ってでも調べる。ネットの隅々まで調べる。ここのようなところで聞いてみる。など色々やり方はあるかもしれませんが、そういった姿勢があるかないかが分かれ目のようなきがします。 (質問の答えになってないかもしれませんが・・・

tomojyuu
質問者

お礼

回答ありがとうございます。 >1について この場合時間を無駄にしている...とは思わないのですね。自分は思ってしまうのです。 >2について わからないときは本を買ってでも調べる。ネットの隅々まで調べる。ここのようなところで聞いてみる事はしています。どれも時間がかかりますね。 ネジを締める仕事をしている訳ではないので、数時間、結果が出なくても しょうがないと思って良いのでしょうか?

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んっと…概ね「設計」と「コーディング」ってフェイズに切り分けられると思うのですが。 設計の、特に厄介なときは、一度悩んだ後に「一端忘れて別の作業をやる」用にしています。 よく、身内では「バックグラウンドプロセスに渡す」とか言ってますが(笑 ですので、場合によっては考えたり設計したりしているのは「業務外」であることも少なからずあるです。 後は「すでに方向性が決まったコーディング」をしている、とか。 ちなみに時間については、自分は区切りをいれて。 「この時間までにいいアイデアが浮かばなければとりあえず汚く実装する」ようにしています。 まぁ「或る一人のぷろぐらまぁ」の個人的見解として、程度に見ていただければと思います。

tomojyuu
質問者

お礼

回答ありがとうございます。 質問内容のプログラミングに一応、「設計」と「コーディング」と含んでいます。この場合、「設計」に時間が掛かっているのだと思います。 もう少し、詳細にすればよかったかもしれません。 >一度悩んだ後に「一端忘れて別の作業をやる」用にしています。 自分だけではないのですね。安心しました。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

作業にかかる時間の見積もりはさらに上流で決まっているでしょうから、本当に毎回残業が出るようなら、 「上流の人があなたのスキルを買いかぶっている」か 「残業量も織り込み済みで残業することは正しい」か どちらかになるとおもいます。 たぶん、後者です。 最初は定時内でできたというのは、最初はスキルの低い仕事をさせられていた ということでしょう。 仕事の難易度が上がれば、当然考察時間も増えますので、残業時間は織り込み済み ということになるでしょう。 特に、上流にいる方からクレームが来ていないのなら、納期に遅れていないのなら、優秀であり、問題ないと思います。

tomojyuu
質問者

お礼

回答ありがとうございます。 >納期に遅れていないのなら、優秀であり、問題ないと思います。 その分、人より多く働いているとおもいますが、それで問題はないのですね。

関連するQ&A