原文
37 Tips from a Senior Frontend Developer - DEV Community
意訳+要約
上級フロントエンド開発者からの37のヒント
- 基礎をマスターする
- 基礎がしっかりしていない苦労することが多い
- JavaScriptフレームワークに苦労する
- 最初の未知の問題で行き詰まる
- 問題に共通するテーマを理解できない
- 基礎がしっかりしていない苦労することが多い
- ウェブの仕組みを理解する
- Web の仕組みを理解していない場合、ツールを使いこなせない
- データ構造とアルゴリズムを理解する
- データ構造とアルゴリズムを理解することでコーディング、コードの効率を評価できる
- 読んだり見たりするのではなく、実際にやってみることで学ぶ
- チュートリアルだけでは身につかない
- 実践や指導を通じて身につける
- 困ったときは助けを求める
- 解決済みの問題に労力をかけるのはナンセンス
- 目標は価値を提供すること
- 適切な方法で助けを求める
- 助けを求める前に、最低限のことは
- Google/Stack Overflow/ChatGPTで解決策を検索
- 目標の理解し
- うまくいっていってないことの明確か
- 失敗の記録
- 助けを求める前に、最低限のことは
- 理解できないコードをコピー/貼り付けしない
- 機密情報を公開する危険性
- デバッグの困難化
- 説明不可の状況に陥る
- ネット上のアドバイスを盲目的に信じ込まない
- 常に以下のことを考える
- 問題が合致しているか?
- 状況が合致しているか?
- 常に以下のことを考える
- 善意を前提に考えましょう: 人々はあなたの成功を望んでいます
- 成功を望んでいることを信じる
- 躊躇せずに同僚にサポートを求めてる
- 完璧よりも完了が大切
- 完璧を求めた際のデメリット
- 先延ばし
- 時間の無駄
- 過度の複雑さ
- 完璧を求めた際のデメリット
- タスクを常に管理可能なサイズに分割する
- タスク分割のメリット
- 圧倒されない
- PR(プルリクエスト)のレビューを容易にする
- 進歩の感覚を与える
- タスク分割のメリット
- 助けが必要なときに頼れる人になる
- マネージャーの作業負荷を
- 仕事に対する熱意を示す
- 指導だけでも大変なのに、誰かにやる気を出させるとなると、さらに大変
- 新しいもの、ツール、方法を学ぶことにオープンでいる
- フロントエンド開発は常に進化している
- なので、現在のツールに固執しすぎない
- 開発ツールを使いこなす
- 開発時間を短縮
- 価値の提供に重点を置く
- 報酬は、コードではなく、提供する価値に依存
- 目的を果たす効果的なコードを書くことを優先する
- 自分の仕事を擁護する: 仕事は自ら語るものではない
- 認知されない仕事は仕事ではない
- 賢いコードよりも愚かなコードを書くほうがよい
- コードは書かれるよりも読まれる頻度の方がはるかに高い
- 自分だけが理解できる巧妙なコードは悪
- 読みやすさ > パフォーマンス > 巧妙さ
- 上司はあなたの最高の味方です
- 上司=成長をサポートする人
- マネージャーの仕事を楽にする
- 上司の支持を得る簡単な方法
- タスクの背後にある全体像を理解する
- キャリアを次のレベルに進めるに必要なこと
- なぜ価値があるのか
- なぜ彼らに配属されたのか
- 会社の全体戦略にどのように適合するか
- キャリアを次のレベルに進めるに必要なこと
- チームに貢献する(ドキュメント、技術トーク、デモなど)
- 常にチームのパフォーマンスを可能な限り向上させる
- 特定の分野で「頼れる人」になる
- 特定分野における深い専門知識と幅広い知識を身につけることを目指し
- コミュニケーションスキルを磨く
- 残念ながら、必須
- 問題に行き詰まったら休憩を取る
- 休憩をとった後は常に新鮮なアイデアが生まれることが多い
- 長い間行き詰まっている場合は、休憩を取る
- 弱点ではなく強みを生かして働く
- 弱点の修正よりも基礎
- エネルギーの投資先を考える
- 自分のキャリアパスを自分で決める
- 誰もあなたのキャリアを計画してくれません。
- 計画がなければ、他人の計画のために働くことになる
- 他の開発者と交流する
- 他の開発者とつながると、次のような追加のメリット
- 新しいコツやヒントを習得できる
- 共通の体験を話せる
- お互いの仕事を補完できる
- 他の開発者とつながると、次のような追加のメリット
- 若い開発者を指導する
- 自分が物事を知っていることに気づく
- 中堅/上級開発者としての地位を確立
- 解決する問題を多様化する
- さまざまなアプローチを比較できるようになる
- 問題解決のためのツールキットを開発
- メンターを見つける
- メンターがいることのメリット
- 成長のサポート
- 間違いの回避
- メンターの見つけ方
- 経験豊富な開発者と交流
- SNSを通じた交流や関係性の構築
- メンターがいることのメリット
- JavaScriptフレームワークにコミットして習得する
- 常にユーザーエクスペリエンスを考える
- フロントエンド開発者として、ユーザーのことを考える
- 必要に応じて読み込み状態を使用する
- UIで進捗状況を伝える
- ユーザーにフィードバックを与える
- 安心して「No」と言う
- 断るのに苦労しがちだで、管理できる以上のリクエストを受けることがある
- 許容量を考えてNoを言えるようにする
- 自分のスキルに継続的に投資する
- フロントエンド開発者 = 継続的に学習する必要があるキャリアに進む
- 自分のスキルに投資し続ける必要がある
- 作業量が多すぎる場合は、コードの品質よりも機能を減らします。
- 機能を追加するとコードが増え問題 (メンテナンス、バグなど) も増える
- 時間に余裕がない場合は、コードの品質を犠牲にするよりも機能を削減する
- 協力者(デザイナー、バックエンド開発者など)を理解するよう努める
- 協力者(バックエンド開発者、デザイナー、PM など)に敬意を示す
- チーム間の相乗効果が高まれば、環境はより幸せで効果的になる
関連リンク
感想+雑記
まぁ、フロントに限った話ではない。。。
最終的に、「プログラマが知るべき97のこと」に集約している気がする。
キャリアに責任を持つのもそうなんだが、それに固執しすぎるのもよくないという理解でいる。
一人で何でもやろうとすると、できないことが当然出てくるわけで、成長も限界がある。
頼るにしても、最低限の努力はしないと、相手にとっては不快になることを忘れてはならない。
ところどころ、疑問を感じる箇所はあるが、おおむね同意ではある。
かなり共感されていることから、同じことを感じている人が多いか、参考になった人がおおいということか。。。
俺も出そうかな、こういうの。
自分の経験をどこかにアウトプットすることは、重要かもしれないと読んでて思った。