1. Oさんのエンジニアとしての歩みを教えて頂けますか?
私の場合は、中学時代にロボコンを見て、高校に入ったらロボットを作るようなことをやりたいなと思っていて、それで普通科の高校ではなく、工業高校に進学しました。
そこで高校に入ってからは、.NETで簡単なWindowsアプリケーションを作ったりするようになりました。そのきっかけとしえは、やはり高校の部活の存在が大きかったです。
基本的には何でも好きなものを作っていいよというような、自由な(笑)部活だったのですが、そこで自分の周囲にものづくりをしている人達がいたことは話題を共有できると意味で大きかったなと思います。2足歩行ロボットをつくったり、電子基板をいじっていますというようなメンバーがいて、変わり者の集まりでしたね
高校には、当時情報科がなかったので、自分から先生に懇願して、情報科をつくってもらいました。信じられない話ですが、私が懇願した情報科はできて、私以外にもクラスの3割くらいの人間が情報科に所属することになりました。そこでは、モーターを制御するようなプログラムを書いてみたり、情報工学を学んだりしていました。これは工業高校ならではの醍醐味だったように思います。普通科に進学していたとしたら、できない経験だったと思うので。
そして大学に進学するのですが、大学ではメデイアの成り立ちの歴史について学んだり、IllustratorやPhotoshopを使ってポスターをつくってみようというような授業、選択科目としてプログラミングや映像、CGについて勉強する機会があるような大学に進学しました。
また大学では自由になる時間が増えたので、大学3年からは大学生のうちからプログラミング、Webデザインのスキルアップをしたいと考え、インターンに挑戦しました。有給インターンに行く前は、独学で、本を買ってきて自分で作りたいものを決めたうえで、アプリやWebサイトをつくるということをしていました。
一番自分がやっていたのは、ブラウザゲームをAndroidやiPhoneのアプリに移植するという作業でした。AndroidやiPhoneのアプリを開発するときには、辞書的な書籍を購入してきて、自分が作るものに必要な該当箇所のみ目を通して書籍に掲載されているソースコードをもとにコードを書いていきました。
エンジニア就活の開発コラム記事でも書いていることですが、やはり何をつくるかありきで作るほうがよかったなと自分の経験でも思います。
ただアルバイトとして対価をもらいながら開発してみたい、実務で自分の力を試し、さらに磨いてみたいという思いがあり、大学3年時点からエンジニアとして有給インターンを開始しました。インターン先では、実際にiPhoneのアプリをObjective-Cを書いてつくる、Androidアプリをつくる、デザイナーの方と打ち合わせをしながら納期までにアプリを開発するというような経験を積むことができました。
Androidアプリ、iPhoneアプリの開発経験もありませんでしたが、半年の間実際に業務に関わるなかで作りながら覚えていったような形です。
2. エンジニアとしてIT企業で有給インターンに参加してみてどのような学びがあったと思いますか?
今まで一人で基本的に開発をしていたので、誰か他の人間と期限を決めて、そして綿密なコミュニケーションをとりながら開発をする機会はありませんでした。IT企業で有給インターンをするようになって、自分以外の人と一緒に開発するプロセスについて学ぶことができました。
最初自分があまりできていなかったのは、定期的にメンバーとコミュニケーションをとりながら作業を行うということでした。より具体的な例で言うと、デザイナーの方からPSD形式でデザインされたデータだけ渡されて作業しても実際アプリを作るときにどのようなものにするか、そこにはエンジニアとデザイナーの間でイメージにズレがあることが多々ありました。なので、実際データをもらってからデザイナーの方が考えているイメージと自分の考えているアプリの完成のイメージが一致しているかの確認をきちんと行うことの重要性を学びました。
またIT企業内で有給インターンをやるとなった場合には、個人で自由に開発する場合とは異なり、必ず期限が決まっています。以前自分がアプリを作ることに関わっているなかで、自分が作業を抱え込んでしまって作業が進まなくなってしまったことがありました。なにか詰まったことがでたときに、きちんと質問する、頼るべきところは頼るべきという教訓を得ました。
また自分で好きなものを自由につくっていたときには特に納期があるわけではありませんが、納期があることのプレッシャーを感じることはもちろんありました。ただそのプレッシャーがプラスに働き、自分で趣味の延長線上でプログラムを書いていたときに比べて格段に短期間でプログラムを書く時間が増えることになりました。
納期があったからこそ、アプリを作るのに完成までにどのくらいの工数が発生するのかを、実装しなければならない機能ごとに見積もって、作業にかかる時間を見積もりし、報告してから作業するといった経験を詰めたことも非常に有益だったなと感じています。IT企業における有給インターンをおすすめします。
ただ自分が好きで作りたいものを作れるわけではないときもあったので、やはりプライベートでも色んなものを作り続けたいなと思います。