新卒に毛が生えるまで

Fusic アドベントカレンダー２日目です。

記念すべき 1日目は、@debilityの力作でした。
**ここだけの話ですが、昨日@debility は会社休んで一生懸命書いてたらしいです。**(体調不良とも言う。)
そこまでして新卒に恥をかかせたいのか!!! と思わないでもないですが、
そんなこと言えません。残念です。
ここだけの話終わり。

ということで、Fusic アドベントカレンダー２日目です。

#　対象
未経験でWeb業界に入る新卒の人
新人教育を急に任されて、何をすればいいかわからない人
暇な人

# 読んで意味あるの？
それは保証できません。
ただ、半年ちょっとでCakePHP3 のプラグインぐらいは作れるようになるかもしれません。(テスト書いてないけど。。。)
http://fusic-kiban.hatenablog.com/entry/garak

# 自己紹介

@gorogoroyasu です。
今年の３月に入社しました。
入社前は機械工学を勉強していました。
つまり、ド素人 でした。

今も素人に毛が生えたような感じですが。。。
ただ、せっかくなので、この１０ヶ月で
**どうやって毛を生やしたのか？**
**もしくはどうやって毛を生やしてもらったのか？**
を書いて行こうと思います。

## 何をやってる会社なの？
Web システムを作ってる会社です。
主に使っているフレームワークは `CakePHP` と、`Ruby on Rails` です。
僕は、`CakePHP`側の人間なので、どのようにCakePHP3 を学んだかを書いていこうと思います。

## 3月から6月ぐらいまで
最初の4ヶ月間は、新人研修をして頂きました。
新人研修でしたこと

- 外部のマナー研修
- インターネットとは？
- サーバーとは？
- DBとは？
- HTMLとは？
- CSSとは？
- JQueryとは？
- Vagrant とは？
- PHPとは？
- MVCとは？
- CakePHPとは？
- AWSとは？

ざっとこんな感じです。
それぞれ1週間ぐらいかけて学びました。

その集大成として、CakePHP3で `https://fusic.co.jp/news`のページを自分で作ってみるという課題をやりました
(デザインは既存のものを使用)。
この時、「頑張ってやれば、意外と作れるもんだな」とか思っていましたが、
今振り返ってみると、こんなのは序の口でした。
直後に過酷なOJT が待っていました。

## OJT - On the Job Training -

お知らせページを作った後に待っていたのは、OJT でした。

OJT とは？
> OJTとは、職場の上司や先輩が、部下や後輩に対し具体的な仕事を与えて、
> その仕事を通して、仕事に必要な知識・技術・技能・態度などを意図的・計画的・継続的に指導し、
> 修得させることによって全体的な業務処理能力や力量を育成する活動である。
> by wikipedia

上述の通り弊社は受託開発も行っておりますので、
OJTは、社内の先輩をお客さんに見立て、実践に近い形で業務を行う というものでした。

連絡を取るのが怖くて勝手に機能を作って怒られたり、
デザインが酷いと怒られたり、
結構つらい時期でした。
ただ、実際に使ってる姿を見たときは、衝撃的に嬉しかったです。
今も時々 「めっちゃ便利になった」 と言われます。
ものづくりの醍醐味ですね！！！

## AfterOJT
自社サービスの開発に参加しています。
まだまだ学ぶことばかりですが、少しは役に立っていたらいいなと思います。

# 本題

前フリが長かったですが、本題に入ります。

いかにして毛を生やしたか。
反復練習をたくさんしました。

vagrant は、似たようなものを10回ぐらい立てて、やり方を覚えました。
まだDocker 使ってないの？ と思われた方。
正しい反応だと思います。
今週Docker 使いまくりの先輩から手ほどきを受けました。
そう遠くない未来に、Docker 使い倒します！！！

centos7をvagrant で立てていきなり `sudo yum -y install php` と打つと、
悲しいことにPHP5.3 がインストールされます。
http://qiita.com/bezeklik/items/72d1ff8393f66673e2bc によると、
PHP5.3 のサポートは2014/08/14に切れているそうです。
恐ろしい。。。

しかし、PHP7 とかを入れようとすると、若干めんどくさい作業が必要になります。
(とはいえ、めんどくささはCentOS5.5 をインストールするよりだいぶ少ない)
参考 => http://gorogoroyasu.hatenablog.com/entry/2016/10/01/163224

ということで、この辺のことは本当に何度もやりました。

PHP の勉強もそれなりにしっかりやりました。
最初は公式ドキュメントを読んでも何を言っているかさっぱりでしたが、
諦めず読み続けました。(あと、perfect PHP も半分ぐらい読みました。)
PHPのドキュメントを読めるようになったおかげで、他の言語の公式ドキュメントもなんとなく読めるようになってきました。

あと、個人的にはPHP でカレンダーを作成したのがけっこう役に立ったと思います。
https://github.com/gorogoroyasu/practicePHPcalendar/
今見返してみると絶望的なコードが書いてありますが、
試行錯誤しながら学んだいい思い出です。

という風に、割りと自分でも勉強しました。
ただし、重要なことは、これから書きます。

# 人に聞くの大事！！！！

新卒の人は、人に聞くのが超絶大事です。
休みの日とか、先輩がいないときはまあ仕方ないですが、
自分で調べると１時間かかることが、１分で解決できたりすることもザラにあります。
めっちゃ聞きましょう！！！
(ただし、障害が起こっているときとかは近づかないようにしましょう。食べられます。)

# いきなりCakePHP は無理だ！！！

いきなりCakePHP を触るのはやめたほうがいいという意見に賛成です。
参考 => http://blog.sumyapp.com/2013/07/no-recommend-rails/
やはり、PHPを知らずにCakePHP を触るのは厳しすぎる。
自分でClass とか作れないし。

### 体験談
新人研修のJQuery

半年ぐらい前、JavaScript を知らない状態で、新人研修を受けました。(今もあまり得意ではないが)

```
まだJQuery とか使ってるの？という方。
正しい反応だと思います。
最近は自分で本を買ってReactJS を勉強しています。
頑張って皆様に追いつきます！！！
```
その結果、文字の色を変えるぐらいはできるようになったが、
全く身につかなかった。
最近React.js とかを自分でやるようになって、少しJSの気持ちがわかるようになってきたが、
便利な道具はそれなりに使い方が難しい。
最初は我慢して、しょぼい武器を使いましょう。

# 好きでいること
プログラミングは楽しい。  
この気持ちを忘れないことが大切だと思います。
仕事となれば、一日中プログラムを書いているわけではありません。
仕様設計(これはこれで楽しい)や打合せ(これもこれで楽しい)など、
プログラミング以外の作業も入ってきます。
だからこそ、プログラムを書いていられる時間は貴重です。
その貴重な時間で思いっきり遊ぶこと！
これが実は一番大事なことなのではないかと思います。
僕自身も、その気持ちを忘れずこれからも精進していこうと思います。


# おわりに
Fusic では、手厚い新人教育が受けられる素敵な環境をご準備しています。
きっと１年も立てば毛がボウボウに生えることでしょう！
周りの先輩方もボウボウな方ばかりです！
ということで、ボウボウになりたい方のご応募をお待ちしております！！！
新卒の方 => https://recruit.fusic.co.jp/
中途の方 => https://fusic.github.io/
(ちなみに、応募して頂くと、僕がOJTで作ったシステムといい感じに連携されます。)
ご応募お待ちしています。