プログラミングする上で何を考慮して実装しているの? - アルゴリズムを考慮することの優先順位は?
Discussion
アルゴリズムを考慮することの優先順位は? ※ここではオブジェクト指向プログラミング言語に限る。
-
[こちらの書籍](Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につける)を読んでいて疑問に思ったことがある。 それはアルゴリズムについてだ
-
アルゴリズムは、解答パターンを指し示すもの
- 例えば、中学校 数学問題であったのは「花子さんがA地点からB地点に辿り着くために最も最短経路は?」みたいな問題があったと思う
- 辿り着く手段(経路)は複数あるが最短経路は少数のパターンしかない。その最短経路を導くプロセスを「アルゴリズム」と呼ぶそう
-
ここで疑問なのが「エンジニアはセキュリティ面や処理スピードを考慮した実装が問われるがどの要素を優先的に考え、実装するのかベストなのだろうか疑問である。 」
-
もちろんセキュリティが悪く、システムが崩壊するものはよくないのでシステムを安全にリリースすることが重要であると思うが、その次にエンジニアは何を考慮して実装すれば良いだろうか?
-
皆様の意見が知りたい。どんな意見があるか教えてほしい
経緯
- なぜこの疑問が生じたかといえば、以下である
- 上記の書籍を読んで アルゴリズム、処理スピードの重要性に気づいた
- 一方でObject設計(無駄な実装にならないように)主体が何をどうする?に基づいてメソッドを実装するObject指向に基づいた実装も重要だと思う。 ー保守性や可読性の担保が大事だから。 エンジニアはコードを書く時間よりも読む時間のほうが長い。(2年半実務より)
- 生成AIが進化してきており、より専門的な技術が問われてきていると痛感している
- 深掘りすると高度な技術なエンジニア (技術選定)やシステム設計ができるエンジニアが今後求められるフェーズだと考えている
これらの点から、Jr(まだ1~3年のエンジニア)は何を基軸に業務を行事すれば良いかわからないので意見が欲しいです。
- 補足
- エンジニアの仕事は、脳内で整理してコーディングしたり、コミュニケーション取るなど頭の中で整理することができているかがポイントだと私は思っております。なので実装においてなにを優先してどのように整理して実装するかを私は脳内で整理、構造化できていない。なぜなら、アルゴリズムを考慮した実装が乏しかったからだ。
1