🌊

新卒が使ってよかったツール・見てよかったリンク集

2023/12/10に公開

はじめに

こんにちは、株式会社COUNTERWORKSのくりまろ(@kuririmaro)です
以前から技術的な記事は書いているので、若干趣向を変えて書いてみます。

COUNTERWORKSに新卒で入社して、バックエンドエンジニア(兼QAエンジニア)として働いています。
この9ヶ月ほどで、バックエンド(以下BE)のタスクや若干のフロントエンド(以下FE)を齧るようなタスク、インフラのタスクなどさまざまな仕事を任せてもらったのですが、何もわからない。。。というのが本音でした。
なので、私はとにかく調べるところからスタートしました!
いろんなことを調べているので、時系列とともにどんなサイトが役に立ったのかやどんなツールを使いながら仕事をしたのかを紹介できればと思います!

内定者インターン

4月から正社員として入社しましたが、同年1月より内定者インターンとして業務を開始しました!

PCのセットアップ

入社して初めてやることはPC(M1のMacBook pro)のセットアップですよね。
ほぼ何も入っていないPCを使いやすくしていきましょう!!!
と言っても私はwindowsしか使ったこと無かったのでMacBook便利なツールもコマンドも何も知りません。
困り果てていた時に、さすが先輩教えてくれました。

新卒よこれ入れておけ

MacBookを使いやすくするツール

Clipy(コピペツール)

https://clipy.softonic.jp/mac
コピーした履歴を保存できて、選んでペーストできる。
これあるなしで圧倒的に生産性が違う
command + shift + v で出るようにしています

こんな感じでクリップボードにある履歴を30個保存してくれます。
コピペ職人である私にとってはなくてはならないツールです。

Figma(デザインツール)

https://www.figma.com/ja/downloads/
デザイナーがここにデザインを用意してくれる。FEエンジンだけではなく、BEエンジニアもデザインは確認するので、弊社では必須。

こちらはダミーデザインですが、このように画面デザインを確認するのに使います!

Karabiner-Elements(コマンドをカスタマイズする)

https://decoy284.net/karabiner-input-switch/
英字キーボードなら特に便利(commandで日本語英語切り替え出来るようにしました)
他にもcommand + q を長押ししないといけないようにカスタマイズできて便利(タイプミスってアプリ落とすとかなくなる)

こんな感じで設定できるのですが、私は日英切り替えしか設定していません。
おすすめの設定があれば教えてください。

Visual Studio Code(エディタ)

https://code.visualstudio.com/
エディタに特にこだわりなければこれ一択
これ以上の説明は必要ですないですね。
拡張機能の追加のしやすさもVSコードの良さです!

Homebrew

https://brew.sh/
Macのライブラリ管理ツールです。
以下紹介するライブラリもHomebrewを使ってインストールします。

なんでビールのアイコンなのかを調べてふみたら、"brew"に醸造するって意味があるのですね。
参考:https://qiita.com/omega999/items/6f65217b81ad3fffe7e6

CLIライブラリ(ターミナルを使いやすくする)

jq(jsonを見やすくする)

https://www.wakuwakubank.com/posts/676-linux-jq/
CLI上でJSONを見やすくするツールです。

整形もしてくれるので、レスポンスを雑多に保存して、jqで見るなどで重宝しています!

高速grepライブラリ

https://blog.3qe.us/entry/2017/08/08/010329
ag(the_silver_searcher) か pg(ripgrep) 入れておけば良いと思います
ripgrepを入れていますが、あまり使っていません。というか使い方がよくわかっていないです。
ripgrepのインストール方法は↓
https://sy-base.com/myrobotics/mac/ripgrep/

anyenv(言語のバージョン管理)

https://qiita.com/wakamori_k/items/d47485dd3776f1cb9ff5
複数の言語バージョン管理ツールを簡単にインストールできます。
最初にインストールしたっきり使っていなかったのですが、これはめっちゃ便利ですね。。。
特に言語が違うプロジェクトを横断して 配属されている場合は、言語のバージョン管理が楽になりますね!

tig(logを見やすくする)

https://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0
gitクライアントツールです。
git logとか見るのに便利です。

ghq と peco

https://zenn.dev/obregonia1/articles/e82868e8f66793
https://zenn.dev/oreo2990/articles/13c80cf34a95af
ローカルのgitリポジトリを素早く行き来できるようになる
英字キーの私はこの記事同様 bindkey '^]'でショートカット control + ]で出るようにしています

1月-3月

やっていたことはインプットアウトプットです!

インプット編

弊社のBEはRury on Rails(以下Rails)を使っているのですがRailsは全く触ったことがありませんでした。
そのためインターンとしての最初の業務は、Railsチュートリアルを完走することでした。
https://railstutorial.jp/

アウトプット編

Railsチュートリアルと並行して、研修用アプリの作成しました。

DockerでRuby3.1、Rails7.0、MySQL8.0の環境構築

RubyもRailsも新しいものを使いたかったので、こちらの記事を参考にしました!
https://itoka.hatenadiary.com/entry/2022/03/02/233642
立ち上げ時に何かに詰まって↓の記事も参考にした記憶があるのですが、ちょっと覚えてない。。。
https://zenn.dev/tmasuyama1114/articles/rails-docker-5x-how-to

入社

4月になり社会人になってしまいました…
最初1ヶ月は先の研修用アプリと新卒研修でてんやわんやしておりました。
5月からはチームに配属されて、少しずつタスクを任せてもらいました!

4月

研修用アプリのデプロイ

個人で作ったアプリを無料で公開したい時の代表と言えばHerokuでしたよね。しかし、Herokuは2022年11月28日をもって無料枠を撤廃してしまいました。
今回の研修では、Herokuの代替としてFly.ioに白羽の矢が立ちました。
https://fly.io/
Fly.ioへのデプロイの仕方は、弊社のキタデが公開したアドカレ8日目の記事をご覧いただければとおもいます!
https://zenn.dev/counterworks/articles/c68fc79896889f

座学研修的なあれ

今年もミクシィの22新卒技術研修の資料と動画を公開します!

gitの使い方はミクシィさんの研修資料から学ばせていただきました!
ミクシィさんは新卒研修を前年度の新卒が行うらしいですね。
私に同じことができるか?と聞かれると…
https://mixi-developers.mixi.co.jp/22-technical-training-5fc362a9dc41#ae98

ソフトウェアエンジニアとしての姿勢と心構え / Software Engineer's Survival Guide

エンジニアとして成長していくためにはどうするべきかをまとめてくれています!
https://speakerdeck.com/recruitengineers/software-engineers-survival-guide-2022

「Web 基礎」という講義をしました

webとは何か。webについての基礎はここにまとめられていると思います!
https://nrslib.com/event-after-introduction-to-web/

7つの設計原則とオブジェクト指向プログラミング

https://masuda220.hatenablog.com/entry/2020/06/26/182317
実際にコードを書き始めると、「疎結合ではない」と注意されることが多かったです。
疎結合とは何かを理解していなかった私にとっては、とても良い記事でした。

Ruby on Railsの正体と向き合い方

https://speakerdeck.com/yasaichi/what-is-ruby-on-rails-and-how-to-deal-with-it?slide=29
疎結合に関して、Railsを用いて説明してくれているスライドです。

5月

E2Eテストの導入

チームに配属されて最初のタスクはe2eテストを導入することでした。
e2eテストのツールはPlaywrightを使うことにしました。
https://playwright.dev/

Playwrightの導入方法

https://zenn.dev/counterworks/articles/7f5ae245fa9a68
私がCTOA若手エンジニアコミュニティで登壇しときの内容を記事にまとめたものです。
導入にしかフォーカスを当てていないので運用については記載されていません。

なぜE2Eテストでidを使うべきではないのか

https://autify.com/ja/blog/why-id-should-not-be-used
e2eテストの腐りやすさ(変更に対する弱さ)について書かれている記事です。
弊社でもdata属性をつけることで腐りやすさを軽減しています。

playwrightでMailtrapのapiからメール本文を取得する

https://zenn.dev/counterworks/articles/d2751f4e5ae2f5
私が書きました。
メールを取得するという操作は別のサービスにログインする必要がありますが、別サービスの動作確認をする必要はないので、apiから取得する方法をまとめました。

6月-現在

BE

Railsで実装するタスクを任せてもらえるようになりました。
Railsチュートリアルをやっているとはいえ、知識はガバガバでした。
調べる→PR出す→コメントを反映する→PR出す→……という流れでガバガバ知識も現在はレビューできる程度には知識が付いてきました!

Rails Guide(Railsの機能についてはこれ)

https://guides.rubyonrails.org/
メソッドの正しい使い方穴ども知らなかったので、とりあえずここで調べてました。
zennやQiitaで調べていても最終的に戻ってくる実家のような存在です。

Everyday Rails - RSpecによるRailsテスト入門

https://leanpub.com/everydayrailsrspec-jp
こちらは書籍ですが、RailsのテストツールであるRSpecの使い方について、詳しく記載されています。
RSpecを使ってテストを行う場合は必読です。

Railsのクラスメソッドとインスタンスメソッドをマスターしよう!実践的でわかりやすい解説

https://qiita.com/void_takazu/items/89d8316d3e6fbd826b42
今でもちゃんとは理解できていないですが、インスタンスメソッドとクラスメソッドについて綺麗にまとめている記事です。
ふわっとしかわかっていませんでしたが、業務に入った後では使い分けが必須です。

Rubyバージョンアップのやり方をまとめる

https://qiita.com/SHinGo-Koba/items/58dae3dbc4690aa35c24
入社するまでRubyもRailsの使い方を知らなかった新卒がバージョンアップをRubyのバージョンをRuby3.0.4からRuby3.2.2まで上げたときに参考にしました。

新卒エンジニアがRubyを最新版にした時に躓いた話

https://zenn.dev/counterworks/articles/48def5669823b6
私が書きました。Rubyのバージョンを上げたときの話をまとめてあります。

ちょっとしたFE

openapi-generator v6.5.0での出力をキャメルケースにする

https://zenn.dev/counterworks/articles/bbd6957bd9a0cb
私が書きました。アップデート後でもキャメルケースで出力できるようにしました。

インフラ

Terraformを使った環境構築のタスクも請け負いました。
インフラについては、弊社の@yuuAnが書いたアドカレ7日目の記事をご覧ください!
https://zenn.dev/counterworks/articles/225a3c170586eb

Terraform入門と便利ツールまとめ【一気に中級者へ】

https://tech-blog.rakus.co.jp/entry/20220707/terraform
Terraformって何ぞやって話からTerraformの使い方まで載っている記事です。
これを読めばTerraformを使うことは困らないと思います。

Terraformのバージョン管理にtfenvを使う

https://zenn.dev/mihohoi/articles/4e15a098a08c25
Terraformのバージョン管理に使っています。
環境ごとにTerraformのバージョンが異なることがあるので、tfenvを使うことでバージョン管理が簡体になります。

おわりに

内定者インターン時代から現在に至るまでの業務経験を振り返り、その中で役立ったウェブサイトやツールを紹介してみました。

プログラミングの知識が豊富な人からすると当たり前と思うこともあったかと思いますが、知識が皆無の状態からスタートした新卒エンジニアの成長過程を通じて、今後私たちのチームに加わるかもしれない後輩たちに実際の仕事内容の一端を垣間見てもらえれば幸いです。

最後までご覧いただきありがとうございました!

=================================

今回の記事を読んで COUNTERWORKS に興味を持った方がいらっしゃったら、ぜひ以下のリンクよりご応募ください!
https://counterworks.co.jp/recruit/?utm_source=zenn&utm_medium=referral&utm_campaign=advent-calendar-2023&utm_content=8

COUNTERWORKS テックブログ

Discussion