情報科学
機械が実行できるほど正確に問題を模型化する訓練を与える——そして、それが規模のなかで、故障のもとで、そして誰かに攻撃されながら実行されたとき何が起きるかを筋道立てて考える訓練を与える。
専攻まるごとに一つの数字を付けると、肝心なものが隠れます——この学位はいくつかの別々の能力を訓練しており、そのすべてが同じ方へ動いているわけではありません。自動化が働きかけるのは業務なので、評価は下にある職業のページの上にあります——ここではありません。
四年制の情報科学およびソフトウェア工学の学位に向けて書いている。研究向けの課程とハードウェア中心の課程は、事情が大きく異なる。
この学位が実際に訓練するもの#
履修科目の一覧ではなく、その下にある能力と、その一つひとつが以前より価値が上がったか下がったか。
問題を正確に模型化する
以前より価値が上がった誰かが漠然と述べたことを、未定義の場合のない仕様に変えること。
生成は仕様より下流にあり、誤った仕様を、人がやるより速く増幅する。いまや結末をより多く決めているのは、コードを書く人ではなく仕様を書く人である。
故障について筋道を立てる
以前より価値が上がった並行処理のもとで、途中で落ちたときに、想定外の入力で何が壊れるかを——壊れる前に知っていること。
生成されたコードの天井が最もはっきり現れるのがここである。負荷のもとで間違っている流暢なコードは、本番に入るまで、正しいコードとまったく同じに見える。
よく知らない系を読む
以前より価値が上がった他人のコードベースを、どの観測が決定的になるかが分かる程度に頭のなかに保つこと。
機械が産み出すコードが増えるほど、仕事のより多くが、誰も手で書いていないコードを読むことになる。もっともらしいのに間違っているコードをレビューすることは、独立した、そして新たに中心となった技能である。
定型的なコードを書く
単独では価値が下がった仕様のはっきりしたものを、正しく、その言語らしい形で実装すること。
仕様がはっきりしていて、学習の素材に大量に含まれていて、走らせればすぐ確かめられる——コード生成にとって最も強い筋書きである。ただし注意——自分に書けなかったコードは判断できない。だからこれは、成果物であることをやめても、前提であり続ける。
基礎
横ばい計算量、データ構造、並行処理の模型、そして計算機が実際にどう実行しているか。
この学位のなかで最も古びるのが遅く、そして入門の記事からは身につかない部分である。見たことのない系について筋道を立てられるようにしているのは、これである。
どこへ通じうるか#
方向はいくつもあり、一つだけということはありません。それぞれが、自分の訓練のどこが再利用できるか、卒業生に何が欠けがちか、入口の現実、そしてこの学期に試せることを一つ述べます。
ソフトウェア開発へ、意識して入る
業務水準の分析 →- 持ち越せるもの
- すべてを使う——これは直通の道である。
- 卒業生に欠けがちなもの
- 足りないのは知識ではなく、判断の証拠である。昔ながらの最初の職は、二年間、定型的なコードを書くことに報酬を払いながら判断を教えていた。その取り決めが弱まりつつあるので、普通なら求められない時期に、レビューできる水準の思考を示さなければならない。
- 入口の現実
- 梯子の一番下の段は以前より狭く、上のほうは無傷である。職業のページを読むこと——入社直後と上級の落差は、最初の一群のどの職業よりもここで鋭い。
生成されたプルリクエストを一つ——自分のものでも公開されているものでもよい——取り、本物の問題を見つけるレビューを、理由まで書き切る。毎週やって残しておく。その一式は、もう一つ仕上げた練習作より値打ちがある。
間違いが高くつく領域
業務水準の分析 →- 持ち越せるもの
- 故障についての筋道と基礎を、人が輪のなかにしっかり残っている場所で使う——決済、セキュリティ、データ整合性、インフラ。
- 卒業生に欠けがちなもの
- ある特定の領域での深さであり、それは時間だけが生む。卒業生の大半は広さを持ち深さを持たない——そしてこの道にとって、それはちょうど逆である。
- 入口の現実
- 入口の求人は少ないが、あるものは晒され具合が低く、報酬も良い。たいていは直接ではなく、どこかで一、二年過ごしたのちに辿り着く。
そういう領域を一つ選び、実際に動いている系がそれをどう扱っているかを端から端まで読む——公開されている決済や認証のライブラリでよい——その壊れ方を同級生に説明できるようになるまで。
エンジニアリングと問題のあいだ
- 持ち越せるもの
- 問題の模型化と、系を読む力を、機械と、人がそこに求めているものの両方を分かっていることが価値になる場所に当てる——ソリューションエンジニアリング、開発者体験、技術寄りのプロダクト。
- 卒業生に欠けがちなもの
- 伝えることを、柔らかい技能ではなく一級の技能として扱うこと——実際にたどれる説明を書くこと、そして自分と語彙を共有しない相手との会話を回すこと。
- 入口の現実
- 新卒の段階で募集されることはまれで、たいていは開発を何年か経てから横に入る。早いうちに存在を知っておく価値があるのは、そこへ向けて積めるからである。
自分がつくったものの説明を書き、事情を知らない人に渡し、助け船を出さずにどこで詰まるかを見る。その沈黙が学びである。
ソフトウェア以外の分野でのエンジニアリングの考え方
- 持ち越せるもの
- 道具立て全体を、その分野を分かっていて、しかも作れる人がほとんどいない場所に当てる。その組み合わせは希少であり、生成と正面から競合しない。
- 卒業生に欠けがちなもの
- その分野そのものを、ほぼゼロからやり直すこと——そして、後退しているように感じる一年目への辛抱。
- 入口の現実
- 決まった道がなく、それは両方に効く——並ぶべき列もないが、そのために人を採っている者もいない。たいていは、その分野との個人的なつながりから始まる。
ソフトウェア以外の分野で、繰り返しの多い困りごとを抱えている人を一人見つけ、実際にその人が楽になる最小のものをつくる。一人が使っていることは、百の星より値打ちがある。
テストと品質のエンジニアリング
業務水準の分析 →- 持ち越せるもの
- 故障についての筋道を、そのまま職にする——利用者より先に系がどう壊れるかを割り出し、それを証し続ける仕組みをつくること。
- 卒業生に欠けがちなもの
- 卒業生はたいてい、自分が書いたコードのテストを書ける状態で来る。それが易しい場合である。仕事は、他人が書いたコードを、その人の締め切りのもとで試すことである。
- 入口の現実
- ソフトウェアのなかでは開いている入口の一つであり、そして不当に格下と扱われることが多い。決める前に職業のページを読むこと——テストの生成は、このサイトで最も検証済みの証拠が集まっている業務の一つであり、そしてその証拠が変えるのは、この職のどちらの半分が残るかである。
自分が書いていない同級生の制作物を取り、その人が想定していなかった壊し方を三つ見つける。そのうちどれが、生成されたテスト一式に捕まっていたかを書き留める。
企業のなかでAIを実用に乗せる
業務水準の分析 →- 持ち越せるもの
- 系を読む力と問題の模型化を、道具を買ったあと、監督なしに何をやらせてよいかを決める人を必要としている会社に当てる。
- 卒業生に欠けがちなもの
- 卒業生は、この仕事の大半が技術ではなく組織のものだと見くびっている——二つの部門を合意させること、そして取り違えが起きたときにその場に立っていること。
- 入口の現実
- 最初の職になることはまれであり、外から読み取るのが本当に難しい——この職業は、このサイトが確からしさを低く印づけるほど若く、しかもそれについて書かれているものの大半が、AI導入の支援を売っている人によって書かれている。それは避ける理由ではなく、自分で見に行く理由である。
学内の団体や研究室が実際に使っている道具を一つ選び、それがいま自分だけで何を決めていて、何には人が要るはずかを1ページ書く。その道具を管理している人に見せ、どの行に異を唱えるかを見る。
人が実際に触れる層
業務水準の分析 →- 持ち越せるもの
- 問題の模型化を、未定義の場合が見知らぬ人の目に見えてしまう唯一の場所で使う——誰も描かなかった状態。空、半分読み込まれた状態、接続なし、そして利用者がまだ入力している最中に届くエラー。
- 卒業生に欠けがちなもの
- アクセシビリティである。情報科学の学位はそれをほとんど教えないし、多くの市場でそれは、あれば良いものではなく法的な要件である。この道にとってそれが何を意味するかに注意すること——学位が飛ばした部分こそ、後ろに法のある部分である。
- 入口の現実
- ソフトウェアで最も広い入口であり、そして生成された画面の実演が最も恐ろしく見える場所でもある。その実演から結論を出す前に職業のページを読むこと——うまく生成されるのは最初の一画面であり、この職の残りは、実機と、実際の回線と、ほかの全員がその上に築く部品である。
自分がつくった画面を取り、マウスを使わずキーボードだけで最初から最後まで通す。詰まった段を書き留める。そしてその段を直す——いま自分は、この職のうち生成されない部分をやったのである。
配管と、出てきたものに誰が答えるか
業務水準の分析 →- 持ち越せるもの
- 故障についての筋道を、この学位が身構えさせてくれて、しかも大半の人が考えもしない失敗の形に向ける——何のエラーも出ないまま、数字がただ間違っている形である。
- 卒業生に欠けがちなもの
- 卒業生は問い合わせを書いたことはある。上流の系が誰にも告げずに項目を変えたせいで午前三時に壊れるものを、維持したことはない。そして、ある数字が何を意味するのかを一文で、記録に残る形で述べるよう求められたこともまだない。
- 入口の現実
- 機械学習の扉より広く、そしてずっと空いている。一つには華やかでないからであり、一つには、この仕事が壊れたときにしか目に見えないからである。職業のページは率直である——その最初の業務、取り込みの経路をつくることこそ、最も速く自動化されている業務である。残るのは、定義について誰かが責任を負わなければならない部分である。
毎日ひとりでに回る取り込みの経路をつくり、そして意図して一件だけ壊れたデータを先頭に入れ、何かが教えてくれるかを見る。たいていの人にとって、最初は何も教えてくれない——その沈黙が、この職業を一つの実験にまとめたものである。
振る舞いが学ばれる系
業務水準の分析 →- 持ち越せるもの
- 基礎と故障についての筋道を、なぜそう動いたのかを誰も行ごとに説明できない系に当てる——だから筋道は、機械的ではなく統計的でなければならない。
- 卒業生に欠けがちなもの
- 実験の設計と、自分の結果を疑えるだけの統計。そして講義がめったにはっきり述べないことが一つ——手元の指標では良くなり、それを使われる人にとっては悪くなるモデルは、事故ではなく通常の場合である。
- 入口の現実
- 同じ名前で呼ばれている二つの扉がある。研究寄りの職は狭く、大学院が前提で、そして全員が応募する。より広い扉は、買ってきたモデルの上での応用の仕事であり、それは伸びており、この名前では募集されていない。職業のページも同じように職を割っている——モデルを学習させることが最も速く自動化されている業務であり、何をもって十分とするかを決めることがそうではない業務である。
公開されているデータで何かを学習させ、それが自信たっぷりに間違うと自分が見込む場所を書き出す——そして実際にそうなるまで、その入力をつくりに行く。何をもって十分とするかを決め、そして十分でないと自分に証してみせることこそ、誰も道具に渡せないこの職の半分である。
教室の外で足すもの#
これは、実務のうえで卒業生に欠けがちなものについてです——学校がそれを教えなかった、という主張ではありません。
本当に失敗が痛いコードベースのなかでの時間——インターン、人が頼りにしている公開の制作物、間違うことに結果が伴うもの。練習用の題材では判断は身につかない。何も賭けられていないからである。
他人のコードを——生成されたコードも含めて——意識して、定期的にレビューすること。市場が不足している技能であり、そして学校が最も評価していない技能である。
書くこと。設計の文書、事故の振り返り、説明。前へ進むエンジニアは、自分の筋道を他人がたどれる人である。
この学期#
一つか二つの行動。それぞれが、誰かに見せられるものを生みます。読書案内ではありません。
毎週のコードレビューの一式を始めること。学期の終わりまでに四件あれば、どの認定より良い信号である。
正しさが高くつく領域で、実際に動いている系を一つ端から端まで読むこと。一か所での深さは、五か所にまたがる広さに勝る。
よくある問い#
ある。ただし五年前とは理由が違う。この学位はかつて、コードを産み出せるようにするから値打ちがあった。いまの値打ちは、コードを判断できるようにすることであり——自分に書けなかったものは判断できない。本当に変わったのは、入口の側の求人である——判断を育てているあいだ若手を食わせていた定型の仕事こそ、自動化されつつある部分である。だから訓練としては今も効く。けれども、最初の職が他人の給与で教えてくれるという昔の取り決めは弱まっている。最初の職がその差を埋めてくれると当て込むのではなく、その空白を明示的に見込んでおくこと。
情報科学は変わった位置にある——道具は、まさにこの学位が「産み出せ」と教えるものを最も得意としており、しかもこの学位がつながる入口の職では、複数の雇用主が採用枠を削ったと公に述べている。それは本物の論拠であり、そして去る論拠ではない——判断の仕事へどう辿り着くかの計画を持って入るべきだ、という論拠である。かつてそこまで運んでくれた定型のコーディングの段は、細くなったからである。
何を任されうるかが変わるとき——研究、システム、人の少ない専門——には価値がある。そして、新卒の市場が冷えているのをやり過ごす手段としては価値がない。同じ制作の技能を一段上で教える修士は、同じ道具と競合する。学位の名前ではなく、具体的な研究室や集団を確かめること。
自分が書いていないものを、自分がデバッグした経験である。流暢なのに間違っているコードを、自信たっぷりに壊れている箇所が見つかるほど丁寧に読むことは、このサイトが新たに中心と印づけている業務であり、そして生成された制作物の作品集では示せない唯一のものである。自分が始めていないコードベースへの本物の貢献一件は、仕上げた個人の制作物五つに勝る。
方法#
評価は専攻ではなく業務の上にあります。上のどの方向でもたどって職業のページへ行けば、どの業務が変わりつつあり、証拠がどれだけ強く、そして何をまだ示していないかが分かります。