文書の過去の版を表示しています。


<>コンピュータを学ぶ

プロになるには、根本的な知識が必要である。 ググって開発したって、何の価値もない。プロとして価値がない。ほかの分野…たとえば医者では専門分野やメスの使い方ではなく、人体に関する広い知見が求められる。エンジニアだってそうだが、そうではない例がほかの分野より多いようだ。

コンピュータ・サイエンスは必要か否かの議論がある。少なくとも何かを作る(完成させるだけ)には、プログラミング言語に対する成熟だけでよく、あまり必要がない。

しかしもっとレバレッジのかかる仕事…ものすごく多くの人が利用したり、開発者自体のツール、となってくると性能上の要件が必要になってくる。多トラフィックの制約とか、マルチスレッドとかになると、この差は大きくなるらしい1)。 レベル1〜6くらいは文系でもいけるが、6〜10は数学やCSの知識がないとムリ。知識は後から効いてくるらしい。

体感としてすごくわかる。オレはわけもわからずツールを使ってるだけで、ツールを理解したり開発したりしているわけではない。 実際に思ったから恥ずかしいのだが、オレすごいんじゃね?というのは典型的な井戸のカエル的な感じだ。

数学/物理/情報科学専攻の院生なんかが競合なんである。 たぶん、オレが「PythonとかDjango使えるよ」と言ったところで、→で?「そんなの家電を使うのと同じくらいカンタンじゃないか。それより僕は3日でフレームワークや言語、果てはOS作ったけど?」とか鼻で笑われるだろう。当然何も言い返せない。

利用できるだけじゃなくて、改良、開発できるようにならないと。そのためには? 一段下のレイヤーを学ぶことになる。プログラミング言語はC言語で書かれてるだろう。じゃあ学ぶ。C言語は?…

限りはあるんだろうけど、ツールを利用できることは最低限のスタートだ。もちろん喜ばしいことだが、3日経ったら落ち着こう。スゴい人はもっと先を見てる:このツール、 どうやったらもっとよくなるかな?

基準

  • テストがあるもの(客観的に測れないと、慢心しがちだ)
  • 期間設定
  • 理論
  • 楽しくないのはやり方が間違っている(まず自分で課題や質問を考えてから、それを解消する方法を考える、とか)

緻密に設定するのもいいが、それはハッカー的学習方法として間違っている気もする。 楽しく、情熱、自主性を持ってやるんだ。

英語

いくつか読んでて楽しい記事を見かけるので、読んでいる。

今はこの感じで正しいと思う。段階によって変わる。

聞くとは、超高速で読むことと同じだ。 書く方は、聞けたり読めたりすればどうにかなる。

ということで、一番優先度が高いのは読むことだと思う。 1分で200語程度読めるようになるのを目標にしよう。

計算機科学

全体像を理解して、各分野の専門書を理解していく。 テストできるのが望ましい。

資格の本で、暗記せず理解できるようになればよいとおもう。結局解けるようになるのが目標であるから、普通に合格するために勉強したらいいんでない?

応用情報技術者とかだ。 理解していけば、解けるようになるはずだ。逆に避けるべきなのは、一回読んだだけで理解した気になることだ。テストは絶対にないといけない。

思うに、コンピュータ科学を勉強することは、無意識に範囲を広げる効果があると思う。OSの仕組みがわかっていれば、一つ一つは単純な組み合わせだと思う。そうでなければ、黒魔術だと思う。それに関する分野を無意識に避けるようになる。

数学

少なくとも高校数学全体は。もっとも難しそうに思える。震える。 これもテストが必要だ。 考えてみれば唯一苦手意識がある。理系学生とのもっとも大きな違いで、自分ができないと思えるところだ。

プログラミングの基礎力

やはりこれも必要だ。同時にアルゴリズムなんかも勉強することになるだろう。 プログラミングコンテストの問題を解いていく。

抽象的な問題を正確に形にし、手足のように扱えるようにする。

単純なプログラミングを書いているだけでは、この能力は鍛えにくい。たとえばただ書いているだけにとどまる。 勉強しないといけない。

タダでもやりたいことをやる

クラウドワークスの案件を見ていると、驚くほど安い価格で群がっているのがわかる。 やだなぁと思うのだが、現実に受注するには経験や実績が必要なわけで、最初はタダ同然でやらないといけない。 これはどの業界でも同じことだ。

また、人生論的な意味で、タダでもやりたい!と思えるようなことをやるべきなんだ。 もしカネがないとやりたくない、というようなものだったらやるべきじゃない。

さらに…自分にはこれ難しそう!って思う仕事が多い。 そう思うなら、間違った本の書き方と同じで、自分のコンフォートゾーンにとどまった学習をしているということだ。 個人開発をメインにしようとしていても、そういうコンフォートゾーンにとどまった技術しか持たない人が、素早く開発できるだろうか?ほかの人の需要を満たすことができるだろうか?否。

有名な独学した建築家の話を思い出した。彼は部屋で独学だけして有名になったわけではない。 いろんなところに応募して、仕事を受注して、有名になっていったんだ。

熱意を金に変える能力

  • 好奇心を集める
  • 興味を高める
  • 気を散らすものを切り落とす
  • ミニマルに生きる
  • 熱意を作り出し価値を生み出す
  • マネタイズする方法を見つける
  • 繰り返す

熱意と他人への貢献をつなげる方法を知ることが必要である。ひいては貴重で価値を高くしていく方法を…。

段階を踏むんだ。 思いつき→学ぶ→作る→熱意を高める→仕事を受ける→自分で作る 最初からカネを考えるのは間違いだし、ずっと自分だけで作るというのも間違いだ。 個人活動と社会活動をうまい割合で配合させるべきだ。

キャリア資本。とはいい言葉だ。

まず熱意を高めるんだ。最初に熱意があって、カネに変えるのを考えるのは十分に熱意を育ててからだ。

エッセイの練習

ベンジャミン・フランクリンのやり方が参考になる。要約し、原文を見ず再現し書き方を学んだという。

眠いとき

ベストなのはゲームをぶっ通しでやるように、何も気にせず楽しさのままやることだが、現実的には、そんなに気分が乗らないときがある。 特に英語を読んでいるときは。何かを作っているときはそう眠くならないが、読んでいると眠くなるときが多い。

それにどう対応するか、ということ。 1つの対応策…気にせず、居眠りしながら続けることだ。1時間以上眠気が続くことはない。 邪魔をするのは完璧な状態でないといけない、という思い込みだ。 いやでも、やってるうちに入り込めてくる。

眠いからってすぐ寝床で寝ると、3時間経っている。そんなに眠っても眠くなって嫌になるときがある。 眠気は単なる数値で表わせないように思える。10時間寝ると0になって、時間が経つごとに10、20…となる漫然としたイメージを持っているが、実際は10時間眠った後でも眠くなる。むしろ長く寝たあとはまた眠りやすい。昼寝をしたって、眠くなる。

波のようなものだ。実際にはどんなコンディションでも眠くなるときは眠くなる。 小さい波のたびに本格的に眠っていては、時間がいくらあっても足りないし睡眠のリズムがおかしくなってくる。夜も眠りが浅くなる。波は徐々に大きくなるが、途中でリセットすると夜で十分眠くならない。

我慢していれば睡眠の波は引いていく。我慢といっても、単に寝床で眠らないくらいのものだ。座って居眠りでもいい。とにかくその眠気は一時的で、時間が少し経てば収まる。

1)
そこまでの知識がないので、これは受け売りだ
article/learn_computer.1590830795.txt.gz · 最終更新: 2020/05/30 18:26 by 127.0.0.1