見出し画像

インターンで学んだこと【23年4月暫定版】

こんにちは。LiKafです。
今回は私がやっているインターンで学んだことについての記事を書こうと思います。
しかし、皆さんが想像しているエンジニアインターンとはまた少し毛色が違うかもしれないのでそこは注意してください。


インターンを始めたきっかけ

私がインターンを始めた最初の最初のきっかけは、「ただバイトをしたかった」からです。
当時大学2年生の夏だった私は、コロナ禍だったということもあり、大学に友達がほとんどおらず、高校の同級生と遊んでいました。
(今も遊んでくれてありがとうございます)

しかし、だんだんとその友達もアルバイトやサークルに熱を出すようになりました。
一方で私はサークルは実質幽霊部員だし、バイトもちょっとだけオンライン家庭教師のようなものをしていた時期があっただけで、一日中部屋でzoomで講義を受けて、課題を死ぬほどやって、ゲームをするだけの日々でした。

とてつもなく焦りを感じた私は
「バイトをしなければ!」と立ち上がります。

SESの会社

まず、友達に聞いたindeedでバイトを探しました。
一応私自身が情報系の学部であり、Cを講義でやっていたのと、C++でAtCoderをちょっとやっていたので、せっかくならエンジニアインターンをしたい思い、未経験募集をしていたSESの会社に連絡しました。
おそらく検索キーワードは「エンジニア・未経験歓迎・学生歓迎」とかだったと思います。

すると「カジュアル面接をしましょう。」という連絡が来て、「今どのような勉強をしているか・どういうことができるか」
について話しました。

具体的には、
大学のCの課題(150行ぐらい?)を見せて、「こういう課題を大学でやっています」と言ったのと、「AtCoder茶色です」と言った記憶があります。

面接してくださった社長からは「へぇ〜、自分から勉強するのは偉いね。うちに来たら社内用のシステムとか組んでもらいたいな〜、Githubとか使ったことある?」のように先の話もしていただき、手応え的にはあまり悪くなさそうな面接でした。
ちなみに当時Githubはアカウントだけ作って使用したことはなかったです。

そんなこんなで「ここで働けるかぁ」と一安心していたのですが、急に連絡がつかなくなって話は無しになりました。

派遣のバイト

働けると思ってた会社から連絡が途絶えたことで、「あぁ、まぁ未経験でエンジニアインターンとかはできないか、Githubすら使ったことないもんな」と思って普通のバイトをindeedで探しました。
そこで見つけたのが「コロナワクチン接種会場の設営」のバイトでした。

連絡をし、五反田に説明会に行きました。

ワクチンの会場に椅子を並べるだけのバイトだと思っていたのですが、実際に説明会に行ってみると、「設営あります」ってだけで、「荷物を二人で100kg運んでください」みたいな内容がほとんどでした。

実は私は体育がめためた苦手で、筋力もないので現実的に厳しいはずだったのですが、もうバイトできるなら何でもいいやと思っていたので、そのまま流れで、ヘルメットとか手袋とかをもらいました。

説明会の終わりぎわに、
「早速次の日の夜から朝まで神奈川で作業をしましょう」
という話をいただき、まぁいっかーと思ってその気満々になっていたのですが、さすがに一回冷静になろうと思って、一旦保留にして荷物も戻して家に戻りました。

家で現状について考え直してみたところ、学業がメインなはずなのに夜中から朝まで働いてもしんどいだけだし、そもそも体力もないから向いてないということに気づき、結局そのバイトは辞めました。(説明会行っただけなので始めてもないけど)

今のインターン先

そんなこんなで、
「ネットでバイトを探しても、エンジニアインターンもできないし、かと言って力仕事も挫折してしまったしもう無理やんけ」
と思って大学用のTwitter垢で「プログラミングのバイトして〜」と適当に呟きました。
そこにDMをくれた人に「今俺もエンジニアインターンしてて、もし良かったら来る?」と誘われました。以下Aさんと呼びます。

Aさんとは学部も違うので、当然話したこともあったことも本名すら知らない状態で、ただただAtCoderの結果のTweetをいいねし合うだけの関係性でした。

せっかく頂いた招待にも関わらず、前回のエンジニアバイト募集で連絡がつかなくなった経験から自信を喪失していたので、私は「いやぁ、、正直何もできないから辞めとこうかな、、」と最初は断っていました。

DMでの話の流れで、AさんにAtCoderの環境をローカルで構築してもらうことになりました。
自分で調べて何時間やっても意味不明でできなかったことを、目の前ですぐにやってもらって、「インターンをしたらこんな風になれるなら、俺もやってみたいかもしれない」と思い招待を受けることにしました。

インターン先での経験

2021年9月~2022年3月

もちろん招待をもらっただけで、採用が決まったわけではないので、人事の人と面接をすることになりました。

学校もフルリモートで初対面の人と話すのすら久しぶりだったのでめちゃめちゃ緊張していたのですが、
「まぁAさんの紹介なら大丈夫でしょう!」
と、あっさり採用されてしまいました。

基本リモートでOKなのですが、手続きとかオフィスとかあるから一回は見においでと言われました。

なので、講義終わりにAさんと初めて待ち合わせして、そのまま渋谷にあるオフィスに向かいました。そもそもAさんと対面で話したのも初めてだったので緊張してたのですがなんとか耐えました。

地方出身で、状況と同時にコロナが流行ったので渋谷に行くことすらほとんどなくて、オフィスに向かいながら「あぁ、これが東京か」と何とも言えない気持ちになりました。

オフィスに入り、信じられないぐらい緊張していたので、ぎこちなく挨拶をし、社長室に入りました。
社長はめちゃめちゃ気さくで、とんでもなく人見知りな僕でもすぐに緊張が解けました。

ここからが問題でした。

私のインターン先は、エンジニアインターンだけでなく、SNSの運用インターンなどいろんな種類のインターンがありました。逆にエンジニアインターンがAさんと私だけでした。
皆んなめっちゃ輝いていて煌びやかな学生ばかりでした。

社長との話が終わった後に、ちょうどそこにいた他のインターン生と話すことになりました。
そもそも人見知りなのに、自分とは別世界にいるような人たちと緊張でうまく話せませんでした。

皆んな優しくていっぱい話しかけてくれるので、何とか雑談を伸ばしながら、デリバリーしていただいたご飯を食べていました。

(略)

そんなこんなで、インターンが始まりました。
インターンといっても、エンジニアの社員さんと一緒に何かするわけじゃなくて、Aさんと私だけで、社内の人が使う(欲しいと言われた)ツールを作るというインターンでした。
なので、かなりバイトする時間を好きに決めれました。

まず、Aさんが既に作っていたPythonで書かれていたプログラムを読むところから始まりました。内容としては、ざっくりいうと、入力されたエクセルを加工してエクセルで返すコードです。
Pythonも触ったことがないし、Githubも使ったことがなかったし、VSCodeすら、1週間前に何もわからないまま環境構築してもらっただけなので、大変でした。

Githubの使い方の1時間ぐらいの動画を見て、クローンもフォークもわからないまま、何とかリポジトリをVSCodeで開いてコードを読みました。

Pythonの文法を確認しながら、コードを読みました。

しばらくして、プログラムの修正をするタスクをAさんから振られました。
Githubの使い方に四苦八苦しながら、何とかそのタスクをしました。
コードの書き方も、競プロの書き方しか知らなかったので可読性が非常に悪く、たくさんのレビューをAさんからいただきました。

Aさんは多分皆さんが想像する最優良企業を2段階ぐらい超えてくるような企業に複数インターンとして参加しているガチモンです。
(最初の実務経験がここだったみたいです。)

基本的に最初の半年は学業メインでやっていたので、時々バグを取っていただけで、ほとんど業務を出来ていませんでした。(3h/月ぐらいの時もありました。)
その間にもう一人エンジニアインターン生が増えました。

2022年4月~2022年8月

2年生が終わり、3年生になりました。
自分で言うのもなんですが、2年生の時はめちゃめちゃ勉強をしていました。(なのでバイトできなかったんですけど)
学科で1, 2本の指には入るぐらいの成績を取って、3年生になりました。

私の通っている大学はある程度成績がいい方だと、早期卒業というものができます。運良く私も一年間の早期卒業をする権利を貰えたので、このまま学業に全振りして研究も頑張ろうか迷いました。
(一年の浪人を取り返せるし)
しかし、正直2年生の過ごし方に後悔がありました。

1点をもぎ取るために課題に固執しすぎたり、課題をするために他のやりたいことを犠牲にしたりしてしまったことです。

たった1点をもぎ取るために、課題を過剰に丁寧にこなすことは、あまり勉強にはならないなと感じました。

特にコロナ禍で試験がなく、課題のみでの評価だったので、課題だけやれば点が来るので、全ての問題が解けるようになるまで何度も何度も教科書や資料を読み、解き終わっても永遠に誤字や計算ミスを確認していました。

この経験に意味がなかったとは一ミリも思ってないです。これのおかげで基本情報技術者試験も一回参考書を読んだだけで合格できたし、今もその経験のおかげで学業がうまく回っていると思います。
でも、ミスが見つかったとしても、ほとんどの場合理解不足ではなく勘違いが原因なので、有限の貴重な時間の中でそれだけに固執するのは私にとっては得策でないかなと思いました。
全ての問題を解く努力をすることは大事だと思います。でも、その後に締め切りが過ぎるまでずっと課題の内容が気になってミスがないか確認していた時間はちょっともったいなかったなと思っただけです。)

というわけで、学業も頑張りつつ、ちゃんとインターンも頑張ろうという気持ちになりました。

その時点でエンジアインターン生は、リーダーのAさん、私ともう一人(Bさん)の3人体制でした。
とりあえずチーム内で役割を明確化しようと言うことで、私に「オフィスに出社してついでに社員さんと話をし、その中で自動化できる作業を探し出す」という、その時の私にとっては地獄のようなタスクを引き受けてしまいました。

初対面の人と話すのが一番苦手だったし、大人と話した経験も全くなかったので、絶望の中、週に一回出社するようになりました。

普段関わらないような人たちと会う中で、私の価値観考え方大きな変化がありました。
それは、必要以上に他者に怖がらなくても皆んな優しいし、身だしなみは相手から信頼を得る上で最もコスパの良い評価指標だということです。

普通の人からしたら当たり前のことだと思いますが、これまで「友達」と話すことはあっても「社会」と話す機会がなかった私にとってすごくいい学びでした。

他のインターン生と話す内容も、最初は無理してスタバの新作を飲んでその話題でなんとか乗り切っていたりしていました。
ですが、だんだんわざわざ準備しなくても話が続くようになって、今では心から友達だと思えるような人も多くできました。(皆んなありがとう!)

そんなこんなで困っていること聞き取り調査して、自分でそれを解決するためのプログラムを実装しました。VSCodeで動かすことを想定したコードです。

当然そのプログラムを使うのは我々ではないので、使う他部署の人のパソコンにPythonを実行するための環境構築もする必要がありました。

最初にAさんの招待を受け取るきっかけでもあった環境構築を、序盤は詰まりながらも合計で10台近くのmacに対して行えたことは大きな自信になりました。
(つい先月も高校の友達のPC(Windows、Mac)に環境構築をしたところです。)

ちょこちょこスクレイピングのタスクもやっていました。

あと、タイミングを忘れましたが、もう一人インターン生が増えて4人体制になりました。

2022年9月~2022年10月

2週間の海外旅行に行きました。
インターンで稼いだお金を貯めていたので、せっかくなら旅行に行こうと言うことでイタリアとフランスに行きました。
費用を計算していなかったので貯金で足りるとおもっていましたが、最終的に貯金の2倍以上かかることが判明しました。
しかし、もう行く気満々だったのでそのまま行くことにしました。

イタリアのベネチア

本当にいい思い出になりました。

やっと今月親に返済が終わったので、また今年か来年の夏にでも旅行に行きたいなー(๑╹ω╹๑ )

私が旅行に行っている夏休みの間に他の3人が私の作ったVSCodeで動くコードをウェブ化するタスクに取り組んでいました。
私も参加したかったのですが、フロントのデザインだけをFigmaで書いて旅立ちました。

旅行中にSlackに他のインターン生の「TypeScriptがー」、「AWSがー、「Next.jsがー」という通知がたくさんきて、「なんもわからん」となってミュートしたのを昨日のことのように覚えています。
(Bさんはサークルでフロントの実装経験があったのと、Aさんはフルスタックエンジニアです。)

旅行から帰ってウェブ化も落ち着いて私は今まで通りバックエンドの仕様の変更をしていたところ、Aさんから「(意訳)もうそろそろ僕はここを卒業するから、次のエンジニアインターン生のリーダーはお前に託す」と言われました。
正直私は昔から誰かを率いるようなタイプの人ではなく、常に誰かに助けてもらいながら生活していました。

ですが、一年間のインターンを通じて、少しずつ自分から行動する癖や、曖昧な表現ですが、しっかりとできるようになりつつあったのも実感していたので、引き受けることにしました。

先月高校ぶりにあった友達(PCの環境構築をした友達)に、「お前、なんか変わったね、しっかりした感じするよ。何があったんやこの4年で。」と言われました。そりゃなんかはあるやろ、4年もあったら。

2022年11月~2023年3月

私がリーダーになりました。
ここまで人を管理するのが大変なのかと、ビビりました。
皆んな優秀な人たちで、ありがたいことに指示を忠実に聞いていただいた or 難しそうなら早めに現状を共有してくれたので、特に大変だったということもなかったですが、

忙しすぎないか・暇すぎないか・進捗はどうか・締め切りに間に合いそうかなどについて5人分のタスクを全て管理して指揮しながら、自分も請け負ったタスクをして、当然学校のこともしないといけませんでした。
だいぶきつかったです。
(この間に1人インターン生が増えて5人チームになりました。)

1月に差し掛かる時に、大きなタスクが降ってきました。
それは抜本的な仕様変更に伴うリリース済みのWebApplicationの再設計・再実装です。

理想であれば、なんでもできるAさんとフロントが得意なBさんに任せて、バックエンドの仕様変更だけを私がやれれば良かったのですが、問題がありました。

それは、3月でAさんとBさんが辞める予定だったことです。あともう一人の人も学年が一つ上だったので卒論と院進で業務の時間を取れない状態でした。
つまり、4月からは私と直近で入ってきたインターン生の2人体制になるということです。であるので、フロントもインフラも触れてないと今後の保守・改善ができないことも考えて、私だけの力でWebApplicationを作り直す必要がありました。
(他の方にも技術の選定や相談をたくさんさせてもらいました。(実装のお手伝いもしていただきました。(それはもう私だけの力とは言わないのでは?)))

これまでPythonを書いたことしかなかったので、WebApplicationの仕組みも知らず、APIを叩くという意味も、どういう形式でデータを送り合うかもTypeScriptの文法も何もかも分かってない状態からのスタートでした。

フロントに関しては大枠は流用できたので、TypeScriptを勉強してコードを書きなおしたり、機能を変更・追加しました。見た目に関しては変更をしてないのでその辺については分かりません。
(表示する文字を変えたりはしたけど)

インフラに関しても大体は流用ができました。今まで何もわからないままdocker-compose upyarn devをしていたり、Docker?これは結局なんなの?となっていた私にとって、一つ一つ意味を調べながらインフラを構築することは非常にためになりました。

バックエンドに関しては、度重なる仕様変更でごちゃついてるところも多かったので、ほぼ全て書き直すことになりました。FastAPIを使ったので実装では特に苦しむことはありませんでした。

しかしAWSにデプロイするときに詰まりまくりました。
最初はECSでデプロイする予定だったのですが、あまりにうまくいかなかったのと、APIの叩き方を工夫することでLambdaでも求める性能を達成できたので、AWS Lambdaに変更しました。

四苦八苦しながらも結果的にはなんとか3月中にリリースすることができました。

2023年4月~??

4年生になり、第一志望のNLPの研究室に配属されたのでこれからは研究メインでやっていく予定です。
なので今まで程は時間を割けないと思いますが、無理ない範囲で頑張ろうと思います。(旅行も行きたいしね!

今後予定されているタスクで大きいものは、新たなWebApplicationを作ることです。

今は2人体制なので、もう一人にバックエンドを任せてそれ以外を私が実装することになっています。
まだフロントの見た目の部分は未経験で未知の領域なので、ちょっと不安ですがまぁ調べながらやればなんとかなるかなと思っています。

また追記します。
→ (以下6月4日追記)

上記のWebApplicationのタスクの他に、今現在、フロントもバックエンドももちろんデザインも全て完全に一人で作成しないといけない社外向けWebApplicationの実装を行なっています。

ReactやCSS、HTMLなど曖昧だった部分を再度学習しつつ、今までの経験の集大成として、結果を出せるよう頑張ります。

あと、高校同期から起業した人がエンジニア募集してるとのことで、そこでもバイトをすることになりました。技術スタックがほぼ一緒だったのと、普通に内容が興味深くて働くことに決めました。

今まで触れてこなかった、データベースをいじるタスクもありそうで楽しみです。

どんどん追記しても仕方ないので、次何かあったら別のNoteを書こうと思います。またねー

学んだ技術

以下にインターンを通じて学んだ or 触れた技術に関する用語について列挙します。
並びとか、載せている基準はマジで適当なので、ふーんぐらいでお願いします。
(それ技術じゃないだろ、、、それはこれに包含してるだろ。。。とか思わないでください😢)

Github、Linuxコマンド、Python、TypeScript、homebrew、フォーマッター、リファクタリング、Docker、AWS(Lambda, CloudFormation, Gateway, SAM)、HTML、スクレイピング、WebApplicationの基本知識、HTTPリクエスト、CORS、JSON、yaml、オブジェクト指向プログラミング、Github Actions、Next.js、Vercel、poetry、pytest、REST API、FastAPI、Figma

それぞれの理解の強度は説明長くなりそうなので省略します。
上のインターン先での経験からなんとなく察してもらえると助かります。

学んだ技術以外のこと

週一でオフィスに向かうようになった2022年4月から2023年3月までの一年間は確実にこれまでの人生で最も成長できた一年だったと思います。

いつもの生活だと話さないような大人や、他大学の人と交流することで、考え方に柔軟性が増したと思います。
また、仕事を通じて認められることの喜びも知れたし、それに伴って相手の期待を裏切らないで済むように自己管理も大分できるようになりました。
基本外に出なかったので気にしたこともなかった服装とかもちょっとは気をつけれるようになったし、コンタクトにもしました。(これは関係ない)

まとめ

技術面だけでなく、人間的にも成長できて、さらには友達もできて、めっっちゃいい経験をさせてもらっていると思います。

これからも少しでも成長できるように自分なりに頑張っていこうと思います。
以上です。8500字も読んでいただいてありがとうございました!

またいつか追記します!







この記事が気に入ったらサポートをしてみませんか?