読者です 読者をやめる 読者になる 読者になる

(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

社会人 6 年目の僕から新社会人だった頃の僕に教えてあげたい幾つかのこと

最近、僕より若いか同い年くらいの前途ある若者と話をする機会があって、だいたい新社会人だとか学生だったりで将来とか仕事とかについて相談を受けたりすることがあるんだけど、そんな彼/彼女らを見ていると「出来ることなら昔の自分にも教えてあげたいことが沢山あるなー」という気持ちになってくる。ので、まぁもし僕が自分自身の若い頃に助言を出来るならこういうことを教えるだろうなーというようなことを書いてみる。ひいては今プログラマを目指している若者たちに対するおじさんからのメッセージになるといいかなと思う。

エディタをひとつ使いこなしたほうがいい

ひとつだけでいいのでまともに何かを極めて欲しい。なんなら IDE でもいいけど、そのへんは自分が今使っている言語に合わせて変えて欲しい。サクラエディタや UnEditor なんかを使いこなせても仕方ないから、兎に角早い段階で Emacs/Vim なんでもいいけど、そのへんの拡張可能なエディタを使いこなせるようになってほしい。あとマウスを極力使わない方向で色々出来るように頑張ってほしい。キーボードの上から手を動かすことすら嫌だと思うくらい怠惰になってほしい。怠惰はエンジニアの美徳だ。

勉強する言語を絞ったほうがいい

色んな言語、新しい言語が気になるのは分かる。これから流行りそうなものを勉強したい気持ちも分かる。だけど、あれもこれもと手を出しても仕方ない。「これ」という言語をひとつ決めて一年間まともに勉強しよう。そうしたときにようやく他の言語の良さが分かるようになる。「 C とか Java とか古いし、冗長だから嫌」なんて誰でも言えるような定型文を口にする前に、腰を据えて何かひとつちゃんと勉強してみよう。勿論、それが Lisp ならとても素晴らしいことなので、一年と言わず一生使い続けよう。

公式のドキュメントを読む癖をつけよう

幾つもの雑に簡略化されたブログ記事を読むより、ちゃんと公式の API ドキュメントを眺めたほうがいいことが多々ある。もちろん、そのブログ記事や wiki などのドキュメントは先人たちが積み上げてくれた素晴らしいものではあったりするのだけれど、だいたいきちんと管理されていないものというのは古くなってしまっていて、そのときの状況に即していないときが多々ある。しかしながら公式のドキュメントであればだいたいバージョンごとにドキュメントが残っていることが多い*1。きっと公式のドキュメントは難しい言葉を使っていたり、もしかすると英語だったりするのかも*2しれないけど遅かれ早かれ何かしらの公式ドキュメントとと向き合う必要が出てくるのだから、そういう癖をつけていったほうがいい。

英語でググる癖をつけよう

残念なことに新しいことをやろうと思えば思うほど、日本語の情報は乏しくなる傾向にある。なので、ある程度英語でググったり出来るようになったほうがいい。あと、英語でググれるようにするために色んな環境を英語にした方が楽かもしれない。開発中に何かがエラーを吐くかもしれないけど、無駄に日本語化とかしているとググったりするときに不便をしたりするかもしれない。日本語の情報よりも英語の情報の方が多いのは、仕方ないことなのでそれに慣れるよう努力しよう。

情報に踊らされないこと

はてブホッテントリをウォッチしたり、 Twitter を日柄一日見るのをやめたほうがいい。そんなことしても何も得るものはない。勿論エンジニアとして生きていくために新しい情報をキャッチアップしていくことは大事なんだけど、ホッテントリTwitter には有用な情報よりどうでもいい情報の方が多い。情報の消費者でいる間は何も変わらないし、無限に流れてくるどうでもいい話をいちいち真に受ける必要はない。もちろん僕のブログを真に受ける必要もない。

勉強会に行ったことだけに満足するなら行かないほうがいい

勉強会に行くなとか発表しないなら行く意味がないとかそういう話ではなくて、「その勉強会に参加することで得るものがある」と自分を説得できないなら行く必要がないということ。「何か得るものがあるかもしれない」ならきっとそれは必要ないものだと思う。考えれば分かることだけど、短いもので 2,3 時間、長いもので 5,6 時間は平気で時間を取られる。その時間自分で勉強すれば、それは間違いなく自分のためになるんだけど、勉強会に行っても得るものがないときはある。またたいていの勉強会で資料は後日公開されることが多い。そして、それは結構な割合でスライドだけで完結してるケースが多い。つまり、興味あるスライドだけ読めばいい。「得るものがあるかもしれない」という曖昧な状況で勉強会に参加するくらいなら、参加しないほうがいいこともあると思う。

「凄い人が言ってた」は気にしなくてもいい

「これからは xxx が流行る」「 yyy の時代」とかよく「凄い人」が言ってるけど、気にしなくていい。だいたい 1~3 年もすればその人は違うことを言ってる。一過性の流行り廃りを追いかける前にたぶんきっと貴方は勉強しなくてはいけないことが沢山あるはず。もちろん、それを追いかけることが出来るスキルや知識があるならどんどん追いかけていいと思うけど、自分で情報の上流に行って「どれが流行るか」を見極め出来るようになるほうがいいと思う。

煽り文句は無視していい

ひとつ上のやつと似てるけど質が悪いことに、だいたい煽り文句がタイトルに付いている本とか記事とかは素人かにわかが適当に書いているだけなので、信頼出来ないことがままある。たまーにまともなことを書いてあるものもあるけど真贋見分けるのがめんどくさいので、無視したほうがいいという経験則。本当に良いものなら自然と目に入ってくるはず。

今出来る努力をしよう

どんなに環境が最悪で理解者が周りにいなかったとしても、それは自分が立ち止まる理由にはならない。愚痴を言っている時間があるなら技術書のパラグラフひとつは読めるし、コードを書く時間だってあるはず。塵も積もれば山となる、とはよく言ったもので、無駄使いした時間やお金も等しく積もっていく。無駄使いした時間は返ってこないので、そうならないように無駄にならない時間を積み重ねていこう。

適度に息抜きを

たまには立ち止まって深呼吸するのも大事。あんまり思いつめてもすぐに何かが変わるわけじゃない。今している努力はきっと数年後何かしらの形になって返ってくるから、自分を信じて努力しよう。

まとめ

色々書いたけど、過去の自分自身/若者に対する助言なんていうものは結局自分が昔それで苦労したから、同じ苦労をしないで欲しいというくらいの願いでしかない。なので十人に聞けば十人とも僕と同じようなことを言うというわけではないと思うし、僕が絶対的に正しいというわけでもない。
相変わらず何かを為せたわけではないけれど、少なくとも昔に比べれば今の自分は自分の納得できる立ち位置をどうにか獲得できてきている気がするので、ここに書いたことを自戒としてまた明日からも頑張るよ。

*1:Java は特に素晴らしいと思う

*2:公式のドキュメントは英語が多く、日本語まで提供してくれるものは多くはない