なぜスクレイピングツールか?
・スキルに需要がある
・総合的なスキルが身に付く
・個人開発に応用できる
スキルに需要がある
執筆時点(2021年3月28日)時点で、ランサーズに1643件の発注があります。
今後これは増えてくる傾向にあると予想できます。
理由は企業が競合の情報収集をスクレイピングで行っているということです。
また、ビッグデータによるデータ分析も今後は伸びて行く分野と見ていますが、その元データは何処から取得すると思いますか?
自社の購買データだけで無く、他社の価格戦略やプロモーション戦略を分析して、自社の戦略に反映していくのは容易に予測できることです。
そのためにスクレイピングでデータ収集するのは当たり前になってきます。
そういった視点から、需要のあるスキルと言えます。
あとは自分が興味を持てるかがポートフォリオ作成のモチベーションになってきます。
ポートフォリオは、「自分が興味を持ち、技術的にもビジネス的にも需要があるもの」を選ぶことが大事です。
総合的なスキルが身に付く
DBスキル
スクレイピングはデータを取得してくるだけでなく、データの受け皿となるデータベースへの格納も必要になります。
定形データであればRDBMSでいいですし、不定形データであればNoSQLを採用したりと、どのみちデータベースを使用します。
そのため、データベースの設計についてのスキルが必要になってきます。
コーディングスキル
次にそのデータを活用するためのWebアプリケーションを開発することで、コーディングスキルが身に付きます。
インフラ構築
ポートフォリオとして公開する前提でいうと、クラウド環境を使うことをおすすめします。
これは構築の容易性とスキルのキャッチアップのためです。
そもそも今ではAWS、GCP、Azureといったクラウド環境で運用するのが当たり前になってきているので、クラウド以外にデプロイする選択肢はないとは思います。
ネットワークスキル
また、クラウド環境内ではネットワークの設定も必要なるので、それらの知識も身に付きます。
DMZを意識した構成にすることで、セキュリティへの考慮も身に付きます。
ポートフォリオを作ってクラウドに公開するだけで、これだけの総合力が身につことになります。
個人開発に応用できる
正直ここまで自走できるのであれば、個人開発としてサービスを運用することも十分可能です。
収益を上げられるかどうかはマーケティングや需給バランスなどのビジネス要素が関わってくるので別問題とはなりますが、ビジネス視点を養うという点で他のエンジニアとの差別可になりえます。
私は自分と妻が使用するものを作っているだけですが、「どういう機能があったら使いやすいか?」を考えることで、ユーザ視点に立つ練習になっています。
小人数で使用するものであったとしても、自ら進んで使い易さを追及したり提案したりすることで、言われた通りにコーディングするだけのプログラマより,遥かにアドバンデージがあります。
そういったことも含めて、個人開発に取り組むとよりユーザ視点に立った開発・提案ができるようになります。
これは、面談において大きなPRポイントにもなることに加えて、実業務においてもユーザからの好評価に繋がります。
まとめ
- ポートフォリオは自分の興味と技術的な需要とビジネス的な需要を考慮すること。
それが、意欲と価値増大になる。 - ポートフォリオをクラウドで公開することは、総合的なスキルアップになる。
- クラウドの公開までを自走できれば、個人開発もできるレベルになっている。
個人開発はビジネス視点、ユーザ視点を持つきっかけにもなり、他のプログラマとの差別化につながる。