気づいたらプログラマ6年目に突入していた私からのささやかなアドバイスです。
これの執筆日は2016/5/8、GW最終日です。GW明けたら実戦投入される方もいるかと思うので、現場の雰囲気を知っておいていただけたら嬉しいです。
どうか素晴らしいプログラマ人生を歩むため、最初の一歩で挫折ことを願って。
あくまで私個人の見解なのですべての職場で当てはまるわけではないので悪しからず。打消し線の部分は特に。
OJTという名の実戦投入
OJTとカッコいい名前を付けていますが「T」なんてありません。普通に「J」のみ、仕事をします。コードを読んで、いろいろ調べて、先輩に聞いて、実際に動かして段々わかってくるものです。分からないことがあったらひたすら聞いてメモを取りましょう。新人のうちだけは渋々かもしれませんが教えてくれるはずです。これが「T」だと割り切りましょう。
手取足取り教えてもらえるなんて甘い考えは捨てるべき
ドキュメントは無い
これは環境によって全く異なりますが、ドキュメントなんて存在しないと思っておいた方が幸せかと思います。無くて当然、あったらラッキーくらいに思っておいた方がダメージが少ないです。「コードに書いてあることが仕様だ!!」なんて言われたら、コードリーディングです。
もし時間があるなら、あなたが調べたこと、理解したことはドキュメントに起こしておくと後々役立つ日がくると思います。ドキュメントのアップデートどうすんだとかはひとまず置いといて。
ドキュメントを書く時間なんて無いけどね
なんかおかしくないか?と思ったら問題提起
これは最近ようやく理解したのですが、色々と悪しき習慣が残っていたりします(なんか人手でやってたり、属人化など)。これは染まってしまうと「こんなもんだよな」ってなって改善意識がなくなってきます。
新鮮な目線で見た時の意見は非常に貴重です。「これ人間がやる仕事?」とか「これいつもXXさんがやってるけど休んだら他に出来る人いるの?」とか。臆せず言ってください。一蹴されるかもしれませんが、「はっ」となる人もいるはずです。
「これ人間がやる仕事?」は個人的に一番刺さった言葉です。プログラマの仕事は動くものを作ることであって、それ以外は「無駄」です(バッサリ)。無駄をなくすためにプログラムを書くことあり得ますが、それは無駄な作業を何回やったら無駄をなくすためのプログラムを書く時間のもとが取れるかで考えましょう。
これは染まってしまうと本当にわからない。あと自分に属人化しそうなタスクは絶対に作らない方が精神衛生上良いです。
他の会社の人と交流
プログラマは会社に引きこもりがちです。そうすると「朱に交われば赤くなる」、そして「井の中の蛙大海を知らず」になってしまいます。そうなる前に、社外の勉強会など参加してみて色々な会社の人と話して、色々な世界を知っておくことをおすすめします。そうすると、上に繋がっても来ますが、自分の環境のいいところ、悪いところが見えてきます。そして、会社やチームであればフィードバックしましょう。
これもまた、時間が無いけどね。会社やチームにフィードバックするというのは先輩上司を説得し時間を確保するための手段です。
最後に
自分の作っているものへの愛着が無いとひたすら辛いと思います。目の前のfunctionを作ることだけに目を向けず、最終的に使う人たちの喜ぶ顔が思い浮かべましょう。それが、自分のやりがいとうまくリンクすれば、待ち受けているどんなに苦しいことも乗り越えてプログラマとしてやっていけるはずです。
私はプログラミングが大好きです。自分の書いた文字列が、情報を処理し、結果を描画する、動いた時の喜びは最高です。モノづくりとしては比較的軽い(頭は使いますけど)のに、壮大なモノが完成するのは他に無いんじゃないかと思っています。~~(井の中の蛙だったら恥ずかしい。。。)~~そういう意味で今プログラマをやれていることは幸せです。
まだまだ若造の私が偉そうにいうのもおこがましいのですが、良いプログラマ人生を歩んでください。
また、「新人プログラマ応援」というタグを見かけたのでつい書いてしまいました。Qiitaへの投稿趣旨と異なる、こんなの自分のブログでやれ等ありましたらご指摘ください。真摯に受け止めます。
2016/5/8 naoyuki70snow