ぼくは2023年6月に未経験からRubyKaigiでスポンサーを務める自社開発企業に入社しました。
まだまだレベルが低いなとは感じるものの、確かな成長の手応えを得ているのも事実です。
そこでこの記事では、自分の成長のためになったと感じる1年目の取り組みを3つ紹介していきます。
同じような境遇の方の役に立てば幸いです。
エンジニア1年目にやって良かったこと3選
結論として、以下の3つです。
- 先輩エンジニアのアドバイスを脳死で実行してみる
- ブログやQiitaでのアウトプット
- 生成AIを使い倒す
順番に説明を加えます。
1. 先輩エンジニアのアドバイスを脳死で実行してみる
「まずは言われたことを脳死でやってみる」
これが何よりも一番大切だったなと感じています。
他人からアドバイスをもらうとついつい「これ自分には合わないんじゃないかな」とか「こういうふうにやってみたらもっと良いんじゃないかな」など、実践する前に色々と考えを巡らせてしまいがちです。
しかし自分は、良い意味で何も考えずに言われたことを愚直にやってみることにしました。
経験の浅い自分には、先輩のアドバイスが正しいかどうか判断する術がないと思ったからです。
このあとに書く「ブログやQiitaでのアウトプット」や「生成AIを使い倒す」もすべて先輩エンジニアからの助言の一環です。
その他にも、「OSSのコードリーディングをすると良いよ」と言われてからはずっと、Railsのコードを読む時間を固定で確保しています。
「この本よかった」と言っていた技術書があれば、内容やAmazonレビューなどもろくに精査せずとりあえず注文するようにしていました。
誤解のないように言っておくと、すべてのアドバイスが必ずしも自分に適していたわけではありません。
「あの人は良いって言ってたけど自分はよく理解できなかった」と感じることもたくさんありました。
ですが、それは実際に試したからこそ気づけたことであって、試す前にそれを見極めることはできません。
百発百中は期待せず、とにかくたくさんのアクションを起こすことで、倍速で成長できたなと感じました。
※この取り組みが実現できたのは、気軽に1on1を設定させていただける環境であること・優しくアドバイスや経験談を聞かせてくれる先輩方のおかげなので、本当に感謝しています。
2. ブログやQiitaでのアウトプット
知識を定着させる上でこのブログやQiitaでのアウトプットが役に立ったことは言うまでもありません。
「アウトプットが大事」
これはエンジニアなら誰でも耳にしていると思いますが、その重要性をどれだけ真剣に受け止めることができているかは人それぞれだと感じます。
「アウトプットしていないなら勉強していないのと同じ」
今のぼくは心からこのように感じています。
アウトプットのために文章をまとめる過程で思考が整理されますし、アウトプットのネタを探しながら業務に励んだり技術書を読んだりすることで、より能動的に知識を吸収できるからです。
とはいえ、初期のころは何をアウトプットしていいかもわからず、また「こんなのを公開して良いんだろうか?」といった気持ちもありました。
これを解消するために、以下の2点を心がけています。
- フォーマットを決めておく
- 読者からの反応を期待しない
記事のフォーマットを決めておくことで、文章構成に迷う手間が省けるため有効でした。
また読者からの反応やバズは一切期待せず、「自分用のメモをついでに公開しておくか」くらいの気持ちで取り組んでいます。
このように、作業の手間の面でも心理的な面でもハードルを最大限下げておくことがアウトプットを継続する秘訣だと思います。
3. 生成AIを使い倒す
幸か不幸か、ぼくはエンジニアとしてのキャリアの最初から、ChatGPTをはじめとする生成AIが存在している状態でした。
これをガンガン使い倒すことで、実装のスピードや質は爆発的に高まっているはずです。
具体的には以下のサービスに課金しています。
- ChatGPT
- Claude
- Gemini
- Perplexity
- Cursor
- GitHub Copilot(会社から支給)
こうしたサービスを使い倒すことには抵抗もありました。
「自分の頭で考えずAIに答えを提示してもらってばかりで実力が養われるんだろうか?」
こういった不安があったからです。
このモヤモヤに対する結論として、ぼくは「AIが提示した答えをちゃんと理解できていればOK」だと捉えています。
AIが書いたコードをろくに確認もせずコピペするのはもちろんダメです。
しかし、AIが書いたコードを見て「なるほど、こう書けばいいのか」と思えたのであれば、それは自分自身への気づきとして消化されるからです。
逆にAIが書いたコードに対して「なんでこう書いたんだろう?」と疑問が湧いた場合は、それもChatGPTに深堀りして聞くようにしました。
このように「生成AIに相談 → 回答が提示 → 疑問や違和感がある点をさらに深掘り → それに対する回答が提示 → … 」と双方向的に活用すれば、非常に有効なツールだと判断しています。
さらに、一文単位のプログラムの書き方だけでなく、実装方針なども生成AIはそれなりに回答してくれます。
社内のドキュメントをそのままプロンプトとして渡すのはセキュリティ上NGですが、実現したいことや困っていることを抽象化して文章にまとめ、それをプロンプトとしてAIに提示する分には何の問題もありません。
「いくつか案があって迷っている」ということであれば、それらもプロンプトに含めることで適切なアドバイスがもらえたりします。
必ずしも的を射た回答ばかりではないですが、気づきや新たな視点を得られることは多いです。
さらに、プロンプトとして渡すために、悩んでいることを抽象化して文章に落とし込む作業を繰り返すことで、言語化能力が鍛えられたような気もします。
このように、生成AIをガンガン使い倒すことで、エンジニアとしての問題解決能力は劇的に向上させられていると感じます。
ただし注意点として、生成AIを活用すると、たしかに一文単位のコーディング力はあまり身につかないです。
この状況はよくない気もするため、業務とは別にプライベートでLeetCodeというサイトでコーディングの問題を解いています。
ここでは生成AIは一切使わず、完全に自力で書くんです。
業務は生成AIを活用して生産性を飛躍的に向上させる一方で、個人学習では完全に自力で手を動かす時間も確保するというバランスが、今の自分には合っていると感じています。
おわりに
最後にもう一度おさらいです。
- 先輩エンジニアのアドバイスを脳死で実行してみる
- ブログやQiitaでのアウトプット
- 生成AIを使い倒す
どれも自信を持って勧められる内容ですし、自分自身これからも継続していきたいと思える取り組みです。
まだ着手できていないものがあれば、ぜひトライしてみてください。
コメント