自分を攻略していく記録

自分がやりたいことを達成するには何をすればいいのか、その攻略していく過程をつらつらと

ペアプロして気づいた、デキるエンジニアと未熟なエンジニアとの差

デキるエンジニアとペアプロをした

デキるフルスタックエンジニアとペアプロすることになった。かなり繊細な箇所をリファクタリングするというタスクだった。彼は、高校時代に孫さんに影響を受け、高校卒業後に渡米し、カリフォルニアの大学に通う。そして卒業して帰国後、未踏クリエイターに選出されてひたすらLispを触っていた。ちなみに、エディタはEmacsで、サーバーサイドはもちろんiOSAndroidEmacsで実装している。一方で、僕は彼に比べれば経験値も技術力もかなり劣る。

二人の実力差は大きいのだが、実装するのは彼の方だった。力量差があるもの同士のペアプロというと、未熟な方が教わりながら実装する、ということをイメージしてしまう。もちろん実力差が小さくなればそんなこともないのかもしれないが…。

作業速度の速さ

圧巻だったのは速さだ。Emacsを使っており、ホームポジションから本当にほとんど離れない。プログラミング歴が浅いとどうしてもトラックパッドや矢印キーに手を伸ばしてしまうが、その行為がいかに時間を奪っているのかを痛感した。複数の画面をめまぐるしく行き来し、手とパソコンと一体になっている感が強い。学生ベンチャーにいるとなかなかこのレベルの速さでタイプする人に出会えない。タイピングが早い人はいくらでもいるが、実装そのものの速さはペアプロをしないと体感できない。

ドキュメントをまず当たる

Emacsで実装しているとXcodeのように強力な補完がない。それに加えて、彼はiOSエンジニアではなく、むしろサーバーサイドが得意と言っていた。にもかかわらず的確に正しい関数を書いていくのだ。よくこんなに覚えているなと思っていたところ、彼は頻繁に公式ドキュメントを参照していることに気づいた。少しでも曖昧なところがあると Dash というアプリで公式ドキュメントを確認するのだ。これを繰り返しているうちにしっかりと身につくようである。言われてみると、自分が実装するときは疑問解決の際、ブログやQiita、スタックオーバーフローなどばかり参考にし、公式ドキュメントを参照する機会が少なかった。まず公式ドキュメントを参照するという癖がなかったのだ。見習わなければならない。

Dash
f:id:ngo275:20170321233504p:plain:w120

お互いめちゃくちゃ疲れる

こっちは普段慣れない速度でコードを考えていたので非常に集中力を使ったが、実はドライバー役の彼も普段より全然疲れたそうだ。一人で実装しているとぼーっとする時間がどうしても生まれてしまうのが、ペアプロをするとそれがなくなる。いいことだが長時間行うには適度に休憩を挟まないといけないみたいだ。

実装や思考速度は普段より早いのだが、意外とついていけることにも気づいた。逆にいうと、彼の速度でエディタを扱えるようになると実装速度が2倍くらいになると痛感した。

レベルの高い人に囲まれる良さ

こういう高いレベルの人に囲まれる良さも感じた。学生ベンチャーにいると優秀な学生に出会えるがなかなか出会えない人もいるのが現実だ。どうしても幅が狭まってしまう。特に技術力が高いエンジニアはレベルが高い環境と求めると思うので、そういうところに飛び込んでいく度胸が求められるのかもしれない。四月からの新しい環境が楽しみだ。