高校・インターン2年生の2020年振り返り

# はじめに
N高等学校のネットコース、2年生の@hinatao3o (Hinata Fujihara)です。
私についての詳しい情報は、[ポートフォリオ](https://hinatao3o.github.io/portfolio/)に書いてありますので気になる方はご覧ください。
このエントリーは[N高等学校 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/n-highschool) 6日目の記事です。
アドカレへの参加は初&文章を書くのはそこまで得意ではないのでぜひお手柔らかに:v:

# なぜインターンに参加しているのか
私は、2019年4月の終わりごろからインターンシップに参加してWEBエンジニアとして働いています。

初めにインターンに参加した理由は、簡単なアルバイトに時間を使うのはもったいないと感じていたこと、実務経験を積んで成長したいと思っていたという単純なものです。

「えっ！？プロに指導されながらコードを書いていたらお金がもらえるんですか！？」…みたいな（？）

N高生であれば自由な時間が多くあるので、今後の自分のためになることがしたいと考え複数の企業でインターンに参加してきました。
2019年の入学当初は週1回キャンパスに通う通学コースでしたが、2年次に進級してからは更にインターンに力を入れるためネットコースに変更しています。

# 2020年インターンでやってきたこと
2019年4月からインターンに参加してきた私ですが、2020年からは複数の企業でインターンに参加して様々な経験をすることができました。
2020年を通して各企業でどのようなことをやってきたかを記します。

2019/08の時点でも[インターンの体験記](https://careerbaito.com/story/detail/140)のようなものを書いているので、もしお時間があればそちらも読んでいただけるとより私の成長具合がわかるかと思います。

## 株式会社アイタンクジャパン
私が初めてjoinした企業です。
主な事業として、日本最大級の大学生向け長期実践型インターンシップ求人サイト「[キャリアバイト](https://careerbaito.com/)」を運営しています。
私自身もこのサイトからインターン先を探し、アイタンクジャパンにjoinすることになりました。

### やってきたこと
主な業務は[キャリアバイト](https://careerbaito.com/)やその管理画面、自社システムの開発・運用です。
WEB開発の領域ではバグ修正や機能開発などをPHP(CakePHP), MySQL, js(jQuery)を使って行っています。
N高とキャリアバイトは[提携](https://nnn.ed.jp/news/blog/archives/7678.html)しており、それに関する情報共有のためのシステムを作るためにGoogle Sheets APIなどを利用したりもしました。


COVID-19の影響で、2020年初頭からは在宅勤務に切り替えています。
これによってコミュニケーションの取りづらさから、社内での問題発見→タスク化→解決までの時間がかかることが課題に上がりました。
この課題を解決すべくこれまでのエンジニアがタスクを登録するというフローから、社内の誰でも問題点を見つけた時点でタスク化し情報を共有できるようにする必要があると考えました。

そこで、問題の重要度によって「バグ」,「要望」,「意見」のレベルをつけ、SlackからBacklog(プロジェクト/タスク管理ツール)への登録を可能にする独自のSlackアプリを開発しました。
Slackで特定のフォーマットに沿った文章が送信された際に、Outgoing WebhookからAmazon API Gatewayを経由してAWS Lambda関数を実行しています。
Lambda関数はnode.jsを使い、Backlog APIを用いてSlackから送信された情報をタスクとしてBacklogに登録、新しくタスクが追加された旨をエンジニアに伝えるようなものになっています。
![スクリーンショット 2020-11-22 2.34.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647095/67fc3f17-6200-5e6c-bb05-93e6a84cd5b0.png)

また、WEB開発に使う個人毎の開発環境ではAmazon EC2へのアクセスをセキュリティグループを使い、社外IPからアクセスができないようにしていました。
しかし、勤務場所が自宅になったためにこの許可範囲をそれぞれのIPアドレスまで広げる必要がでてきました。
初めは手動で設定をしたのですが、チームの中にIPアドレスがすぐに変わってしまう方がいたために独自のSlackコマンドを開発し、個人の開発環境にコマンド1つでアクセスできるようにしました。

こちらもSlack -> Amazon API Gateway -> Lambda という流れになっており、Lambda関数でAWS SDK for JavaScriptを使い古いipアドレスの許可を削除、新しいipアドレスを許可するような仕組みです。
複数のトークンやキーで認証することで、基本的には外部からは変更ができないような工夫もしています。
![スクリーンショット 2020-11-22 2.51.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647095/55c73109-c474-54a2-3354-9eaeeb697202.png)

### 感じたこと
2019年から経験を積んだことにより、論理的思考やプロブラムを書くこと自体のスキルが上がりました。そのおかげでWEB開発だけでなく様々なことを任せていただけるようになりました。
例えばAWS関連の部分に触れたり、サーバーを1から立ち上げる、ドメインやサーバーの移管などの経験もさせていただき非常に勉強になっています。
自分のできる範囲だけのことをやるのではなく、自分のスキルの少し上を要求される機会が多く自ら様々なことを学ぶことができました。また、必ず影響のある人がいるという緊張感も「役に立つことができる」とポジティブに考えるようになりました。
今回軽く説明した2つのものに関しては、可能であれば後々詳細をQiitaにあげようかと思います。

## エン・ジャパン株式会社
2020/02にjoinした企業です。東証一部上場企業で、バカリズムさんのCMなども放送されているため知っている方も多いかもしれません。
エン転職など、多くの転職サイトを運営している業界大手の人材会社です。

### やってきたこと
主な業務はKofax社のRPAを用いた事務作業の自動化です。
日々たくさんの人と時間を使っている作業を分割して自動化することで、業務の時間短縮や人件費の削減に貢献しました。

Windowsを使った開発や、初めて触れるRPA、大きい企業ならではの雰囲気など慣れない部分が多く最初は戸惑ったものの、最終的には業務の自動化によって処理時間を1/50~1/100にすることに成功するなど多くの人の役に立つことができました。

### 感じたこと
やはり良くも悪くも大きい企業での仕事観や、環境、人を広く見ることができ非常に面白かったです。
COVID-19の影響で在宅勤務になるまでコミュニケーションがメールのみであったり（在宅勤務中はTeamsを利用）するなど、「固い」という印象をよく受けました。
しかし、仕様書や引き継ぎ資料などの作成フローまでもきっちりと決まっており、先人たちのナレッジなども共有されていたので仕事自体はスムーズに行うことができました。エンジニアとして大きい企業で働く上でのメリット／デメリットをよく知ることができました。

また、RPAを仕事としてみての感想ですが、個人的に「もっとコードが書きたい！！」となってしまったので今後仕事として携わる機会は少なそうです。
しかし、スクレイピングやSQLの分野では今後に活かせる学びが多くあり、いい経験ができたと感じています。

## 株式会社MIC
2020/09にjoinしました。
街中で見かける「ニコニコレンタカー」などを運営する会社です。
レンタカー以外にも板金や、車検などに関係するWEBサイトの運営も行なっています。

### やってきたこと
インターン生主体でWordPressを用いた新規WEBサイトの立ち上げを行なっています。（他のインターン生は全員大学生の方です。）
これまで知人のサイトの軽いデザイン修正などでしかWordPressを触ってこなかったため、本格的に勉強をしました。PHP自体はこれまでも経験があるので、大学生の方のコードのレビューなども行なっています。

また、情報収集を依頼されて初めてGoogle Apps Scriptを使用したスクレイピングなどを行いました。
GASが使えるようになったことによって、社内の困りごとなどがGASで解決できそうであればタスクの合間に実装してみたりもしています。

他にも既存のサイトのシステム、デザイン改修などを粒度の細かいタスクですが任されています。

### 感じたこと
基本的にインターン生1人で仕事をすることが多かったため、複数人のインターン生で仕事をすることが新鮮でした。
インターン生の中ではそれぞれの役割を決めて割り振ったり、コードレビューをするなどといった経験ができたためマネジメント系にも少し興味が湧きました。

## その他の企業
ここ最近入ることになった企業や、業務委託でWEBシステムの開発を請け負っている企業があります。
どちらもスタートアップで、企業の目的やビジネスモデルについて非常に興味があるためこれから本格的にインターンとして関わっていくことが楽しみです。
それぞれこれまでと全く違う分野（海外のスタートアップに関わることであったり、STEAM教育に関わることであったり...）なので、プログラミング以外の観点からの学びも得ることができると良いなと考えています。

## まとめ
去年の私は「CUIのMySQLとか触ったことないよ...」などとかわいいことを言っていました。
その頃からの進歩は、1人で本やサイトをみて写経をしているだけでは到底追いつけないようなものであると思っています。
**OutputをInputを同時に行うインターンは、最強の勉強方法**の1つであると私は思っています。
そのために私は様々な企業でインターンに参加しています。それぞれの企業にそれぞれの良さがあり、成長できる度合いや経験を積むことができる範囲は違うからです。
インターンに参加した当初はOJT(On-the-Job Training)形式で仕事を進めていき、次第に**Inputを自ら行うことができる**ようになります。私はこの状態が非常に大切だと考えていています。OJTから卒業し、**「調べる力」**と**「理解する力」**がある状態で行う主体的な学習ほど成長に繋がることは他にないと思います。

ただ、それらがそこまで難しくないことでも主体性がなければ続きませんし、そもそもはじまりもしないかもしれないです。
結局、私はプログラミングと人の役に立つことが好きだということですね:rolling_eyes:
好きこそ物の上手なれとはよく言ったものです。

ダラダラと読みにくいものになってしまいましたが、ここまで読んでいただきありがとうございました。
今後もN高の愉快な仲間たちが記事を更新するのでお楽しみに！
それでは良い年末を🎅