世界中の"むずかしい"を簡単にする株式会社diffeasyの取締役CTO西です。2019」の15日目の記事です。先日38歳になり、エンジニアとして社会人デビューしてから16年が経ちました。これまで、サラリーマン→個人事業主→ベンチャー創業CTO→ベンチャーにCTOとしてジョインという様々なポジションでエンジニアをやってきました。働き方が多様化する中で、個人事業主ってどうなのか?とか、ベンチャー創業、ベンチャーで働くってどんな感じ?とか、CTOになるにはどのようなキャリアを積めば良いの?とか、これからのキャリアで悩むエンジニアの方も多いと思うので、私のエンジニア人生が何かヒントになれば、と思い共有します。エンジニアになるために何をした?よく聞かれるのが、「エンジニアになるのにどこで勉強したんですか?」という質問です。最初にプログラマーという道を考え始めたのは中学の頃でした。当時はまだパソコンが一家に一台家にある時代ではありませんでした。パソコンとかプログラムのことなど全然知らなかったけれど、ファミコン・スーパーファミコン・プレステで育った私は、ゲームを作る仕事をしたい!ということをなんとなく思っていました。当時はまだプログラマーは「オタクがなる仕事」みたいな言われ方をしていました。進路指導の先生からも、まずはプログラマーになるよりも、普通科の高校行って、大学行って、それから仕事を探した方が良い、というようなことを言われた事を覚えています。今進路に迷っている方がいたら、1人の大人の意見だけを聞かずに、色々な職業や、色々な働き方がある事を知ってください。自分の人生に責任を取ることができるのは、自分自身だけです。進路指導の先生も、たとえ親でも、アドバイスは聞いた方が良いですが、それが全てではありません。プログラミングを学び始めたのは、大学に入学してからです。情報システム学科というところでアルゴリズム、データベース、ネットワーク、HTML、C言語などITの基礎を学びました。HTMLで自分のホームページ書いたりなどは楽しかったですけど、正直授業として勉強するプログラミングは全然面白くなかったです。当時塾でバイトしていたので、教育系の会社に就職しようかな、とかも考えていました。そんな感じでプログラミングは全然身についていなかったのですが、大学4年になってから状況が変わります。卒業研究が始まり、Javaを使ってひとりで1からアプリケーションを作ることになりました。当時動的なコンテンツによく使われていたJavaアプレットというもので高速道路の渋滞情報をグラフで解析するツールを作ったのですが、これがめちゃくちゃ楽しかったです。これがきっかけで、やっぱりプログラマーになろう!ということで、改めてIT業界で就職活動を始めました。これからエンジニアを目指す方、駆け出しエンジニアの方は、勉強としてプログラミングを始めるのではなく、ぜひ自分で何かを作ってみてください。作りながらわからないところをひたすら調べて行ってください。どんな仕事でもそうですが、それを極めようと思ったら、それを本当に好きな人にはかないません。給料がたかそうとか、お金儲けできそうだから、という理由でプログラマーを目指すのは、オススメしません。それほど勉強する範囲は広範囲に渡ります。ITは日進月歩で変わっていきます。変わり続けるITをずっと学び続ける。それほど好きか、それほどの覚悟をもってください。サラリーマンエンジニア生活スタートそんなこんなで大学卒業後、2004年から地元のIT企業でプログラマーとして働き始めました。当時は就職氷河期でしたが、それほど大きくない会社の方が自分の存在感が発揮できるかな、と思い、80名ほどの会社に入社しました。だいたい私は自分に根拠のない自信を持っているのですが、入社当初から、「将来は独立します」という事を先輩や上司にも言っていました。生意気な新入社員だったと思います。最初に入社した会社は、上司や同僚に恵まれて、とても良い会社でした。エンジニアとしての仕事の進め方を色々学ばせていただきました。今でも飲みに誘ってくれたり、色々と連絡くれて気にかけていただいています。最初の仕事はそこの会社がやっていたOEMシステムのテスト、バグ改修でした。大学でJavaは勉強していましたが、やはり実践のシステムで使われているJavaは今まで勉強してきたものとは全然違いました。1から学び直しという感覚でしたが、やりがいもあり、楽しく充実した社会人生活がスタートしました。社会人として最初にどのような会社で働き、どのような上司のもとで働くかで、だいぶ仕事に対する価値観や思いも違ってくるのではないかと思います。COBOL案件その後COBOLの開発案件もやりました。IT業界の方ならわかると思いますが、COBOLとは古くからある大きな企業のシステムで使われていることが多いレガシーな(古い)言語と言われるプログラミング言語です。若いエンジニアなどから敬遠されがちです(笑)正直私も最初はWebやりたい!!という感じで、早く抜けたい!!と思っていました。これもやってみるとなかなか面白くて、自分にとってはCOBOLも初めての言語だったので、メモリ空間の使い方を意識して変数を定義したり(うろ覚え)新鮮で勉強になりました。ここでも周りの人たちに恵まれました。(怖いお客様もいましたが笑)早朝から新幹線通勤したり、COBOLのソースを紙に印刷してマーカー引いて、お客さんにレビューを受けたりすることは辛かったですが、楽しい案件でした。サラリーマンのエンジニアをやっていると、自分がやりたくない仕事にアサインされることもあると思います。その中でも自分で意味を見出し、そこで何かを学ぶことができます。いえ、会社の言いなりになる必要はありません、自分が何をしたいのかは失ってはいけないかな、と思います。私はCOBOLの案件やりながらも、Webやりたい!という思いはずっとありました。時間外や土日を使って、自分でWebサービスを作り始めました。会社がチャンスを与えてくれない、とかそういう話もよく聞きますが、やろうと思えば、何でもできるし、そこまでしてやらないことであれば、それは本当にやりたいことではない、と思います。Webサービスを作るのに必要な知識も独学で学びました。DNS、サーバー、PHPなど、大学の時から学んでいて基礎はあるというものの、サービスを作りながら、楽しく学びました。ロリポップのレンタルサーバーを借りて、今はおそらくなくなったであろうドメイン管理サービスで、ドメインをとって。HTMLやCSSも独学で自分なりにデザインやUIを考えて、フレームワークもなく、素のPHPでオンライン家計簿サイトを作りました。この頃からゲームやることも少なくなり、寝る時間も削って、土日も家で(彼女とのデート以外は)プログラムを書いていました。広告貼れば、お金儲けもできるかな?と思ってGoogleAdsenseを始めました。・・・が、1円稼ぐことの大変さを学びました。仕事で帰りが遅くなったり、新幹線通勤が辛く、キツかった日々ではありましたが、今の妻とも出会い、自分でWebサービスを作ったり、仕事仲間にも恵まれ、とても充実した若手サラリーマンエンジニアの日々でした。diffeasyジョイン編」につづく・・ダウンロード#コラム#キャリア#社会人#駆け出しエンジニアこの記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。脱サラ→フリーランス→ベンチャーCo-Founder/取締役CTO→diffeasy取締役CTO→スタートアップ起業準備。