パスワードを忘れた? アカウント作成
6399538 story
プログラミング

プログラマーは誰もがなれるものではない? 140

ストーリー by hylom
プログラマー適性試験ってどんなのだろう 部門より
eggy 曰く、

「プログラミングを学ぶのに適した脳のタイプ」というものがあり、「プログラミングは誰もができるものではない」といった格言があるそうだが、Ars Technica記事がこの格言の正当性をQ&Aで問いかけたところ、大半がその正当性を認めたとのこと(本家/.Ars Technica記事)。

この記事で紹介されているRichard Bornat教授とRay Adams氏の論文によれば、学生らのプログラミング能力をグラフに表すと、「プログラミングのできる人」と「できない人」の2種類の人間があたかも存在するかの如く、2つの「釣り鐘状カーブ」に分かれるとのこと。しかもプログラミングの授業を開始する前に試験を行うことで、学生をこうした2つのグループにふるい分けることができるとしている。Ars TechnicaのQ&Aでは、格言の正当性はこうした研究論文によって証明されているとする意見に66票が集まった。

また、メンタルモデルを一貫して適用することができる能力の有無がプログラマーの資質に大きく関わるとするなどの他の論文には41票が集まった。一方の、誰でもプログラマーになれるとする意見にはたったの7票しか集まらなかったようだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by epgrec (43527) on 2012年09月20日 11時47分 (#2235311)

    プログラミングには抽象的なものを抽象的なまま頭に入れられるかとか、いろいろ
    その人が持つ性質が必要なんだろうとは思うけど、
    もっとベーシックなところで、自称機械オンチな人っていますよね。そういう人を見てると
    仕組みだとか規則性だとかを軽々と無視してくれたりすることがあるので、おっと驚いたりしますよ。

    いや、本人は無視しているつもりはないのかもしれないのかもしれないが、脳内でどういう変換が
    行われたのかが、わからないというか。世界の捉え方が違うんですね、きっと。

    そういう人はプログラミングは無論のこと、コンピュータにも馴染めないだろうなあと。

  • が、プログラムを書く仕事にはつけている。

    向いてないと実感するのはアルゴリズムとかを考えたり作ったり、効率化したりを考えるときかな。
    その辺のことをやりだすと自分でも驚くほど途端に効率も質も落ちる。

    この辺が向いてる向いてないに繋がってるような気がしてる。

  • by Anonymous Coward on 2012年09月20日 12時01分 (#2235321)

    元論文のリンクどこかで踏んだと思って過去記事みていたんだけど
    コンピュータサイエンスの学位って、本当に必要? [srad.jp]のプログラミングできる人とできない人との間の深い溝 (スコア:4, 参考になる) [srad.jp]の書き込みの
    http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]だった
    学位って、本当に必要?のトピックでもイロイロ書かれているが、自分の経験でも代入の基礎を教えた後に元論文の様な時系列で起きる変数の内容変化に対して「受容」できる人とできない人に分かれてる感じはあった。

    要するに納得いかない物は嫌いって事なんじゃないのかね。

    • by epgrec (43527) on 2012年09月20日 14時08分 (#2235454)

      代入に関しては抽象度を上げたせいじゃないかと個人的には思えるんですが、どうですかね?
      変数への代入というのはメモリやレジスタへの書き込みなので、それがわかってれば代入に
      戸惑うことなど無いと思えるので。

      抽象から入っていく分野って他にあまり無いですよ。たとえば電気と磁気の関係というのは
      最終的には抽象的な概念の理解が必須になるわけですけど、まずは目に見える
      コイルと磁石みたいなところを小学校からやるわけですよね。

      コンピュータの場合でも、アセンブリ言語からやってれば代入などに戸惑うことはないでしょう。
      8ビットCPUのアセンブリ言語なら1週間もあればマスターでき簡単なコードも書けるようになるので
      そこから始めれば相当に理解が容易になるんでは。

      高級言語はコーディングの効率を上げるために抽象度を上げているので、それをいきなり
      習得させると、そこで門を狭めることになる。
      考え方としては古いかもしれないけど、理解できないとか受容できない原因はそこに
      ありそうな気がするけど。

      親コメント
  • by duenmynoth (34577) on 2012年09月20日 13時15分 (#2235410) 日記
    体力と精神力に自信が無い人はやめといたほうがいい
    あと、胃が弱い人も向いてない

    #感受性が強いとか、繊細な人も向いてないかな
    • by shibuya (17159) on 2012年09月20日 13時45分 (#2235439) 日記

      でも

      「If I wasn't hard, I wouldn't be alive. If I couldn't ever be gentle, I wouldn't deserve to be alive.」

      (私立探偵フィリップ・マーロウのセリフ)
      みたいな両方兼ね備えていないといけない側面もあったりして。バランスの問題ですけど。

      親コメント
  • ・サブルーチンを使う/使わない
    ・グローバル変数を適切に使う/使わない
    ・変数の使い方が上手/下手
    ・変な名前のクラスを多用する/しない
    ・コメント(実装意図)を書く/書かない
    …とかそういうセンスのことなんじゃないの?
    #逆に言えば、これさえ適切にできれば上手下手はうやむやにできそうな
    #マじゃないから素人意見だけどID

  • by USH (8040) on 2012年09月20日 16時28分 (#2235587) 日記

    昔、先輩が、「料理のレシピをちゃんとかける人間はプログラムもできる」と言っていたなぁ。

    頭や体で理解している手順や仕組みを言葉として書き下せるかが、ポイント。

  • by Anonymous Coward on 2012年09月20日 9時07分 (#2235144)

    プログラミングってのは創作活動の一種なんですかね?(自分はプログラマーではないのでわからないのですが)
    だとしたら、適性がある、誰もができるものではない、というのはわかるような気がします。

    • by Anonymous Coward

      プログラミングってのは創作活動の一種なんですかね?(自分はプログラマーではないのでわからないのですが)
      だとしたら、適性がある、誰もができるものではない、というのはわかるような気がします。

      私もプログラマではないですが、プログラミング自体は創作活動とは別物であると思います。
      プログラミングは、コーディングともいいますがこの意味では翻訳です。
      創作活動は面白く意欲が湧くけれど、翻訳は面白くないです。
      つまり適正ではなく意欲の問題があると思います。

      • by Anonymous Coward on 2012年09月20日 9時47分 (#2235178)

        プログラミングは普通に創作活動でしょ。
        感覚的には数学の証明問題を問いてるのに近いかも。
        ある命題(仕様)を与えられて、無限にある解き方のなかから自分で一つの解を選んで、その手法で実装するわけです。
        プログラマーという人種は、できあがったコードを見て感動したり、書いたときのその人の気分やテンションも慮れます。
        もちろんどんなコードでもってわけじゃないですが、それは小説や絵画なんかの他の分野の創作物でも同じこと。
        優れた(あるいは酷い)コードを肴に酒ものめるし、語り草にもなりますよ。

        「翻訳」になるような粒度の設計書があるなら、翻訳に近いことも出来るんでしょうけど、そんなレベルの設計書書く時間かけるなら実装も終わっちゃうし。ほとんどのプログラマーは翻訳みたいない仕事は下っ端がやるものとして嫌がります。

        親コメント
      • ベーマガなんかに投稿してた頃は創作活動だと思ってたんですがね・・・・
        社会人になってから、趣味と仕事は別物ってのを痛感しました。

        #仮の締切、普通の締切、本当の締切、真の締切、限界の締切gesaku

        親コメント
      • 創作が好きか翻訳が好きかは、意欲の問題でなくまさに「適性」だと思いますが。

        私は創作も翻訳もどちらも好きなので、プログラマーはまさに天職です。

        親コメント
      • プログラミングは、コーディングともいいますがこの意味では翻訳です。

        プログラミング : 計画を作る(設計/創作?)
        コーディング : プログラム言語に変換する(翻訳)
        で、プログラミング≠コーディングでは?

        プログラマ = プログラミングをする人 ⇒ 創作活動?
        コーダー = コーディングする人 ⇒翻訳作業?

        # 直訳じゃない翻訳も立派な創作活動のような

        親コメント
      • by Anonymous Coward

        プログラミングってコーディングより広い範囲を指してる気がする。
        コーディングは確かに翻訳みたいなもんだけど、プログラミングはもうちょっと広い設計とかも入ってね?

      • by Anonymous Coward

        私もプログラマではないですが、プログラミング自体は創作活動とは別物であると思います。
        プログラミングは、コーディングともいいますがこの意味では翻訳です。
        創作活動は面白く意欲が湧くけれど、翻訳は面白くないです。

        あってるようで違っている気が。

        母国語が日本語の人が頭の中で考えた小説を文に起こす時は英語にしたら
        その人は小説家では無くて翻訳家になるの?

      • by Anonymous Coward

        翻訳の原本はどこにある想定のたとえなんでしょうか?

      • by Anonymous Coward

        #翻訳者に謝罪しろ。

        翻訳にもまあいろいろありまして。
        ある文章を翻訳するのにどのような単語を選択するかとか、
        きちんと翻訳されているのにちょっとした遊びが入っているとか。

        コーディングに関して言えば、機能の実装方法だとか最適化のしやすさだとか。
        たしかに差は作りにくいけど確実に存在していて、そこを追求できる人は面白さも感じ取れます。

        • by Anonymous Coward on 2012年09月20日 12時18分 (#2235341)

          ですね。
          翻訳した文には翻訳者の著作権が付きますからね。
          翻訳に創造性が皆無なら著作権が生じるのは不当になっちゃいます。

          普通の文章にも創造性のあるものからないものまでさまざま。
          翻訳にも様々。
          プログラムにも設計にも。
          そして適性にも。

          あたりまえっちゃあたりまえですね。

          親コメント
    • by Anonymous Coward

      勉強したからといって誰もが弁護士や医者になれるわけじゃないし。
      練習したからといって誰もがプロ野球選手やJリーガーになれるわけじゃないし。

      誰でもなれる職業って何だろう?

    • by Anonymous Coward

      海外でのプログラマって言葉は日本のSEに近いです。
      だから、日本で一般的に言うプログラマは単なるコーダーですけど、
      海外のプログラマは創作活動をする人だと思いますよ。

      • by Anonymous Coward

        >海外でのプログラマって言葉は日本のSEに近いです。

        これは違うでしょ。プログラマはあくまでもプログラマ。
        会社組織だと、業務内容はほぼプログラミングだけど呼称はエンジニアで、

        ・エンジニア(無印)
        ・シニア・エンジニア
        ・プリンシパル・エンジニア

        とか、階級が上がっていったりすることも。

  • by Anonymous Coward on 2012年09月20日 9時39分 (#2235169)

    コピペだけでほとんどの仕事が済むような事務処理のプログラミングと、独創的な未知のアルゴリズムが必要とされるようなプログラミング。

    前者はほとんどの人ができるようになると思うが、後者はほんの一握りの人しかできないのではなかろうか?

    • > コピペだけでほとんどの仕事が済むような事務処理のプログラミング

      コピペが大半としても、そのつなぎ目(?)のようなとことか、ちょっとした修正、変更箇所に、プログラマーの筋(あるいは、勘どころ)の良し悪しが出てくるので、ある程度の素質は必要と感じます。

      --
      -------- izyu
      親コメント
    • by Anonymous Coward on 2012年09月20日 9時48分 (#2235179)

      「独創的な未知のアルゴリズムが必要とされるようなプログラミング」は「ほんの一握りの人にしかできない」のは当たり前でしょう。
      多くの人ができるのなら独創的な未知のアルゴリズムではないのだから。

      親コメント
      • by Anonymous Coward

        誰でも書けるような駄文は「独創的な未知の文」と言えるかどうかですね

      • by Anonymous Coward

        まったくで。言葉遊びでしかない。

  • by Anonymous Coward on 2012年09月20日 10時00分 (#2235196)

    人間には2種類いる系の凡庸な表現に思えるんですけど、これ一般的な格言なんですかね。

  • by Anonymous Coward on 2012年09月20日 10時04分 (#2235199)

    人間扱いされないことに耐える気力と嘘ときれいごとの峻別ができる理性があれば誰にでも就ける職業ではないでしょうか。
    しかしもの扱いされて黙っていられないときがいつかやってくる。

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...