飛ばない豚

主に読書について書いています。

「プログラミングを独習するには10年かかる」メモ

hachibeechan.hateblo.jp

はっちん(id:hachibeechan)さんが結構前に書いていたエントリーを読んで、初心者向けの書籍は読まなくていいよって書かれていて、そう言えばそんな話を読んだなぁと思い出して、再度読んだのでメモ。

 

Teach Yourself Programming in Ten Years 日本語訳

英語読めないので、日本語訳版です。

 

ちなみに著者のピーター・ノーヴィッグさんはサンマイクロシステムズで上級研究員やったり、NASAの研究所で計算科学部長やったりと計算機科学の世界では重鎮です。

どうしてみんなそんなに急ぐの?

同じように数日や数時間で学べると売りこむ本が無限のバリエーションで並んでいる。

 この当時は248件くらいだったみたいだけど、もう今どきそんなもんじゃない。「7日でできる」が含まれるものだけで194件だ。

 

最近の世の中はすごくスピード感を要求されるからみんな、時間が無いのかなぁと思ってたけど、こういうの好んで読む人は大概は技術や知識をお手軽に身に着けようとしてる人が多かった。

お手軽につけた技術や知識なんかにお金払ってくれる人なんてそうそう居ないから、仕事にしようとしてる人は、絶対ひかっかっちゃだめ。

 

96%がコンピュータ関連書籍

日本はコンピュータ関連以外もお手軽が流行りすぎ、大学の経済が10時間とか6年分の英語を1週間とか、ちょっとなめすぎでしょう。

みんなだって必死こいて勉強した事が1週間とかでマスターされたら、やってらんないよね。

 

『3日で学ぶ Pascal』といった題名が意味するところを分析してみると:

 まぁ3日じゃ大した事、学べないよって話だけど、まったく同意。精々「Hello World!」に毛が生えたくらいじゃないだろうか。

プログラミングは特に複合的に覚える事がたくさんあるから、本当の初心者だと3日じゃマジでどうにもならない。

何か一つでも中級以上だったら、そこで身につけた知識が生かせるからぎりでコード書けますくらい言えるようになるかも。

でも、フレームワークとかまでおぼえなきゃって話なら到底無理。

 

プログラミングを独習するには10年かかる

研究者 (Hayes, Bloom) によると、チェス、作曲、絵画、ピアノ演奏、水泳、テニス、そして神経心理学や位相幾何学の研究を含む、広範な分野のいずれについても、専門技術を身につけるにはおよそ10年かかるそうだ。

良く言う1万時間だと一日3時間弱で10年だけど、研究とか含んでるの見ると3時間とかしかやらないとは思えないので、違うかなぁ。まぁでも仕事でも10年って言ったら30前後位だから、確かに自他共に認める専門家ってなると一般的にはそれ位かかると思う。

 

ここでプログラミングで成功するための、私なりのレシピを紹介すると:

書かれている事に大体同意。気になったところを上げていくと

もし望むなら、四年間大学で(あるいは大学院に行き、更に)学ぶこと。

 これは出来ればやっといた方が良いと思う。自分は4年で中退してるし、そもそもプログラミング関係ではなかったから、そこそこ先端の事やってる会社で働いているとき、周りの言ってる事を理解するのに苦労したから、行っとけば良かったと後悔した。

 

理解するために高校数学からやり直して、大学のテキスト読んで、どうしても分からない事は、わざわざそのテキストを書いた教授に聞きに行った事すらある(まわりの人に聞くと「そんな事も知らないんだ」と、思われて相手にしてくれなくなる人がそこそこいたため・・・この状態から再びちゃんと話し合えるようにするまで苦労した)。

 

あとあと、情報科学系の大学生なら皆知ってる様な事が結構あるとわかったので、大学で勉強してないだけでこんなにスタートラインが違うとはと思った。

 

さらに理系だったので、はしょれる部分があったから何とかなったけど、文系とかだと相当上の大学(試験にちゃんと数学がある)とかじゃないとどうにもならなかったと思う。

 

まぁ専門卒とか独学でも体系的にちゃんと勉強してる人とかだと知ってたりするので、個人の資質の問題かも知れないが、資質がなくても大学のカリキュラムに沿って勉強してたら知ってるはずなので行っておいて損はないはずだ。

 

あと大卒かどうかで給与ベース違うところも結構あるし。

給与大事です! 

 

他のプログラマーの後についてプロジェクトに関わること。人が書いたプログラムの理解に取り組むのだ。

これはすごく大事。プログラムが好きじゃなくてたまたま就いた仕事がプログラマーだったって感じの人は大概この、人が書いたプログラムの理解が欠けてる。

 

コピペしてきて何となく出来てるけど、よく見ると変なコードになってる事が多くて後々禍根を残すことになったりする(コピペ元のコードは変じゃないよ、コピペ元はその目的にあった形で書いてるけど、それをそのまま自分たちのケースに適用するのは間違っているのだ)。

 

ちゃんとそう言うことしてないと、絶対にエラーなんて発生しないもしくは発生した時点で、プログラムじゃどうにもならないみたいなところでエラーを拾うロジック書いて、ユニットテストでどうやっても発生させられなくて泣くはめになったりする。

 

「コンピュータ・サイエンス」の中に、「コンピュータ」があるのを忘れてはいけない。

これは結構ちゃんとした感じの人にも忘れてる人が多いと思う。

人が読みやすいコードに固執して、確かに読みやすいけどコンピューターにやさしくない書き方をしていたりする。これものちのち変な不具合の原因になったりする。

 

人間のためにコードを書いてるわけじゃない、コンピューターに実行させるために書いているのだ。

 

まとめ 

何気にこの「プログラミングを独習するには10年かかる」って記事、後半は独習するには10年かかるってじゃなくなって無いか?って思いつつ、言ってる事は良いこと言ってると思うのでプログラミングしてる人は一度目を通しておくと良いと思います。

 

あとはっちんさんの記事に書いてあるけどある程度、プログラミング出来るようになったら書籍読むのは良いと思う。

 

大概の書籍は整理されて書かれているので複雑な事をやるときは理解するのにすごく助かるので。

 

スポンサーリンク