karate

フリーランス中年男性のかんがえたさいきょうのスキルアップ方法

フリーランスのスキルアップ方法あれこれ

昨年、Twitter でたまたま流れてきた以下のブログ記事を読んだ。

フリーランスやめるので本当のことを全部書く – Webを楽しもう「リパレード」

それ経由で、以下のアドベントカレンダーの記事もざっと一通り読んでみた。

フリーランス Advent Calendar 2017 – Adventar

フリー歴通算10年以上のおっさんとしては、「あー分かる分かる」って感じの内容が多かった。

で、本ブログエントリーでは、上の2つのページを踏まえて

  • フリーランス向けのスキルアップ方法
  • その他、アドベントカレンダーに書かれていないような事

辺りを書こうと思う。と思ったけど、長くなったので、今回は前者に絞って書く。

いわゆる、「ぼくのかんがえたさいきょうのすきるあっぷほうほう」

企業に所属した方がスキルは身につく(但し・・・)

最初に紹介したブログ記事の方は、フリーだとスキルが身につかない、というのが会社員に戻る大きな理由の一つっぽい。書かれている事は概ね正しいと思うし同意できる。

ただし、それには条件があると思う。

各ジャンルのプロフェッショナルがいる企業に所属したほうが断然効率がいい

とその方が書いている通り、「各ジャンルのプロフェッショナルがいる企業」というのが条件。

そして、そうした企業は意外に少ない。

プロフェッショナルがいる企業

ここでは、個人的にプロフェッショナルがいると考えている企業の種類を3つ挙げる。

大手企業

Google, Amazon等の米大手IT企業や、DeNA、CyberAgent等の国内大手IT企業は当然の事ながら、一部界隈では蔑まされているSIerであっても、(割合はともかく)プロフェッショナルはいる。

社員数30人以上の成長企業

立ち上げ期は営業力とか運とかだけでも成長出来ると思うけど、ある程度の規模以上で成長している企業には必ずプロフェッショナルがいると思う。

ちなみに、30人という具体的な数字は特に根拠は無し。「ある程度の規模以上」と読み替えてもらっても良いかも。

特定技術特化型の企業

人数は少ないけど、例えばAWSの運用だったり、機械学習だったり、ソフトウェアのテストだったり、特定のフレームワークに特化していたり、そういう企業では、当然その分野のプロフェッショナルはいるはず。

プロフェッショナルが周りにいる会社員

で、会社員のうち、これらの3パターンに当てはまる企業に務めているのは、多く見積もっても半分くらいだと思う。

で、身近にそうしたプロフェッショナルがいて、その人を参考に・お手本に出来る、その人に色々聞ける、という条件に絞ると、全会社員のせいぜい3割くらいじゃないかと思う。

フリーランス向け、スキルアップ方法

逆に、フリーランスの場合はどうだろうか。フリーランスは、確かに油断するとスキルの成長が止まる。ただ、回避方法というか緩和方法というのもあると思う。

すごい人がいる会社にたまに潜り込む

1つめは、上に挙げたようなプロフェッショナルがいる会社に潜り込むという方法。特に成長企業では大体いつも人が足りないので、そうした会社に傭兵としてプロジェクトに参画する。

このパターンは、形式上、常駐になる事が多い。フリーの人は常駐仕事を嫌がる人が大半で、自分自身も好きでは無いけど、場合によっては常駐も厭わない。背に腹はかえられないし。

すごいフリーの人とつながる

当然、フリーでもプロフェッショナルは沢山いるので、そういう人とつながると色々勉強になるかも。自分の場合も、仕事で関わっている・たまに関わる人の中には、すごい出来る人が何人かいる。

そうした人とつながる方法は、技術系の勉強会が一番手っ取り早いかもしれない。あるいは人からの紹介とか。

「出来る」と言う

フリーランスをやっていると「○○(技術名)出来る?」と聞かれる事が良くある。そうした時には、明らかに無理な場合を除いて「出来ます」と言っておく。

「出来ます」と答えた後ですぐに依頼が来る訳ではないので、答えた後で、本なりwebなりで勉強したり、実際に手を動かしたりして試しておけば、8割方は何とかなる。

それでうまくいけば、そのお客様からはさらに別の技術が必要な仕事の声がかかるかもしれないし、うまくいかなくても、通常はそれ以降の発注が無くなるだけだし。(やらかし過ぎると、損害賠償だの何だのになる可能性も無きにしも非ず。)

ただ、基礎が弱い人だとこの方法は難しいかもしれない。

自分でソフト・サービスをリリースする

フリーランスのスキルアップ方法としては、「自習」が一番多いと思うけど、座学だけだとやはり身につきにくい。なので、学びたい技術を使って、自分でソフト・サービスを作ってリリースするという方法をおすすめしたい。

その場合の注意点としては、ソフト・サービスとして一通り動くものを作るという事。必ずしも見栄えを市販製品並みにする必要はないと思うけど、使いづらいながらも第三者に何らかの意味ある(と思われる)機能を提供するものを作るべきだと思う。

そうする事で、例えばwebサービスであれば、エラー処理・デプロイの仕組み・インフラなどにも触れざるを得ず、結果的に実践で身につく幅広いスキルが身につくと思う。

さらに言うと、自分自身が欲しいと思うものを作ると良いと思う。最終的に誰も使ってくれなかったとしても、少なくとも自分1人は便利になるので。

自分自身、いくつかサービスを作ってみて、色々スキルが身についたし、仕事にもつながったので、例を挙げてみる。

サービス1

これの開発で、個人的には初めて Play Framework をまともに使った。また、(他の技術で同じ事を実現可能ではあったけど)、集めたデータを HBase に入れて、それを MapReduce で処理したり、協調フィルタリングを使ったりした。それにより

  • Hadoop に抵抗が無くなって、今関わってる Spark 関連の仕事を得られた
  • 似たようなサービスをやりたいという会社に、そのデータとプログラムを売った(※)

※正確にはちょっと違うけど

サービス2

海外のサイト構築パッケージをローカライズして、サイトを立ち上げた。技術はあまり要らなかったけど、リスティング広告を出したり、メール配信したりした。

このサービスの運用の時にネット広告の仕組みを理解出来たので、広告系の仕事をうけた時に「知らない単語が出てきて困る」という事は無かった。そして、その仕事はお金が良かった。

サービス3

上の2つは、サイトも既に閉じてしまったけど、3つ目は今でも動いていて、たまに新規登録のユーザーとかもいる。

技術的には、Elasticsearch、Azure、フロントエンド周りに詳しくなった。特に、フロントエンドもある程度分かるようになったのは個人的には大きくて、それ以降web系の仕事で技術的に困る事はほとんど無くなった。

ちなみに、サービス内容としては、何度か書いた事あるけど、GitHub, Slack, Google Drive とかをまとめて検索できるようにするもの↓

https://commet.cc

まとめ

会社員の方がフリーランスよりスキルアップしやすいというのはある程度正しいと思う。ただ、会社員でも必ずしもスキルアップできる環境にいるとは限らないし、フリーランスでも必ずしもスキルアップが出来ないわけでも無いと思う。

自分が考えるフリーランスなりのスキルアップ方法は、出来る人を身近に置く、実践して覚えるの2つに大別出来ると思う。そして、いかにそうした機会を増やすかを考えると良いのかな、と。

コメントを残す

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