第1章 プログラマから エンジニアへ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
基礎スキルは習得が面倒だが、時代遅れに思えることもある。もし専門家になる近道があれば、そうかもしれない。しかし専門性へのパスは、事実に基づく基礎が不可欠だ。
イーサン・モリック『共同知能』(ポートフォリオ、2024年)より
ソフトウェアエンジニアになるには、バリエーションにわたる幅広いスキルが必要だ。顧客が実際に求めていることを理解すること。それらのニーズを保守可能なコードに変換すること。ソフトウェアが想定通りに動作することを保証するテストを書くこと。機能するユーザインタフェースを作成すること。アーキテクチャ。データとの連携。コードを本番環境にデプロイすること。ソフトウェアの実践者としてキャリアを伸ばしたいなら、単にコードを書くことだけに集中してはいけない。ソフトウェアエンジニアリングという技術全体を受け入れる必要がある。
プログラマからエンジニアへ になるには、ソフトウェア開発ライフサイクル(SDLC)全体にわたる基礎スキルを習得し、効率的に働き、知らないことを認め、その知識のギャップを埋める方法を考え出す必要がある。この章では、その第一歩を踏み出すためのヒントと助言を提供する。エンジニアになるための様々なパスと、それらのアプローチでしばしば見落とされる重要な知識について学ぶ。最終的に、この章では苦労して得た助言を提供し、プログラマからエンジニアへの道のりを円滑にする手助けをする。
まずは、ソフトウェアエンジニアであることの意味について話そう 。
エンジニアとは名ばかりの者
ソフトウェア業界は、オーバーロード(しばしば流用された)用語であふれており、曖昧さの余地がたっぷりある。5人のソフトウェア専門家に同じ言葉を定義させれば、少なくとも5通りの答えが返ってくるだろう。もともと「コンピューター」とは、計算を行う人間を指していた。今ではプログラマ、コーダー、開発者、ソフトウェアエンジニアといった言葉が飛び交う。これらは同義語か?
違う。 プログラマ や コーダーは、コードを生成するという単一のタスクに集中している人を指すことが多い。1一般的に、特定のプログラミング言語やフレームワークに精通している場合もあるが、ソフトウェア開発ライフサイクル(SDLC)全体を理解していないこともある。多くの人がプログラマやコーダーとしてキャリアを始めるが、昇進のパスでは単なるバグ修正や機能実装を超えていく必要がある。
開発者( )は通常、ソフトウェア提供の全体像をより深く理解している。複数の言語やフレームワークを扱い、様々なビジネスドメインでの経験を持つ。プログラマやコーダーより経験が豊富で、SDLCのより広い範囲を探求し始め、経験の浅いチームメンバーのメンターやペアプログラミングの相手を務めることもある。
しかしソフトウェアエンジニアリングの領域へ進むには、SDLC全体にエンジニアリングの規律をもたらす必要がある。ソフトウェアエンジニアとしてコードを書く能力は当然の前提であり、スケーラビリティ、信頼性、効率性、セキュリティについて考えることが求められる。アルゴリズムや設計の表面的な理解を超えた段階にある。規則を知っているだけでなく、それを曲げるべき時、さらには破らねばならない時さえも理解している。ソフトウェアエンジニアは、現代の生産環境で稼働する最も複雑で重要なシステムのタスクを担っている。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access