※本記事は、Geminiによる意訳+翻訳を活用し、レイアウト調整したものです。
※元記事を見て、内容がズレていないか査読するようにしています。
※感想は、オリジナルです。
原文
Think Like a Problem Solver, Not the Best Programmer - DEV Community
意訳+要約
最高のプログラマーではなく、問題解決者のように考えよう
プログラミングの世界では、「最高のプログラマー」になるという暗黙の競争があります。しかし、魅力的に聞こえるかもしれませんが、「最高のプログラマー」の称号を追いかけることは、最も価値のある目標ではないかもしれません。重要なのは、問題解決者のように考えることです。プログラミングは、本質的に問題を効率的かつ効果的に解決することです。最も複雑なコードを書いたり、最も多くのライブラリを習得したりすることではありません。現実世界のニーズに対応するために持っているツールを使用することです。
「最高のプログラマー」の幻想
プログラミングはしばしば工芸と比較され、あらゆる工芸のように、スキルによって成功を測定する誘惑があります。これは、「完璧な」コードを書くこと、最新のテクノロジーを追い続けること、または部屋で最も速いコーダーになることに執着する形で現れる可能性があります。しかし、この考え方には大きな欠点があります。
- 自分より優秀な人は必ずいる
- 常に誰か優れた人がいます。優秀さを追いかけることは、止まらないランニングマシンを走っているのと同じことです。
- テクノロジーは進化と陳腐化を繰り返しますが、問題解決力は常に必要になる
- フレームワークと言語は時代遅れになりますが、複雑な問題を分解し、解決策を開発する能力は時代を超えたスキルです。
- コラボレーションよりも競争に焦点を当てる – 最高になりたいという願望は、エゴ主導の開発につながることがあります。 – 成功するプロジェクトのほとんどは、自分の強みを出し合って目の前の問題を解決して成り立っています。 – 他の人より上へいくことは、他の人から学ぶ能力を制限する可能性があります。
- プログラミングの「なぜ」を無視する
– 最高になることに集中しすぎると、なぜコードを書いているのか理解できなくなる可能性があります。
- コードは、現実世界の問題を解決するために存在します。
問題解決能力を持つ人が最高のプログラマーになる
プログラミングで成功するためには、多くの言語を熟知していることや、高速にコードを書けることよりも、問題を理解し、効率的で保守可能な方法でソリューションを設計および実装できることが重要です。
- プログラミングの本質は問題解決: コードを書くことは、本質的に問題を解決することです。
- 結果を重視: 複雑なコードよりも、問題をシンプルに解決できるコードが理想です。
- 適応力: テクノロジーは急速に変化するが、問題解決能力は、そうした変化を超越する。問題解決に重点を置くと、適応力が高まる。
- 効果的に協力: 問題解決に集中すると、自然と他人を巻き込むようになり、協力して解決策を模索するようになる。
- 保守性の高いコード: 将来的にも役立つコードを作成する。
考え方を変える:「最高のプログラマー」から問題解決者へ
プログラマーから問題解決者になるためのマインドシフト方法
- コード修正する前に問題を完全に理解する
- 多くの場合、プログラマーは問題を完全に理解せずにコーディングを開始しがち
- 質問をして調査し、問題を明確に定義する時間を取る
- 問題を理解すればするほど、解決策は良くなる
- 最も単純なソリューションに焦点を当てる
- 複雑さはプログラミングの美徳ではない
- シンプルさを追求する。
- 単純な解決策は、堅牢で、保守が容易で、実装が迅速になりやすい
- 協力する方法を学ぶ
- 最善の解決策は、問題への深い理解から生まれる
- ニーズと解決策を吟味し、よりよい解決策を模索する
- 適応性を保つ
- フィードバックを受け入れる
- フィードバックが解決策を改善する
- 批判を恐れず、成長して問題解決スキルを向上させる機会と捉える
関連リンク
参考になりそうなサイト
社会人に必須の問題解決能力を鍛える3つの方法|グロービスキャリアノート
プロが教える!問題解決力の鍛え方と問題解決のための3ステップ-問題解決力研修、社員教育【CAM】
問題解決力とは|トレーニング方法・鍛えるメリット・基本の3ステップ | アルー株式会社
感想+雑記
直訳だと、やっぱり意味合いが分かりづらい。
コミュニケーションをそのままカタカナ表記にすると、何してほしいのか分かんないんだよね。。。
他のサイトも調べたりしてると、問題解決力もだが、問題を知覚する能力も必要ではないかと感じた。
気づかずスルーしてしまうこともあったりするから、問題だけでなく解決方法なんかを発見する能力も必要だと思った。
問題解決力って、問題が起きるのを待つ感じのイメージが強いから、自ら探しに行く姿勢が重要だと思うんだよね。
まぁ、自分に危害が及ばない限りは、積極的に探すことを俺はしないけど。