いまは未経験なのだけどエンジニアになりたい人、将来的にフリーランスエンジニアを目指したいと思う人のために、「未経験エンジニアからフリーランスエンジニアになる」多少なりとも再現性のある方法を書いていきます。
フリーランスエンジニアとはいっても基本はクライアントワークで、SESを基本とするので「フルリモートワーク!キラキラ!」という感じではないです。将来的にフルリモート案件を取得できる可能性はあるのかもしれませんが、世の中そんなに甘くないってことで。
とはいえ、何だかんだ未経験からフリーランスエンジニアになるには年数が必要なので、そのあたりは我慢する必要がありますね。キャリアを考えたら最初の数年にどんな感じでやっていくか、というプランは重要だと感じます。
(少しは)再現性のある方法
ここで紹介する方法は私が実際にやってきた方法でもありますが、まあ、まっとうな方法だろうとも個人的に思っています。ざっくりとまとめると、以下のような手順です。いきなりフリーランスエンジニアを目指すよりも十分に再現性はあるんじゃないかと思います。
- 兎にも角にもエンジニアになる
- 技術力・仕事力をつける
- 所属会社に見込まれる
- 顧客に気に入られる
- フリーランスになる
基本的にまずは立場を手に入れて、そのあと自分をしっかり磨いていく。その後、所属企業に恩返しをしながら外で頑張っていき、最終的にお客さんにも認められるようになる。そういう手順を踏んでいけばフリーランスエンジニアになれるはず(なりました)。
兎にも角にも入口が問題で、そこから汗をかく
世の中、有象無象な情報によって操作されていますけど、結局のところ入口がめっちゃ大事です。正しい方法でエンジニアになれなかったら、エンジニアになることはできないと思います。正しい方法ってなんだ?って感じですけど、要するに汗をかこうってことです。
とにかくまず目指すべきは「エンジニア」になることですよね。超重要なのが、一番最初にIT業界で就職する企業だと思います。ここで失敗してしまうとT業界に希望を見いだせなくなり、エンジニアを目指す夢が砕かれると思います。私の場合は運よく、とてもよい(個人的な観点で)企業に就職することができ、順風満帆とはいえないまでも、何とかエンジニアとして適切なスタートを切れたと思います。
「汗かくエンジニア」と書いてますけど、別に筋トレとかランニングしろってことではないです(運動はだ時だけど)。エンジニアとして働けるとしても、いきなり「理想的」なエンジニアになる、もしくは「理想的」な働き方ができる、ということは不可能です。
エンジニアも商売なので、やっぱり通るべき道は通るべきなんだな、と思っています。私の場合はエンジニアとして入社した後、新人研修を終えてからテスターとしてエクセルに画像を張り付けたり、始めての改修案件で無事死亡して迷惑をかけたり、叱られたり。それはまあ、色々やらされてきました。
保守・運用を担当しながら何個かのアプリケーションの改修案件をやって、開発の肌感をつかむことができました。色々な案件を経て、少しずつプログラミング言語に対しても理解が深まっていき、少しづつ実績を積むことができたので、それなりに大きい開発案件(既存システムのリプレース案件)でメイン画面の開発を担当させてもらうことができました。
その案件では終電を逃して深夜バスを使って帰宅したり、土日のどちらかに出社したり、年末年始の休みを潰して開発したりという濃い日々を送りましたけど、エンジニアとしての自信が付いたというのが大きいです(当時は3年目なりたてくらいだったので、コードの美しさとかビジネスロジックへの理解・表現については諸々反省があります)。
顧客対応とか意味不明な労働時間とか、顧客対応でのコミュニケーション能力とか、とにかく脳に汗をかきながら気力で仕事を進めて、一つ一つをどうにか完了させていくことを頑張っていく過程で、エンジニアとして成長できたなと思います。
会社に見込まれ恩返し、評価を得て独立
そうこうしているうちに会社に対して見込まれるようになります。出世コースに乗せられるくらいにならないとだめです。自分は個人面談か何かで、直接、面と向かって言われましたし、その企業で史上初となる年次をぶち抜いたボーナスをもらったりしました。エンジニアとして、というよりも社会人として、そう思われることは重要です。
いろいろと頑張っていると外に出ても評価してもらえるようになります。僕にとって、それが出向先の1社目のことでした。仕事だけじゃなく、勤務態度とかで気を付けていると、ちゃんと能力があれば出向先からも十分な評価につながります。
私は当時、プライベートによって関西に引っ越すことになっていました。そのことを出向していた企業に、「今の企業を退職します」という意向と経緯を伝えたときに、運よく出向していた企業から関西方面の案件を紹介してもらえたのが初の案件でした(いまも継続中)。
会社(ブラック企業でない会社が前提で)を辞める時に重要だと思うのが「辞め方」だと思っています。それは「ちゃんと恩返しできたか」と「わだかまりのない辞め方」の2点をしっかりと満たすべきだからです。
私は採用にも少なからず関わっていたからわかるのですが、採用ってお金かかるんですよね。就職・転職イベントへのブース出展料、動員する社員の給料等々を考えると少なからず大きなお金が動きます。ということは社員を採用する時点で採用された社員には、費やした投資額が肩に乗っている計算になります。
なので会社を辞める時には、そこで投資してもらった額くらいは恩返しできたらいいと思います。案件で頑張って赤字(炎上)しないでやり切る、新人研修などで後輩を育成するなどなど。私は採用にかかわったり、大きい案件をやり切ったり、新人研修を2年務めたりしたので、割と貢献して採用にかかった費用分くらいは貢献した自負があります。
また、辞め方も重要です。エンジニアとして働くという選択肢をとるということは、辞めてしまう企業が将来の取引先になる可能性もあります。それに変な辞め方をすることで、何かしら評判に傷がつく可能性もあります。案件を途中で投げ出さない、引継ぎをしっかりする、切りのいいタイミングまで仕事をする。そういった譲歩も重要です。
フリーランスに必要なこと
案件に参画しながら様々なエンジニアを見てきましたけど、フリーランスエンジニアの場合は、SESで参画してくる一般的なSESのエンジニアとは違う観点・意識で仕事しないとダメだなと感じます。
フリーランスエンジニアに必要なことって何だろう?フリーランスエンジニアとして必要な条件、というかスキルは何かというのを考えてみましたが、やっぱり「開発をやり切るチカラ」みたいなのが必要だと個人的に勝手に結論付けました。
困難にぶつかっても、やり切るスキルみたいなのがない場合は、エンジニアとしての高い評価は得られないんじゃないかと思います。その点、SESで出会うエンジニアは、割とこの辺りが欠落していることが多い気もしています。
与えられた課題が何事もなくこなせるのならOK。難しいとしても何かしらの妥協点まで見つけて、着地点まで誘導できるようなスキルが必要ですね。要するに「キチッと仕事のできるチカラ」だと思います。企業で働いているあいだから、このような意識をもっておくと役立ちます。
結局はエンジニアも需給の関係で成り立つ職種であるので、需要の枠から漏れないように、取引相手からみて良い選択肢であれば良いということです。じゃあ、良い選択肢であるためには?というのは割と明白だと思っていて、そのポイントを見つけることができれば、フリーランスでも十分にやっていけると思っています。