パーソルグループとSky株式会社は、sightを通してエンジニアの自分らしいキャリアを応援しています

寝食削ってその世界にハマった。ちょまどさんが語る、プログラミングへの尽きせぬ「愛」とは

マイクロソフトのクラウド・デベロッパー・アドボケイトとして活躍する「ちょまど」こと、千代田まどかさん。腐女子マンガ、オタク布教活動、プログラミングなど、好きな道にひたすらのめり込みながら積み上げてきた経験が、結果的に自分のキャリア形成に役立ったという。点と点をつないで大きな面にして、そこに自分の独自の存在感を発揮する。ちょまど流のテクニカル・キャリア形成の秘密を聞いた。

千代田まどか(ちょまど)さん

Profile

マイクロソフト コーポレーション
クラウド デベロッパー アドボケイト
千代田まどか(ちょまど)さん

津田塾大学英文学科卒業。エンジニア兼マンガ家。2016年3月~2017年6月:デベロッパー・エバンジェリズム統括本部のテクニカル・エバンジェリスト、2017年7月~2018年10月:コマーシャル・ソフトウェア・エンジニアリング本部のソフトウェア・エンジニア、2018年11月:クラウド・デベロッパー・アドボケイト。プログラミング言語C#と、クラウドサービスのMicrosoft Azure全般をこよなく愛する。Twitter・chomado ホームページ・ちょまど帳

初めてのプログラミングに夢中になり、体重10キロ痩せた大学1年の夏

私がプログラミングの世界を知り、それを勉強するようになったのは、自分の描いたマンガを展示するサイトをより見やすく作りたかったからというのがスタートでした。

当時私は英文科、文系の大学生だったのですが、1年生の夏休みに初めてのパソコンを買い与えられると、サイト作り(HTML/CSS)やWebデザインの勉強を始めました。そこからJavaScriptに入り、PHPで掲示板づくり、と、楽しくて楽しくて、寝食も忘れるくらい没頭しました。

食べる時間も惜しくて、ずっと水とインスタント味噌汁だけ飲んでいました。もともと高校3年生の時に、大学受験のプレッシャーとストレスで過食に走り、激太りしていたのですが、この大学1年の夏休みの超集中PC没頭による絶食のおかげで、簡単にリセットできました(笑)。

あ、もちろんこれは不健康なやせ方だからダメなやつですよ!(ちなみにここでサーバー維持費が欲しくなり夏休み明けから塾講師のアルバイトを始めました)

 

やりたいことが自由にできるようになってくると、プログラミング言語自体に興味を持ち始めるようになります。例えば、それまで、PHPは掲示板を書くための文字だと思ってましたから、PHPもプログラミング言語のひとつだったんだって知って、興味をひかれました。

しかも、プログラミング言語は、英語やフランス語といった自然言語のように、たくさんの種類があって、JavaScriptもPHPも書き方は全然違うけど、似ている部分もあって面白い、という思いが募るようになりました。

そこで、本格的にプログラミング言語をやろうと思い、最初に取り組んだのがHaskell。そう、最初がHaskellなんですよ。ちょうどこの頃、周り(文系女子大)とプログラミングの話ができなくて寂しくて、情報収集のためにTwitterを始めたのですが、フォローした層がちょっと偏っていたのかもしれません(笑)。当時Twitterの私のタイムラインでは皆がHaskellの話をしていたのです。

千代田まどか(ちょまど)さん

 

「プログラミング初心者なんですけど、何からやったらいいですか? 最近ようやくJavaScriptが少しだけ読めるようになってきた頃です」。

そうしたら「JavaScriptなんて暗黒で恐ろしい言語はダメだ、純粋関数型言語であるHaskellからやった方がいい」みたいなことを言われました。今考えるとおそらく冗談で言われたのだと思いますが、私は冗談が冗談だとわからない欠陥があるので、本気にしました。

Haskellは本を買って一生懸命写経したり簡単なプログラム(ハノイの塔など)を書いたりしたのですが、やはり全然わからなくて、次にTwitterで聞いたOCamlという関数型プログラミング言語、定理証明支援系言語であるCoqを紆余曲折しながら、Lispにたどり着くんです。

さらに「Lispの中のSchemeは言語仕様が簡単だから処理系から書くといいよ」と言われてやってみたんですが、爆死しました。当時は「みんな親切にいろいろ教えてくれているのに私が至らないせいで何の成果も出せなくて申し訳ない」と自責と劣等感で潰れそうになる反面、同時に、毎日新しい世界に触れる毎日にワクワクしていました。

次に「基礎から学びたい」と言ってお勧めされた『OS自作入門』を読んで、また討ち死にしたところで、ふっと目が覚めたんです。もともとTwitterの人たちはすごすぎて次元が違うので、私は『自分で』教材を選ばなければならないんだ、と。

誰も止めないから、『黒魔術』の世界へも

それで自分で大学の本屋に行って、ようやくわかったんです。「Haskellの本なんてないじゃん!」。OCamlも、Coqも、Schemeも、Common Lispもない。そんなに大きな本屋ではなかったとはいえ、一冊も無いのは驚愕でした。

Twitter(で私がフォローしていた層)では毎日皆が議論している対象だったから、誰もが知っている超絶人気言語だと本気で思っていました。

(とても良い言語ですが『誰もが使っているメジャー言語』ではない)ということでその本屋で一番多かった本の言語をやろうと思ってみたら、一番冊数が多かったのはC言語だった。そこでC言語を勉強し始めました。

でも、入門書を読んでもわからなかったんです。当時はソフトウェアとハードウェアの違いすらも怪しくて、基本ソフトウェアも応用ソフトウェアもわからなかった。

入門書で“compile”という用語が出てきて、コンパイルって何?ってググると、”ソースコード”を機械が読める”実行可能なファイル”にするものだとか。

『ソースコード』? 『実行可能ファイル』? ひとつググると複数不明な単語が出てきて、それらをまたググって、するとまたわからない単語で、と、頭がスタックオーバーフローを起こしていました。

それまで読んでいたHaskellなどの技術書は、プログラミングのコードに対しての解説が主だったので、このように基本的な知識がついていませんでした。例えば『ghc』コマンドでHaskellのコードが実行できるのは知っていましたが、それが「コンパイル」「実行可能ファイルにする」などをしている、ということはよくわかっていませんでした。

入門書もまともに読めないということで、これは私には致命的に知識が足りないと思い、情報系の国家資格である基本情報技術試験の勉強をすることにしました。

この資格向けの本が本屋でたくさん売られているので、これで基礎を勉強しようというわけです。しぬほど勉強しました。今までわからなかったことがわかるようになってきてめちゃ楽しかった! 

で、せっかく勉強したので受験もしてみて、一発合格し、ようやく入門書が読めるようになりました。ここまでずいぶん長かった。理系の大学生は授業で習うようなことなんですよね。

千代田まどか(ちょまど)さん

 

続いてC言語を勉強して、ポインタ辺りでつまずきながらも、C++に入って。C++はC言語の進化系だからいいかなと思ったのですが、複雑な言語仕様や、バージョンによって全然違うように見える、かなり奥深い世界でした。

競技プログラミングもやりました。プログラミングを使っていかに早く(速く)パズルを解くかみたいな、アルゴリズム力と瞬発力と経験などが求められる、とても楽しい競技です。今は競技プログラミングを採用試験に課す企業もありますね。

また、プログラムをいかに少ない文字数で実現するかを競う「コードゴルフ」(直接何かの役には立ちませんが、処理系の仕様の隙間を付いたコードを書くので無駄に仕様に詳しくなる)や、C++のテンプレートメタプログラミング(メタプロは別名『黒魔術』とも呼ばれる)なども。

C言語のプリプロセッサのマクロで文字列連携を駆使してプリプロセス時処理なんてことにも一時ハマってたんですけど、今は何の役にも立ってないです(笑)。

そんな役に立たない(けど楽しい)ことをなぜやっていたかというと、純粋に好きで楽しかったから。それにリアルの友だちがいなくて周りに誰も止める人がいませんでしたしね(笑)。

文系女子大で周りにプログラミングの話ができる友だちがいなくて、孤独で。(一応うちの大学には情報科もあったけど、英文科とは校舎が違うし、人数もとても少ないし、基本エンカウントしなかった)オタクは基本趣味の合う人としかスムーズな会話ができないって偏見を持っていますが、まあ私(オタク)はその通りでして。趣味以外何を話していいかわからない。

結果、リア友ができなかった。で、一方、Twitterでは好きなプログラミングの話ができて、またTwitterの人たちはそういう「楽しいプログラミングの奥深い世界」への理解が大変良くて、どんどんずぶずぶ。Twitterマジで最高。

リアル世界の周囲では「就職活動」の時期に入っていて、みんな就活のための資格取り(英文科なのでTOEICなど)に明け暮れていましたが、私はずっとお絵描きとプログラミングばかりしていました。

なかなか就活活動をしない私に親は心配していましたが、でも当時はそれがとても楽しかったんです。
以上が私の大学時代の話です。

適応障害と診断され、不安のなかで転職を決断

大学を卒業すると、とあるSIerに就職することになります。募集ページに『文系大歓迎』と書いてあって安心したし、プログラミングがやりたかったので、仕事でプログラミングができるらしいところを選びました。最初に配属されたのはテスト部隊でした。

そこで私がやっていたのは、手動でテスト対象のアプリのスクリーンショットを撮って、それをExcelに延々と貼り続ける作業でした。一日100枚から200枚くらい。それは『エビデンス』と呼ばれる、お客様への納品物になるので、美しくなければならず、(手作業で)スクショを張り付けるときに1ピクセルのズレも許されないとのことでした。数百枚全部。

その苛酷なプロセスを、ツールで自動化して楽にしたいと提案したら、「そのツールの有効性をテストして『エビデンス』として納品しなさい」と言われました。

エビデンスを取るためのツールの必要性を具申しても、じゃ、そのエビデンス取得ツール導入のエビデンスが欲しい……と再帰的に問いが繰り返されるんです。「自動化ツールは公式には禁止はしないけど実質禁止。結局、手作業が一番信頼できる」と言われて、心が折れました。

(ここで主張しておきたいのは、『エビデンス』が悪いとは言っていません。これがお客様の求めるもので需要があり、品質を担保するという役目を持ち、支払いを受けるのなら、立派なビジネスですし大変良いと思います。ただ手動でやるのが ”私に向かなかった” だけです。悪いということじゃない。単純に私に向かなかったという話です)

千代田まどか(ちょまど)さん

 

その会社はけっしてブラック企業じゃないし、残業なしで帰れるし、先輩はみな優しいし、すごく良いホワイト会社だったのですが、私にはその仕事が合わなかった。会社に行こうとすると呼吸が苦しくなって咳が止まらなくなりました。医者に行ったら適応障害と診断されました。

仕事辞めたいって言ったら、家族全員の大反対に合いました。仕事が辛いのはお金もらってるんだから当たり前だとか、せっかく大手に入ったのにとか。おばあちゃんが「少なくとも、あと3年は働いて私を安心させてほしい」とか。

たしかにこのまま辞めたら、何のスキルもないニートになってしまう。で、上司に「いつになったら仕事としてプログラミングできますか?」って聞いたら、「あと3年はこのExcelスクショエビデンスかな」って言われて。「3年かあ」って思ったら、もう吹っ切れました。

本社の偉い人から「お前みたいな社会不適合者を雇ってくれる会社なんてどこもない」って言われたんですが、実務約2週間で退職願いを出しました。(もっと正確に言うと、新卒入社して1.5カ月間は研修、約2~3週間実務、休暇消化+退職届受理までに1カ月。合計3カ月の在籍での退職でした)

 

翌週、社員20人のスタートアップに転職したら、これがすごく楽しくて。毎日たくさんプログラミングが学べて、それを書きながら、自分のスキルがどんどん上がるのがわかりました。

場所を変えれば、人間、変わるものなんですね。前職では会社に行こうとすると呼吸困難になったくらいなのに、転職したら、会社に行ってプログラミングするのが楽しくて楽しくて仕方ありませんでした。ここで素晴らしい先輩に出会えて、MicrosoftのC#とVisual Studioに出会いました。C#最高ってなりました。いろんなプログラミング言語を触る中で、C#が今でも最高だと思ってます。

そして、エンジニアのためのWebマガジン『CodeIQ MAGAZINE』で、「はしれ!コード学園」というマンガの連載を始めることになりました。(一生懸命描いてるので、よろしければぜひ読んでください!)

はしれ!コード学園

 

そのCodeIQのユーザー向けイベントでマイクロソフトのエバンジェリストと出会い、日本マイクロソフトに入社し、技術をわかりやすく人に教えるテクニカル・エバンジェリストになります。
(ちなみに、入社面接に臨む際、友人から「さすがに一社目を3カ月で辞めたのは悪印象だから、ちゃんと説明できるようにしておくんだよ」とアドバイスされたのですが、実際にマイクロソフトの面接でありのままを説明したら「プログラミングしたいから、さっさと環境変えたって?最高ですね!そのパッションと行動力が素晴らしい」と全員に好印象でした。特にアメリカ人上司が爆笑してました)

2年後、米国マイクロソフト本社に異動となり、クラウド デベロッパー アドボケイト(Cloud Developer Advocate)となり、今はグローバルな環境で働いています。

千代田まどか(ちょまど)さん

 

プログラミングを独学していた頃はとても孤独でしたが、Twitter仲間とのやりとりは楽しかった。自分がひとりでもやってこれたのは、コミュニティの人たちのおかげだと思っているので。それに恩返しをしたいという気持ちがすごくあります。それがあり、今、マイクロソフトで、デベロッパーコミュニティを見るロール(クラウド・デベロッパー・アドボケイト職)に就いています。

また、私は大学時代ずっとプログラミングで「遊んで」いました。プログラミング言語への愛がある。プログラミング言語にはそれぞれ特徴があって、それぞれがすごく愛おしい。

だからこそ「はしれ!コード学園」のマンガも描けたんです。また、最近は周りがビジネス中心の話をすることが多いのですが、もちろんそれは大変重要な話です、「この技術をどうビジネスにつなげるか」みたいな。でも『個人的には』、やはり、ビジネス抜きの純粋なプログラミングや技術の話の方が好きです。

例えば最近一番好きだったのは、自身のソースコードと完全に同じ文字列を出力するプログラムQuineで絵を描くデモとか、JavaScriptでの記号プログラミング(JavaScriptを記号だけで書こうという宗教プログラミング)のLTとか、OS自作の話とか。ほのぼの系でいうと、Microsoft のホログラフィックコンピュータであるHoloLensで好きなキャラとずっと一緒にいて幸せっていうのも最高でした。

これからも私は、大好きなプログラミングで、技術者の皆さんと一緒に、好きに遊んでいけたらいいなと思います。