タムログ

プログラミングについての情報発信をしていきます!

京都のITベンチャー企業を退職しました

はじめに

京大の学部2回生の時から約1年程お世話になったある京都のITベンチャー企業を退職しました。退職したのは今年の7月なので、ちょっと時間が経ちましたが、自分の備忘録としても、これからエンジニアを目指す人にとっても少しくらい役に立つかなと思って書いてみようと思います。最初の方は割と入社前とかの話になるので、面白くなかったら飛ばしてください。

 

入社前

1回生

京大に特色入試で合格したこともあって、周りより早く合格が決まっていましたが、特にこれといったこともせずだらだらと過ごしていたら入学していました。最初はフットサルのインカレのサークルとかに入っていたりしましたが、同期とそりが合わずに辞めました。

アルバイトはというと、最近流行っているウーバーイーツのサービスが開始されてすぐくらいの時期だったので、その配達員をやったり、家の近くの飲食店をやったり、ブライダルのバイトをやったりしていましたが、どれも自分に合わないと感じて半年くらいで辞めました。一番続いたのが塾講師のアルバイトで、一年くらい続けてましたが、色々あってやめることにしました。

つまらない大学生活

高校の時の同期はサークルとかで楽しそうにしているのを横目で見ながら、ずっと羨ましいなと感じていました。正直サークル選びをミスった感じしかなくて、でもこれから新しいサークルに入るのは自分としてはハードルが高く、大学の電電の人とは最初から知らない間にできてたグループでつるんでて、それも今から絡みに行けるような感じでもなかったので、結局大学で新しい友達とかもあまりできずにっていう感じでした。今までは友達とか意識せずとも普通にできてたのに、まさか大学に入ってから人間関係で悩むことになるとは思ってなかったです。中高と結構勉強頑張ってきて、大学生になったら薔薇色のキャンパスライフが〜みたいに軽く妄想してたので、それと現実との違いに落胆しました。

ただ、現状を悲観してても仕方がないので、逆にこの時間が有り余ってる状況を上手く使って、俺は普通の大学生ができないくらいの経験を大学生のうちから蓄えて、社会に出た時に既に追いつけない程の差を付けてフライングでスタートしてやろう!みたいな思いを勝手にメラメラ燃やしてました。

プログラミングとの出会い

そんな時に出会ったのがプログラミングです。最初はなんかできたらかっこいいなといった程度で、言語はみんなが使ってそうだったという簡単な理由でPythonを始めました。最初はなんか好評ぽかったのでProgateから始めました。

ProgateのPythonのコースが終わってから、じゃあ次何やればいいんやってなりました。Twitterとかを見ているとみんな奇想天外な面白い発想でいろんなサービスとかを作っていて、Progateやったら自分も何か作れるようになると思ってましたが、全然甘かったです。確かにProgateやっただけで色んなサービス作れる天才もいると思いますが、残念ながら自分は凡人だったのでそんなことができる訳もなく、そもそもPythonでどんなことができるのかもよく分からなかったので、Pythonを学習し始めてから1ヶ月も経たないうちに辞めました。

競プロをやり始める

そんなこんなでまたバイト漬けのくだらない生活が始まりましたが、いつだったかAtcoderに出会いました。これなら別にプロダクトの発想とか必要ないし、純粋にプログラミングをやってる感じがあるので、これにのめり込みました。

最初の方は全然解けませんでしたが、途中からコツをつかんできて、C問題くらいまでは安定して解けるようになりました。その頃はAtcoderの問題の解説とかもやってましたね。(ブログを引っ越したので、昔解説してたのがこのはてブロにあがってます)

茶色に上がったくらいからアルゴリズムの壁が見え始めて悩んでました。ただ、Pythonには慣れてきて、愚直に問題を解くだけなら全然書けますし、初期の頃よりは上達したなとは思ってました。

この辺りから、実際にモノを作りたいなという気持ちが強くなってきました。競技プログラミングをこのまま続けてても何も作れるようにはならないなというのは分かっていながら、じゃあ何を勉強したら何が作れるのかもよく分からず、ずっと暗中模索してるような感じでした。

会社でアルバイトとして働いて実力をつけていくというのは当然考えていましたが、自分の実力程度で雇ってくれる会社があるのかということや、そもそも当時は塾講師のバイトをやってそれなりに稼いでいたので、もし雇ってもらえたとしてもここから離れて収入が減ってしまうのも良くないななどと散々理由をつけて、結局何も行動しないまま2回生になっていました。

2回生

2回生になってしばらくしてコロナが猛威を振るってきて、塾もリモートで行うようになっていました。その辺りから自分を冷静に客観視できる時間が増えてきました。塾講師のモチベーションも下がってきていて、このまま続けていたら結局自分は大学生活でサークル活動も何もしないまま終わるただの大学生で終わってしまうと感じて、自分の退路を無くすために半ば勢いで塾講師を辞めました。

その後京大の求人募集で見つけたのが、これまで働いていた会社でした。

入社

選考

入社前に選考がありました。履歴書選考を通過した後は3日間実際に働いて、社員の方に良いと思ってもらえれば採用されるといった形です。その時はOpenCVのモルフォロジー変換あたりを軽く触って、途切れ途切れの線を繋げるというものを3日間で実装するというようなことを確かやったと思います。

ただ、これも今となってはモルフォロジー変換というワードが思いつきますが、当時は途切れ途切れの線を繋いでというアバウトな指示だったので、そもそも何を使えばいいのかすら知りませんでした。当然OpenCVも知りません。ただ、社員の方になんやかんやアドバイスをもらったりする中でなんとか実装して、採用の連絡をいただきました。

アルバイトとして入社

なにはともあれ、運よく会社に拾ってもらって、アルバイトとして働き始めました。今思えばよく拾ってくれたなと思います。その会社がまだまだ小さい会社で、働き手を欲していたからこそ運よく拾ってくれましたが、普通に大きくなってくると実務経験、あるいは何らかの開発経験は必要になると思いますし、現に今アルバイトとして入社する人達はある程度のスキルがないと落とされます。(実際僕も社員になってか何人かアルバイトの採用業務を行いましたが、残念ながら書類選考で落としてしまう人も何人かいました。)

入社後最初に行ったのは3次元マッチングでした。PythonのOpen3dというライブラリを用いて、3次元デプスカメラを用いてある部品を3次元マッチングするというものです。正直もうあまり覚えてないですが、こんなのをやってたと思います。

実務経験0だったので、環境構築から当然詰まりましたが、その辺は色んな人に助けてもらいながらなんとかしていました。この辺で分からないことの調べ方とかが身についていったと思います。今思えばopencvをすっ飛ばしてopen3dやってたのは結構ハードだったなぁと思います。

ハードウェアエンジニアへ

うちの会社が結構特殊で、何でもかんでも3dプリンターで作るという所だったので、色んなものを3dプリンターで作っていました。それが結構面白そうだったので、CADの設計から始めて、色々なものを3dプリンターで作るハードウェア(寄りの)エンジニアになりました。この選択が最後まで続くことになります。(今はちょっと後悔してたりします笑)

当時は設計したものが実際に目に見える形で生成される3dプリンターがとても面白くて、ソフトウェアよりハードウェアの方が絶対面白いと思っていました。実際色々設計してプリントするのは楽しかったです。

CADの勉強の集大成として、パーツフィーダーというものを作るということになりました。パーツフィーダーって聞き慣れないと思うんですけど、こういうものですね。

ネジを同じ向きに揃えて供給するというような機械です。これ、結構高いんですよね。これを3dプリンターとかで内製化できたら安上がりで済むってことでこれ作り始めました。こんなん簡単そうちゃうかっていうことでポイっと仕事振られて、確かに自分も最初は簡単そうだと思ってたんですけど、やっぱり高いだけの理由があるなって感じで、かなり難しかったです。角度とか、振動のさせ方とか色々ちゃんと設計しないと難しい。なんやかんやで1ヶ月くらいかかって、ようやくプロトタイプが完成しました。

これは本当に嬉しかったですね。達成感半端なかったです。ちなみにこれくらいの時期に、時給が1200円から1300円くらいに上がった気がします。

ただ、結局このパーツフィーダーは使われることがありませんでした笑。パーツフィーダーを何十年開発してる会社と上司が話すことがあったようで、その辺でこの難しさに気付いたのも一つの理由かとは思いますが、単純にこの装置に人件費を使い過ぎてしまったようで、中止になりました。自分的にはあともう少しで完成しそうという所だったので、ショックでしたね。

正社員へ

他にもなんやかんや案件の開発をしたりして、1ヶ月ごとに時給が100円から150円くらい上がっていくとかがあって、最終的に1550円になりました。その後2020年12月勤務分から正社員として勤務し始めました。アルバイトと正社員の違いは

こんな感じです。僕はこの中でもストックオプションの権利に目をつけて社員になりました。上場した場合に数千万程度のお金が入ってくるということで、実際に当時は1〜2年で上場するという話だったので、これは美味しいと思いました。反面、固定給というのが厳しそうだなとは思っていました。時給制じゃなくなるので、どれだけ残業しても同じ額しか支払われないという契約です。ただ、当時はそこまで激務ではなく、残業(深夜労働)も納品直前とかに徹夜で働いたりする程度で、そこまで多くなかったので大丈夫だと思っていました。

その後5人程度のハードウェアユニットというのが結成され、そのユニット長として開発を進めることになります。

開発地獄

見出しの通りです。完全に社員は地獄への一歩でした。社員になってからはまず1つの小さめの案件が任されました。それは画像処理がメインの案件で、そこまで大きな案件ではなかったのですが、技術的な不可能性から炎上寸前でした。今思えば、開発前から厳しい案件であることは分かっていたのに、なぜ上から投げられたものをそのまま作ったのだろうと思います。もう少ししっかり検討して、方向性を変える提案をもっと早めにできていればここまで苦しまなかったのかなと思ってしまいますね。

本来これは12月中に終わらせるもので、実際なんとか形にはなったものの、ちゃんとした形にはならず納品は翌年に持ち越すことになりました。ただ、元々装置を2台納品するということで、この案件を振られたのが12月に入ってからなので、日程的には相当無理があるものでしたが、年度末ということで仕方なくやることになりました。最終的には僕が会社を辞める7月までもつれ込むことになります。本当にここまで長引くとは思ってなかった。。。

さて、年が明けてからどんどん激務になってきます。キャパを超えてどんどん増えていく案件の量。社員になる前は1〜2個の案件を任されると思っていたのですが、気付いたら7個の案件を持っていました。しかもその中の3つが1000万円相当の案件です。

当然全てを並列に処理する訳ではなく、優先順位をつけてこなしていく訳ですが、当時の僕のユニットは会社に入った直後でスキルがあまりないアルバイトの人が多く、案件を丸々任せることは不可能なので、こま分けした内容を振っていくということになるんですが、どれも結局自分がやった方が早いし確実だと思ってしまって、アルバイトの人に上手く仕事を振れず、自分が仕事に潰れました。単純に各案件の単価が高いことなども、余計プレッシャーに繋がって、深夜まで残業して働くのは当然みたいな感じでした。

今思えば当たり前なのですが、ほぼ初心者の方で構成されたユニットを任されて、さらにそのユニットの人数以上の数の案件をこなすため、それぞれの仕事をアルバイトの人がこなせる程度の仕事に分割し、それを割振りながら自分も開発するなど、到底不可能だと思います。そもそもタスクを割り振りした経験すらないのに。。。

毎日残業、家に帰ったらご飯を食べて酒を浴びるように飲んで、風呂に入って深夜に寝る。次の日は当然授業なんか間に合わないから昼過ぎに起きて準備をして出勤。本当に社畜のような生活を送っていました。

とは言え自分だけが残業しているのではなく、上司も他の社員も残業しているので、特に文句を言う訳でもないですし、そもそも自分の能力がないから残業になってしまうんだと思ってました。そうは言っても毎日他のどの会社の人間よりも遅くまで会社に残って開発してました。深夜1時に退勤とかよくある話です。

転機

さて、このような毎日を過ごす中で、幾分心の支えになったのがアルバイトとして入社してくれた友人など、会社の人達です。あと、彼女の存在も大きかったですね。家に帰ったらご飯を作ってくれてたりして、孤独感を感じなかったです。彼女がいなければ普通に精神崩壊してました。仕事のしんどさでやめようと思った事は何度もありますが、自分が辞めると彼らに直接負担がかかることが分かっていたので、どうしても踏みとどまっていました。

ただ、ある時ふと考えたのが、このままこの会社で働き続けることは自分にとってメリットがあるのだろうかという事でした。働く理由が他人に迷惑をかけたくないという負の考えのみになってしまっている現状は本当に良いのかという事を考えて、現状を冷静に考えることにしました。

実際僕の業務内容は、CADを描いて装置の設計を行い、PythonArduinoと通信してロボットを動かしたり、Opencvとかで画像処理を行ったりするといった具合で、会社の内部での希少価値は高かったと思うんですけど、社会に出たときに僕のこのスキルって全然活かせないなと思ったんです。僕は当初から、サークルで遊びまくってる一般的な大学生より何倍も努力して、もう一生追いつけないような差を就職前から付けておく、要はフライングしておきたいなと思ってた訳です。それが気付いたら社会に役に立つかと言われると、そこまで必要とされていないスキルを身につけている訳です。これはどうなんだろうと。別に役に立たないスキルなんてないんですけどね。ただ、じゃあもし自分が将来的にアプリ開発エンジニアになるとして、この仕事がアプリ開発に直接活かせるかって言われると、全く関係ないわけで。正直将来的にCAD描いて開発するエンジニアになる未来は全く見えなかったですし、なんならもう描きたくなかったですし。

確かこの辺りだったと思うんですけど、twitterカズレーザーさんの言葉が流れてきました。

いや、ハッとしました。確かに自分が会社を辞めたら迷惑をかけてしまう人はいっぱいいます。けど、ジョブスでも替えがきくんだから、自分なんか辞めても大丈夫だろうと。こう考えてからは楽でしたね。結局自分に都合の良い考え方じゃんって訳なんですけど、良いじゃないですか。やっぱり交友関係は大事ですけど、だからと言って自分より他人を大事にして、自分の気持ちとかを疎かにするのは良くないなと思ったんです。

退職

それから色々時期を見て、確か5月くらいに上司に連絡をとって、7月に辞めることになりました。やめるにあたって、引き継ぎ書類を完璧に用意したり、今まで持ってた案件を完遂させたり、色々大変だった訳ですが、なんとか全て完成させ、7月中を持って会社を退職する運びになりました。

引き継ぎはかなり大変で、というのも今後僕にほとんど連絡が取れなくなる訳ですから、僕が開発してたものを引き継いでくれる人が詰まった時に聞ける人がいない訳です。その際に参考にする資料を作るので、あらゆるケースに対応した資料を作る必要があって、本当にこれでもかってくらい細かく書きました。

これからエンジニアを目指す人へ

こんな感じで未経験からベンチャー企業にアルバイトとして入社し、途中から正社員になって勤務してきた会社を退職した訳です。

最近はプログラミングスクールとかが流行ってきて、駆け出しエンジニアの方々も増えてきていると思うので、僕の経験を元にこれからエンジニアになろうと思う人に僕の考えを伝えたいと思います。

ベンチャーで働くということ

僕の考えは、ベンチャーはスキルをつけるのにはもってこいだが、のめり込むのはよくないという事です。

特に僕のように地方の学生になるにつれて、エンジニアの求人は少ないと思います。東京は溢れているように感じますが、京都は本当に少ないです。これがもっと地方だと、より限られてくるでしょう。そして、その中でも未経験可な求人はもっと少ないと思います。自分も採用をしていた身なのでわかりますが、未経験エンジニアは雇いたくありません。というのも、学習コストが高く、自分の時間をその人を成長させるのに使わなければならないからです。小さな会社ほど、各個人の担当範囲が広くなりがちなので、この傾向は大きくなるのではないでしょうか。

その中でも、未経験可、あるいは募集条件が緩めなところを見つけた場合は、迷わず応募してみるのがいいかと思います。正直プログラミングスクール程の高額な費用をかけなければプログラミングを勉強できないのなら、エンジニアに向いていないと思います。世の中には本やweb教材など、もっと安価で、あるいは無料で学習できるサービスがあるので、それを有効活用すべきですし、そもそもエンジニアバイトをすればお金をもらいながら勉強できるからです。

エンジニアバイトはブラックなのか

エンジニアバイトはブラックだという話をよく聞きますし、実際僕もそうでしたが、社員になるまでは働きやすい環境でした。どの会社もそうとは限りませんが、そこまで過酷な環境で働かせることは、自分がその会社にのめり込まない限りはそうないと思いますし、何より自分に合ってなければ辞めればいいだけの話です。

実際僕は未経験から1年程度で、それなりにエンジニアとしての力はついたと思いますし、エンジニアの力をつけるにはある程度の過酷な環境に身に置くのも必要な過程なのではと思います。

すごい人に出会える

あと、ベンチャーじゃなくてもそうだと思うんですけど、会社で働くと、世の中にはとんでもない人がいるんだなと思って、いかに自分が小さな存在かってのを再確認できるんじゃないかなと思います。特に僕の上司がそうだったんですけど、特色入試で京大に入った電電の先輩に当たる人なんですけど、とにかく最初はエンジニアで、プログラミング力が化け物みたいな人でした。色々すごいところはあるんですけど、一番は問題解決能力が半端ないんですよね。コーディングでもそうなんですけど、特にハードウェアに関しては、ロボットが上手く動かない時に色々原因が考えられるんですよね。電源供給が上手くいっていないとか、断線してるとか、電流が足りてないとか、配線が間違ってるとか、そもそもプログラムがおかしいとか。しかも純粋なプログラミングとは違って、エラーメッセージとか出てこないから、どうなっておかしくなってるのかすら分かりにくい。しかもそれらが複数原因となって動作不良を起こすことが多くて、結構未知の現象に遭遇することが頻繁に起きるんですけど、そういう時に僕なんかは考えはするものの割と手探り状態になってあちこち歩きながら進んでしまうんですけど、その人は着実に根本の原因に向かって一歩ずつ踏み込んで進んでいけるというか。

後はマネジメント力ですね。グループ長で10数個の案件をもらってきて、それを僕ら各ユニットに振るという感じになるんですけど、予定表は平日も休日も朝から晩までミーティングだのなんだので予定がパンパンで、なのにちゃんとタスクは振れる。立場上反感を受けやすい立場ではあるんですが、やっぱりすごいです。僕はどうやってもこの人にはなれないなと思いました。

ただ思うのは、僕が目指す像はそもそもこの人ではないなということです。僕は小さい頃から、身近の人で尊敬できる人を見つけて、その人に同化していくことで自分を成長させるということをよくしていました。従って、自分よりすごい人が多い環境に身を置くことで、どんどん自分を成長させることができる訳です。というわけで、僕はずっとこの上司を目標に頑張ってきたのですが、彼は僕の目指すエンジニア像ではないなと感じて、それも僕が会社を辞めようと思った一つの原因でした。

ともあれ、僕が言いたいのは、企業に入ると、こういう分かりやすくすごい人って大体いるんじゃないかなと。そういう人を目指して開発していくことで、どんどん成長していけるんじゃないかなと思います。だからある程度基本の文法とかを身につけた段階で、天才じゃない限りはすぐに企業でアルバイト探したら良いと思います。ものを作れる天才だったら、勝手に色んなサービス作っていけば良いと思いますけどね。僕もそんな天才になりたかったな。

これからについて

7月に退職後、学校の試験が待ち構えていました。途中で言ったように5月くらいからまともに授業を受けてないので、ほぼ0の状態から1ヶ月くらいで準備しないといけません。しかも行きたい研究室は割と人気があるという噂があったので、結構いい成績を取らないといけません。死ぬ気で勉強して、なんやかんや試験を乗り越えて夏休みはだらだらしてだいぶ気分転換できました。その間web系のエンジニアをやってみたくてrubyrailsjavascript辺りを軽くさらって、webサイトを作ったりしていました。そんなこんなで、同じく京都のweb系の会社に縁があって、これからまたアルバイトとして働かせてもらうつもりです。エンジニアとして社員になってちょっと痛い目見ましたが、懲りずにエンジニアとしてアルバイトをしていきます。これはやっぱり楽しいからですね。きつい時はきついですけど。やっぱり何かモノを作れる、創造的なことって楽しいんですよね。楽しみながらスキルもついて、お金もどっさりもらえる。こんなにいいバイトはないと思います。少なくとも自分が今までしてきたバイトの中では最も良いバイトだと思います。

おわりに

というわけで終わりです。結局言いたいことがまとまってなかったかもしれないですが、最後に強調すると、ベンチャーはスキルをつけるのにはもってこいだが、のめり込むのはよくないってことです。あと、機会があれば企業でアルバイトしてみたらいいんじゃないかってこともそうですね。エンジニアバイトは他のバイトと比べても全然時給もいいですし、勉強もできるしで本当にいいバイトだと思います。

とりあえずまだもうちょっと学生でいられるので、バリバリスキル身につけていければなと思います。ここまで読んでくださってありがとうございました。