プログラミング初心者の方や大学生の方で、インターンシップで経験を積みたいという方はたくさんいると思います。
けれども、インターン先で問題なくやっていけるのか、周りのメンバーの足を引っ張ってしまわないかと考えて、なかなか実行に移せない方もいると思います。
本記事では、スタートアップ企業でインターン生の採用活動もしていた僕の経験から、インターン生に最低限どんなスキルを求めているかや、事前に学んでおいたほうがよい知識について解説します。
インターンに必要なプログラミングスキルと知識
必須のスキル
①どれか一つのプログラミング言語におけるフロントエンドの実装スキル
※バックエンド担当としてインターンを目指す方はバックエンドの実装スキル
②Gitの操作
③IDEの操作
あったほうが良い知識
④ネットワークの知識
⑤Linuxの簡単な操作
⑥クラウドの知識
解説
①どれか一つのプログラミング言語におけるフロントエンドの実装スキル
インターン生に依頼する業務で多いのは、フロントエンドの実装です。目に見える成果物ができることで、企業側も評価をしやすく、インターン生にとっても満足度が高くなるということがあるからだと考えています。
インターン先で必要となるプログラミング言語は様々なので、入りたいインターン先が決まっている場合は、募集している内容に合わせた言語選択が必要となりますが、最近の傾向からだと、Vue.jsまたはReactのどちらかを学習しておけば、インターン先の候補が増えます。
また、Rubyを使っているWeb系企業も多いので、Ruby on Rails を学習しておくことも候補が増える選択肢となります。
インターンへ応募する前に、何かを題材にゼロからフロントエンドを作り上げ、それを面接時にポートフォリオとして提示するとなお良いです。
バックエンドの担当としてインターンを目指す方は、バックエンドとしての実装スキルも必要になります。どちらでも構わないということであれば、フロントエンドの方が募集企業も多いと思いますし、学習もしやすいので、まずはフロントエンドとしてのインターンから始めることをおすすめします。
②Gitの操作
開発は基本的にチームで実施します。一人でGitを使うときは、commitやpushという操作がメインですが、インターンではそれらに加えて、チームメンバーがpushした成果物をpullしたりmergeという操作が必要となります。
これらがスムースにできないと、チームメンバーが作成した成果物を古いバージョンで上書きしてしまったりという事故が発生する可能性があります。
また、commitしたものを取り消したり、一時的にstashして、別のブランチに切り替えるなど、開発の状況に応じて様々な操作が必要となるため、普段から慣れておいて方が良いです。
開発した成果物は、プルリクエストをすることにより、チームメンバーにレビューしてもらったり、masterブランチにマージしてもらうことが多いので、プルリクエストの出し方も練習しておくと良いと思います。
③IDEの操作
開発は基本的にIDEを使うことが多く、企業やプロジェクトによって決まったものを使っている場合や、各自で別のものを使っている場合もあります。
一つのIDEの使い方に慣れてしまえば、他のIDEも基本的な使い方は同じなので、どれか一つに慣れておいたほうが、開発スピードをあげることができます。
どのIDEを選択するか、迷っている方は、VSCodeをおすすめします。
無料で使え、多くの言語に対応していて、WindowsでもMacOSでも使えます。
Gitの操作もプラグインで拡張することにより、簡単に扱えるようになったりするので、普段から使って慣れておくと良いです。
④ネットワークの知識
フロントエンドの開発でもサーバーを起動し、ブラウザでアクセスして動作確認をするような作業を行います。
そのため、ローカルホストやポート番号、IPアドレスなど、基本的なネットワークの知識は必要となります。
また、フロントエンドからの通信は、基本的にHTTP(またはHTTPS)を用いることが多いため、HTTPプロトコルの基本的な仕組みとして、ヘッダ、ボディ、レスポンスコード、GET、POSTなどは理解しておくと、問題が発生した際の解決がしやすくなります。
⑤Linuxの簡単な操作
フロントエンドを動かすサーバーは基本的にLinuxを使うことが多く、業務の担当範囲によっては、サーバーにログインして操作するようなことも行います。
複雑なコマンドを学習する必要はありませんが、基本的なコマンドとしてcd、cp、rm等のコマンドが使えるようにしておくと良いです。
普段からMacOSを使っている方は、コマンドの操作に慣れていると思うので、あえてLinuxを学習する必要がないと思いますが、Windowsを使っている方はコマンド操作に慣れることと、ディレクトリの概念(絶対パス、相対パス)を理解しておくことをおすすめします。
⑥クラウドの知識
最近の開発においては、クラウドを使うことが一般的になってきています。
フロントエンド開発者が必ずしも必要な知識というわけではありませんが、AWSやGCP、Azureのどれか一つについて、一般的な知識としてどんなサービスがあるのかということを理解しておくと、チームメンバーとのコミュニケーションがとりやすくなります。
ホウレンソウと向上心は重要
最近の学生は驚くほど優秀な方が多く、自分の学生時代と比べると本当に大きく違うと感じています。
スキルや知識が申し分ない方に、もう1つアドバイスをするとしたら、入社した後のホウレンソウ(報告・連絡・相談)をこまめに行うことを是非心がけてほしいと思います。
採用した企業からすると、インターン生が失敗したりすることは、採用する時点で想定済みです。
ただ、その失敗が報告されなかったり、遅れたりすると、他のメンバーをはじめ、様々なところに影響が出てしまい、問題を解決することが難しくなってしまいます。
ですから、聞かれなくてもホウレンソウを行い(ちょっとうるさいと思われるくらいが良いです)、自分の状況を周りに伝えてください。
また、わからないことは遠慮なく質問することも重要です。
仕事の依頼者は、質問を聞かれるよりも、わからないまま進めて違う成果物を作ってしまうほうが、困った状況になります。
最初のうちは何度も同じ質問をしても構わないので、自分が理解するまで質問し、自分自身が成長できるように向上心をもって業務に取り組んでほしいと思います。
今回はインターンに必要なプログラミングスキルと知識ということで、必須のスキルと、あったほうが良い知識を紹介しました。
もちろん全部ないとインターンできないわけではありません。企業によって条件が異なりますので、確認の上応募が必要となります。
ただ、自分で学習するよりも実務を経験するほうが、何倍もスキルアップに繋がります。
初めてのインターンは、あまり場所を選ばず、経験を積むためにまず行動したほうが良いと思います。
経験を積むうちに、企業の良し悪しも分かってくるので、やりたい仕事や磨きたいスキルに応じて、インターン先を選んだら良いと思います。
これからインターンを考えている方への参考になれば幸いです。
コメント