ソフトウェアエンジニアになるまでの話
はじめに
こちらのブログを読んで、人生を振り返りたくなったので書きます。
人の体験記には一定の価値があることが知られています。僕も人生で不安になったときは Web で同様の体験をした人々のブログを読み漁ってきました。
僕は女性エンジニアという文脈では比較的悩み無く、敷かれたレールにのんびり揺られてソフトウェアエンジニアになりました。これまでジェンダーを理由につらい思いや障害を感じたことはほとんどありません。平坦な道のりでソフトウェアエンジニアになった女性のサンプルですが、平坦な道のりを歩む誰かのために、記録を残そうと思います。
書いた人
都内の IT 企業でソフトウェアエンジニアをしています。大学院の修士課程(情報工学)を修了した後、新卒入社した会社でずっと働いており、今年で3年目になります。
仕事はだいたい Web アプリケーションの開発・運用周りを全部いい感じにやっています。働き始めてからできるようになったことは、HiveQL でのビックデータ集計、node.js・React/Redux でのアプリケーション開発、TypeScript でのプログラミング、雑用、などです。働く前からできることは、少し古い HTML と CSS での Web フロントエンド開発、C#・C++ でのプログラミング(ほぼ忘れた) 、CentOS での Web サーバの構築と管理、PHP・Python・Ruby でのアプリケーション開発、Docker の操作、DNS サーバの構築、日本語の読み書き、などです。
触ればだいたい興味が湧いては消えてしまうのでこれといって得意なことがありませんが、とりあえずクビにならずにちょっとずつ昇給しています。最近は、きれいなコードと非同期コミュニケーションに執着しています。夜には眠れず、朝には起きれませんが、生きています。お仕事の紹介はいつでも歓迎しています。
それでは、よろしくお願いします。
未就学児時代
福島県の、最寄り駅まで車で30分かかる田舎で生まれ育ちました。
小さい頃は特撮が好きでした。ウルトラマンのTシャツを着てめちゃくちゃ笑顔で写った写真が実家の居間に飾ってありました。ティガとダイナを観ていたことを覚えています。また、モスラを異常に気に入っており、映画のパンフレットを枕元に置いて眠っていたことも覚えています。
それとは別におジャ魔女どれみが好きで、絵をかくのが好きで、花が好きでした。将来の夢はお花屋さんでした。その後、早起きが無理という理由で、花屋の夢は諦めました。
義務教育時代
父親がある日、パソコンを買ってきました。Windows 98 が入っていたと思います。
ここで、父親の話をしておきます。父親は車の整備士で、つまるところエンジニアでした。車がとにかく好きで、家にはよく分からんパーツが届いたり、工具がたくさんありました(ほとんどは職場に置いているようでしたが)。新しいものが好きで、電動キックボードに乗って小学校に迎えに来たこともありました。爪の間はエンジンオイルがこべりついて真っ黒で、仕事の愚痴を一切言わない人でした。好きなもので仕事をして、稼ぎもそこそこに良く、楽しそうに生きる父親は、自分の人生にそこそこ大きい影響を与えたように思います。
ところでそのパソコンは子供も使うことができ、小学生の頃はペイトソフトで絵をかきまくっていました。たまにインターネットも見ていました。よく変なサイトを踏んでウイルスに感染させ、修理に出していました。父親にはそのことをあまり咎められず、カスペルスキーか何かのセキュリティソフトが導入されました。
相変わらず絵とパソコンが好きだった中学生の頃に、インターネットではブログとかホームページとかが流行りました。
とにかく流行っていたので、自分もブログを作って、日記や好きなバンドのことを書いていました。ゲームが好きだったので、特に好きだった塊魂の攻略掲示板に入り浸り、攻略情報の収集のために他のユーザと交流していました。絵が好きだったので、絵を載せるホームページを作りました。Yahoo! ジオシティーズをしばらく使ってから、FC2 ホームページに移行しました。HTML や CSS、Javascript や CGI はこの頃に覚えました。絵よりも HTML や CSS を書く方が楽しくなってしまい、友人のホームページのコーディングをしたり、ホームページ用のテンプレートを作って載せたりしていました。
そんな折、プログラミングというものを人に教わる機会が訪れました。
地元には高等専門学校(高専)というもがあります*1。高専では公開講座という、地域の小中学生むけに専門科目を教えるイベントを開催しています。公開講座ではロボット制作や環境調査などをやっていますが、その一つにプログラミングがありました。Javascript を書くことがプログラミングと呼ばれる行為であることは知っていたので、中学校の掲示板に貼ってあったプログラミングの公開講座に興味を持ち、受講しました。
その後、なんやかんやあって高専プロコン*2の競技部門に中学生特別枠みたなの作ってもらって出場したり、自分用のパソコンを買ってもらって家でプログラミングをするようになりました。
また、高専というものに興味をもち、情報工学科ってやつに入りたいと思いましたが、地元の高専にはそういう学科がありませんでした。隣の県の高専には情報工学科があることが分かったので受験しようとしましたが、通っていた中学校からの入学実績が無いことを理由に、担任から受験を止められてしまいました。諦めなければよかったのですが、受験の不安が勝ってしまい、仕方なく地元の高専の電気工学科に進学しました。一応、カリキュラム上はプログラミングを勉強できることになっていました。
高専時代
こうして若干の不満を持ちつつ高専の電気工学科に進学しました。そしてこれ以降、ジェンダー比の狂った世界で暮らしていくことになります。
ここで、入学した高専の当時のジェンダー比について触れておきます。入学時は40人くらいのクラスに自分含めて女性は3人で、学科の先生たちに女性はいませんでした。色々あって女性が得意ではなかったし、いわゆる男の子みたいな趣味が多かったので、男性ばかりの生活に抵抗や苦痛を感じたことはありませんでした。
学生や先生はみな良識的で、むしろ女性であることで丁寧に扱われていたように思います。セクハラに遭ったこともありません。女性だけを丁寧に扱うことは問題を孕んでいますが、ここでは詳しく話しません。とにかく、女性であることで不利益を被ったことは一度もありませんでした。
勉強の話に戻ります。5年生までのカリキュラムでプログラミングの授業はごくわずかでした。悪く言えば期待外れでしたが、何かを学ぶこと自体は好きなので、電気工学のことも好きになれました。特に半導体と電磁気学が好きでした。実験で一番楽しかったのは、電線を通したマネキンに雷を落としたことです。
プログラミングは主に部活動で続けていて、高専プロコンに出場したり、ものを作ったりしていました。高専プロコンについては色々と思うところがあるのでお気持ち表明は省略しますが、うちはいわゆる弱小校だったと思います。僕の在学中、競技部門で勝ち進むことはなかったし、課題・自由部門では賞を取れないことはもちろん、予選を通過できないこともありました。ただ、ものを作るのは楽しくて、部活のみんなでゲームを作って文化祭で売ったことはよく覚えています。高専プロコンの参加賞か何かでもらったさくらの VPS で、はじめて Windows 以外の OS を触って、コンソール画面を叩いて、Web サーバを構築したりしました。
プログラミングは好きだし楽しいものでしたが、進路につていは悩みました。きっちり組まれたカリキュラムでプログラミングやソフトウェアの勉強をしていない分、同世代の高専生との知識や技術の差から苦しい思いをすることが多くありました。プログラミングという活動で名前のついた成果を得られなかったこともあり、プログラミングをやっていく自信がなかったため、進路を電気工学方面にするか、情報工学方面にするか、悩みました。
情報工学方面に進もう、と決めたのは4年生のときに参加したインターンシップがきっかけでした。Twitter での交流がきっかけで jig.jp*3 という社長から社員まで高専卒ばかりの IT 企業のインターンシップに参加し、とても良い体験をしました。そこで、ソフトウェアエンジニアになろう、そのために大学で勉強しよう、と決意しました。
試験勉強という活動がとても苦手だったので、編入試験には苦労しました*4。なんやかんやあって、福岡の大学の情報工学部に進学しました。
大学時代の授業と研究
そういうわけで、計算機科学や情報工学の知識のなさへのコンプレックスを解消するため、大学の情報工学部に進学しました。
これまでもずっとそうでしたが、学校の勉強という形式を好きにはなれませんでした。これは大学でも同じで、成績のために努力することができず、好きなことを好きなように勉強するために学校制度を利用できればいい、という考え方でした。また、人に教わったり要領よくものごとを進めるのが下手くそでした。したがって、GPA もあまり良くありませんでした。奨学金の免除審査にも落ちました。
成果のために努力できず、好きなことを好きなように、つまみ食いするような姿勢は研究にも表れていて、特別大きな成果を挙げることもありませんでした。
研究の成果という面では後悔だらけですが、研究そのものは好きだし、楽しいという気持ちが十分にありました。今でも、修論のテーマを使って自由研究をしています。
大学生活における後悔は自分の性質への理解が足りないことにも起因するので、自分のことをあまり責めすぎずに、無事に修了できたことを喜ぼうと思っています。修士号(情報工学)、便利なので。
大学時代に出会った人間たち
大学には編入生のコミュニティが形成されており、入学前に編入生向けの説明会を自主的に開催していました。これはとても良い活動で、このコミュニティがきっかけで、福岡に引っ越した次の日くらいには地域のエンジニアのコミュニティにつながりができました。よく知らない土地で、引っ越した次の日に電車で1時間の場所まで勉強会に参加しに行った自分の行動力は褒めて良いと思います。
エンジニアのコミュニティでのつながりは大学生活にも影響して、そこで知り合った大学の先生と先輩の研究室に入ったり、バイト先やインターンシップ先を決めたりしました。
とくに研究室の先輩たちとは夜中の2時まで技術や人生の話で盛り上がったりしていて、そういう話がたくさんできる友達ができて嬉しかったのを覚えています。また、Web サーバの運用で分からないことを教えてもらうとか、CTF に連れて行かれるとか、プログラミングができるバイト先を紹介してもらうとか、とにかく色々な経験ができました。
高専時代には、自分と同じかそれ以上の熱意でプログラミングをやっている生身の友達が近くにいませんでした。インターネット上には存在しましたが、インターネット越しで受ける影響には限界がありました。大学に入ってそういう生身の人間と関われたことで、ソフトウェアエンジニアとして大きく成長できたと思います。
就活
修士を修了したら就職するというのが進路の第一候補だったので、就活をしました。
僕の就活については以前ブログを書きましたが*5、要約するとインターンシップに行った会社の面接を受けて内定がもらえたのでそのまま受諾しました。人間が一番集まる場所で働くのが良かろうと思い、東京で勤務することを想定しました。
いくつかの会社でソフトウェアエンジニアとしてアルバイトをして金銭を得ていたことや、同世代の人間は(技術で)意外と倒せそうだという謎の自信から、かなり楽観的に就活をしていました。結果として受けた3社のうち1社からしか内定はもらえなかったのでそう甘くもなかったとは思いますが、その辺の感情は若さだと思います。
また、絶対書類で落ちると思っていた、採用面接がめちゃくちゃに難関だという会社の最終面接までは残ったことは、少しだけ人生の励みになりました。
業務の様子
感情を挟むと健康を損なった話をしなければならないので、割愛します*6。
ここでは、感情を無にしてやったことを淡々と書き出します。
研修後に配属されたのはビックデータを利用したシステムの開発チームでした。チームでは機械学習モデルの開発とかもやっていましたが、僕はデータの調査のために HiveQL を書いたり、システムを動かすための環境構築をやっていました。弊社での仕事の割り当て方は上司によって異なりますが、自分の観測範囲だと、モチベーションベースで割り当てている上司が多いように思います。
学生時代は機械学習という手法で実現できるシステムに興味を持っていましたが、統計学、つまり数学をあまり好きになれなかったこともあり、入社する頃には興味を失いつつありました。それもあって、このチームの仕事で何がやりたいかと聞かれてもイマイチ答えられず、特にこれといって自信のある分野も無かったので、その手の質問にはうまく回答できませんでした。
そういう姿勢のためか、他人が興味のない余った仕事を黙々と取っていく、というスタイルが現在まで続いています。
その後チームの異動があり、異動先のチームの事情で半年ほど React/Redux での Web フロントエンド開発をしている現場で出稼ぎをしていました。ちなみにそれまで、React/Redux が何なのかすら分かっていませんでした。それでも仕事は降ってくるので、勉強しながら開発をしていました。開発しなければならない機能が次々と上から降ってくるので、仕事の割り当て方やコミュニケーションはとても機械的でした。自分にはそれがやりやすく、周りからはよく働いてくれるて助かる、と評価されました。
出稼ぎが終わってからは、チームが担当するサービスの Web アプリケーション部分の運用業務を主に行っていました。メンバーの退社や異動などのために、いつの間にかアプリケーションに何かあったら何でもやる担当になっていました。担当する Web アプリケーションは node.js とか React/Redux で書かれていました。エラーの原因調査とか、リリース作業とか、定型業務とか、社内基盤の変更に伴う開発を行っていました。上司は放任主義で、成果さえあればよく、仕事はとてもやりやすかったです。
半年でチームの異動があり、担当するサービスは変わらずに業務範囲が広がりました。現在もこのチームで働いています。
業務内容は Web アプリケーション部分の運用を引き続き行いつつ、裏のシステム(こういう言い方しかできない)の開発も行っています。裏のシステムは全然分からないし詳しい人がいるので、運用は丸投げしています。最近は要件定義をしたり、運用改善の提案や実行をしています。
会社の雰囲気と福利厚生
業務の様子から負の感情がにじみ出てしまいましたが、会社自体はウルトラホワイト企業です。
入社してから残業しなければならない状況になったことは一度もありません。現在は COVID-19 の流行に影響を受けて、フルリモート勤務 OK でコアタイムなしのフルフレックス制を採用しています。この勤務体制は感染症の流行に関わらず、今後も続くようです。
会社の福利厚生を挙げればキリがないですが、女性エンジニアという文脈があるので、生理休暇制度について言及したいと思います。
生理休暇制度は月に1日有給休暇みたいなノリで雑に休める制度です。僕は生理のたびに腹が痛むし吐き気はするし気分は最悪になるタイプの人間なので、ほぼ毎月この制度を利用しています。生理休暇に限らず休暇制度は上司に報告して利用します。これまでの上司は全員男性ですが、休むなと言われたことも、生理について言及されたこともありません。また、明らかに体調不良で休む回数が多い自分に対して、会社の人間から直接何かを言われたことは一度もありません。
まとめ
これまで書いたとおり、順当に学校に通い、順当に就活をし、順当に就職し、色々ありつつもそれなりの賃金を得ています。僕はこれまでの人生でジェンダーを理由に不利益を被ったことは一度もなく、ジェンダー比の狂った世界にも慣れてしまったので、世の女性エンジニアもしくはエンジニアになりたい女性たちが感じているハードルには実感が薄いようにも思います。すみません、勉強不足です、すみません……。
そういうわけで女性エンジニアという文脈で役立つ情報はあまり無いような気がしますが、人生の振り返りを終わりたいと思います。
一人でもいいので、この振り返りが誰かの後押しになれば幸いです。