ホーム > ホワイトボードに読みやすいコードを書くテクニック

ホワイトボードに読みやすいコードを書くテクニック

ホワイトボード面接と聞いて、多くのエンジニアが真っ先に思い浮かべるのはアルゴリズムの知識やデータ構造の理解かもしれません。もちろんそれらは重要ですが、実は意外と見落とされがちなポイントがあります。それは、ホワイトボードに書くコードそのものの「読みやすさ」です。

普段はIDEの自動補完やコードフォーマッタに助けられている私たちですが、ホワイトボードの前に立つと、そうしたツールは一切使えません。手書きの文字でコードを書き、面接官にリアルタイムで読んでもらう必要があります。文字が小さすぎたり、インデントが崩れていたり、変数名が判読できなかったりすると、せっかく正しいロジックを書いていても伝わりません。

この記事では、ホワイトボード面接でコードの読みやすさを格段に上げるための実践テクニックを詳しく紹介します。書き方のコツを身につけておくだけで、面接官からの印象は大きく変わるはずです。

文字の大きさと筆跡を安定させるコツ

ホワイトボードに書くとき、多くの人が陥りがちなのが「文字が小さくなりすぎる」という問題です。PCの画面で見慣れた12ポイントのフォントサイズの感覚で書いてしまうと、面接官が2メートルほど離れた位置から読もうとしたときにまったく判読できません。目安として、1文字あたり3〜4センチ程度の大きさを意識すると、少し離れた位置からでも十分に読み取れます。

そういえば、文字の大きさだけでなく「筆圧」も読みやすさに大きく影響します。ホワイトボードマーカーは、先端を立てて書くと細い線になり、寝かせて書くと太い線になります。コードを書くときは、少しだけ寝かせ気味にして適度な太さの線を保つのがポイントです。細すぎる線は遠くから見えにくくなりますし、太すぎると文字が潰れてしまいます。

さらに気をつけたいのが、書き進めるうちに文字がだんだん小さくなってしまう現象です。これは緊張や焦りから無意識に起こることが多く、事前の練習で防げます。自宅の壁にホワイトボードシートを貼るか、100円ショップで手に入る小型ホワイトボードを使って、一定の大きさを保ちながら書く訓練をしておくと本番でも安定します。

インデントと行間の取り方

プログラミングにおいてインデントは可読性の生命線ですが、ホワイトボードではタブキーもスペースキーも存在しません。手動でインデントを揃える必要があるため、意識的に書かないとすぐに崩れてしまいます。ここでのコツは、ネストが1段深くなるごとに指2本分のスペースを空けるという物理的な基準を決めておくことです。

実は、行間も非常に重要です。行と行の間隔が狭すぎると、コードの各行が重なって見えてしまい、面接官がどこを読んでいるのか見失いやすくなります。理想的には、文字の高さと同じくらいの行間を取ると読みやすくなります。たとえば文字の高さが3センチなら、行間も3センチ程度空けるイメージです。

ところで、ブロックの区切りをどう表現するかも考えておくべきポイントです。波括弧を使う言語であれば問題は少ないのですが、Pythonのようにインデントでブロックを示す言語では特に注意が必要です。ブロックの開始行と終了行にちょっとした横線を薄く引いておくと、構造が一目でわかりやすくなります。こうした工夫は面接官から「コードの構造を意識して書いている」という好印象を与えることにもつながります。

変数名と関数名の選び方

ホワイトボードに書くコードでは、変数名の選び方が普段以上に重要になります。IDEの環境であれば変数にカーソルを合わせて定義元にジャンプできますが、ホワイトボードではそうした機能は当然ありません。面接官が変数名を見ただけでその役割を理解できるように、十分に説明的な名前を選ぶ必要があります。

とはいえ、長すぎる変数名は手書きの負担を大きくします。たとえば numberOfElementsInArray のような名前は意味は明確ですが、ホワイトボードに何度も書くのは大変です。代わりに arrLencount のように、短くても文脈から意味が推測できる名前を使うのが実用的です。面接の冒頭で「この変数はこういう意味で使います」と口頭で説明を加えれば、略称を使っても問題になりません。

そういえば、関数名についても同様のバランスが求められます。関数の場合は呼び出し回数が変数より少ないことが多いので、少し長めの名前をつけても大丈夫です。findMaxsortByAge のように、動詞から始まる名前にすると何をする関数なのかが一目瞭然になります。ホワイトボードでは面接官が上から順に読んでいくため、関数名がわかりやすいと全体の流れを把握しやすくなるのです。

大文字・小文字の書き分けとアルファベットの癖

手書きのコードで最も厄介な問題のひとつが、大文字と小文字の区別です。特に o(小文字のオー)と 0(数字のゼロ)、l(小文字のエル)と 1(数字のいち)は、手書きでは非常に混同しやすいペアです。面接官が読み間違えてしまうと、コードの意味がまったく変わってしまう場合もあります。

この問題を避けるための実践的なテクニックがあります。数字のゼロには必ず斜線を入れて Ø のように書き、小文字のエルは筆記体風に下を少しカールさせて書くのです。こうした書き分けのルールを自分の中で決めておくと、面接本番で迷うことがありません。

実は、キャメルケースの変数名を手書きで書くときにも注意が必要です。maxValue のように大文字が途中に入る場合、手書きだと maxvalue と読まれてしまうことがあります。大文字の部分をほんの少しだけ大きく書く、あるいは大文字の前にわずかなスペースを入れるなどの工夫をすると、区切り位置が明確になります。面接官に「今のVは大文字です」と口頭で補足するのも良い方法です。

コメントと説明の書き方

ホワイトボードのコードにコメントを入れるべきかどうか、迷う人は少なくないはずです。結論からいうと、適度なコメントはむしろ積極的に書くべきです。面接官はあなたの思考プロセスを見たいと考えているので、コードの意図が伝わるコメントは高く評価されます。

ただし、すべての行にコメントをつける必要はありません。重要なのは、アルゴリズムの要所や、なぜその実装を選んだのかという判断理由を記すことです。たとえばソートのアルゴリズムを書くときに「ここでピボットを選択」「この時点で左側はすべてピボット以下」といった注釈を添えるだけで、コードの読みやすさは劇的に向上します。

ところで、コメントの書き方にもテクニックがあります。コードの右横にコメントを書くと行が長くなりすぎるので、コメントはコードの上の行に書くのがホワイトボードでは読みやすいです。また、コメントはコードとは異なる色のマーカーで書くと、パッと見てコードとコメントの区別がつきます。青いマーカーでコードを書き、赤いマーカーでコメントを書くという使い分けは、多くの経験者が推奨するテクニックです。

修正・訂正のスマートな方法

ホワイトボードでコードを書いていると、途中で間違いに気づくことは避けられません。むしろ間違いに気づいて修正できること自体が、面接官に良い印象を与えるチャンスでもあります。問題は、その修正をどれだけスマートに行えるかです。

やりがちなのは、間違えた部分をぐちゃぐちゃに塗りつぶしてしまう方法です。これでは見た目が汚くなるだけでなく、修正後のコードも読みにくくなってしまいます。代わりに、間違えた部分の上に1本の横線を引いて取り消し線にし、すぐ上か下に正しいコードを書くのがスマートなやり方です。

実は、もっと効率的な方法もあります。コードの修正が大きくなりそうなときは、無理にその場で直すのではなく、ホワイトボードの別の場所に書き直すと宣言してしまうのです。「ここは少し複雑になったので、こちらに整理して書き直します」と面接官に伝えてから書き直せば、コミュニケーション能力のアピールにもなります。元のコードを消さずに残しておくことで、自分の思考の変遷を見せることもできます。

書く前の段取りと思考の整理

ホワイトボードの前に立ってすぐにコードを書き始めるのは、実は得策ではありません。面接官が求めているのは、最終的なコードだけではなく、そこに至るまでの思考過程です。いきなりコードを書き始めてしまうと、途中で方針転換が必要になったとき、書き直しのコストが非常に高くなります。

おすすめの段取りは、ホワイトボードの端に入力例と出力例を書き出すことから始めることです。問題を具体的なデータで確認してから、アプローチを口頭で説明します。面接官が方針に同意してくれたら、そこで初めてコードを書き始めます。この手順を踏むだけで、書き直しの頻度は大幅に減ります。

ところで、事前にコードの全体像をイメージしてからスペースの配分を決めることも大切です。関数が3つ必要なら、ホワイトボードを3つのゾーンに分けて使えるよう、頭の中で大まかなレイアウトを決めてから書き始めます。この計画性は面接官にも伝わりますし、実際の開発でもコードの設計を事前に考える姿勢として評価されるポイントです。

言語選択がコードの読みやすさを左右する

ホワイトボード面接では、使用する言語を選べる場合がほとんどです。この選択が、コードの読みやすさに想像以上に大きな影響を与えます。たとえばJavaでは型宣言やクラスのボイラープレートが多く、限られたスペースでは冗長に感じられることがあります。一方、Pythonはインデントだけでブロック構造を表現できるため、手書きのコードがシンプルになりやすいです。

そういえば、言語の選択は得意不得意だけでなく「書きやすさ」の観点でも判断すべきです。普段Javaを使っている人でも、ホワイトボードではPythonのほうが圧倒的に書きやすいというケースは珍しくありません。セミコロンや波括弧の数が減るだけで、書く量が大きく変わります。

ただし、自分が慣れていない言語を選ぶのはリスクもあります。文法エラーを犯す確率が上がりますし、面接官から言語仕様について質問されたときに答えられない可能性もあります。理想的なのは、普段メインで使っている言語の中で最もホワイトボード向きのものを選ぶことです。面接前に、いくつかの典型的な問題を候補となる言語で手書きしてみて、どの言語が一番書きやすいか確かめておくとよいでしょう。

実践的な練習方法と準備のポイント

ホワイトボードに綺麗なコードを書くスキルは、残念ながら頭で理解しただけでは身につきません。実際に手を動かして練習する必要があります。最も効果的な練習方法は、自宅にホワイトボードを用意して、毎日1問ずつ典型的なアルゴリズム問題を手書きで解くことです。100円ショップのものでも、壁に貼れるホワイトボードシートでも十分に使えます。

練習のときに意識してほしいのは、書いたコードを写真に撮って後から見返すことです。書いている最中は読めると思っていた文字でも、写真で客観的に見ると判読しにくかったりすることがあります。面接官の視点に立って自分のコードを眺めてみると、改善すべき点が見えてきます。

実は、友人やエンジニア仲間に面接官役をお願いしてモック面接をするのも非常に効果的です。一人で練習していると気づかない癖を指摘してもらえますし、声に出しながらコードを書く訓練にもなります。「ここで何をしているの?」と質問されたときに、スムーズに答えられるかどうかも事前に確認できます。面接本番と同じ緊張感を味わえるので、本番のパフォーマンスが安定しやすくなるのです。

まとめ

ホワイトボード面接で読みやすいコードを書くテクニックは、アルゴリズムの知識と同じくらい合否に影響を与えるスキルです。文字の大きさや行間の取り方、インデントの揃え方、変数名の付け方、コメントの書き方、修正の仕方、そして書き始める前の段取りまで、すべてが面接官に対するコミュニケーションの一部です。

これらのテクニックは、一度覚えてしまえば面接のたびに使える普遍的なスキルです。自宅での練習を重ねて体に染み込ませておけば、本番では問題を解くことに集中できるようになります。ホワイトボードの前に立つことへの苦手意識を、ぜひ「伝わるコードの書き方」を磨く機会として捉えてみてください。

IT転職で年収アップを実現しませんか?

エンジニア・プログラマー向け転職エージェントで、理想のキャリアを手に入れましょう。

おすすめ転職サイトを見る