ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

株式会社はてなに入社しました

この春、エンジニアとして株式会社はてなに入社しました。 はてなのサービスをより良いものにしていきたいと思っていますのでよろしくお願いします。 また、近しい業界の方だと何かの機会にお会いすることもあると思いますので、その時にはよろしくお願いします。

今の実感としては、ようやくプログラマとしてのスタートラインに立てたなー、という感じです。 ほとんどひとりでプログラムの勉強をしてきて、周りが見渡せるようになるまでに随分と時間がかかってしまいました。 振り返ってみると、もっと積極的に人と関わっていればよかったなぁ、といった反省点が浮かんできます。

今週の前半には、新人研修ということで代表取締役社長の id:jkondo さんをはじめとした何名かの話を聞く機会があったのですが、やはり他者の人生の軌跡に触れるというのは何かしら得られるものがあって、ためになりました。 私も、せっかくの機会ですし 「私と同じように細々とプログラミングの勉強してる人にとって参考になればいいなー」 と思いながら過去を振り返ってみます。

自己紹介

特に素晴らしい何かを生み出すこともなく細々とプログラムの勉強をやってきました。 大学は電気系で、情報系に近いもののほとんど情報系のことはやっていませんでした。

コンテキストメニューから外部アプリケーションを起動できるようにする Firefox 拡張機能 などのちょっとしたプログラムを作ったり、TopCoder の Single Round Match にちょこちょこ挑戦したり (最近は長らく参加してませんが)、はてなダイアリーに記事を書いたり (昔は id:vividcode をメインに使っていました)、そんな毎日でした。

Ruby 好き

Perl 難しいです。 頑張ります。

とはいえ初めて触った言語は Perl ですし、オブジェクト指向プログラミングの勉強をしたのも Perl でですし、その他もろもろ Perl にはお世話になっているので Perl も好きです。

振り返ってみることについて

  • 最近過去を振り返ってばかりなので 「過去ばかり見るな、未来を見ろ」 って気もするけど、今を逃すと過去がおぼろげなものになってしまうので
  • 既に 1 年前より昔のことはおぼろげ
  • 定期的に思ったことを出力しなきゃですね

プログラマとしてのこれまで

Perl との出会い

初めてプログラムのコードに触れたのは、中学生の頃だったと思います。 当時は個人 web サイトや CGI プログラムの全盛期 (でしたよね?) で、私も CGI プログラムを書きたい、という思いを持っていました。 HTML の知識ぐらいしか持っていないずぶの素人で、周りに詳しい人が居るわけでもなく、CGI プログラムがどうやって動いているのか、というところを理解することがそもそも難しかったということがすごく印象に残っています。

最初は配布されていた CGI プログラムをそのまま動かしてみました。 配布されていた CGI プログラムはほとんどが Perl で書かれていて、Perl を使えば CGI プログラムを書ける、ということを学びました。 それが Perl との出会いです。 そのうちに web 上で検索して Perl のことを調べ、配布されている CGI プログラムを少し変更して動作させてみる、ということをするようになりました。 Perl を使って CGI プログラムを手元で Perl を動かすとか、ましてや web サーバーを動かすなんてことができるとは思っていなかったので、コードを変更した CGI プログラムの動作確認をすることなく、レンタルサーバーにアップロードして実際に動かして確認する、という感じで、なかなかやんちゃなことをしていました。

Perl 入門

そのうちに Windows 上で Perl を実行する方法を学び、手元で Perl プログラムを実行できるようになり、Perl の入門書も買ってある程度まじめに Perl の勉強をするようになりました。 それが高校生のころです。 そして 「プログラミングっておもしろいなー」 と思うようになりました。 その頃に、漠然と将来は情報系の仕事をするのもいいかもしれない、と考えるようになりました。 とはいえ、入門書を読んだもののその後何を学べばいいのかもよく分からず、web 上の情報を見て Perlオブジェクト指向に挑戦しては挫折する、といったことをしていました。

大学時代、前半

大学に入ってからは、周りに情報系のことに詳しい人が多くなり、世界が広がった気がします。 Linux の存在、世の中に多くのプログラム言語があること、情報系の世界の奥深さ、そういうことを知って、もっと勉強したい、と思うようになりました。 確かこの時期に再度 Perlオブジェクト指向プログラミングすることに挑戦してなんとか理解した (気になった) 覚えがあります。 その後に Java を使うようになって、「オブジェクト指向プログラミングの勉強をするなら Perl でやるより Java でやればよかったなー」 などと思ったりもしました。 この頃に C や C++ も使うようになって、プログラミング言語を覚える、ってことをしていた時期です。

この時期にあった印象深かったこととして、web 上で Perl の内部コードに関する記事を見て、自分としては納得できない部分があったのでその記事に対して自分が思ってることを書いてコメントしたら、かなり丁寧に返答をしてもらった、ということがあります。

端から見るとよくわかってない素人が噛み付いている感じではありますが、私としては 「すごく詳しい人が丁寧に解説してくれた!!」 という感じで、改めて 「web ってすごいなー」 と思ったものです。 今でこそ言語処理系の実装を読むことは当たり前だと思いますが、当時は言語処理系のソースコードを読むことはすごく高度なことだと思っていて、そんな高度なことをできる人とやりとりできる、っていうところに web の素晴らしさを感じました。 この体験が、はてなで働きたいと思った要因のひとつです。

大学時代、後半

大学 3 回生ぐらいでようやく情報系の世界を見渡せるようになって、単にプログラムのコードを書くというだけじゃなくて、TCP/IP や HTTP などのネットワーク関係の話とか、テストの話とかセキュリティの話とか、そういった部分にも手を伸ばせるようになってきました。 この頃から真面目に情報系の本を読むようになって、真面目にプログラミングの勉強をし始めました。

確かその手始めが Ruby の勉強で、ちょうど 2 年半ぐらい前だったと思います。 RubyPerl と比べて使いやすくて、感動しました。 色んな言語を経験することで設計に関する思考の幅も広がる気がするので、今後も折に触れ色んな言語に触っていきたいです。

就職活動を意識して 基本情報技術者試験応用情報技術者試験 を受けてみたりもしましたが、浅く広い知識を得るのにちょうど良い試験だと思ったので、もっと早い段階で受けておけば良かったと思います。

そんな感じでプログラマとしての基礎がなんとなくできて、今に至る、です。

振り返ってみて

電気系専攻で、情報系のことばかりに力を入れていたわけじゃないというのもありますけど、なんだかここまでくるのに随分と時間がかかってしまったなーという感じです。 その大きな理由としては、立ち上がりの部分で情報系の世界を知らなさ過ぎた、ってことがあります。 例えば Linux というものの存在を知らなかった、とか。 Web サーバーってすごく特別な存在だと思っていた、とか。

調べる力がなかったっていってしまえばそれまでですけど、右も左もわからない場所で周りのことを調べるっていうのはなかなか難しいものだと思います。 当時精一杯やっていたことでも、今思うと遊びみたいなものだと感じますし。 そういうところでうまく進んでいく方法を見つけられるといいですね。

つまり何が言いたいかっていうと

独りで分からないことをうだうだやってるよりも、自分の先を歩いている人に聞くのが重要だなー、ってことです。 身近にそういう人が居なくても、今なら web 上でわりと簡単に繋がれますし、積極的に接触をはかってみるといいんじゃないでしょうか。

ってこの記事を読むような人にこんなこと言ってもしょうがない気もしますけど。

それから、本を読むというのはいいことですね。 「今は web 上にいろんな情報があるしわざわざ書籍を買って読むなんて云々」 という主張をたまに見かけますが、やはり書籍というのはちゃんとまとまっていて、勉強するには適していると思います。 もちろんだめな本もたくさんあるので、本を選ぶ能力は求められますが。

あと上でも書いたように、基本情報技術者試験応用情報技術者試験 は浅く広い知識を得るのに結構いい感じだと思ったので、試験は受けなくてもどういう内容の試験なのかを見てみて、その範囲の内容を勉強してみる、っていうのも良いのではないでしょうか。

Web 上をみていると

なんだか優秀な高校生や高専生がたくさんいます。

  • 道に迷うような方向音痴は私だけなんじゃないか
  • こんな記事書いたところで誰の役にも立たない気がする

優秀な若い人が多くて日本の未来は明るいですね。