プログラミングできなかった僕はどうして一人でWEBサービスを立ち上げるに至ったのか
2013/07/30
こんばんは。なんだか自分でもよくわからない@srockstyleです。
そういえば最近WEBサービス立ち上げるのはやってるみたいですね。とてもよいことです。
僕もWEbサービス三つくらいたちあげたんですがきちんと運用してないとだめですね。
そんな僕はプログラミングできませんでした。
こんな記事をはてなブックマークでみました。
++++引用開始++++
今度は急にローカル環境・サーバー環境の構築から始まります。まずRubyをインストールするにはrvmだかMacPortsだかが必要だと言われ、gemのインストールやらデータベースやらどのフレームワークがどういうものでMVCがどうだ、O/Rマッパーがこうだ、ホスティングにはさくらのVPSだ、Herokuがなんだとかgitでプッシュだデプロイだなんだ、この野郎。常時、「日本語でおk」状態。
++++引用ここまで++++
オーケーボーイ。僕も仲間だ。そんな僕は二年くらい前にOrganicっていうWEBサービス立ち上げたんだがそれまでの経緯はだめだめだった。Organicすらリファクタリングを何度も重ね、ようやくまともなもんになってきたんだ。先日面接に言ったときに会社先のCTOの方に見せたとき「よく作り込んでますね」と言われたときはかなりうれしかった。
こんな僕ですらプログラミングができたんだから、優秀な学生の君らにできないわけないよ。大丈夫。
これから話すのは僕がプログラミングとどうやって向き合ってきたかというお話だ。
参考になれば幸い。
それではいってみよう。
サーバエンジニアとして
僕のWEBエンジニアとしての始まりはサーバエンジニアとしてだった。はじめの会社に入るとき、僕は経験もなにもなく、メールサーバにちょっと詳しいだけの新米エンジニアだった。そこの会社のCTOや二個上のプログラマーに刺激され、Perlを始めた。そのとき会社のサーバで動いていたのはbashシェルのコマンドを並べたシェルスクリプトだったんだけど、それらをPerlスクリプトに置き換えたりしてみた。短いものだったけど、いくつかは動いた。初めての成功体験だった。いまでもあの会社には感謝してる。あの会社がなければ、今の僕はなかっただろう。
そしてサーバエンジニアとしてRuby on Railsの環境構築だとか、Subversionの使い方とか学んで、そのときCTOがPuppetというRubyでできた開発ツールに詳しかったから、自然とRubyについて学ぶことになった。
その辺で僕はプログラムが走る環境の構築や必要なものについての知識を身につけることができた。
サーバエンジニアからアプリケーションエンジニアへ
それから時は流れ僕はソーシャルゲームの会社に転職した。ソーシャルゲームはアクセスが大量のアクセスをさばかなければいけないから、当然いろいろその辺りの知識も深めていかなければならない。キャッシュにいれるとか、バランサーとか。あとデプロイツールについて検証をまかされたりしたおかげで、デプロイとはいかなるものかということも学んだりした。
ある日、僕はそこの会社のCOOに呼ばれ、「アプリケーションエンジニアをやってみないか?」と言われた。僕はPHPの知識なんて当時はしょぼいものだったし、フレームワークなんてもってのほかだ。でも僕は次の瞬間には返事をしていた。「やらせてください」
そこではソーシャルゲームで使うアイテムを管理するツールを作ったり、管理ツールをすこし改造したりしたけれど、それで僕の仕事は終わった。さすがに初心者もいいところだったから、戦力にはなれなかった。
福岡で起業そして失敗
僕は当時結婚していて、嫁がいたんだが、嫁の意見で福岡に移住することになった。仕事もやめることになっていたし、異存はなかった。福岡は当然東京と比べて仕事がない。IT企業の会社もなかったから、友達と起業することにしたんだ。
プロダクトのアイデアは友達がもってきて、デザイナーと三人で早速プロダクトを作り始めた。そこで僕はPHPからRuby、Ruby On Railsで作るという大胆なスイッチをした。これが結構よくて、プロダクトは完成直前までできた。だけど、経営者になるはずだった僕の知り合いとある日、簡単なすれ違いから物別れに終わり、プロダクトは日の目をみないまま終わってしまった。
だけど、僕は一ヶ月、寝ないで開発し続けたので、身につけたRuby on Railsに関する知識ができた。
自分の好きなことのWEBサービスを
これがどういうことにつながるか。つまり僕は
- サーバエンジニア時代に培ったインフラ周りの知識
- ソーシャルゲーム運用時代に得たデプロイ、プログラミングの基礎。
- 起業失敗時に得たWEBアプリケーションフレームワークの知識
ものづくりに必要な知識をすべて網羅したとはいわないが、ある程度得ることができたと言える。
ここまでで僕は気づいたんだ。こうなったら自分の好きなことを好きなひとたちに役立つサービスを作りたいって。
それが創作だ。当時よく使われていたオンライン創作クラスタの情報ポータルが運営を停止することをだしていた。僕は管理者に問い合わせ、その後継を作っていいかどうか尋ねた。答えはYESだった。僕は嫁の従兄弟が作った会社につとめる傍ら、早速自分のWEBサービスの開発を始めた。
Organic誕生
でも当時の僕のコードはひどい。僕は自分でやってきたから、業務用とかではなく、普通に自己流で進めてきた。インフラとかなら業務レベルのチューニングをやれるようになっていたけど、コードは美しくない。なんとかRubyとRailsを操って、なんとか形まで仕上げてみた。
Ruby on Rails 3 アプリケーションプログラミングもうRailsの4がでてるから時代遅れかもしれないけれど、この本にはずいぶん助けられた。whereしかはじめはわからなかったけれど、そのうちメソッドをいくつも覚えることができた。
プログラミングの最短の道は、作りたいものを思い描き、それに向かって突っ走ることだ。
僕はOrganicの開発でそれを学んだ。
初めてのWEBサービス
そしてリリース。僕はTwitterで告知すると、創作関係の友達はあっというまにRTしてくれた。いくつも重なるお気に入りとRT。そしてがんがん増える利用者。中にはなにかお手伝いしたいと言ってくれるひともいた。うれしくて小躍りするとはこのことだった。何万人とはいわないけれど、それでも増えていく利用者をみて、僕はうれしかった。
なにより、僕の友達がつかってくれることが一番の財産かな、と思う。
いまでは仲違いしてしまったり、退会してしまった友達も多いけれど、僕に成功体験をくれたこと、そして一時でもあのサービスに魅力を感じてつかってくれたみんながいたことはかえようもない事実だ。
まとめ
Organicはリファクタリングを重ね、現在はRailsの4に対応するための作業中だ。
今後は創作するひとたちが使う大きなプラットフォーム化していきたいと思ってる。その夢は道半ばだけど、僕は今でもコードを書いている。
結局そこに必要なのはどんな大きな困難があっても、それをやりたい、作りたいっていう情熱なんじゃないかなーと思う。
Git、nginx、PHP、Ruby、Rails、CakePHP、JavaScript、HTML、CSSいろいろあるけど、まーPHPだろうがRubyだろうが使いやすいほう選べばいいし、僕はたまたまRubyを選んだけどね。
途中で挫折しちゃうのもったいないし、もっとがんばれば先にすばらしいものがあるよ! そして振り返ればそこにはきっと仲間がいる。それをみることで共感してくれるエンジニアの仲間が、使ってくれるユーザの姿がね。
ほかのブログエントリと口調が違うのは気にすんな。
Twitterありますよ! フォローしてくださるとうれしいです。
ブログのRSSはこちら。よろしくお願いします。