はじめに
こんにちは。この記事では、全くの未経験から長期インターンで1年間働き、エンジニアとして成長した経験を共有します。
この記事で得られること
- 未経験からエンジニアになるまでの実際のロードマップ
- Vue.js、Laravel など実務で学んだ技術スタック
- 挫折したときの乗り越え方
- 長期インターンで得られる技術以外の価値
想定読者
- これからエンジニアを目指す未経験者
- 長期インターンを検討している学生
- 独学で悩んでいる方
前提知識
- 特になし(完全未経験からのスタートです)
エンジニアを目指したきっかけ
間隔反復学習アプリ「Anki」との出会い
私がエンジニアを目指したきっかけは、Anki という学習アプリでした。
Ankiは間隔反復学習(Spaced Repetition)を実装した学習アプリで、以下のような成果を出せました:
- TOEIC 550点 → 735点(185点アップ)
- 大学院試の勉強にも活用
- 英単語、文法、リスニングと幅広く対応
Ankiの課題:カード作成の手間
Ankiを使い倒す中で、大きな課題に気づきました。
カード作成がとにかく面倒
最初は1000個の英単語を手作業で登録しました。効果はあったものの、作業時間が膨大でした。
(後に .csv 形式でインポートできることを知り、AIに内容を生成してもらって一括登録する方法を発見しましたが...)
自分でアプリを作りたい
この課題は他のユーザーも抱えているのではないかと考え、解決策を思いつきました。
「ショップから単語帳を購入して、すぐに間隔反復学習を始められるアプリ」
- カード作成不要
- Ankiを超える使いやすさ
- 誰でも簡単に始められる
しかし、当時の私にはアプリを作る能力がゼロでした。
そこで、大学の企業支援プロジェクトでお世話になっていた方からの紹介で、ソーイ株式会社で働くことになりました。
業務を通じて学んだ技術スタック
フェーズ1:テスト業務(1ヶ月目)
最初はテスト業務からスタートしました。
学んだこと
- 機能を正しく理解する力
- テスト項目を誰が見てもわかりやすく表現する技術
- テストの重要性(誰でもできると思っていたが大間違いでした)
この時期は、業務時間4時間のうち1時間が勉強時間として与えられ、以下のサービスで基礎を学習しました:
- Progate
- ドットインストール
フェーズ2:HTML/CSS(2ヶ月目)
HPの修正を通じて、HTML/CSSを学びました。
苦労したこと
- エディタに慣れるのが大変
- どこを見ればいいのかわからない
- どこを修正すればいいのかわからない
ただ、この段階ではまだ心が折れるほどではありませんでした。
フェーズ3:Vue.js(3ヶ月目〜)【最大の挫折ポイント】
インターン開始から3ヶ月後、Vue.jsの業務に携わり始めました。
Vue.jsとは
JavaScriptのフレームワークの一つで、WebサイトやWebアプリのフロントエンド(見た目・デザイン)を整えるために使います。
何が難しかったか
HTMLとの違いに苦しむ
- 関数とクラスの概念が頭に入ってこない
- 画面内での処理について考えるのが難しい
- コードが意味不明
- インターンに行くのがとにかく辛かった
挫折の乗り越え方
-
とにかくインターンに行き続ける
- 精神的にしんどくても出勤することを最優先
-
ドットインストールのVueコースを繰り返す
- 何度も何度も同じコースを受講
- 少しずつ理解が深まる感覚を大切にした
-
動くコードを作ることに集中
- 完璧を求めず、まず動かすことを目標に
フェーズ4:Laravel(6ヶ月目〜)
フロントエンドの基礎ができた後、バックエンドのLaravelを学びました。
Laravelとは
PHPのフレームワークで、Webアプリの裏側(見えない部分)を操作します。
Vue.jsとは違う難しさ
1. 動作確認の方法が違う
- 画面を見て確認するのではなく、ログをチェックして修正
- この習慣づけに時間がかかった
2. ORM(Object-Relational Mapping)の理解
- SQLを使わなくてもデータベース操作ができる仕組み
- SQLの基礎知識も必要
- フロントエンドよりネットワークの知識が求められる
3. AIだけでは解決できない問題が増える
- フロントエンドより、より深い理解が必要
- エラーの原因特定が難しい
その他の重要スキル
アプリ開発に必要な基礎知識も並行して学びました:
- Docker:コンテナ技術の基礎
- Git/GitHub:バージョン管理とチーム開発
- ネットワークの基礎
- データベース設計
1年間で感じた課題と良かった点
課題:コードレビュー文化が少ない
社員数が少なく、それぞれの業務で忙しかったため、複数人によるコードレビューの文化はありませんでした。
- とにかく動くものを示す
- なぜ動いたか、どこが問題だったのかを説明できればOK
- (もちろん「AIが書いたからわかりません」は論外)
書いたコードに対する詳細なフィードバックは少なかったため、コードの品質向上という面では物足りなさを感じることもありました。
良かった点1:0→1の成長ができた
全くの未経験から一人でアプリを作れるレベルまで成長できました。
すでに実務経験が1年以上ある方や、十分な技術力がある方には物足りないかもしれませんが、0から1を学ぶには最適な環境でした。
良かった点2:エンジニアとの出会い
社内交流会
業務中はみんな集中してそれぞれの業務に取り組んでいますが、社内交流会が定期的に開催されます。
聞けたこと:
- エンジニアとしての生き方
- どのように働いてきたか
- エンジニアのどんなところが良いのか
- プロのエンジニア人生
プログラミングの勉強をするだけでは絶対にできない経験で、エンジニアと知り合いになることの重要性を実感しました。
学生同士の繋がり
社員の方だけでなく、学生同士の関わりも非常に活発でした。
一緒にやったこと:
- ハッカソン参加
- 最新AIツールの情報交換
- 競技プログラミングの話
- これからのキャリアの相談
実際、この記事もソーイ株式会社で知り合った仲間と書いています。本当に出会えて良かったと思っています。
学習のコツとアドバイス
1. 挫折は必ず来る
私の場合はVue.jsで最大の挫折を経験しました。
重要なのは:
- 挫折を避けようとしないこと
- とにかく続けること
- 少しずつ前進していることを実感すること
2. 同じ教材を繰り返す
新しい教材を探すより、同じ教材を繰り返す方が効果的でした。
ドットインストールのVueコースを何度も受講したことが、理解の転換点になりました。
3. 完璧を求めすぎない
「理解してから書く」より「書きながら理解する」方が成長が早かったです。
- まず動くものを作る
- なぜ動いたのかを後から理解する
- 少しずつリファクタリングする
4. 人との繋がりを大切に
技術の習得だけでなく、エンジニアコミュニティに入ることが非常に重要です。
- 困ったときに相談できる
- 最新情報をキャッチアップできる
- モチベーションを保てる
まとめ
1年間の長期インターンを通じて学んだこと:
技術面
- テスト、HTML/CSS、Vue.js、Laravel、Docker、Git/GitHub
- 未経験から一人でアプリを作れるレベルに成長
精神面
- 挫折を乗り越える力
- 継続することの重要性
- 完璧を求めすぎない姿勢
人間関係
- エンジニアとの繋がりの価値
- 学生同士のコミュニティの重要性
現在は IPPO というプロジェクトでアプリ開発に集中するため退職しましたが、この1年間は私のエンジニア人生で非常に大きな財産になっています。
未経験からエンジニアを目指している方の参考になれば幸いです。
参考資料
#未経験エンジニア #長期インターン #Vue.js #Laravel #プログラミング学習