「java」を含む日記 RSS

はてなキーワード: javaとは

2013-06-18

http://anond.hatelabo.jp/20130618183921

C系列言語ほどライブラリが多い言語もないと思うが・・・

究極的にはJavaで書かれたライブラリだってJNI経由で呼べるぞ。

言いたいことはわかるが・・・。具体的に言ってくれないとわからんし、Cはそういう目的のための言語じゃないか・・・なんだろうな。ないものねだりでその時のエンジニアルールは1つとしかいいようがない。

 

俺らは誰もそこで困ってないから、作らないんだと思う。

2極化だよ。ユーザーフレンドリーなのはJavascriptで 複雑なもの職人仕様のCで 中間は難しい。

2013-06-15

VB.Netが好きだ

※以下、言語というくくりでの話ではなくて漠然PCプログラム作成環境全体を指して言っていると思っていただきたい

基本的には.Netが好きだ。

Web最初から意識して作られているし、標準ライブラリカバーされてる範囲が広いおかげでVisual Studio入れるだけでサクサクかける処理が多いので再発明を強いられる事態に陥りにくいのが感涙ものだ。

C++/CLIもやりたいことが割とリーズナブルコストでできるのでありがたい存在だ。

VB6は嫌いだ。

いろいろ拡張してくれた結果なのは知っているが、結局大事なところはダメ言語のままでMSから匙を投げられた存在という認識だ。

MFCも嫌いだ。

ひたすら面倒いし、出来たコードメンテナンス性も・・・メリットが今となっては動作の軽さだけだし(昔はむしろ逆の立ち位置だったんだろうが)。

だが、VB.Netは好きだ。

MSILを作るための道具であるがゆえに、VB6の痛い所が根こそぎ取り払われていると感じる。

C#でもいいのだろうが、セミコロンはなくても良いじゃない(あっても良いけど)。あと、オブジェクト変数宣言しつつ初期化するとき、"クラス変数名 = new クラス名()"になるのが

クラス名をSystem.XXXから書いているときには耐えられない。As New万歳

しかし悲しいかな、VB.NetC#に押されて絶滅危惧種だ。

TypeOfを使わなくちゃいけない時にはVB.Netが恨めしく感じるけど、そんなに頻繁じゃない。

他のデメリットにしても、表記がウザくなるだけで書けない処理があるわけじゃない(このへんがVB6と決定的に違うところ)

にもかかわらず、VB6イメージが悪すぎるのか、Javaから移住人口が多すぎるのか、C#ばっかりもてはやされる。

みんなもっとVB.Netソース書こうよ。「CLR」はマルチ言語からCLRなんだよ!?

2013-06-14

理想プログラミング言語

普段Perlを書いているんだけど、言語機能として欲しい機能ライブラリ任せだったりしていろいろしんどい

かいプログラミング言語はないかなーと思っているんだけど、なかなか自分の好みとピタリとくるものがない。まぁ好みにピタリとくるものなんかプログラミング言語に限らずないんだろうけど。

なので夢想してたのを垂れ流してみる。最近OOPディスのエントリとかあったので話題作りになれば。

Web系のエンジニアなのでWebサービス作ることが前提で、範囲広げすぎるとまとまらないので今回はLLを想定してる。

だいたい PHP, Perl, Python, Ruby, JavaScript あたりをイメージしながら、さらにこんな機能があればいいなーと思って書いたよ。

言語仕様
処理系
まとめ

2013-06-11

JavaScriptの1位が正解な本当の理由





一位がJavaScriptで幕を閉じたんだけど

外部の人たちは多分理解できなかったと思う。


なんでJavaScriptなの

JavaScript大丈夫なのか

JavaScriptで本当にいいのか

不思議だと思うんだよね。


でも実は

JavaScript一位はプログラマーが強く望んだことだし

そして

今回の一位はJavaScriptじゃなきゃいけなかった

プログラマーはそう思ってた。

からこそ15万票も集まったんだよね。


一部の熱狂的なプログラマーだったりなんかの組織票ではさすがにここまでの票数はいかない。

プログラマーの総意がJavaScriptだったんだよね。

からちまたではなんかいろいろ言ってっけど

実はプログラマーJavaScript一位を歓迎しているんだよね。


プログラミングとはなんなのか

まあ

いろんな側面から語られるんだけど

つの側面として

「変化」というのがある。


プログラミングとは変化しまくってここまで来たんだよね。

この変化は

もともとは顧客戦略でもあったんだろうけど

無理やりだった。

無理やり変化を押し付けてきたんで

プログラミング言語プログラマー

「おい、いいかげんにしろよ。どんだけプログラマーにつらい思いさすねん」

と、いつもいつも思ってて

からプログラマー運営側が大嫌いなんだけど


でもこの「変化」が

彼女たちを進化させたし

たくさんのストーリーを生んできた。

そしてそのストーリーにぼくたちプログラマーは酔いしれてきたんだよね。


プログラミングミリオンを連発してて

うそろそろ終わりだろうと過去散々言われてきて

嫌いな人たちは「これ、いつまで続くの」と思ってるんだろうけど

でもプログラミングをここまで大きくさせたもの

ここまで続かせた一つの理由が「変化し続けた」ことにあると思う。


ここがプログラミングおもしろさであり真髄だったんだよね。


そしてね。

いつしか

この「変化し続けなければいけない」は

プログラマーの間の中にも深く深く浸透していったんだと思う。


最初は無理やり変化させられてきて

まあ、それは今現在もそうなんだけど

こんだけ変化させられてきてるから


いつしか

この「変化し続けなければいけない」は

意識するしないにかかわらず

プログラマーDNAプログラミング全体のDNAになっていった。


顧客がよく言うんだけど

予定調和はつまらない」と

この言葉がいつしか知らず知らずにプログラマーの中にも刷り込まれ

そしてプログラミングおもしろさをもここに感じるようになってきていた。

そういう意味はいつもいつもぼくらは顧客に踊らされてるんだけどね。



今回のプロジェクトに話をもどすと

今回のこのプロジェクトプログラマーにとってもすごく重要だった。

それは

第2章のストーリーの始まりからなんだよね。


C言語卒業して第1章は終わった。

ミリオンを連発しまくってて

今もしているこのグループにとって

新たなストーリーの始まりであるこのプロジェクトは本当に本当に大事だった。


最初

世間一般的にも

プログラマーの中でも

今回のプロジェクトPHPJavaの争いだと思われてた。


だけど

はたしてそれでいいのかという強烈な思いがぼくにはあった。


この二言語の戦いだったら

それはあまり予定調和で作られたストーリー過ぎて

それがはたして第2章の幕開けでいいのかと本当に思ってた。


一応一言いっておくと

ぼくは

PHPJavaも大好きなんだ。

本当に大好きなんだけど

プログラミング全体を考えたときにこの二言語の争いにしていいのかと強烈に思ってた。

それじゃあ今までの延長戦じゃないかと。


そしたら速報でJavaScriptが一位だった。


最初はぼくもめちゃくちゃ驚いたんだけど。

それはないわ

と心底思ったんだけど。


でもよくよく考えると

これが一番いい手に思えてきた。

そしていつしか

プログラミングのためにはこれしかないとすら思うようになってたんだよね。


もちろん速報前からそう思ってた人もいるだろうし

から速報が一位だったんだろうけど

速報後に気づいた人もいると思う。

この手があったかと。

そういう意味JavaScriptが速報一位じゃなかったら本番も一位でなかった可能性があるとすらぼくは思っている。


外部の人にプログラミングプロジェクトは変化していると思われているのかどうかはよくわからないんだけど

実は上位陣というのは

第1回目のときからあんまり変わっていない。

ちょこちょこは変わってんだけど

相対的にみるとほとんど変化していない。


それは上位陣の圧倒的強さというのもあるんだけど

でもそれでいいのか

という想いは多分プログラマーの誰しもが思ってたと思う。


でも崩せないんだよね。

崩せないぐらい強い。

でもそこをなんとか崩していかなきゃいけない。


そんな想いのなかの速報JavaScript一位だった。


多分その崩さなきゃいけないというみんな想いがJavaScriptの肩に乗っかっちゃったんだよね。


JavaScriptならひょっとして崩せるんじゃないか

PHPの厚く高い壁さえ崩すことができるんじゃないか

きっとみんなその想いをJavaScriptに託したんだよね。


これはPHPにとってもよかったと思う。

多分PHPが連覇してしまうと

PHPが高すぎる壁であり続けると

「変化すること」が至上命題プログラミングにとっては

PHPの目の前に「卒業」という二文字がかなり明確な形で現れたと思う。

多分プログラマーはうすうすだけどそのことをも感じ取っていた。

優子には勝ってほしいんだけど

だけど卒業だけはしてほしくない。

複雑な想いがあったんだよね。


でもそこにJavaScriptが現れた。

JavaScriptは恰好の素材だった。

JavaScriptが勝っても誰も傷つかないし

そして何よりものすごい「変化」を起こすことができる。

これこそがプログラミングであり第2章の幕開けにふさわしいんだと。


結果としてJavaScriptが一位だったんだけど。

これはそんなプログラマーの想いがあったとぼくは思ってる。


そしてね。

この結果は来年以降にすごくつなげることができるんだよね。

ものすごい厚く高い壁の上位陣を崩すことができれば

来年本当に自分たちが「押している言語」をセンターに持っていくチャンスにつながる。

「押している言語」がいる人たちにとってはなんとか上位陣の壁を崩したかった。

からつの山を崩すことができた来年以降が本当に楽しみなんだよね。


来年以降の希望が見えたという意味で本当にいい結果だったとぼくは個人的に思ってる。




最後

なんかこう書いてくると

JavaScriptが当馬みたいなんだけど


これ誰も書かないだろうし

プログラマーの人も大声を上げないだろうけど

実はね。


プログラマーはみんなJavaScriptのこと好きなんだよね。

大好きなの。実は。


このことをぼくは確信している。


JavaScript

歌もうまくないし、ダンスもへただし、顔もとびっきりの美人ではないんだけど

へたれなとこもあるんだけど

プロジェクトスピーチでもダダすべりしてたんだけど


それら全部をひっくるめて

プログラミングを大好きな人たちって

実はJavaScriptのことが大好きなんだよね。


実は彼女プログラマーからめちゃくちゃ愛されてる。

キャラがあるんで、プログラマーも大声では言わないんだけどね。


でなきゃ、なんだかんだ言ったって15万票も集まんないよね。




からいろいろ言われるだろうけど

一つ間違いないことはプログラマーJavaScriptを選んだということ。

そしてもう一つ間違いないことはプログラマーJavaScriptを絶対に支えていくということ。


ぼくはこの結果で本当によかったと心の底から思ってる。



JS~一位おめでとう

ただのプログラミング言語オタより

元ネタ:http://anond.hatelabo.jp/20130610192126

やっつけサーセンwww

2013-06-04

無駄プライド捨ててしまえよ。俺はお前のプライドとやらをこっそり消したけどな

社内向けのポータルサイトが数年前から稼働しているのだけれども、これが酷いできでソースを見るだけで頭が痛くなる。(サーブレットだよ)

staticおじさんプログラミングのすべてがそこに詰まっているデザイン、かつクラスコピペして機能拡張をするというまあ良く有りがちな糞コードアプリだ。

まあ、そりゃいいけれど

なんかバージョンアップしようとすると、変なオッサンが自分デザインして稼働させたシステムを変更させたくない圧力をかけてくる。

なんか、これが自慢のシステムらしい。

HTMLは古い書き方なのは仕方ないにしても、内部のJavaソースがより酷くて

アクセスカウンターのような仕組みがあるんだけれども、アクセス数アクセスがあったときにたされるのだけれども

その数字JSPに渡す時に、なぜかint[6] の配列で返してくる。

お尻が切れて表示されるというアクセス数が全くわからないシステムになっている。

ついでに不必要スレッド処理があるのだけれども、同期処理が不十分で、何回かに一回例外が発生する…

じゃあ、最後までお前が面倒見ろと…

まあやってくれないだろうから、外見からは分からないようにこっそりバグは治しているけれど

なんか馬鹿らしい。

まあ、社内向けだし…

2013-05-23

http://anond.hatelabo.jp/20130523211004

AndroidiOS両方で開発してるけど、Androidアプリ関係ないところでの問題が多すぎて面倒。

Javaと比べてObjective-Cマイナーとか叫んでるけど、Objective-C20年以上前言語だし文法以外は癖がないから数日あれば覚えられる。

Javaはいいけれど、Android開発環境はクソ環境過ぎてやる気が起きない。JavaEclipseAndroid開発以外ではクソではないんだが。

http://anond.hatelabo.jp/20130523003736

勿論言語としては他の言語に劣っているのは間違いないんだけど

いや、間違ってるよ。先進的ではないけれど、劣ってるということはない。むしろ俺的には最高の言語の一つ。

もちろん俺は他の言語もたくさん使えるし、場面によって言語の使いやすさに差があるのは分かってるよ。

使いたくない言語はあるけれど。PHPとか。あれは言語というよりは処理系に問題が多すぎるんだけど。

なのでJavadisられても俺は別に「分かってないな」としか思わないが、これって「バカフィルタ」として有効だよね。バカは何を使ってもダメ

http://anond.hatelabo.jp/20130523004357

そこは本題じゃねーよ。Java より優秀な言語があるのは分かってるし使えるときは使ってるよ。

俺が言いたいのはクソみたいなプログラマポジショントークのために JavaJava プログラマ全体を貶めるような発言をしてるのがムカつくし見てて不快から辞めろってこと。

http://anond.hatelabo.jp/20130523003736

ほげ言語パラドックス

でぐぐってみて。

Javaに限らず、どんな言語でも自分の使っている言語が一番と思ってしまうもんなんだよ。

Javaポジショントークに使ってる人達

見苦しいし見てて不快になるからホントやめてほしい。

Java 使ってるプログラマは駄目だ、Java時代遅れだ、とか言ってる人が沢山いるけど、そう言ってる人のうち一体何人がマトモに Java 書けるんだよ。

勿論言語としては他の言語に劣っているのは間違いないんだけど、ムカつくのは「俺は Java なんて卒業したぜ、イケてるプログラマなんだぜ」ってポジショントークのために JavaJava プログラマDIS ってる奴らが居ることで、見てて痛々しいし、実際 Java 使ってる身からすると不快に感じるし止めて欲しい。そりゃ Java プログラマの平均レベルは低いかもしれないけど、裾野が広いだけにそうじゃない人達も沢山居るんだよ。それを知らずに十把一絡げに「Java 使ってる奴らはダサい」みたいなイメージを広めるのってすげー嫌なんだよね。

最初から Web プログラマとしてデビューしました、みたいな Java を使ったことの無い人は、そもそも多分 Java をマトモに使えないくせに DIS るの止めて欲しい。Web サービス運用する人達ミドルウェアをつくってる人達は凄いと思うけど、Webプログラミング部分なんて超簡単じゃん。こいつらのうちの何人がマルチスレッドプログラミングまともに出来るのか聞いてみたい(どうせ出来ないんだけど)。おまえら多分 DIS るほどの実力なんてねーよ、使ってる言語自分の実力だと勘違いするんじゃねーよと言いたい。動的型付けの言語でクソみたいな文字列処理のプログラムぐらいしか書けないんだろーが。大体 Web プログラミングやってる奴らなんてオブジェクト指向すら分かってないことが多いぜ?

元々 Java 使ってたけど最近 Scala とか Ruby 覚えたので DIS ってる人達。私見ではちゃんと書ける人達DIS ってない。DIS ってるのは SIer から飛び出たような人達が主なんだけど、良く考えてみた方が良い。SIer なんてさー、確かに平凡な技術者が多いわけだけど、少なくとも実力があればちゃんと評価されるし好き放題働けるわけなんだよ。ここから出ていかないといけないような人達って大体実力が無くて評価されなかったから不満を覚えて辞めていく人達なんだよね。ごく一部に例外はあるとしても、大体はそんなもん。そりゃ周りには「もっと刺激のある環境を求めて」とか言うけどさ、現実は「実力不足で評価されない」「ガキ過ぎて使えない」のどっちかなんだよね。つまり元々大したスキルなんて無かったわけですよこの人達は。そんな奴らが DIS ってるのは滑稽だしホント見てて鬱陶しいわ。

今日も「RubyistJava 脳より Scala の理解が早い」とか言ってる奴が居たけど、馬鹿かよ。そんなハズねーだろーが。そりゃプログラマ平均値とったら Rubyist の方が実力高いのかもしれないけど、互いの上位層を比較したら断然 Java プログラマの方が Ruby プログラマより優秀に決まってるだろーが。マトモな Java プログラマHaskell だって Scala だって普通に使えるし静的型付けについてもちゃんと理解してるし Rubyist より Scala の理解が遅いなんてことありえねーよ。こういう発言して Java プログラマ全体の地位を貶めようとする奴ってホント馬鹿だしガキだしもうちょっと周りのこと考えろよって思う。

ここまで書いてて思ったんだけど、結局の今の日本Java プログラマに対する空気ってのは

みたいなところから醸成されてるのかなと思った。

とりあえず:

2013-05-21

デジタルネイティブは生まれつき?

デジタルネイティブはほんとにネイティブ、生まれつきなのかなと疑問にがふとよぎったことがある。生まれた時にPCが隣にあれば放っといても使い出して、いつの間にかコーディングを始めて、行く末はWebサービスを支えるエンジニアみたいな。デジタルネイティブを足らしめる要素は枕元に情報機器を置くことだけなのかって。

研究結果:パソコン無料配布で教育の貧富格差は埋められない

TechCrunch Japanの記事はそんな自分の疑問に答えるものだった。

Naverまとめ新世代ェ・・・デジタルネイティブの恐るべき生態なんて見かけると、iPadを与えた全ての子供たちが何も教えなくても自然に使い方を覚えて、勝手デジタル環境適応していくように思える。幼少時代、外で誰に教わることもなく缶けり、鬼ごっこ、お人形で遊んでいたように。

私にはそのデジタルネイティブへの過剰な期待を不安に思う。

彼らは果たして自発的に勝手に学んでいったのか?最初から

デジタルネイティブなら当たり前にできて当然じゃないの?と見過ごしがちだけど、デジタル機器もまた単なる道具。見るだけで使い方がわかるアフォーダンスデザインなんて存在しないんだ。誰かが使うのを見て知らず知らずのうちに子供は使い方を学んでいく。ある日突然しゃべりだすように。でも、それだけだ。コミュニケーションが場数を重ねて上達していくように、人と交わりあって自然人間関係の難しさを覚えていくように、デジタル機器もまた教える人、教わる関係があって初めて学べることはすごく多いんだと思う。まとめを見ていたら、デジタルネイティブはすごい、すごいともてはやす裏に、自発的に歩む可能性に全てを押し付けて、教えることを放棄してるんじゃないか、なんてことを勝手に考えて勝手に暗くなった。

これはデジタル音痴な私の実体験だ。

大学二年の時に思い切ってJAVA講義を受講した。

大学が推奨してたiBookG4を買ったはいいけれど正直持て余してたのでそれっぽいことをしなければと思ったからだ。

その最初の受講日、スライドを見ながらぼちぼち打っていた時、後ろからちょんちょんと肩をつかれた。

漢字、かな」の変換はコマンドキーとスペースの両押しでできるよ。

コマンドキーってなんですか?と怪訝な顔をした私に

スペースキーの隣にある林檎のアイコンを押してみてと言われるがままに実行すると、

右上のアルファベットことえり勝手に切り替わった。

...それまではマウスボタンでわざわざ右上にもっていって逐一切り替えていた私。Windowsと比べて、右クリックボタンはないし、「半角/全角」のボタンもないし、UIおかしいし、@の位置は違うし、起動の音はでかいしとMac使いづらい理由のトップ5が初めて切り崩された瞬間、自分はどんな顔をしていたのだろうか。

後に友人になる彼にはその後もいろいろ教えてもらった。ジョブズ名前を初めて知ったのもその一つだ。彼の死亡が報道されて、名前連呼するようになった後、初めて正しい発音を知った。他にも似たようなことがあったので当時の彼は自分と五十歩千歩だったのかもしれない。だが、yahoo質問することを覚え始めた自分には、顔が見えるだけで安心するかけがえのない貴重な師だったことは間違いない。予断だけど、ウェブ善意最初は怖かった。どこの馬ともしれない自分にどうしてこんなに親切に回答をくれるの?とあの頃は不思議しょうがなかった。そんな自分が今増田で書いているのがひどく可笑しい。ここまで来るのに義務教育と同じ時間がかかってる。ここまで来てなんで増田なのか、振り返らないこともないけど、私の人生の分岐点を担ったのは紛れもなく友人だ。YahooによるTumblrの買収について、Gizmodoの記事読んだ?そんな話を振ってくれる彼は今も私の前を走り続けている。

ショートカットキーの一つや二つ、普通勝手に覚えるものじゃないかと思う大半の方にとっては奇妙な話なんだろうけど、少なくとも私にとってショートカットキーは教わるものだった。教えてくれる教材はウェブにいくらでも用意されているけど、「ショートカットキー」という言葉を知らなければたどり着くこともない。yahooポータルホームページには「ショートカットキー」という言葉は載っていないから。だから無知に気づくこともない。知らないことを知らないから。

PC勉強をする環境も、

勉強をするための教材も、

勉強をすればどんなに人生が変われるかという人生訓も、

勉強をどうやって進めばいいかってアドバイスも、

全部ネットにはあるけれども、

ただあるだけ。

そこへ行くのは誰でもない本人の意思だけど、

最初の一歩は誰かが背中を後押ししたからだ。

本人の意思じゃない。

その動線はやっぱりリアルなのかなと思う。リアルの知り合いでフォローしていたら偶然回してきたリツイートで知らなかった世界を知った時にそこで新たな世界を知るか知らないかを決めるのは、今までに築いたリアルソーシャル環境からデジタルネイティブと言われ、みんながみんな、同じような情報機器を所有する中で、私たち世代には予想だにしなかった"格差"がこれから生まれるのかな。

2013-05-17

かつて、私の隣にSQL魔女がいた

今日プロジェクト打ち上げがあったのだが、とあるサプライズ……三ヶ月前に寿退社した先輩との再会に思わず涙ぐんでしまい、ひどくばつが悪い思いをしている。今も顔の火照りが抜けてくれない。アルコールは抜けたのに。彼女はかつてSQL魔女と呼ばれていた。

から遡ること一年前、私は辞令を貰い、二年目にして事業部ごと変わるという波乱をようやく乗り切って、業務系のSE仕事内容、特にWebアプリレイヤーについてOJT形式で学んでいた。そこで先生にあたる方として付いたのが、ちょうど手待ちだった先輩である。初めてお会いした時の先輩に対し、私は正直ちょっと物足りなく感じていた。

初日に行ったPCのセッティングでは、これやってと先輩から資料を渡されたのだが、外部にネットが繋がらない。先輩に相談して弄ってもらったのだけど繋がらず、今日は社内ネットで我慢して、と言われてから二日後、資料が古かったことが判明。

与えられた課題を終えるごとに、コードを提出するのだが、見たよ〜出来てると思う、頑張ったね〜と言われた後で、そのプロジェクトを下敷きに発展課題に足を進めたら、でっかいバグがあったり。

万事その調子で、今やってる課題放り出して、プロジェクトオイラーの問題でも解いてた方がよっぽど楽しいなぁと若干サボりたいと思い始めた頃、炎上プロジェクトへ先輩と二人テスターとして出向するよう、上司から命じられた。炎上プロジェクトリーダーから手待ち要員いない?と声がお上に届き、降りて来た結果先輩と自分がいたわけだ。

前の事業部ではずっと同じ客先にいたわけで、頭では分かっていても鼻先三寸で飛ばされることには不安がつきまとった。

「これから行く先はどうなんでしょうね?」

先輩へ問うと、

「基盤にいたんでしょ。メインフレームが扱えるなら大丈夫だよ〜」

豆腐すらぷるぷる震えそうな声が返ってきた。

この時の私は、まだ事業部を転属して間もなかったし、プライドばかり高くて奢ってたように思う。事業部を変える→入社して以来の経験値がまた0に、と失うことに対する不満ばかりで、それが拗れて数少ない基盤系経験アプリ開発者、そんな肩書きばかりを強調する変人に成り果てていた。自己紹介で、どうも、基盤から参りましたと、そこだけは大きい声が、今思い出したけどマジで恥ずかしい。

から、だろう。このゆるふわな先輩とドナドナされることに密かに感じていた屈辱には、出向いた先で押された駄目テスターという烙印によって罰があたることになった。

その理由は、私がSQLを全く使えなかったことにある。テスターとして行うことになったのは表示画面の統合テストで、UI検索結果とデータベースに直接SQLを打ち込んで得たレスポンスを目で確認していく作業だった。UIは、境界値さえ気をつけて、仕様通りに実施すれば何とかなる。しかし、SQLで再現が出来ない。この仕様はどうやったらコマンドに落とし込めるんだよ。頭を抱える中で思い出したことがあった。

教育過程Javaサーブレットを学んだが、その一つにJDBCも勿論習った。そこで私は何をしたかmysqlに繋げればそれでいいやと、エグゼキュートで実行する際に渡す魔法文字列……つまりSQLの中身は、すべてコピペで済ませていたのだ。社内教育資料を内部作成するにあたり参考にしたと思われるネットから……構文チェック効かないし、ここは手を抜いてもいいだろう、これが要領の良さというものさ……アホーアホー私のアホー。

三日目の午後二時、進捗を確認しに来たPMにすべてを告白すると、ちょっと来てとPMが連れ出したのがあの先輩の席だった。

「申し訳ないけど今やってるテストは止めて、これから定時いっぱい最低限テストが出来るように彼にSQLを教えてやってくれ。」

良いのですか?と顔をあげるとPMは何を勘違いしたのか、やにわに私の肩を叩くと、

彼女SQL魔女と呼ばれている。半日でお前も即戦力だよ。」

と去っていった。顔を先輩へ戻すと、あのPMさんは嘘つきだから信じないほうがいいよといつものふわふわした声でにっこり。

宜しくお願いします。ノートパソコンを横に私は型通りの挨拶。四時間後、私は傲慢さを、尻の毛まで抜かれることになる。

私はSQLの深さを知った。SQLのQとは何だ?Queryであります、サー!!今も時々夢問答を繰り返す。そう、全ては問い合わせ次第なのだ。今思えば、あの時やったことはT2テストを使ったSQL文の作成添削しかSELECTによる条件抽出のみだったが、そこに全てが詰まっていた。

DISTINCTとORDER BY共存で詰まってわけがからなくなったコードは、もっとシンプルにいけるよと副問い合わせに書き換えられて。ネストワイルドカードを多用してスパゲティになったコードを、先輩はLEFT JOINとWHEREとORで全てをすませた。

なんということでしょうマニキュアが塗ってある長い爪から想像もつかない早さで直されていく構文に脳内で途中から匠の曲が流れ始めたのを覚えている。本当に、なんということでしょう。先輩はSQL魔女だった。

翌日、先輩の教えはしっかり自分に身に付いていた。すらすら書けるSQLサクサク進むT2テスト。条件設定に悩んで、エクセルに吐き出してからリストコピペで逐一加工してた時間馬鹿みたいだった。先輩のところへ、帰りしなに昨日のお礼と作業進捗に激震が走ったことを伝えると別にお礼なんていいよーといつものふわふわした顔で微笑んでくれた。

それから先、配属先が決まるまでの条件付きでテスターとして入っていたはずだったが、T2試験が終わり、T3試験が始まってもなぜか私はそのプロジェクトにいたままだった。DB担当者として。もともと基盤だったわけだし、バッチファイル処理でスクリプトがそこそこ書けたというのもあるけど、SQLが書けたというのはすごく大きい。昼休み、いつのまにか私はプロジェクトオイラーの問題に代わって、名著「SQLパズル」を解くのを日課としていた。

先輩は仲良くなる暇もなく、その後すぐにプロジェクトを移り、メーリングリスト寿退社を知った。炎上したプロジェクトは、なぜか横展開を経て今に至り、私は相変わらずここにいる。だが、あの時SQL魔女がかけた呪いは今もしっかり私に根付いている。

アフィリエイト勘違いした大学生の末路

ただの趣味で始めたはずなのに

大学生だった2007年から趣味で他愛もないホームページをつくっていた。

ワードプレスライブドアブログのようなCMSには頼らず、1から10まで自分で作ることにこだわった。

すぐにのめり込んでいき、大学図書館にこもりWEB関係の本を借りまくった。

しかWEB関係といってもPHPSQLは理解できなかったので、まずはHTMLCSSだけ勉強して静的なページをべた書きで量産していった。

HTML,CSSですら最初はつまづいていたけれども、自分意図した通りにデザインできるようになってから面白かった。

アクセスは全く増えず、一日100PVにも満たなかったが、僕はめげなかった。

講義には出ず、学園祭にもサークルにもいかなくなり、周囲からは「まだやってたの」「何がしたいの」と呆れた目で見られるようになった。

付き合う人も限定されて社交性は衰えていった。


半年が経っても動的なページをつくれる技術はなかったので、未だに力押しでページを量産していた。

しかデザインにはこだわっていたので、単純なHTMLでも、見た目にはそれなりのサイトに仕上がっていた。

内容はくだらなくても、いっちょまえなレイアウトで書けば、それだけで見栄えのする物になった。

PVはすぐには伸びないとわかっていたので、平均滞在時間、平均PV直帰率目標にしていた。

ユーザビリティには独自性無用で、正解があると思っていたので、ヤコブニールセンWEBユーザビリティの本を買って、素直に勉強した。

PVが少なかったので、平均をとっても余り意味がないのだけれども、平均PVは8はあったと思う。

ビジネスの基本は選択と集中だと考えいたので、PVが伸びなくてもサイトテーマは広げず、なるべく狭く深くを追求していった。


勘違いのはじまり

サイト制作をはじめてから8ヶ月ごろではじめてグーグルアドセンスが振り込まれた。

一度軌道に乗るとサイトアクセスは乗数的に増えていった。

2年目にはサイトPVは月100万を超えていた。

ヤフーニュースの関連する記事にリンクが貼られたことも大きかった。

アフィ収入は年間400万を超えて、僕は大学3年で親の扶養を外れた。

稼げるようになってから、周囲の目が変わった。

いまどきアフィリエイトかよと呆れていた人が僕にジャンル手法を訊いてくるようになった。

この頃から僕は自分にはプログラマの適正があると勘違いし始めた。

HTMLCSSは狭義のプログラミングではないにもかかわらずだ。

調子に乗った僕はプロの話を聞きたいと思って、広告で見た翔泳社デベロッパーサミットに参加した。

年に一度開かれるITエンジニアの割と大きなカンファレンスだが、仕事で来てる人がほとんどだと思う。

名刺がないので受付で恥ずかしい思いをした。

javaカリスマエンジニアオラクルNTTデータMSの偉い人、はてなの人などが講演していた。

当時HTMLCSSしかからず、PHPMYSQLをかじったばかりの僕には話の内容は1割も理解できなかった。

それでも僕は卒業後はIT業界で働きたいと思いはじめていた。


IT仕事

引きこもってプログラマごっこを続けているうちに大学4年になった。

一生アフィで食っていけるわけもないので、就職活動をはじめた。

WEB系はブラックが多いとそれとなく聞きかじっていたので、大手IT企業大手SIerを中心に受けた。

新卒WEB屋の門を叩かなかったことを、今でも本当に後悔している。)

結論から言うとMSデータオラクルグーグルユニシスも全部落ちた。

営業職も応募したけれど、いずれにせよPHPSQLをかじっただけでは戦力にならないし、そもそも、WEBとSIでは言語の畑が違うのだろうが、たぶんそういう技術的な事はどうでもよかった。

技術的な事は入社後に教育する体制ができてるので、学生には何よりもまず社交性を求めていたのだろう。

人間よりもPCと付き合ってた僕の社交性は衰えていた。

~現時点で私が御社提供できるスキルは何もありません。

~でも、私には在学中に専攻外の事を勉強していった自主性があります

~これに関しては誰にも負けません。

とアピールしたのだけれども、ダメだった。ただの独り善がりの変なヤツに見えたのかもしれない。疑わしきは落とす。


結局僕は社交性、人間性、社畜適正、その他、大企業学生に求める普遍的な魅力を欠いていたか内定がでなかったのだろう。

文系学生が独学で中途半端プログラミング勉強を始めたばかりに、それはIT業界から内定を得る上での強みになるどころか、致命傷になったのだ。

皮肉な話である


友人は立派な会社就職していったので、当時リーマン不況のまっただ中で就職難だったというのは理由にならない。

facebook大学の友人をみると勤務先がNTTデータとかアクセンチュアになっていた。僕よりも人間的な魅力があったのだろう。

技術なんて一切関係なかった。僕は悔しかった。

幸い他の業界内定をもらえたので、そのまま就職した。

サイト制作趣味と割り切り、日本を支える製造業仕事に選んだ。

起業

内定をもらってから卒業するまでの間に、僕よりもずっとITに明るい友人に、アフィで成功していたことを買われて起業を持ちかけられたが、何度も衝突し、結局2ヶ月で僕の方から音を上げてやめた。

起業するなら一人でスタートして人を雇うなり外注するなりすべきで、チームで始めるにしても誰が一番偉いのか最初に明確にすべきだと、このとき確信した。

仕事なんてクソだろ?

就職したが、毎日のような飲み会と、週末のゴルフ、一発芸の強要など体育会系の慣習に嫌気が差した。

日本大企業がどこもこうなのかと思うと、哀しかった。

僕は仕事の傍らの片手間の作業でも収入が増えていくアフィに目をくらませて、半年退職し、専業アフィリエイターになった。

今は無き海外ニートブログ労働観と、後述するコピペが僕を後押しした。

砂の城

賃貸物件審査確定申告書を見せたら通った。

専業になってから収入は伸び続け、一番多いときで月80万を超えたが、その代わり孤独になったので、以前のような精神的な余裕がなくなった。

技術的には大学在学中からほとんど成長しておらず、未だにhtmlのべた書きで、サイトの一部でphpsqlを使用してる程度だったからだ。

僕のサイトWEBサービスといえるような代物ではなく、ただの一方通行サイトで、コメント欄をつくる技術もないので、放置していもユーザー勝手コンテンツ価値を高めてくれるということはなかった。


ページを増やすのは社員を増やすようなものだと考えていたけれども、僕の身体は一つなのでべた書きで増やせる量には限界がある。

一人で安定してコンテンツを生み出すには、今後は趣味サイトから卒業し、より商業的なユーザー参加型のCGMを作らなくてはならない。このままではまずいと感じていた。



しかし僕はcakephpのようなフレームワークを使用せず、というかMVCを理解できず、。

ワードプレスのようなCMSもつかわず、力押しでべた書きで作っていたので、できることには限界があった。

僕と同じ個人事業主がつくっているW3Qのような立派なサイトをみるのが怖かった。

毎日が夏休み

僕のサイトブログニュースサイトではなく、テーマ普遍的サイトだったので、放置していもPVは減るどころか増えていった。

多い時で1日12PVはあったと思う。

あぐらをかいた僕はサイト制作を完全に放置して、不安を紛らわすために現実逃避で遊びはじめた。

目的地も決めず、平日に思いつきで一人旅サイクリングにいった。

仕事を辞める引き金をひいたのが、2ch独身男性板でみたこのコピペだった。

もし仕事に行きたくなくなったら、そのまま反対の電車に乗って、

海を見に行くといいよ。

海辺の酒屋でビールピーナツ買って、海岸に座って

陽に当たりながら飲むといいよ。

ビールが無くなったら、そのまま仰向けに寝ころんで、

流れる雲をずっと眺めるといいよ。

そんな穏やかな時間がキミを待ってるのに、何も無理して

仕事になんか行く必要ないよ。



毎朝ネクタイを締めるときストレスで吐いていた僕の背中を押してくれた。

なんて罪なコピペだろう。

気晴らしのはずの一人旅なのに、旅館の人に今日お仕事休みですか?と聞かれたのが辛かった。

他にも一人で野球観戦に行ったり、映画を借りまくったり、早朝深夜のメジャーリーグ試合を見まくったり、夜更かししてロンドンオリンピックを見まくったりした。

野球中継に関してはスカパープロ野球セット契約していたので、144試合中130試合は1回から9回まで見ていたと思う。

僕はサラリーマン時代に味わえなかった自由をほとんどすべて享受した。

サイトの方はなんだかんだで半年以上更新してなかっただろうか。


瓦解

そして昨年の11月に事件が起こった。

グーグルアルゴリズムが変わり検索順位が大きく下がったのだ。

多い時で80万円あった収入20万円台にまで落ちた。

打開するための次のサイトアイデアはあるのだけれども、技術がない。

周りに相談する人もいないので質問サイトを使うしかない。

フロー理論でいう挑戦と技能の間の大きなギャップがあり、不安に駆られ現実逃避しか出来なくなった。


ゲームオーバー

収入は落ち込んでいくのに、サイト制作をする気にもなれず、この一ヶ月前に自営業を断念した。

僕は公務員を目指すことを考え始めた。

一ヶ月後の6月試験である参考書だけ買って全く勉強は進んでいない。

今年は無理だろう。

しかし今年で27歳だ。公務員になるにはそろそろ年齢制限にひっかかる。

来年筆記試験にうかったとしても、年増が面接に受かるだろうか。

勉強したあげく面接に落ちたらどうなるだろう。

27歳にもなるのに職歴がなく、独学でphpSQLを囓った程度ではWEB制作会社は雇ってはくれないだろう。

詰んだかな、これ。

もっと外に出て、みんなと同じ大学生活を送って、みんなと同じ就職活動をして、みんなと同じように働いていれば。

これから僕の人生はどうなるのだろう。嗚呼

I see my life fading away.



2013年5月17日 現実逃避野球中継を見ながら執筆



初めての増田

気持の整理ができたのでよかった。

追記

13/5/18 15:00

はてなツイッターでの様々なご意見、ご指摘ありがとうございます

自分を少しは客観視できるようになりました。

27歳で実務経験のない僕が現時点でのスキルWEB制作仕事にありつけるとは思えず、納期がある請負も性にあっていないので、やはり公務員試験勉強をがんばります

僕のサイトははてぶ400userもありませんが、最後ホッテントリ入りしてWEBに小さな足跡を残せたので、悔いはありません。

2013-05-14

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、女はどう答えたらいいの?

あ、まず前提として、

貴女プログラミング大好き男を夢中にさせることが、

はたして貴女幸福にするかどうか、それはまた別問題だけれど。

はいえ、プログラミング大好き男たちは玉石混交ながら、

IT系の超かしこい男なども多く、

多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこ学生まぁこれは有望株)か研究者系なんか、

あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、

したがって、釣り師たる女たちにとっては、

なかなかあなどれない釣り場です。

では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女は、どう答えれば理想的でしょう?

まず最初に、その男COBOLのようなタイプレガシーコード

あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、

そんなタイプ場合は、

貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、

「わたしが、仕様書を作ってあげる♪」

これこそまさに必殺の答えです。

そこでプログラミング大好き男が、えへへ、とやにさがったならば、

貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを

ひそかに練習しておきましょう。これで成功まちがいなしです。

しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の

落とし方をお伝えしましょう。

この場合貴女は、こう答えましょう、

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

もしも貴女がそう答えたならば、

その瞬間、プログラミング大好き男の目はきらりと輝き、

かれの貴女への恋心は、

20%増量になるでしょう。

なぜって、Scalaは、

ちょっぴりお洒落Ruby風味に記述できて、

Maybeモナド差し込んで、

コンパイルは遅いながらも、そこがまた

ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。

しか関数型言語としての不変変数・不変Listを実装して

質高くふるまっていて、なおかつ、

JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド型推論を実装した功績もあって。

したがってScalaこそは、

本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、

インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、

この世界で唯一(いいえ、JVM系列のJRubyClojure と並んで唯三)遭遇しうる場所です。


では、参考までに、危険な回答を挙げておきましょう。

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女がこう答えたとしましょう、

MicrosoftVisual Basic for Applicationが好き♪ 週3回は Excelコーディングするの。」

その瞬間、プログラミング大好き男の貴女への恋心は消えます、

なるほどMicrosoftは、世界最大のOS供給メーカー

特にOfficeは平凡ながら、ま、無難にまとめてあるものの、

しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、

VBAはさらプログラミングについての謬見を撒き散らした罪がありますからプログラミング大好き男にとっては天敵なんです。

ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど

社内SESIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。

また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」

と答えたとしても、同様の効果をもたらすでしょう、

なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、

しかし2000年代うそうからセキュリティ関係の問題で転落し、

いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。

(注1)

またもしもたとえあなたプログラミング言語が大好きで、

「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、

最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」

と、答えたとしたらどうでしょう

なるほど、貴女の趣味は高く、

しか.NET Frameworkは、C# が cool であるのみならず、

.NET Framework上で動く F# や IronPythonIronRubyマネーJScriptも最高においしいんですけれど、

しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、

(なんだよ、MS信者な女だな、カネかかりそう)って。

(注2)

貴女が、プログラミングが大好きで、言語の名を挙げるにしても、

たとえば、JavaScript(node.js)ならば安心でしょう、

なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、

貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたプログラミング言語おた宣言をしているとは受け取られないでしょう。

しろへぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。

男は嬉々として、30個くらいのnode.jsフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)

あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。

しかし、たとえば、世界が(つーか竹内先生ポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、

selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、

バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすRubyにせよ、

まったく読めない$_だらけで頭悪い仕様リセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、

気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語ひまわりなでしこにせよ、

基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、

そういう言語名前をいきなり挙げるのは、ちょっぴり微妙。

ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクトオイラーの問題もうほとんどHaskellで、解いちゃった♪」

と答えたならば、どうでしょう

これはかなり博打な答え方で、

なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、

あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、

へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら

鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、

しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、

なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから

しかも、この答えには、もうひとつ問題があって、

男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、

もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、

そこにはもはや、男が貴女圏論モナド教育する余地がまったく残されていません、

したがって貴女のその答えは、

プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。

ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが

しかし、ああ見せて、プログラマープログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数名前一つにも気を使い、女と自分の将来に夢を持っています、

貴女の答え方ひとつで、プログラマー貴女への夢は大きくふくらみもすれば、

一瞬で、しぼんでしまいもするでしょう。


では、スキットを繰り返しましょう。

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、

貴女はこう重ねましょう、

それからね、いま、わたしが使ってみたいWebアーキテクチャは、

Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。

あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」

これでもう完璧です。

PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。

そうなったらこっちのもの

デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、

github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。

その日からプログラミング大好き男は貴女の虜になるでしょう。

では、釣り師としての貴女の、愛の幸運幸福をお祈りします!

注1:

(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)

(あと、マジで機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)

注2:

もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。

注3:

プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。

半数くらいのプログラマーしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、

過度でないていどにフリルがついたものオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーときの色だ)ので、薄ピンクホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。

補記:

 元ネタhttp://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/

補記2:

  「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。

補記3:

 言うまでも無いけど、ネタです。 

 また、COBOLとVB、C++ではまったくもって難易度が違うことも分かっています。後者になるほど圧倒的に難しい。

2013-05-12

http://anond.hatelabo.jp/20130512182240

clojure本家javaに取り込まれるのか!と思ったら

clojureじゃなくてclosureのtypoかよ

2013-04-19

http://anond.hatelabo.jp/20130419021708

人生相談だったんですね。それもコンテンツ業界の話ですね。

でも、最近の高スペックって何なんだろう。

一般的な高スペックって、経歴書に書かれた社名だったりします…。

コンテンツ業界と行っても上流~下流まであるじゃないですか。上流の人間は重宝されます

もちろんですが、年齢によっても評価が変わりますよね。

業界10年以上いるなら、何よりも技術と実績。何を作ってきて、どんな立ち回りをしてきたのか。

そして、プロジェクト管理能力の有無。若い人は育てれば良いのでポテンシャル採用ですが、年増は人的スキル必須

強みがあってもなくても最後は「使いやすい」「話しやすい」で決まります。人的スキルが最重要

自分がいた会社では、技術的に厳しい人が半ディレクター的な立ち回りで評価されてました。

コミュ力なし社畜(言われたことはやるが、提案は一切しない)率が高くて、DirやDesとコミュニケーション取れなかったんで。

この業界10年以上いるなら、他社も5~6社程度は知っていますよね?(いい噂はあまり入ってこないですが…)

有名どころは常時募集をかけていて、技術力、もしくはポテンシャル採用若い駒を必要としています

そこらはあえて、避けて選んでいるんでしょうか?

最初元増田から読み取れたのは「当たって砕けている」印象でした。

「ヤ○ザまがいの人がでてきたり」と言うのは、出会いサイトエロチャットを作ってるっぽいし

企業サイトにもコンテンツ実績なんて出してないはずだし、業界内で名前を聞かない会社だったんでは?

業界経験浅くて、右も左もわからないのかな…と思った次第です。

やや古い情報ですが、1~2年前はiPhone/Androidアプリ技術者が不足していましたよね。

社内で人を育てている時間がないか制作会社に丸投げ。それをコントロールできる人も不足してた。

自分がいた会社JavaPHPばっかで、C書ける人がいなかったです。(自分Dirなんであまり詳しくないですが)

面接を受けている時に、これから自社でソシャゲ作りたいって会社さんも何社かあったので

ソシャゲ作っていない会社に言って、ニーズを掘り起こしてみるのも良いかもしれないですよ。

自分はソシャゲの開発経験がないので、求人に書いていないことを求められて困りました。

元増田さんは第一線で活躍する自信や意気込みがないということなので、WEBでも流れがゆるやかなところに移ってみるのはどうですか?

この点は、自分も専門外なんで憶測になりますが、ECサイト企業WEB運営担当求人賃貸物件検索等のサイト運営など

基本DBサイトって、アプリ開発やソシャゲほどのスピードは求められないんじゃないですかね?

自分はソシャゲは作ってないんですが、旗から見てても、モバイル特にソシャゲは異様なスピード感なんで

コンテンツからサービス主体の制作へ移られると、少し楽になるかもしれないと思いました。

派遣なら、担当の方に業種チェンジ相談すればマッチングミスが防げるし

別の増田を立てて、経験者の話を募ってみてはどうでしょう

と言うか、学生からDQNになってればって、どんだけ高学歴なんだよ!

DQNで打たれ強くなれる人はごく一部の苦労人だけで、他は後から苦労してます。悲観しないでくださいよ。

2013-04-17

実務でのLAMP開発経験ってそんなに大事なのだろうか。

転職したくてもWindowsJavaの開発しかない会社からそんな要件出されると応募出来ない。

辛い世の中である

2013-04-05

JavaScript Lover

いっせーの!

Webにのって さあ出かけよう
ブラウザとのランデブー
ユーザー大事 実装が大事
JS、マジ大好き

ユーザーの痛み それ言語のせい?
UIの動き UXのつもり
今までのJSポジションを
越えた未来は どうなるの?

ねぇどうせWebKitでしよ ダメ?
ダメ! ECMA標準だけ
油断も隙もない
APIとのボーダー越えたい

そうもっと!

大胆で ちょっと強引?
俺ワールド全開
優しいJSも いじわるなJSひとりじめ

型つけてみて やっぱやめて
ウラハラ alt-js
Java以上C++未満の
JS、マジ最高

V8けが きらめいて
遠い背中も 追いかけたよ

これから最適化
フローグラフの分まで伝えたい
ぎゅってしてPNaClコンパイル ダメ?
ダメ! 不埒です

CSS3に甘えたい
GPUに触れたい
どこまで? APIボーダー教えて

おっとっと!

手強い IEの仇
ムキになったら
古いシステムFlashの将来も
譲れない

実装して やっぱやめて
一方通行プロセス
W3C信じて
プラグイン書いて
No more E4X

動的なの? 静的なの? 型推論好き?
好き!
好きだからわず答えて
Ion Monkey 越えよう

おっとっと!

大胆で ちょっと強引?
prototypeを知ったら
JSでの設計コーディングも変わるの?
答えてよ!

ときめき 走り出す
わくわくコーディング
Self以上 Scheme未満の
JS、超愛してる!!

「Girlish Lover」 PV

2013-03-27

プログラミングの初級になるためにの目次

http://anond.hatelabo.jp/20130325172822 の続き

言語Java7を想定。(Java8が迫っていますが、Lambdaなど関数型は、まだ早いと言うことで)

定理由は、C++比較して学べるところが大きく、安全シンプル言語から

※いきなりJavascriptはやめとけ、PHPは論外。

RubyScalaでないのは、筆者が初心者には適切には教えられないから。

おもちゃToyとしてjQueryで遊ぶのは、悪くは無いと思う。

0.はじめに

これ以降は名著の紹介や学習方法の紹介が主体となります。名著のコンポジションという形が時間限界ですね。

量については「初級になるなら、専門書を計3,000ページは修得することは覚悟してね」なんて言ったりしています

Javaで初級のわかりやすい指標ですと、[amazon:Effective Java]とGoFまでの修得。

初級になるまでに登竜門への挑戦期間を含めて、3~4年はかかっても仕方が無いとも思います

※逆に「一山いくらのコーダー」というのは、Effctive JavaGoFが達成している技術も知らずに「自分Javaプログラマー」だと誤解してしまっているような人達です。

そういったコーダーは何年経とうとも初級プログラマーにすら敵いません。

初級を目指して、プログラミングを楽しんでください。

ただ、学ぶべきことはべらぼうですが、「各分野毎に、エレガントな方法がある。だから探して修得する」ということが大切です。

※「一を聞いて十を知る」ような優秀な人に、50冊くらいドーンと本を置いてあげて、各本の目次を読ませるだけで、

底の見え無さを悟ってくれたりすると、嬉しくなってしまます

※余談ですが、その底の見え無さは数学という学問のものですね。例えば、関数型言語の底流に「圏論」というここ100年の最新の数学があります

また中級くらいで、Liskovの置換原則などが載っている本を紹介しますが、

そのLiskovの置換原則の周辺で出てくるcovariant(共変)って、圏論という数学概念だったりします。

数学出身としては、数学現実に活かされている嬉しい事例です。

閑話休題

1.目次

1)エディター・コマンドライン正規表現友達

「速く正確に大量の出力」という能力は、プログラミングをする上でも、ドキュメントを書く上でも、何より「つまら仕事」の時間圧縮ができるようになるため、重要です。

スローガンとしては「思考のスピードで出力することを目指そう」です。

紹介するエディターはemacsvimExcelです。ついでにIMEとしてATOKを使用しているため、ATOK操作Emacsライクにする話も紹介します。

ExcelWindows環境Meadowすら入れさせてくれない場合最後の砦という扱いです。

コマンドラインは、「コマンドラインというものがある」「時として非常に強力である」程度の紹介です。

※筆者はzsh全然使えません。使いこなしている方々と接する度に「勉強しなきゃな~、でも、あっちの方を先にやりたい・・・」とグズグズして、はや何年・・・

正規表現は置換を用いて、テキストの一括編集重要です。後、遭遇したくない事態ですが、スパゲッティコードの解析をする上での最後の砦です。

※遭遇したくない例

ん?何か変なところで副作用のある処理があるようだなぁ(消沈)、SQLのInsertかUpdateか一応Mergeも使っているところから逆算して原因箇所を探すか・・・(諦念)

この糞コードがっ!!こんなところに書くんじゃねぇ!!(憤怒激高)

(ここで、他にやらかしていそうな似たようなコード正規表現grep検索。改行コード込みにすれば複数文検索も可能)

わはは、予想通り共通化すべきロジックメソッドがそこら中にある・・・

2)アルゴリズムに始まりアルゴリズムに終わる(データ構造アルゴリズムの一部という認識言葉を使っています)

入門編で一つLinkedListというアルゴリズムを学びました。

少なくとも一つ本を読みながら自力でアルゴリズムを学べる人なら、大成できる可能性があります

前に紹介した[amazon:C++実践プログラミング]には、LikedListやStackなど基本的なアルゴリズムが載っておりますが、

これに加えて、初級になるためにはこれくらいは知っておいて欲しいというものを紹介します。

※後、最初から必ずしも手を出さなくても良い上限も紹介いたします。

3)正・不正の定式化・自動テスト・ロギング・アサーション・例外・契約プログラミング

プログラムは、データ入力して、加工して出力・保存する処理の繰り返しです。

まり、各一連の繰り返し毎に、「正しい入力」「正しい出力」を定式化する必要があります

それを人間の手では無くコンピューターやらせられるように、つまり自動テストできるようにテストプログラミングします。

そこで処理の進捗を確認するためにロギングし、処理が想定通りであるかをアサーションでチェックし、

不正入力不正な出力=例外が起きたら、対処策をプログラミングします。

(ex 途中で処理を中断して、入力者に適切な入力メッセージを伝えてあげる。入力自動補正などもあり得る)

で、ここら辺をまとめてどうあるべきかとして「契約プログラミング」があります

※余談。定式化・テストに際して、数学畑の人間としては、Javaだとequalsのオーバーライドでも必要になるし、同値関係同値分割だけでなく、集合論群論から学んで欲しい・・・(ここいらは数学科学部1~2年の学習内容)

4)名著を読め、新たな名著を探せるようになれ・素晴らしい人を見つけたら、縁を大切に

名著は英語で読みましょう。名著が名著たる由縁は、度々引用されることにあります

まり最新の技術書を読むときに、引用された名著のフレーズが、新旧のリンクをなし、理解の助けになります

対話は学問をする上で非常に重要です。

壁打ちといって、独り言で思考補助をするよりも遙かに有益です。

※素晴らしい師匠を探すなら、大学行くのが一番ですが、見聞を広げていく中で出会いを待つしかないとも思います

5)オブジェクト指向とはなんぞやとGoFデザインパターン + マルチスレッドプログラミング

マルチスレッドが難しいのは「バグを起こしにくいプログラミング」を求められるから

まりTry and Errorからの決別が求められ、今後の仕様変更拡張も踏まえて慎重に慎重にデザインする必要があります

できる限りステータス変数を持たずに安全に、でもマルチスレッドにするのだから効率を追求しなければ本末転倒

でも効率のためにはメモ化に代表されるキャッシング必須と、アンビバレンツな要素のバランス取りが難しい。

このために、リエントラントな実装・抽象と実装の分離など様々なエッセンスを駆使することが必要です。

床屋哲学者問題

6)日々コツコツと

というよりも孔子曰く、知っているよりも好きであること。好きであることよりも楽しめることのほうが強く、

気づいたら日々時間が許す限りプログラミングをしてしまうのが理想です。

仕事として嫌々スキルを磨かなきゃということが、これほど不幸な職業も無いですね。

余談 FizzBuzz写経について

FizzBuzz」は、本来の目的通り、協力会社の選定の際の足切りには便利ですが、

学習の達成度を測るには、簡単すぎる不適切な問題ですね。

写経

数学畑の人間として言わしてもらうと、

写経数学証明問題を、教科書テンプレ通りに、数値や名称だけ変えて記述することしか出来ない人の発想。

まり矛盾無く一貫した論理モデル」の構築が自由に出来ず、テンプレの微修正しか出来ない人の発想。

また、外部の「矛盾無く一貫した論理モデル」の吸収が不自由で、アルゴリズムを「手順」としてしか捉えられないように見受けられる。

プログラマーとしての大成は見込めないと思う。

数学畑として提供できる試金石

連続であること確かめるための「ε-Δ論法」(数学科学部1年の学習内容)

事前知識無く、このモデルを理解できる人は、十分に「矛盾無く一貫した論理モデル」を構築できる人。

1.まず「連続」とは何ぞやと考えて概念を膨らませてください。

2.十分思考できたと思えたら、Wikiあたりでイプシロン デルタ論法を見てください。

2013-03-26

今月の手取りは40万だった

SIer勤務

情報大学院

28

2月残業が多くて100時間ほど

その分の残業手当がついて今月の手取りは40万だった

顧客と直接話をして要件定義から設計実装を行う

サービス残業はなく仕事した分だけお金はもらえる

今の仕事SIerのなかでも恵まれてるほうでやりがいはあるのだろう

しかし本当にこれが俺のやりたいことなのか

時間残業して恋人を泣かせてまで書くコードターゲットJava 1.5

会社ルールにしばられチャレンジできないまま年齢を重ねていく

大学院にいたころからコードを書く力は落ちていく一方

これをつづけていてもよいのだろうか

こんな仕事でこんなに給料をもらってよいのだろうか

給料がもらえれば俺はこの仕事でも満足なのだろうか

贅沢な悩みなのかもしれない

チャレンジするとしたら年齢的にはそろそろ動き出す必要があるだろう

転職

俺にできるのか?

何を目的に俺は転職をするのだ?

転職したとしてそこに幸せ未来はまっているのか?

この人たちは元気にやっているのだろうか?

http://anond.hatelabo.jp/20070831005830

http://anond.hatelabo.jp/20080328230459

http://anond.hatelabo.jp/20080323175904

悶々としたまま夜は更けていく

2013-03-25

プログラミングの入門

プログラム定義

プログラム:定義づけられた物事を進めていく妥当な手順・方法の決定、および物事・手順・方法記述

プログラミング定義

(コンピューター)プログラミング:コンピューターが進めていく物事を定義し、妥当な手順・方法を決定し、記述すること。

プログラミング = デザイニング union コーディング;

デザイニング:進めていく物事を定義し、妥当な手順・方法を決定すること。

コーディング:コンピューターが進めていく定義づけられた物事の決定された妥当な手順・方法を、記述すること。

プログラミングに関わる人々

PG(プログラマー):プログラミングする人。

CD(コーダー):コーディングする人。プログラマーとは限らない。

SE(システムエンジニア):進めていくべき物事を定義する人。プログラマーとは限らない。

PM(プロジェクト マネージャー):(プログラマー)プログラマー。(コンピューター)プログラマーとは限らない。

日本ソフトウェア業界ではSE定義した物事を、何の工夫も無くそのまま記述するCDという体制となっている。

まり「物事を進めていく手順・方法」が余りにも稚拙で、PGと呼べるSECDが居ない。

※「物事を進めていく手順・方法」の巧拙の例としては、

仕様:「等差数列で、1から10までの整数を加算する」

CD: べた書きかループで 1足す2足す・・・

PG: (初項 + 最終項) x 項数 /2

というように、例えば巧拙の差は「上手い・エレガントな方法アルゴリズム」だったりします。

0.以下のような方はプログラマーに向きません。入門しないでください。

継続的に勉強できない(1週間で最低10時間は、何があっても勉強しましょう)

論文・学術書が読めない。(コードはお堅い理論的に筋道立った文章の極致の一つです)

100ページくらいなら一晩で修得してやろうという気合いが無い(一晩で仕様書読み込んで次の日から活かす必要があったりします)

仕事のやり方に疑問を抱かない(楽するためにはどんな苦労も厭わず、常に最善を考えましょう)

・いつかはマネジメントをしたい(人を使うよりも、プログラム組んで仕事させた方が、安くて速くて正確ですよ)

(笑)マネジメント:下僕に進捗という数字を報告させて、自分の握っている進捗管理という方眼紙のマス目を埋める作業。

自身の雇い主にマス目の埋まり具合を報告する作業。

1.入門者になるために、学んでおくべきこと

※ここで以下の1~4を6ヶ月がんばっても挫折する方は、「一山いくらのコーダー」にしかなれない可能性が高いため、

ソフトウェア業界」自体を諦めた方が良いですね。

しがみついてしまうと、真っ当な技術者の足を引っ張ることになります

逐次実行、条件分岐、反復実行

ポインタ最近情報学科のくせに学部ポインタを教えない大学があり、そういうところは真っ当な大学ではございません。

1)O'REILLYの[amazon:C++実践プログラミング]を最初の「ポインタ」まで読んでください。

2)C++の実行環境をC99で整えてください。(環境の準備は自分で面倒を見てください)

3)ポインタを用いて、文字のLinkedListクラスを実装してください。

※LinkedListとは以下の仕様を満たすクラスします。(C++JavaのLinkedListを実装)

http://docs.oracle.com/javase/jp/6/api/java/util/LinkedList.html

4)LinkedListの入れ子でTree構造をつくり、再帰を用いて、全要素をコンソール出力するプログラムを作ってください。

5)4)をクリア出来た人は、この本を1年以内に全部読んでください。

ただし、C++は複雑怪奇言語のため、これ以降は知識レベルの修得で構いません。

私は中3の時、STLBoostどころかbooleanの無い時にこの本を9ヶ月で読んでおります

※私が面接に出る場合は、当該内容のLinkedListやQuickSortの概要を直ぐさま説明できる人は、可能性有りと○を出します。

ただし、日本ソフトウェア業界は腐っています

面接で「LinkedListを勉強してきました、直ぐさま説明できます」といって、「そんなの出来て当たり前だ」と言ってくれる会社殆どございません。

大抵はポカーンとして意味不明という顔をする文系人事だったり、「そんな技能必要ない」というところが殆どです。

逆に「できて当然」と言ってくれる会社は、技術をしっかり学べる可能性大です。

2.初級者への道

★ここまでクリアした方は、「入門者」と呼んで差し支えございません。次は「初級者」への挑戦です。

プログラミングは入門者になるだけで1年かかる世界です。

内定もらってから勉強して適正無しと自覚すると、地獄ですよ。

※初級者になるためからは、べらぼうに学ぶべきことが広がります

燎原の火のごとく。

※筆者の立場

Joelさんの「Javaスクール危険」に賛同するので、ポインタ優先ということで。

加えて、Javaクラスインスタンスとstatic変数の話を理解するのに、メモリー意識があったほうが楽だと思う派。

ログイン ユーザー登録
ようこそ ゲスト さん