はじめに
この記事は、ソフトウェア開発会社ソーイ株式会社でウェブエンジニアとして長期インターンに参加した経験を、これからインターンを検討している方向けにまとめたものです。
私は参加当時、アプリ開発の実務は未経験でした。
参加した会社の雰囲気(ざっくり)
ソーイ株式会社は2018年創業のいわゆるベンチャー企業で、少人数ながら複数の案件を扱っていました。
「少人数=裁量が大きい」側面もあり、在籍期間に比して幅広い業務に触れられたのが印象的です。
インターンに参加した理由
主に次の3つです。
- 実務での開発フロー(レビュー、リリースまで)を体感したかった
- チーム開発でのコミュニケーションの取り方を学びたかった
- 技術スタックとして Vue.js / Laravel / Docker などモダンな構成を採用しており、将来のキャリアに繋がると感じた
扱った技術スタック / ツール
技術スタック
- TypeScript
- Vue.js
- HTML / CSS / SCSS
- Laravel
- Flutter
- Python
使用ツール
- Slack
- VS Code
- GitHub
- Cyberduck
- Postico 2
- Postman
- WordPress
- Docker
- Sequel Ace
※「本当に触れただけ」程度のものもありますが、結果的にいろいろ経験させてもらえました。
最初にしんどかったこと:実装スピードが出ない
会社の主要スタックは Vue.js / Laravel でした。
一方で私は、入る前は React / Next.jsを“なんとなく触ったことがある”程度。そのため入社後しばらく(体感半年くらい)は、
- Vue.js, Laravelの書き方に慣れていない
- コードを深く読もうとしすぎる
…という状態で、とにかく実装が遅くて苦労しました(今も速いわけではないですが…)。
どうやって実装スピードが上がったか
1) 長期休暇で「まとまった稼働」を作れたのが大きい
春休みに 週4くらいでシフトに入れた時期があり、そこで一気にVue.jsの理解が進みました。
小さく断続的に触るより、連続して触る期間があると、Vueの基本的な書き方や典型パターンが身体に入りやすかったです。
これからインターンを始める人への提案
- 長期休暇の少し前に応募して、最初の1〜2か月はできるだけ稼働を増やす
(慣れるまでの時間を短縮しやすいと思います)
2) “深追いしすぎない読み方”を覚えた
最初はコードをかなり深くまで追いがちでしたが、それだとスピードが出ませんでした。
途中から、
- 関数名
- 変数名
- 画面の文脈(この画面で必要な処理は何か)
を頼りに、「この処理はこういう意図だろう」と仮説を立てて読むようにしました。
もちろん外すこともありますが、毎回100%理解してから進むより、早く当たりを付けて検証する方が早く進みました。
3) 質問は「メモに貯めて、まとめて聞く」
新機能の仕様は毎回初見になりますし、アプリ固有の仕様はChromeで検索しても出てきません。
ただ、周りの方も忙しいので、細切れに質問しすぎるのも難しかったです。
そこで私は、質問したいことをメモにまとめるようにしていました。
- 1回でまとめて聞ける
- 聞き忘れが減る
- 自分の理解の穴が見える
結果的に、質問の質も上がった気がします。
人間関係(仕事以外の交流)
業務中は業務以外の会話は多くない一方で、会社の親睦会で話す機会があり、そこから徐々に仲良くなりました。
結果として、
- SPAJAM(ハッカソン)に一緒に出場したり
- 休日に集まって競技プログラミングを勉強したり
という繋がりもできました。特殊な経験をされている方も多く、刺激をもらえました。
インターンを通して得たもの(個人的に大きかった学び)
個人開発ではきっと学ぶことが難しいであろうことを学べました。
- 実務に適したコードの読み方(全てを理解してから進めない、当たりを付ける)
- 開発フロー(タスクの進め方、コミュニケーション、リリースまでの流れ)
- 「注意すべきポイント」の勘所
例:影響範囲の見積もり、確認観点、手戻りの防ぎ方 など
まとめ
実務未経験からのスタートでしたが、長期インターンを通して開発の現場を体感でき、貴重な経験と仲間を得られました。
約一年間、大変お世話になりました。
おまけ:個人的なこれから長期インターンに行く人向けの一言
- 「まとまった稼働」を作れる時期(長期休暇)をうまく使う
- 質問はメモに貯めて、短時間で密度高く聞く
- コードは“全部理解してから”より“仮説→検証”で読む(これは開発スピード早いとこ限定かも)
(どこかの誰かの参考になれば嬉しいです)