はじめに
この記事は「新人エンジニアの私が圧倒的成長するためにやっていること - Qiita」のパロディーです。
「ロートル」という言葉が既に死語なので,タイトルの意味がよく分からない人も少なくないでしょう。
これは「老人」という意味ですが,ふつう否定的なニュアンスで使われます。年を取って能力が衰えたり,時代遅れになったりということを捉えて言います。他人を揶揄するときにも,自嘲的にも使います。
こんな古い言葉を使っている時点で既にロートルなわけです。
この記事は,ロートルを自任する筆者が,ソフトウエアエンジニアとして日々感じている老化に抗(あらが)うために「こうすればいいな」と思いつつやれていないことを記します。
勉強し直し
私は JavaScript がちょっとだけ書ける。私の仕事の範囲では,ちょっとしたスクリプトが書ければ十分なので,あまり困ってはいない。
しかし,私の JavaScript の知識は 10 年以上前のものだ。
この 10 年で JavaScript は大きく変わった(らしい)し,周辺技術はもうワケわからんくらい新しいものが出てきた。
最近書かれたコードが読めないんである。
then
てなに? ぷ,プロミス? そりゃあプロだってミスはするさ。
もう一度 JavaScript を新しい気持ちで勉強し直さんといかんのだ。
いや,手をこまぬいているわけではない。
実際,入門書でゼロから勉強しかけた。おかげで let
と const
は習得したぞ(笑)。
しかしロートルゆえにまだ then
が出てくる章まで行っていない。
禅の境地に達するにはまだ修業が足りないのだ。
好奇心を保つ
老いとともに衰えがちなのが好奇心だ。
しかし,好奇心こそ新しいことを学ぶ原動力ではないだろうか。
手持ちの技術でどうにか仕事がやれてしまっていると,新しいことを学ぶ意欲が十分にわいてこないことがある。これは老化のサイン。
私の尊敬する一世代上のあるエンジニア(故人)は,亡くなる直前まで実に旺盛な好奇心を見せていた。自分がキャリアを積み上げた技術に取って代わるような新しい技術にも意欲的に取り組み,面白くて仕方ない,といったふうだった。
私もそのようにありたいと思う。実際,私の中にも好奇心の火はまだ燃えている。
だが。
新しい技術を学ぶのは大変だ。けっこうな時間を費やさなくてはならない。
新しい概念や,ときには新しい思考法を身に付けなければならないこともある。
解説を読むだけではダメで,自分でコードを書いていろいろ試してみなければ理解が進まない。
それだけやって得た技術が,実はスジの悪いものだったり,すぐに廃れたり,目的に合わないことがあとで分かったりすることも少なくない。
正直なところ,React.js や Chef に多大な時間を費やさなくてよかったと思っている(これらが悪いというのではなく,自分の目的などなどに照らして得るものが割に合わなかっただろうという意味)。
そこで,「何を学ぶかはよく見極めて」ということになる。これ自体は必ずしも間違っていない。
ところが,そうこうするうちに,いつの間にか新しい技術への好奇心をも失っている自分に気付く。
学ぶかどうかはともかく,「えっ? なになになにソレ?」っていう気持ちは持っていたい。
健康管理・体調管理
健康管理はすべての人に重要だが,ロートルにとっては若い者よりずっと切実だ。
高血圧になって降圧剤を飲むことになったとしよう。よくは知らんが副作用で眠気を催すことがあるらしい(薬によるのかな)。
これでは我々の仕事に大いに差し支える。
(降圧剤を飲んでいるエンジニアをダメと言っているのでは全くない。降圧剤を飲まなければならないことが,頭をシャープに保って仕事をするうえで不利になりうることを言っている)
睡眠
我々の仕事にとって,きちんと睡眠を取ることが大事なのは論をまたない。
若い頃は気合いでどうにかなった場合でも,ロートルになると無理がきかない。
夜更かしはやめよう。たとえあの OSS のあの issue が気になったとしても。
運動
我々のような座り仕事(まあ立ってコーディングしてる人もいるけど)では,生活の中に意識して運動を取り入れないと極端な運動不足になりうる。健康を保つうえで良くないのは間違いない。
が,ぜんぜんやれていない。
プログラマーの中には筋トレの好きな方がけっこういらっしゃるらしい。その効用も,一部の人が信奉するほどではないかもしれないが,実際にあるのだろうと思う。
老化に抗うために良さそうなことをやろうという気が起きないこと自体が老化を意味しているようだ。
英語力をつける
言うまでもなく,ソフトウエアの仕事で英語力は不可欠だ。
いわゆる四技能のうち,「読む」が圧倒的に重要で,ライブラリーのドキュメントや解説本・解説記事などを素早く正確に読み取る能力があるとないでは大違い。
Google 珍訳翻訳もある程度は役に立つが,肯定と否定を取り違えるなどの誤訳も多く,とても信用できるものではない。(どんな単語が出てくるかを眺めるにはよい)
OSS(オープンソースソフトウエア)に issue を立てたり開発に参加したり,自分の作ったものを公開したりするには,「書く」力も必要となる。
仕事の種類,職場の状況,関わるプロジェクト,顧客などなどによっては「聞く」「話す」も必要になるが,私の仕事では必要ない。
私は「読む」も得意でなく,とにかく時間がかかる。仕事中に必要に駆られて英文を読むことが多いが,読むことにいくらでも時間が使えるわけではないので,イライラしながら読むが,理解度も十分ではない。
いまちょっと具体的に思い出せないが,副詞なんかで,何十回も辞書を引いてきたのに,中学英語くらいの単語なのに,どうにも覚えられなくて,出てくるたびに辞書を引くものがいくつもある。時間の無駄だ。
語彙力はある程度辞書でカバーできるが,かといって辞書を引けば大丈夫,というものでもない。
文中に「get a computer to talk」なんてのがあったとして,「× 話すためにコンピューターを得る(?)」とか「× しゃべるコンピューターを得る(?)」ではどうも意味が通じないので辞書を引こうと思ったとする。
「get」を引けばよさそう,というのは分かるが,「get」の項には膨大な記述があり,その中から当てはまりそうなものを短時間で探そうとしてもムリ。(そこそこの時間があり,ある程度のコツが分かっていればどうにか探せるだろうけれども)
語彙力も問題だが,文法が分かっていないので,構文が取れない。これはもう,場数を踏めばいいとか,慣れとかでどうにかなるものではない。
書くほうで言うと,自分が使っているライブラリー(OSS)のバグを見つけて issue を立てたりする機会はたまにある。
バグを直してもらわないと本当に困るので,苦手でも仕方ない。
ありがたいことに,ある程度はコードに語らせることもできるので,うまくコードサンプルを書いて,単語を適当に並べたら意図を汲み取ってくれることも多い。
しかし,議論になるとまるでダメ。やり取りができない。
また,問題点を文章で説明しなくてはいけなくて,うまく表現ができなくて書くことを諦めてしまうこともしばしば。
そこで。
何度か英語を勉強しようとしたことはある。
しかーし,頭に入ってこない。そして,続かない。老いを感じる。
長々と書いたが,まとめると,「英語を学ぶ必要を感じているがやれていない」となる。
アウトプット
アウトプットの効用は既に多くの方が書かれているので繰り返さないが,適切なアウトプットの努力が良いものであることは私も理解している。
ブログも Twitter もやっていない私は,技術的アウトプットというと Qiita に記事を書くことになる。
Qiita に記事を書き始めて 4 年近くなるが,記事の総数はわずか 68 本。
ここ最近ペースが落ちていて,今年に入ってからは 5 本だ。しかも小ネタ化している。
書こうと思ったネタはいくつもあるのだが,書きかけで止まっているものや,書きかけてすらいないものが多い。
ヤングの中には,1 日 1 本とか,すごいペースの定期投稿を自らに課している方もいらっしゃって恐れ入る。1 週 1 本だってとてもムリ。
この記事だって自らに鞭打つ思いで,ようよう書き上げたんだぜ。