• 締切済み

プログラマーの方にお聞きしたいことがあります

閲覧ありがとうございます。プログラマーになっておよそ1ヶ月の者です。 今の現場で進捗通りに作業が進まなくて困っています。 「他の人がコミットしたのを見れば似たような機能あるから大体わかるよ」と言われたのですが、その通りに入力したらエラーが出たりと進捗が進まないのです。 今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。 ここで、「どうしようか」ということで、二つのことで迷っています。 (1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。 →進捗は改善するが、長い目で見てそれでプログラミングが身につくか? (2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる →進捗が遅れてしまうが、バグが出た際に対応しやすいかもしれない。土台が(1)よりも固まっているので 理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが。。アドバイスをよろしくお願いいたします。 また、同じ現場の先輩方はコピペをしているような速さでコードを書いているので凄いなと思います(´・ω・`)ふえーん

みんなの回答

  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.5

16歳からFORTRANでコーディングを始めて44年のおじいちゃんからの所感ですが。 1.アルゴリズムを覚えましょう。Quick Sort, Binary Searchが基本です。出来る人のコードを理解してコピーするか、本屋のアルゴリズム解説本を試して見ても良いです。が、コピペは、バグの温床になるので、止めましょう。IEEEの書籍に最新のアルゴリズムが載っています。英語が得意ならどうぞ。私は、最近10年間やっていませんが。www 2.構造化プログラミングの手法を身につけましょう。関数化して、見通しの良いコードを書きましょう。ベタ書きして、IF文に4個ぐらいフラグが並ぶと、もう改造が出来ません。 3.オブジェクト指向に拘る必要はありません。周りは拘っていると思いますが。オブジェクト指向の継承の概念、インターフェースの概念は妄想です。覚えない方が良いです。 4.データは、単純な配列に格納して、ソートしておきましょう。10万個の配列でも大丈夫です。が、オブジェクト指向に騙されて、Listに10万個保存すると、検索に時間がかかり、動かないプログラムになります。 5.フローチャートでは無く、PAD図で内部仕様が書けるようになりましょう。Microsoft VisioがPAD図を書くのに最適です。PAD図の基本図形は自作して下さい。私も自作しました。 6.石の上にも4年です。我慢に我慢です。4年我慢すると独り立ちできます。

  • Broner
  • ベストアンサー率23% (129/554)
回答No.4

 ブロック化したフローチャートを作り、エラーがどこで、何故起こるのか、チェックすること。 それが、早道で、将来の補修に役立つ。 もしかしたら、フローチャートが、作れないの ?

  • hiodraiu
  • ベストアンサー率15% (448/2823)
回答No.3

> 理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが そんなことを真面目に考えているって時点で、全然駄目だと思いますよ。 何方にせよ他人に依存してしかコードが書けないってことですよね。使えそうなコードがない場合は手詰まりですか。そもそも、似て非なるコードが、いくつも存在するってことは、大きな問題ですよ。そういう基本的なことも勉強していないってことですよね。 今まで、そういった教育は受けてたことがないのでしょうか。また、仕事をする中でコードレビューのような他者にコードを見てもらったり、書いたコードの説明をしたりって経験はないのでしょうか。そうだとすれば、今の環境で何年過ごしても、実力が向上することは難しいと思いますよ。

  • tachin
  • ベストアンサー率29% (134/454)
回答No.2

1)>身に付かない。単なるコーダーです(それ以下と言われるかも)。    なんら考えが身に付かないです。 2)>そのコードは本当にコミットしたものなのですか?。どのレベルで単体・結合テストをして不具合無しと判断されたのか?。テストの質は、システムの質に影響がでます。質の低い会社だとまともなテストをしてないです。まあ、この点は、システム規模や昨今の多様なプロジェクトの進め方で一慨には言えませんが。

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.1

>>(1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。 プログラマとしては、ありえない、失格!! >>(2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる プログラマ初心者は、これ。 >>同じ現場の先輩方はコピペをしているような速さでコードを書いているので凄いなと思います(´・ω・`)ふえーん そりゃあ、初心者じゃあないのだから当然だけど、コピペのように早くコードは書けないのが普通だと思う。

関連するQ&A

  • プログラマー 進捗

    閲覧ありがとうございます。プログラマーになって1ヶ月の者です。 今の現場で進捗通りにいかなくて困っています。 「他の人がコミットしたのを見れば似たような機能あるから大体わかるよ」と言われたのですが、その通りに入力したらエラーが出たりと進捗が進まないのです。 今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。 ここで、「どうしようか」ということで、二つのことで迷っています。 (1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。 →進捗は改善するが、長い目で見てそれでプログラミングが身につくか? (2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる →進捗が遅れてしまうが、バグが出た際に対応しやすいかもしれない。土台が(1)よりも固まっているので 理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが。。アドバイスをよろしくお願いいたします。

  • 先輩プログラマーさん教えてください!

    4月からITの企業へ入社し研修を受けております。 今会社でプログラミングの研修を行っているのですが、 ちょっと困ったことがあり質問させて頂きました。 現在の研修内容はAndroidのカレンダーのアプリを 3日間で完成させなさいというものです。 私は恥ずかしながらPHPしかできません。 できるといっても初心者レベルです^^; 今日から作業をしているのですが、 Javaの基礎を知らないため、ネット上のソースを見てもよく分からず、 かといって基礎から勉強すればあと2日ではとても間に合いません。 今日は ネットのサンプルソースを見る   ↓ 理解できない   ↓ 基礎の勉強   ↓    時間がない! の繰り返しで、結局いろんなサイトのソースを コピペしてちぐはぐ状態のまま作業が終わりました。 部分部分でこういう処理をしているんだろな、 という想像はつきますが 全体的な処理は完璧に理解できません・・・ そもそもオブジェクト指向というものに不慣れで クラスやメソッドがよくわかりません。 どこから手をつけたらいいか分からない。 そんな状況です。 前置きが長くなりましたが、 先輩プログラマーさんは私と同じ状況の場合、どうしますか? 参考にしたいので、どうかご教授お願いいたします。

  • 仕事が終わりません

    24歳プログラマー男です。 仕事が終わりません。 Androidからの移植案件ですが元のコードがバグりまくり、送られてきているソースコードに欠落があるためビルドできない、現在バグが60件余あり仕事が終わりません。提出は近日中です。 アプリ自体はマーケットからインストールして実行してみたのですがバグりまくりでひどい状態でした。 毎日のように「バグ潰せたのか」、「すべてのバグを納品までに潰せ」、「進捗が悪い」と圧力をかける電話がかかってきて、正直かなりきついのですが仕事を初めて経験が浅いのでこういう厳しいプロジェクトの対処方法がわかりません。どのように対処していけばいいのでしょうか? 僕が思いつくのは国外逃亡か、出来ないものは出来ないと開き直って後は野となれ山となれ作戦です。 アドバイスください。

  • プログラマ1~3年目の人が参考とすべきコード

    はじめまして。 タイトルのとおり、プログラマになって経験が浅い人が 読んでおいた方が良いコードを教えて頂きたいです。 オープンソースとかで公開されているものがたくさんありますが、 経験が浅い初心者でも読みやすいものとか参考になるものは ありますでしょうか? 言語は、CかJavaが良いですが、他の言語でも良いので教えてください。

  • 新人プログラマが休業

    いつもお世話になっております。 もうどうして良いのか分からないので質問させてください。 私は入社2年目のプログラマです。 入社以来、家電製品を開発しています。 以下は過去プロジェクトでの出来事です。 ****** 納入前検査にて、同僚プログラマの実装した機能が正常に 動作せず、製品がリセットを繰り返すことが発覚しました。 その機能担当は先輩プログラマAさんでした。 Aさんはプライドが高く、いつも他人を見下す人です。 Aさんの機能がバグっているのに、Aさんはデバッグせず、 なぜか新人のBくんに「残りをよろしく」と頼んで 自分は知らん顔をしています。 私はAさんの後輩なので、何もいえません。 チームリーダは忙しく、バグを検出したことを知っていますが Aさんの行動まで見えていません。 ****** 増員など色々ありましたが、上記製品は無事開発が完了しました。 しかし・・・残念ながらBくんは休業中です。 私がフォローしてあげればよかったのですが、私は自分の実装で忙しく 何もできませんでした。 途中から本当に忙しくAさん、Bくんのことは見ていなかったのですが、 Bくん休業の理由にAさんからの無理難題があったのではないか?と 思っています。(ただの推測です、すみません) Bくんのことは総務やリーダが対応してくれているようです。 Bくんが休業したのは、私のせいかもしれません。 Aさんのような方とどのように付き合えば良いのでしょうか? 社会経験の無い私は、ただただAさんは酷い人に見えます。 アドバイスください。

  • Subversionのインポート操作を禁止する方法

    Subversionのインポート操作を管理側で禁止する方法がありましたら、教えて下さい。 プログラマではない人も、Subversionを使ってもらって、ソースコードを管理しています。 しかし、「Checkout」と「Import」の意味を間違えて、ソースコードを大量にコミットしてしまうケースがしばしばあります。 何らか禁止する手段はありますでしょうか?

  • プログラマにとって「アルゴリズム」や「データ構造」の知識は必須ですか?

    最近の、いわゆるパッケージソフトウェアや、Webアプリケーションの開発においては、 必要なコンポーネントをインポートして部品を組み立てていくイメージで コードを書いていくというのが主流だと思います。 ほとんどのプログラミング言語には、すでに便利な関数やパッケージが用意されており、「アルゴリズム」や「データ構造」といった知識はあまり必要になりません。 例えば、データをソートしたい場合、クイックソートなどで自分で実装しなくても、すでにソート関数が用意されているので、その関数を使用すれば良いわけです。 そのような環境においても、プログラマにとって「アルゴリズム」や「データ構造」の知識はやはり必須ですか? 時々、 ・「優先順位付き待ち行列」くらいは、スラスラ実装できなければ、プログラマとしては半人前 ・「離散数学」をしっかり理解していないと、プログラマとしては致命的 などという話も聞くのですが、皆さんの意見を聞かせてください。

    • ベストアンサー
    • Java
  • プログラマー システムエンジニアだった人、の人に質問です。

    プログラマー システムエンジニアだった人、の人に質問です。 私、2009年入社新入社員です。 配属当時は1人で勉強させられて 今はVBA(access)を主にしています。 C#もちょこっとやりましたが入門程度なのと時間がたっているので ???なところです。 そんな私も1年が経過するところなのですが、 未だに引用、コピペを使い、それを少し変えてプログラムを組むことしか出来ません。 実質半年くらいですが、やはりこれでは今後が厳しいですよね? 処理は浮かぶものの、全然コードがかけません・・・・ 覚えが悪く全然だめです。 今は改修作業をしていて、まだ平気なのですが これから新規に色々作ることを考えると今のままではまったくだめだなぁと実感しているのとともに 向いてないのかと思い始めています。 上記のことから私はプログラマとしてダメなのでしょうか? 最近は非常に悩んでいます・・・・

  • 日本のプログラマ業の常識の是正

    お世話になります。 当方今年度プログラマとしてとある企業に就職した者ですが、かなりのプログラマ職へのギャップに戸惑っています。 ギャップというのは、とにもかくにも残業時間の多さと作業効率の悪さです。 単純に言って、作業効率が悪いから残業が多いからということなのですが、そこまで残業が多いのは日本だけという話です。 このままでは死ぬときに残業の人生しか思い出に残りそうもありません。(言いすぎですが。。みなさん人生の短さを考えなさすぎる。そして死ぬときに気づく。) 細かい理由や不満点を挙げるときりがないのですが、ネット上でプログラマの待遇を調べた結果、自分の状態はまだマシなほうだと気づきました。(午前9時派遣先出社の午後6時定時、ふだんは午後8時帰りでラッキーの残業月平均45時間で、残業代はすべて給料に繁栄されます。また、派遣先によっても異なるようです。) 以下の点を正せばきっともっと残業時間は減り、時間あたりの単価が上がると思っています。 ・居眠り禁止 ・世間話の私語は控える(そのくせ残業することになってさらには罪なき同僚に仕事まわしてくるんだから。。) ・チームリーダーは、少なくとも部下のソースを読み理解できる者にする(フレームワークやインターフェイスくらいつくってよ。。) ・社員は毎日1時間は自主的に学習すること(もしくは会社側で学習促進の行動をとる) ・管理職は細かい予算の削減(社員をギュウギュウ詰めにするなど)の前に、現場プログラマの脳を開放することに気を使うべき(電話や私語をはじめとする割り込みによる思考の中断防止策検討と実行等) ・PMは進捗日程作成段階で、メンバーが定時に帰ると仮定すること。(1日あたり2時間ずつ残業させて・・・という考えは間違い) ・PMはそのPMが担当するプロジェクトで使用する技術について、名前を知っているのみではいけない。(「○○という技術でできるみたいだから、それ使って。」・・・PプロジェクトMマネージメントとは言わない。PプログラマMマゾ化計画。) おおまかに見て上記7点が重要と考えますが、他にもまだまだまだまだ考えはあります。 このような根本的な是正は、今の日本で、しかも入社して1年も経験を詰んでいない自分のような平社員が、主に派遣を生業とする企業を変えていくことは無理なのでしょうか。 ・・・無理という声が多そうですが、是非肯定的でいて、しかもなんらかのアドバイスが頂けるとうれしいです。(会社そのものでの是正は無理でも、派遣先の環境を幾分よくする方法等) 尚、今回の質問は、転職や起業などは範外でお願いします。

  • pre-commitでリビジョン番号を反映する方法

    ソースコードにリビジョン管理用のテキストファイル(revision.txtとします)を用意して、コミットする度に、リポジトリの最新リビジョンと同期させたいと考えています。 pre-commitでコミット直前に作業コピーのrevision.txtの内容を書き換える方法で一応実現できたのですが、作業コピー上のrevision.txtのパスを指定する必要があり、メンバー毎に作業コピーのパスが違う環境では使いづらいものになってしまいました。 コミット直前にリポジトリの中身を直接書き換えられることができれば、クライアント側の環境に依存しない形を実現できると考えているのですが、このようなことを実現する方法はあるのでしょうか。 逆にソースコードに最新のリビジョン番号を埋め込みたい場合、別のよい方法があれば教えていただきたいです。

専門家に質問してみよう