プロが教える店舗&オフィスのセキュリティ対策術

プログラマーを目指しているものです。

簡単なサンプルコードを作って先輩に見てもらったのですが
そのコードを見て「性格出るねーw」と言われました。
私としては、サンプルコードっぽく書いたつもりなのですが。。。

文章と同じでコードにも性格が出るのでしょうか?
また、性格が出てしまうのはプログラマーとして失格でしょうか?

A 回答 (7件)

プログラムには性格というか、個性が出ると思います。

一説には、英語を母国語とする人は英語を書く感覚でプログラムを書くと言いますし、プログラムが著作権法に定められた著作物になるということは、単なるデータではないと考えられているということです。

どこまでを個性というかは難しいですが、まず、何もコーディング規約が無いときにプログラムを書く書き方は、自分がどういうプログラムを読んできたか、どういうプログラムを書いてきたか、何を学んできたかというのが出ますね。日本のソフトウェア開発会社で面接中にプログラムを書かせるのは聞いたことが無いですが、欧米のソフトウェア開発会社で面接中にプログラムを書かせる時はそういうところも見ています。

これまで読んできたプログラムの影響を受ける最たる例はNo.1氏がおっしゃっているケースです。特に決まりがないときにどのコーディング規約に従うかというのは、これまで見たプログラムの最大公約数になっていないでしょうか。例えば、No.1氏が出していた次の例はこのコーディング規約の特に字下げのルールにまつわるものです。 (参考: http://ja.wikipedia.org/wiki/%E5%AD%97%E4%B8%8B% …
if(a=b){x++;}
あるいは
if(a = b){
x = x + 1;
}
コーディング規約は開発グループごとに全然違い、そこから生み出されたプログラムはみんなそれに従いますから、どのグループのコードを読んだかでかなり影響を受けると思います。ちなみに、コーディング規約にはこの他、変数名の付け方から、プログラミング言語の便利機能を使うか使わないか、どういう時に使っていいか (例えば、C++で例外を使うか使わないかなど) が書いてあります。 (参考までに: http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC% …

どういうプログラムを書いてきたかというのは、どういう人に指導してもらったかやどういう人のプログラムを参考にプログラムを書いてきたかというのももちろん大きな要因ではありますが、どのプログラミング言語をこれまで使ってきたかというのも大きな影響を与えます。例えば、慣れ親しんだライブラリーの使い方の癖から、関数の出力をどうやって出すかというのの癖が出ます。返り値、最初の引数に参照渡し、最後の引数に参照渡しの3種類がざっと考えられます。また、BASIC出身の人はやたらとgoto文を使ったり、大域変数を使ったり、sleepをloopでやったりという癖が出ます。手続き型言語出身だと関数型言語にを使っていても代入をしようとがんばります。

何を学んできたかというのでは、例えば、カプセル化を理解している人と、理解していない人ではプログラムの書き方が全然違います。それがわかっている人だと、一部を変更してもその影響が一部に留まるようにプログラムが書けますが、そこの所がわかっていないと一つのファイルの変更がプログラムの多くに影響をあたえるような実装になります。構造化プログラミングやオブジェクト指向プログラミングの知識はそのカプセル化をする時の大きな手助けになります。


他の人もおっしゃっているように、コーディング規約に則っていて、何をやっているのか思想が理解しやすく、不具合が混入したら発見しやすく、そもそも不具合を混入しにくく、冗長でないなら、バリバリ個性があっても問題ないと思います。レビューをすると、その個性の部分がかみ合わなくて無駄な対立をすることもありますが、その場合はその人のコードなわけですから、極力書いた人のやり方を尊重したほうが良いですしね。

ちなみに、もし、サンプルコードっぽく書いて性格が出るとしたら、サンプルコードの性格をあなたの性格だと思われているのか、それとも、変数名の付け方が変わっているかくらいしか思いつきません。
    • good
    • 0
この回答へのお礼

個性なのですね。
詳しい説明ありがとうございます。

お礼日時:2012/02/04 10:49

まぁ間違いなく性格は出るでしょうね。



コーディング規約に反するようなものならNGですが、極端に読みづらい書き方でなければ「動けばOK」な世界でもありますが。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/02/03 22:11

元プログラマーです。



コーディングには性格がでます。

失格ではないですよ。

他の人が見てわかりやすく書くことが重要です。

新人さんか学生さんかしら?

仕事ではOJTでいろいろ教えてもらえるから、謙虚に学んで優秀なプログラマーになってくださいね。
    • good
    • 1
この回答へのお礼

がんばります!ありがとうございました。

お礼日時:2012/02/02 20:58

どんなのかいてもそのせんぱいはきっとおなじこというでしょ

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/02/02 20:02

自分もSEで飯を食べてきましたので、その経験からお答えします。



プログラムのコーディングを行う場合、ある程度の性格が必ず出ます。
それは、プログラムを組む時に、どのような手順で組み立てていくのか、その考え方によって左右されるからです。
簡単な例で言うと、全体を考えてから細分化して組み上げるのか、もしくはコアな部分を消化しつつ全体をまとめて行くのかの違いなどがあります。

プログラマーとして失格かどうかですので、性格が出ること自体は問題ではありません。
問題なのは、バグが出にくいコードを書けるかです。
自分で作ったものが自分で直せない人が随分います。これではプログラマーとして失格です。

それには、メンテがしやすいものを書くように心がけること。
つまり、誰がコードを読んでも解り易いものにする。

プログラマーとしては凝ったものを作りたくなりますが、仕事では複雑なものよりも単純明快のものの方が重宝されます。
関数や変数なども、使用用途を明記したコメントを入れるように心掛けるのも忘れずに。
あとは出来る限り上から順に読んでいって理解できるように、トップダウンのコードを書くようにするといいと思います。

最後は1度失敗したことを繰り返し失敗しないのがプロです。
自分にとって良く起こすバグが何度も組んでいると解ってきます。それを繰り返さないように対策をするのが大事なことです。

最初はだれでも素人です。問題はこれからどれだけプロ意識が持てるかだと思います。頑張ってください。
    • good
    • 0
この回答へのお礼

やはり性格が出るのですね。
ありがとうございました。

お礼日時:2012/02/02 20:02

性格といっていいかどうかは判りませんが、癖は出ます



読みやすく書く人、書いた本人も解読に苦労するような書き方をする者 多種多様人それぞれです

特に段落の取り方、コメントの入れ方には個性が出易い部分です
    • good
    • 0
この回答へのお礼

個性が出るのですね。ありがとうございました。

お礼日時:2012/02/02 20:02

>>文章と同じでコードにも性格が出るのでしょうか?



まぁ、多少は。

コメントきっちり書くタイプの人もいれば、
ある程度分かればいいや。という事で簡略的に書く人。
一切書かないアホもいますが。。。


他にも、「ともかくできりゃいいんだろ」と言わんばかりにif文使いまくったりするような奴とか
何でここで同じ処理かましてんねん?と思うような処理コードを連続で入れてるような場合とか。。。



長くなればなるほど、なんとなーく差が分かります。

改行場所はきっちり決めてあるのか、とか、ただ長くなったからテキトーに改行すりゃいいやと思う奴とか。。。


if(a=b){x++;}

↑んな感じに、「ともかく短くコンパクト収めたい奴」
とかもいるし、逆に自分は

if(a = b){
x = x + 1;
}

↑とかな感じに、ともかくステップごとに並べたかったり。とか。



まぁ、だからといって、そのプログラム見て「いろんな性格の奴いるな~」程度以上は思うこともありませんけどね。

きっちりしてる性格の奴のプログラム触ったら、それに合わせればいいだけなので、逆に楽ですし。うん。


>>また、性格が出てしまうのはプログラマーとして失格でしょうか?

あなたに一言。

「所詮プログラマー」です。

正直、今の世の中、プログラム打つだけじゃ食っていけません。
勉強すると分かるとは思いますが、それを管理する人やら企画する人の方がよっぽど重要です。

プログラムなんて、「企画(設計)されたとおりに動けばいい」ものですし。


そう考えると、コメント文があろうが無かろうが、短かろうが長かろうが、どんな無駄な処理やってようが、
企画(設計)どおりにプログラムが出来ていれば問題ないです。

ただ、「じゃあ、テキトーにやるわ」とした場合、大体はのびませんけどね。(実力が。

自分ひとりがそのプログラムを触るわけでもない場合は多いので、「他人のために、分かりやすく、きっちりしたプログラムを書く」
必要はありますが、もちろん、自分が再度見る可能性も当然あるわけで。
「他人のためでなく自分のためにも分かりやすくきっちりしたものを作る」方が自分のためになります。



。。。まぁ、3年もやってみれば、なんとなーく意味が分かると思いますよ。


>>そのコードを見て「性格出るねーw」と言われました。

後は、「性格が出たところで何ら問題ない」という事を考慮すると
「とりあえず、先輩風吹かせたくて言うだけ言ってみた」って事もありますかね(笑





まぁ、「性格」というよりは、みんなやりやすい方法違うんだから、ソースの書き方に違いがあって面白いよね~。
程度の捉え方でいいと思いますよ。
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございます。

お礼日時:2012/02/02 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!