こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

プログラマー 進捗

閲覧ありがとうございます。プログラマーになって1ヶ月の者です。

今の現場で進捗通りにいかなくて困っています。

「他の人がコミットしたのを見れば似たような機能あるから大体わかるよ」と言われたのですが、その通りに入力したらエラーが出たりと進捗が進まないのです。

今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。

ここで、「どうしようか」ということで、二つのことで迷っています。

(1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。
→進捗は改善するが、長い目で見てそれでプログラミングが身につくか?

(2)他人がコミットしたソースを見て「これがどういう事を意味しているのか」理解、or理解できないなら質問して作業をすすめる
→進捗が遅れてしまうが、バグが出た際に対応しやすいかもしれない。土台が(1)よりも固まっているので


理想としては(1)と(2)の長所を兼ね備えているのがベストなのですが。。アドバイスをよろしくお願いいたします。

投稿日時 - 2017-02-10 23:29:56

QNo.9292405

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

どちらもだめですよ。

ご自分でおっしゃるように、(1)は自分の技術力が向上しません。また、ある目的には適切でも自分の目的に完全に合致しているわけではありませんから、完璧なんていうことが望めません。
そもそもコピペしたもので障害がでたら、人のせいにするんですか。
(2)は誰が考えたって迷惑でしょう。
あなたがつくったものを真似しようとする人間があなたにとっかえひっかえ語り掛けたら、うれしいですか。

そもそも実力というのは、カラダで覚えなければならない。これはスポーツでも楽器でも同じでしょう。
「水泳がうまくなる」なんていう本をいくら読んでも泳げるようにはならないのです。
だからカラダで覚えるようにしましょう。

C言語なんかあたりまでは、ぴっちりと教えるはずなんですが、「トレース」ということをやっていないのですか。
これはアルゴリズムのためにやることですが、あらゆるファンクションポイントに有効のはずです。

局面というのがあります。ある処理をするということですが、その前と後がある。
その前がどういう状況だったか書き、その処理でどこがどうなり誰がこう変わるというのを予測、期待するのです。
そして実行後にどうなったかをみて、想定内でないことが起きたらそれを考えるという習慣です。

一番原始的な「計算」だったら、全変数の一覧表をつくり、ある瞬間にこの変数はいくつである、というのを全部書き出してみる。
そうすると、ある場所で、壊さないつもりの変数が壊れてしまうことがある。それを考えるのです。
C言語の場合これを意識しないと、ポインターのせいでメモリがばしばし壊れてもわからないという間抜けなことをしてしまいます。

計算でなくてもこの原理は同じで、前の状態、あとの状態を記録し観察するという習慣が必要です。

それを支援するために、プログラム内にデバッグ用のコードを挿入したりする技があるのです。
変数がそれぞれ何であるかをファイルに追記するサブルーチンを作って、あちこちで、自分の位置を特定できる情報を与えて呼ばせるのです。
そうするとそのログが、プログラムの動き全部をトレースしていることになります。
また、通らなければならないところに制御がこない、というエラーも察知できます。
このデバッグ用のサブルーチンコールは、全部同じスペルでかかれますから、「文字置換」でコメントにすれば実動作では何もしません。

こういうのは、プログラミングを学ぶときに普通教わるものだと私の世代は思っているのですが、あなたはならっていないのですか。

投稿日時 - 2017-02-11 09:40:17

ANo.1

今は絶対に(2)です。
(徹夜して進捗は守って)
設計要件に対して、「何でこんなコードを書いたんだろう。」と解析、理解ができていないと将来が危ないよ。
新規案件を製造する場合、コピーする元も無いんだから・・・
それまでには、コピペしながらもたくさんのコーディング技法を学び、疑問に思う部分は教えてもらい、「すごい」と思うコーディング技法は盗みましょう。
コーダーは2~3年で卒業して、いずれは設計に食い込めるようになりましょう。
そうしないとSEになれないよ。

正直な話し、コーディングレベルなら単金の安い会社に発注します。
(もちろん技術力も必要)
安価で信頼できる会社に仕事を回します。
逆を言えば、コーダーなんて誰でもできるので信頼性が無ければアウト!
そのためにも、「何で、何で」といろいろ悩み、技術力を上げていきましょう。

恒に「なぜ? そういうことか。 こうしてみれば」など、問題定義し、改善策を模索すること。
すると、自然にスキルが上がり、周りからも頼りにされるよ。
今は、一人で悩まず、勉強させてもらいなさい。
そして、SEへと成長していってください。


・・・
(1)進捗を改善するためにひたすら他人がコミットしたソースをコピペする。
→進捗は改善するが、長い目で見てそれでプログラミングが身につくか?
今までは他人のソースを真似しながら、やってきました。しかし、実装が完了して、コードテストの段階で引っかかってしまいます。
→「これではダメだな」と気がついているじゃん。
頑張れ!!

投稿日時 - 2017-02-11 09:30:36

あなたにオススメの質問