見出し画像

初学者こそコードレビューを受けよう

まず最初に、今回の記事は「初学者こそコードレビューを受け上達せよ」ということを解説します。

しかし、コードレビューを「有償で受けよ」というのを推奨しているわけではありません。私もコードレビューを無料で行っているので、記事最後のセクションをぜひ読んでいただきたいです!


コードレビューとは

プログラミングでの業務の世界には、コードレビューという文化があります。

コードレビューは、コードを体系的に評価し、バグを特定し、コード品質を向上させることを目的とし、開発者がソースコードを理解する支援をします。

コードレビューとは | GitLab

あるメンバーが書いたコードを、他のメンバーがチェックすることです。内容は、バグになりうる挙動を潰したり、よりよい書き方の議論をしたり、チームによって目的は様々です。

与えられた仕事を満たすコードが書ければオッケー!というわけではなくて、他の人が「いいと思うぜ!」と言うまで、プロダクションには反映されないことが多いです。

この「いいと思うぜ!」というのを「LGTM」と言ったりします。これは「Looks good to me」という英語の略で、直訳すると「私にはよく見える」という意味です。
エンジニアの人たちはあくまで「承認」を求めているのではなく「賛同」を求めている、そんなカルチャーを感じる用語だなと思っています。

私の場合、過去の経験的にコードレビューは

  • プロダクトを育てる:一旦できたコードから、よりよい機能を模索することで、更によりよいプロダクトを世に出す

  • コードを育てる:一旦できたコードから、よりよい書き方を模索することで、言語特性をフルに活かしたコードに磨き上げる

  • 人を育てる:一旦できたコードから、その人が足りていない知識を他者が補ってあげることで、チーム全体のレベルを底上げする

の3つの効能があると考え、レビューする側・される側と振る舞ってきました。

コードレビューを受けないと上達しない

初学者の皆さんは、ネットの情報や書籍の情報で独学、あるいはスクールで学ぶことでプログラミングの学習を進めていると思います。このような人たちは、知識こそめちゃくちゃつきます。が、知識だけなのでネクストステップで迷うことが多いように感じます。

過去にメンタリングした方でも、スクールを卒業したはいいが、その先それがお仕事に繋がるのかが分からない。自分の実力がわからないので、就職活動・転職活動でもうまく訴求ができない。と悩んでいる方が多数いました。

それもそのはずです。知識だけで実務をしていないからです。他者や一般社会と比べて自分がどのポジションにいるのか、これを知識だけでは測ることができません。

「そもそも実務をするために勉強してるのに実務しろだなんて矛盾じゃないか!」というのももっともです。ちょっと待って下さい。

実務フェーズにおける、成長の本体は「コードレビューとフィードバック」です。入社して上司あるいはメンターの人が、あなたのコードを見て、フィードバックを寄越し、詰まった時は一緒に考えてくれる。だからプログラマとして成長するのです。視座があがる、ビジネスやお金の感覚が身につく、最新の技術に触れれる、みたいな社会人としての成長はプログラマの実力には大きく関係ありません。

知識と実務を補完するために、先行して「コードレビュー」を受けることで、それらの悩みは解決できると考えています。そして、そのコードレビューの対象となるプロダクトを自分で持つために「ポートフォリオを作れ」と常日頃から言っているのです。
(他人の作ったコードを改造してレビューして貰っても意味ないですよね?だから自分のプロダクトが必要なのです)

私はどうコードレビューをされたか

ちなみに、私の場合は結構特殊ルートを辿っておりまして、学生時代に「インターン」に行っていました。いわゆる意識の高いインターンではなく、ただのプログラミングバイトみたいなものなのですが、小さいベンチャー企業に雇われて、小さいタスクをこなしていくのがスタートでした。
(Web系エンジニアの言うインターンは大体このようなパターンだと思います。無給インターンとかいう言葉を始めて聞いた時はマジで意味分からなかったです)

当時はCTO直下でRuby on Railsを学び、自分の書いたコードに対してフィードバックを貰いつつ、給料としてはそこそこ(大学時代前半にやっていた塾講師より高いくらいだった)貰いつつ、とめちゃくちゃ幸せな環境に身をおいていました。

これはもう平成後期のベンチャーバブルの話かもしれませんし、そもそも今はAI代替により学生インターンを採るところも少ないかもしれません。

ただ、探せばまだまだあると思います。どこもエンジニア不足なので、優秀な学生をとって、育てるコストを払ってでもエンジニアを増やしたいと思っているところは沢山あるのではないでしょうか。なかったらすいません。

こういうインターンは私はInfraインターンとかで探しました。今もそういうサイトはありそうです

コードレビューにお金を払わなくていい

前述のエピソードを考えると、あなたが今、学生で時間が有り余っているのであれば、エンジニアインターンを探すべきです。学生なのにお金を払ってスクールに通って、お金を払ってポートフォリオをレビューしてもらって、お金を払ってコードレビューをしてもらう。そんな必要はありません。

スクールにお金を払って入った社会人の方。そのスクールの先生がた(がいるのかは分かっていない)にしこたまコードレビューをしてもらってください。大して安くないお金を払っているのですから、骨の髄までしゃぶりつくすべきです。

私が先述したようなコードレビューの重要性すら説かず、教科書を渡して多少の質疑応答にだけ応えてくれる、そんなスクール・学習環境にいる方。早々に見切りをつけたほうがいいかもしれません。今の時代、書籍と多少の質問は無料版のChatGPTでも答えてくれますよ。

やる気があるが金を払う気はないという方。あなたが正解です。私はあなたを支持します。

そんな正解に自力、あるいは私のnoteを読んで辿り着いてきた方を支持したいと考えていまして、以下のような取り組みをしています。

無料のコミュニティ「山小屋」の紹介

【2025/09/15追記】山小屋は閉鎖することにしました。参加してくださった皆さん、ありがとうございました。

https://note.com/true_se_tips/n/n1ea6a98e6548

現在「山小屋」というSlackコミュニティを立ち上げ、メンバーが5人と私が参加しております。この山小屋では主に

  • 質問・相談

    • キャリアの質問からプログラミングの細かい質問まで。1to1の個人質問と、オープンクエスチョンの場の両方を設けています

  • コードレビュー

    • 参加者の人が実装したPullRequestのコードレビューを行います

    • 主戦場はRuby on Rails/Next.hs(TypeScript)ですが、若干それていても気合でどうにかします

    • 暇になった時にパズルを解く感覚でフィードバックを返します

  • ポートフォリオレビュー

    • キャリア相談の延長になることが多いですが、ポートフォリオ作成の手伝いをします

    • 採用担当やCTOなどの経験を活かしたアドバイスができます

あたりに対応しています。もちろん無料です。飽きるまでやります。

細かな詳細は上記の記事を一読いただきたいです。

これらをやる直接的なメリットは私にはありません。私はスクールを運営しているわけではないですし、このnoteも今のところ収益化していません。また、売りつけるような情報商材も持っていません。

ただ単純に、人のコードと課題を見るのがおもろい、というのがありまして、その先に何が待ってるんだろう、というのが気になっている自分がいます。また、本業の現実逃避の一環としてコードレビューをしている節があるかもしれません。

世の中には特定のものの重要性を説いておいて、自社の製品に誘導するメディア風サイトや、商材を売りつけるためのLINEグループに誘導するYouTube/note/X投稿に溢れているので気をつけて下さい。この記事は無料の謎のSlackグループへの誘致だけなので、まだマシなものです。


いいなと思ったら応援しよう!

山🗻 応援よろしくお願いします!励みになります!