ベストアンサー
誰もが明らかに自分の好みを持っています。私自身が含まれています。重なりが限られているので、その本がどれだけ「読まなければならない」と不思議に思う必要があります。 :)ただし、リストを作成するのはいつでも楽しいです。
- 神話上の男月
- CおよびC ++、第2版でのセキュアコーディング(CおよびC ++開発者にのみ適用可能ですが、Java用のバージョンがあります。Adaでは、通常、Johnが必要です。バーンズのマニュアル: Amazon.co.uk:John Barnes:9781107424814:Books )
- 認定コンパイラのプログラムロジック:Andrew W. Appel、Robert Dockins、Aquinas Hobor、Lennart Beringer、Josiah Dodds、Gordon Stewart、Sandrine Blazy、Xavier Leroy:9781107048010:Amazon.com:Books
- The Art of Computer Programming、Vol。 1:Fundamental Algorithms、3rd Edition:9780201896831:Computer Science Books @ Amazon.com
- Art of Computer Programming、Volume 2:Seminumerical Algorithms (第3版):Donald E. Knuth:0785342896848:Amazon.com:Books
- The Art of Computer Programming:Volume 3:Sorting and Searching(2nd Edition):Donald E. Knuth:9780201896855:Amazon.com:Books
- カラーペトリネット-モデリングと検証コンカレント|カート・ジェンセン| Springer
- TCP / IPイラスト、第1巻:プロトコル
- Unix Network Programming、Volume 1:The Sockets Networking API(3rd Edition):W。Richard Stevens、Bill Fenner、Andrew M. Rudoff:9780131411555:Amazon.com:Books
- POSIXスレッドを使用したプログラミング:David R. Butenhof:0785342633924:Amazon.com:本
明らかに、これらの本のすべてがすべての人に当てはまるわけではありません。私はフィールド全体に取り組むのに十分夢中になっているので、これらすべてとさらに多くのものを持っています。ただし、この選択は、堅牢なプログラミング、アルゴリズム、ネットワーク、システムモデリング、およびさまざまなソフトウェア開発モデルをしっかりと把握するのに十分です。ソフトウェアエンジニアが注意を払う必要があるほど重要な領域。
回答
ここでは、学校を通じて技術的な熟練を達成したソフトウェアエンジニアについて話していると仮定します。ブートキャンプまたはその他の学習機会。
アルゴリズムは確かに重要であり、「アルゴリズムの概要」という本は必読です。ソフトウェア設計とオブジェクト指向設計を深く理解することも重要だと思います。私の聖書は今でも「設計パターン:再利用可能なオブジェクト指向ソフトウェアの要素<」という本です。 / a>。」 Smalltalkでのその例は、今日では読みやすくはありませんが、このトピックについてこれほど深く幅広い本を他に知りません。
職場で始めた多くのエンジニアに会いました。 、そして私は何年にもわたっていくつかのギャップに気づいたので、これらの各分野の本を提案したいと思います。
新しいエンジニアは、言語に関係なく並行性を理解しない傾向があります。複数のスレッドを並列に実行しながら、それらの間で適切なレベルの同期を提供するという概念を理解するのは簡単ではありません。私は、Javaのバックグラウンドからの「
Java Concurrency in Practice 」を読んで、個人的に多くのことを学びました。 「 Effectable Java 」には、同時実行性に関する優れたセクションもあります。これは、Javaで適切にコーディングする方法について必読です。
Cyber -最近、セキュリティがついに話題になっています。残念ながら、ジュニアエンジニアは、コードに適用できるセキュリティの概念を認識していない傾向があります。まず、 OWASPトップ10リストを読んで、各アプリケーションの脆弱性をドリルダウンすることから始めてください。私は「ソフトウェアセキュリティの24の致命的な罪:プログラミングの欠陥とその修正方法」の大ファンです。
新しいエンジニアはコーディングに焦点を当てます。彼らはコーディングが重要であると信じており、より簡潔にタイプできるため、読みにくいコードに依存することもある、優れたコードを迅速に作成したいと考えています。その考え方には2つの問題しかありません。すべてのソフトウェアエンジニアがバグを作成することと、ソフトウェアエンジニアがチームでよりうまく機能することです。品質は重要であり、保守性も重要です。個人的には、「レガシーコードを効果的に使用する」という本が好きで、テストとコードを改善するためのテストの必要性について話しています。 「クリーンコード:アジャイルソフトウェアの職人技のハンドブック」は、保守性のトピックにアプローチしますが、極端な視点を持っていることもあるため、読むのに最適な本です。チームとして話し合う。
特に大学を卒業した新しいエンジニアは、職場や新しい仕事に順応するのに苦労する可能性があります。これは実際には、新しい仕事を始めるすべてのエンジニア、実際には誰にでも当てはまります。このすばらしい本「最初の90日間:より速く、よりスマートにスピードアップするための実証済みの戦略」があります。これは、新しい仕事、特に構造の必要性。構造は素晴らしい。それは、特に新しい環境では、快適です。娘と一緒にケーキを焼くときと同じレシピを適用することで、一貫した結果が得られます。 11ヶ月前にNative App TeamでWayfairを始めたとき、土地を確保するために、到着時にかなり一般的でありながら一貫性のある質問をすることにしました。これらの質問は、私に何が起こっているのかについてのいくつかの概念を与えただけでなく、私が会っていた人々について多くのことを教えてくれました。 1:1ごとに同じアンケートを使用して約1か月間、事実調査の任務を遂行し、初日から重点分野のリストを作成し始めました。
20年以上ソフトウェア開発に携わっています。過去10年間、リーダーシップの本を読んでいます。最近の本を読みたい場合は、リーダーシップの本についてお気軽にお問い合わせください。