エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン
  • TOP
  • キーパーソン
  • 旬ネタ
  • コラボ
  • ノウハウ
  • 女子部
  • キャリア

「今年こそは……」やるやる詐欺になりがちなプログラマー向け、サーバサイド言語入門【連載:えふしん⑩】

タグ : Ruby on Rails, えふしん, サーバ, サーバサイド, プログラミング, 言語学習 公開

 
えふしんのWebサービスサバイバル術

藤川真一(えふしん)

FA装置メーカー、Web制作のベンチャーを経て、2006年にpaperboy&co.へ。ショッピングモールサービスにプロデューサーとして携わるかたわら、2007年からモバイル端末向けのTwitterウェブサービス型クライアント『モバツイ』の開発・運営を個人で開始。2010年、想創社(現・マインドスコープ)を設立し、2012年4月30日まで代表取締役社長を務める。その後しばらくフリーランスエンジニアとして活躍し、2012年11月6日に想創社(version2)設立

皆様、あけましておめでとうございます。

年が明けると、心も新たに何かにチャレンジしてみたい!って思いますよね!?  ね!?

でも、いざ仕事が始まると、あっという間に1日8時間(くらい)の「日常業務」に戻ってしまい、その日常についつい流される1年を送ってしまうものです。

しかし、何もしなければ進化しない現状だけが残ります。そうはならないように、これからWebのサービス開発をもっと勉強したいなぁと思う人のために、サーバサイドのプログラミング言語を勉強する取っ掛かりになる記事を書いてみたいと思います。

勉強すべき言語は、PHP? Ruby? Perl?

結論は、「好きな言語を選べばそれが正解」です。

From tttallis
サーバサイドのプログラミングを覚えるには、まずは「やりたい」と思える言語を扱うのが吉

選ぶ理由は、一番使いたいと思ったものにしたら良いと思います。流行りでも、「この人すごいなぁ」と思った人が使っている言語の真似でも、きっかけは何でもOKです。

プログラミング言語を学ぶ時には、いくつかの構成要素がありまして、

1. 文法レベルの問題
2. ライブラリやフレームワークの問題
3. 実行環境の問題

これらのコツを理解するのがポイントになります。

1.文法レベルの問題

文法とは、要するに「書き方」ですよね。書き方を学ぶというのは、プログラミング言語を学ぶことの主軸のように見えて、実は、そんなに本質的な問題ではないと思っています。

例えば、プログラマーで「自分はPHPしか書けない」と言う人がいます。それは、ほかの言語では「今すぐ最高のパフォーマンスを発揮するほど書けない」というのはありますが、未来永劫書けないかというと、決してそんなことはないわけです。

英単語を覚えるようなノリで文法を覚える必要はありません。リファレンスを見ながらでも、プログラムを作れることが大事です。とにかく1つの言語が使えるようになれば、そこを軸足にしてほかの言語を学ぶコストはかなり下がります。

言語仕様についても、特定の言語で有用だと思われて流行った機能は、だいたいほかの言語にも取り入れられます。クロージャと呼ばれる、JavaScriptでその有用性が認知された書き方は、今ではほかの言語にも取り入れられています。トレンドは相互に影響し合い、違う言語を使っている不利というのは、そうそうありません。

本質的に学ぶべきことは、プログラミング言語の仕様ではなくて、「Webプログラミング」や「アプリプログラミング」なので、そこに使える言語であれば、どれでもいいんじゃないの? というのが僕の考え方です。

初心者本を開いて文法の書き方を読んでいても、一向にプログラミングをすることはできません。

これは恥ずかしいお話なのですが、モバツイはPHPで作っていましたが、僕はPHPのメソッドの引数を覚えるのが苦手です。PHPにはたくさんの便利命令がありますが、使う時はphp.netのリファレンスを見ながら書いています。引数の仕様が覚えられないからです。

Visual BasicやJavaなどの開発環境で入力補完に慣れてしまって覚える力を失ったというのと、PHPの引数仕様がバラバラなので、覚えられないものがほとんどです。preg_matchのように何度も書いてるものはさすがに覚えますが、そうでないものはその都度調べながら書いていました。

2.ライブラリやフレームワークの問題

ここが一番大事だと思います。

オープンソースで公開されているライブラリをどう活用させていただくか、というのは重要なスキルになっています。また、特定のフレームワークを学ぶことで、転職の際などに有利になることもあります。

From sansfaim
転職を視野に入れると、フレームワークを使いこなすスキルは大事だと話す藤川氏

例えばRubyの言語を学ぶことより、Ruby on Railsを覚える方がけっこう大変です。それは単純に情報量が多いので、何をどう組み合わせたらいいかという部分に手間が掛かるからです。こればかりはRuby on Railsにかかわっている時間が、ノウハウに直結してきます。

また、適切なライブラリを使うという選択も、1つの「スキル」になっています。サーバリソースは有限ですから、非効率なプログラムは、コストに直結します。サイトが一定の規模を超えた段階で効率的なコードは、利益にも貢献できる重要な要素といえるでしょう。

ちなみに、エンジニア自身の評価につなげるためにオープンソースでライブラリを公開したり、特定のプロダクトに貢献するといった活動も、自身のキャリアに良い影響を与えるでしょう。

もしかしたら、どの言語であれば自分が目立って活躍しやすいかというのは、戦術として考えてもいいかもしれません。若干いやらしいように思われるかもしれませんが、注目されるような活動をすることで得られることは多いですから。

昨年は、PerlのイベントであるYAPCにお邪魔して、その雰囲気がすごくいいなぁと思っていました。ここであれば、自分の気持ち次第で一歩前に進めるだろうなぁと思いましたね。YAPCでプレゼンしてみたいなぁって思うんですよね。意外にも初心者セッションに人が多く、開発者の層の厚さを実感しました。

今年はRuby会議も復活するようなので、注目かもしれませんね。

3.実行環境の問題

僕がモバツイを作った理由の1つに、人に使っていただくWebサービスを自分で運用してみたかったというのがありました。ただ、当時はpaperboy&co.の社員でしたので、サーバはサーバチームに管理をお願いしていて、インフラの部分のノウハウはなかなか身に付きませんでした。

たまに彼らに質問をしながら、一通りのことは全部自分でやりたいと思っていて、メールサーバからWebサーバまで全部管理していましたが、世の中、必ずしもそう思ってる人は多くはないようなのです。

そもそも、これから勉強する人は、Webアプリケーションを学ぶのでさえ忙しいのに、その下のWebサーバやメールサーバまで面倒見きれないという現実があるでしょう。だからこそ、サクッと実行できる環境をネット上に確保できることは、やっぱり重要です。

そういう部分を低コストに支えてきたのは、レンタルサーバだと思います。

レンタルサーバの環境においては、PHPが一番使いやすいと思います。特にモダンな開発フレームワークなどがレンタルサーバでの設置を考慮しているのは、とても大きいかなと思っています。

ただ、PHPは基本的にコア機能の設定をコンパイルに依存しており、コンパイルオプションによってはどうしても使えない機能というのが出てきてしまいます。レンタルサーバのコンパイルオプションを変えてもらうのは基本的に不可能で、売り上げに直結するぐらい重要な変更以外はなかなか要望が通りません。

ゆえに、ニッチな機能の追加・変更をしたいがために、VPSなどに移行していくこともあると思います。

Ruby on Railsなどは、レンタルサーバで汎用的に動かすにはヘビーな構造で作られており、向いていませんでした。しかし、Railsで開発する人の増加により、RubyのWebアプリを専門にホスティングするHerokuSqaleと行ったホスティングサービスも出てきています。無料プランがあったり、使えても月1000円ぐらいだったりするので、勉強には持って来いだと思います。

今年前半はコードをがっつり書こうと思う

本エントリーで、今後の期待の星であるNode.jsのことに触れたかったのですが、文章量が多くなり過ぎてしまったので、また今後書きたいと思っています。

わたくしごとですが、2013年の前半はコードをがっつり書いてスマートフォンのアプリをリリースしたいと思っており、これまでずっと企画や設計の準備をしてきました。モバツイはPHPで書いていましたが、モバツイを手放した後に、Ruby on Railsを覚えて利用するサーバサイド言語を切り替えています。

ビジネス面では、PHPで何も困らないのですが、あまりに困らな過ぎて切り替えるタイミングというのがないので、エイヤーで切り替えることにしました。 合理的に考えて一番早い選択を取るのではなく、時には、そういうことも必要だと思うのです。

今年の豊富としては、とにかくアプリをちゃんと完成させてリリースするぞ! ということで締めさせていただきます。本年もよろしくお願い申し上げます。

>> えふしん氏の連載一覧はコチラ




人気のタグ
業界有名人 スタートアップ 開発 SE 転職 エンジニア Web プログラマー スキルアップ ソーシャル アプリ シリコンバレー 起業 プログラミング キャリア スマートフォン Android SIer 技術者 えふしん クラウド UI btrax スペシャリスト Webサービス アプリ開発 Twitter ギーク Facebook CTO デザイン Apple IoT Brandon K. Hill Google ツイキャス SNS 英語 モイめし 世良耕太 IT 30代 赤松洋介 採用 コーディング 20代 村上福之 勉強会 プロジェクトマネジメント UX Ruby 法林浩之 ITイベント Webエンジニア モノづくり 受託開発 ひがやすを 五十嵐悠紀 LINE ビッグデータ 中島聡 ウエアラブル IT業界 ドワンゴ MAKERS コミュニケーション ロボット ハードウエア SI Webアプリ 女性 ゲーム インフラ iPhone 女性技術者 高須正和 ソーシャルゲーム マイクロソフト トヨタ イノベーション 研究者 ノウハウ tips 息抜き システム プラットフォーム イベント 和田卓人 チームラボ 自動車 メイカームーブメント ソニー エンジン 教育 UI/UX 開発者 iOS オープンソース グローバル Java サイバーエージェント 女子会 メーカー 家入一真 ソフトウェア 増井雄一郎 スーパーギーク コミュニティ IPA ニュース 40代 GitHub 日産 TDD テスト駆動開発 グーグル 音楽 モバイル PHP ソフトウエア TechLION

タグ一覧を見る