Zanmemo

by esehara

RSS

New Memo

いい言語が必ずしも好きな言語であるとは限らない


考えてみれば、前提として「いい言語」が「好きな言語」みたいな風潮があるけれども、決してそういうことでない感じもする。

好きな言語

良い言語


一つの仮説としては、良い言語と思わせる部分としては一貫性があるということに尽きると思う。例えばRubyは基本的にはオブジェクト指向を崩そうとしない部分がある。それは同じようなスクリプト言語であるところのPythonと比較すればわかりやすい。Pythonの場合、どうしても突貫的なオブジェクト指向という側面は避けられない。


場合によっては、一貫性があることと簡潔であるかということはまた別問題のような気がする。本来、一貫性があるということは、ルールができるだけ一意に決まるため、簡潔になる側面がある筈なのだが、どうもそうではない部分も多い気がする。


Random Pickup

労働時間8時間の他に、自分を磨くための3時間を余計に見積もっておきなさい

Crean Coder』を読んでいたら、「労働時間8時間の他に、自分を磨くための3時間を余計に見積もっておきなさい」と書いてあって、なるほどなと思う。一週間にすると、40時間のうち、20時間は自分のための時間を持っているか、ということらしい。


必要にならないと、スキルを磨かないという話について

Rails 4 が CoffeeScriptを採用しているため、なんとなーく食わず嫌いしていたCoffeeScriptを書いていたりする。

こういうのを考えると、人間は必要なときにしかスキルを磨かないというのを実感しつつあり、laisoが就活日記の中で書いていた以下の文章が実感として身に染みるのであった。納豆を始めて食べた人も、きっと似たようなものだったと思う。

「死亡リスクが高まるとプログラミングが身に付く」


「できない人」と技術について

ある技術において、「できない人」が「できるようになる」ということが目指されているのは間違いないと思う一方で、では現実的に「できない人」のために、何かしようとすると、それを貪欲に吸収するのは「できる人」になるという矛盾がありそう。この考え方自体は非常にナイーヴなものではあるし、「できる人」がよりできるようになるということによって、潜在的に「できなかった人」も底上げされるという側面があることは否定できない。

たぶん、教育的には「できない人」という意味はあまり重要ではなくて、如何にしてモチベーションを上げるのか、ということのほうが問題であることは推測できて、もちろんモチベーションがあればなんとかなるというのは、それはそれで嘘だけれど、しかしそもそもモチベーションが無いところに、学習を持ち込んだりしても意味がない。

とすると、本来ならばそこに「モチベーション」という意味があるわけで、そういう意味で「ゲーミニフィケーション」というのがあるような気がするんだけど(ゲームは「モチベーションを如何にして煽るか」という観点が含まれている)、その辺についてはどういう風に考えられているのか、多少なりとも気になる次第だ。


自分で使うと改善がはかどる一方で、ソースが目に付かなくなる

なんとか毎日、思いつくところであったり、目につくところを考えながらアップデートしている。

自分で使うと改善が進むのでいいのだけれど、とはいえ従来の怠け癖のためか、じゃあリファクタリングしようか、とかそういう部分に関しては「動いているからいいじゃないの」という感じになってしまうのは良くない気がしている。

そういうことを考えると、そもそもリファクタリングという行動自体が、何らかの強いモチベーションとなっているのだな、ということに気がつかされる。人間は、元々ブロックをAからBに動かすのも面倒くさいという場合もあるのだと思う。

汚さと未熟さ

基本的に、汚く書くのは簡単だ。それは「速さの面」からも言えるけれども、「未熟さの面」からも言えるような気がしている。例えば、自分はRails 4で始めてCoffeeScriptに触った。

もちろん、CoffeeScriptの熟練度なんて無しに近いわけだから、当然のことながら汚い感じになってしまっている。もちろん、CoffeeScriptなんてそんなに書いていないわけだから、汚いということがどういうことなのか、という問題があるが、「たぶんこういう筈じゃないんだよな」というのは、直感として解る。

別段、綺麗に書けというわけではなく、「そこそこに見られるコードを書く」というのは、熟練度の問題でもあるなあということに気がつかされた。そもそも、熟練したら「読めなくはないコード」は書けても、汚いコードは書けなくなる。料理人のまかないがそこそこおいしいのと一緒で、「なんかこんな筈じゃない」と思ったら、少し見直す必要があるのかもしれない。


その仕事にとって「優秀な人」というのはなんだろう

優れたエンジニアを採用できないワケ」を読んでいて、少々冷汗を書いたりしていた。以下はその理由だ。

傲慢さやだらしなさ、細かいことに対する注意力の欠如などは、すぐに目に付きます。それらに気付いた場合、採用は見送ったほうが賢明でしょう。

ここはモロに当てはまるのだけれど、同様に、「優秀さ」ということについて、深く考えさせられる。技術者にとって「優秀さ」といった場合、「技術的な解決方法に長けている人」であったり、「チームで開発する上において、足並み揃えて仕事が出来る」であったり、あるいは「その物事に対して深く精通している」という意味であるかもしれない。これら三つについて、どれに焦点を絞るのか、ということについて混乱がある気がする。

上の記事は、「自分たちが欲しい人材」、つまり「僕達にとって優秀さということはこういうことですよ」という意味での価値だと思うし、それを提示するのは正しい一方で、多くの人々にとって、そもそも「自分たちにとって優秀なエンジニアとはなにか」ということを具体化せずに「優秀さ」という曖昧な概念を考えているというのがアレなのかもしれないな、とは思う。

とはいえ

何度も面接を落ちている自分がこういうことを書くのは滑稽なのかもしれない。


苛立ちを鎮める方法について考える。