フリーランスになろうと考えているPerlエンジニアは、会社勤めをしているいまのうちにPHPとJavaの言語を取得しておいてはいかがでしょうか。
フリーランスは理想の働き方です。自分で仕事を選べますし、働く時間を自由に設定できますし、自分の労働が100%そのまま収入になります。
しかしフリーランスには唯一、仕事の枯渇という心配事があります。
3つの言語を持っていれば、仕事探しに困らないでしょう。3言語化の壁は思っているほど高くはなく、ベテランエンジニアは「2つの言語を覚えたら、3つ目の取得はそれほど苦労しない」といいます。
「Perl一本」でフリーランスになれないわけではありませんが、Perlエンジニアが独立するとき、慎重になったほうがよい理由があるのです。
Perlの特徴を、Perlの歴史を追いながら解説していきます。
Perlはアメリカのウエストコースト社のシステム管理者、ラリー・ウォール氏が開発しました。ウォール氏はOS「UNIX」でシステム開発をしていたとき、使っていた言語に使いにくさを感じました。それで新しい言語をつくろうと考えたのです。
ウォール氏は1987年にPerlを公開しました。すると世界中のプログラマーから改善案や質問が寄せられ、ウォール氏はそれを参考にしてPerlを改良していきました。
PerlはウィンドウズやMacのOSに移植されるようになり、1990年代に入るとCGIプログラムにも使われるようになりました。
CGIはコモン・ゲートウェイ・インターフェースといい、Webサーバー上でユーザープログラムを動かす仕組みのことです。
Perlはインターネットの浸透とともに普及していったのです。
Perlには次のような特徴があります。
・安定している
・テキスト処理に優れている
・後方互換性に優れている
・記述が容易
・コンパイル作業が不要
・それゆえに速い
Perlの強みとニーズを詳しくみていきましょう。
Perlはスクリプト言語なので、コンパイル(翻訳)作業が要りません。Perlでソースコードを書くと次々マシン語に変換していくので、短い記述で「サクサク」処理していくことができます。
C言語のようなコンパイル言語の場合、事前にソースコードをコンパイルしてマシン語に変換しておかなければなりませんが、Perlではその工程が要らないのですぐに作業に取りかかることができます。
またPerlは高速処理が得意です。数百万行のテキストファイルでも、エンジニアがストレスを感じることなく処理していきます。
さらにベテランのPerlエンジニアは「Perlは他のスクリプト言語より安定している」と評価します。その評価は、UNIXとLinuxに標準でインストールされていることからも正しいことがわかります。もちろんウィンドウズやMacにPerlをインストールすることも容易です。
そしてPerlは、新しい製品が出ても古い製品を使うことができる後方互換性に優れています。これならエンジニアは安心してPerlを使い続けることができます。
Perlの後方互換性の高さは、コンピュータ業界の流行り廃りに左右されたくないビジネスシーンで高い支持を勝ち取ることに成功しました。
Perlのライブラリの多さを重視するPerlエンジニアは少なくありません。特にCPANというライブラリは無料で公開されていて、さまざまな機能が掲載されています。CPANを使いたいからPerlスキルを取得するエンジニアもいるくらいです。
作業性ではテストのしやすさやモジュールのパッケージングのしやすさが指摘されています。そして、ソースコードの整理のしやすさや書きやすさは、初学者に歓迎されています。
ベテランから初級者まで受け入れる懐の深さがPerlの人気の秘密です。
フリーランスのPerlエンジニアや、これからプログラミングを学ぶ人が注意しなければならないことは、Perlに勢いが感じられないことです。
JavaScript、Pythonというニューカマーの勢力が増した分、相対的にPerlの勢いが奪われた形です。
プログラミング言語の世界シェアを計測しているオランダのTIOBE Softwareの2018年12月のランキングでは、Perlの世界シェアは1.013%で18位でした。前年同月の14位から4つもランクダウンさせています(*)。
*:https://www.tiobe.com/tiobe-index/
トップ3は1位Java、2位C言語、3位Pythonでした。JavaScriptは7位でした。
こうした状況を考えると、現在Perlのみでフリーランスになっているエンジニアは、Perlの仕事(案件)を主軸としつつも、2言語目や3言語目の取得を検討し始めたほうがいいかもしれません。
Perlエンジニアは、どのようなポジションで働くことが求められているのでしょうか。案件票の募集要項などを参考に、Perlエンジニアの働き方のトレンドを探っていきます。
自社クラウドサービスを提供している企業が、上流から下流までの業務にまんべんなく携わることができるポジションのPerlエンジニアを募集しています。
具体的な業務は次のとおりです。
・サーバーサイドでの開発
・API(アプリケーション・プログラミング・インターフェース、ソフトウェアの機能を共有する仕組み)の作成
・管理画面の開発
・パフォーマンス測定、改善
・監視システムの更新
そしてこの企業は、新しく採用するPerlエンジニアに、クライアントとの打ち合わせも任せたいと考えています。
Perlエンジニアは開発の総責任者のポジションを得ることもできるのです。
「Perlで気を付けること」の章で、Perlの世界シェアが落ちていることを紹介しました。落ちているとはいえ、トップ20には入っているのでPerlエンジニアの仕事がすぐになくなることは考えられませんが、「万が一の事態」に備えておいたほうがいいでしょう。
Perlエンジニアとしてのポジションを維持・向上させるためには「市場価値が高いエンジニア」になることです。
その方策として最も手っ取り早いのは2言語目、3言語目を取得することです。
また大規模プロジェクトの開発経験や、大規模プロジェクトを統括する仕事の経験は、フリーランスになったときに貴重な武器になるでしょう。
別の言語の習得は後からでも可能ですが、「経験」はチャンスに巡りあわないと積むことができません。
会社員エンジニアのうちに、企画、要件定義、各種設計、コーディング、テスト、リリース、改善・修正、予算管理、スタッフ管理といった一連の工程・業務を押さえておきたいものです。
こうした経験を積んでおけば、転職するときにワンランク上の案件に挑戦できます。
Perlエンジニアは、Webアプリ開発、システム管理、テキスト処理などの業界・分野で活躍することができます。
Webアプリでは、SNSの開発でPerlが使われることがあります。SNSといえばフェイスブックやツイッターやインスタグラムなど「世界王者」が鎮座する業界ですが、最近は社内限定のSNSを構築する企業も増えています。
情報漏洩のリスクを考えると、コストをかけてでもクローズド環境のSNSのほうが「安上がり」だからです。
ただPerl案件のうち、他言語では対応できない案件は少なくなってきています。特にこれから成長が期待されるAndroid向けアプリやiOS向けアプリの開発では、他言語のほうが明らかに有利です。
Perlによる開発でよく使われているフレームワークを紹介します。
MojoliciosはWebアプリ開発用のフレームワークです。Mojoliciosの特徴は、シンプルなWebアプリづくりにも、複雑な構造のWebアプリづくりにも対応しているところです。
そのため経験が浅いプログラマーから、ベテランPerlエンジニアまで幅広く使うことができます。スキルやポジションが上がっても継続して使い続けることができるので、長期的にみて「学習コスパ」がよいフレームワークといえそうです。
Mojoliciosのテストフレームワークは使いやすいと評判です。変更への対応に柔軟性があるので、クライアントからの変更依頼をストレスなく実施できます。
さらに標準モジュールに依存しないのでインストールがスムーズだったり、短い行数で済んだりといった操作性のよさも評価されています。
サポート体制が充実しているのでメンテナンスが楽です。
TripletaiLは「継承が要らない」「依存モジュールが少ない」という特性から、使いやすいという評価が定着しています。基本機能だけで開発できる点も評価されています。
名称の「トリプル」は「安全性、生産性、保守性の3拍子そろっている」という意味です。安全対策として、HTMLのなかに文字列を展開するときにテンプレート機能で記号処理を行っています。
Dancerは簡素なコーディングをするときに便利なフレームワークです。最小限の構文で開発できるよう、モジュールへの依存性を少なくしています。
またカスタマイズが簡単にできる点もPerlエンジニアたちから評価されています。
そして構文がシンプルなため、メンテナンスや修正に時間がかかりません。
トレーニング用のプログラミングがあるので、習得ストレスが少ない特長があります。
Amon2も少ないコードで記述することを目指したフレームワークです。PSGI/Plackがベースになっています。シンプルな構造ですが、拡張性に優れているのでさまざまなプロジェクトに対応できます。そのためAmon2は大規模システムの構築でも使われます。
CatalystはMVCアーキテクチャーを持つフレームワークです。
MVCはモデル、ビュー、コントローラーの頭文字を取っていて、この3要素を別々に設計する手法のことです。
MVCは作業を分業することができるので、大規模Webアプリを製作するときなどに適しています。
ちなみにモデル(M)はアプリの根幹をなす部分、ビュー(V)はアプリのユーザーインターフェースを定義する部分、コントローラー(C)はモデルとビューの間を取り持つ部分のことです。
フリーランスのPerlエンジニアにはどのような業務が発注されるのでしょうか。案件の単価などを紹介します。
この会社はDSPサービスを提供しています。DSPはデマンド・サイド・プラットフォームの略で、広告主側のプラットフォームのことです。広告主が広告を入札するときに使います。
この案件の業務内容は、サーバーサイドからフロントエンドまでの開発全般です。かなり幅が広い仕事になり、報酬は月70万円です。
具体的な仕事内容は次のとおりです。
・ユーザーが触れる部分の表現や仕組みづくり
・業務効率向上させる管理UIの開発
・プラットフォームと連携するAPI開発
この案件ではPerlエンジニアにシステムエンジニアに就くことを求めています。業務内容は小売業向けのECサイトの機能改修と、CRMシステムとデータを連携させる作業です。詳細設計から担当できます。
報酬は月70万円以上と特別高いわけではありませんが、EC(電子商取引)に関わることができるのは、フリーランスにとってよい経験になるでしょう。
EC業界は楽天やヤフオク!といった老舗から、メルカリやZOZOタウンなどの新興勢力まで群雄割拠の様相を呈しています。そしてリアル店舗で拡大してきたセブン-イレブンやユニクロなどもECに進出しています。
つまりフリーランスのPerlエンジニアがEC案件を経験しておけば、仕事の幅が確実に広がります。
この案件を発注している企業はフリーランス・エンジニアに向けて「当社はインフラに特化したサービスを提供しているので、サーバーやネットワークの知識を吸収できます」というメッセージを送っています。
経験値を高めたいフリーランスにうってつけの案件といえるでしょう。
フリーランスのPerlエンジニアたちは、具体的にどのように業務を進めているのでしょうか。
仕事(案件)を獲得してしまえば、「やること」は会社員エンジニアでもフリーランス・エンジニアでも同じです。
しかしフリーランス・エンジニアは、「やることをやって終わり」というわけにはいきません。
なぜなら、フリーランスにとってアプリやシステムを完成させることの次に重要な仕事は、次の仕事を確保することだからです。フリーランス・エンジニアが仕事を失うと、一瞬で無収入になるからです。
次の仕事は、いまの仕事をしながら探しましょう。
フリーランスに仕事を出すクライアントは原則、困っています。その困りごとの種類はさまざまで、受注しすぎた、スタッフが足りない、ソリューションがみつからない、などが考えられます。
ということは、いま仕事を引き受けているクライアント企業には、まだまだ案件が眠っているかもしれないのです。
クライアント企業の困りごとはフリーランス・エンジニアにとってのビジネスチャンスです。
受注しすぎているクライアント企業は、業績好調なはずです。こうした企業からは「いくらでも」案件を引き出すことができます。
スタッフが足りないクライアント企業は、人件費を削りたがっているはずです。ということは、フリーランス・エンジニアのほうで報酬をディスカウントすれば、これまた「いくらでも」案件を引き出すことができます。
低単価案件にはなりますが、仕事が途切れたときは「ありがたい存在」になるはずです。
ソリューションがみつからずに困っているクライアント企業がフリーランス・エンジニアに頼ってきたら、価格交渉で高額報酬を獲得できるでしょう。
もちろん「相手の弱みに付け込む」方法はご法度ですが、きちんと「ソリューションの良案があるが、これは自分のノウハウが詰まっているのでそれなりの報酬をいただきたい」と伝えればいいのです。
「自分を安く売らない」フリーランスは、結局はクライアントから信頼されます。
同じクライアントから連続して仕事を獲得するには、クライアントとコミュニケーションを取る必要があります。仕事の話以外の雑談のなかにこそ、次の仕事のヒントが隠されているものです。
フリーランスのエンジニアも、企業の正社員エンジニアの働き方や待遇、福利厚生などを把握しておきましょう。フリーランスがクライアントと報酬交渉をするときの材料になるからです。
そこでPerlエンジニアを正社員で採用する企業の案件票をみてみましょう。
この会社はスマホ向けのVRアプリとARアプリの開発に力を入れています。
そこでサーバーサイド開発を担ってくれる正社員のシステムエンジニアやプログラマーを募集しています。
年収は280万~600万円と倍以上の開きがあります。ポジションやソーシャルゲームの開発経験に応じて年収が変動します。
VRもARも、AI(人工知能)と並んで次代のIT・ネット業界の目玉になりうるツールです。会社員時代に最新技術に触れておけば、独立したときの「売り」になります。特にVRとARは、これらを使おうとしている企業ですら手探り状態です。つまり完全にブルーオーシャン状態です。
フリーランス・エンジニアは可能な限り、ライバルが少ないブルーオーシャン案件を探しましょう。ライバルのフリーランスと競合するレッドオーシャン案件は価格競争になり「忙しいのに儲からない」状況に陥ります。
「得意でない言語を使った開発に携わりたくないからフリーランスになった」という方もいるでしょう。フリーランスの立場であれば、Perl案件だけを引き受けることができます。
しかしPerlの現在の勢力を考えると、なかなかそうもいっていられないかもしれません。もちろん2~3年のうちに仕事が枯渇するといった緊迫した状況ではありません。
では5年後はどうでしょうか。30歳のフリーランス・エンジニアなら、10年後はまだ40歳でバリバリの現役です。
フリーランスのPerlエンジアが5年後10年後でも安定した仕事を安定した収入を得るには、いまから「武器」を持っておく必要があります。
2つめの言語や3つめの言語でも構いません。管理業務スキルの獲得でも構いません。AIやVR・ARのような目新しい技術の知見でも構いません。
いずれにしてもプログラミング市場の動向を見据えながらスキルアップすることは欠かせません。
3つの質問に答えるだけで、フリーランスエンジニアとしての単価相場を算出します。 スキルやご経験にマッチする案件もあわせてご紹介いたしますので、気軽にご活用ください! ※単価相場の算出に個人情報の回答は必要ございません。