【エンジニアが思う】PHPをスキルセットにするメリットとデメリット

こんにちは。

ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズ編集部です。

弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。
こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。

皆さんは、PHPについてみなさんどういうイメージをもっているでしょうか?

私は10年以上PHPの開発に携わっている中で、PHP勉強会@東京やPHPカンファレンスなどに積極的に参加している時期がありました。

PHPにはひときわ思い入れもあり、エンジニアとして成長させてもらったという恩を勝手に感じています。

エンジニア界隈では比較的ディスられることも多いPHPですが(笑)、果たしてPHPをスキルセットに加えるべきではないのでしょうか。

本稿ではPHPをスキルセットとした場合のメリット・デメリットを考えてみたいと思います。

freelance

まずはPHPの特徴から

PHPは、Webシステム開発の4点セットとも言われるLinux、Apache、MySQL、PHPの一つで、Webプログラマーの仕事をするには求人が非常に多いスキルの一つと言えるでしょう。

流行っているWebサービスの中でもPHPにより開発されているサービスは未だ非常に多いといえます。

しかしながら、現在ではスケールしたサービスがPHPからのリプレイスを進めている状況もよく耳にします。

例えば、facebookは元々、PHPで開発されました。現在はPHPをfacebookが進化させたHackがサーバーサイドで、フロントエンドの大半はReactで開発されています。

またnanapiはフレームワークをCakePHPからRuby on Railsにリプレイスしました。

さらにチャットワークはレガシーなPHPからScalaにリプレイスを進めています。

このような状況の中でも以前としてPHP求人はJavaに次いで多い事もあり、Webアプリケーション開発分野においては今後も引き合いが多い言語であることは間違いないでしょう。

PHPのメリットは手軽さ

私の場合、学生時代にbasic、fortranやLinux基礎がベースにあり、エンジニアのキャリアをスタートした際はC言語からOJTで学びました。

その後、C++やシェルスクリプトを学び、PHPと出会いました。

web業務システムをPHPで開発する中で、HTML、CSS、JavaScript、Apache、MySQLなども同時進行で学んでいったことを今でも覚えています。

今では手足のように馴染んでいる技術ですが、当時は同時進行で勉強しなければならず、大変だったように思います。

振り返ってみると、PHPが使われるコンテキストは、基本的にwebアプリケーションの開発であることがほとんどであり、webアプリケーションの開発に一通り必要な知識もすべてひっくるめて体系的に学べると言えるのではないでしょうか。

これはweb系言語に共通しているメリットではあります。

しかし、規模の小さなwebアプリケーションを、フレームワークを使わずに小さく開発する場合、PHPはその手軽さがゆえにもっとも選ばれやすい言語の一つといえるのかもしれません。

稼いでいるコードに触れられるのはPHPのメリット

PHPに関わらずPerlやJavaでも言えることだと思いますが、それなりに歴史のあるサービスで使用されていることが多いです。

「そういうサービスは大抵糞コードだ!」などと(笑)賛否両論あるかもしれませんが、歴史があるということはそれだけ存在意義が継続的にあったということで、いわゆる仕組み化ができている「稼いでいるコード」とも言えるのかもしれません。

このようなサービスに関われることは、業務知識を得られたり、現実的なリファクタリングをする必要に迫られたり、テストコードでどこまで保護するか判断を迫られたり、よりオブジェクト指向開発(OOP)で設計・ドメインモデルを洗練させたりなど、よい経験をつむことができると思います。

PHPフレームワークの選択肢があるのはPHPのメリット

現在webサービスを新規開発する場合は、webフレームワークを選択することがほとんどでしょう。

PHP製のwebフレームワークはRubyでいうところのRuby on Railsのようなデファクト・スタンダードがなく、選択の余地があります。

これもメリットと捉える方もいれば、デメリットと捉える方もいるかもしれません。

いずれにしても、webサービスを作る際に何らかの制約(PHPエンジニアが多いなど)でPHPを選択した場合、CakePHPなのかLaravelなのかCodeIgniterなのか、何らかの理由でフレームワークを選択する、いわゆる技術選定の経験が得られるということは、貴重だと思います。

PHPのデメリット

前述の通り、私はPHPやコミュニティに感謝しています。

それはPHPを通してさまざまな経験を得ることができたからです。
そのように考えると本質的な意味では、PHPのスキルを身につけるデメリットは特にないのではないかと思います。

Rubyを書く際に感じる気持ちよさはPHPにはないかなと思いますが。。(笑)

テストコードやCI、OOPの重要性を経験的に気付けるのはむしろPHPに軍配が上がるような気がしています。

これまで振り返ってみると、私にとってはいろいろな言語を使って開発をする経験を積めたことが重要でした。

ここは人によって異なるかもしれません。

もし言語そのものにコミットしたい人は、言語にこだわって開発する案件を選んだり、言語やフレームワークの開発にコミットしてOSSコミッターへの道を歩むのかもしれません。

そう考えるとまず重要なのは、「自分は何にこだわりたいのか?」を明確にすることなのかもしれませんね。

あえて言えばPHPの欠点はこれだ

phpはスキル取得難易度が低いため、エンジニア初心者の方が最初に取得する言語になりやすい傾向があります。
前述した通り、PHP自体にデメリットや欠点は得にございません。

しかし、初心者の利用者が多いため、一定のレベルに達していないホームページなどが乱立することがあります。

そうすると、PHPを専門に扱っている方は同じような評価を受けてしまう恐れがあるため、嫌な顔をする人もいます。

PHP自体に欠点やデメリットが無いにせよ、一定こういったデメリットがあることは念頭に置いた方がいいかもしれません。

最後に

今回はエンジニア目線でPHPのメリットとデメリットを紹介しましたが、いかがでしたでしょうか?

PHPはデメリットよりもメリットの多い言語だということはお分かり頂けたかと思います。ただ、大切なのは、言語毎のメリットやデメリットを見極めた上で自分にはどの言語が合うのかを決めることです。

実際手を動かしてみないことにはわからない部分もあるとは思いますが、まずは情報だけで判断し、自分に合いそうな言語を実際試してみるのがいいかと思います。

➡︎弊社(ITプロパートナーズ)は初心者〜上級者までできる、週2〜3日からできるphpの開発・求人案件を数多く取り揃えております!是非一度弊社のエージェントにご相談ください!

bn04

もし、今あなたが

・フリーランスになるか悩んでる
・自分に合った案件があるのか不安
・そもそも何から始めればいいのか分からない

などお困りであれば、ぜひ弊社ITプロパートナーズのサポート内容を確認してみてください!

登録後、専属エージェントに無料相談もできますよ!

※週2日 / 30万〜のフリーランス案件を紹介中です
※ご経験やご希望によっては案件を紹介できない場合がございますのでご了承ください。


よく見られてる関連案件

b80c977483d024c14549510e194361fe 2_anken 3_anken
The following two tabs change content below.

tchikuba

フリーを経てwebプログラマ。Ruby on Rails, Python, CoffeeScript, TDD, BDD, Lean, Agile, スモールビジネス, 機械学習, 人工知能, 投資, FX, 酒, 歌など。エンジニア出身の起業家になってもっとエンジニアを幸せにしたい。
freelance

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です