なんで35歳未経験でプログラマになったのかという話は前に書いたのでそれを見ていただきたいです。
この記事を書いたのは2020年1月末ごろの話だけど、実はプログラマの仕事は2019年6月半ばくらいから始めていたわけです。
仕事を始めた時点でのスキルセットを軽く書いておきます。
- 工学(情報系)学士
- UNIXシステムの管理補佐のバイト経験あり
- 基本的なファイル操作コマンドやパーミッションの概念などが身についている
- MovableTypeをカスタマイズしてCMSとして運用できるようにした経験あり
- シェルスクリプトなどを用いたテキストデータクレンジング経験あり(請負業)
- ITパスポート持ち
- 大体の言語にキャッチアップできる基礎はあると思っていた
- RubyやJavascript、VBAなどで小さなツールを作って遊んでいた
- Gitはよくわかってない
- テストもほとんど書いたことがない
- 継続したサービスの運用経験は無し
- チーム開発経験無し
こんな状況で仕事を探していたところ、GMOペパボさんにお声がけいただき、アルバイトのプログラマとして働き始めることになりました。なぜアルバイトかというと、まだ子どもが小さく、私自身も持病があり(障害者手帳持ちです)主治医の意見もあって、いきなり長時間働くのではなく時短の6時間、週4日で働くという話になったからです。今もこのペースで働いています。
で、働き始めて1年経ってどうなのかということを振り返ろうと思ってこの記事を書いています。
働き始める前に不安だったことは主に2点。チーム開発が務まるのかということと体調面で勤め続けられるかということです。
まずは非常に個人的な都合である体調面について話そうと思います。
大学生の頃に発症した統合失調症のせいで、長時間、長期間の労働ができない人生を送ってきました。プログラマの仕事でもそうなったら嫌だなと心から思っていました。
実際に仕事を始めてみて、向いている仕事だとは思いましたが、それでも月2回前後のペースで体調を崩し、お休みをもらうことがありました。しかし、この問題はウルトラCで解決します。コロナウィルスが引き金となった在宅勤務開始によってです。
体調を崩す一番の原因がどうやら通勤で体力を使うことだったようで、在宅勤務が始まってからはほぼ体調を崩さずにやってこれています。弊社はこれからも在宅勤務メインでやっていくという話なので、個人的に非常にありがたいです。
そしてチーム開発が務まるのかという話ですが、こちらもなんとかやっていけています。
そもそもチーム開発において何が一番不安だったのかというと、他の人の書いたソースコードを読むことができるのか?という点です。自分が書いたソースコードすら時間が経てば読めなくなってしまうのに(読めない自分のコード実例)、他の人が書いたソースコードを読むことなどできるのだろうか?と心配していました。
けれども、ソースコードは全部理解しなくても重要なところを読み込めればそれでいいということに割と早い段階で気づくことができ、それからはソースコードを読むことへの不安は消えました。
これは、読みやすいコードというものを書き、保守してきてくださった先輩方があってのもので、非常に学びがありました。そして時間が経ったら読めなくなってしまった自分のコードがいかに未熟だったのかということを痛感しました。
また、コードレビューという文化もチーム開発ならではのものです。自分が書いたコードに対し、先輩方からご意見をいただける貴重な機会です。このコードレビューという機会に接してようやくGitというかGitHubの素晴らしさがわかりました。
まだまだ一回ではLGTMをいただけませんが、自分だけの主観的なコードではなく、他の方から見たわかりやすさを意識するようになったという点には、一人だけで趣味のコードを書いていただけではなかなかたどり着けなかったでしょう。
これだけでもチーム開発に関われて良かったと本当に思います。
また、趣味から一歩先にといった点ではテストを書くというのも大きかったです。私の今の業務は1からコードを書くことは珍しく、他の人のコードを改修する仕事がメインです。なので、改修がうまくいったかどうかはテストが通るかどうかに頼るところが多いので、既に書かれたテストは財産だと感じています。自分でも、この財産を少しづつ増やしていければと思っています。
私の趣味のコードは一度書いたら書き捨てになるものがほとんどだったので、やはり仕事として現在運用されているシステムのコードに付き合わなければ、テストの大切さを実感することはなかったでしょう。
そしてチーム開発といえばやはり重要なのはコミュニケーションでしょう。特に在宅勤務になってからは、ほぼテキストベースのコミュニケーションになっています。
これは対面ベースのコミュニケーションと比べ、ソリッドだという印象があります。ソリッドというのは、相手の意見も分かりやすいし、自分の意見もちゃんと言いたいことを形にする必要があり、結果(たぶん)分かりやすくなっているということです。
一方で対面ベースのコミュニケーションは、まだ意見が固まっていない段階で相談するのに向いているという点が挙げられると思います。会議などはその際たるものでしょう。なので、在宅勤務ではこの「まだ固まっていない意見や方向性」をどうしていくのかという課題があると思うのですが、そこでボイスチャットなどが果たす役割が大きいと感じています。
そしてこれは弊社の特徴なのかも知れませんが、テキストチャットが非常に和やかです。おかげさまでちょっと被害妄想気味なところがある私でも皆さんとワイワイやっていけてるなぁと思います。これは直接技術には関係しないと思っていても、この空気のおかげでやっていけてる面は多分にあり、やはりチーム開発、というよりみんな(開発職だけではなく、他の様々な職位の皆さんという意味)で仕事をやっていくというのはいいなぁと感じることしきりです。
というわけで仕事を始めて1年、思い返せば良かったことが非常に多く、実りある1年でした。
これからもこの会社で良い関係、環境を築きながら仕事ができればいいな、と心から思います。