It's okay to be weird

レールの無い道を行くプログラマーのブログ

GMOペパボに入社して1年が経ち2年目がスタートした

タイトルの通り、2019/09/01 付けでGMOペパボに入社して1年が経ちました。34歳にして初めての正社員採用でした。振り返れば短かったような長かったような何とも言えない感覚です。

いい機会なのでこれまでの振り返りとこれからの決意を書いてみます。

1年間けっこう大変でした

僕の所属しているホスティング事業部ではロリポップ、ヘテムル、ムームードメイン、おさいぽといった歴史の長いサービス *1 を扱っているだけに、蓄積されたドメイン、技術の知識は両方ともかなりの幅・深さがあります。また、前職のキャッチアップでは baserCMS とそれを利用した開発・運用を業務としていましたが、ホスティング事業部ではアプリケーションから1つレイヤーを下ったインフラレイヤーまで見る必要もあります。インフラ専門のエンジニアチーム *2 が存在してはいますが、境界が割と曖昧で、どこまで知っていなきゃいけないのか、ということについてけっこう悩みました *3

そんな難易度の高い業務を前になかなかバリューを出せている実感を持てずに働いていました。毎日、自分の無力さと向き合っているような状態でした。

ただ、評価においてはレビュワーから「もっと点数を上げてもいいのでは?」と指摘され最初の自己評価より高い点数で評価が通ったり、業務を通じて折に触れて周りの方々からお褒めの言葉をいただいたりしてました *4。これは周りからの評価と自分での評価のギャップに苦しむいわゆるインポスター症候群に陥ってしまったのかもしれません *5。働きやすい環境と頼れる仲間を持ちながら、自分の中で苦しんでどうにもならない状態を過ごしていました。

スランプを抜け出せたきっかけ

そんな中、自分ではどう解決すべきか分からず、どうしたものかと思い悩んでしまうタスクに直面しました。どうにもならなくなり、チームリーダーの @genkiroid に相談したところ、自分では考えなかったアプローチでの解法を提案していただきました。提案に乗って実装を進めてみると、あっさり問題を解決できそうなプログラムを組むことができました。「なんだ、人に頼ると難しいこともすぐ解決することがあるのだな」と再認識した瞬間でした。

幸いペパボには困ったら頼ることのできる環境が整っているので、自分でどうしようもない時は人に頼る、ということをやっていかなくてはと思いました。この辺りの、仕事は一人でやるものではないという考えは @pyama86 に改めて教えていただいたのが行動に繋がりました。

また、きっかけとなった出来事はあったものの、定期的な1on1においてチームリーダーの @genkiroid とマネージャーの @akrmiya には自分の苦境についての正直な相談に何度も乗っていただけました。非常に感謝しています。

これから

これからも壁にぶち当たることはあると思いますし、自分への自信の無さは性格的なものがあるので経験や成功体験を培って補っていくしかないと思っています。そのためにも幅の広いホスティング事業部の業務の中で、まずはどこを主戦場にするかターゲットを決めようと思いました。何か得意領域を持つことにより、色んな技術を吸収するうえで応用力がつくのではと考えたからです。

考えた結果、Web アプリケーションエンジニアとして入社したので、やはりアプリケーションレイヤーをひとまず主戦場にしようと決めました。その中でも業務で一番触れることの多い Ruby on Rails (と Ruby)を攻めてみようと思っています *6。事業部としては TypeScript を推し進めているので、Ruby on Rails に自信がついたらそちらへも舵を切りたいと思っています。

まとめ

苦しんだ1年でしたが、2年目のスタートをいい状態で迎えることができました。Perfume の15 & 20周年企画を存分に楽しむことができていて最高です。2年目は1年目以上に最高の年にしたいと気分が高まっています。時には人に頼りながら、成長を毎日重ねていきたいと思っています。

あ、GMOペパボはリモートネイティブを打ち出したことにより勤務地を選ばなくなったので、興味ある方は是非GMOペパボホスティング事業部で僕と一緒に働きましょう!

recruit.pepabo.com

*1:ロリポップを例にとると2001年11月11日サービス開始とのことなのでもうすぐ20周年!

*2:頼もしくてお世話になりまくってます

*3:この件については SEL (シニアエンジニアリングリード) の @linyows の「全部を知る必要はないですよ」という言葉が気持ちを楽にしてくれました。

*4:褒め合う文化があるのはペパボの強みだと思います

*5:自分でそう言っちゃうと実は自分で評価してるじゃんっていう面はありますが。

*6:ちょうどパーフェクトRuby on Railsの改訂版が出版されたりしてタイミングも良さそうと思いました。

競技プログラミング、広く言うとコーディングチャレンジとの付き合い方について考えた

最近、僕の所属しているGMOペパボの競技プログラミング部に参加するようになったことをきっかけに競技プログラミングにハマっています。

tech.pepabo.com

毎週お昼のランチの時間を使ってみんなでワイワイ問題を解いたり、時には業務時間後に「P社の放課後」として活動することもあります。
競技とはいってもみんなで競い合う、という雰囲気ではなく、解けなかった問題について議論したり、こういう書き方もあるよーとアドバイスしあったり、本当にいい雰囲気のクラブ活動となっています。

競技プログラミングと自分

自分自身は学生の時から競技プログラミングには興味があって、ブログとしては5年ほど前に以下のような記事を書いたりもしていました。

blog.okweird.net

なぜ競技プログラミングをやるのかというと、やはりデータ構造とアルゴリズムをしっかりやってた方が強いよね、という考えがずっとあるからです。

それに加えて、AtCoderなどのサービスではレーティングがついてランクによって色分けされたりと、上を目指すとまるでネットゲームのような中毒性があります。

そんなこんなで競技プログラミングやっていくぞーとなっていたのですが、入社まだ半年で業務を通してなかなか思ったようにバリューを出せないでいる中、身につけるべきことがたくさんあり、ちょっと優先順位考えねばならぬなと思い始めました。
やりたいことがたくさんあっても時間は有限なので、やることを選択する必要があるなと考えさせられたのです。

ハマり始めた頃はAtCoderの水色コーダーを目指そうかとも考えましたが、下のような記事を読んで覚えることの余りの多さに「ウッ」となってしまうような状況なので、生半可な取り組み方じゃ難しそうだなとも気づかされました。

qiita.com

職業プログラマーな以上、やはり一番は仕事においてバリューを出すことなので、いったん競技プログラミングについてはたしなむ程度にとどめようと思いました。

でも問題解くのは楽しいし役に立つ

ただ、問題を解いて他の人の解答も見ながら言語を覚える*1というのはとても楽しく、かついい体験なので、何かしらコーディングチャレンジは継続していきたいなと思っています。
AtCoder ABCのC、D問題を安定して解く、ぐらいならそこまで時間を投資せずともこなせそうな気がするので、それを第一にやっていこうと考えています。
また、コーディングチャレンジサイトはAtCoderの他にLeetCodeCodewarsExercismなど色々ありますが、迷った結果、LeetCodeの問題は見た感じアルゴリズムとデータ構造をきちんとやることが求められそうなので、そこは将来余裕が生まれた時にしっかりやっていくことにし、当面はカジュアルな知識でも解けていけそうなCodewarsをやっていくことにしました。

まとめ

競技プログラミングについては会社のクラブ活動をメインとし、気が向いた時にAtCoder ABCに参加して茶色コーダーを目指しつつ、Codewarsも余裕がある時にやっていく。
そんな方針でいきたいと思っています。

*1:今はRubyを勉強中です

未来を担うプログラマーになるために―『The Pragmatic Programmer, 20th Anniversary Edition』を読んだ

本『達人プログラマー』の20周年版『The Pragmatic Programmer, 20th Anniversary Edition』(未訳)を読み終えたので読後記事を書いておきます。

本について

本書はソフトウェア開発コミュニティをリードするDavid Thomas, Andrew Huntによる共著で、初版の『The Pragmatic Programmer』(訳書名は『達人プログラマー』)は長くプログラマー必携の書として愛されてきました。本書は1999年に初版が発売されて以来初めてのアップデートとなる20周年記念版です。購入は著者自身が運営するThe Pragmatic Bookshelfにて可能です。

pragprog.com

僕自身も旧版を読んでかなりの影響を受けた本で、技術書を1ヶ月に1冊読む毎年少なくとも一つの言語を学習する、といった習慣はこの本を読んで開始したものです。 DRYといった言葉を広めたのもこの本でした。

53のトピックのうち1/3ものトピックが新しいものとなっており、既存のトピックも含め、かなりの改変が加えられています。ソフトウェア開発の世界で20年といったら相当な期間なため、それだけのアップデートが必要となることもうなずけます。

トピックは哲学から始まり、コーディングに関することや、ツールやプロジェクトの進め方や、並行性に関するものなど、広範囲に渡っています。

感想

Juggling the Real World トピックなど、 有限状態マシンといったコンピュータ・サイエンス的な要素も持ったトピックが増えており、大変楽しく読めました。Transforming Programming トピックではElixirといった著者が得意とする最新の言語も利用しつつ、パイプラインなどのモダンな手法について触れられており興味深かったです。Test to Code トピックの「テストは実行する時ではなく、考えたり書いたりする時に恩恵をもたらす」といった言葉にはハッとさせられました。

また、トピックの始まりの名言の引用など、テクノロジー以外の分野からの参照も多く示唆に富んでおり、説得力を持って響いてきました*1

対象読者

個人的には旧版を読んだのはまだ実務経験が浅かったころだったため理解が追いつかなかったこともありましたが、今回は具体的なイメージをしながら読めたため前回読んだ時より身になった感が強かったです。

そのことから、ある程度経験を積んだ上で読んだほうがいいかもしれないと思いました。Hacker News などのコメントを見ていると自明なことばかり書かれていてあまり得るものがなかった、という人も中にはいるようなので、ベテランというよりは初〜中級者が読むとより効果が高いのかな、と思います。

後書きに身が引き締まった

最後を締める後書きでは、「我々開発者は非常に特権的な立場にあり、文字通り未来を作っており、強力なパワーを持つ。そしてそれはとてつもない責任を伴う」と述べています*2。この言葉に改めて身が引き締まりました。

まとめ

20年ぶりの刷新となりますが、逆に言えばそれだけの間更新されなくても特定の言語やツールに囚われない普遍的な力を持った本だったということだと思います。

今回の20周年版も、広範囲に渡る53のトピックがこれからの20年を良いプログラマーとして過ごすために必要な知識や慣習を支えるものとして手助けしてくれそうです。

未来を担う責任を持つプログラマーの一員として、細部にこだわりながら*3これからも励んでいきたいと思いました。

pragprog.com

リンク

*1:著者のAndrew Huntによる『リファクタリング・ウェットウェア』も考え方を科学的に改める機会となるものとしてお勧めです

*2:"With great power comes great responsibility" ってやつですね

*3:著者は良いプログラマーになるためには実際のところ paranoid になる必要があると述べています

2020年抱負

サクッと。

  • まずは何より仕事で必要とされる技術やドメインについてしっかりやっていきたい。
  • お金周りのことをもっとよく知るために簿記を勉強したい。
  • TypeScriptやっていきたい。
  • 競プロやっていきたい。
  • ギター教室に通いたい。
  • 台湾行きたい。
  • ジム入ったのでやっていく。

2020年はインプットを中心に種をまく年にしたいです。

今年もどうぞよろしくお願いいたします。

2019年振り返り

明日で2019年も終わりですね。皆さんにとってどんな年だったでしょうか。

僕はPerfumeの2018→2019年のカウントダウンライブに参加しており、年初は横浜で迎えました。

今年の抱負でこんなことを書いていました。

Perfumeのカウントダウンライブでこれ以上ない年明けを迎えられたので、最高の年になる気がしています。

結果的には振り返ってみて、本当に最高の年になりました。

というわけで毎年恒例の一年の振り返り記事を書いてみたいと思います。

public

お仕事

お仕事としては、8月までキャッチアップ、9月からはGMOペパボで働かせていただきました。

キャッチアップ

転職という大きな決断をしたのですが、代表を始め、皆さんに快く送っていただくことができました。現職でも前職でやってきたことが活きる場面が多々あり、本当に感謝しています。

何かと自分で決断せず、周りに流されてきた自分が初めて自分で選んだ職場だったのですが、色々なことを経験させていただき、非常に貴重な財産となっています。現職でもプロダクトを通じて関わりがあることもあり、転職したからといって切れた関係ではないので、これからもコミュニティなどを通じていい関係を続けていけたらと思っています。

GMOペパボ

GMOペパボではペパボカクテルというオンボーディングプログラムにのっとり、メンターとは週次で、さらにマネージャーを交えて月次で3ヶ月間振り返りを行いました。振り返りを振り返るというメタな感じがしますが、主観で何事もネガティブに判断しがちな自分に客観的な目線を与えていただいて、非常に助かりました。年末のGitHub EnterpriseのIssues整理では、振り返りの記録を眺めて「4ヶ月けっこう色々やってきたな〜」とエモい気分になりました。

Windows 95でインターネットに出会って以来、インターネットの良い面、悪い面をたくさん見てきましたが、個性的な仲間たちと一緒に、インターネットを使ってもっとおもしろくできる予感がしています。来年はもっともっと頑張っていきたいと思っています。

イベント

イベントとしては、大きく2つのものに携わりました。

baser Meetup vol.2

5/25に開かれたbaser Meetup vol.2で実行委員をさせていただきました。幅広くWebについて語ることのできるとても良いイベントになったと思います。baserCMSのマスコットのべっしーケーキがとても可愛かったです。ヌーラボさん、ありがとう!

basercms.net

PHPカンファレンス福岡2019

6/29にはPHPカンファレンス福岡2019に実行委員として参加しました。大きなカンファレンスの裏側を知ることができ、非常に貴重な体験となりました。コミュニティとの繋がりも一気に広がりました。コミュニティって最高ですね。

blog.okweird.net

private

Perfume

今年は2015年に初参加して以来、カウントダウンの年越しを除外すれば、初めてPerfumeのライブに行かなかった年でした。来年は2月に福岡ドーム公演があるため、はっちゃけたいと思っています。FUSIONを選曲してくるという攻めの姿勢の紅白も楽しみです。

WILD BUNCH FEST. 2019

山口県のWILD BUNCH FEST. 2019に参加しました。雰囲気は平和でいい感じでした。とにかくラインナップが豪華で、どのアーティストを観るかかなり迷いました。色々見ましたがその中でもKing Gnuの常田大希の色気が半端なくて一番印象に残りました。こちらも紅白楽しみです。

Billie Eilish

Perfumeが出演したCoachellaの放送をきっかけにBillie Eilishを知ったのですが、彼女が自分の中で今年一番のニューカマーでした。10代であれだけのことをやれるんだからすごい。

ギター

今年の抱負でギター頑張るぞと宣言していたのですが、転職という大きなイベントがあったこともあり余裕がなく、あまり触ることができませんでした。来年は頑張っていきたいです。

最後に

大掃除をしていたら、長かった引きこもり時代に姉が自分の結婚式前に送ってくれた手紙を見つけて読んでいました。当時はすごく心配をかけてたんだなと今になってひどく感傷的になっていました。

自分で選んで楽ではない人生を歩んできましたが(楽な人生歩んだ人なんていないでしょうけど)、ようやく自分の人生、軌道に乗ってきた感じがしています。
来年もこのままの勢いに、関わってくれた全ての人に感謝しつつ、大きく飛躍していきたいと思っています。

ではPerfumeとKing Gnuを楽しみに紅白を待とうと思います。

良いお年を!

GMOペパボに入社して3ヶ月経った

ブログでは報告していませんでしたが、2019/09/01付でGMOペパボにホスティング事業部所属で入社していました。

そして11月を終えて3ヶ月経ち、無事試用期間を終えることができました。

34歳にして初めてのフルタイムだったり、ホスティングという幅広い知識が求められる分野だったり、多くのユーザーを抱える責任感だったり、Slackの流れの速さに驚いたり、社員の数多くて人見知りにはつらかったり、環境に慣れるのがまぁ大変でしばらくはSNSをやる余裕とかもなくなってましたが、3ヶ月を無事終えることができ、ひとつ区切りがついて自信と余裕がわいてきました。

まだまだまだまだ足りない部分はたくさんあるので、いい環境を与えていただいている以上、もっと貢献できる人間になれるよう頑張っていこうと思います。

インプット欲が高まってきたので色々やっていくぞ 💪

本『リファクタリング・ウェットウェア』で考え方と学び方を見直す

『達人プログラマー』の共著者として有名なAndy Huntによる『リファクタリング・ウェットウェア』を読みました。認知科学、神経科学、学習・行動理論に基づいた、学習や思考スキルに関する本です。

なお、この本を読み始めたのは達人プログラマーの20年ぶりの改訂版がベータとして発売されたタイミングで、そちらはベータが取れるのを待ち、こちらをまずは読んでみようと思ったことがきっかけです。
また、Courseraの『Learning How to Learn』『エンジニアの知的生産術』などもそうですが、こういったメタスキルに関するものは、流れが速いIT業界の中で、早く身につけておくことで、流行りに惑わされない不変の力をつけておくことができるとも考えました。

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

  • 作者: Andy Hunt,武舎広幸,武舎るみ
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/04/27
  • メディア: 単行本(ソフトカバー)
  • 購入: 25人 クリック: 475回
  • この商品を含むブログ (151件) を見る

内容

読者としてプログラマーを想定して書かれている部分が多く、多くの場所でコンピューターと脳の比較の話がでてきます。この2つは類似する点も多いものの、相違する点も多く、どうやったらフルに活かすことができるかといったことが本を通して書かれています。

右脳、右脳と単純に分けられがちな、脳の異なるモードについて本書ではL(inear)-modeとR(ich)-modeと区別し、直感を提供するR-modeの重要さを説いており、どう意識すればL-modeに抑えられがちなR-modeを協調させて活用できるかについて特に分量を割いて書かれています。

学んだことの実践のために、各区切りに「Next Actions」として、学んだトピックについて実際に行動するチェックリストがついており、今までの習慣から抜け出してリファクターされた考え方を実践する手助けをしてくれます。
また、付箋にして壁に貼っておきたいような言葉がTipsとして48つにまとめられており、あとからも参照しやすいようになっています。

良いなと思った点として、プログラマー向けに書かれた本ではあるものの、紙とペンを常に持ち歩いたり、本書で勧めているマインドマップもアプリではなく手で描くことを勧めています。プログラマーとしては全てデジタルで管理したくなりがちですが、アナログの良さも活用していきたいと思いました。

有名な、スキルの習熟度を5段階に分けるドレイファスモデル、目標設定のフレームワークであるSMARTといったものも目安として参考になりました。

感想

最後まで読んで、脳というものについて、自分の体の一部でありながら、いかに働きを理解していないか、認知バイアスがかかってしまっているかを思い知らされました。

この本が出版されたのは2008年であり、発展が目まぐるしい科学の中で、今では通用しないこともあるかもしれませんが、なるべく固定観念に囚われず、常に子供のようなまっさらな気持ちで何事にも取り組んでいきたいと思いました。まずは前から気になっていたマインドマップを実践してみようと思います。

最後にこの本の中で特に刺さったマルセル・プルーストの言葉を引用します。

The real voyage of discovery consists not in seeking new landscapes, but in having new eyes.

真の発見の旅は、新しい景色を探すことではなく、新しい目を持つことにある。

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

  • 作者: Andy Hunt,武舎広幸,武舎るみ
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/04/27
  • メディア: 単行本(ソフトカバー)
  • 購入: 25人 クリック: 475回
  • この商品を含むブログ (151件) を見る

リンク