仮想サーファーの波乗り

仮想サーファーの日常

プログラミング・エンジニアのスキルアップ・ブログ運営などに関してよく書く雑記ブログ

➡ Udemyで8/27(木)まで割引セール開催中! 1,200円〜で普段の90%以上OFF!

エンジニア3年目に突入する僕が1年目の頃に知っておきたかったことまとめ


社会人になってからエンジニアとして働き始めた僕ですが、4月から3年目に突入してしまいます。

f:id:virtual-surfer:20190330193920p:plain

「石の上にも三年」まであと1年。


4月からエンジニア1年目として働き始める人の参考になればと。

1年目が始まる時に僕が知っておきたかったことを、徒然なるままに書いていきます( ・v・)/


社会人1年目として働き始める時に知っておきたかったことまとめ


1. 「おかしくない?」と思っても一旦やってみて意義を考えてみる

新卒1年目のあなたは、あなたが思っている以上に意味がわからない仕事を任される。

・朝早く来て、会議室を掃除する。
・会議の椅子を用意して片付ける。
・飲み会の予定を調整して店の予約をして集金をする。
...etc


「えぇ。これって俺の仕事...?こんなことやるためにエンジニアとしてこの会社で働くことを決めた訳じゃない...。」

と思うような仕事を、結構な頻度で任される。(もちろん種類や頻度は会社によるでしょうが)


これらの仕事を新卒の自分がやる必然性は全くなく、仕事は仕事の清掃員さんに任せればいいし、会議の椅子は会議に出席する人が用意して片付ければいいし、飲み会の予定調整とかは行きたい人がやればいいと思ってしまう。実際そうだと思う。


ですが、これらの仕事をやってみる中で意外な意義があることに気づくことがある。

会議の椅子を片付ける過程で経営者と話す機会が持てたり、飲み会の予定調整・集金をする過程でチームのみんなと会話をして自分の名前を覚えてもらえる機会になるなど。

この機会に雑談を軽くしておいて、相手はどのようなことが得意で、何に困った時に質問するべきかを考えておくことができれば、設計や実装面で困った時に質問することができる。


「一見意味がないと思える仕事も、その仕事から何か意味のあることを生み出せるかどうか考えて行動する」という能力は、これから仕事を進める中でどんな時にも活用できる能力。



2. 上司もわりと間違える。自分で検証してみること大事。

f:id:virtual-surfer:20190330194154p:plain

上で指摘したこととは逆のことですが、これも真実。

会社に入ってすぐの頃は、右も左もわからない状態ではチームの先輩や上司に相談して仕事を進めれば先輩や上司が答えを教えてくれると思ってしまいがち。また、彼らは間違えないと思ってしまいがち。


どんな会社でも起こりがちですが、よく経緯はわからないけど慣習的に続けられていることも多く、上司や先輩もなんでその仕事をしているのか知らないということもあります。

・その仕事にはどのような効果があるのか
・ユーザーはどの機能をよく使っているのか
・どのようなユーザーがアクセス頻度が高いのか
・どのようなユーザーが売上に貢献しやすいのか ...etc

などなど、実際に数字で検証してみないと誰も事実を知らないことは多い。


BIやSQL実行環境が用意されている環境なのであれば、気になったことは積極的にデータを実際に見てみて検証すること。

これを習慣化するだけで先輩や上司も知らないデータを頭に入れることができ、設計や実装時の選択の根拠として提示しやすくなって仕事を進めやすくなる。



3. 困ったこと・やばいと思ったことはすぐに報連相

f:id:virtual-surfer:20190330194417p:plain

一番難しいけど、これが新卒が仕事を進める上で一番大事と言っても過言ではない。

・「これバグっぽい?でも違うかも...。ちゃんとデータ検証してから報告しよう...(そこからコードを読むこと30分してバグだと発覚して報告)」
・「営業さんからデータ不整合の問い合わせ来た。問題あるのか調査しよう...(調査中にずっと画面表示されてない状態が続いていたことが発覚)」

こういう「あれ?これなんかおかしいかも?」と思ったタイミングですぐに何かしら声をあげるべき。

どういう時に声をあげるべきか迷いがちだが、重大な問題・どうでもいい事象の判断ができないなら、すぐに社内コミュニケーションツールとかで声をあげるべき。


自分だけが事象を知っている状態で時間をかけて調査をするよりも、これまでの問題事例を死ぬほど知っている先輩社員の方が問題の切り分けにかかる時間は短い。

自分が調査している間にも重大な問題が起きている可能性を考えると、まずは問題を周知して緊急度の優先度を判断してもらうべき。

先輩でも緊急度が判断できない場合は協力して調査するべきだし、緊急度が低いから調査しなくてもいいとなるかもしれない。



4. 10分考えてわからないことは仮説を持って先輩に相談

f:id:virtual-surfer:20190330194547p:plain

上での指摘とも関連するけど、これも大事。

極論するとエンジニアの仕事には、以下の2種類がある。

・ある程度時間をかけて考えれば独力で解決できる仕事
・時間をかけても独力では解決できない仕事


このうち、上の仕事は時間をかけて考えれば独力で解決できるので、業務時間が許す限り自分で考えて解決すればいい。

問題は後者の「時間をかけても独力では解決できない仕事」の扱い。


社内システムの独自仕様や、一度経験していたら一瞬で解決できるが初めて取り組む時には相当時間がかかる問題がこれにあたる。

これらの仕事に取り組む時に、すぐに先輩に頼っていたのでは仕事を進める能力がつかないから辛い。

かといって、自分で1時間、2時間と時間をかけて考えていても答えは出ない。


「10分考えて分からないことは、1日かけても分からない可能性が高い。そして、自分が1日かけても分からないことも経験者なら10秒で解決できる。」

ということはめちゃくちゃ多い。


10分考えても分からないことは、何をしたいのか・何を試したのか・自分の困っているところはどこかをまとめて分かりそうな人に即座に相談する。

「〇〇ということが目的で、××か△△をすればできそうだなと思って試したんですけどダメで、□□に困っているのですが、Aさんならどうします?」


上のような相談をいかにフットワーク軽くできるか。

「手が止まった時に、目的と試したこと仮説をまとめて相談し、解決する」

これの速さと回数がエンジニアの成長角度にバチっと相関する。



5. 仕事中ではなく仕事以外の時間で仕事の成果は決まる

f:id:virtual-surfer:20190330200501p:plain

これは高校の時の部活とか、習い事で考えてもそうですよね。

部活に行って練習を真面目にやってるだけだと、「次の試合でいかに勝つか?」とか、周りのメンバーよりもいかに頑張るかとか目標の目線が狭く短くなりがち。


部活の練習は目に見えて必要になっていることをやる場所で、そこを頑張ってるだけだと周りの人と変わらない。

・自分の得意なプレイスタイルってなんだっけ?
・自分の体力をもっと伸ばすにはどうすればいいんだっけ?
・他のチームの優秀な選手はどんな生活送ってるんだっけ?
・食事ってどんな栄養素をどれだけ摂れば体づくりに最適なのかな?

とか、自分が数年後に活躍するためにやるべきことは無限にあるし、部活の練習だけでは自分にとって優先的な課題に取り組むことはできない。

だから、部活の時間以外でどれだけ頭を使って生活全般を見直すことができるかが試合で勝つためには大事。


これと同じで、普段の仕事で求められることって、目の前の問題になっていること・最優先事項であることがほとんど。

・目の前の売り上げを作らないと、事業部の目標が未達になって会社全体の成長ができない。
・プッシュ通知を大量に送ってでも、目前のアクセス数を増やさないと目標とする数値に届かない。
・今週必ずリリースする必要のある機能を実装するために、まずは動くように実装する。

と仕事だけをしていると、目の前で必要になっている課題に取り組むだけになってしまう。


仕事以外の時間で、仕事に直結しない問題にいかに優先順位作って取り組むか。

・将来的にアクセス数が10倍、データ量が3倍になっても耐えられる実装はどうすればよかった?
・普段の仕事で時間がかかっている作業って何?ツールとか工夫でその時間って短縮できない?
・仕事中の集中力ってもっとあげられない?体力を維持するためには何が必要?


会社でエンジニアとして尊敬できる先輩たちは、仕事以外の時間での過ごし方・考え方、時間の使い方が他の社員と明らかに異質。

自分自身まだまだできてないから、意識して実践したい。



6. 固定費を下げて、学習費に回す

f:id:virtual-surfer:20190330194646p:plain

これは仕事に直結することではないですが、とってもとっても大事なこと。

大学生まではお金のことをそんなに考えなくても親の財布というセーフティネットの存在で生きていられた人も、社会人になると考えなくてはならないお金のこと。


「固定費を最大限下げ、学習費用に回すこと」

がめちゃくちゃ大事。


社会人1年目から、家賃・食費・携帯/通信費を最低限まで下げて、本や学習のためのサービス課金などにはなるべく制限をかけないようにしました。

これは圧倒的によかったなと。


社会人になると手元に残るお金が結構多く、家賃や食費や通信費のことをあまり考えなくても生活していけるけど、手元に残るお金が限定されると学習費を削ってしまいがち。

・家賃6万円(オフィスまで電車で片道20分の距離)
・食費2.5万円(昼はおむすび・夜は自炊を基本とする)
・通信費1万円以内(ポータブルWifiと携帯電話)

と、極限まで固定費を下げにかかりましたが、特に生活の不便さも変わることなく手元に残るお金を増やすことができました。

その結果、技術書や気になるWebサービスへの課金、サーバー代・ドメイン代を出し渋ることがなくなりました。


エンジニアは学習した分だけ自分の報酬に返ってくる分かりやすい職業だし、学習費に制限をかけるのはもったいない。


固定費の下げ方は、この辺の記事に書きました。

www.virtual-surfer.com

www.virtual-surfer.com


まあここまでやらなくとも、「固定費を下げて学習費に回そう!」という発想と姿勢はめっちゃ大事。



まとめ

以上、「4月からエンジニア3年目に突入する僕が1年目の頃に知っておきたかったことまとめ」でした。

書いてみて振り返ると、エンジニア職に関わらず仕事を進める上で基本的なことばっかりになってしまった。


ここまで書いてきてなんだけど、ぶっちゃけこんな記事読まなくていい

イチローの引退会見の言葉を嚙みしめよう。


www.youtube.com


彼の言葉を胸に刻んだ方が、間違いなくエンジニアとして強くなれる( ・v・)b


では!