私はプログラマーとして仕事を始めて15年近くになる。
今まで、いろいろなプログラマやシステムの管理者、
システムの利用者などと一緒に仕事をしてきた。
これまでの経験を振り返って、僭越ながら
これからプログラマとして仕事を始める方に
何か自分なりに大事だと思えることを
アドバイスできないだろうかと考えてみたら
4点思いついた。
どこまで参考になるか分からないけど、
以下に紹介させて頂こうと思う。
■1:自分が優秀であることをアピールし過ぎない
→プログラマーの場合、仕事ができるかどうかは
成果物の効果・品質・作業時間などで明白なので
自分の優秀さをアピールすることは
他の仕事に比べてメリットが少ない気がする。
※それくらい良い仕事は効果も大きい
また、もしユーザの要望に添えないこと、
調査しても分からない現象などがあった場合、
いくら丁寧に理由を説明しても、理解してもらえないことが
当たり前なので、
最初から自分は優秀だとアピールしていると
そういった時、余計に不信感を煽ってしまう気もする。
さらにもう一点、プログラマは、自分が高度なことをしていて
特別だと考えている人も多い気がするけど、
仕事や会社全体から見れば、代わりはいくらでもいるし
あくまでも業務があってのシステムで、裏方、下請けに
過ぎないことを理解するべきとも思う。
■2:スケジュール・タスク管理を厳密に
→これは他の業界でも同じだと思うけど、
開発にしても保守にしても、ひとつのプロジェクト・案件が
ひとりで完結することはほとんどない。
次の工程で作業を予定している人がいることも多いので
自分の作業が遅れそうな兆しが少しでも発生したら
すぐに管理者に報告する必要がある。
スケジュール同様、頼まれている作業を忘れていたとか
作業の優先度を間違えるなど、タスク管理もとても重要。
ちなみに、現場では技術的なことが分からないために
トラブルになることは実はかなり少ない。
トラブルの8割以上はスケジュール(納期)であるということを
常に意識して作業を進める必要があると思う。
■3:システムに”何となく”はないことを理解する
→現場にいるとたまに聞く言葉がある。
「最近システムの調子悪いね・・前は動いたんだけど・・」
システムというか、そもそもコンピュータ全般において、
何となく調子が悪いや、同じ状況・同じ操作で別の結果が出るなど、
あいまいに発生する現象はない。
温度や磁気など、確認できなかったり再現できない原因は
あるかもしれないけど、現象には必ず明確な理由が存在する。
全てが0か1かで成り立っている仕組みなので、
普通に考えれば当然なのだけど..
このことを意識していないと、障害時の原因調査、
問題の切り分けなど、どうしてもあいまいな
感覚で判断してしまい、
分からなくても仕方ない的な甘い発想で
仕事をしてしまうことにつながる気がする。
■4:勉強を続けること
→社会人になったばかりのころに
尊敬していた先輩にこう言われた
「残念だけど、この業界で働くひとは、
ずっと勉強し続けないといけないから・・
そういう仕事だから・・」
当時はしっくり来なかった部分もあったけど
今は100%同意できる。
ハードウェア、プログラミング、ネットワーク、セキュリティ、
データベース・・
それぞれ概要だけ理解するだけでも、かなりの知識量が必要で、
一部の知識だけでは解決できない現象も多い。
また、AIやブロックチェーン、クラウドサービスなど、
常に新しい技術が導入され、全く知らないで済まされないことも多い。
残念ながら何も学ばないプログラマは使えないエンジニアとして
仕事を失っていくのも、他の業界より早いのかもしれないとも思う。
以上が思いついた4点。
多少でも難しい物事は、どんなことでも同じだと思うけど、
ある一定のレベルに達するまでは、相当ストレスがかかるし、苦しい。
うまく行かないことがあっても、いつかそのレベルにたどり着けると信じて、
体調に無理がない範囲で長く続けることを最優先に考えるのが
よいのではないかと思う。
私はキャリアの浅いころ、心を病んでしまうことがあったり
かなり辛い時期もあったのだけど、
自分のアイデアが形になり、効果が見える仕事というのは
楽しくやりがいのある仕事だと、今になってようやく
心から思えるようになりました。
自分が社会人になったばかりのころを思うと、
すぐに実感はできないかもしれないけど、
この記事が少しでもこれからプログラマを志す方の
参考になれば幸いに思います。