人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

60%の人間はプログラミングの素質がない
というのは本当でしょうか?
http://cpplover.blogspot.jp/2012/05/60.html
プログラミングできる人とできない人との間の深い溝
http://d.hatena.ne.jp/masatoi/20090707/1246965336
確かに、プログラマで
できる子は教えなくてもできるので、教える必要は無いし、
教えないとできない子は、教えてもできないので、いつの間にか他部署に行っている気がします。
プログラマの一番の教育は「教えないこと」?
新人にプログラマの適性があるかどうかの判断の材料に「教えないとできないか」どうかというのが自分の中ではあるような気がしますが、他のブログラマの方はどう思いますか?


●質問者: garyo
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 13/13件

▽最新の回答へ

1 ● australiagc
●8ポイント

非常に興味深いですね。特に「構築したメンタルモデルを、ブレずに一貫して適用できるかどうか」という点は、大いに賛同できます。

個人的には、プログラミングというものは素質さえあれば、他の工学系の技術と比べても非常に簡単に習得できるものだと思っています。一度も学術的にプログラミングを習った事のない人でも、良いモノを作る事がありますからね。

プログラミングの大半は既存のコードやライブラリの応用であって、自分の技術力で一からソフトを構築するような事は非常に稀です。既存のリソースを効果的に使い、カスタマイズしていく作業は、まさに「一貫した規則を形成して適用」することだと思います。

プログラマの育成において「教えない」というのは少し極端かも知れませんが、実際に動いているコードを与えて実行の仕方だけを教え、後は好きなように応用させてみるというやり方が良いのではないかという気がします。私自身、下手に一から教えられるよりは、大量のサンプルコードを貰った方が学びやすいですし。

と、根拠の無い私見、悪しからず。


garyoさんのコメント
ありがとうございます。 >個人的には、プログラミングというものは素質さえあれば、他の工学系の技術と比べても非常に簡単に習得できるものだと思っています。 同感です。

JavaBlackさんのコメント
>個人的には、プログラミングというものは素質さえあれば、他の工学系の技術と比べても非常に簡単に習得できるものだと思っています。 プログラミングをやったことない奴はそういう幻想を持つようですが、 そんなことはないのでご安心下さい.

garyoさんのコメント
>プログラミングをやったことない奴はそういう幻想を持つようですが、 私は職業プログラマなので「プログラミングをやったことない奴」には当てはまらないですね。 実際プロのプログラマにとってプログラミングというのは「容易いこと」です。遊んでいるようなものなので、「こんなのでお金もらっていいのかな」と思うくらいです。 会社でプログラム組んで、家に帰って「あー疲れた。気分転換にプログラムでも組むか」というのが本当のプログラマだと思います。 そのため、誰でもプログラムなんて組めると思っているし、実際組めない人がいて説明しても出来ないのが自分には不思議でした。本当にプログラム組める・組めないは人によって何かの要因があるというのは面白い考えなので、質問してみたわけです。

australiagcさんのコメント
情報工学が難しいなら、電子工学や機械工学、ましてや航空工学なんてそれこそ幻想の領域ですよね…。ITと違って、ミスしたら高確率で人命に関わるっていうプレッシャーもありますし。 と、それらからドロップアウト(笑)した僕でもITならデカイ顔してプロ名乗れます。帰宅して気分転換にプログラム組んでるだけでも、応募してもいない仕事の依頼が来たりしますからね。他の工学分野じゃありえない位、自由の利く分野だと思っています。

2 ● パパトモ
●8ポイント

プログラマにも色々なレベルがあり、求められる資質も変わってきます。

個人的には、プログラミングの資質は、いわゆる絵心に似ていると思っています。誰かにおそわるわけでもなく、絵が描ける人というのがいます。一方、いくら教えても上手く描けない人もいます。そして絵が描けたとしても、それとプロの絵描きの能力は別ものです。

The camel has two humpsは、以前話題になり聞いたことがあります。初級プログラマの素質を持っているかどうかは、確かにそのように感じています。記号を素直に捉える能力と、論理的に物事を考える能力は別物だと思っていますが、プログラミングを行う能力はその2つの能力を要求しているように思います。

資質を備えているのは基礎として必要です。が、プログラマとして生き抜くための勉強は必要であり、教えてもらえる方が良いと思います。いくら適正があっても、仕事として能力を発揮できるかは、また別の話だと思います。

例えば、あるプログラマはゼロから作る能力は長けているが、他の者が書いたコードを読み取ることができず、プログラムの変更を行うにあたりゼロから書き上げるということを見たことがあります。少人数で構築しているときには天才的な能力を発揮するかもしれませんが、グループでシステムを構築しているときには、リスクが大きくなりすぎて使えないプログラマということになってしまいます。

ちょっと話がそれてしまいましたが、プログラミングの資質だけではプログラマになれないということは、明らかだと思います。


a-kuma3さんのコメント
ぼくは、ここ数年で料理をするようになったのですが、料理とプログラムを組むことって、すごく、共通点が多いなあ、と思います。 トップレベルに達するには、資質が必要なんでしょうけど、ある程度のレベルに達するのに必要なのは、きちんとした知識と、手順をきちんと守ること。 それが分かった上での、アレンジだったりするんだなあ、と。

garyoさんのコメント
ありがとうございます。 >例えば、あるプログラマはゼロから作る能力は長けているが、他の者が書いたコードを読み取ることができず、プログラムの変更を行うにあたりゼロから書き上げるということを見たことがあります。 ありますね。先日も何度説明しても共通の関数を使うというのが理解できず、独自の関数を自作して、同じ処理の使いまわしを出来なくしたり、似たような処理は山ほどあるのに、説明しても理解できない人が居ました。結局その人の担当分は破棄して3人くらいで書き直しましたが、プロジェクトが遅延して、顧客から責められました。

3 ● a-kuma3
●8ポイント

面白い論文だとは思いますが、60% を置いてけぼりにする程度の教育しかできていない、という数字だと思いました(文中でも、触れられてはいますけどね)。
プログラミングは、芸術では無く技術なので、ある程度のところまでは素質が無くてもできるようにするのが、教育の役割だと思います。

思うに、プログラミングは、それをすることが目的ではなく、なんらかの動くプログラムを作ってなんぼだと思うのですが、教育で教えられるのは、プログラミング言語の文法がメインになることが多いと思います。
なので、通りいっぺんの教育には期待してませんから、そういう子たち(新人とは限らない)には、こんなことを教えるようにしてます。

他にも、細かいことはいっぱいあります。
ログはこういう内容を残さなくちゃいけない、とか、デバッガを使えるようになろうね、とか。


もちろん、素養というのはあると思います。
「メンタルモデルの形成と適用」というのは一理あると思いますが、モチベーションをどう作れるのか、という面が大きいと思うんです(特に、仕事の場合)。

で、質問に戻って、『「教えないとできないか」どうか』ですけど、文法以外にも、教えた方が良いことがたくさんあるよね、ってのがぼくの思いです。


# 三日三晩、語り合えるようなネタですねえ :-)


garyoさんのコメント
ありがとうございます。 >で、質問に戻って、『「教えないとできないか」どうか』ですけど、文法以外にも、教えた方が良いことがたくさんあるよね、ってのがぼくの思いです。 出来る子は、文法だけ知ってるので最初は色々説明が要りますが、ある程度説明すると似たようなコード見てプログラムが書けるようになってくるので、だんだん質問しなくなってきます。サンプルコードがない処理の時にやり方を説明するくらいです。 教えないといけないことは山ほどあるのですが、必要に応じて教えていけば、そこそこ動くものは作ってきます。

4 ● tak
●8ポイント

まずそもそも素質の意味が、質問者さんや読者が思ってる意味とは異なる意味で使われているようです。
教育上の...より、学術的な意味で

新人にプログラマの適性があるかどうかの判断の材料に「教えないとできないか」どうかというのが自分の中ではあるような気がしますが

これも、
多分、「教える」の意味が、人によって大きく異なり、
同じ言葉を違う意味(直ちには分からない違い)で使っているので、
意味の齟齬を意識することなく、実際は意見が合ってるのに合ってないと思ったり、
違うことを言ってるのに同じことを言ってると勘違いします。





質問の直接の答えは、
知らないことは知りようが無い
ので、
教えなければ第0歩も踏み出せません....
という訳で、

プログラマの教育だろうがなんだろうが、「教えることしか出来ない


パパトモさんのコメント
そうですね。論文は純粋に学術的な所で、プログラミング能力が一般的にどう分散しているかということですね。その後の話はありませんね。 気をつけなければいけないのは、質問文中の2つのリンク先の日本語解説には、論文中にはない主観がすでに入っている事ですね。 論文を直接見る限り、教育前の適正の分散がどうなっているかだけです。教育云々を議論するためのベースにはなるかもしれませんが、論文自体は教育そのものに関してコメントしていませんね。 もし教育まで突っ込んだ実験なら、教育後にどう変化するかも統計を取らないとダメですね。どのような実験をするかを考えると、非常に難しいと思いますが・・・

garyoさんのコメント
ありがとうございます。 自分でも新しい言語を覚えるときは、最初はわけがわからずにただサンプルを打ち込んで動かしているうちに、だんだん特定のあることをやるためにはどこを変更しないといけないかわかるようになり、自分の作りたいプログラムが組めるようになります。 ある程度わからない所はお約束(呪文)として書いているうちにそのうち判るようになるというのはあると思います。 派生開発や修正の場合はソースのどこを変えて、どこを残すのかを見極めるのができるかどうかが、重要になる気がします。

a-kuma3さんのコメント
>> だんだん特定のあることをやるためにはどこを変更しないといけないかわかるようになり << ということが、モデルを構築する素質、ということなんですかねえ。 質問にある論文を見るまでは、「自分にフィードバックをかけられるかどうか」ということだと思ってました。

5 ● koutarou
●8ポイント

>60%の人間はプログラミングの素質なし。本当?
「素質」というよりも、適性がある人、ない人はいると思いますが、プログラミングが好きだ。理想の職業だ。自分に適している。と思う人自体は、少ない気がします。

>新人にプログラマ適性、判断材料?
判断材料になると思います。

(1)教えなくてもできる人
経験者。未経験でも好奇心がある。自分が学んできた分野を転用できる(論理的思考、数学、法学、将棋など)。性格的に適している。

(2)教えないとできない人
未経験者。好奇心がない。やりたくない。好きになれない。学んできた分野を転用できない。

僕は、新人のプログラミング教育を担当したことがあるんですが、教えなくてもできる人は、非常にセンスがいい人だと思います。知的・肉体的体力があり、頭がいい人です。
建築でいえば、見よう見まね、我流で建てる事ができる人です。
ただ、フォローしなければ、我流で建てた建築物が雨漏りするようなトンデモ建築になることもある。基礎工事は大切だな。プログラムは建築物と同じだなと感じますね。


garyoさんのコメント
ありがとうございます。 >ただ、フォローしなければ、我流で建てた建築物が雨漏りするようなトンデモ建築になることもある。基礎工事は大切だな。プログラムは建築物と同じだなと感じますね。 そうですね。

1-5件表示/13件
4.前の5件|次5件6.
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ