進・日進月歩

IT, Jazz, study, engineering, すべての真実とクリエイティビティのために

Saturday
Oct 11,2008

この本は、ペン入力コンピュータに関するスタートアップGO社の企業から潰れるまでの物語を書いた本です。

今のコンピュータ業界の有名どころのマイクロソフト・アップル・IBMとの競争、ペンコンピューティングに沸いていた当時の様子など、今のPC業界にもつながる舞台裏での戦いが物語風に書かれています。

物語は、GO創業者であり著者であるジェリー・カプランの視点からかかれています。リアルな投資家とのやり取り、嫌がらせとしか思えない他社の類似商品の開発など、かなり楽しめます。

起業とか興味ない人にもお勧め。

Monday
Oct 6,2008

技術者だからといって、モノが作れればいいんだろうか?そういうものでもないでしょう。

一つの考え方として、技術者は自分のたち位置や技術の位置づけについて、文脈に照らして考える能力が必要だということを言ってみようかと思います。

今回のえがちゃん騒動に思うこと:微妙に世間のことがわかっていない

別に世間知らずだとかいう訳ではないです。
単純にいうと、車輪の再発見のオンパレードをしているという話。しかもかなり劣化版の車輪。
けど、これはえがちゃんに限った話ではなく、このブログもそうだとは思うし、よのなかの多くのブログはそうでしょう。

たとえば、「情報商材はすばらしいビジネスモデルだ!」というエントリー。自分からみるともう何年も前からいわれてることで、それこそ起業しようとか少しでも考えたことある人や、実際に受託開発とかやってるひとなら簡単に思いいたるところです。
例えば自分なら、「で、それから?」と思う訳ですが、そこがない。

他にも例があります。iPhoneでブロック崩しのようなゲームをアルバイトで作ってた人がいたのですが、私が「それだったらこんなゲームがあるけど?」と言って教えてあげたことがありました。
私が教えたゲームはべつに特別探したりしたわけではなく、人気のアプリにランクインしているようなものでした。
ここでのポイントは、車輪の再発がだめだというわけではなく、「その人が自分のアイディアを思いついたとき全く下調べをしていなかった」というところに個人的に問題を感じています。

周りをよく見る癖を付けると、叩かれにくくなる

がんばって調べたりする必要はないと思いますが、常日頃から友達にアイディアを話したり、面白いニュースがあったらなんとなく交換したり。
そういうのが重要であると思います。

よく「アイディアをパクられたくない」という人がいますが、さわりだけ話してパクられるようなアイディアは、結局リリース後すぐにパクられますし、たいていの場合その程度のアイディアは誰かが考えています。
どうしても心配なら信用できる何人かには相談するくらいのことをするのがおすすめです。

こうやってよく周りを見回しておくと、「それ○○のパクリじゃん」と不意打ちされることもなくなりますし、作る前にそういうのが見つかれば、もっと違うアイディアに時間を割いたり、よりおもしろいアイディアにブラッシュアップできると考えることはできないでしょうか?

別に特別な作業をする必要はありません。なんか酒でも飲みながらアイディアを総disしてもらえばいいだけです。

切り口を買えることも重要

切り口、いいかえれば、文脈を入れ替えて考えるのも結構有効だと思います。
エンジニアの人は普通にやってるのに、なんでビジネスの人はやらないんだろうか・・・?エンジニアリングとビジネスの文脈がかわるだけで全く違う者が見えてきます。

無難な例がないのであれですが、例えば最近はやってるビジネス書をたくさん書いている勝間和代さんとかの本はいい例かも知れません。
なんだかんだ言っても、ネット通ばかりがつかっているgoogle。それをつかってビジネスを効率化する方法を本で書いたりしていますよね。
これもビジネスという領域で、自分の周囲をよく観察しているから出たアイディアと言えるのではないでしょうか?

広い視野を持つこと。高く登ること。

結局はこういうことだと思います。かたい言い方をすれば市場をよく調べるとか、よく先行研究を調べるとか、そういうことです。
そして自分のアイディアや自分という存在が、どういうところにいるのかを知る。
これって以外とできていそうでなかなかできない。

結局、同じ地平にたたないと他人と同じ視点にたつことがでいません。周りの人がぎゃーぎゃーいっててなんか敵だらけな気分がしてくることもあるかと思います。
そういうときというのは自分が高みにいるか、相手が高みにいるかのどっちかです。
どっちがどっちなのかはケースバイケースだとは思いますが、自信がなければ巧者だと思っておくのが無難でしょう。

そういうときは実際やってみるしかありません。正直な話やってみないとわからないことというのは世の中たくさんあります。
そういう気づきを繰り返すと、自然と高く登っていくことができるんではないでしょうか?

すると、よりいい眺めの場所で、同じたち位置の仲間と、より広い視野を持って話をできるようになるんだと思います。

再び、自分のたち位置を確認しましょう

自分がいったい世間でどういうたち位置にいるのかを確認することは重要です。
いくら正確な地図があったところで、自分の居場所を勘違いしていたらよけいに迷うだけです。

ようは何が言いたかったかというと、ちょっとだけでいいから顔を上げて周りを見てみるといいことがあると思うよというのと、高く登ることをやめてはいけないんじゃないかねということでした。

補足:

なんか「車輪の再発明したっていいじゃないか!」という突込みが多いようです。別に悪いとはいってません。
けど、全部作りきる労力を払う前に、ちょっと周りを見渡して車輪の再発明以上のことができるようになるんだったら、それはいいことなんじゃないかなといっている感じです。
まったく同じものを作ったとしても、売る人次第で売れたりする可能性はあります。しかし逆を言えば何らかの差(この場合はセールスマンが違うとか?)がそこにあるからそういうことが可能なわけです。

Saturday
Oct 4,2008

相手の納得をつくるプレゼンテーションの戦い方。

あの大手広告代理店である博報堂のエグゼクティブクリエイティブディレクターの小沢正光さんがかいたプレゼンテーションに関する本。

いま大変プレゼンテーションについて悩んでいて、本屋で平積みしてあったので買いました。

基本的なスタンスとしては、プレゼンテーションは相手を「説得するもの」ではなく、あいてに選んでもらうものというスタンスを取っています。
相手の困ってることに対して解決策を提供するためにプレゼンテーションをしているのであって、こっちの価値観を押し付けにいってるわけではないという感じでしょうか。

内容は具体的なテクニックというよりは、どちらかというとプレゼンに望むにあたっての心構えや考え方を中心に展開されています。
派手なエフェクトとか演出などを期待している人には向かない本かもしれないです。

個人的には、相手(決裁者)のことをよく知るという当然ではあるけど忘れがちであることを改めて指摘されたところが大変印象深かったです。

著者の体験談や経験を元に話が書かれているため、そのあとをトレースすることでいろいろな知恵を学ぶことができると思います。

とりあえずプレゼンテーションに望むための概論を把握するためにお勧めの一冊。

Friday
Oct 3,2008

この話題に言及するのもこれで最後にしよう。IT泥の時もそうだったけど、3才くらいしか差がないはずなんだけど、なんかどうもこの年代のITの人とは意見が合わない。

最近の若い者は(笑

これを読んでなるほどと思った。いつまでも学生起業家ではいけないよねという話。

結局自分の周りですごいなと思うところは最初から学生起業とか名乗ってなかったし、結局それで未だに会社も続いてるってところがほとんどだと思う。

作ることに価値があるのは自分としても認めるところ。で、最初品質が低いのもそれはしょうがないと思う。ただ、それがすごい事なのかというと全然そんなことはない。
公開することにマーケティング的価値があることは認めるけど、それと人物評価とか能力評価はまったく別問題。

どうしてもそれは本当なの?と思ってしまう 

最近の学生に起業家精神がなくなってきてる件について

・劇団ブサイコロジカル。と言う劇団の立ち上げ
・web制作会社、映像制作会社でのアルバイト&インターン
・web制作の個人での請け負い

立ち上げとかインターンとかweb製作の請負とかいろいろ書いてあるが、これは本当なのかな?と思ってしまう。

立ち上げたんだからいいじゃないかって話はあるけど、自分の知ってる人の中にはたとえばこんな人がいる。

  • 単純に立ち上げのときにいただけで、別に何か貢献してたわけでも中心メンバーだったわけでもない
  • ほかの大人たちの都合で動いてて、どう考えてもおんぶに抱っこでやってる

別に、悪いことではないし、学生なんだからそれでいいとは思うんだけど、「自分から言い出して」「自主的に企画して」というのとは程遠いよね。
要はコミットメントの問題で、その人がそのプロジェクトとか企画にどの程度コミットして提案したり、その結果、影響を与えることができたのかという話。
少なくとも、自分がサイトを作るときは、最大でプロジェクトの運用の仕方から、仕様策定やら改善提案やらいろいろやって、かなりサイトの構成そのものに影響を与えたりしている。
(これはこれで、料金に見合ってなかったのでビジネス的観点から見るとかなり微妙だけども・・・・・大赤字)

自分の感覚からすると、インターンなんて最近じゃアルバイトのエイリアスだし、webの製作なんかも言われたとおりやるだけなら誰だってできる。
要は具体的に何をやって何をしてどういう影響を与えることができたのかという話。けど、残念ながらそういうコミットメントの面で評価できるとは思えない点が節々から感じ取れてしまう。まぁ感じてるだけなんだけど。偏見です。けど、あんな穴だらけのサイトつくってしかも平気でいる様子を見る限りじゃねぇという。

要は何で自分が嫌悪感を抱いているかというと

つまりなんか言ってることに対して結果が伴っていないところなんだと思う。少なくとも今は。もちろんこの先、スキルが上がってなにかしろの結果を出すのかもしれないけど。

同じようにサイトを量産しているsatoru.netの人とかも、個人的に面白いかといわれるとよくわかんないけど、それほど嫌悪感を感じることはない。
差は何なのかといわれると、何なんだろうという気はするけど、すくなくとも目障りではない。ひょっとしたらえがちゃんがもっと露出してなくて86チャットとかでも見たことなければ、こんなに嫌いになることもなかったかもしれないし、むしろ応援する気にもなったのかもしれない。

たぶんだけど

単純に生理的にだめなだけかもな。おれ的には。ほとんど直感としかいえない気がしないでもない。

なんか積極的に一緒に何かしようとか何かお願いしようとかそういう気分にまったくなれない。少なくともそのレベルのアウトプットじゃ・・・・・
なのに、なんかさも凄いことをしたかのように宣伝し(プレスリリースまでメディアにうっている)、かなり一方的に価値観を押し付けてくる。
なんかそういう感覚になじめないだけかもしれない。 

自省の念もこめてすごいいい例えを思いついてしまった

なんかあれだ。ひょっとすると、特に興味がない男にがんがん言い寄られてる女子の気分ってこんなんなんじゃないか?
まだ興味がないだけならいいんだけど、「え、いや、それはちょっと・・・・」という感じで若干マイナスなのに、がんがん言い寄られているという。

別に、俺が直接何かされたわけではないけど、ブログとか86チャットとかで「ほら!俺すげぇwww」みたいなテンションでいられるとそんな気分になってくるよね。

なので、単純な解決策としては、もうこのネタ見ないというのが一番精神的によい気がした。たぶん見れば見るほど嫌悪感が募る。

たぶんブログとか半年くらい見なければ、また応援する気になれるかもしれない。

まとめよう 

なんであんなにえがちゃんのことが嫌いなのかについて考えてみたわけだけど、結局あんま合理的理由はない。

つまり、単純に嫌いなだけなんだと思う(ぉぃ

あえて言うなら自分の考え方として「結果に変化を与えられてなければ、それは何もしてないのと同じ」というのがあるので、そういう個人的信条に極端に反している例として嫌いなだけなんだと思う。

はい。こうしてまた不毛なエントリーが増えてしまった・・・・

追記:とりあえず、なんで嫌いなのかというのに理由がないことがよくわかったので、もう気にせずにすみそうだ。

Friday
Oct 3,2008

今日単位を数えてたのですが、どうやらもらえる予定の単位を全部足すと、卒論と輪講(つまり必修2つ)で卒業できるようです。

いやぁ、なんか1年間ニートしてたかいがありましたね・・・・・・・割と授業聞いてるとわかるもんだし、出席書いてレポート出せば単位来るんですよ。なんて素晴らしい。(一応代返したことはなかったりします。頼むと頼まれるのでめんどくてほっといた。)

というわけで、「はらじゅんが卒業できなかったらどうしよう・・・・・orz」とか思って非常に心配してくださっていた方々。なんかぜんぜん勉強していなかったように見えて実は人並みにはやってましたという話でした。
人の1.5倍ちょっとの量単位とったんだけどね・・・・それまで取ってなかったから・・・・

むしろ最近は「はらじゅんは、あんななんもしてなさそうなのにどうやって生きてるんだ?」という疑問をもたれてる方が多いようですが。はい貯金ですよ。 やばいすっからかんですね、今。飲み会一回やるのにもすごい苦悩してますね。
なのにサーバを新しく海外に増やしたりとか、iPhone用にメール専用サーバ組んだりとか、なんかそういうところにお金使ってるのがいけないんじゃないかという噂もあるんですが、もうこの辺は必要経費なのでしょうがありません。
一応ばらばらに持ってたやつを統廃合したりとかして総合的にランニングコストは下がってる(たぶん年間5~10万くらいは浮いてる)と思うんですが、一時的に支払い増えるのでひーひー言ってます。

卒論を書く研究室も決まり、今日「机ないの不便なのでください」(何様だ俺)とかいって机を確保したので、しばらく大学に居場所はできそうです。

今がんばってニート脱却計画立ててるんですが、なにぶん学業と収入のバランスが悩みどころです。ご利用は計画的に。まるでレイク。

一応自分でサイトとかを持って小銭入れるという計画があるのでそれを検討中ですが、経験上サイト完成から最短で2ヶ月程度はなかず飛ばずであることがわかっています。さらにそこから収入があったとして支払いはもっと向こうなので、半年は自力で燃料供給しないとだめですね。これも最短での計画です。

つまりなんか単発で仕事あったら相談してくださいm(_ _)m

Wednesday
Sep 17,2008

なんかずっとこれに違和感があったんだけど、なんとなくわかった。ネットの話を見てるとどうも「コードを書くこと」を「技術」と呼んでいて、ゆえに「コードがかけないと技術がわからない」となっているんだと思った。
つまり「A→B」なんだけど、「A=B」なので、結局循環論法「A→A」となっているっぽい。

繰り返しになるけど、包含関係だけ考えれば、webひとつをとってみてもコードを書くこと以外の技術の方が多い気がしてならない。
結果的にほとんどの人はコードがかけるので、必須条件のように思えてるけど、実際そうでもないと思う。

もちろん、漢字の書き取りと一緒で、実際やってみるのが一番覚えられるし、やってみないとわからんことも多いわけだけど、別に音声認識の詳細な実装を知ってアプリを書いてる人がいるのか疑問だし、画像処理にしてもopenCVの関数使ってるだけで実装知らない人たくさんいるんじゃないかな?
もっと身近な話でも、画像の拡大縮小くらいwebでもやりますよね。あれ具体的にどんな処理してるか意識して書いてる人います?

mysqlだって、RDBMSがやっている動作を正確に把握して一から構築する根性を持った人がどのくらいいるでしょうか?webの世界では、ランダムアクセスファイルすら自分で実装できる人どのくらいいるのか個人的には疑問です。

コード書かなくてもいいというわけではないですが、個人的にはコードがかけることと技術がわかるという話は別物なんだと思いますよ。
重要なのはmysqlでインデックス張れば早くなるとか、なんだったかのライブラリを使えば画像の拡大縮小が簡単にできるとか、結果だけでもわかってればそれで十分じゃないでしょうか?
ようは注意深くニュースを見て、どんなことができていて、そこからどのくらい未来が妄想できるのかということのほうが重要であるきがします。

※詳細に知ってれば知ってるほど、よりたくさんの知識があるほど未来は予想しやすい気はします。けど、それはphpがかけるかどうかとは関係ないよね・・・・

※表現がわかりにくかったですね。わかりやすい部分でまとめると「mysqlを一からコードで書かなかったとしても、その技術を知ることはできるし、使えるよね」という話

Monday
Sep 15,2008

なんか意地でもITを泥化したい人たちがいるらしい。これは悪意すら感じるようになってきた今日この頃です。

まず書く前に自分の立ち居地について書いておく必要があるかな。

  • エンジニアの未来サミットには参加してません
  • 実際にシステムの受託開発的なことを一時期していて、ほとんど中小企業だけど中には上場企業のシステムやサイトなどをコンサルティング、製作したりしてました
  • ほとんど社会人とだけつるんでやってたので、学生周りの事情を知ったのは最近
  • ちなみにまだ大学生(卒業できんかったのですよ)。受託向いてないと思って辞めたところで来年から大学院生

ちょっと書きたいことをバラバラ書くので読みにくかったり、語弊があったりしたらすみません。あまりエンジニアの未来サミット関係ないかもしれません。
また、多分に個人的主観が強いであろうことも付け加えておきます。突っ込みは歓迎。むしろ中々実情について調べられないでいる(と、いうかあまり自分には関係ないので調べるつもりもないんですが)ので、事実を教えてもらえるのはうれしいです。

自ら泥化する学生たち

あまり一般性はないかもしれないですが、これを最近思いました。これを思ったのはちょっと前に知り合いがwebのデザインを始めたといったときのせりふ

すごい高額な料金を取ってデザインしているのに、それにお客さんが満足していない。同じものならもっと安くできる

価格競争を自ら誘発しているわけです。で、開発やデザインの差はあれども、実際安くやることによって仕事を得てる人たちがいます。
しかし、それは本当に安くやるべき仕事だったのかどうかについてはよく考えたほうがいいんではないでしょうか?

たとえば、私も結局安い値段でやってはいたわけですが、railsやCMSなどを組み合わせ、さらに仕事を絞ることで基本的なコストを削減することを第一に考えてやっていました。
少なくともそういった工夫は必要です。

第二に一般論ではありますが、コストベースで仕事をするのは価格競争に陥りやすく、あまりお勧めではありません。
ほとんどの商売上手な人は相手によって少しずつ提案する内容を変え、利益に対する値段を考えたりしています。
請求書上項目がどうなってるのかは人によると思いますが。
特に、結果としてアウトプットに差がでにくいwebの開発やデザインなどにおいては、そうなりがちであることは想像に堅くありません。
多くの人は「信用を得るために仕事をこなすことが重要」というのを言います。これはある程度認めましょう。しかし、最終的にはサービス面での差別化をはからなければ、その会社は泥化を促進するだけのものでしかないんではないでしょうか?
安くやるというのにはそれなりの戦略性が要るのかと思います。

泥な人たちはどのくらいいるというのでしょうか?

これが私にはよくわかりません。
なんどとなく書いていますが、定時にかえってるSI屋さんというのもいます。なぞですね。

あと、なにをもって泥といっているのでしょうか?これもよくわかりません。

就業時間でしょうか?外資コンサルの人たちの初任給と労働時間について考えたことはありますか?
私も労働市場全体のことはよく知りませんが、ITに限らず残業が問題になっているのはご存知のとおりかと思います。

給与面でしょうか?
これは単純に数字をよく知りません。
しかし、IT「業界」が泥だといいたいなら、個別の事例を取り上げてうだうだ言ってもしょうがないはずです。
これに関する定量的な話をついぞ聞いたことがありません。

さらにIT業界って何でしょうか?
大手電機メーカーの研究所でエンジニアをしていると大体年収平均700万くらいで安定するそうです。
大金持ちってわけでもなさそうですが、安定度には定評があります。
これも部分的なはなしなので、一般に当てはめるには困難がありますが・・・

なんでもいいんですが、泥じゃないサンプルをいくらでも知っています。だれか定量的な説明をしてないんでしょうか?定量的じゃなくてもいいですが、事実について正確に把握してる人がどの程度いるのかが疑問です。

人月商売・多重下請構造は破綻するのか?

破綻ってなんだろう?という気がしますが、0になるという意味なら、それはありえないでしょう。なんにしても最終的に手を動かす人が必要です。
価格競争に耐えられなかった自律泥化企業は消えていくだろうなというのはありそうなシナリオな気はします。

自分の人生は自分で決めろという論理は正しい

PDSCサイクルではないですが、自分で計画して、実行して、失敗して、修正するしかないことはたくさんあります。
特に有象無象な業界ほどそれは当てはまる気がします。
教育制度のしっかりしている大手企業以外で教えてもらうことを期待することは非常に難しいです。

ほとんどの学生にとっては就職が人生を考え始める第一歩であるような気がします。
私事で恐縮ですが、実際いろいろやってみて「明日くう金がないかもしれない」というリアルな状況におかれるまで、なんか昼夜を問わず電話をかけてくる理不尽な人と出会うまで、いろんな心温かい大人たちに色々と指摘されるまで、自分の人生についてなんか考えたことはありませんでした。
もちろん将来○○系でやっていきたいという漠然な考えはあるでしょうけれども。

たたかれるにしてももちあげられるにしても、基本的には私の行動に対して世間はリアクションを取るわけで、悩んでいるだけではまさに自分の存在は世間から見たとき「空気」です。

泥の話にひっかけるなら、主体的にビジネスをできないほど泥に足を突っ込むことになるでしょう。
泥の論理自体は至極単純です。リソースに見合わない作業を強いられているだけです。
積極的なリソースの確保と作業の調整がそこには必要なわけです。自分が社会の歯車にはまっていないのであれば、なおさら努力しないとそこにはまり込むことはできません。

ほとんどの人は、そういった意味で泥にはまり込まないように、できるだけ主体的に判断しなくてもいいように、学歴とかネームバリューにこだわるんだと思いますが、その権利を得られる人は社会全体から見れば小数です。
しかしそういった学歴とかがある人でも、大成功を目指すような野心家は、やはり最終的に主体的判断が必要になるでしょう。いずれにしても社会全体に存在しているリソースは有限であり、大量の成功者を抱えるには足りません。

技術とは何なのか?

実務として何をしてるのかはよく知りませんが、文系SEというのは結構いるものです。
しかし個人的な思いとしては、プログラムかけます程度を技術と呼びたくはない気はします。もちろんプログラミングはたくさんある技術のひとつではありますが、その「プログラミング」というひとつの技術を持つ人を指してエンジニアとは言いたくありません。
一言で言えば、それだけだとほとんどの世の中にある工学的・エンジニアリング的問題が解決できないからです。
はたしてプログラム書けるだけの人がサイトに集客をしたいというニーズを解決できるんでしょうか?その問題をテクニカルに解決するのがエンジニアの価値です。
最近めっきり公的にはなくなりましたが、プログラムでスパムサイトを量産するというのはひとつの立派なソリューションです。(勧めてるわけではありません)

経営者の価値が適切な組織運営の方法を提供することであるならば、エンジニアの価値は適切な技術の選択と適応ができることが価値です。
単一の技術をもつだけではほとんどエンジニアとしての価値はないといっていいでしょう。

今まで私は「文系」と「理系」という区別には意味がないという主張をしてきましたが、それは主にシステムの開発に関する教育を行う機会が平均的には存在しないため、差がないという意味で使ってきました。
しかし技術者・エンジニアという文脈で考えた場合、より多くの技術ポートフォリオ・技術的思考になれている人間のほうが相対的に有利であと思います。
ここに関して「文系」と「理系」を区別することには意味があると思います。(正確には受けてきた教育に関してわける合理的理由はあるかと思うという感じです。)

文系エンジニアが成立するのはかなり局所的な話であり、すでにweb開発がコモディティ化している現代においては、すでに文系エンジニア論理は終わりを告げつつあるように思います。それこそ泥なのは文系エンジニアの世界ではないですか?(これは提案。実際はよくわかんない)

重要なのは敬意

以前紹介した記事(twitterに書いただけだったかも・・?)にもありましたが。

4. Failure to Show Respect
When in Rome, do as the Romans do. If you’re a tourist overseas, you shouldn’t assume that everyone speaks English. That’s just plain rude. Natives of your host country will appreciate any attempt to speak their language, however feeble it might be; it’s a sign of respect and will go a long way to making sure the waiters don’t spit in your food. Likewise, even if business execs don’t understand the “language” of their technical counterparts, they need to do their homework and try to gain a basic awareness of the job at hand. It shows respect and breeds confidence. Business execs also often fail to appreciate what inspires and motivates technical and product folks, who sometimes are creative types more interested in building cool, innovative and useful stuff than making a busload of cash.

(要約)

郷に入れば郷に従え。エンジニアたちの言葉を理解することは、彼らに対する敬意をしめすことなのである。もし理解できないのであれば、自分で勉強してちょっとでも仕事についてわかるようにしておくべきである。
また何が製品担当や技術担当のモチベーションをあげるのかをうまく理解できないことがよくある。

経営者の話を聞いていると「ずいぶん勝手なことを言うな」と思うことがしばしばある。これは本当に簡単なことであるのに気づかない人が多い。

エンジニアだから、プログラマだからといってどんなものを作ってても楽しいということはないわけです。よく「プログラムかいてれば楽しいんでしょ?」という人がいますが、大きな勘違い。もちろんそういう人もいるにはいますが・・・・

ひるがえってこう聞けばいいかもしれません。「温暖化を解消する会社を経営してよ?経営してればなんでも楽しいんでしょ?」

どんな会社でも経営できれば楽しいという人は、プログラマと同様にいるんだとは思いますが、自分の興味のない会社を経営することを考えたら、ほとんどの人はモチベーションあがらないんじゃないでしょうか?
それが将来もよくわからないような会社だったらなおさらどうでしょう?なんで自分がそんなことをしないといけないとか思いませんか?
俺も仕事じゃなきゃこんなこと考えませんが(モチベーションはやはり品質に跳ね返る。身内ならなおさら。)、すごく当たり前のこととして考えてほしいと思うことが多いです。エンジニアを少しひとくくりにしすぎじゃないでしょうか?

経営者は自分の仕事に関してよく考えてほしい

かえって俺は経営者の仕事というのがよくわかりません。いや、大体わからなくもないのですが、コードを書けるべきとかそういうのとは本来的に別次元であると思うんですよね。
やっぱりインターネット。作る側の悲鳴ばかり聞こえてきて「私はそれにメスを入れる!」みたいな人たくさんいるわけですが、果たして経営者が本来的にするべきことについてネット上で語られてきているでしょうか?
ここには相当バイアスがかかっていることに注意しなくてはいけないと思います。

たいていの場合経営者は組織の制度上の明確な権力を持っています。形式上エンジニアを首にすることは簡単なわけであり、コストに見合わなければ首をすげかえることができるわけです。
それに対して技術者は実力で対抗しなくてはいけないわけです。「私の代わりはいませんよ?」

経営者は組織上明確な権力を持っている以上は、本当に見合った仕事をしているのかについては慎重に考える必要があります。
究極毎日ゴルフしてたって誰もあなたを首にはできません(人はついてこないでしょうが)
そういった立場であることを第一に考えるべきではないでしょうか?
果たして技術なんかにうつつを抜かしている場合なんでしょうか?もっと経営者がすべきことがあるんではないですか?

これは技術がわかるべきかどうかというのとは別次元の問題であり、かつ、本来的にもっと議論されるべきところなんだと思います。

思い出したのでついでに言うと「エンジニアにとってすごしやすい会社/企業」というのはなんかおかしいのです。前項にあげた「敬意/それぞれの趣味趣向」を認めるなら、それが物理的に実現不可能であり、たとえ実現したとしてもエンジニアリングとして優れた人は来ないであろうことが想像できます。
むしろ会社として「求める人材像」があり、その人たちにすごしやすい環境を整えるべきなんではないでしょうか?

泥の原因

個人的には泥の原因はこれじゃないかというのがあります。だいたいこの中のどれかか、これの組み合わせじゃないでしょうか?

  • 全方位的に興味をもった、定まらない人材
  • そういった人材と誰でもできる仕事を提供する企業との幸福で不幸なマッチング
  • 自主的にコスト競争をし続ける中小企業や学生とか個人
  • 特定の悲惨なサンプルがすごいクロースアップしている(誰も定量的に議論していない)
  • なんかよくわかんないものを過大評価したり過小評価したりする
  • 他人の人格を認めない人たち

すくなくとも、「エンジニアの未来サミット」というタイトルで、なぜかプログラミングっぽい話だけをする感覚自体になにかしろの破綻が見られるように思えます。
(もちろんgihyo.jpが主催な時点である程度察しろという話はありますが)

希望というか提案

  • もし泥とか何とか議論したいなら、ちゃんと業界「全体」について考察してみてはいかがでしょうか?
  • 「泥」の定義は何なんでしょうか?
  • 自分が何に興味があるのか、自分の目標/目的はなんなのか考えてみたらどうでしょうか?根拠のない自信がもてるくらいまでの何かが必要だと思います。
  • きれいごとっぽいですが、相手の人格を認めてあげてはどうでしょうか?

そしてもうひとつ。これ個人的には重要なんですが。

  • エンジニアリング=プログラミングではありません。むしろプログラミングだけなら、たいていの場合文系の人のほうが幸せにできると思います。

理系で全うに工学してる人は、学部であっても、webとかよりはだいぶ別次元のことしています。

追記:なんかアレゲなので今後泥の話には触れません。

報告:大学院うかりました

  • Filed under: 雑記
Saturday
Sep 13,2008

なんやかんやありましたが、うかりました。

来年から情報理工学系研究科の創造情報にいきますm(_ _)m

後日追記:

ついでなのでどんな勉強したのかかいておこうと思います。勉強以外についても。
ただし、多分に予想が入っているのでなんともいえません。
また、かいてあることは必ずしも合格しようという意図でやったわけでもないことが多いのでその点注意。
(もともとアルゴリズムの勉強もしようとしていたので、実はそれほど試験勉強っぽいことはしていない)

  • 院試説明会を聞きにいく
  • いきたい先生のところに話を聞きにいく
  • とりあえず全部の年の問題をざっとながめる
  • とりあえず過去問は解く
  • 試験に向けての準備
  • プログラミングの面接

あたりまえですが、行こうと思ってるんだから、説明会は聞きにいきましょう。自分の場合趣味が合わないと瞬間的に行かなくなることが経験上わかっているので、特に重要です。
説明会に行くと、紙に名前とか書いたので、影響度は低いにしてもなにかしろの意味はあると思うのが自然であるような気がします。

次。これは結構いろいろなやんだりしましたが、研究室の教授に話を聞きにいきましょう。俺は友達と一緒に行きました。
これまた人柄の問題なんですが、やっぱしあわない人とはあわないので、個人的には重要なファクターです。
実は教授とそりが合わずに卒業できなかった人を少なからず知っているので、要注意です。

とりあえず過去問をざっと眺める。
じぶんは全部印刷して床に並べて眺めたりするんですが、なんとなくの傾向をつかみます。
創造情報だと1アルゴリズム、2コンピュータシステム、3ロボット、4語句問題というのが割とすぐにわかります。
まぁ正直これわかっても領域広すぎてアレゲでしたが。

とりあえず過去問は解く。
すくなくとも創造情報の問題は本とかwebみればだいたいわかる問題ばっかりです。
めんどくさがらずに解きましょう。
けど、なんだかんだいって、似たような問題全くでないので、無駄といえば無駄な気がしないでもないです。

試験に向けての準備。
これが個人的には一番力はいってました。まずemacsの改造。コマンドの引数とかをすぐ調べられるように、friを導入し、anything-rcodetools.elを導入します。
これ便利。
rcodetoolsとは、rubyをかくのに便利なコマンド群です。とくに xmpfilterは便利。これを入れるとrubyのコードをかいているすぐ横に演算結果を出してくれるので、デバッグが楽になります。

そして、こっからが重要。結局使わなかったですが、プログラムの動作確認をするためのツールや、マニュアル類をネットから大量に落としておく。

たとえば、結構グラフの問題が多い傾向があったので、簡単にグラフを可視化できるツールのgraphvizを入れておきました。
これをつかって、自分のかいたプログラムが本当に正しいかどうかを芽で簡単に確認できるようになります。

あとマニュアルを大量に落としておく。graphvizのチュートリアルやアルゴリズムのまとめサイトからwget -rで大量にローカルにダウンロードしておきます。
すると試験中困ったとしても確認することができますね。

一応試験の縛りとしてはネットにさえつながなければいいので、ひょっとするとwikipediaをlocalに入れておくとか、やっといてもいいかもしれないですね。
まぁ使わない気もしますが・・・・

プログラミングの面接は、慌てず騒がず、自分の方針の正しさを全力主張しましょう。自分は最後まで書き終わらなかったですが、方針とそれが有効な時間内に計算が終わるということを言ったらだいたいOKだったみたいです。

なにげに筆記はちょっといまいちなできだったのであれですが、総合的にはOKだったみたいです。
と、まぁそんな感じで、来年受ける人がいればご参考に。

Sunday
Sep 7,2008

プログラミングができるようになるためにはというのが最近よく話題になってるっぽい。twtter:tamuken,プログラミング未経験者がJavaScriptでプログラミングをするために必要なこと
そういえば自分はどうだったのかなー?と思っていろいろ考えてみた。
たぶん自分の場合何段階かあったような気がする。

  1. 親になんとなく勧められた
  2. インターネット登場
  3. しばらくさわらなかった
  4. ベンチャーへの興味
  5. コンピュータへの興味

気づいたころには、なんで書けてるのかよくわかんない感じになってたので、どうやったらできるようになるのかという質問が一番難しいのですが。
ただ、自分は目的があってそこで初めて言語を覚えるタイプなので、実はプログラミング的にきれいに書くとか、プログラミング自体にはそれほど詳しくありません(デザインパターン?副作用?関数?だからなに?的な)
よくいろんな人が言っていますが、プログラミングは自己表現の一環であって、もちろん言語に関して詳細な知識を持っているほうが流暢な言葉がしゃべれるんでしょうが、別にそうでなくてもいいわけです。

まぁなんやかんや言ったところであれですが、ようは俺が小学生のころに書けたんだから、書けないことはないでしょう。

howto系は他の人に任せるとして、体験談から。プログラミングかけるようになるコツとか書いてないかも?

親になんとなく勧められたベーシック

小学校2年の頃だったかな。pc9801の青白液晶のPCがたぶん人生初のPCとの出会いでした。青白って何?って感じでしょうが、昔はなんだか知らないけど液晶は青白だったんですよ。コントラストが悪かったんでしょうか?

そのときにN88Basicなんてものがあったんですが、親になんとなく本を渡され色々教えてもらいました。もはや中身は思えてないですが。

たぶん人生初のプログラミングはautoexec.batです。はい、これまた何なの?って感じでしょうがunixのshみたいなものです。今でもwindowsだと.batのファイルとかありますよね。
昔はフロッピーをいれて電源を入れると、フロッピーに入ってるプログラムが動くということがありました。いわゆる起動フロッピーというやつです。
そこにDOSのシステムとconfig.sysとautoexec.batというのを書くと、環境を設定してくれてautoexec.batに書かれているプログラムを起動してくれるわけです。

中身はたとえばこんな感じです。

omoshiroi_game.exe

こんだけ。もうちょい中身はありますが、要はゲーム起動するだけ。当時何も仕組みわかりませんでしたが、どうやらこうするとゲームができるというのは覚えたので、こんな感じでやってました。当時インターネットなんかなく情報源といえばパソコン通信と父親。やっぱし父親が詳しかったのは大きいかもしれないです。

で、当然自然な成り行きとして、今度はゲームを作りたくなるわけです。だってタダですからね。アイスクリーム買うのにも躊躇するのに、タダでゲームができるわけです。やらないわけがない。

詳細な話は省きますが、N88Basicというと今みたいにビジュアルなゲームを作るのには色々ねたっぽい事をしないとだめです。たとえばキャラクターひとつ書くにもピクセルごとに色を指定して全部配列みたいにして書いたりします。
関数なんてない(あったかも知れんけど使わんかった・・・)ので、全部GOTOとかで書いたりとか。結果的にこういうところでコンピュータの仕組みが帰ってわかった気がします。
関数がなんだかんだとやるより、Goto 100とかやると100行目に飛ぶとかいうほうが100倍わかりやすいですよね。ある意味最近のプログラミングは複雑になりすぎたのかもしれないです。

まぁさしてプログラミングなんか興味なかった(いまもそれほど興味ないんだけど)わけですが、ゲームをしたいって衝動とありあまる時間でプログラミングしてました。

インターネットとの出会い

これも小学校の頃ですね。まぁ最初はホワイトハウスのwebを見たりしてきゃいきゃいさわいでただけですが。(当時のインターネット入門本はyahooとホワイトハウスが鉄板でした)
中学校の頃webページを公開したくなり、HTMLとjavascriptとperlとjavaを覚えました。なに作ってたかってブラクラとか某ゲーム機から履歴をぶっこ抜くとかそういうプログラミングをしてました。中学生というと、なんというか、サブカルチャーにあこがれますよねw(当時から厨房という言葉はあり、「ほんとに中学生ですがなにか?」というのはよく使ってましたね・・・・)

こんなページ(まだあったよこれ・・・・)

中学から高校の頃まで管理してました。なんつーか、恥ずかしいことたくさんあってなえた・・・・
内容は趣味で作ったプログラム公開とかそんなんですね。あとは友達との交流とか。ライトノベルなんかもよく読んでたので、そういうのも書いてあります。

プログラミング自体の話になると左上のカラスっぽい絵。とうじホワイトボードみたいなソフトウェアで全うにwebで動くのがなかったため自分で作ろうと思ったんですね。ないもんはしょうがない。
で、フラッシュとかもあったんだかなかったんだかという時代なのでjava appletで入力インターフェースをつくり、サーバへの保存をperlで書いています。
で、これまた残念なことにCPANとかがあったのかなかったのか当時よく知らなかったので、GIFの圧縮処理も自力で書いてます。
LZWの仕様書とか読んでましたね。ここで、ついでに英語も読めるようになりました。

なんかいろんな都合でHTTPとかFTPやSMTPのRFCとかを読んだりしていろんなプロトコルとかも実装しました。チャットソフトとかもjavaで作りましたね。最近1000speakersでflashで作ってた人いましたが、ほとんど同じ実装だったので懐かしい感じでした。

しばらくさわらなかった

高校受験をはさんで、たいしてプログラミングしなくなりました。何ででしょうね。謎です。一説によるともてたかったんじゃないかという噂がありますが、大してもてたわけでもないので謎です。
けどなんだかんだで高校のwebつくったり、VJなんかもしました。CPU500MHzとかで動画編集するのは地獄でしたねー。composite stationをはじめて触ったときには感動ありました。だって当時のスペックであんだけさくさく動画動くんですよ?びびりましたね。
高校の紹介ビデオをフルデジタル編集して、2年間くらいは学校の公式行事で使われたりしました。プログラミングらしいプログラミングはほとんどしてません。

ベンチャーへの興味

はなしは大学まで飛びます。プログラミングの商業的側面について考えるようになったのはこの頃です。
ITベンチャー!シリコンバレー!大金持ち!ぐへへへへ。何気に幼少の頃からNHKとかでやってるシリコンバレーの話を延々と聞かされていたせいか強くベンチャーに興味がありました。
で、インターン紹介のなんとかって会社経由でチームラボという会社にバイトをしに行きました。2004年の2月くらいかな?
初日からいきなり「PHPとかSQLとか知ってる?書いて(ハート」という展開。ぜんぜん知らなかったわけですが、他人のプログラム直したりテストしたりしてるうちに、なんとなーく書けるようになりました。知らないもんを何で直せるんだって話はあるんですが、割とそこにプログラムがあるとわかるものです。というか、直したというよりは直るまでいじくりまわしてたという感じですが。

結構個人的にはここがターニングポイントで、やっぱし自分より詳しい人がいるという環境は結構重要でした。linuxとかサーバとかテストとかデバッグとかIDEとか。知らないこと盛りだくさん。これは感動的。
もともとあんま大学行ってなかったですが、延々と何回も高校の頃もやったような微分積分とか、いまさらな美術論とかやられるよりは、新しい情報があるほうが楽しい!まぁ大学もっと無視するようになりましたね。(あとで、研究室とかに行くのもありだったなと思うようになりましたが)

で、ほんとにこの辺からプログラミングで独立しようと考え始め、ドリームゲートなど起業系のイベントにも行き始め、プログラミングもどちらかというとコストカットについて考えるようになりました。
フレームワークとかライブラリとか。オブジェクト指向とかも基本的に生産性の問題で覚えました。

で、色々あって一人で仕事もらうところまでやりました。はじめて請求書に自分の名前書いて出したときは結構感動ありましたね。

ここもひとつポイントですね。生産性。利便性。あと、お客さんのことでしょうか。ぶっちゃけた話、プログラムのきれいさとか美しさなんてのはどうでもよくて、そのシステムを使う人、サービスを受ける人の利便性を考えることが重要だということ。
最終的には、その利便性を担保しつつ、コストを抑えるための仕事の選び方やフレームワーク選定、ライブラリ、バージョン管理などなど。
商業的な側面としてプログラミングを捉えるようになったのはこのころなきがしました。

コンピュータへの興味

なんというか、今まで手段としてのプログラミングをよく考えてきてたわけなんですが、ここにきてコンピュータそのものにも興味が出てきました。

O倉君との出会いが少しプログラミングへの考え方を変えました。ひいては大学院行ってもいいかなと思うきっかけになったのですが。

ある日プログラミングで関連検索のようなものを実装する必要が出たわけですが、どうも自分がやるとうまくできそうにない。と、いうわけで、その部分だけ頼んだわけです。すると、あっという間に作り上げてしまいました。これはすごい。

最近保守の関係で久しぶりに見たのですが、今見てみれば単にTF/IDFによる特徴語抽出と、そこからの関係だけをみてるだけなんですが、当時はまったくそんなことわかりませんでした。
しかもお客さんはこれにたいそうな名前をつけて売ろうとかするわけです。これはすごいなー。

この辺からアルゴリズムやコンピュータそのものに対する興味が出てきました。単純にサイト構築でも一日あたり数十~百万件のデータ処理をするものとかを作るようになり素朴に実装すると動かなくなり始めたというのもあります。もはやGOTO100とかやってたころのテンションじゃ無理です。自分が提案している内容もデータの分析とかそっちのほうに自然とシフトして行ったのですね。

しかし困った。知恵がねぇ。もはや自頭で考え続けるのには限界な感じがしてきてました。残念ながら天才ではないのでみんなが必死に勉強してるようなもんを普通に思いつくほどには頭よくないわけです。
というところで、今はコンピュータアーキテクチャそのものやアルゴリズムにすごく興味が出てきて勉強しています。

もちろん動機は「お金になるから」とか「笑えるから」とかそういうゴミな発想なのですが。だけど、一番大きいのはそこには越えられない壁があるなと感じたのが大きいです。
なので超える努力をしようというのが最近です。

プログラミングできるようになるためには?

個人的には、書こうと思ってかけるもんじゃないと思うんですよね。自分を客観的に考えてプログラミングの才能がある気がしません。
単にいろんな理由で、商業的にとか、趣味的にとかで色々研究してるので、なんとなくその延長でかけてるだけといえばそうです。

実例として、起業した友達とかはECサービスをやりたい一心で結局自分でもある程度PHPやflashをかけるようになりました。あの根性はすごい。
それで経営もやってますからね。

動機が必要というとありきたりですが、もしプログラミングせずにあなたの目標が達成できるなら別にしなくていいんだと思います。
趣味ではじめたいなら、本でも買って読めばいいわけです。最近iPhone出ましたね。じゃぁobjective-cとか。iPhone用のhtmlなんか書いてみてもいいかもしれないですね。これも本はあります。

プログラミングのためのプログラミングは好きな人のみができる話だと思います。haskellとか興味ありますし、ちょっと触りましたがあれを今おぼえる気にはなりません。

私個人の話をするなら、やっぱり「これがしたい!」という動機でしょうか。いまメディアサイトの立ち上げなどを計画してサーバ借りたりCMS選定したりしてますが、全部一から調べています。それなりに時間とお金かかってますが、まぁ要はやりたいかやりたくないかです。

CMSなんかぜんぜん知らないですが、本を買ったりネットで調べたりするわけです。一から作ってもいいわけですがスケールの問題と管理コストの問題などを総合的に評価してCMSを今回は「使ってみる」という判断をしたわけです。
別にサイト作るだけなら何でもいいと思います。

はっきりいえば、自分はお金大好きです。はい。あと手を動かすのも嫌いです。働いたら負けですね。そう思ったときにシステム作れたほうがいいと思っただけです。
だから第一義的なコンピュータそのものに対する興味はいまだに疑問です。が、すべては関係していてそれが最終的にコンピュータそのものへの興味へとつながっているわけです。コンピュータについて、プログラミングについて、たくさんのことを知っていれば最終的に手間をかけずに色々実現できますよね?

根本的に言えば、数学が好きです。これは趣味ですね。論理学とかああいうはっきりしていて議論しやすいものは好きです。だからコンピュータとかの発想もなじむといえばそうなのかもしれません。

なんだか、ばらばらかいてますが。だいたい、プログラミングするときになに考えてるかとか、プログラミングなんでできるようになったかとかをまとめるとこんな感じ。

ブログをslicehostに移動

  • Filed under: 雑記
Friday
Sep 5,2008

移動しっぱなしですね。

さくらに移動したんですが、mysqlのバージョンの問題などで、slicehostという海外のvpsサービスに変えました。
今のところ快調。

about me

原田 惇

応用数学や統計、ITなどを利用していろんなことをしています。
自己紹介はこちら

adsense

amazonお勧め

Recent Posts


Recent Comments


Twitter



Archives


Meta