プログラマの心構え
ちょっと厳しいことを書くと、多分日本はIT技術者として就職するのが
かなり容易な国だと思います。
- 他業種からの転職可能
- スクールに一定期間通ったら就職を斡旋
- 文系学部卒でプログラミング未経験でも大丈夫
こんな広告やWeb記事はよく見かけます。
残念ながら、プログラマはそんなに簡単な業種ではないと思います。
もしプログラマとして長く働いていくつもりであれば、
最初は未経験でもなんとかなりますが、常にスキルアップを考えるべきです。
座学と実践
職場に座学なんて大して役に立たない、業務でプログラミングを実践していけば
自然とスキルなんて上がる、という先輩がいるかもしれません。
その人の言うことは信じないでください。
残念ですが、そんな甘いものではないです。
スキルを上げるためには、自分で作ったものを自分で評価し、改善していくことが必要です。
先輩からのレビューによる指摘はもちろん重要ですが、それよりも重要なのは自分で何が良くないのかを考え、改善することです。
問題なのは、自分で作ったものを評価するときに、物差しが無いことです。
自分で作り終えたものを見ても、自分が進歩していなければ良し悪しは判断できません。
仮にもっと良い書き方があるかもしれないと感じたとしても、具体的にどうすれば良いのか分かりません。
そのために必要なのが信頼できる書籍や技術記事による座学です。
物差し作りとスキルアップのループ
以下のループを回し続けることで、自分の物差しを改善しながら、
スキルアップを図っていくことが重要です。
- アウトプット:プログラムを作る
- 自己評価:完成品をチェックする(違和感を探す)
- インプット:書籍・技術記事で「改善のヒント」を学ぶ(座学)
- 内省:改めて完成品を見直し、次回の改善ポイントを言語化する
- 実践:次の業務で意識して改善を取り入れる
- (1へ戻る)
他者からの指摘で今修正すべき点は教えてもらえます。
ですが、本当に次の業務に生かすためには、
なぜそうするべきなのかを理解し、実践で試行錯誤することで、
自分の物差しを磨いていくことが必要です。
先人たちが作ってくれた物差し
ソフトウェア開発は歴史の浅い業界ですが、それでも色々な物差しが生まれ、進化と淘汰を繰り返しています。
適当に列挙するだけでもいくらでもあります。
- アルゴリズム
- オブジェクト指向
- デザインパターン
- SOLID原則
- テスタビリティ
勉強するべきものはいくらでもあり、日々変化しながら増えていきます。
これらを学び続けていく必要があります。
あなたの職場を見渡してみよう
あなたの職場にこのループを回しているような先輩はいますか?
もしいなければ、きっと数年もすれば、あなたはその職場で一目置かれる位のスキルを得られると思います。
(残念ながらいない職場の方が多いのではないかと思います)
その時、その職場で得られるものが減ってきたと思ったら次のステップを考えるべき時です。
選択肢は、自分を高められる場所に移動するか、今いる場所を変えていくかです。
数年程度のキャリアであれば、場所を移動することをお勧めします。
今いる場所を変えるのは想像以上にエネルギーが必要だからです。
もし自分を高められる場所を簡単に見つけられない位スキルアップしたと思える日が来たら、
今いる場所を変えていくことにエネルギーを注ぐのが良いと思います。