はじめに
社員の皆さんはこんな奴が最近エンジニアになって頑張ってるんだなと暖かい目で読んでいただければと思います。
社外の方やエンジニアを目指している方は少しでも学習の参考や、コネクター・ジャパンに興味を持っていただければと思います。
私について
未経験から独学でプログラミング学習し5ヶ月でLaravelでポートフォリオを作成しました。そして現在は自社開発企業に入社し、WEBエンジニアとしてプロダクト開発に携わっています。
この記事を書いた理由
自分の備忘録としての振り返りと重要な部分を再認識するために書きました。
記事の流れ
- エンジニア仕事の8割は思考の時間
- 言語化の難しさ
- 働き方
- 公式ドキュメントをみよう
- 振り返りをする
- まとめ
1.エンジニア仕事の8割は思考の時間
初心者のエンジニアとして、バリバリコードを書くことが中心の仕事だと考えていました。カタカタ高速でキーボード叩くのかっこいいですよね!
しかしエンジニアになってみると、実際にキーボードを叩く時間よりも、
要件定義、設計、デバッグ、最適化する為にググったりする時間の方が
圧倒的に長いことに気づきました。
私が就職活動の時に作っていたポートフォリオは一人で開発しているものでしたが、実際に開発するとなるとチームで開発するものなので、どのようにチームと協力するかとか、他人が見ても分かりやすいコードを書くとか、様々な思考も含まれます。人に説明するのが一番コード理解につながると思います。
2.言語化の難しさ
ありがたいことに分からないことは先輩エンジニアにすぐ聞ける環境なのですが、
リモートだった時や口頭で説明受けたときに、slackで質問のテンプレートを使用して文章でやり取りをすることがあります。その時に今自分が分からないことや状況の説明をするときに言語化が難しいと感じました。
他にもユーザーの要望を汲み取ったり、要件の内容を文章で汲み取って実装するのも同様です。
簡潔かつ具体的に説明する能力が求められますね。
社内開発部で活用している質問のテンプレートも共有しておきます。
開発質問テンプレート
■ 質問のタイトル
■ 期待する結果は何か
(何をするための質問なのかを目的を明確に書きましょう。)
■ 現在はどういう状態か
(ソースコードを張り付けましょう)
■自分で調査したこと、考えたこと
(自分で調査した結果、試行錯誤したことを書きましょう。)
先輩の過去の経験談によると、結局何がやりたいのか何が聞きたいのか分からなくなってしまうエンジニアが多いみたいなので、このテンプレートを活用することですっきりと質問をまとめられることができてます。
3. 働き方
前職と比べて社風の違いや仕組みに驚きました。
新しい技術やツールの導入(GitHubCopilotやChat、Notionなど)は社員が言えばすぐ検討して導入出来るし、フレキシブルな時間で働くことが出来るので、早い時間に開催しているLT会に参加したりもできます。
前職の営業職では出来なかったリモートワークなども出来るのでかなりエンジニアの働き方は自由度が高いなぁと感じています。
4.公式ドキュメントをみよう
ある日分からないことをGitHubCopilotChatやChatGPT、テックブログなどで調べていると、先輩から「公式ドキュメントを読もう」とアドバイスをくれました。
公式ドキュメントはその技術の正しい情報です。とは言っても公式ドキュメントを読むのは難しいですよね。
理由は英語のドキュメントであることが多く、日本語で翻訳されていても翻訳が正確ではないです。またある程度ドメイン知識がある前提の専門用語を多用しているので理解がなかなか難しい。
でも公式以外は正確じゃないし...
ということで私はこのように取り組むことにしました。
1.分からないことや読めないコードはまずCopilotChatに聞いて要約してみる。
2.概要がわかったら公式ドキュメントを見る
大体の概要を知ってから公式ドキュメントを見ることでだいぶ理解が早まりました。
今はまだ実力が足りずに公式ドキュメントを読むのが苦手ですが、読みながら問題解決スピードを上げたいですね。
5.振り返りをする
毎日の作業終了時に、その日の学びや成果、課題点を整理し、振り返りを行うことで、次のステップに繋げることができます。
社内の習慣の取り組みで私が入社した時には既にありました!
振り返らないと一日何をしたか、何が分からなかったか鮮明に覚えてないですよね。
それをまた明日に活かすために振り返りは重要だと私は思っています。
特に、失敗から学ぶことはエンジニアとしての成長にとって非常に価値があるし、業務をしている中で分からない単語もたくさん出てきます。分からないことがあるたびに自分でメモをしておいて分からないことを少しずつ減らしていけば成長に繋がります。
分からないことは忘れないうちに素早くメモをしておいて、きちんと振り返ろう!
6. 動きがわからないコードは出力してみる
基礎ですが大事だと思ったので書きました。
私の現在の開発環境では、機能の追加や修正など既に基盤が出来ている状態から手を加えていくことが多いです。
経験が浅いのもあって何がどういう処理なのかこの変数には何が入っているのかなどコードを理解するのに時間がかかります。
JavaScriptだったら
console.log()
Laravelだったら
Log::debug();
コードの動作が意図通りでない時、様々なデバッグ方法が考えられますが、まずはそのコードが何を出力しているのかを確認することから始めるのがおすすめです。ログ出力やデバッグツールを駆使して、コードの動きを手がかりに問題の原因を特定していきます。
ポイント
とにかくデバック入れてみよう!
まとめ
エンジニアとして入社してからこの2ヶ月はあっという間に感じますし、毎日が勉強で刺激を感じます。
実際にエンジニアになってみて、技術的なスキルだけでなく、コミュニケーションや働き方などのソフトスキルも非常に重要であることを実感しました。