はじめに
今年の3月から東京のとあるベンチャー企業でインターンを始めた、生まれたてほやほや赤ちゃんエンジニアです。おもにnode.js, Angularを用いてwebサービスの開発を行っています。今回は、自分の過去を振り返るとともに、実際にインターンを始めてみて思ったことなどをまとめていこうと思います。
この記事の対象読者
- 競プロはやっているけど、これだけじゃプログラマにはなれないと思って不安になっている方(昔の筆者)
- プログラミングでインターンをしてみたい方
- 暇な人
※本記事は生まれたての赤ちゃんエンジニアによって書かれたものであり、開発経験のある方や強いエンジニアの方は対象としていませんのでご了承ください。
なぜインターンをするか
今日、プログラミングの学習には様々な方法があります。本を読む、プログラミングスクールに通う、progateなどのオンライン学習サービスを使う etc..。しかし、僕が考える一番効率の良い学習方法は圧倒的に、インターンをするです。ほかの学習方法と比べてインターンをすることのメリットを挙げます。
- inputとoutputを同時に行うため、効率よく技術が身につく
- どうしてもわからなかったらほかの人に聞ける
- お金がかからない(むしろもらえる)
- その会社にいる人とのつながりができる
- 楽しい(目的がはっきりしているので)
とまあこれを見ればインターンの素晴らしさは一目瞭然だと思います。また、自分が何をやりたいのかわからない人も、インターンをすることでいろいろな経験をすることができます。
一方、「でも自分には技術がないから、、」「自分には実務経験がないから、、」と思っていしまう人が多いと思います(自分もそうでした)。しかしそれは違います。技術、経験がないからこそインターンをするのです。思い切って飛び込んでみればきっとすごい成長につながると思います。
ここで重要なことがあります。それは
インターンに行ったからって何でもかんでも手取り足取り教えてもらえるわけではありません。
わからないことがあったりエラーがでたりしたときに、自分で検索して問題解決ができる能力こそがエンジニアにとってとても大事な能力であることを忘れてはいけません。
それはさておき、ではどうすればインターンをすることができるのでしょうか。簡単なことです。片っ端から申し込めばいいのです。
インターンのはじめかた
僕はWantedly (https://www.wantedly.com) を使ってインターンを調べました。wantedlyとは、インターンやアルバイト、中途採用を求めている企業と、それをしたい人をつないでくれるサービスです。ユーザーは気になる企業に簡単に連絡を送ることができます。
フロントエンドエンジニアやサーバーエンドエンジニア、スマホアプリ開発エンジニアなど様々な分野や使用言語の募集があります。エンジニアの種類についてはこの記事がわかりやすいです。(https://qiita.com/SyogoSuganoya/items/4c9eb780306857f32455) 僕はサーバーエンドに興味があったので、サーバーエンドエンジニアを募集している企業に片っ端から応募しました。言語もテキトーです。(実際に開発しながら一生懸命勉強するのが一番効率が良いと思ったため)
次に、返信をくれた企業とは、ビデオ通話で話すか、直接その企業に行って話すかのどちらかになると思います。主に企業の説明と、自分の今までの経験やプログラミングに対するやる気等を聞かれました。僕は「実務経験はありませんが、やる気はあります」でごり押しました。競技プログラミングをやっていたのでプログラムを書くことに慣れていたのと、基本情報技術者試験を持っていたのが功を奏したのだと思います。また、自分にどんな経験をさせてくれるのかここでしっかり聞いておくことが重要だと思います。(雑用をやらされるのは嫌なので)
採用テストがない企業もあれば、ある企業もありました。実務経験はなくとも、少しくらいのプログラミング経験はほしいということですかね、、。
採用テスト例
これは実際にやった例ですが、下の画像のデザインのサイトををhtml,cssを使って1週間以内に作ってくださいという内容でした。そんな難しくないことがわかるかと思います。
インターンをやってみてよかったこと
※これは完全に僕のインターン先での話であるため、参考程度にに読み流してください。
実際にサービスの開発に携わることができ、目的が明確なため、プログラミングの学習効率がえぐい
学ばなければいけないことが明確に決まるので、とても勉強になります。また独学では、あるサービスを開発してそれを公開までもっていくのは大変だと思います。しかし、企業ではその流れを一緒に体験させてもらうことができます。また、サーバー代も企業が持ってくれるためうれちいです。ベンチャー企業であり社員数が少ないため、社長の話を頻繁に聞ける
いつでも社長と話すことができます(僕の職場がアタリなのかもしれませんが、、)。様々な経験を積んできた人との会話からは、とてつもなくたくさんのことを学ぶことができます。お金が稼げる
エンジニアやはり給料がいいです。好きなことをやって、めっちゃ勉強になってしかも稼げるなんて最高ですよね。楽しい!!!
実際に形のあるものを作っていくのはとても楽しいです。次につながる
まだまだひよっこですが、「実務経験なし」ではなくなったので、ちょっと自信が持てました。大手のインターンにもどんどん申し込んでみようと思います。
インターンをやる前にやっておくといいこと
絶対必要というわけではないですが、やっておくと後々かなり楽になると思います。高校生などで時間がなく、すぐにインターンを始められなそうな人はこの内容を勉強しておくのがいいと思います。
基本情報技術者試験の勉強
エンジニアになるために最低限必要な知識はほとんどここに詰まっているといわれています。実際に知っていて役に立った知識がたくさんありました。(ネットワーク,マネジメントetc...)100時間くらい勉強時間が必要かもしれませんが、とてもためになるのでやって後悔しないと思います。基本情報を持っていれば最低限のITの知識の保証になるので採用に有利になると思います。
※インターン先でどっちにしろ学ぶことになると思うので、無理にとる必要はないと思います。
html,cssの勉強
html,cssくらいは書けたほうが良いと思います。これはprogate等を含め学習できるサイトがたくさんあるのでやってみるとよいと思います。
競技プログラミング
はい、全国民は競技プログラミングをやりましょう。楽しくプログラミングに慣れ親しみたい方はこれに限ります。一度始めたら最後、のめりこんでしまうこと間違いなしです。という布教活動は置いておいて、競技プログラミングはプログラミングに慣れるのにおいてとても優れています。趣味程度でもいいので初めて見ることをお勧めします。
おわりに
今回は自分の考えをだらだらとまとめていきました。もちろんこれは僕自身が経験した話であり、違う考えを持つ人もいると思うので、そんな考えもあるのか―くらいに考えてもらえれば幸いです。また、インターンを始めたいと思っている人たちの参考、もしくはモチベーションに少しでもなればうれしいです。
インターンをすることに変なハードルを感じる必要はありません。やる気さえあれば高校生でも全然できます。(僕の職場にも高校生います)