- ベストアンサー
プログラマーの仕事について考えるポイントとは?
- 要件定義が終わり実務をする際に考えることや気分転換の重要性について
- ITプログラミングスクールの意味や実務での知識の有用性について
- プログラミングの将来性とコミュニケーション能力の重要性について
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この質問ですが、次のような質問と非常に似ていると思います。 ・水泳選手は右足から水につけたほうがいいか、左足からいれたほうがいいか教えてください ・隣のレーンの選手を意識したほうが勝てるか自分に没頭したほうが勝てるか教えてください。 ・ゴールしたときガッツしたほうがいいか教えてください。 仮に自分が水泳選手じゃなくても、この質問にまじめに答えられますか。 ふざけて答えるという意味じゃなくて、正解として答えられますか、です。 どう足を動かそうがどういう気持ちで泳ごうが、水泳の競争だったら勝てばいいのです。 もしシンクロみたいに美形が問題になるならチームワークと互いの観察が必要ですが背泳の競争だったりしたらそれはありません。 プログラムをするというのは、クルマを使ってどこかに行くのと同じことです。 どこそこまで行くというのが問題であって、その間に他人と会話したほうがいいかどうかなんて意味はありません。 ちゃんと仕事をし、法に触れたり他人に迷惑をかけたりしないでそのゴールにいきつくというのが目的であって、手段は論じてもしかたがない。 将棋のプロは、定跡は知っているかもしれないが、いちいちそれを最初の一手の参考におもいだしたりはしません。 何の仕事だって、徹夜をすることにならざるを得ないことはあるかもしれないが、それをしないに越したことはありません。 仕事の質が悪くなりますので。 学校で新しいことの習得に励むのも、必要だったらやればいいのです。意味があるなしではありません。 本を読んであれこれやりながら理解すると3か月かかり、どこかの学校なら3日で終わる、そのかわり学費が10万だというならそれを天秤にかけるだけです。 10万円払って3日でいいか、3か月無料で頑張るのとどちらが自分の仕事に有効か、です。 もちろん学校なんかで教えることも独学で本で覚えることも実務ではありませんから、即役に立つとは言えないでしょう。 勉強不足だなと思うのは、「コーディングロボ」? そんなものは50年前からありますよ。ジェネレータというやつです。 そもそも、誰がやっても同じことをコーディングしていちいちバグをつくると、テスト作業も肥大化する。だからクラス設計をしてスーパークラスに業務ロジックをいれたりするのがフレームワークであり、そこで手作業のコーディングはだいぶ軽減されます。 ジェネレータはAIにはなりません。 Aiの対象は実際の業務自体です。 プログラミング自体をAIにさせるという発想は目的からいっても無理です。 ランダムにプログラムをして、失敗したら覚えてそれは繰り返さないようにして別のコーディングをするなんていうことをしてディープラーニングと言っても無意味です。 なぜなら、その作ったプログラムが実際に何をするか知らないでやって失敗も成功も見えないからです。 以上、全部答えました。
その他の回答 (1)
- ms05ZAKU
- ベストアンサー率71% (149/209)
>プログラマーやSEは気分転換とは無縁な職業でしょうか? 気分転換なしで24時間いつでも100%集中できて、かつそれを何年も持続できる、というなら無縁かもしれません。 ですが、人間の生態上ありえません。 SEやプログラマに限らず、人間の集中力は数時間程度の持続が限界ですし、仕事のことだけ考え続けるのも不可能・・・ではないかもしれませんが、不健康です。 むしろデスクワークで一点集中してしまうからこそ、「するべきときには気分転換できる」能力が求められると思います。 >実務以外にITプログラミングスクールに通うことに意味はないと思いますか? ちゃんと自分の引き出しを増やせるなら、スクールにも意味はあると思います。 実務といっても千差万別あるし、新しい発想・新しい考え方の持込が期待されることもあるでしょう。 基礎のC言語ですら、「どういう分岐ならifを使うべきかswitchを使うべきか」「配列とポインタをどう使い分けるか」、環境や制限・条件によって答えが変わるものはたくさんあります。 『今の自分とは違う発想』が学べるなら、無意味ということは無いと思います。 >この業界自分の実力が全てでしょうか?それとも仲間とうまく連携をとるコミュニケーション能力が重要でしょうか? どっちも大事ですが、あえて二択で問うなら後者かと考えます。 というか『自分の実力』の中に「他者とのコミュニケーション力」が含まれている、と考えるべきです。 仲間のいない個人開発であっても必ず『顧客(クライアント)』は存在します。 顧客ニーズに合ったシステム・ソフトの開発のためには、顧客とのコミュニケーションは欠かせません。(顧客と一切喋らなくても顧客の考えがわかる、などというエスパーなら話は別でしょうけど) そして仲間とはろくに連携できないのに、顧客とはうまくコミュニケーション取れる、などという偏ったコミュ力を持っている人は極めてレアケースだと思います。 >話が逸れてしまいますがプログラミングを自動でしてくれるコーディングロボ(プログラマーいらずの人口知能(AI))は今後生まれると思いますか? 下流工程としての『プログラミング』に限定するなら、生まれる可能性はあると思います。 入力・出力・コーディングルールなど、いくつか必要な要素を決定し、入力することで、一定のルールに沿ったコードを出力してくれる、というものを想定しています。 実際(精度はともかく)HTMLなどのWEBページは自動化ソフトなどありますし、自動車業界で動きつつあるAUTOSARなどは「規定のソフトモジュールを組み合わせることで、その組み合わせに応じたソフトを自動生成する」ことを目標に開発が進んでいます。 仕様さえ決まれば、あとはAUTOSARの必要情報を入力するとソフトが出力される、という形です。 これらは『ツール』の域を出ないので、質問者様の考える「コーディングロボ」とは異なるかもしれませんが、こういうツールの延長上として『決めた仕様に可能な限り沿ったコードを演算して出力してくれる』レベルに達するのであれば、それは「コーディングロボット」と認めていいんじゃないか、と考えています。 (どうしても「人間側がロボットにある程度合わせた仕様を作る」ことを前提にしてしまってはいますが) 以上、ご参考まで。