著者は当初、ソフトウェアエンジニアリングは完璧さを追求すること、つまり、欠陥のないコードとバグのないリリースを目指すことだと考えていた。しかし、経験を通して、完璧なコードがリリースされることは稀であり、進歩と学習の方が重要だと気づいた。ソフトウェアエンジニアリングは、トレードオフを行い、イテレーションを受け入れ、「十分良い」ことがしばしば十分であると認識することを含む。キャリアの初期段階では、エンジニアはルールを習得することに重点を置くが、後には現実世界のエンジニアリングでは例外事項が優先されることに気づく。エンジニアが経験を積むにつれて、その役割はコード作成を超え、システム設計、指導、リスク管理などにも拡大する。キャリアの中盤では、新しいテクノロジーの出現により遅れを感じることが多く、継続的な学習と適応が重要になる。最高のエンジニアは、学び、適応し、不確実性の中で他の人々を導くことができる人々である。シニアエンジニアは、組織構造や企業の価値観など、より広範な問題に取り組み、持続可能なシステムの構築に焦点を当てる。ソフトウェアエンジニアリングにおける成長は、完璧主義、エゴを手放し、好奇心と協調性を大切にすることを含む。エンジニアリングは単にコードを書くことではなく、人々、チーム、そして倫理的なシステムを構築することである。究極の目標は、学び続け、試み、共有し、コード自体よりも大きなものに貢献することである。著者は、完璧さよりも進歩の重要性を強調し、テクノロジーを創造する上での人間的要素を強調している。
dev.to
Abhishek Desikan | Growing as a Software Engineer Means Letting Go of Perfection
