メメメモモ

プログラミング備忘録、リモートワーク生活、筋トレ、etc

仕事で必要な技術力を高めるための活動

概要

仕事で必要になってくる技術力は、本を読んだりするだけでは高まらないものです。
どのようなことをすれば 実践的な技術力を高めていけるのかを考えてみました。

仕事で必要な技術力とは

仕事で必要な技術力とは以下のようなものです。

  1. 作るべきモノ(ゴール)から逆算する力
  2. プログラムを読んで理解する力

作るものから逆算する力

仕事では「こういうシステムを作ってください」「こういう機能を追加してください」といった形で依頼されます。
行き当たりばったりでプログラムをすぐに書いてしまうと、うまくいきません。
プログラムを書く前に、依頼された「システム」や「機能」から、どのようなプログラムを書く必要があるかを整理する必要があります。
つまり、作るもの(ゴール)から逆算するということです。

システム単位で考えるなら、要件定義や機能一覧を作るところから始まり、
機能単位で考えるなら、クラス設計やDB設計をするところから始まります。

つまり、作るものを決めて、実装する練習をすれば良さそうですね。
具体的には、以下のような活動をすると良いかなと考えました。

  1. 自分が作りたいものを作る
  2. 既存のサービスやソフトウェアのクローンを作る

1.がある場合は問題ないですね。

2.は作るべきものがはっきりしているので取り組みやすいですね。
自分が作りたいものが特にない場合はこの方法をとると良いかも。
既存のものを触ってみて、どのような動きをするのかを確認して、同じ動きになるように実装するといった感じのことをやります。

プログラムを読んで理解する力

仕事では、すでにあるシステムの改修をすることが多いです。
改修をするためには、すでにあるプログラムがどのような仕組みになっているかを理解する必要があります。
この時に必要になってくるのが「コードを読んで理解する力」です。

すでにあるプログラムをきちんと理解しないと、思わぬバグを入れ込んでしまう可能性があります。
また読むためにはちょっとしたコツや慣れが必要だったりします。

この力を高めるためには、オープンソース活動をするというのが良いと思います。

普段自分が使っているライブラリやソフトウェアがオープンソースであるなら、そのプログラムを読んでみるのはどうでしょう。
普段自分が使っている機能やメソッドなどから調べるのが良いです。
すでに動作が分かっている状態なので、理解しやすいんじゃないかと思います。
ちょっとしたバグを発見できたら、プルリクを送ってみると良さそうです。

その他に必要な能力

仕事では技術力の他に以下のような能力も必要になりますが、今回は触れていません。