ヒト

トッププログラマ一のデスクを覗き見!! 高橋直大さんの仕事術に迫る

リモートワークが一般的になり、快適な作業環境を求めて試行錯誤しているエンジニアの方も多いのではないでしょうか。
マシンのスペックはもちろん、キーボードやマウスにモニター、デスクやチェアに至るまで、作業環境はエンジニアの仕事効率に大きな影響を与えます。業界で活躍するあの人はどんな環境で仕事をしているのか気になりますよね!?

そこで、競技プログラミングの第一人者であり経営者でもある、髙橋直大さんのデスク環境を覗き見! ハード面はもちろん、お気に入りのソフトウエアやツールの使い方、さらにはエンジニアとしてスキルアップするポイントまで、仕事に役立つヒントをじっくりとお聞きしました。

高橋直大
1988年、東京都生まれ。慶應義塾大学大学院政策メディア研究科在学中、2010年に、プログラミングコンテストを開催する企業であるAtCoder株式会社を創業。著書「最強最速アルゴリズマー養成講座」などがあり、競技プログラミングの第一人者として業界を牽引。プログラミングコンテストの世界大会において多くの入賞実績を持つ。

効率重視の働き方なので気分が乗らないときは仕事をしない

――本日はよろしくお願いします。高橋さんはAtCoderの代表をされていますが、現在の業務内容を教えてください。

現在は、経営の仕事が6割、プログラミングが2割、残りが執筆などの広報・教育関連の業務といった感じです。日常的な業務としては、新しいサービスや企画を考えたり、自社サービスの分析、クライアントとの打ち合わせや提案などが多いですね。

メインでプログラミングをすることは減りましたが、社内のエンジニアがどのようなソースコードを書いているかは、GitHubで把握するようにしています。トップとして、いつでも現場に戻れるよう、できる限り情報の共有やキャッチアップは心がけています。

また、現在でもプログラミングコンテストに参加することがあるので、その際はガリガリとコードを書いています。

――1日の平均的なスケジュールを教えてください。

日によって異なりますが、午前中に予定が入っていなければ、お昼の12時ごろに起きて、13時ごろから仕事をするのが一番多いパターンです。休憩も含め、働く時間や長さは特に決めていません。

調子が良いと感じたらそのまま仕事を続けて、次の日の朝方までやることもありますし、逆に、今日はあまり気分が乗らないと思ったら、夕方ごろで終業することもあります。
“仕事に気持ちが向く”ことはとても重要だと思いますし、効率を重視した結果です。

――気分が乗らないときの解決法はありますか。

まったく気分が乗らないときは、オフィスに置いてあるダーツやプレステで遊んだり、動画を観たりします。体を動かすことが好きなので、筋トレをしたり、軽く走りに行くこともあります。あまりにもやる気がない日が続く場合は、強制的に仕事をするケースもありますが(笑)。

――仕事から離れることで、やる気になるまで待つのですね。ときに不規則な過ごし方になることもあると思いますが、健康への気遣いはどうしていますか。

最近、健康増進型保険(健康増進への取組みによって保険料の割引などがある保険)に注目していて。自分の健康状態が良くなると共に、保険料が下がっていく楽しみを味わっています。勉強などはどんなに頑張っても即座に実力に反映されないし、成果が目に見えにくい。でも、このサービスのように成果が数値として見えることは、やる気につながるんですよね。そういった面は、経営やサービス開発にも通ずる部分だと思います。

――身体が健康的になってさらにお得になる、2つのメリットを掛け合わせることで、サービスの価値が向上しますよね。食事のこだわりなどはありますか。

食事は一緒に暮らしているパートナーが作ってくれる料理を食べています。ただパートナーが忙しい場合は、ナッシュという電子レンジで温めるだけで、簡単に本格的なプレート料理が食べられるサービスを利用しています。メニューの種類も多く、定期的に更新されるので。

ドリンクに関しては朝はコーヒーを飲んだりもしますが、基本は麦茶です。カフェインに敏感な体質らしく、コーヒーをガバガバ飲むと寝られなくなってしまうから。一方で、麦茶を大量に飲みます。少ない日でも1日3~4リットル、多い日は8リットルほど飲むので、ケース買いしてデスクの下にいつも常備しています。

気持ちの切り替え、心地よさを重視したデスク環境

――ここまで生活と仕事リズムについてお話を聞いてきました。いよいよメインのデスク環境について聞かせてください。椅子やデスクについてのこだわりはありますか。

家、オフィスどちらにもオカムラ製の「Cruise&Atlas」というシリーズを置いています。気に入っているポイントとしては、椅子のリクライニングが理想的であり、リクライニングに合わせてデスクも動くことですね。

ほらっ、こんなにもリクライニングするんですよ! それでいて、ヘッドレストでしっかりと頭を支えてくれているので、安心して作業をすることができる。特に、情報を集める作業をする際はこの体勢でやることが多いですね。

ただプログラミングモードのときは、リクライニングしないように椅子をロックし、姿勢もピシッと正した集中・戦闘モードにします。デスクも平らにして、さっきとは真逆の前のめりの体勢に瞬時に切り替えることができるのも、このシリーズを気に入っているところです。

――椅子とデスクの設定により、気持ちを切り替えているんですね。キーボードへのこだわりはありますか。

「REALFORCE(リアルフォース)」という日本製のハイエンドキーボードメーカーのものをずっと使っています。リアルフォースは中学生のころ、タイピングの早い先輩が使っていたので僕も使ってみたんです。すると、その打ちやすさに驚き、タイピングも早くなりました。長く打っていても指が疲れず、ストレスなくキーを叩けます。以降もずっと愛用し、新しいモデルが出るたびに買い換えながら今に至ります。

最近はセパレートのキーボードを使う人もいますが、僕には合いません。キーボードの真ん中あたりの「Y」「B」キーを、僕は左右どちらの指でも流れによって打ち分けているからです。

外出時は、「Happy Hacking Keyboard」を持ち歩き、ノートパソコンにつなげて使っています。

――使い心地が良いものを継続的に使っていくことも重要ですね。モニターへのこだわりについても聞かせてください。

大きなモニター2つに、小さなモニター1つ、というのがオフィスでも自宅でも同じセッティングです。

これよりも大画面のモニター内でジョブを分割して作業する方法もありますが、僕の場合、適切な大きさのモニターでジョブを最大化して仕事をする方がしっくりきます。プログラミングの際には、左のモニターで最大化した画面の情報を映し出し、右側のモニターで同じく最大化したエディターでコーディングしていく、という具合です。

欲を言えばあと2台くらい、別のジョブ用に同じサイズのモニターを上に設置したいと考えています。

――先ほどのキーボードのようにメーカーへのこだわりはありますか。

メーカーにはこだわっていませんが、光が反射しないノングレアタイプを選ぶようにしています。PCについてもメーカーはこだわりませんが、ゲームもプレイするので、性能は意識していますね。オフィスに置いてあるパソコンはそこまで高くありませんが、自宅のパソコンのメモリは64GBだったと思います。

自宅には複数のパソコンやキーボード(Keyboard)、ディスプレイ(Video)、マウス(Mouse)を切り替えることのできるKVMスイッチがあるので、ボタン一つで、パソコンの切り替えもできるような環境となっています。

――ところで、小さなモニターは何に使うのですか。

Netflixを観ることが多いですね。疲れたときや乗らないときはもちろん、コーディングしながら観ることもあります。

SlackをToDoリストとして活用し、Twitterはエゴサーチに利用

――これまでハードについて見てきましたが、ここからはソフトウエアやツールについて教えてください。社長として様々な事業に関わっているなかで、タスク管理はどうしていますか。

メンバーとの情報共有でSlackを使っていますが、ToDoリストとしても使っています。
自分用のチャンネルを2つ作成し、ひとつは締切にゆとりがあるタスク、もうひとつは今日中にやらなければならないリストに分ける。ゆとりがあるタスクから、今日中にやるリストへ移動しながら、業務を管理しています。

以前は専用のタスク管理ツールを使ったこともありますが、ツールが増えると起動を忘れてしまうことがあり使わなくなるんですよね。

――必ずしもツールを増やすことが効率化につながるわけではないと。情報収集はどのようにしていますか。

Twitterをメインで使っています。
「TweetDeck(ツイートデック)」というTwitterの公式アプリを使って、「会社名・サービス名」「自分の名前」「プログラミング関連ワード」の3つのタグを常時表示し、エゴサーチをしています。

ユーザーは不具合や問題点をサポートメールよりもTwitterに投稿することが多いんですよね。なので、Twitterをチェックしていれば、タイムリーに利用者の不満や状況が分かり、必然的に対応も素早くなるんです。また、Twitterには世の中の人の思考やトレンドが書かれているので、そこを眺めていると、サービスの改善や情報収集にもつながるんですよね。

――エゴサーチからユーザーの情報収集をしているんですね。

はい。気になる情報を見つけたら、TwitterのURLをSlackなどに保存し、画像を残したい場合はWindowsにデフォルトで入っているアプリ「切り取り&スケッチ」でスクショし、保存するようにしています。

また、NewsPicksでプロピッカーをさせていただいているので、同メディアのニュースを見ることも情報収集のひとつになっています。今はニュースサイトなどで、誰でも気軽にコメントを書くことができますが、しっかり下調べして書くことで情報を理解することにつながっています。

――ハード選びにも通じますが、無理に取り入れようとせず、自身の仕事方法と相性の良いツールを選ばれているように思います。プログラミング開発についても教えてもらえますか。

コンテストではC#が僕のメイン言語なので、マイクロソフトの開発環境で統一しています。OSはWindows、開発環境はMicrosoft Visual Studioで、C#以外のプログラミングでもエディタは同環境のVisual Studio Codeを使っています。ただし簡易的な場合はTeraPadなども使っています。

――社内の開発言語はどのように決めているのでしょうか。

社内メンバーと議論し、最終決定はCTOに任せています。会社立ち上げ初期は、メンバーが好きだったPHPを開発言語に使っていました。今は、Go言語を使っていますが、社内で好き嫌いが分かれているので、今後変わるかもしれませんね。特定の言語へのこだわりはなく、ストレスのない環境で開発ができればいいと思っています。

――とてもフラットな視点でいらっしゃるのですね。仕事が多岐に渡るとファイルの管理や共有も大変になってくると思います。どうしていますか。

データやフォルダも含めすべてDropboxで管理していて、コーディングもDropbox上でしています。ソースコード以外、画面キャプチャなど何でもアップできるので便利ですし、いろいろな場所からアクセスできるので楽なんですよね。
しっかりと開発の管理・共有する場合はGitHubを使いますが、書きかけのコードなど作業途中のデータなどはDropboxを使っています。

――Dropboxも含め、便利なツールやアプリは似たような機能を持つプロダクトが多いですが、選定で意識していることはありますか。

特に、どこの製品か、こだわらないところですかね。あくまで使いやすいかどうかで選んでいます。たとえばDropboxを使っているのも、たまたまクラウド系のツールが出始めたころにDropboxが使いやすいと感じたので、そのままずっと使っている感じです。今からOneDriveに乗り換えるのも大変そうですし。Googleもドライブはもちろん、スプレッドシートなども、便利だと思うアプリやサービスを使っています。

マシンやデスク、ツールに関しても自由に選べるのは僕だけに限らず、会社のメンバーも同様です。そのためノートパソコンでコーディングするメンバーもいますし、デスクトップ派もいます。モニターの選定や台数も、それぞれがやりやすい、効率的だと思うマシンや環境にしてもらっています。

目指すべきエンジニアを見つけ、その人が書いたコードを見て学ぶ

――長年プログラミング業界でトップを走り続けてきた高橋さんですが、自身がスキルアップするために意識していたことはありますか。

僕がプログラミングを始めたのは高校生のときだったので、それほど早くはありません。しかし、始めてからは競技プログラミングの大会のひとつである「TopCoder Open」にとにかく出まくりました。

同時に、大会で上位にランキングしている参加者のコードを、ひたすらチェックしていきました。プログラミングは教科書からアルゴリズムを学ぶのが一般的だと思いますが、僕の場合はそうではなく、まずは問題を解いてみるんです。そのうえで解けない問題が出てきたら、上位にランキングされているプログラマーのコードを見る。このような手法で、プログラミングのスキルを高めていきました。

――つまり優秀なエンジニアのソースコードを見て学ぶことがポイントだと。

はい。実際僕はこの手法を続けていったことでコードをきれいに、ロジカルに書けるようになりました。ですから今でも注目されている人のソースコードをチェックし、学ぶようにしています。

我々が開催しているプログラミングコンテストでも参加者のコードはすべてオープンとしています。このようなマインドや手法でトレーニングしていると、プログラミングの基礎力が鍛えられるとも思っています。その結果、言語やフレームワークなどがいくら進化しても対応できる、いつになっても必要とされる、エンジニアスキルが身につくでしょう。

――プログラミングで競い合いながらも、皆で成長できる環境なのですね。そのほかに、スキルアップ・キャリアップを目指しているエンジニアに向けてアドバイスをいただけますか。

今よりも上を目指すことが自分にとって何なのかを、まずは考えることが重要です。たとえば僕のように、競技プログラミングで上位にランクインしたいタイプもいれば、WebUIを洗練されたソースコードで書けるようになることがスキルアップだと考えるエンジニアもいると思うからです。

自分はどんなエンジニアになりたいのか。その姿を、まずは想像してみる。実際、競技プログラミングの世界でも、自分はこうなりたいと明確な姿を持っていない人は、成長が遅いように感じます。そして、実際に理想とする姿で活躍しているエンジニアを見つけること。そこで自分との違いを考え、自分には何が足りないのかを考えたり、詰める努力をしていくといいと思います。

――理想とする人に自分自身を重ね合わせることで、これからすべきことが見えてくると。

はい。そして、その人のコードを見てチェックする、模倣することが重要だと僕は考えますし、真似することがスキルアップやキャリアアップへの近道だとも思っています。世界一でない限り必ず上の人がいるので。あと、すごい人は興味を持つ幅が広い。目標とするエンジニアの真似をすること、その人が興味を持っていることに自分も興味を持つことも大切だと思います。

――今は、すごい人がどんなことに興味を持っているか、SNSから知ることもできます。

一方で、楽しむことも忘れてはいけません。スキルアップしたいからといって、仕事が終わってから疲れているのに、無理やりプログラミングを続けるようなことは避けた方がいいですね。あまりに根を詰めてしまうと、好きではなくなってしまうこともあるからです。

物事の成果は「時間×効率」です。楽しい、乗っている時間をどれだけ継続できるか。1日10時間するよりも、1日10分を2ヶ月間継続する方が意味があると思います。僕は今でもプログラミングが楽しく続けられるよう、無理はしないようにしています。

取材+文:杉山 忠義
編集:LIG

この記事が気に入ったらいいね!しよう

いいね!するとi:Engineerの最新情報をお届けします

プライバシーマーク