メルカリに新卒入社して1年間学んだことについて話します。
1新卒エンジニアが1年間で得たベストプラクティス
View Slide
2名前: 田村弘(rossy)● 経歴: 信州大学 → メルカリ(20卒)● ポジション: バックエンド● 趣味: 筋トレ、読書、最近は友達のyoutubeに出没したりしてます@rossy_0213 @rossy0213link
3学生の頃の経歴Internship atMerpay2019/10Internship at CAM2019/07Internship atFreee2018/12Internship atMorpho2018/08Internship atCyber Agent2018/12Security camp20192019/08注) 印象的なものだけ記載してる
4メルカリ入社後の職歴2020/04 - 06 2021/01-032020/07 - 09 2020/10 - 12Docomo関係の決済コア開発Software Design 9月号執筆短期チーム異動シミュレーション機能のコアロジック開発新機能の決済コア開発Software design 1月号執筆新機能の決済コア開発既存機能の再設計 * 2あるマイクロサービスオーナーになる注) 大きな仕事だけ記載してる
5セルフマネジメント編時間管理
6時間管理の考え方● 時間は有限である● 時間管理を失敗すると問題になりやすい(論文の〆切など)○ 自分の限界を知る必要がある○ やることの見積もりが必要になる● 効率の良い方法を追求する○ 例えば、集中/非集中では効率が大幅に異なる
7時間管理の話● ポモドーロ・テクニックを使おう○ 25分の集中と5分の休憩を繰り返す● 全てのやることにpointを見積もって管理する○ 25 + 5分を1 pointとして計算○ 1日10point分のタスクが達成できていれば万々歳
8時間管理の話030102必要なタスクを考えて見積もりを入れる一定期間のやることリストに入れる完了してから見積もり精度を見直す010203
9セルフマネジメント編目標管理
10目標管理の考え方● 目標を立てることでやるべきことがはっきりする● 計画を立てるには目標が必要になる● 結果から成長をわかりやすく評価できる
11目標管理のやり方● OKRという手法を使おう○ 目標設定のためのフレームワーク○ OKRとは Objectives(目標)Key Result1(結果) Key Result2(結果) Key Result3(結果)TODO1 TODO1 TODO1TODO2 TODO2 TODO2簡単のOKRイメージ図
12目標管理の話● 個人OKRを作る僕の個人OKR
13目標管理の話● 期末になって評価する
14目標管理の話● 新しいOKRを設定する
15セルフマネジメント編パフォーマンス管理
16パフォーマンス管理の考え方(我流)● 平均的に高いパフォーマンスをキープしたい○ 自分のメンタルに良い効果がある○ 周りにも良い影響を与えられる● 常に最高を追求しない○ 一時的な高いパフォーマンスを追求しない● 上げることよりも維持することが大事
17パフォーマンス管理の考え方(我流)● プロスポーツ選手は難しいことを何回でも繰り返せるらしい○ なぜ: 難しいことを再現する動きを知っているから● 同じことをエンジニアリングにも適用できる(かも)○ 例えば、綺麗なコードを書けた時■ その時の行動を分析して、再現できるようにしよう■ 再現できなかった場合は、行動の再分析をしよう
18パフォーマンスの話(自分のやり方)● ルーティンを作る○ 仕事をする前に英語の勉強をする● 行動のテンプレートを作る○ 本を読む時の手順書○ コードレビューをする時の手順書○ 設計をする時の手順書○ etc
19セルフマネジメント編メンタル管理
20メンタル管理の考え方● 人間は案外脆くて弱い○ 誰もが弱ってしまう可能性がある● 自分を守ることを常に心がけよう● 辛くなったら逃げよう● 他人に頼ること○ 人間は社会的動物である(アリストテレス)
21メンタル管理のやり方(自分の場合)● 信頼できる人と交流を持つこと○ 社会人になると接点減りやすいので、意図的に接点維持する様にしてる● メンタルを回復できる方法を探すこと○ 自分の場合は美味しいもの食べること(太りやすい問題)● 意図的に暇(無の時間)を作ること● 定期的に運動する
22メンタル管理のやり方(自分の場合)● 他人と比べない○ 勉強すればするほど、すごい人を観測しやすくなる○ 人と比べると心理的に良いことがあまりない■ 例えば、その人のバックグラウンドを知らずに比べしまうと痛い目に合う● できないことではなく、できることに集中する● 常に楽のやり方を探す
23技術学習編
24技術学習の話● インプットとアウトプットを繰り返すことに勝ることはない● 習慣化しよう○ 時間管理のテクニックに合わせて計画的に行おう● 手で覚えることも大事学生の間で10万行のコードを書きましょう。優れたエンジニアは座学ではなく、実践でできています。原文: 建议大家争取在大学四年中积累编写十万行代码的经验。我们必须明白的是:好程序员是写出来的,不是学出来的。By 李开复(元Google VPの人)
25インプットの選び方● わかりやすい本や記事は知的高速道路○ 出版されたものは基本的に信じていい○ 選別できる様になってからネットで検索しても遅くない● 英語の高速道路が多い(新しい技術は特に)○ 分野によっては中国語も多い(例: 決済周り)
26一般的に良いとされるアウトプット● SNSや技術ブログで発信● サービスを公開する● OSS開発に参加すること● 技術書の翻訳や出版● etc
27実際難しいんですよね...
28簡単なアウトプット方法(コード編)● 草活動(毎日有意義なコードを書く)● 作るものない時はAtcoder, LeetCodeを解いていました
29簡単なアウトプット方法(知識編)● 読んだものを要約して残す○ 書く経験になる○ 自分の復習になる■ 間接的に自分に教えていることになる○ 知識のindexになるスライド作る前のメモ
30簡単なアウトプット方法(知識編)自分が読んで良いと思った Web記事の記録自分が読んだ本の記録
31質の高いアウトプットをする方法良いものは蓄積で出来てる By 自分のメンター大枠を作る020301リサーチ見直し/埋めるレビュー依頼
32チーム開発編
33人との接し方● 積極的に他人から学ぼう○ 三人行えば必ず我が師有り● 質問をしよう○ 質問は恥ではないし役に立つ● 他人にして欲しいことをする
34人との接し方● 共通意識を作ろう(期待値を揃えること)○ オープンであること■ 心理的安全性が上がる■ 別に弱みを教えろという話ではない● 他人をリスペクトすること○ これも心理的安全性に繋がる
35技術の話● 技術的正しさを追求しすぎないこと○ 人的、金銭的コストなど他のロールの心配ことも考慮する● 技術に対する提言は良いことでしかない○ 例: コードに対する反論は人間に対する反論ではない最初に出したPRのコメントの数
36計画と実行を繰り返しましょうまとめ
37参考文献● PDCA vs OODA● ポモドーロ・テックニック● 質問は恥でないしやつに立つ● Junior developer guide● What is an OKR● 三人行必有我师● 己所不欲,勿施于人
38おすすめなコンテンツなど● 金のフレーズ● リーダブルコード● クリーンアーキテクチャ● データ指向アプリケーションデザイン● 大規模サービス技術入門● コンピュータシステムの理論と実装● Webを支える技術
39おすすめなコンテンツなど● マイクロサービスパターン● アルゴリズムとデータ構造● マスタリングtcp/ip● SRE本● Go言語による並行処理● the-way-to-go_ZH_CN● justforfunc
40● エンジニアリング組織論● How great leaders inspire action● How to Get a Job at the Big 4● 盲信メソッド● 1分で話せ● 臆病者のための株入門● 資産運用で99点をとる方法おすすめなコンテンツなど
41● 図解論語● ラムダ技術部● セキュリティキャンプ● メルカリインターンおすすめなコンテンツなど