takechanel
@takechanel (Take N)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

プログラミングする上で何を考慮して実装しているの? - アルゴリズムを考慮することの優先順位は?

アルゴリズムを考慮することの優先順位は? ※ここではオブジェクト指向プログラミング言語に限る。

  • [こちらの書籍](Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につける)を読んでいて疑問に思ったことがある。 それはアルゴリズムについてだ

  • アルゴリズムは、解答パターンを指し示すもの

    • 例えば、中学校 数学問題であったのは「花子さんがA地点からB地点に辿り着くために最も最短経路は?」みたいな問題があったと思う
    • 辿り着く手段(経路)は複数あるが最短経路は少数のパターンしかない。その最短経路を導くプロセスを「アルゴリズム」と呼ぶそう
  • ここで疑問なのが「エンジニアはセキュリティ面や処理スピードを考慮した実装が問われるがどの要素を優先的に考え、実装するのかベストなのだろうか疑問である。 」

  • もちろんセキュリティが悪く、システムが崩壊するものはよくないのでシステムを安全にリリースすることが重要であると思うが、その次にエンジニアは何を考慮して実装すれば良いだろうか?

  • 皆様の意見が知りたい。どんな意見があるか教えてほしい

経緯

  • なぜこの疑問が生じたかといえば、以下である
    • 上記の書籍を読んで アルゴリズム、処理スピードの重要性に気づいた
    • 一方でObject設計(無駄な実装にならないように)主体が何をどうする?に基づいてメソッドを実装するObject指向に基づいた実装も重要だと思う。 ー保守性や可読性の担保が大事だから。 エンジニアはコードを書く時間よりも読む時間のほうが長い。(2年半実務より)
    • 生成AIが進化してきており、より専門的な技術が問われてきていると痛感している
      • 深掘りすると高度な技術なエンジニア (技術選定)やシステム設計ができるエンジニアが今後求められるフェーズだと考えている

これらの点から、Jr(まだ1~3年のエンジニア)は何を基軸に業務を行事すれば良いかわからないので意見が欲しいです。

 - 補足
  - エンジニアの仕事は、脳内で整理してコーディングしたり、コミュニケーション取るなど頭の中で整理することができているかがポイントだと私は思っております。なので実装においてなにを優先してどのように整理して実装するかを私は脳内で整理、構造化できていない。なぜなら、アルゴリズムを考慮した実装が乏しかったからだ。

1

質問内容から職業プログラマーかと思いますが、どのような製品を開発されているのでしょうか?質問の範囲がかなり広いと感じまして、業界やプロジェクトによっても優先順位は様々かと思いましたので。
御社でも設計やコード実装の際の基準は何かしらあると思います。コードレビューで「こうした方が良い」等は言われませんか?
品質かスピードかのバランスは難しいところかと思いますが、例えば命に係わるシステム(医療系など)であれば精度が厳しく求められるのではと思います。

0Like

Your answer might help someone💌