フリーランスのエンジニアには年単位の会社員経験を積んでからフリーランスに転向する人と、ほとんど勤務経験がないなかフリーランスとして活動を始める人がいます。
今回お話を聞いたrokurorockさんは後者で、大学卒業後少しだけ会社員として働いた後すぐにフリーランスのエンジニアとして仕事を始めました。
度をしながら生きていくことが目的でフリーランスを選んだというrokurorockさん。その気になる仕事内容やこれまでフリーランスとして活動してきて良かったことや困ったこと、さらには気になる年収まで伺いました。
rokurorockさん
社会人1年目からフリーランスのエンジニアになり4年目。主にFA(ファクトリーオートメーション)業界で産業用ロボットプログラミングや画像処理・ディープラーニング関連の開発を中心に活動しているそうです。
目次
- 1 rokurorockさんの自己紹介
- 2 フリーランスになる前の職業について
- 3 これまでエンジニアとして経験した現場
- 4 フリーランスになったのは何年前か
- 5 フリーランスになろうと思ったのは旅をしながら生きていきたかったから
- 6 これまで現場で不満に思ったこと
- 7 エンジニアをしていて良かったこと困ったこと
- 8 フリーランスになって良かったこと
- 9 フリーランスで困ったこと
- 10 フリーランスになって収入がどれくらい上がったか
- 11 大学以外でプログラミングを学んだ場合、学習をどのようにし、1日とれくらい学習時間していたか
- 12 フリーランスで稼ぐためには何が必要だと思うか
- 13 フリーランスでこれから稼ごうとする人へのアドバイス
- 14 まとめ
rokurorockさんの自己紹介
大学は私立文系心理学部出身です。大学4年生になってからプログラミングの勉強を初めて、社会人一年目からフリーランスとして活動して現在4年目のエンジニアです。主にFA(ファクトリーオートメーション)業界で産業用ロボットプログラミングや画像処理・ディープラーニング関連の開発を中心に活動しています。
自分は学生時代の大半を海外でのバックパッカーとして過ごしていたのもあって、自分の目指すライフスタイルが”旅をしながら生きて行く”ことです。今はロボットやAIの業界に常駐するのではなく自分のビジネスをできる限りリモートで展開していくために、画像処理やディープラーニングの開発に加えて、動画編集・画像編集をリモートで活動する事業の準備をしています。
現在のエンジニアとしての私のスキル・開発可能言語はこちらです。
・画像処理全般
・ディープラーニング・機械学習全般
・python
・C++
・ラダー言語
・産業用ロボット言語(三菱・安川 etc)
・Html/css
・javascript
・SQL
etc
フリーランスになる前の職業について
事務局
rokurorockさん
大学を卒業してから、正社員として働いていた期間はほとんどありません。フリーランスエンジニアになる前は大学を卒業後、3ヶ月ほどSESの会社で業務アプリの開発をやっていました。
そこでは主に派遣先でJavaのフレームワーク(strtus2)を使った顧客情報を管理するための業務アプリ開発案件に開発メンバーとして携わっていました。
新卒からエンジニアに
プログラミングの勉強を始めたのは、2017年の夏頃からです。それまではプログラミングについて何も知りませんでした。
大学4年生の時に休学をしてアジアをバックパッカーをしていたのもあり、勉強を始めた時期は大学5年生の夏からになります。そこから9ヶ月ほど勉強して、上記のSESの会社に最初に正社員として入社しました。
エンジニア年数
エンジニアとして業務に従事した年数は今年で4年目になります。正社員としてSESの会社で働いていたのが3ヶ月、フリーランスとして働き始めてから3年ほどです。
フリーランスはスキルなしでもできるのか?フリーランスになる方法!これまでエンジニアとして経験した現場
これまで経験した現場は主に二つです。ただフリーランス時代の現場では、その中で数々のプロジェクトに携わりました。
SESの会社に正社員として働いていた時の現場
事務局
rokurorockさん
正社員としてSESの会社に入社し、最初の派遣先で顧客情報を管理するための業務アプリの開発に携わっていました。大手の会社内の5人グループの中で開発を行いましたね。私はこの案件がエンジニアとしてはもちろん社会人として初めての仕事ではありましたが幸いグループのメンバーに恵まれ、現場の雰囲気は和気藹々とした感じで開発に取り組むことができました。
開発内容はJavaのフレームワーク(struts2)を使った業務アプリの開発でした。私の業務は業務アプリ内のファンクションの作成を先輩に指示され作成したり単体テストの作業をしたりすることでした。開発環境に関しては使わせていただけるPCのOSがwindows7だったりと、モダンな感じではなかったです。
案件ガチャと呼ばれるSES業界の現場ですがいきなり開発案件に携われ人間関係も良好、残業もほとんどなかったので恵まれていたと思います。
フリーランスとして働いている現場
事務局
rokurorockさん
SESの会社を辞めた後、3年ほどFA(ファクトリーオートメーション)のシステムを産業用ロボットやディープラーニングを使って開発する会社と取引させていただいていました。現在は自身の事業をリモートに移行中のためここでは仕事をほとんどしていない状況です。
人間関係に関してはここでもかなり恵まれ、外国人がほとんどの現場であるお陰かほとんど友達のようなメンバーと開発をしているような雰囲気で仕事に取り組むことができました。仕事外でもメンバーとご飯を食べに行ったり旅行に行ったりととても楽しい現場でした。またこれらの同僚は仲が良かっただけでなく、私と比べると遥かに優秀でとても勉強にもなりましたね。
さらに勤務時間に関してもかなり特殊でした。あまり信じてもらえないのですが、勤務時間は”自由”です。会議などの打ち合わせなどがない限りは、決められた期限内にタスクが終わるならば好きな時間にきて好きな時間に帰るといった形式です。週の出勤に関しても自由で、週に一度も出勤せずに海外旅行に数週間行くみたいなときもありました。
この現場ではこのようなプロジェクトに携わりました。
ケーブル加工自動化システム研究開発プロジェクト
常駐していた会社の実験的・研究的なシステムの開発に携わらさせて頂きました。
主な仕事は
・産業用ロボットのティーチング・システムの設計検討
・システムに使うカメラの検討
といった内容でした。
車製造部品のFAシステム開発検証プロジェクト
開発に携わり、車のウィンカーに使う部品を産業用ロボットを使って自動化するシステムの開発を行いました。主にロボットのティーチング・ラダープログラムの実装・動作の微調整を行いました。
ディープラーニングを用いた化学製品製造ラインでの異物混入検出システムの開発プロジェクト
この現場では開発を担当しました。
主な仕事は
・工場ラインでの自動撮影システムの開発(C++ )
・画像処理モジュール(主に前処理)・AIを用いた検出システムの実装(python)
・DL学習・推論自動化システムの開発(Python)
・上記二つの撮像データ受け渡しAPIの実装
このような内容です。
工場製造ラインでの自動撮影システムの開発
プロジェクトマネージャー・開発を担当しました。当案件は自分一人で担当し、設計・機器の選定・開発・テスト・納品を行いました。全ての工程を一人で担当し、成し遂げることができたので、非常に自分にとってプラスとなった案件でした。
主な仕事内容は
・Baumerカメラの撮像モジュール実装(C++)
・お客様が操作できるGUI Windowsアプリ(C++ MFC)の実装
・HDDへの逐次保存システムの実装
・IOボードを用いたお客様工場システムのPLCとの信号送受信システム実装
といったものでした。
国際ロボット展出展用ロボットシステムのプロジェクト
日本で開催された2019年度の国際ロボット展出店用のディープラーニングや産業用ロボットを使ったケーブル加工自動化システムの作成に携わらさせていただきました。
主な仕事内容は
・対象物の識別のための物体検出・識別をするための画像処理・ディープラーニングを使ったシステムの開発・検証
・産業用ロボットのティーチング・システムの設計検討
・システムに使うカメラの検討
・本番に向けての微調整
といったものです。
このようにこれまでフリーランスとして様々な案件・プロジェクトに携わらさせて頂きました。これらの経験から産業用ロボット+ディープラーニング+webなどの基本的な知識を得ることができたため、エンジニアとして希少でかつ非常に強い武器にはなってると思っています。
AIプログラミング入門【Python】フリーランスになったのは何年前か
フリーランスになったのは3年前、2018年の夏頃です。大学を卒業してから3ヶ月ほど正社員でSESの会社で業務アプリの開発をやった後に、そこから3年ほどフリーランスとして活動しています。
フリーランスになろうと思ったのは旅をしながら生きていきたかったから
事務局
rokurorockさん
そもそもエンジニアになろうと思ったのは東南アジアを放浪中にプログラマーをしながら旅をしている人に出会ったのがきっかけでした。「この人みたいにフラフラしながら生きたいな」と思ったのがエンジニアを目指した初期動機です。
また自分は元々放浪しながら生きて行くのが夢だったため、プログラミングの勉強を始めた時からフリーランスになるつもりでいました。
これまで現場で不満に思ったこと
事務局
rokurorockさん
フリーランスになる前のSESの現場とフリーランスになった現場それぞれで不満に思ったことはこんな内容です。ただ正直なところ現場にはかなり恵まれていたため、強いていうなら程度でどちらもそこまで不満に思ってはいませんでした。
SES時代の現場で不満に思ったこと
人間関係や勤務時間に関しては一切不満はありませんでしたが、給与と現場で使っている技術が将来単価の高い仕事に繋がらなさそうに感じたことが不満でした。またそのときからAIに関する仕事がやりたかったので、やりたい技術ではなかったという思いは強かったです。
また給与に関しては多くのSES会社で初任給だとそのくらいだとは思うものの、手取りで言うと15万円ほどしかなくボーナスもほとんどなかったため暮らしていくのにやっとのレベルでした。
現場で使っている技術が将来単価の高い仕事意結びつかなさそうに感じたことに関しては、使っている言語がJavaのStruts2という古めのフレームワークだったため自分の将来のビジョンにはあってなかったように感じていました。それでもJavaだけでなくHtml/CSSはもちろんSQLなども触る機会があったため、一般的な現場を考えるとかなり恵まれていたと思います。また未経験・新卒1年目にも関わらず運良く開発案件に携わらさせて頂いたのは良かったです。
フリーランスの現場で不満に思ったこと
給与・勤務形態・人間関係・やっている仕事に関しては不満はありませんでした。強いて言うならば常駐先の勤務先で研究開発をしているときに、技術的なことを上の人に理解してもらうのに上の人が開発・プログラミングに詳しくなかったため説明に工数がかなりかかったり、気を使わなければならなかったりしたことくらいです。
ただこのようなことはどの現場でもあることなので、そこまで不満とは思いませんでした。
エンジニアをしていて良かったこと困ったこと
事務局
rokurorockさん
エンジニアという仕事そのものに対して、やっていて良かったと思う事
組織に対する協調性よりも個人の技量を重要視してくれることが、エンジニアをやっていて一番良かったことです。私は昔から学校や部活などの組織に所属することが苦手(嫌い)で、よく先生や先輩と喧嘩したりいろいろありました。
エンジニアという職種の場合、自身のスキル・パーソナリティや経歴がものをいうので、個人的にはすごく向いていました。
エンジニアをしていたから得られた技術面以外のメリットなど
メンタル面の話になりますが、新しいことにどんどん挑戦できるようになりました。もともとの畑は文系の心理学部だったため、何のスキルもなく漠然と会社に入ってその会社でしか生きていけないような人になりそうと感じていました。
ただプログラミングというスキルを身に付け自身をブランド化することで自分に対して自信を持つことができ、さらに新しいことを始めたりすることに躊躇がなくなったんです。思考回路が、”万が一新しいことを初めて失敗しても、最悪プログラミングで食べていけばいいか”といった感じになっています。
技術面で困ったこと、働く環境で困ったこと
事務局
rokurorockさん
エンジニアという職業についてからほぼ毎日バグとの戦いで技術面で困る毎日でした。その中でも特に困ったのは、プログラミング外での外部的エラーの対処・ディープラーニングを工場システムに組み込む時に求められる精度でした。
プログラム外の外部エラーというのは、例えば私が作ったシステムをお客様の工場に納品をし、しばらくは上手く稼働していたにもかかわらず急に上手く動かなくなった(撮影した画像が保存されなくなった)というものです。この時プログラムには問題がなく、HDDやカメラ、ケーブルなどの工場の外部機器などを考慮してエラーの原因を辿るなど、プログラミング以上のことを求められることが多々あったのが印象に残っています。
また工場で入れるシステムは精度100%を求められることが多く、それに対して現状のディープラーニングでは精度100%を目指すのはかなり難しかったんです。100%の精度を出すための対処方法(現状のコストでどのくらい学習させるか・ディープラーニング以外の方法で検出漏れを拾う方法はないか)などを考えることには苦労しました。
働く環境に関して困ったことは、ディープラーニング案件をするときのマシンスペックです。私の現場ではGPUのスペックに対してCPUのスペックが間に合っていないような状態だったため、リソースをどのように上手く組み合わせれば、学習を最適化できるかを考えるのに苦労しました。
収入面で良かったこと、困ったこと
新卒一年目からエンジニアをやっているので他の職業と比較はできませんが、個人的には普通にエンジニア以外の職業をやっていた場合よりも収入面ではプラスになっていると思います。困ったこととしては現在は新規事業準備中のため収入に上下変動があることです。ですが収支が変動することに対して不安はありません。
職場の環境や待遇面で良かったこと、困ったこと
エンジニアとしてはというよりフリーランスだからかもしれませんが、私の回りの他の業種に就職している人よりも給与面でも休みの数でも働き方でも恵まれていると思っています。
困ったこととしては、私はあまり困ったことだとは思っていませんが、一般的には収入が安定しないこともあるという点ではないでしょうか。また上司など導いてくれる人がいないので、分からないことなどがあると少しだけ苦労したことがありました。
フリーランスになって良かったこと
事務局
rokurorockさん
フリーランスになる前となった後で変わったことというと、まずは収入・休みの数・フレキシブルさが圧倒的に変わりました。正社員の時は月15万、休みの数も年110日くらいで、当たり前のことですが出勤時間は決まっていました。
ただフリーランスになると収入は3倍以上、休みの数も1.5倍近く、出勤も自由になったのでかなり良くなったとは思っています。また何より身に付く技術もかなりモダンなものばかりになったのは将来的にもモチベーション的にも楽しさでも、すごく嬉しいことでした。
フリーランスの働き方って?職種や時間などを詳しく!フリーランスで困ったこと
事務局
rokurorockさん
働き方、収入面でフリーランスになる前と比べて困ったこと
常駐しているときは収入が安定していましたが、リモートで新しく新規に事業を始めている現在は収入が安定していないことに困っています。私の場合そこまでしわ寄せは来ていませんが、新型コロナによってかなり厳しい状況に立たされているフリーランスエンジニアの知り合いもいます。
案件のとり方、営業方法などで困ったこと
ロボット・AIの常駐の仕事は人づて、いわゆるコネで仕事をいただいていましたが、リモートでの仕事を探す時にはどのように仕事を取ればよいか手探りな状態です。
私のスキルセット(ディープラーニングや産業用ロボット)的にリモートの仕事を取りにくいんですよね。どのような仕事が可能か、他に必要なスキルを見極めてどのように身につけていくかなど、仕事獲得のためにどうアピール(営業)していくかが現在の課題になっています。
確定申告などの事務処理で困っていること
青色申告を税理士を雇わずにやっているので、初めて確定申告をする時はかなり時間がかかりました。また経費のためのレシートをとっておいたり会計アプリに日ごろの収入・支出を残しておくなど、普段から確定申告のためにしておかなければいけないことは増えたと思います。
確定申告の時期には結構事務処理が負担になるので、将来的には税理士を雇っていきたいとは思っています。
税金対策で困っていること
経費で落とせるものは経費で落とすように心がけています。日本でのフリーランスは所得税や住民税よりも国民保険がかなりの負荷になるので、できる限り(もちろんズルはしない程度)の税金対策をするようにはしています。
フリーランスになって収入がどれくらい上がったか
事務局
rokurorockさん
まずSES企業の正社員からフリーランスに社会人1年目で転身した時点では、給与は売り上げだけでみると2.5倍になりました。社会人2年目からはさらに給与が上がり、正社員時代と比較するとだいたい3倍から4.5倍になったと思います。これは売り上げなので税金などを考慮して手取りで考えると給与は3倍程度になったでしょうか。
手取りは大体月平均45万円くらいです。フリーランスとしてはまだ少ないと思いますが、社会人3、4年目としては多いと思っています。
大学以外でプログラミングを学んだ場合、学習をどのようにし、1日とれくらい学習時間していたか
事務局
rokurorockさん
最初に正社員として働いていた会社にインターンとして通いながら勉強していました。そこでは勉強しながら時給換算でお金もいただけたのでとても助かりました。インターンではHTML/CSSから入り、JavaやSQLなどの使い方を学びました。
インターン以外ではディープラーニングの学習をしている友達がいたので、一緒にpythonやディープラーニングの勉強会を開いて勉強していました。
プログラミングの勉強を始めてから正社員になるまでの9ヶ月間では、学生だったのもありインターンとそれ以外合わせて1日平均6~7時間は勉強していたと思います。
正社員・フリーランスになった後も勉強や趣味でプログラムを作ったりすることも多かったので、それも含めると1日1~3時間は仕事以外でプログラムを触るような生活を継続しています。4年間の中で、パソコンを触らない日はほとんどなかったと思います。
フリーランスで稼ぐためには何が必要だと思うか
事務局
rokurorockさん
フリーランスで稼ぐために必要なものは「技術力やスキル」「コミュニケーション能力」「運」の3つだと私は思っています。
技術力やスキルについて
まずは、「技術力やスキル」ですが、これは当たり前の話になります。基本的に育成コストを減らすことがフリーランスを雇う目的である企業にとって、能力がないフリーランスは雇うメリットはほとんどありません。まずはHTML/CSSでもSQLでもpythonでもどんな技術やスキルでも良いので、「これはできます!!」というスキルを持っていることがフリーランスとして最低限必要なものだと私は思っています。
コミュニケーション能力について
次に必要なのは「コミュニケーション能力」です。フリーランスエンジニアの半数はエージェントを通して仕事を探していると思いますが、一番良い仕事の探し方はコネやツテで仕事をいただくことです。その方が圧倒的に単価が高く、休みなどがフレキシブルでかつ安定性がある傾向があるからです。
そのためここでいうコミュニケーション能力とはクライアントと仲良くなる・仕事をいただけそうな人に好かれる能力のことで、それは技術力と同じくらい必要です。逆に言えばある程度の得意な技術力と人脈さえあれば、充分にフリーランスとして稼いで行くことができると思っています。
また積極性という意味でのコミュニケーションも大事だと思っています。ここでいう積極性とはとにかく新しい人と会う機会を増やすことです。元に私は仕事を得る得ない関係なく、できるだけ多くのエンジニア同士のもくもく会や勉強会、またはエンジニアとは関係ないそれ以外の興味のある勉強会やコミュニティに参加して積極的に友達を作るように工夫しています。
運について
また「運」も重要だと思っています。これはフリーランスに関わらずエンジニア業界のあるあるなのですが、エンジニア業界は案件ガチャと呼ばれるくらい関わっている案件によって仕事の楽しさや給料に差があり、将来の出世(フリーランスの場合単価の高い仕事ができるようになるか)も変わってきます。
なぜかというとエンジニアの出世は一般的な企業のように上司や回りの人にどれくらい認められるかということよりも、「どのような案件に携わってきたか、すなわち経歴」が重要で、それが将来の収入を左右するからです。極端な話、最初にテスト案件や保守案件にエンジニアとして入ってそれを続けてしまった場合、次のプロジェクトや別の会社に就職する時に大したスキルがないと思われ、単価の低い仕事や同じようなテスト案件などに回されるという負のスパイラルに陥ってしまいます。
このような状態にならないように積極的に務め先に開発がしたいとアピールするエンジニアもいます。ただ努力すれば解決することもあるものの、アピールしたとしても上手く開発の案件に入れないエンジニアを多くみました。フリーランスになるためにも同じで、得られたスキル・どのようなクライアントに会えるかは、事実としてかなり運の要素が強いと思っています。
フリーランスでこれから稼ごうとする人へのアドバイス
事務局
rokurorockさん
仕事を獲得するために大切なこと
まず仕事を獲得するため大切なことは、積極的にいろいろなコミュニティに参加することだと私は思っています。この時エンジニアやプログラマーのコミュニティだけでなく、それ以外のコミュニティにも参加してみてください。
たくさんのプログラマーやエンジニアが参加するhuchサロン的なコミュニティやもくもく会などに参加することは、フリーランスの仕事探しをする上で非常に有益です。技術の向上にも役立てた上でエンジニア・プログラマー同士の横の繋がりを作ることができれば、そこから仕事がもらえたり紹介してもらえたりするケースは結構あるからです。
これは私の経験に基づいています。私がフリーランスの仕事を社会人一年目でいきなり獲得することができたのは、たまたま参加したエンジニアのもくもく会のような集まりで出会った人と仲良くなり、そのまま「一緒に働かないか」と誘ってもらえたのがきっかけでした。意外な出会いがフリーランスの道を切り開いたりしてくれるものです。
事務局
rokurorockさん
またエンジニア以外のコミュニティに参加することも私は大事だと思います。例えばカメラとか投資とか自分の好きなものであればなんでも構いません。(興味がないジャンルのコミュニティに参加するのは、やめておきましょう)
そのようなコミュニティに参加すると何か自分でビジネスを始めたいという人が多いので、ホームーページの作成などの案件はすごく需要があると思います。私も一度そのような経緯で簡単なホームーページの作成の仕事を頼まれたことがありました。このようにコミュニティに参加していると意外な仕事が取れたりするので、あまり自分の実績がないけどフリーランスで仕事がしたいと思う人はおすすめです。
そのような場でのコミュニケーションの取り方・参加のスタイルですが、私は営業をしにいくのではなく友達を作りに行く、しっかりとコミュニティやその集まりを楽しむように心がけています。理由はエンジニア営業目的で行くと逆に嫌われてしまうことが多く、仕事獲得につながらないことが多いからです。
さらにこれは状況にもよるのですが、仕事を探していることを悟られすぎると単価の交渉などであまりいい条件を得られなかったりすることもあります。基本的に私は対等に交渉するために、できる限りクライアントと友達になるように心がけています。
フリーランスを続けるにはどのようなモチベーションでいるべきか
次に、フリーランスを続けるにはどのようなモチベーションでいるべきかについてですが、プログラミングの勉強やエンジニアという仕事が好きでいることが大切だと思います。お金をモチベーションにすることももちろん大事ですが、私は純粋にプログラミングを作ることやそのための勉強が苦ではない、特に意識せずエンジニアという仕事やプログラミングに自然な形で時間を費やせる、というような人がフリーランスやエンジニアをするのに向いていると思っています。
私もエンジニアを始めた動機こそ大好きな旅を続けることでした。今でも旅はもちろんしていますが、仕事や趣味でプログラミングを書いたり勉強することも旅をすることと同じ大好きになっています。純粋にプログラミングやこの仕事が好きだという人をクライアントもみてくれる、評価してくれると私は思っています。
【ウェブカツ式】未経験からフリーランスプログラマーになる方法まとめ
フリーランスのエンジニアを目指したきっかけが旅を続けるためだったというrokurorockさん。大学在学中から卒業後もその目標を達成するため、かなり真摯に自分の技術や仕事に向き合ってキャリアを積まれています。
また経験やコネがあまりないフリーランスのエンジニアにとって、コミュニティへの参加が人脈づくりや仕事獲得のきっかけになるかもしれないという、とても貴重なアドバイスもいただきました。
フリーランスのエンジニアという働き方はいろいろな生き方を実現できる可能性を秘めていますね。