PHPでフリーランスになる前に抑えておくべき理想の5つのスキル

「フリーランスで挑戦するには、どの程度出来ればいいですか?」「仕事で使えるレベルって」という質問を受けます、
僕が一番大切だと思うのは「常に技術をキャッチアップしていく」「みんなとなかよくやる」といったマインド的な所が一番大切だと思いますが、それじゃ回答にならないので、僕個人の理想のスキルを考えてみます。

1つ目:フロントエンド(HTML5・CSS3・JavaScript)

PHPerはデザイナーではないので、デザイン分野までは担当しませんが、フロントの修正や改修は結構任されるシーンが多いので、まずは、HTML5になってからのタグの構造化の理解、CSS3でのインタラクティブな実装方法は抑えておきましょう。
また、JavaScriptの理解も必要です、jQueryの使い方は必須だと思ったほうがいいですね。

これができれば尚可

ほぼフロントエンドエンジニアの領域になってはしまいますが、AngularJS、Backbone.jsなどのJavaScriptのフレームワークの経験と、LessやSassとかScssなどのCSSのメタ言語での経験があれば尚可です。

2つ目:PHPフレームワーク(MVCモデル)

Cakephp、Fuelphp、Symfony、Zend Framework、Laravel、、、などなど、バージョンの違いもカウントすると、僕の知るところだけでも20種類ほどのフレームワークが存在します。現在のWebサービスは、何かしらのフレームワークを使って作成されているケースが多々有るので、何かしらのMVCフレームワークの経験が必要。

これができれば尚可

フレームワークの選定に関して、単に好き嫌い以外に、プロジェクトやリソースなど要件を踏まえたフレームワークの選定やアドバイスができるようになれば更によいです。

3つ目:RDB・NoSQL(KVS)

RDB(MySQL、PostgreSQL、Oracle)に関しては通常使うSELECT、UPDATE、INSERTやJoinを使っての結合、トランザクション処理、の一連の操作ができればほぼ問題ないと思います。
また、NoSQLに関する知識や経験も必要になってくるかと思います。KVSと呼ばれるmemcachedやCassandra、Redisあたりはどれか一つは抑えておきたいところです。

これができれば尚可

既存のSQLのチューニングやレプリケーションの設定などできれば重宝されますね。
また、フレームワークとの相性なども考えて提案してあげれるレベルまで持ってこれれば文句なしだと思います。あとは、MongoDBやHbaseなどのビックデータに強いDBの経験や興味があればいいですね。

4つ目:Linuxの操作

ディストリビューションに関しては、特に問わないですが、公開鍵暗号方式でのSSHログインの設定や、ログの監視や、その他コマンドの操作は抑えておきましょう。
また、最近はvirtualbox&Vagrantとかの仮想環境を利用しての開発環境構築が当たり前になってきたので、Linux自体の設定や、Apache、PHP、MySQLなどの一通りのインストール作業は抑えておきましょう。

これができれば尚可

Amazonや、さくらクラウド、Google Cloud Platformなど、クラウドでのサーバのホスティングも多種多様になってきているので、IaaS、PaaS、SaaSの特性や料金体系を理解でき更に提案出来ると尚可ですね。

5つ目:バージョン管理(Git)

ちょい昔は、SVNという選択もありましたが、今はGit一択な気がする今日このごろです。特に取得ハードルは高くないと思いますが、GitHubなどのサービスではソース管理だけでなく、他のエンジニアとのコミュニケーションツールにもなるくらいに進化してきているので、確実に抑えておきたいソフトウェアの1つですね。

これができれば尚可

既存のサービスでSVNをまだ使ってるところも多々あるので、集中型と分散型の理解や、SVNからGitへの移行経験などあれば尚可です。あとは、GitHubなどでの公開リポジトリがあれば、スキルを判定して頂く際に大きな武器になります。

ざっくりですが、以上がPHPerが抑えておきたいスキルになります。
全体的に見るとすこしハードルは高めですが、フリーランスエンジニアで挑戦するのであれば、上記の内容の1つ2つは確実に抑えておけば安心でしょう。
あとは、随時キャッチアップしていく心構えが一番大切だと思います。