【12日目】達人プログラマーが面白い
達人プログラマーという著書が非常に面白い。というか技術的な面は置いておいて考え方の面ではこれ通りにやればいい気がして仕方がない。
いつも忘れがちなことに気づかせてもらえた。それは自分のプロジェクトに使われている技術に興味を持ち、その技術について学ぶことである。
いつも勉強はしようと思うのだが、関係のないものばかりを優先的にやってしまう。
考えてみればこれは変なことである。例えばunity合宿に1ヶ月間参加して、復習の時間になったらネットワークをやっているようなものである。
どちらもプログラマーとしてためになるかも知れないが、せっかくunityをやっているのに復習では違うことをするのであればもったいないとしか言えない。
なので少なくともまずはプロジェクトに関わることを優先的にやっていく。そしてそれでも余裕ができたなら別のものを学んでいく。
関連性が濃いものから薄いものへ。年間を通してやっていけば関連性が低いものもやっていける。
OSや低レイヤーのものでもいいし、単純に何かを作ることでもいい。
それではまた。
【読書メモ】太陽を創った少年、僕はガレージの物理学者
<どうして読むのか>
何かを学ぶ際に天才の考え方の一端に触れるのは楽しい。以前はビジネス書などHOW to本を読みあさっていた。
いわゆる効率を上げる系の本である。正直そちらの方がしっくりくる感覚はあった。理解はしやすいし、すぐにでも実行できる。
ただ、どうもそんなものとは次元の違う考え方があり、非効率を超越したようなやり方に魅力を感じてしまった。
例えばアルゴリズムの問題を解く際に、5分考えてわからなければ答えを見てその解き方をマスターするべきだという主張をしている人がいた。
これなら進捗もわかりやすいし、かなり効率が良い。実際その人はトップコーダになっているような人だった。
ただ、自分の好きな偉人たちはそんなことをやっていなかった。ウォズやファインマンさんは答えを教えようとしたものならブチギレるようなタイプだった。
人の回答を信じないで自分で全て解き直したり、本を読んだり調べたらすぐにわかるようなことをまずは試してみる人たちだった。
この人たちは1週間や1ヶ月それ以上の期間で一問しか解けない場合もある。
それに比べて答えを見る人たちは1週間もあれば20問や下手したら100問以上を解けるようになる。
では、どちらの方が良いのだろうか?効率で考えたら答えを見る方である。だが、実際に世界を変えるようなことをやっている人たちは自分が納得するまで自力で解いてる。
そう思った時にこの本に出会った。17歳の天才少年が核融合炉を作ってしまい、どんどんと世の中の問題を解決していっている。
どうしてこんなことが可能なのか、天才やすごい人たちの考え方の違いはどこにあるのかが気になったため読むことに決めた。<読書メモ>
1 2章失敗の意味
→自分は失敗を極端に恐る。あまり失敗はしないし、挑戦もしない。安全だとわかり切ったものにしか挑戦しない。失敗が公的的な意味を持っているのはよくわかるがどうしても踏み出せない。何度も失敗する人たちはどう考えているのだろうか?
○ プロジェクトのどのステップでも 、その日のうちに完成させなきゃ気が済まなくてね 。
どのステップでも何でもいいから完了させる。これは非常に重要な気がする。
明日でいいや、となった時の明日は大概その時よりもやる気は下がっている。
ここまで終わらせると決めたなら終わらせることが1つ重要な事かもしれない。
○ 不安がってボンベ入りの重水素ガスを買ってくれなかった 。だから 、なんとか自分で作るしかありませんでした 」
11歳の少年が買ってもらえないから作るしかなかったという発想に至るのがものすごい。
ただ、何かを成し遂げたくて、その何かが必要ならばそれを成すためにはどうすればいいのかを考えていくそこに至るというのもわかる。
○歯が立たないことに挑戦することで 、テイラ ーは 、たぶん知らないうちに 、学習することは失敗しないことより価値があると考えるようになっていたのだ 。
歯が立たないことに挑戦することでこそ学びが得られる。
○ 「成長型マインドセットを持っている生徒は 、知的能力は伸ばせるものだということを理解しています 。生徒たちは 、自分がどれほど賢いのかを心配したり 、周囲からの承認を求めたりすることではなく 、向上することに力を注ぎます 。より多くを学ぼうと努力し 、さらに賢くなるのです ( 1 ) 」
今の俺に必要なものはこれ。というのも、周囲からの評価を気にして身動きが取れなくなってしまっている。
焦りだけが募りどうしていいかわからない。
○ 失敗を分析し 、あちこちに助言を求め 、情報などを得られる新たなソ ースを見つけていった 。
簡単な問題から進めていくと、こんな簡単な問題を聞くのはどうか、どうやって解こうかという方法にフォーカスされることになる。
無理難題に挑むと人見知りなどしている暇はなく、手段も選んでられなくなる。それによって学びが多いに得られる。
1 5章天才はどこからやってくるのか
→結局のところ1番気になるのはここ。はじめに書いたがどういう人が天才になるのかである。
○ 自分の子どもが何かをうまくやれるようになりたいと考えたら 、それを止められるものはない
ギフテッドの特徴の1つとして執念が恐ろしいところにある。他の全てのものが関係なくなって、それだけのために全てを費やす。
気になったことを調べ生半可では満足しない。ではどうしてそんなにも執念深くなるのか。
幼少の頃からギフテッドと騒がれた人ならまだしも、いやそういう人ですら、食事になれば途中で止められ、注意されてきたはずである。
それらを超えて執念が生まれるのは何なのだろうか?
○ 行動の動機は彼らの内面にあります 。
行動の動機は内面にあり、科学的良心というのはここにあるのかもしれない。
自分を騙さないで自分のためにする。人助けをするのも自分のためであり、自分がやりたいから以上にはない。
○ 彼らのギフテッドの能力は 、関心のある分野について狭く 、深く発揮されるのである ( 7 ) 。
あらゆる分野に通じるようなマルチな人物ではなく、狭く深くということはどう考えてもボトムアップ式な学び方では対応できない。
どこまでも諦めずに探求し続けたに過ぎない。
○ 幼稚園に入る前から本をむさぼり読んでいる
ノンフィクションの本を貪り読むのはどういう動機からなのだろうか。
気になったことの答えを探すためだろうか?気になったことを探すときの記事を探す際の集中力は確かに何となく読むよりははるかに集中力が発揮される。
そしてやはりノンフィクション。教わらないでということは自分で試行錯誤して結論を見つけることが良いのだろう。
問題を考える時に答えを見た時と、自分で考えた時では考える範囲は大いに違う。
俺も1つ1つ試していくしかない。
○ 「専門家と素人の腕前にみられる大きな違いは 、それに劣らず大きな差異である 、計画的訓練の時間数にみられる違いに起因すると考えられる 」と結論している ( 2 2 ) 。
これは最高のニュース。学んでいる時間が違いすぎるのかもしれない。
プロのピアニストとピアノ教室のピアノを練習している時間の差は年齢とともに広がっていっていた。
そこなのかもしれない。1つの分野に絞り、その分野に多大な時間学び続けることがもっとも重要なのかもしれない。
○ ほかの人よりも短い時間で蓄積できるのだ
才能が必要がないわけではないし、才能によって限界はあるかもしれないが挑むに越したことはない。
○ トレ ードオフによって埋め合わせができることもある (たとえば平均的な知能レベルの人でも 、モチベ ーションが高ければ 、能力以上の成功をおさめられる )
トレードオフには限界はあるが、そうでなくても努力でどうにかなる部分は大いにある。
ではモチベーションを保ち続けるにはどうしたらいいのだろうか。それこそが内的動機だと思う。
1 6章アマチュア科学とメイカ ーム ーブメント
→何かを作るというのにかなりの抵抗が発生する。無意識レベルでかなり避けてしまう。そうでない人たちはどう思い、どう考えて行なっているのだろうか?
○ S F的なノリで 、とりあえず挑戦してみようという人たちも多いんです
始めるきっかけはかなり簡単。だが、それを成そうとした時に技術的な問題が出てきて挫折してしまう。
それを避けることができた人たちはどうしたのか?
○ ジョブズ自身も 、ヒ ースキットによる探求の経験についてこう語っている 。 「途方もない自信を与えてくれた 。人は学習や探求を通じて一見とても複雑な事柄を理解できるのだと 」 (三木訳 )
ジョブスですらキットから始めている。そういったものが完成することを学んでいくことで、楽しみが増えるのかもしれない
他の人たちもこういった化学実験によって養われている。俺は子供時代に経験していないから今簡単なキットから始めていく。
○ 生徒の実社会での経験に関連した研究プロジェクトもやらないようでは 、科学がそんなに楽しいわけもない 。
実社会と関連のあることは確かに楽しい。ペットボトルロケットのようなものだけでも楽しいし、水が一気に凍ることや、砂糖が光るなど楽しい
○ 「人間にとって最もよい学びの方法は 、事実や数字を丸覚えすることではなく 、問題を探求したり 、調べたりすることです 」
暗記するのではなく探求すること。
探求することは調べ続ける、考える続けることでしかない。
【11日目】もうブレないようにするために
前日の回答としては2つある。
1つは続けてみることしかないと思う。結果を求めすぎ、人と比べすぎ。そういったものがある。
今日完了する、1週間で完了するだけの成果を目標に頑張ればいい。
小さく始め、小さく完了させていく。何があろうと出来そうな目標を完了させていく。
完璧に真似することだけを考える。とてもシンプルで頭を使わないような。
ハマりにくい人のメリットは浮き沈みが激しくないことだと思う。葛藤に悩まされることはあるが、ハマらないことでも普通かそれ以上を保つことはそこまで難しくない。
なので続ける。自分ごとだが、読書を習慣にしたくて、年間50冊を目標に本を読みだした。
月4冊ペースでラノベやビジネス書など薄い本など関係なく、読み進めていった。時には絵本も1冊として数えていた。※漫画は除いていたが
ラノベやビジネス書を読んだことがある人ならわかると思うが1時間〜2時間くらいでラノベやビジネス書は読めてしまう。
それを月に4冊。かなり簡単な目標だった。だが実際どうだろうか。年間では達成できたが月に1冊しか読まない日もあり、最後に一気に帳尻を合わせることになってしまった。
今まで本を読むなど読書感想文以外で読んだことのないレベルだったのだから仕方ないといえば仕方ないのだが。そんなレベルだった。
そうやって苦労しながらやっていき、とうとう3年目に入った。するとどうだろうか。今では月8〜10冊くらいは読めるようになり、年間100冊ペースである。
日本の読書量で言うなら上位5%以内に入る読書量にまで達した。しかも今読んでいる本のほとんどは技術書か学術書である。
専門性も高くなり、難しいが読めないことはない。平均読了時間(kindleでの)が20時間くらいのものも読めてしまう。
どうしてそこまで行けるようになったのだろうか?正直特にすごいことはやっていない。
読書時間を確保し、続けただけである。やる気のあるなしに関わらずできる目標をこなしていただけである。
深く考えず、シンプルに時間をかけ続けただけである。
そうすると確かに読んだけどあまり理解できなかったという欲求や成果が上がっていないということが出てくる。
そこで葛藤は生まれる。読書量を減らして読書ノートでも作った方がいいのではないか、難しい本を読んだ方がいいのではないかと。
そういった葛藤ある。必ず起こる。ほかの読書家の人に会って知識量に驚かされ、自分の不甲斐なさに打ちのめされることもある。
すごい読書家の読書術などに踊らされることもある。そういったことに悩むのは大いに良いことだが、シンプルな年間の目標だけは達成する。
50冊と決めたらやり方にこだわらず50冊。読書ノートを作ろうが、すごい読書術を使おうが達成する。
だからこそ目標は最低限にする。目標を立てる時は大いにやる気がある。読書を始めようと考えた時、目標を立てる前の1週間は本を1日1冊読めていた。
だから月100冊くらい余裕だと思ってしまった。なんなら25冊くらいいけるのではないかとも思ってしまった。
だが、これは一番やりたいことが読書である時に限った話である。読書習慣のない人がそんなものを1年間続けるのは困難である。
しかも25冊では工夫をするための余白が存在しない。やり方を変えると破綻するやり方である。
そこをぐっと堪えて本当に最低限の目標にする。最後の1週間でまとめてできるような目標を立ててしまう。
そうやって少しずつ増やしていけばいい。読書の理解力に悩むことはあるが、成長を楽しめている。
今ではこんな難しい本も読めると考えると楽しくて仕方がない。
そしてもう1つが、完了させることである。
プログラマーになってから知識をつけよう、マスターしようと躍起になってやってきたが、正直成果は上がっていない。
理解するためにたくさんの本を買ったが正直わからないし、理解したとしてもすぐに忘れてしまう。
新しいことを入れては古いものを忘れそれを繰り返すだけになってしまっている。
これではやる気に繋がらない。穴を掘っては埋めるのとなんら変わらない。
その分野に詳しくなるにはどうしたらいいのだろうか?研究者はどうしているのだろうか。
それが1つずつ終わらせていくことだと思う。コンパイラが気になるならそれをまずは真似しながら作ってみる。
完全にパクリでいい。徹底的にパクる。手を動かしてパクる。工夫も要らないし、アイディアも要らない。
相手の言いたいことを理解することのみに徹する。もっとこうすれば、これでは意味がないのではなど考えなくていい。
パクればいい。真似すればいい。
自分の考えなど入れなくていい。その分野のプロの意見を全て受け入れることに徹すればいい。
釈迦に説法という諺があるがまさにそれで、その分野の専門家に対して、成果の上がっていない人が、その考えはどうかと思うと意見しているようなもの。
書いてある通りに書いてあることをすること以上にしなければいけないことはない。
工夫はしない。新しい考えは必要がない。それ通りにそれを理解することだけに従事すればいい。
これら二点をしていく。
続ける。そしてパクり、完了させる。
終わらないで次に進まない。完了させて次に進む。終わらせることは大切。
面白くない本に当たっても、面白そうなところだけ読んででもいいから完了させる。
終わったと言うことが成功体験につながる。
【読書メモ】人生を変える習慣のつくり方
<どうしてこの本を読むのか>
何事にも飽きやすく、身につかないことが自分は多い。筋トレも60日続いたかと思うと1ヶ月間やらなかったり、そのまま1年近く辞めてしまったりしてしまう。
以前にこの本を読んだ時に朝のルーティンや夜寝る前のルーティンを実行し、意志力を一切使わずに朝から読書、筋トレ、健康的な食事などを行えた。
さらには仕事から帰ってきた時に、いつもは携帯をいじってはSNSを何度も見返したりともったいない時間の過ごしていたがそれもパタリと辞めることに成功した。
そういった恩恵を受けていたが、新しい環境に変わりそれらが一切合切なくなってしまった。
原因もわからず、ただただ、自分の不甲斐なさに打ちのめされていたため、もう一度手に取った次第である。<読書メモ>
○最初に理にかなった選択をすればその後選択をする必要はなくなる
自分は何かを何度も選択することがよくある。どういった勉強法が一番効率が良いのか?何をすればいいのか?
そういったことによく悩まされることがある。だが実際問題もっとシンプルでいい。
いつもこれくらいなら、これなら、こうゆう方法ならと曖昧な判断基準により無駄にリソースが割かれてしまっている。
それにいつも悩まされて、結論は何度も変わるわ、結局悩んでいるのは目くそ鼻くそ程度の話で、目的を完全に忘れている。
アルゴリズムを学ぶにはどうすればいいのかに囚われてアルゴリズムの勉強をしないような、そんな感じになってしまっている。
それでは意味をなさない。目的を明確にし、そのための考えはもう変えないことを決断する。
○自分の提唱した理論が正しいかどうかは試してみないとわからない
結局行動でしか答えは得られない。
○この習慣を身につける目的は何かを常に自分に問う
最初はなんとなくでいいと思う。太ったからのような単純なもので。
ただ、自分の場合は特にだが、目的と手段が入れ替わる場合がある。
筋肉をつけ腹筋を割ることが目的なのにそれとは関係のないことばかりに目がとられてしまい目的を見失う。
例、腹筋を割りたいの食べ物を大量に取るなど。
○ 周囲とうまくやっていこうとすれば 、周囲のことが理解できるようになる 。
欲求が初めにこないとうまくできない
○ クエスチョナ ーは自分で価値があると思える習慣は続けるが 、あくまでも習慣の効果に満足できる場合に限る 。
一番習慣にしやすいのは納得すること。その筋トレや読書がどれだけ有意義なのかを理解することが自分にとって一番大切。
○ 始めたがりは 、新しい習慣をつくることを楽観視しすぎるところがある 。
新しいことを始めるのは好きである。なによりも楽しい。ただ、億劫なのも確かである。
考えなくてはならないことが多すぎる気がするから。
○ 欲求は 、それを否定することではなく 、それが現実になる可能性の存在によって強くなるのだ 。ウィリアム ・ジェ ームズは次のように述べている 。 「欲求は 、それが決して満たされることがなければ 、驚くほどの早さで餓死する 」 。
逆を返せば欲求が満たされる可能性があればあるほど良いのかもしれない。
お金がないと外食をしようと思わないのと同じで、それを叶える可能性を下げれば下げるほど良くなる。
欲求が生まれた時にそれを満たせる可能性が高まれば高まるほど欲求も大きくなる。
これはモチベーションにつながる。
【10日目】寝て起きてまた寝るまでハマり続ける人が理解できない
ハマるのが一番良いのはわかるがどハマりして動くのは自分には難しいという人へ。
遊びのようにハマり、それだけに集中するというような〇〇バカが注目されている。
没頭しろと。没頭できるようなものを探せと。ただ、正直難しい。特に普通科高校に進み、特に目的なく大学に行った人には難しいのではないだろうか。
自分がまさにそれである。やりたいことって何?没頭するってどうゆうこととなってしまった。
就職先を見つけるにも何がしたいのかがわからない。求められたことに応えるのは特に難しくないが、仕事人間や趣味人間のようにはなろうにもなれない。
アニメは好きだが、オタクと言われる人たちほどではなく、仕事はするがお金があるなら働きたいとは思わない。
何かをやりたいと思っても行動までには至らず、何かが楽しいと思っても2度目にはあまり繋がらない。
これを「まだ、どハマりすることに合っていないだけだ」と言われるのもわかるが、実際そうなのだろうか。
全てが中途半端に感じてしまう。実際今までもシステムコールをしてみて、コンピュータアーキテクチャをしてみて、ディープラーニングをしてみた。
それらを説明しろと言われても対して説明できない。せいぜい読んだ本の中の気になった部分を少し説明できるだけである。
やった時間は人より多い気がするが成果にも繋がらない。成果を期待しすぎているのか、それとも単純に量が足りないのだろうか。
やり方が悪いのだろうか。これらのことに現時点ででた回答を明日投稿する。
迷ったままだが、結論である。
【8日目】検索エンジンとは
検索エンジンとは、google やyahooのような、キーワードを入力することで、何億とあるwebサイトから特定のサイトを見つけてくれるものである。
今やgoogle のシェアが高く、その次にyahooやbingなどが続く。これらはどうして重要なのだろうか、またアルゴリズムとどう関係するのだろうか、見ていく。
検索エンジンに使われているアルゴリズムの中でも特に重要なものはマッチングとランキングである。
これら2つの精度によって効率は大きく変わる。
マッチングとは検索したいキーワードと合っているか調べる。「猫」について調べたいなら見つけたいwebサイトにも「猫」というキーワードが使われているはずである。
それらが書いてある記事を見つけてくるのがマッチングである。ただ、数億あるwebサイトの全ての本文から「猫」というキーワードを探してくるのははっきり言って時間がかかる。
それにひかかった何万ものサイトか見つけたい記事だとは思えないし、何万ものサイトが並んでいるだけではどれを読めばいいのかわからない。
それを解決してくれるのがランキングである。今日は疲れたので申し訳ないがここまで。すみません。