ソフトウェア開発の市場が一番熱い分野のひとつだというのは、誰もが知っている。高い給料の約束、安定した雇用、成長の余地。この業界ではどれもよくある話だ。
これは目新しい話ではないし、その手の話はもう一般の人たちのところまで届いている。これは2020年3月のブラジルのビジネス誌の表紙だ。
「彼らは20代前半で、どこで働くかも給料も自分で選ぶ。彼らを採用するために、企業はスタートアップを丸ごと買収することさえある。育成のための学校が全国で次々に生まれ、しかもすでに順番待ちの列ができている。ようこそ、ソフトウェア開発者の素晴らしき世界へ。」
大して知らなくても高い給料がもらえる、という約束が、多くの人をこの分野へと一気に引き寄せる。もちろんこれは誇張された話で、例外的なケースや、焚きつける先が長期的には成り立たない市場だろうがお構いなしに、燃やせる無限の軍資金を持っている企業の産物だ。
以前はプログラミングに興味などなかったのに、今になって突然興味を持ちはじめた人を見つけるのは、そう難しくない。しかもその興味はたいてい、非現実的だったり無責任だったりする金銭的な約束に結びついている。
プログラミングは簡単だと説く人は、結果は努力に比例するという一言をいつも付け足し忘れる。PCの前に座ってインストラクターのやることをくり返すだけの手っ取り早い講座(たいていの講座はそうだ)を受けたところで、実際に身についたのはコードのいいタイピストであって、プログラマーではない。ましていいプログラマーなどではない。もしかしたら一緒に働く人たちの平均的な知識レベルには達しているかもしれない。でも勘違いするな、平均と凡庸は双子だ。
リモートワークの話は言うまでもない。パンデミックのおかげで一気に広まり、今ではほとんどのテック企業の標準になっているように見える。もちろん、これがずっとこのままだとは思わないほうがいい。すでにいくつかのビッグテックでは、逆方向の動きが起きているのが見てとれる。
なぜリモートワークを持ち出すかというと、企業がジュニアや、ましてやインターン向けにリモートの求人を出すのは、途方もなく無責任なことに思えるからだ。キャリアの入り口にいる人から、シニアな人ともっと頻繁に、もっと濃く関わる機会を奪うこと、そうでなければ自分の交友の輪には入ってこなかったであろう人たちとつながりを作る機会を奪うことは、速くて確かな人としての成長、プロとしての成長の機会を奪うのと同じだ。
キャリアの入り口にいる人には、頻繁なやりとりが、手本にできる人が、そして経験豊富な人への素早く実践的なアクセスが必要だ。リモートワークは、安っぽい安楽と引き換えにそのすべてを奪っていく。もしあなたが初心者で、この文章からひとつだけ持ち帰るものがあるとすれば、これだ。その安楽を自分の人生に受け入れるな。リモートは楽な道で、楽な道はたいていいい終わり方をしない。今ははっきり見えていなくても、そこで払うプロとしての代償は高すぎる。
こうしたすべて、この約束の海と、この手の近道を考え合わせれば、多くの人がその手口に引っかかり、この仕事が好きでもないのにプログラマーとしてのキャリアを選んでしまう理由もはっきりする。
そして労働市場でも、その影響ははっきり見てとれる。能力が下がっていく一方の人材が、どんどん高い報酬を求める。
それでもなお、こうしたことを全部わかったうえでテックの分野を選ぶなら、腹をくくって入れ。コードの断片をあちこちからコピーすることしか知らないプログラマーの群れの、ただのもうひとりになることで満足するな。打ち込め。学び方を学べ。来る日も来る日もサイドプロジェクトを作り、育てろ。仕事の時間だけに自分を縛るな。現実の問題を自分で解け。すでに解かれている問題でも、自分でやってみろ。ひとつのフレームワークや言語のスペシャリストであるプログラマーになるな。市場はもうそういう人であふれている。この仕事のコアを学ぶことに打ち込め。堅牢で、何十年経っても変わらないものを。いちばん外側の層を回り続けるのも、ひとつやふたつの技術だけに集中するのもやめろ。そんなものは毎日変わる。毎日、新しいフレームワークが、革命的な新技術が現れる。それが大事なことではないと早く気づけば気づくほどいい。アルゴリズム、データ構造、デザインパターンを学べ。そして何より、手を動かせ。毎日だ。手を動かして、手を動かして、また手を動かせ。自分では解けない問題にぶつかるまで満足するな。そしてそういう問題に出会えたら祝え。本当の学びが起きるのは、まさにそういう挫折の瞬間だ。
いい本を読むことと、いいプロを追いかけることも忘れるな。くり返すが、言語AやBについての本に集中するな。フレームワークXやYについての本もだ。そんなものはどうでもいい。この分野の巨人を読み、彼らから学べ。『Clean Code』、『The Pragmatic Programmer』、『Coders at Work』を読め。こうした著者のコンテンツをYouTubeで探せ。たとえばロバート・マーティンの素晴らしい講演は、みんなに開かれた無料の宝物だ。
ちなみに、『The Pragmatic Programmer』の最初の教えは「Care About Your Craft」だ。そしてこう言っている。うまくやることを気にかけないのなら、なぜ人生をかけてソフトウェアを作るのか、と。
つまり、プログラマーになると決めるのは、いいプログラマーになるためならばだ。そうでないなら、別の職業を選べ。そしておとぎ話に引っかかるな。本物のプログラマーになるのは簡単でも速くもないし、それを一人きり(リモート)でやると選べば、はるかに難しくなる。どんな職業でもそうだが、近道は存在しない。全部乗せでいくか、平均でいるか、どちらかだ。