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

タグ一覧を見る