職業選択の自由

職業を選択するまでの過程。

今年の目標

2018年、あけましておめでとうございます。

更新しやすいタイミングなので久々に更新するが何ヶ月も空いてしまった。なんでこうなったのか、ちょっと去年をふりかえりたい。

まずこのブログは「技術ブログ」として生まれ変わる予定だった。そのために自分はどうやら完成度や充実性や独自性を気にしていたようで、更新自体に尻込みしていたような気がする。

それとも、ネタが無かったのか。いや、そんなことはなかった。やはりRailsエンジニアとして仕事をしていると日々直面する課題はある。そしてうまいこと切り抜けたりするが、そこで得た知見は…そうだSlackに書いていた。うちではSlackを社内SNS的にも使っていて、そこに調べたリンクなんかをメモしていた。知見を言いふらしたい欲は社内でも強かったはず。あと量は減るがQiitaやesaにも書いていた。

つまり今まで社内クローズドな環境に書いていたものをブログに書いていけば充分イケるということだ。これからそうしていこう。目標はまず量!質はとにかく公開してから!間違っていたらあとから直せばいい。個人のブログだしな。

そういや、調べ物をしていると割と古い情報が検索上位に来ることが思ったより多い。Rails4はまだ使える方で、Rails3のどことなく古くさいコードスニペットも散見される。自分の環境は全部Rails5なので、アイデアが既存記事と被っても「Rails5で動く」ことを伝えられればその価値もあるだろう。

今年の目標は、 月2本の記事公開! (あとで見直すかも)

Done is better than perfect.

とりあえずやってみようぜ、多分イケるから。

今年もよろしくお願いします。

古い Mac で Ruby を 2.4.1 にしようとした話

背景

Mastodon が流行中だ。ソースコードGitHub で公開されている、 Ruby on Rails を採用しているとのことで私も動かしてみることにした。インスタンスを立てる前に、まずは localhost で動かすことを目指す。

リポジトリを手元に Fork & Clone して bundle install したところ

「 Ruby2.4.1 を使え。古事記 (.ruby-version) にもそう書かれている」

しまった。 Ruby 自体のバージョンアップなんてそういえば数ヶ月していなかった。まずここから修正する必要がある。

筆者の端末は MacBook Pro (Retina, 13-inch, Late 2013) である。それまで携帯端末向けにしか搭載されていなかった Retina ディスプレイが Mac に採用された最初の機種だ。買った当初は「 Retina なのに大画面!しかも薄い!」と感動していたものだが、時は流れ「年季の入った」と呼んでも差し支えない状態になってしまった。

そんな状態でも手続きを踏めば最新のプログラムを動かすことはできる。こういう時は

  1. brew update する
  2. brew upgrade ruby-build で最新の Rubyrbenv に入れる
  3. rbenv install 2.4.1 でインストー

とする。途中までは順調に進み、最後の rbenv install 2.4.1 しようとしたところ

BUILD FAILED

何か…コンパイル自体に失敗している…? こうなったらログを読むしかない。どうやら ossl_x509store.cコンパイルエラーを起こしている。こういう時は何かしら環境がマズいはず。エラーメッセージでググればどうにかなるだろう。

Sierra にアップデート

エラーメッセージで検索するとこんな記事が出てきた→ 年季が入ったmac(笑)にrbenvでruby 2.4.0をインストールしようとしたらハマったのでメモ - Uyama.coffee

おそらく同じエラー、環境も似通っているので参考になる。記事によると以下の5点を試したところ正常にインストールできたとのこと。

  • rbenvをHomebrew版から本家Github版からインストールしなおし
  • macOSを10.11 El Capitanから10.12 Sierraにアップグレード
  • Xcodeバージョンアップ&一回起動
  • xcode-select –install」を実行
  • brew doctorのワーニングを全部つぶす <- これが一番有力かも

最初のは怖いので Sierra にアップデートを最初に試してみることにした。時間がかかるしネットで遊ぶ分には不自由しないので El Capitan のまま放置していたがいい機会だ。アップデートスクリプトを走らせてその日は就寝。翌朝、初期設定を済ませたあと改めて rbenv install 2.4.1 を実行したところ

BUILD FAILED

Xcode を更新

いや、一発でそんなにうまくいくはずがない。 Xcode は開発環境に加えてC言語関係のバイナリコマンドも付属する。バージョンアップは iTunes Store から行うがこれがまた長い。しかしこれでコンパイラも無事更新されたことだろう。

BUILD FAILED

いや待て、さっきの記事にはもう1個コマンドが紹介されていた。 xcode-select –install だ。試すとダイアログが出て、いかにも仕事してくれそうな感じだ。よくなったと思いまたコマンドを叩くと

BUILD FAILED

Homebrew を更新

やっぱりねー使うの Homebrew なんだからそっちも更新しないとねー Homebrew 自体の更新 (brew update) は直近で行ったので、各 brew の更新を試す。 brew upgrade の後に brew 名を入力しないと全ての brew が更新される。これもコマンドによっては何年も更新していなかったりしたので一晩レベルで時間がかかるが、その方がよりしっかり効いている実感がある。翌日改めて rbenv install 2.4.1 を実行!

BUILD FAILED

迷走…

正解を求めて様々な資料を調査したが、一つ学んだのは手当たり次第に試すべきでないということ。某所の「この記事は公開から1年以上が経過しています」の表示がある記事の信憑性は非常に低い。英語の記事もしかり。見つかった記事には

  • rbenv をダウングレード
  • Homebrew を GitHub から直接インストー

など、リスクが高かったり一時的だったりする手法がある。エンジニアには記事の内容が本当に効くか判断できる目が必要である。

ここまでやってダメだったとするとアレしかないか…

brew doctor

実行パスの警告を表示してくれる brew doctor コマンド。実行すると尋常でない数の警告が表示された。 こんなことになっていたのか… そういえばこの Mac, マシン自体もそんなに新しくない上にデータ自体はそれ以前に使っていた MacBook (2008年購入) を引き継いだので、内部はもっと荒れていたと推測される。

とった対策は大体以下の通り ↓

  • シンボリックリンクがあるべきディレクトリにバイナリが入っていた→削除
  • コマンドが重複 (python関係) →片方削除 (多分今回関係ないと思うが念のため)
  • 期待されていない設定ファイル→削除

ちなみにシンボリックリンクと通常のファイルが混在するディレクトリから通常のファイルのみを削除するにはこのワンライナーが使える。

ls -l path/to/delete/* | grep '^l' | awk '{print $NF}' | xargs rm

全部ではないもののある程度警告を潰して改めて rbenv install 2.4.1 を実行!

Successfully installed

😂😂😂😂😂

結論

brew doctor 先生の言うことはちゃんと聞こう。

以上、ボロボロの Mac に最新の開発環境を乗せようとして苦労した話でした。

大江戸Ruby会議06に行ってきました

先週末、3月18日〜20日は春分の日を含む3連休であった。天候にも恵まれたため外出したという方も多かったことだろう。自分はというと、月曜祝日に 大江戸Ruby会議06 に参加した。Rubyエンジニアとして非常に知見を深めることができたので、ここで感想など書いていく。(最初の「Ninja talks」は諸事情により参加しませんでした…) 内容自体は多分スライドが上がると思うのであまり深くまでは踏み込まない。

各セッションの感想

招待公演: Ruby考古学 (石塚圭樹氏)

Matz氏と並びRubyごく初期の開発メンバーである石塚氏が、当時のメールやコミットログからRubyの成長過程を紹介した。これ多分 他では絶対聞けない 。今回紹介されたログで一番古いものは1992年まで遡る。さらに “Ruby” 以外の名前の候補 “Oyster”, “Coral” なども紹介された (海を連想するのはPerl「真珠」を意識?) 。 めっちゃ貴重 。ここまで遡ると「新しい言語を作る」という意気込みが一番強く感じられ、どういうことかというと他の言語を 名指しで批判 していた(PerlC++など)。普段当たり前に使っているプログラミング言語も、感情を持った人間が開発したものだと当然のことを改めて認識できた。

また、開発にかかった時間が実感できたのも大きい。Rubyの誕生日はその名前が決まった1993年2月23日とされている。この後順次機能が実装されていくが、その日付も紹介されていた。メソッド呼び出しのカッコを省略できるようになったのは1994/10/13, ブロック呼び出し構文として do ... end が実装されたのは1996年、といった具合だ。正直、今までRubyはMatzという1人の天才から羽ばたくように生まれてきたイメージを持っていたが、実際は全くそんなことはなくて、多くの人が何年も地道な改善を続けてきた結果だと考えを正すことができた。世の中そんな順調なシステムなどない。

ちなみに以下のツイートが若干バズった。というかMatz氏本人にRTされた。

フルタイムコミッター対戦

企業に所属しながら勤務としてRuby言語自体の開発に携わる「フルタイムコミッター」。今回は4名を招待して対戦する企画である。えっ、 「対戦」? …と思っていたら、始まったのはまさかの クイズ大会 である。この4名にはあらかじめ企画の趣旨を伝えてあり、Rubyのコミットに関するクイズを数問用意してあった。当日は1人が出題して他の3人が回答し、正解数の多い人が優勝。 マニアック すぎて面白かったので抜粋して紹介する。ちなみにこのセッションだけスライドが存在しないので記録を多くした。

Q1 RubyではGCの設定を環境変数として渡すことができる。この変数の種類はいくつか。

いきなりレベル高いよ!! そもそもGCの設定を環境変数として渡す機能自体初めて知った(こうするらしい。これが全てではない)。正解は 14種類 とのこと。

Q2 Ruby Issue Tracking Systemに登録されているissueは現在13000を超えているが、記念すべきfeature 10000は?

正解はこれ (ブログなので検索もできるしWebサイトへのリンクそのものを貼れるのは便利なところ) 。内容は浮動小数点数の精度をhashで渡そうというもの。これで 正解者がいる んだから恐ろしい。

Q3 Ruby 2.4.0 の文法で非終端記号はいくつ存在するか。

どこかのソースコードで定義されているようで、出題者は「grepして数えた」と述べていた。正解は 166 らしいが、さすがにピッタリ当てられた人はいなかったので一番近い「200くらい」と答えた人が正解になった。

Q4 今から10年前、2007年には12回のコミットがあり、うち9回はこの会場にいる人による。残り3回は同一人物だが、その人は?

驚くことに初球打ち正解がでた。Matzその人である。ていうか呼び方、「さん」もない「まっつ」なのね。内容は「スレッド周りだったはず」とのこと。

Q5 Rubyを構成するファイルのうち、最もコミット回数が多いのは version.h (※コミットの度に必ず更新されるため) だが、2番目は?

これは単純に興味があったがなかなか正解が出なかった。string.c, array.c などいかにも多そうなファイルが出るも及ばず。正解は io.c であった。なるほど、ファイル入出力か…

Q6 組み込みモジュール Math で一番最近追加されたメソッドは?

確か出題者本人の得意分野だった気がする。正解は3乗根を求める cbrt とのこと。もう「分かるか!」なんて思わなくなっている。

Q7 Rubyリポジトリの中で .rb ファイルはいくつあるか?

Rubyの処理系はC言語で書かれた部分とRubyの部分があり、そのうちRubyスクリプトファイルの数が出題された。ちなみにこれには出題者からヒントがあり、 素数 。会場は多いに沸いたのであった。正解は 2383 で、「さっき思いついて .prime? してみたら true だった」(出題者)。全然当たらないので最後の方は2分探索になっていた。

他にも出題があり、1時間くらいあったが全く飽きることがなかった。

Ninja talks

Rubyプロダクトに関わって活躍している方「Ninja」による1人あたり約30分のセッション。この日は6人のセッションを聴講し、どれも非常に濃い内容だった。一部感想と共に内容を紹介したい。

esaRubyistと私 (赤塚妙子氏)

弊社でも利用している esa.io の共同創業者である赤塚氏が、自身のデザイナーという視点からRubyコミュニティについて述べた。この中で「デザインの役割とは方向性を示すこと」という話が興味深かった。

話が若干飛ぶが、イベント終了後の懇親会で、赤塚氏も含め何人かと会話した。その中でRuby界隈でよくある、「コミッターがスターになる」「新機能の取り入れに積極的」などの特徴がなぜ生じるのか議論した。すなわち、Ruby自体のデザイン、つまり方向性がそうなっている。新機能はどんどん追加するし後方互換性も結構捨てる。だから「新しいもの好き」が集まってくる。

赤塚氏はMatz氏を「デザイナー」と呼んでいた。プログラミング言語には当然利用者がいる。プログラミング言語をデザインするとは、すなわちその言語の利用者、さらにその利用者のコミュニティまでデザインすることである。これを本人は 無名の質 という考えを引用して紹介していた。

Ruby 2.4 Internals (笹田耕一氏)

クックパッド社でフルタイムコミッターとして活躍する笹田氏のセッション。これこそRubyカンファレンスの醍醐味である。Rubyの内部実装に触れるのは非常に刺激的だ。実装だけでなくテストやベンチマークの話もあった。Ruby2.4.0のリリースとして「 lambda が速くなった」があるが、このベンチマークとして使用されたのが 「lambdaだけでFizzBuzz という尋常でないプログラムである。作者に「初めて役に立ったよ」と感謝したんだとか。

これとは別にRubyのコミットに関するセッションがあり、共通して感じたのが品質への意識である。まず課題を発見し、実装はもちろんあらゆるテストやベンチマークを実施し、報告書も提出する。バグを埋め込んだとしても発見者に感謝する。単なる「利用者」「お客さん」に収まらず共に作り上げていく、OSS開発の魅力に触れることができた。

おわりに

非常にボリュームのあるイベントだったので全ては紹介しきれないが、印象に残った部分をなるべく伝えたつもりである。参加者も全体で200人くらいいたはず。多くの人と関わるということはそれ自体勉強になることであり、それらが強力なバックグラウンドのある人であればなおさらである。カンファレンスへの参加、今後も続けていきたい。目標は9月にあるRuby Kaigiだ。

「簡易アプリ」英語で何と言う?

SIerからWeb企業への転職を果たし、Ruby on Railsエンジニアとなってからおよそ半年が経過した。概ねストレスも少なく心身ともに負担も小さい穏やかな生活を送っている。前回の更新(内容は忘れた)から半年間、書きたいことがなかったわけではないが、大声で主張したいことは勢いでTwitterに書いてしまうことが向いていると気づいたのがここ最近の発見である。当ブログは「技術系ブログ」として改めてスタートを切りたい。第一号はウォーミングアップの意味も込めて「軽い」話題から。

さて、本題である。私は入社してから現在まで、今の所移動もなく同じプロジェクトの追加開発を手がける日々を過ごしている。ある程度開発者として認識されてきたようで、比較的大きい変更を手がけることも増えてきた。そこで本日依頼されたのが、掲題の 「簡易アプリ」 のサーバーサイド実装である。

何が機密情報に当たるか分からないので詳しくは伏せるが、弊社は「地方創生」を事業として推進する方針があり、高齢化が進んだ農村にも積極的に営業をかけていて、その関係で自分の携わっているアプリの利用者には高齢者が多い。そういった背景もあって、利用者から「今のアプリは色々と複雑だ。最低限の機能だけ使える簡易版が欲しい」という声が上がったようである。

開発に着手するにあたって git checkout -b しようとした時、ふと疑問が思い浮かんだ。「簡易アプリ」って、英語で何て言おう…? 私の前職のように、文字の制限などお構い無しに 日本語ローマ字をガンガン使う プロジェクトも存在するが、今の自分のプロジェクトでは可能な限り英訳している。

この単語は単なるブランチ名に留まらず、これから「簡易アプリ」全体を代表する単語として、モデル名やメソッド名に多用するプレフィックスにしていきたい。そう考えると、プログラムの保守性の観点からも重要な単語である。いくつかの辞書系Webサービスを見ながら考えていたら、いつの間にか小一時間経っていた。意外にいい訳が見つからない。

  • “Simple” … 最初に思いついたし、Google先生も真っ先に挙げてきた単語だが違う気がした。 “simple” である方が正解で、そうでない方は望ましくないという印象を受ける。一方、今回は簡易アプリでない方も引き続き主力商品として継続する。
  • “Easy” … 「簡易」から「簡単」を連想するとこうなる。確かに操作は簡単なんだろうが、「気楽」「快適」みたいな余計なイメージも入り込む。単に機能が少ないだけであって快適とは言えないだろう。
  • “Abridged” … 「要約された」「短縮された」などの意味の単語。不勉強で申し訳ないが今日初めて知った。意味としてはいい線行っているが、日本人同士の会話で「アブリッジドの…」と言ったところで通じるだろうか?
  • “Digest” … 「部分的に抜き出す」という意味ではかなり良い。しかしエンジニア的には セキュリティの文脈 で使う印象が強すぎるので、余計な勘違いを避けるためにこの単語は使ってはいけない。

他、類義語時点などを見て回ったが、「簡易」から「単純」「簡潔」といったイメージと異なる単語、果ては「朝飯前」「お茶の子さいさい」といった慣用句まで出てくる始末。日本語での検索はいったん諦めた。

気持ちを切り替えて、英語の類義語検索サービスである thesaurus.com を見つけたので検索してみる。 “Simple” 類義語の真ん中あたりにあった単語 “Light” … これだ!

思い返してみれば、特にiPhoneアプリ界隈で、本来有料で販売するアプリの無料体験版として “〜 Light” を名乗っているアプリを何度か見てきた。「機能を制限」かつ「本当は派生的な位置付け」を意味する単語として “Light” は最適な意味を持つ。かくして「簡易アプリ」は “Light Application” としてスタートを切った。

まとめ

  • 日本語のコンセプトをきっちり表す英単語を見つけるのは意外に難しい。例えそれが、結果的に日本での知名度がかなり高い単語であっても。
  • アプリ開発業界に於いて “Light” という単語は独特の地位を築いている。すなわち、「機能制限版」かつ「派生的な存在」であることを一気に表せる唯一の単語である。

ということで、特に技術的に苦心したというほどでもないが、個人的に発見だったので記しておく。これから少しずつこんな感じで記事を書いていきたい。

今の部署でなければ、もっと長続きしたんだろうか

退職届を提出してから、逆に社内の制度や特色ある取り組みをよく見るようになった。結婚や出産関係の届け出、入社10年目になるともらえるリフレッシュ休暇、海外出張制度、3年目対象のキャリアフォロー面談、結局どれも使うことなかったな…。アイデアソンのための綺麗な部屋、社内のプロジェクトを発表する内覧会、これも「社外常駐だから」「仕事があってねぇ…」とかなんとかで全く関わらなかったな…とか思いながら。

その中に、最近のニュースとして「当社社員が執筆に協力した論文が発表」とあった。北国のとある会場で行われる学会で、弊社の社員が発表するらしい。弊社の親会社が持っている研究所から案件を受注し、共同で研究を進めていた様子だった。ちゃんと先進的なプロジェクトもあるもんだと思った。

発表者の中に、俺の同期の名前があった。

色々なことを考えた。方や入社3年目にして着実に成果を残し、社外で発表するまでに成長した。方や仕事との向き合い方に本気で悩み、結局は退職という結果になった。もっと自分に向いている部署に配属されていれば、あるいはもっと早く希望を伝えていれば、2年半ではなくもっと持ったのかもしれない。

俺の同期入社は約20人いるが、入社から2年半経った現在、退職者はまだ1人しかいない。俺が2人目になってしまった。そういえば、あいつら今頃どうなんだろうな…1年前にあった発表会などの記憶を元に、同期の顔を思い出してみる。

Aさん (男) : さっき出た、学会で発表する予定の同期。俺と同じ修士卒で、入社1年目にして産学連携関係のプロジェクトに配属され、英語の技術論文をいくつも読みつつプロジェクトを進める必要があったらしい。今度の発表はその成果かもしれない。正直言って、英語の山のような論文と向き合うのは俺は大学院で一度経験したことなので、ここだったら大変だったかもしれないがそれなりに成果出していたんじゃないかという思いが捨てきれない。

Kさん (男) : 同期の中で一番「この会社が好き」な感じがする。Aさんと同じ本部のはずで、イチからシステムを作る機会に恵まれたようだ。顧客(スポーツジム)のことをよく知るために実際に入会して要件を考えた、と誇らしげに話していたのを覚えている。ちなみに、俺の異動先としてもっとも有力だったのがこの部署。確かに、俺の部署よりは向いてそうな感じがする。Kさんにとっては「面白い仕事たくさんあるよ」だったそう。

Sさん (男) : 同期の中で唯一、俺と対等に会話する(他の同期は 敬語を使う。 完全に先輩扱い)。サシで酒飲みながら仕事の話を聞いたことがあるが、出てきたのは愚痴ばかり。進路はなかなか希望通りにいかなかったようだ。配属からしばらくはひたすら書類仕事であり、数ヶ月後にCOBOLながらコーディングの仕事を任された時には「ありがとうございます!!」と反応したらしい。正直、ここだったらもっと短命だったろうな…ただ、残業がほとんど無いらしく、そこは魅力的である。

Tさん (男) : 1年前の発表の時点ではあまり印象に残らなかったが、最近別の資料で名前を見て思い出した次第。というのも、端的に言えば 赤字大炎上プロジェクトの火消し に駆り出されたメンバーの一覧にあった。このプロジェクトについて12年目の先輩に聞いてみたところ、客が官公庁か民間企業かの違いはあるが「こことあんま変わんない」とのこと。おお、怖…

Kさん (男) : 一番の苦労人。週に3回は日付が変わってから帰宅する、配属初月に残業時間が100時間を超えた、など噂が尽きない。しかし、そうやってリリースしたサービスがニュースになると、それを同期のLINEで報告するなど、やりがいは感じている様子。ちなみにこの人の部署、俺の上司が毛嫌いしている。曰く「あそこは昔の酷かった頃のウチだ」。

Mさん (男) : 今のところ、2014年度入社組で唯一の退職者。プログラミングが大好き、無駄なことはしたくない、といった雰囲気が一番強かった。しかし配属されたのはテスター部隊。あらあら。結局、1年半も持たずに退職していった。

で、このMさんとは本人の退職後に一度会ったことがある。その後は小さい会社でiOSエンジニアとして働いていたが、しばらくして会社ごと消滅し、今は当時の経験を生かして求職中、とのことだった。結局どこに決まったんだっけか。俺と似て、一定数いるベンチャー志望のエンジニアだったようだ。

うーん、こうして書いてみると、いい環境で若手が活躍している部署の方が少ないな…。20人もいて、よくみんな頑張っているものである。多分、この業界には「SI指向」と「ベンチャー指向」の少なくとも2種類の人間がいて、それぞれ落ち着くべきところに落ち着く力学が働くのではないだろうか。これはまたの機会に考えたい。

タイトルで書いた質問に答えるとすれば、 「YESだが、可能性は低い」 とか 「今の現場は結構マシな方」 といったところか。なーんだ。

退職届

前回から色々あった。

転職先の内定が決まった。すなわち今の会社の退職も決まった。そして今日、退職届を作った。やはり会社を辞めるとなると、立場が上の人も含め色々な人と関わるわけで、これはこれで疲弊する。でも、もう直ぐ終わることだ。

結果的に、転職エージェントを経由しないで内定先が決まった。事実を恣意的に取り出すと、「書類選考で一度落ちた会社に内定をもらった」ことになる。人生何があるか分かったもんじゃない。ただ一つ言えるのは、転職したいなら 志望する会社の人と直接交流を持つ ことは非常に強力である。他の人の参考になるとすれば。

この結果に至るまで、思えば色々あった。勉強会に行くようになったので、友達は増えた。いつの間にか一緒に花火を見に行く仲にもなった。勉強会に行かなければ出会わなかったであろうお姉さんに片想いもした(振られたけど)。逆に、変な輩に絡まれてネズミ講に片足突っ込みそうになった。決まりそうだった会社に蹴られてむしゃくしゃして テレビをぶっ壊した こともあった。ともかく、「会社辞めたい」となると良くも悪くも色んな人が集まってくる。

しかし、一番印象的だった出来事は、意外に身近なところにあった。実の父親との議論である。彼自身何度も転職を経験し(しかも自分と違い妻も子もある身で)、逆に転職に来た人間を採用する立場から判断した経験もあり、さらに言えば何度か転職に失敗している。そして今、結果的にかなり理想的な仕事をしている。俺とは人生経験が桁違いだし、その言葉にも説得力がある(酒飲んでたけど)。

覚えておけ、 焦る乞食は損をする。 お前が(新卒の)就活生だった時、「焦る乞食」だったから今辞めたいわけだろ。今回もそうなっていないか?


仕事を選ぶ基準は究極的に3つだけだ。 「できる事」「やりたい事」「やるべき事」 のバランスだ。 俺が今のお前くらいの年だった時は悩みはなかった。「やるべき事」しか目の前になかったから。 だが、俺とお前じゃバックグラウンドが違う。お前には「できる事」と「やりたい事」が突き出ている。 だから、お前が仕事を変えたいと思うのも無理はない。俺とお前は違う。

そして、面接に向かう俺に「頑張れ」でも「やめといた方がいいんじゃない…」でもなく、必ず 「楽しんでこい!」 と声を掛ける人だった。「会社辞めたい」と嘆く息子に対してこの言葉が言える父親は、なかなかいないと思う。ある意味で、本当に息子想いな態度かもしれない。

転職に向けての動きはまだまだ続く。新しい職場が理想的かどうか分からないけど、今はもう進むと決めたから進むしかない。その中で、父親含め周囲の人はある意味で冷静な視点をくれる。明日からさらに頑張らねば。

なぜ生きる

Twitterにも何度か書いたが、手っ取り早く達成感を得るにはブログが一番だ。つまり俺がブログを書いているということは、何かしら達成する必要があると感じているということだ。それは勉強会の場であったり、遊び呆けていた週末であったりする。今回に関しては、面接の直前だからだ。

転職活動を初めてもうすぐ2ヶ月近くである。案外早いものだ。ほぼ全ての面接に落ちているが、これだけ続けていれば少なからず得られた知見がある。面接に落ちたとしてもだ。(大事な事なので2度言いましたよ)

大体の面接で共通しているのが、志望者の具体的な技術というより、何というか、「哲学」のようなものを見ようとしている。要するに、その会社の所属する業界や扱っているサービス、それを実現する技術、あるいはその会社自身について、また将来の自分自身について、「どういう意見を持っているか」が問われる。そして、面接の合否は意見が合う/合わないかどうかの判断の結果であり、決して優劣でない。…よね?でなければ俺鬱になっちゃうよ?

「意見を持つ」ことは意外に難しい。まず、対象について深く考えなければならない。そして判断を下さなければならない。その判断が「意見」だ。よく聞かれる質問には前もって真剣に考えておく必要がある。時には全く用意のなかった対象について「意見」を求められることもあるので、素早く考えて判断を下す思考力と、その間の場をつなぐテクニックが求められる。

で?俺は将来何になりたいんだ?

せいぜい数年しか在籍しない学校の入試では全く問われない。新卒就活の時も意外に聞かれなかった。仕事に追われていると考える機会がない。しかし、今の面接ではこれが核心となる。3年後、10年後、あるいは50歳になった時…遥か先のことではあるが、その時は確実に訪れる。正直言ってうすぼんやりとしか思い浮かばないが、無理にでも判断を下さなければならない。それが「意見を持つ」ということだ。

まあ、やっぱり起業はしたいよね。人の言うことに従うより、自分のペースで自由に働きたい。そんなうすぼんやりした理由。しかし、こんな「逃げ」の姿勢では面接は絶対通らない。俺だってそんな人雇いたくない。そこで、今までの面接で実際によく使っている手が「時代の変化についていきたい」という意見である。今の職場を辞めたい理由とも整合性がある。

俺は特に新しモノ好きだ。流行を追いかけたい性格だ。開発手法にしたってAPIにしたって、IT業界であれば毎日のように新しい便利な機能が登場している。そういう新品を実際に使ってみたい。しかし、今の会社では人生の大部分を占める仕事の時間において、使うことは叶わず眺めることしかできない。なので、そういった新品が使える環境に行きたい、ということを正直に話す。

さらに、将来の目標を聞かれたら、今度は自分が新品を提供する側に行きたい、と言う。そして、3年後はそのための準備期間であり、今まで遅れた分を取り戻す。そういった機能は実際、転職に必要だから勉強を始めた側面はあるが、やはり興味深いなと思う。根気さえあれば。あとは、こういった内容を、いい雰囲気で言う必要がある。「自分の成長のため」を強調しすぎると、じゃあ会社のためには動いてくれないの?となるため、「お互いの目標に貢献する」という展開にしたいところだ。

さて、面接では大体こういうことを話すが、実際10年後はどうなっているんだろうか。ねこばば、36歳。どこの会社にいるのか、毎日何を考えて生きているのか。さらに後、70歳になったら。定年退職してしまうのか、役員のイスに座っているのか、はたまたどこかの荒野を放浪しているのか。結婚しているのか、相手すら見つからないのか。

人生は計画通りにはいかない。しかし向かうべき理想を考えることは必要だ。

アルフレッド・アドラーさんが言うには、「人生は別れの連続だ」という。別れのない出会いはない。人は必ず死ぬからだ。そして、理想の人生を歩むためには「最高の別れのために何ができるか考えよ」とのことである。会社で働いて、しかもさっき書いたような自分の成長と、会社のプロジェクトへの貢献ができれば、まあ「ここでよかった」と思えるのかな。

面接行ってくる。