次のリビジョン
|
前のリビジョン
|
article:learn_computer [2020/05/30 18:26] 127.0.0.1 外部編集 |
article:learn_computer [2020/07/22 22:07] (現在) kijima |
====== <>コンピュータを学ぶ ====== | {{tag> essay}} |
| |
プロになるには、根本的な知識が必要である。 | ====== プログラマーが目指すところ ====== |
ググって開発したって、何の価値もない。プロとして価値がない。ほかの分野…たとえば医者では専門分野やメスの使い方ではなく、人体に関する広い知見が求められる。エンジニアだってそうだが、そうではない例がほかの分野より多いようだ。 | |
| |
コンピュータ・サイエンスは必要か否かの議論がある。少なくとも何かを作る(完成させるだけ)には、プログラミング言語に対する成熟だけでよく、あまり必要がない。 | 世の中にあるIT関連の求人でありがちな文句「未経験歓迎!」にあるように、プログラムを作ることは誰でもできる((そういうところの労働環境は最悪だろうが))。画面にびっしりと並んだ文字という異様な外観は呪文そのものに見えるが、少し勉強すれば「使うことは」普通にできることがわかる。 |
| |
しかしもっとレバレッジのかかる仕事…ものすごく多くの人が利用したり、開発者自体のツール、となってくると性能上の要件が必要になってくる。多トラフィックの制約とか、マルチスレッドとかになると、この差は大きくなる**らしい**((そこまでの知識がないので、これは受け売りだ))。 | 一般のITリテラシーがあまりに低いのでプログラムを書くことはそれだけでスゲーとなりがちだし、誇らしく思ってしまいがちだ。もちろん勘違いだ。 |
レベル1〜6くらいは文系でもいけるが、6〜10は数学やCSの知識がないとムリ。知識は後から効いてくるらしい。 | ほかのものごとと同じく、問題はその先である。つまり、いいものを作れるか。 |
| |
体感としてすごくわかる。オレはわけもわからずツールを使ってるだけで、ツールを理解したり開発したりしているわけではない。 | プログラマーの場合は優秀な人に完全に代替されてしまう。優秀な大工は平均的な大工の5倍の速度で家を建てる、ということはおそらくないが、プログラマーでは普通の人と優秀な人の差が何百倍にもなる。ときによっては何万倍にもなるかもしれない。じつはプロスポーツもびっくりの超競争になる可能性があるが、成果を金額で測ることが難しいので今はそこまで激化していない。さらに一番重要なことに、場所や国籍の制約がない。 |
実際に思ったから恥ずかしいのだが、オレすごいんじゃね?というのは典型的な井戸のカエル的な感じだ。 | |
| |
数学/物理/情報科学専攻の院生なんかが競合なんである。 | プログラマーのレベルが10段階あるとすると、たぶん4くらいは誰でもいけるだろう。コンピュータの知識がなくても、なんとなく書けば動き、作れる。ほかのモノづくりと同じだ。未経験、文系の人が目指し安定するのはこういうところ。ツールを開発したりはできない。フツーの人よりははるかに詳しくてパソコンに強いと思っている。コンピュータユーザ全体のヒエラルキーでは中間に位置する。 |
たぶん、オレが「PythonとかDjango使えるよ」と言ったところで、→で?「そんなの家電を使うのと同じくらいカンタンじゃないか。それより僕は3日でフレームワークや言語、果てはOS作ったけど?」とか鼻で笑われるだろう。当然何も言い返せない。 | |
| |
利用できるだけじゃなくて、改良、開発できるようにならないと。そのためには? | フツーの人(表計算とかできる) < 開発ツール(PG言語など)使用者 <<< 開発用ツール開発者 |
一段下のレイヤーを学ぶことになる。プログラミング言語はC言語で書かれてるだろう。じゃあ学ぶ。C言語は?… | |
| |
限りはあるんだろうけど、ツールを利用できることは最低限のスタートだ。もちろん喜ばしいことだが、3日経ったら落ち着こう。スゴい人はもっと先を見てる:このツール、 どうやったらもっとよくなるかな? | ヒエラルキーといったが、年金制度や企業とかとは異なる。1人の上級に10人の中級とかそういうのはない。外から縛るような人数制限はないのだが、現実には上位の人たちは数が限られている。 |
| 私は中間にいる、とは思う。ものすごい人を見て、とてつもない距離を感じる。プログラムを書けるということと良いものを作れるというのは全く別のことだ。 |
| |
===== 基準 ===== | ===== 一番スゴい人たちを見る ===== |
* テストがあるもの(客観的に測れないと、慢心しがちだ) | |
* 期間設定 | |
* 理論 | |
* 楽しくないのはやり方が間違っている(まず自分で課題や質問を考えてから、それを解消する方法を考える、とか) | |
| |
緻密に設定するのもいいが、それはハッカー的学習方法として間違っている気もする。 | 落胆していてもはじまらない。何か優れた人の行動規範の真似をすることは、少しでも自分のためになると思う。というか止まっていてはマジで労働市場で死にかねない。一部のスゴい人に代替されるだけでなく、時間的に移り変わりが激しいからだ。 |
楽しく、情熱、自主性を持ってやるんだ。 | |
| |
===== 英語 ===== | 猛者たちをイメージしてもあまりにスキルが違いすぎてよくわからない。彼らの卵というか、将来の猛者候補をみてみよう。同世代の、数学/物理/情報科学専攻の院生の人なんかをイメージしてみる。 |
| たぶん私が「~言語が使える」と言ったところで、→で?「そんなの家電を使うのと同じくらいカンタンじゃないか。それより僕は3日でフレームワークや言語、果てはOS作ったけど?」とか鼻で笑われるだろう。何も言い返せない。 |
| |
いくつか読んでて楽しい記事を見かけるので、読んでいる。 | 利用できるだけじゃなくて、改良、開発できるのが彼らにとっては当然だろう。 |
| 下のレイヤーを学ぶことになる。プログラミング言語はC言語で書かれてるだろう。じゃあ学ぶ。C言語はなにでできてる?… |
今はこの感じで正しいと思う。段階によって変わる。 | コンピュータ科学や数学の知識はこういうところで、後から効いてくるんだと思う。 |
| |
聞くとは、超高速で読むことと同じだ。 | |
書く方は、聞けたり読めたりすればどうにかなる。 | |
| |
ということで、一番優先度が高いのは読むことだと思う。 | |
1分で200語程度読めるようになるのを目標にしよう。 | |
| |
===== 計算機科学 ===== | |
| |
全体像を理解して、各分野の専門書を理解していく。 | |
テストできるのが望ましい。 | |
| |
資格の本で、暗記せず理解できるようになればよいとおもう。結局解けるようになるのが目標であるから、普通に合格するために勉強したらいいんでない? | |
| |
応用情報技術者とかだ。 | |
理解していけば、解けるようになるはずだ。逆に避けるべきなのは、一回読んだだけで理解した気になることだ。テストは絶対にないといけない。 | |
| |
思うに、コンピュータ科学を勉強することは、無意識に範囲を広げる効果があると思う。OSの仕組みがわかっていれば、一つ一つは単純な組み合わせだと思う。そうでなければ、黒魔術だと思う。それに関する分野を無意識に避けるようになる。 | |
| |
===== 数学 ===== | |
| |
少なくとも高校数学全体は。もっとも難しそうに思える。震える。 | |
これもテストが必要だ。 | |
考えてみれば唯一苦手意識がある。理系学生とのもっとも大きな違いで、自分ができないと思えるところだ。 | |
| |
===== プログラミングの基礎力 ===== | |
| |
やはりこれも必要だ。同時にアルゴリズムなんかも勉強することになるだろう。 | |
プログラミングコンテストの問題を解いていく。 | |
| |
抽象的な問題を正確に形にし、手足のように扱えるようにする。 | |
| |
単純なプログラミングを書いているだけでは、この能力は鍛えにくい。たとえばただ書いているだけにとどまる。 | |
勉強しないといけない。 | |
| |
===== タダでもやりたいことをやる ===== | |
| |
クラウドワークスの案件を見ていると、驚くほど安い価格で群がっているのがわかる。 | |
やだなぁと思うのだが、現実に受注するには経験や実績が必要なわけで、最初はタダ同然でやらないといけない。 | |
これはどの業界でも同じことだ。 | |
| |
また、人生論的な意味で、タダでもやりたい!と思えるようなことをやるべきなんだ。 | |
もしカネがないとやりたくない、というようなものだったらやるべきじゃない。 | |
| |
さらに…自分にはこれ難しそう!って思う仕事が多い。 | |
そう思うなら、間違った本の書き方と同じで、自分のコンフォートゾーンにとどまった学習をしているということだ。 | |
個人開発をメインにしようとしていても、そういうコンフォートゾーンにとどまった技術しか持たない人が、素早く開発できるだろうか?ほかの人の需要を満たすことができるだろうか?否。 | |
| |
有名な独学した建築家の話を思い出した。彼は部屋で独学だけして有名になったわけではない。 | |
いろんなところに応募して、仕事を受注して、有名になっていったんだ。 | |
| |
===== 熱意を金に変える能力 ===== | |
| |
* 好奇心を集める | |
* 興味を高める | |
* 気を散らすものを切り落とす | |
* ミニマルに生きる | |
* 熱意を作り出し価値を生み出す | |
* マネタイズする方法を見つける | |
* 繰り返す | |
| |
熱意と他人への貢献をつなげる方法を知ることが必要である。ひいては貴重で価値を高くしていく方法を…。 | |
| |
段階を踏むんだ。 | |
思いつき→学ぶ→作る→熱意を高める→仕事を受ける→自分で作る | |
最初からカネを考えるのは間違いだし、ずっと自分だけで作るというのも間違いだ。 | |
個人活動と社会活動をうまい割合で配合させるべきだ。 | |
| |
キャリア資本。とはいい言葉だ。 | |
| |
まず熱意を高めるんだ。最初に熱意があって、カネに変えるのを考えるのは十分に熱意を育ててからだ。 | |
| |
===== エッセイの練習 ===== | |
| |
ベンジャミン・フランクリンのやり方が参考になる。要約し、原文を見ず再現し書き方を学んだという。 | |
| |
===== 眠いとき ===== | |
| |
ベストなのはゲームをぶっ通しでやるように、何も気にせず楽しさのままやることだが、現実的には、そんなに気分が乗らないときがある。 | |
特に英語を読んでいるときは。何かを作っているときはそう眠くならないが、読んでいると眠くなるときが多い。 | |
| |
それにどう対応するか、ということ。 | |
1つの対応策…気にせず、居眠りしながら続けることだ。1時間以上眠気が続くことはない。 | |
邪魔をするのは完璧な状態でないといけない、という思い込みだ。 | |
いやでも、やってるうちに入り込めてくる。 | |
| |
眠いからってすぐ寝床で寝ると、3時間経っている。そんなに眠っても眠くなって嫌になるときがある。 | |
眠気は単なる数値で表わせないように思える。10時間寝ると0になって、時間が経つごとに10、20…となる漫然としたイメージを持っているが、実際は10時間眠った後でも眠くなる。むしろ長く寝たあとはまた眠りやすい。昼寝をしたって、眠くなる。 | |
| |
波のようなものだ。実際にはどんなコンディションでも眠くなるときは眠くなる。 | |
小さい波のたびに本格的に眠っていては、時間がいくらあっても足りないし睡眠のリズムがおかしくなってくる。夜も眠りが浅くなる。波は徐々に大きくなるが、途中でリセットすると夜で十分眠くならない。 | |
| |
我慢していれば睡眠の波は引いていく。我慢といっても、単に寝床で眠らないくらいのものだ。座って居眠りでもいい。とにかくその眠気は一時的で、時間が少し経てば収まる。 | |
| |
| 限りはあるんだろうけど、プログラムなどのツールを利用できることは、最低限のスタートにすぎない。もちろん最初の何もできないときから比べると喜ばしいし世界は変わって見えるのだが、3日経ったら落ち着こう。スゴい人はもっと先を見てるだろう:このツール、どうやったらもっとよくなるかな? |