
超一流プログラマーになるには3万時間のプログラミングが必要 133
ストーリー by nagazou
経験値表記にすれば気が紛れるかも 部門より
経験値表記にすれば気が紛れるかも 部門より
あるAnonymous Coward 曰く、
https://gigazine.net/news/20210404-5-programmers-30000-hours/
プロになるには1万時間の練習が必要という1万時間の法則というのがあるが、ドナルド・クヌース(The Art of Computer Programmingの著者)やスティーブン・ウルフラム(Mathematicaの作者)クラスになるには、3万時間超のプログラミングが必要なようだ。
何事も一流のスキルを身につけるには1万時間の練習が必要とする「1万時間の法則」なるものがマルコム・グラッドウェルによって提案されている。この法則の自体の是非はさておき、プログラマーのBreck yunits氏は、実際に1万時間プログラミングしてみて、実際にその効果に自信を持てなかったそうだ。そこで自身が尊敬する著名なプログラマー25人にプログラミングに費やした時間を問い合わせたという。そのうち返答は5人あり、その結果をGitHub上で公開したという(GitHub、GIGAZINE)。
なお返答のあった5人は以下の通り。
- Donald Knuth 56000時間
- Rob Pike 30000時間
- Peter Norvig 30000時間
- Stephen Wolfram 50000時間
- Lars Bak 30000時間
いずれも3万時間以上プログラミングに時間を費やしており、yunits氏は次は3万時間を目指すとしている。
プログラムっていっても (スコア:1)
だれかの作った詳細仕様に基づいてプログラミングする人(金融系に多い)、
仕様自体を自分で考えてプログラミングする人では、
ずいぶん変わるのでは?
OSやコンパイラ、高度なライブラリやフレームワーク、webシステム等の開発者とかは、後者が求められるのでは?
Re:プログラムっていっても (スコア:2)
仕様書(入力と出力の定義)に基づいてプログラム作成するのはプログラマーで間違いない。
で、実際のプログラマーの仕事って例外処理、エラー処理を延々とやってるんだけどね。
後者はエンジニアって言うと思うな。
Re:プログラムっていっても (スコア:1)
いやまぁ、上級プログラマのことを「エンジニア」と呼んでるのは和製英語の範疇。
本来プログラマって相当に尊敬される職種のはずなんだけど、コーダーどころかパンチャーやモンキーテスターまで
プログラマとよんで祭り上げたブラック企業のせいで本来のプログラマには別の称号を与える必要があっただけの話。
まぁ「エンジニア」も線表引くしかできないクズも含むようになって、上級者はアーキテクトだのコンサルタントだの
よくわからん称号に昇格してしまったが。
Re:プログラムっていっても (スコア:1)
ああだ、コーダー
Re:プログラムっていっても (スコア:1)
現場作業員と建築士を混ぜるようなものなのでダメだと思うな。
ちゃんと区別しないから、稀に混じってるアーキテクトがコーダの給料で働かされる今のIT業界が出来上がってる。
Re:プログラムっていっても (スコア:1)
とはいえ、同じ会社で給料大幅に変えるのは、日本の会社と労働環境では許してもらえないから。
だからこそアーキテクトの会社とコーダの会社を分けるIT業界が出来上がってる。
大手製造業のように、同じ会社の社員でも採用も職種も呼び方も変えて、給料も倍以上変えるほうが健全だと思う。
Re:プログラムっていっても (スコア:1)
大手製造業のように、同じ会社の社員でも採用も職種も呼び方も変えて、給料も倍以上変えるほうが健全だと思う。
それはそれで問題あるんだよな。
採用時点では、その人の能力・伸びしろを完全に見極めることはできないので、無駄に高給を取っている人とか、その逆とかが出てきてしまう。
差を付けられないよりはマシではあるんだけど。
高給取りの技術職は、代わりにクビを切れれば、って話もあるけど、それはそれで…
Re:プログラムっていっても (スコア:1)
Re:プログラムっていっても (スコア:1)
能力による待遇差が無い・小さい制度がうまくいかないのは、いろいろな国や社会で実証されてきてるので。
そうなの?
割とクビを簡単に切れる制度なら、能力による待遇差をつける仕組みは、それなりに巧く行ってるようだけど。
Re:プログラムっていっても (スコア:1)
Re:プログラムっていっても (スコア:1)
どこも「捻じれて」ないと思うけど。
個人的には、「能力による待遇差が無い・小さい制度がうまくいかない」のは、「クビを簡単に切れる制度」だからではないか、と考えてる。
で、「いろいろな国や社会で実証されてきてる」のだとすると、「クビを簡単に切れる制度」でもそうなのか、と言う疑問を呈しているわけ。
「製造業」だけがそうだ、という話なら「捻じれて」るかもしれないけどね。
しかしそれは、プログラマの話をしてるところに「製造業」限定の話をぶち込んできたところから始まっているともいえるね。
Re:プログラムっていっても (スコア:1)
お客さんの要求仕様から仕様書を作る人が SE
仕様から設計を作る人がプログラマー
設計からコードを書く人がコーダ
と、過去に聞いた。
天琉陳(Teruching)
1万時間の法則 (スコア:0)
あれってエキスパートが頂点に立つまでの時間とかじゃなかったっけ?
TED Talkでそんなこと言ってる人いたような
Re: (スコア:0)
平均的な能力の人が、どんな分野であれ「一流」になるまでに1万時間の訓練が必要…のはず
Re:1万時間の法則 (スコア:1)
一万時間やって芽が出ないなら一龍にはなれないから諦めろ、と言う意味かも知れないぞ。
Re:1万時間の法則 (スコア:2)
> 一龍にはなれないから諦めろ
コイキングさんおっつ
Re:1万時間の法則 (スコア:2)
ラーメン屋の修行なのかなって。
Re:1万時間の法則 (スコア:1)
シャレにマジレスされてもなあ。
経験がこれを下回ったら一流である可能性は無いゼロ絶無
それは無いと思うな。時間がもっと短くても、一流に成れる人は成れる。
一流に成った人は、専業になるだろうから、結果、一万時間とか三万時間を経験することになるかもしれないけど。
ここで言っているのは、現在一流でない人が一流に成るために、最低どのくらいの経験が必要か、って話だろ?
「一流」の基準をどこに置くかにもよるけど、「一流」は努力すれば必ず成れる、と言うもんじゃないと考えるけどな。
例えばNBA選手の平均身長は200cmを超える。
それに対して過去最低身長は160cm。並々ならぬ努力があっただろう。
しかし、160cmの人達が同じ努力(もしくは10,000時間以上の練習)をすれば大部分がNBA選手になれるか、というと疑問だね。
30000時間 (スコア:0)
例えば仕事(年に240日)で1日4時間のコーディングとして年に960時間。
家で趣味(平日換算で年に240日)で1日3時間のコーディングとして年に720時間。
家で趣味(休日換算で年に125日)で1日6時間のコーディングとして年に750時間。
両方を足して年に2430時間。
…12~13年で30000時間になるのか。半分のペースでも25年程度。
頑張れば10年で到達も不可能ではないな。仕事を選ぶし、視力も落ちそうだけど。
Re: (スコア:0)
キーボードに「感謝」と書いた紙を貼ると2倍、
モニターに「ありがとう」と声をかけると3倍の効果が!
Re:30000時間 (スコア:1)
Re: (スコア:0)
バグからの伝言
Re:30000時間 (スコア:1)
(わたしの思いとしては)シャレで虫取り網を座席付近に立て掛けてみたのだが
周囲はそれを容認できなかったらしく非難轟々だったので撤去した記憶を有する。
Re: (スコア:0)
両手でやれば2倍、倍の高さにジャンプしてさらに2倍、回転すれば3倍!
「研修は3ヶ月だっけ?じゃあ経験3年だから」
Re:30000時間 (スコア:1)
「才能は先天的なものではない」「限界を超えるような訓練を1万時間続ければ1流になれる」って話
よく言われることだけど、努力を続けることができる、というのも、一つの先天的な才能じゃないかなあ。
こういう話は多分に「一流」「限界を超える様な訓練」の定義の差が議論を発散させるので、そこをまず明らかにしないとね。
例えば「一流」をオリンピックメダリスト辺りに置いちゃうと、努力ではどうにもならない場合が出てくる。
よし、頑張って3万時間 (スコア:0)
Hello Worldを書くぞ!
Re:よし、頑張って3万時間 (スコア:2)
こうして毎日一日一万回 感謝のHello Worldを行なった。
気を整え、拝み、祈り、エディタを開き、コンパイルする。
一連の動作を一回こなすのに当初は5~6秒
一万回コンパイルをこなすまでに初日は18時間以上を費やした。
二年を過ぎた頃異変に気づく。
一万回コンパイルを終えても日が暮れていない。
かわりにスラドに入り浸る時間が増えた。
Re:よし、頑張って3万時間 (スコア:1)
その名人は、気合だけでHello Worldを出させることができる域に達した。
名人は、コードについて、語ることが無くなり、書くこともなくなった。
ある日、コンピュータを見た名人は「これは一体何ですか?」と聞いた。
それ以降、世間のプログラマは、コンピュータにアクセスするのを恥じたと言う。
--- 民明書房『客家阿伝』より
Re: (スコア:0)
All programing and no play makes Jack a dull boy.
っていうコメント行がいっぱいはいったコードをそのうちに書いてそう
ウルフラムには (スコア:0)
50000時間のうち何時間がMathematicaなのか聞いてほしい。
Mathematicaで何万時間プログラミングしたところで、Cの一流プログラマーにはなれないような気がするので
Re: (スコア:0)
Mathematicaの一流プログラマーの方がレアスキルじゃね?
分散 (スコア:0)
初等教育に英語を加えると その分国語の学習時間が減って どっちつかずになる!
なんて話も聞きますが多数のプログラミング言語を使い分ける場合はどうなるんでしょ?
Re:分散 (スコア:1)
母国語がスペイン語で、初等教育にポルトガル語を学ぶ、とかなら大した問題にはならない気もする。
ということなんで、似たような系統の言語を学ぶ分には特に問題ないのでは。
いろいろな言語を学ぶと、それはそれで勉強にもなるし。
まあ、最初ある程度のレベルまでは、一つに専念した方が良い気はするけど。
Re:分散 (スコア:1)
C/C++ができても、Prologができるようにはならない気がするけどな。
まあ、Prologプログラマにどんだけ需要があるのかって問題もあるが。
だらだらプログラミングしているだけの簡単なお仕事です (スコア:0)
単に3万時間プログラミングしてれば超一流になれるなんて、うらやましい職種ですね。
と他業種の方々から批判されてしまいそうですけど。
「職業プログラマーとして3万時間を生き残れた者だけが真のプログラマーと名乗るがよい」という事かな。
さっさと管理職になった奴は敗者、でOK?
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:2, すばらしい洞察)
池江璃花子の努力は絶対裏切らないじゃないけど
こういうのって超優秀なプログラマー(になった人たち)がそうなるのにどれだけ時間を要したかを聞いた結果であって
じゃあ、だからって、一般の凡人が同じだけ時間かけたら自ずと超優秀なプログラマーに全員なるかって言うとそれはまったく違う話なんじゃないの?
水泳の話で言えば、優勝者に聞いたらそりゃ努力は裏切らないとか努力が報われたとかいう話をしがちだけど
実際は普遍的な真理としては努力は裏切る場合もあるし報われない場合もあるし
プログラムの話で言えば、同じだけの時間をかけても超優秀なプログラマーに必ずしもなれるわけがない
だとすれば、この数字に一体何の意味があるんだと
むしろその時間数の間どういう努力をしたのかを具体的に尋ねてくれたほうがまだ役に立ちそうではある
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
> > 池江璃花子の努力は絶対裏切らないじゃないけど
> 池江の件は本人はそんなこと言ってない。
> 単に努力が報われたという感想を述べたら外野が話しずらしていちゃもんつけだだけ。
言ってますがな。
報道で確認できるだけでも
NHK: 【インタビュー動画・全文】池江選手「努力は必ず報われる」 [nhk.or.jp]
Number: 「努力は必ず報われる」池江璃花子、復活優勝&五輪内定… 15歳だった“5年前の4月4日”も鮮烈な泳ぎで涙があふれた [bunshun.jp]
東スポ: 池江璃花子「努力という定義も難しいな」 “必ず報われる” 発言で物議 [yahoo.co.jp]
日刊スポーツ: 池江璃花子選手の「努力は必ず報われる」感動呼ぶ言葉にある意味/為末大学 [nikkansports.com]
いずれをとっても「努力」「必ず」「報われる」の3要素は欠かさず入っているし
実際の発言部分を抜き出してみても、上の引用した順に
NHK: 「努力は必ず報われるんだなんていうふうに思いました」
Number: 「努力は必ず報われるんだなと思いました」
東スポ: 「努力は報われるんだなと思いました」
日刊スポーツ: 「『努力は必ず報われると思いました』というコメントがありました」
となっていて、東スポだけは「必ず」が抜けているけれど、NHKの引用からするとそこは意図的にか知らないが抜け落ちたのだろう
結論として、池江璃花子が「努力は必ず報われる」と発言したことは揺るぎない事実だし
努力は必ず報われるのならば努力は絶対裏切らないも同義で、言い方の違いに過ぎない
「外野が話しずらしていちゃもんつけだだけ」なんてのは失当
Re:逆は真ならず (スコア:1)
Re: (スコア:0)
プログラマーとして一流だからって職業プログラマーとは限らんし。
データサイエンティストとかでもプログラミング能力めっちゃ高いの居るよ。
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
そもそもデータサイエンティストって、プログラマーの一形態に過ぎないでしょ。
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
田植えだけど経験したいなら、田植えだけを手伝いつつ、南から北へ移動すれば年に何度もできるね。
ついでに、南半球とか、熱帯で二期作をやってるところとかも周ってみるか。
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
そのパンチャーさんの派遣とやらは、自分で派遣先を選択できないだろ?
田植えの手伝いは、自分で手伝う先は選べるよ。受け入れ先からも選ばれるだろうけど。
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
8時間睡眠で残り全部プログラミングなら2年かからず10000万時間になるよ。
# 別に学業や趣味ならいくらやっても違法でなはないから
Re:だらだらプログラミングしているだけの簡単なお仕事です (スコア:1)
8時間睡眠で残り全部プログラミングなら2年かからず10000万時間になるよ。
私の計算では、17,123年程になるはずだが。
プロ・グラマー (スコア:0)
何時間運動すればなれるでしょうか。
# プログラマーは不摂生な生活をしている人が多い印象があるけど、容姿端麗で清潔感のある人の割合はどれぐらいだろうか。
3万時間やれば一流になれる (スコア:0)
こういうのを見ると「3万時間やれば一流になれる」と信じ込む人が多いよね。
単にその人達の回答がそのくらいの時間であったというだけであってそれだけ時間をかければなれるというものでもない。そもそもその時間の算出方法だっていい加減でしょう。
費やす時間を目標にするんじゃなくて、何をできるようになるという目標立てなよ・・・
Windowsのフィルタードライバ作れるようになるとか、Windows/C++でGUIアプリ作れるようになるとか、なんでもいいからさ。
Re: (スコア:0)
そろそろ君はWindows以外で何かやってみようか
努力は夢中にかなわない (スコア:0)
っちゅうはなしじゃないの。
Re: (スコア:0)
エキスパート⇒10000時間の練習
は真
10000時間の練習⇒エキスパート
は真ならず
って話じゃないの
Re:Knuthって超一流プログラマーなの? (スコア:1)
// あえて誤変換そのまま