このブログエントリは、 キーボード #2 Advent Calendar 2022 の8日目の記事となります。昨日はよういちろうさんの「QMK FirmwareとRP2040でAudio機能を使えるようにする方法」でした。
最近はわりと大人しめなのでキーボードづくりから足を洗ったのかなどと噂されている?らしいわたしです。
かねてからの円安にげんなりして中国への発注に踏み切れずにいたりするのが進捗の薄い真相なのですが、ちょうどこの円安進行と並行して42Tokyoというスクールに入学したために、主にソフトウェア学習へと軸足を移したことも大きいです。PCには常に近い距離で生きてきた自分ではありますが、業務的には部署内情シス的な立場で機材選定などを行ってきたことはあっても(PC専門誌でレビューや連載をしていた経験もあったりします)、そもそも情報系の専門教育を受けたことはなく、プログラミングは完全独学でした。なので、たとえばQMKのコア部分のコードに手を出そうとすると、どうしてもメンテナさんたちに気後れしてしまいます。10のうち10を理解してコードを書くのと、半分もわかってない状態で書くのでは、自分の仕事に対する自信がまったく違いますよね。
ここらできちんと学んでみるかというタイミングで見つけたのがこのスクールでした。
そんなわけで今回のアドカレは42Tokyoとはどんなところなのかを、自キ界隈のひとりとして書いていくことにします。しばしお付き合いください。
42Tokyoとは
42Tokyoはフランスを本国とするソフトウェア・エンジニアの育成機関の東京校です。
特徴としては主に3つあります。
- 無償
- ピアラーニング
- 約1ヵ月の入試
まず、学費がない。そうです無料です。対象年齢(現在の入試では18歳以上)であれば学歴不問でだれでも無償で学ぶことが出来ます。ただし、42の名物にもなっているPiscine(ピシン)と呼ばれる入試が約1ヵ月に渡って休みなく続き、これをクリアすることが条件です。
そしてこのPiscineが42の学習スタイルそのものです。入試問題については情報規制が敷かれているためお伝えすることは出来ないのですが、入試の方法がピアラーニングであることは公表されています。ピアラーニングとは、教師対学生ではなく、学生対学生による学習方法を意味します。つまり、学生同士で互いに教え合って(答えを教えるという意味ではありません)入試問題をクリアしていくことになります。
ちなみに課題は山ほどあり、常人では全クリすることは出来ません。未経験というわけではない自分はかなり進めた方ですが、最後の課題にはたどり着けませんでした。
しかも通常の課題のほかに突発的な課題(時間制限あり)もあったり、複数人でのコーディング課題などもあるなど、お腹いっぱいなのに次から次へと出てくるわんこそば状態。これをひたすら1ヵ月続けます(土日関係なし! 校舎は24時間オープン!)。
わたしが参加したPiscineはコロナ禍の特別措置(※現在はオフラインに戻っています)ということでオンライン参加が許可されていたため、どうしても避けられない仕事があった日を除き、起きているときはほぼPCにかじりついてました(ちなみに試験期間中の仕事は出来る限り断ってました)。
率直に言って、Piscineはものすごく楽しいです。ひたすらコードを書き、レビューを受け、課題の合否判定に一喜一憂し、共に入試に挑む戦友たちとチャットあるいはボイチャして疲れを癒し、またあくる日もまたあくる日もこれを繰り返しながら少しずつ成長していく。これほどコーディングだけをしていた期間は経験したことがなく、充実した日々だったことは確かです。
ちなみに入試課題はそれほど難しいわけではありません。なにせ未経験者でも合格するくらいですので(とはいえ未経験者が対策を一切していないとは言ってない)、情報系の学科でC言語を基礎からしっかり学んだエンジニアなどならば楽勝、というレベルだと思います。
とはいえ、元はフランス語である問題文の意図を読み取るのが難しく、求められている挙動を想像する必要があったりと落とし穴は結構あります。初見殺しもあります。コード規約も独特です。そしてほとんどの課題で標準関数を使えません(許可されるのはごく一部のシステムコールのみ)。使いたい関数は自分で書く必要があります。
合格基準についてはこれまた非公開です。単純な得点(課題の進み具合)だけではないことは確かで、様々なイベント課題への参加率、その得点(コード規約外は0点)に加え、これは完全にわたしの肌感覚ですけど、社会人には厳しめの判定がなされているような気がします。現役エンジニアでも受からないことはそれほど珍しくないです。歳を重ねているということはそれだけ学習の機会があったわけなので就職前の世代よりハードルが上がっても当然かもしれませんし、仕事をしながらの入学は難しいだろうという意味もあるのかもしれません。
入学してみて
というわけで1か月に渡る遠泳を泳ぎ切って、この10月から晴れて新入生になりました。入学後はPiscineほどのストレスはありませんが、今度は課題を期間内にクリアしていかないと退学になるブラックホールという制度があります。入学したての時点、なにも課題を提出してない状態だと3カ月を切っているので、のんびりしている暇はありません。
入ってみてわかったことは、42Tokyoには熱心で頭の回転の速い学生が豊富に在籍していて、課題のレビューではときに2時間以上もかけて1対1でコードをじっくり見てくれます。リークのリスクがあるコードを見抜き、ロジックの粗を暴き、華麗にNOを突きつけてきます。
42ではレビューされる側をディフェンスと言います。つまりレビューしてもらうときは防衛なので、問題点を指摘されたら納得できる回答を返さない限り失点です。どこかからコピペしてきたようなコードは説明できないためにチートで0点です。もちろん、オフェンス側は厳しいだけでなく、なにが問題なのかをその場でテストコードを書いて説明し、その解決策を示してくれもします。この細かな対応は、一般的な教師対複数の学生では得られないピアラーニングならではの利点でしょう(1課題につき一人の学生に2時間以上を費やすための教師を確保することは採算的にも人事的にも困難)。
そんな素晴らしい42Tokyoではただいま有望な学生さんを絶賛募集中です。将来エンジニアになりたいキーボード好きな学生さん、あるいは休職して基礎から学びたいと思っているエンジニアさんの中で、興味がある方がいらっしゃったらぼくにコンタクトしてみてください。入試問題は教えませんが、それ以外の質問には答えられます、たぶん。なお、界隈には強つよエンジニアさんがあまたいらっしゃいますが、そうした人たちはさすがに対象ではないと思います(高レベルになれば手ごたえのある課題もあるとは思いますがそこまでの時間的コストがかなりある)。
また、自作キーボード界隈にはエンジニアを抱える企業にお勤め、あるいは経営されている方も多いと思います。以前は地方での出張Piscine体験のようなイベントもやっていたので、要望があれば企業での体験会なども出来るのかもしれません。こちらも興味があったらお気軽にご連絡ください。実現可能性の判断は出来かねますが、運営サイドにつなぐ程度のことならばいつでもいたします。もちろん、42Tokyoへの寄付や、イベント協力、ワークショップ参加募集などもお声がけいただければ! 先日も、AWSのチュートリアルを全世界の42で競いあうイベントがありました。もしかすると東京校だけでなくグローバルなイベントにすることも出来るかもしれません。
42Tokyoにおけるキーボード事情
42Tokyoのキーボード事情はというと、残念ながら校舎は普通のキーボードです(それはそう。なお東京校は全数Macintosh)。
自作キーボード関係はというと、分割HHKB系のあれとか、分割カラムスタッガードのあれとか、数字行もついた分割スタッガードのあれとかがたまに見つかる程度で、それほど浸透していません。なのでそろそろ自作キーボード布教もしなくてはと思ってます。
わたしはといえば、「42Tokyo」なのでもちろん課題で主に使っているのは自設計のAleth42です。
42schoolの42という数字はもちろんこの界隈お約束のアレ! 究極の数字です。そんなところもこの界隈との親和性を感じてしまうのでした。
ちなみに42にはサークル的なものもあるのでそこで42用のキーボードを設計してみようかと考えてます。現状ではvimmer用キーボードかなあ。うまくいけば42以外でも頒布するかもしれません。
それとMDA Future Suzuriの本生産が間近です! ではよいクリスマスを!