もうすぐエンジニア2年生になる人から新卒エンジニアへ贈るあれこれ

# 前書き
Qiitaなので本当は技術的なことを書いたほうがいいと思うけれど、技術的なこと以外もいろいろ書いていこうと思う。いわゆるポエムである。

# チームで開発するということについて
自分は就職するまで一人でコード書いてわいわいすることのほうが多かったので、チームで開発するということがよくわからなかった。
就職して実際に先輩たちとコードを書いたり、デザイナーさんやディレクターさんともろもろお話するようになって、気をつけておけばよかったなーと思うことをいくつか書いておく。

* メモを取ろう
 * 自分の頭の記憶には限界がある。その時点で覚えてても、席に戻ったら忘れてると思う
 * やる事をメモしておいて、報告する前にそのメモを見直すと、やり忘れで恥ずかしい思いをしなくて良くなる。
*  タスク管理は一箇所に集約しよう
 * わたしの会社では依頼がRedmineかGitHubのIssueで飛んでくる(プロジェクトによる)。正直覚えきれないので、飛んできたのを確認したらすぐさまToDo管理ツールにURLと簡単なサマリーを登録している。
 * 一箇所に集約することで、どれくらいタスクが詰まってるか可視化できるから良い。
* 質問することは恥ずかしいことじゃない。本当に恥ずかしいのは質問せずに間違うこと。
 * もちろん調べたり手を動かしたりしてやってみることは大事。でもどうしてもわからないなら先輩や上司を頼ろう。自分は「10分調べてわからなかったら質問することを検討する」というふうに決めている。
 * 質問するときは「なにが知りたいのか」「そのために何をやったのか」を明確にしよう。
   * 質問しなくとも、問題を解決しようとしたときに得られた情報ややったことは簡単にまとめておくと、あとで役に立つことがある。
   * 直接声かけるのはちょっと……なときはWIPなプルリクをなげたり、チャットツールで「今すぐじゃなくていいんですけど……」みたいな感じで質問しよう。
     * それでも無理なときは、定例ミーティングみたいな、関係者がたくさんいる場所で「質問させろ」って言えばいい。誰か「後でおいで」って言ってくれるから。（真っ当なメンターさんならここまでせずとも助け舟を出してくれるとは思うけど）
* みんなにわかるように話をしよう。
 * 相手が知りたいことをきちんと聞き出そう。お互いに時間がもったいないからね。
 * うまく話せないときは、簡単に話すことを書き出しておこう。それを見ながら話せば間違えない。
* あとで見てわかるコードやコメントを書こう。
 * とりあえずリーダブルコード読もう。
 * そのコードを読むのは半年後の自分かもしれないし、隣に座っている上司かもしれないから、ちょっとだけ気を使ってあげよう。
* コードを書くことを楽しもう
 * 正直デスマったり理不尽な要求を突きつけられたり、いろいろ面倒くさい仕事だと思う。でも、コードを書くことは楽しいって思えれば、意外と乗り切れたりする。
 * ぶっちゃけIT技術を学んだり使ったりすることが楽しいと思えないなら、エンジニアという仕事はめちゃくちゃコスパ悪いと思う。
     * コーディングが楽しくなきゃこんなお仕事すぐやめてるわよ、と何度思ったことやら。。。
* 無理なときは無理といおう
 * でもなぜ無理なのか、きちんと理由を説明しよう。
 * もしかしたら隣に座っている先輩が助け舟を出してくれるかもしれない。SOSサインはお早めに。
* エンジニアは最後の砦。ないわーと思う仕様に関しては突っ込もう。
 * 1年目だと難しいと思うし実際難しかった。
 * でも、言わなきゃ始まらない。先輩を味方につけると動きやすいかもしれない。
 * エンジニアはそのサービスなりシステムなりの一番大事なところを握ってる。だからこそ言える事もあるはず。
* 先輩エンジニアと仲良くなろう
 * ランチに行ったり雑談したり。
 * 悩んだら自分の中でもやもやするんじゃなくて誰かに話してみよう。精神を病むといいことはあまりない(※経験談)

# 勉強について
## お仕事でつかう言語やフレームワークについて
ひたすらコードを読んで書く。以上。
でもそれだけじゃつまらないっすね。
### コードを読むこと
同じ言語を使って書かれているOSSのプロジェクトや、自分のプロジェクトのソースコードを読む。プロジェクトの技術的に偉い人に質問したっていい。 ~~暇そうにしてたら。~~ （※タイミングは見計らったほうがいいけど、忙しそうだから質問しないはもったいない。質問してめっちゃ喜ばれるのは今のうちだよ！ｗ 1年もしたら後輩とかインターン生に教えなきゃいけなくなる事もあるんだからね！）
Web屋さんだからかもしれないけれど、ちょっとしたSQLを書いたり読んだりすることがままあったせいか、入社前はわりと苦手だったSQLの読み書きはいつのまにかできるようになっていた。やっぱりちょっとずつでも読んだり書いたほうがいいんだろうなーって。
業務でコードを書くときも、なぜこの書き方で動くのか、誰かに説明できるくらい考えながら書くと良い。デスマ中は無理だけどな。
## それ以外の技術について
ひたすらコードをｙ（以下略
### 本を読もう
自分はたまたままわりの先輩たちがおすすめの技術書を教えてくれるような人たちだったからそれをひたすら読んだ。
とりあえず、以下の書籍はおすすめ。時間があるうちに読んでおくといいと思う。

* [リーダブルコード](https://www.oreilly.co.jp/books/9784873115658/)
* [基礎からのMySQL](http://www.sbcr.jp/products/4797369458.html)
* [体系的に学ぶ 安全なWebアプリケーションの作り方: 脆弱性が生まれる原理と対策の実践](http://www.sbcr.jp/products/4797361193.html)

### 勉強会に行こう
どうしても会社の人とだけやってると視野が狭くなる。だから外に出よう。
#### 交流しよう
外にはやばい人たちがたくさんいる。でも彼らは新しく入ってきた人たちを嫌がったりはしないと思うので（してたらごめん許して）、最低限の礼節を持って話しかけに行ってみよう。意外と気さくに話してくれるだろうから。
そこで勉強して、業務に活かせたら最高だよね。
面白い技術やOSSを見つけたら、ちょっと関わってみるのもいいかもしれない。
#### LTしたり発表したりしよう
何度も勉強会に行って聞いているだけだと、たぶん飽きる。
だから発表してみよう。
まずは5分でいい。LTでいい。業務でやったことプラスαの内容でいいのだ。
自分自身の勉強にもなるし、人脈も広がる。たぶん。

# こころとからだの健康のこと
エンジニアというお仕事をしている人はなぜだか知らないけれど夜型でジャンクフード好きで日がな一日モニタとにらめっこしている人が多い（わたしたはジャンクフードそこまで好きじゃないですが、、、）
でも、エンジニアはロボットじゃなくて人間なので、毎日そんなことをしていたら死にます。間違いなく。
なので、1年目のうちから気をつけておきましょう。
**突然死は嫌でしょ？**

## からだの健康について
* 毎日ファストフードでもいいから、サラダと一緒に食べましょう。
 * 本当は栄養のバランス考えろと言いたいところなんだけど、ちょっとむずかしい気がするので、「とりあえずサラダを食べる」だけでもOKな気がする。よくわからんが。
 * 野菜ジュースでもいいから、とにかく野菜も取りましょう。
* 運動をしよう
 * エンジニアは椅子に座りっぱなしのお仕事なので、腰や肩がやばいことになる（※経験談）。
     * そうでなくとも健康診断で怒られる（1年目にして怒られた）
 * 徒歩通勤する時間を伸ばしたり、つり革につかまっているときにつま先立ちしたり、意外と運動のタイミングはある 
 * ヨガもいいぞ：[雑念だらけのヨガタイム](http://sakitamina.tumblr.com/post/128492747684/goo-%E3%81%84%E3%81%BE%E3%83%88%E3%83%94%E3%81%A7%E9%9B%91%E5%BF%B5%E3%81%A0%E3%82%89%E3%81%91%E3%81%AE%E3%83%A8%E3%82%AC%E3%82%BF%E3%82%A4%E3%83%A0%E3%81%A8%E3%81%84%E3%81%86%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4%E3%82%92%E9%80%A3%E8%BC%89%E4%B8%AD%E3%81%A7%E3%81%99)

## こころの健康について
* これを読もう：[プログラマの心の健康](http://www.hyuki.com/kokoro/)

# その他
自分は文系大学からWebサービスをやってる環境に身を投じた結果、いろいろと嫌な思いもしたけれど、なんだかんだで楽しい仕事ができたと思っている。
新卒エンジニアの皆さんも、たのしく仕事ができることを祈っています。
でも、本当に無理だと思ったら逃げていいんだよ。仕事だけが人生じゃないし、エンジニア以外の道もあるかもしれないから。