FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

3ヶ月のリモート研修を終えて

 こんにちは、2021年の4月から株式会社FLINTERSに入社した津布久です。自走できるエンジニアという目的のもと3ヶ月の研修を受けました。それについての感想を以下に述べていきたいと思います。

これまでの経験

 エンジニアとしての経歴についてですが、実務経験は全くありませんでした。プログラミングについてですが、大学3年の夏頃から自分で興味を持って勉強を始めました。入社時点での成果はRuby on railsぐるなびAPIを使って飲食店検索風サイトを作り、herokuでデプロイまで行ったことです。これについても理解をしてコードを書けたわけではなく、うまく噛み合わせて動かしたというものでした。それなのでプログラミング言語フレームワークは触ったことがあるが、AWSやDockerなどの技術を使ったことがない状態でした。

 研修前はあまり経験のない僕がこの先チームに貢献してプロジェクトを成長させる存在になれるか不安でした。

この記事について

 会社の企業サイトだけではなかなか見えづらい部分を伝えられたら良いなと思い、書きました。

会社の印象

充実のサポート体制と優しさを実感した話

 入社して業務用のパソコンを受け取ったのですが、4/3、つまり入社3日目でパソコンにしましまの線が表示されるようになってしまいました。その時は悟りました。これは怒られるのかと。ビクビクしながらも壊れてしまったことをすぐに連絡しました。しかし、怒鳴られることはなく、温和な対応をしてくださいました。その後代替のパソコンを受け取ることができ、研修に支障を出すこともありませんでした。その一連の対応からサポート体制しっかりしているなぁと実感しました。関係した方々、本当にありがとうございました。

 修理は自分で依頼したのですが、初期不良として金額が0円でした。すぐに連絡したことが良かったのだと思い、早いは良い事だという教訓を得ました。

休み方が最高という話

 今年もゴールデンウィークがありましたが、弊社の社員の多くはここで夏季休暇を使用して連休を伸ばしているのをグーグルカレンダーやSlackで確認できました。その時期は通知音が凄かったです。7月に休日があるので僕はそっちで夏季休暇を使用して9連休にしました。それでも夏季休暇が余っているので、どこか適当に入れたいと考えています。

 3年目になると、リフレッシュ休暇が与えられるため長期間の休みを得ることができます。

技術的に成長できそう

 弊社は週1で勉共会というものがあり、発表したい人が題材を用意して発言する行事があります。僕は技術について知識があまりないので、いろんな人の様々なテーマについて学べるのは刺激になっていいなと思います。最近だとセキュリティ周りの話が多い印象で、これからの時代で重要なIT資産の保護の価値を学べています。

 1日の振り返りなどでこんな技術に興味を持ったなどを書くと、色々な技術書やサイトの情報を教えてもらえます。機械学習系の知見を持っている人が多い気がして、そこらへんの情報について聞いた時、これおすすめだよみたいな反応が多かったです。

 業務をするときにキーボードやマウス、知識を得るために本などを使用すると思います。どれも申請をすれば会社の方で負担をしてくれるので、業務の効率を高める環境を整えることができると思います。僕は自分で買うのはお金がかかるので、リーダブルコードやScalaコップ本などを借りて読んでいました。機器系の申請はしていないのですが、業務をする上では十分すぎるようなスペックのものを得られると思います。

先輩について

 弊社の社員はガジェットやゲーム、コーヒー、運動、酒などを趣味にする人が多かったです。そのほかにも面白い趣味やニッチな趣味を持ついろんな人がいます。趣味用のSlackチャンネルも存在して、気になるジャンルについて話したりすることができると思います。僕も趣味を見つけて知識を蓄え、強強になりたいなと思いました。

 他にもパソコンが壊れたため出社をした時に、先輩におすすめの食事場を聞きました。そしたら普段お世話になっている先輩に加えて、一度も関わったことのない人もお店を教えてくださいました。年内出社のうちに回ることはできないだろうなと思いながらも、暖かさを感じました。(回れないのは出社することがないので)というのを紹介されたカレーを食べながら考えていました。

研修について

基本リモート

 結論からリモートは最高でした。通勤時間やお金の節約ができるからです。僕は前年のブログと情勢から会社から離れた場所に賃貸を借りましたが正解でした。出勤退勤で2時間はかかりますが、リモートなので0秒です。都心から離れた場所に賃貸を借りたため、家賃も抑えめにすることができました。それらのリソースを自分の好きなことに使えるのは本当にリモートの良い部分だと感じます。

 リモートで自分の人生の楽しみについて考えられる時間が増えたことは趣味のなかった僕にとってはとても良かったです。以前まではだらっとYouTubeを見て過ごしていて、そんなに楽しくなかったと思います。しかし、仕事が入って、1日の中で自分が好きに使える時間は限られるものになりました。そう考えると、何か有意義に時間を使いたいなと思うようになりました。始業時間が遅めなので、朝ジムに行ったり本を読んだりして、後々に利益が出そうなものに取り組むようになりました。勤務後はゲームが好きなのでSEKIROやAPEXを最近やっています。

 自分の好きなことをして過ごすようになったことで、以前よりも生活にハリを感じ満足しています。こんな感じでテレワークは自分にとって大事な時間とは何かを考えるのにいい機会だなと思いました。

リモートのネック

 もちろんやりにくい部分もあります。会話のボールが誰に投げられているか、いつ会話に入ろうかがリアルよりも難しいです。僕は会話の処理速度が遅い(CPUの性能がそんなに良くない)ので、複数人がいる場で話すのが苦手です。これについて悩んでいましたが、メンターの方に重要な部分について話したり、話したいことがあるときに話せば良いと言ってもらえたので心が軽くなりました。

 それなので大体頷きか笑いか反応をするムーブをしていましたが、問題ありませんでした。もちろん重要な部分や疑問点などは声に出すようにはしていました。

難しいと評判のScala

 研修では社内でも使われることのあるScalaを基礎から学びました。個人的にはC言語よりも人間に理解しやすい書き方ができるのかなと感じました。もちろんわからない部分もありましたが、Slackでわからない部分、やったこと、自分の考えを載せて質問すると社員の誰かが教えてくださいました。社内にScalaの本を出している方もいらっしゃるのでとても心強かったです。

 先輩にコードのレビューをしてもらえて、命名をこうしたらわかりやすいだったり、この状況のときはアプリが止まるよなどの指摘をもらえました。そういった想定していなかったことに対する気づきをたくさん得られたのでよかったです。メンテナンスのしやすいコードはどのようなものか、こんな設計にすると依存しすぎないで良いなどのアーキテクチャについても学ぶことができました。不本意ながら負債を作るのが得意だった僕にとっては眼から鱗が出るような有意義な研修でした。

主要な技術にも触れられた

 昨今ではAWS・Terraform・Docker・ETLを導入する企業が増えていると思います。これらの技術についても研修で触れることができ、便利さやこれからの重要性というものを実感できました。自分ではなかなか手をつけづらい部分だったのでこういう機会があって嬉しかったです。基本的にその技術を扱ったことのある講師の方がハンズオン形式で研修を行いました。実際に自分の手で動かして成功した結果が返ってくるのは感動しました。わからない部分について拙い質問をしましたが、的確に回答してくださり、すごいなと思いました。

チーム開発

 ScalaフレームワークのPlay frameworkを使用して、出退勤アプリをチームで制作しました。僕も含めてWEBアプリをチームで制作する経験をした人がいなかったので、はじめの段階からどうするか悩みました。しかし、ある程度下地が出来上がってくると、どれを使えばこの機能を実装できるなどを研修で学んだ知識をいかせました。HTMLのデザインにMaterialデザインを使用しましたが、コードを少し書き足したりすることでこんなに変わるのだと驚きました。こういった技術は昨今においても様々出てきているので頑張って追っていきたいです。

 実際にチームで開発を行ってみて、設計部分や担当決めを以前よりも重要だと実感しました。いろんな人が同じファイルや機能を触るようにタスクを分けてしまうと、手戻りみたくファイルを更新し続ける必要があり、もちろんコンフリクトが数多発生しました。研修が終わってみて、機能ごとにタスクをうまく分けられたらコンフリクト起きなそうだと考えられるようになりました。

 コードレビューも同期でやりましたが、他者との認識を一致させることができるのがいいなと思いました。「なぜこの命名なのか」や「こう書いたほうがアプリ落ちない」などを指摘しあえました。ネスト芸人である僕はそこら辺を指摘されることが多かったため、以前よりもわりかし人が読みやすいコードを書けるようになったのではないかと個人的に思います。そのビフォーアフターの例を以下に載せておきます。正規表現って便利だなぁ。

f:id:t-tatsuki:20210707104445p:plain

研修の振り返り

 自走できるエンジニアを目的に研修を受けましたが、達成率は70%ぐらいだと思いました。達成率の要因としては、Slackで文字で質問をするのですが、初期に比べてどんな風に書けば答えやすいか、認識の齟齬はないかを考えるようになり、成長したと思います。他には社内ブログに技術には関係ないことですが本の感想などを書いたりして学びの共有ができたことです。

 技術に関係のない本を読んでいて、技術って幅広くて深いなと逆に思いました。ビジネス書は仮説思考が論理的思考が大事みたいなことがどれも書いてあって、実践しないと深まらない印象でした。しかし、技術は深く専門的な知識が存在して、基本的な知識を結び付けることで理解できることが多いと思います。加えて、技術はどんどんアップデートされます。ある程度学んだとしても、まだできることがあると思うと嬉しく感じられました。(ゲーム脳

 良くなかった点としては、使用する技術以外についての学習ができなかったことです。継続的に学習をするために、うまいことフィードバックや報酬が受けられるような仕組みを用意することが有効なのかなと考えています。

 最初はうまくいかなくてもしょうがないみたいな楽観的な思考をする余裕ができたと思います。次失敗しないためにメモ書きをしておくなど、意思ではなく、行動で決めておくと良いのだと研修を通して学びました。

謝辞

 教育してくださった原田さん、林さん、山下さんありがとうございました。Scalaのドキュメントを読んでコードを書いたり、メンテナンスのしやすい命名やコードを書けるようになりました。また、わからない部分がわからないからわからない部分をわかってから質問できるようになりました。ここら辺の他者も見るような部分をよりストレスがかからないようにして業務を効率化できるように精進していきたいと思います。

 個別の技術の講師をしてくださった方々もありがとうございました。実際に自分で触ってみて、どんな特徴の技術なのかを理解することができました。研修で扱った技術も配属後も使っていくので磨いていきたいと思います。

 メンターの栗原さんもちょっとした不安に対しても相談に乗ってくださり、ありがとうございました。不安が解消されることでやるべきことに集中することができました。この先も不安が出てくると思いますが、その時はお願いしたいです。

 同期の方々も技術だけでなく、生活についてもわからないことを教えてくれてありがとうございました。配属後も様々なことを学んだり、大変なこともあると思いますが、応援しています。

 以上津布久でした。