エンジニアのインターンをまだ始めたことがない人向けに
エンジニアのインターンってどんなことをするの?
どんなことを学べるの?
この辺のことを実体験を通してお教えしていきます。
結論、エンジニアのインターンは「プログラミングの力をつけたい」「エンジニアのスキルを伸ばしたい」等を考えている方にとっては非常にマッチしているので基本的にはお勧めしています。ただその企業次第なところもあるので、最後はご自身で見極めてください。
※これは私が大学2年~3年のときの話になります。
インターンを始める前の状態
先にインターンを始める前の私の状態です。
- 大学でプログラミングの授業があったのでそれをなんとなくやっていた
- コンピュータの仕組みとか小難しい話はまったくわからない
というどこにでもいる感じの平凡な情報系の学生でした。趣味でプログラミングをしたこともなく、コンピュータのこともそんな詳しくなかったです。
そんな私がどうしてエンジニアのインターンをしようと思ったのか、きっかけについて少し話をします。
私はもともと普通の飲食などのアルバイトをしていたとき、仕事はしていても特に勉強や身になることもなく、「時間を浪費している」という感覚があり、これが非常に苦痛でした。そんな日々の中で、
「どうせなら、何か将来に役立ちそうなスキルを身に着けられるようなことをしたい」
そう考えるようになりました。
そこで、自分が情報系ということもあり、先輩や周囲にこういう相談をしたところ
「プログラミングの仕事が学生でもできる」ということを知り、エンジニアとしてプログラムを書いて働くことを目指すようになりました。
ここで疑問がいくつかでてきます。
- 学生をエンジニアとして雇ってくれるような企業ってどれだけあるの?
- 特にエンジニアのスキルがあるわけでもない自分でも採用されるの?
学生をエンジニアとして雇ってくれるIT企業ってどれだけあるの?
私は京都なので京都で頑張って探してみましたが、実は10社もありませんでした。IT企業が沢山ある東京や大阪ならいくらでもありそうですが、ちょっと地方に行くとそもそもIT企業の存在自体がきっと珍しいことでしょう。
これはばかりは頑張ってGoogle検索や周りの人に聞いて情報を集めたりして頑張って見つけるしかなさそうです。
とりあえず、会社は見つかり学生のインターン(アルバイト表記のところもあるが差異は特にありません)募集があったので気になったところに応募してみようとなりました。
エンジニアのスキルがなくても採用されるの?
結論、大学で習ったプログラミング程度の知識では採用されるのは難しいです。ただし自分で仕事内容に関わるような勉強をしていけば採用される可能性は十分にあります。
私が応募しようと考えていた企業での仕事はどこもWebアプリケーションの開発というものでした。私が大学で学んでいたプログラミングはアルゴリズム等でアプリ開発などではなかったので、仕事でやるプログラミングとはちょっと違う方向性のものだったこともあったためか、応募した最初の2社ぐらいは不採用となりました。
そこで、Webアプリケーション開発の勉強を1~2カ月ぐらい独学でやってから、まったくの素人ではないです、というアピールをしていったら、次の3社目で採用していただけました。この独学も特に死に物狂いで勉強したとかではなく、アプリがどんな感じで作られているのか勉強したぐらいなのでハードルは高くないと思います。
参考になるかわかりませんが、この時僕が勉強したのは、Ruby on Railsでした。公式のチュートリアルに沿ってアプリを作りながら勉強して、そこにちょっとアレンジ加えてみたぐらいのことしかしていません。
インターンでの取り組み
そうして採用されて働くことになったのは東京に本社を構える某有名ベンチャー企業の京都支社でした。入社してからは勉強の日々でした。
タスクは勉強して知識を付けながらこなす
入ってすぐは業務でプログラムを書いて開発するなんて経験はありませんでしたから、まずはそんなに難しくないタスクを振られて慣れていく事から始まりました。知らないことは調べながら、それでもわからないときは社員の人や先輩インターン生に質問しながら進めていく、というようなやり方でした。
タスクを通して新たな知識を身に着けていけることの楽しさと充実感はとても凄く、働いていて時給でお金をもらっているバイトと変わりないのにも関わらず、非常に楽しく働くことが心底楽しかったのを覚えています。
大学の授業後にシフトを入れていた時は、「早くオフィスいきたい!」と思っているほどでした。
また休憩は自由にとって良かったり、業務に支障がない限りは多少雑談などしたり、集中したいときは音楽聞きながら取り組めたり、環境も良く非常に快適でした。
実際にやっていたこととしては、最初の方はフロントエンドの画面のちょっとした修正や、バックエンドのロジックに修正を加えると言った、修正が基本でちょっと手を加えればできることから始まり、出来ることが増えてきたらサーバーの状態を見るようになったり、新機能を一人で新しく実装したりと何でも挑戦させてもらえるようにまでなりました。
新しいアップデートを本番環境に適応するといったような、正直インターン生にそんなことを任せてもいいの?と思えるようなことまで任せてもらえたりして貴重な経験が出来ました。
実務だからこそ得られる経験
業務で開発する、という経験だからこそ得られるものがありました。
・新しい機能をリリースする日が決まっているので実装内容に優先順位をつける
・プランナーやデザイナー、テストエンジニアの人との密なコミュニケーション
です。
新しい機能をリリースする日が決まっているので実装内容に優先順位をつける
次実装することが決まっても、それに付随してこうした方がいいんじゃないか、これも追加したい、といったような要望が出てくることがよくあります。しかしアップデートをする日は決まっているので、何でも「わかりました、できます」といっては何かの実装が間に合わないというようなことが起こりうる可能性があります。
なので次のリリースで絶対に実装しておかないといけない機能や優先度高めの機能というのを自ら決めて、場合によっては「今回は間に合わないので次回に見送ります。」といったような判断が必要なことがありました。こういう優先度をつけて何でもできると言わず、業務をこなすというのは実務ならではだなと感じました。
プランナーやデザイナー、テストエンジニアの人との密なコミュニケーション
業務なので当然一人で開発しているわけではなく、それぞれの役割の人が要望を出したりデザインを作ったりして実装をエンジニアに頼む、というな感じになっています。
そこで認識のズレがあっては開発をやり直さなければならないことになったりします。
そういうことがないように、どういうゴール(完成系)を目指しているのかをお互いがハッキリ理解できるよう、認識のズレがないよう、わからないときはヒアリングして疑問がなくなるまで話を聞くということが必要になります。
時には逆に相手からプログラムや実装の仕組みについて聞かれたりもして、とにかく密なコミュニケーションは必須でした。
この時はもう普通の社員の人と変わらない感じで、自分の担当分は責任をもっていろんな人とコミュニケーションをとって実装するという感じで非常にやりごたえがありましたし難しい所でもありました。
インターンを通して
そんな感じで1年間インターンをしたわけですが、プログラミング周りの技術の勉強だけでなく実際の業務での開発の仕方なども学ぶことができて非常に勉強になりました。
1年で辞めた理由としては、新しい事を学ぶことがほとんどなくなってきたためで、辞めてからはまた別の会社でインターンをするようになります。
とりあえずこの最初の1年間で学べたこととしては
・現場での開発の仕方
・プログラミングの技術
・サーバー周りの知識
・データベースの知識や設計の仕方
などなど本当に色々学べました。1年で色々なことが出来るようになりました。大学でプログラミングの授業受けてたぐらいのレベルだったのが、自分でサーバーを組んだり、データベースの設計をしたり、新しい機能を実装したり、フロントで新しいページを作ったりできるようになりました。
働いてお金を貰いながら勉強できて、わからないところは聞き放題という環境で力をつけられるのは最高だと思います。独学ではやはり限界があると思うので早くからこういう力をつけてみたいと思っている方は本当にインターンをお勧めします。
最後に一つだけ注意点
長期のインターン最高!という話でしたが、友人らや周りでも長期インターンをしている人と話をしたところ、自分は結構いい環境にいた、ということがわかりました。
やはり会社によって待遇はさまざまなようで
・全然やりたいことをやらせてもらえない
・先輩らが全然教えてくれない、あるいは教えてくれるときの態度が悪くて辛くなる
・労働環境がシンプルに悪い
といったようなところもあるみたいでした。
なのでこういうブラックな感じが漂うところはすぐに辞めて、別の会社探すのをもう一回頑張るぐらいしてもよさそうです。その辺りの見極めは大事だと思うので気を付けてみてください。
(こういう会社は数としては少ないと思うのですが…)
コメント