インターネット上ではとりわけ多いけれど、ある意見を適当に述べている人というのは多い。
適当に述べている……とは、別に悪気があってそうなったわけじゃなくて、本人もよくわかっていないけど「なんかうまくいったからとりあえずブログに書いた」風のものがあるということだ。
例えばブログに書いてあったソースをそのまま貼付けてコンパイルエラーになることがあるけれど、
それには色々要因があって「本人がブログ上で書いたまま検証していない」「サイト上でレイアウトが崩れた」「環境が違う」等いろいろある。
自分のわからないものに関しては「そうなんだ。まぁとりあえずそういうことにしておこう」ぐらいでいい。
断定口調で「絶対こうだ」と書いている人も、間違っていることが多々ある。
それは本でもそうだ。
「ほんとうかなぁ?」と思ったら疑った方がいい。
プログラミングは基本的に自力で解決するべきだけど、どうしてもどうしても行き詰まるときというのがある。
自分に、ある部分の基礎が脱落していたとき、そこが盲点になって永遠に解決できなくなってしまう。
そういうときの他人の目というのは素晴らしい外部ツールとなる。
解決云々の話ではなくても「そういう考え方があるのか」「そういうツールがあるのか」「そういうカンファレンスがあるのか」「そういう機能があったのか」と為になることが山ほどある。
しかしあれは単なるもっさりしたテキストエディタで、内部でxmlなんかを駆使してパスを決めていることが多い。
IDEが悪いというわけではないし、普通のテキストエディタを使いましょうと言っているわけではなくて、IDEが何をしてくれているのかをしっかり知るべきだ。
そしてIDEを使うからにはIDEについている機能をしっかり知った方がいい。「あ、これめんどくさかったけどショートカットキーあるのか」「こんなやり方あったのか」等の発見もある。
Visual StudioがないとC#はビルドできない、EclipseがないとJavaはコンパイルできない、ではお話にならない。
なんでもかんでもググってはいけない。
ググって解決することも膨大にあるが、ググって解決することは0次元的な解決しかない。
公式のマニュアルを読むことで基礎となるところがわかるので基本的には公式のものを読むべきだ。
Linuxならmanコマンドがいいだろう。読んでわからなかったら英語でググろう。
英語でググってわからない・出てこないときに始めて日本語でググろう。
そのくそったれなWindowsを捨てろと言っているわけでもないし、Macじゃだめと言っているわけではない。(MacもUNIXだし)
別にLinuxを知らなくても良いサービスは作れるけど、少なくともそれは、あるフレームワーク上で踊らされているだけだし、
それからWindowsはクソだけど、そこまでクソではなく、環境さえ整えれば使い道は無限だし、エクセルはクソだ。
ハードの性能が上がったから、今時アルゴリズム……と語る人の明日はない。
ハードの性能が上がって、扱うデータも莫大になったので、アルゴリズムは昔よりも遥かに重要となっている。
オーダーnと、オーダーn^2では、データが1億個のとき、1億と、1京の差となるし、
オーダーnと、オーダー2^nでは、データが100個のとき、100と、120穣(1京の100兆倍)の差となる。
確かにハードの性能が上がったから「昔だとうまくいかなかったけど、なんかうまくいってる」という部分もあるけど
たとえゴミな出来具合でも、完成させて公開するべきだ。
「死んだ方がいいレベルのアプリケーション」だの「何このセキュリティゴミだわ」だの「グラフィックwww」だの
「レイアウト崩れ過ぎ」だの「動かない」だの「とりあえず死ね」だの
「スパムメール送ったわ」だの「重すぎ」だの「作者の顔不細工すぎ」だの
色々あるけれど、公開しないやつらよりは強いのだ。
批判は、人格批判・顔面批判・批判したいだけの批判以外は全て受け入れよう。逆にそれは自分では気付かなかったか気付いていたけど無視していた改善点だ。
どんなにすばらしいプログラマでも、そのプログラムやソースが世に出たことがなければ、誰にも気がつかれないものだ。
その楽をする技術をもってしても、どうしてもどうしてもめんどくさいことはある。
そして、めんどくさいけどやればできること以外に、どうやってもできなさそうで、不可能そうなこともある。
それを解決しようとするのはすごく大変なことだ。
プログラマの美徳が怠惰と短気と傲慢というラリーウォールさんの発言は割と有名だけど
なんかこじつけ感あって、言いたいことはあんまり怠惰でも短気でも傲慢でもないんじゃないかなと思っている。
別に最初から耐えろと言っているわけではなくて、最後に効いてくるのはやはり耐えること。
誰にも解決できなさそうなものを解決するというのは、忍耐と勇気と根気が必要で、怠惰で短気では無理だ。
こんな感じ。
まあぼくはどこにでもいるふつうのプログラマだから、ここに書いてあることは別にぼく自信が編み出したことではなくて