Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニア基礎 ウィルゲート2024年度エンジニア新卒研修/ engineer basics ...

willgate-pr
April 22, 2024
96

エンジニア基礎 ウィルゲート2024年度エンジニア新卒研修/ engineer basics 2024

▼この研修についてのテックブログ記事
https://tech.willgate.co.jp/entry/2024/04/01/184252

▼補足
株式会社ウィルゲート 2024年度エンジニア新卒研修「エンジニア基礎」の資料です。
実際に研修で使用したものを加筆修正して外部公開しています。

willgate-pr

April 22, 2024
Tweet

Transcript

  1. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 3
  2. © Willgate,Inc. 研修の目的・目標 学習する必要があるスキルのピラミッド 6 テクニカルスキル ポータブル スキル スタンス‧ マインド

    ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率
  3. © Willgate,Inc. 研修の目的・目標 学習する必要があるスキルのピラミッド 7 テクニカルスキル ポータブル スキル スタンス‧ マインド

    ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率 トレンドにより 陳腐化しやすい
  4. © Willgate,Inc. 研修の目的・目標 学習する必要があるスキルのピラミッド 8 テクニカルスキル ポータブル スキル スタンス‧ マインド

    ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率 今回の研修で扱う
  5. © Willgate,Inc. 研修の目的・目標 学習する必要があるスキルのピラミッド 9 テクニカルスキル ポータブル スキル スタンス‧ マインド

    ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率 下に行けば行くほど、習得が難しく、時間もかかる
  6. © Willgate,Inc. 研修の目的・目標 学習する必要があるスキルのピラミッド 10 テクニカルスキル ポータブル スキル スタンス‧ マインド

    ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率 1年目から何を意識して、どう仕事をしていくかが重要!
  7. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 12
  8. © Willgate,Inc. プロ意識 プロダクトの歴史を知らないとどうなるか? → プロダクトの機能やソースコードが間違った方向へ行ってしまう → プロダクトの品質・価値を落としてしまう 例)[歴史] 散らばっていた消費税のロジックを1箇所にまとめた

    → 新しく消費税を使う画面が増えた(そして、消費税のロジックを実装) → 歴史を知らないと、新しいファイルに実装してまた散らばってしまう → 障害に繋がる可能性が上がる 40
  9. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 56
  10. © Willgate,Inc. コミュニケーション全般 相手のコンテキストを想像しよう → 相手の立場でわかりやすい言葉、やりやすいコミュニケーションをする 例)事業サイドの人からの「画面でエラーが出て先に進めない」という 問い合わせへの返信 調査してみたら、この画面では/loginにPOSTリクエストを投げている けどレスポンスが返ってきていないみたい

    だけど、そのまま「/loginにPOSTリクエストしたときのレスポンスが 返ってきていないからエラーになっているようです。」と伝えても、 お問い合わせをくれた事業サイドの人は普段からAPIのメソッドとか気 にしていないから伝わりにくいので、言い換えている 62
  11. © Willgate,Inc. テキストコミュニケーション 適切なマークアップをしよう → テキストコミュニケーションでは必須 例) • 箇条書き・順序付きリストを使う •

    マークアップを使う ◦ 太字・斜体・取り消し線・>引用・```コードブロック```・`コードハイライト` • 記号を使う • 絵文字を使う 伝えたいことを伝えられる文章を書けるようになりましょう 74
  12. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 89
  13. © Willgate,Inc. 仕事のキャッチアップ力(Slack編) 自分の周りで必要なチャンネルとは? 例)私の1年目の場合(エディトル開発チーム所属) • 必須 ◦ エディトル開発関連のチャンネルすべて ◦

    開発グループ関連のチャンネルで、全員向けのものすべて • 余裕が出てきたら ◦ エディトルの事業サイド側のチャンネルすべて ◦ 開発グループの他のチームのチャンネル 106
  14. © Willgate,Inc. 仕事のキャッチアップ力(Slack編) 自分の周りで必要なチャンネルとは? 例)私の1年目の場合(エディトル開発チーム所属) • 必須 ◦ エディトル開発関連のチャンネルすべて ◦

    開発グループ関連のチャンネルで、全員向けのものすべて • 余裕が出てきたら ◦ エディトルの事業サイド側のチャンネルすべて ◦ 開発グループの他のチームのチャンネル 一見自分に関係なさそうなことも目を通して、頭に入れておくと仕事を理解すること に繋がる 107
  15. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 137
  16. © Willgate,Inc. timesになんでも書こう 調べたことを残す 新卒のときはインプットが多いからメモしないと忘れる 全部書いておけば検索できる! 例) • あのときどうやってエラー直したんだっけ…… •

    あのとき調べたあの記事なんだっけ…… あとから自分が検索しそうなワードで書いておく 何で検索したら引っかかるか考えながらtimesにメモすると良い 167
  17. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 171
  18. © Willgate,Inc. コードの認知負荷を常に意識する 例)認知負荷の高いコード・低いコード 182 // ロールがcreatorでなく、adminでもなく、isOldTypoAccountでもない場合エラー if ($role !==

    'creator' && $role !== 'admin' && !$isOldTypoAccount) { throw new Error('管理者ユーザのみアクセス可能です'); } 認知負荷の高いコード
  19. © Willgate,Inc. 周辺の機能やロジックも把握して改修する ボーイスカウトの原則 例) • 変数の名前を変える • メソッド分割する •

    クラスの責務を整理する • 重複を排除 • if - elseを見やすくする ※メイン機能の開発じゃない変更のコミットは分けましょう 202
  20. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 203
  21. © Willgate,Inc. ふりかえり力 学びの壁5段階を知る 211 習 慣 の 壁 技

    術 の 壁 気 づ き の 壁 ⾏ 動 の 壁 知 識 の 壁 知らない 知る やってみる わかる できる している 学びの壁5段階 やってみないと わからない 三日坊主じゃ 身にならない
  22. © Willgate,Inc. ふりかえり力 学びの壁5段階を知る → 自分は今どこの壁にぶつかっているのか?を認識する 212 習 慣 の

    壁 技 術 の 壁 気 づ き の 壁 ⾏ 動 の 壁 知 識 の 壁 知らない 知る やってみる わかる できる している 学びの壁5段階
  23. © Willgate,Inc. ふりかえり力 「知らなかった」「できなかった」「気付いた」「できた」は上達の兆し 213 習 慣 の 壁 技

    術 の 壁 気 づ き の 壁 ⾏ 動 の 壁 知 識 の 壁 知らない 知る やってみる わかる できる している 学びの壁5段階
  24. © Willgate,Inc. エンジニア基礎 目次 1. ガイダンス 2. エンジニアとしての基本心構え 3. コミュニケーションの心構え

    4. キャッチアップスキル 5. 作業をするとき全般 6. コード書くとき全般 7. 継続的な成長 215
  25. © Willgate,Inc. [再掲] 研修の目的・目標 下に行けば行くほど、習得が難しく、時間もかかる 1年目から何を意識して、どう仕事をしていくかが重要! 217 テクニカルスキル ポータブル スキル

    スタンス‧ マインド ポテンシャル 抽象的∕習得難 具体的∕習得易 個別の⾔語理解‧習得、個別技術の 習得 プロジェクトマネジメント、対⼈能 ⼒、プログラミング的思考⼒ 達成志向⼒、柔軟性、感情コント ロール⼒、共感性、情報収集 技術的好奇⼼、クリエイティビティ 情報発信⼒、学習効率