Skip to content
/ Books Public
forked from rneha725/Books

A collection of relevant books I found online, some are recommended and a lot are downloaded because of my greed of perspectives.

Notifications You must be signed in to change notification settings

MRajibH/Books

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Books

A collection of relevant books I found online, some are recommended and a lot are downloaded because of my greed of perspectives.

Design Patterns

  1. An Introduction to Design Patterns - John Vlissides

    • Summary: Introduces fundamental design patterns that offer reusable solutions to common software design problems.
    • Usefulness: Helps in understanding the core principles of object-oriented design and applying these patterns to create flexible and maintainable software.
    • Learning Outcomes: Learn about key design patterns such as Singleton, Observer, and Factory. Gain insights into how these patterns can solve common issues and improve code quality.
  2. Design Patterns - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

    • Summary: Known as the "Gang of Four" book, it provides an in-depth look at 23 classic design patterns.
    • Usefulness: Essential for mastering design patterns that are widely used in software development to solve recurring design problems.
    • Learning Outcomes: Understand the design patterns in detail, including their benefits, implementation, and how they address various software design issues.
  3. Head First Design Patterns

    • Summary: Uses a visually rich and interactive approach to teach design patterns.
    • Usefulness: Makes complex design patterns more accessible through engaging examples and illustrations, ideal for beginners.
    • Learning Outcomes: Learn to apply design patterns in practical scenarios, making complex concepts easier to grasp and implement in real-world projects.

Software Architecture

  1. Clean Architecture - Robert C. Martin

    • Summary: Explores principles of software architecture focusing on creating maintainable and scalable systems.
    • Usefulness: Provides a framework for designing systems that are robust, adaptable, and aligned with business needs.
    • Learning Outcomes: Understand SOLID principles, separation of concerns, and strategies for creating adaptable software architectures.
  2. Fundamentals of Software Architecture - Mark Richards, Neal Ford

    • Summary: Offers a comprehensive overview of software architecture principles, including various architectural styles and patterns.
    • Usefulness: Helps in making informed architectural decisions and understanding different approaches to structuring software.
    • Learning Outcomes: Gain knowledge of architectural styles, patterns, and best practices for designing scalable and effective software systems.
  3. Software Architecture in Practice - Len Bass, Paul Clements, Rick Kazman

    • Summary: Provides practical insights into applying software architecture concepts with real-world case studies.
    • Usefulness: Bridges theory and practice by offering examples and case studies, making it easier to apply architectural principles in real projects.
    • Learning Outcomes: Learn to create architectures that meet business goals while remaining flexible, scalable, and aligned with stakeholder needs.

Software Development Practices

  1. Clean Code - Robert C. Martin

    • Summary: Focuses on writing clean, readable, and maintainable code.
    • Usefulness: Improves code quality by emphasizing best practices for naming, formatting, and structuring code.
    • Learning Outcomes: Learn to write code that is easy to understand and maintain, reducing technical debt and improving overall software quality.
  2. Test-Driven Development By Example - Kent Beck

    • Summary: Introduces test-driven development (TDD) with practical examples and step-by-step guidance.
    • Usefulness: Teaches how to write tests before code to ensure it meets requirements, leading to more reliable and bug-free software.
    • Learning Outcomes: Understand the TDD process, including writing tests, implementing code to pass tests, and refactoring for better design.
  3. Working Effectively with Legacy Code - Michael Feathers

    • Summary: Offers strategies for dealing with legacy code, focusing on safe improvements and modernization.
    • Usefulness: Provides techniques to refactor and enhance legacy systems without introducing new bugs, making codebase maintenance more manageable.
    • Learning Outcomes: Learn methods for working with legacy code, including how to make changes safely and improve the codebase incrementally.
  4. The Pragmatic Programmer - Dave Thomas, Andy Hunt

    • Summary: A guide to practical software development practices and methodologies.
    • Usefulness: Encourages continuous learning and offers practical advice for becoming a more effective programmer.
    • Learning Outcomes: Gain insights into best practices, problem-solving strategies, and practical approaches to software development.
  5. Five Lines of Code - Christian Clausen

    • Summary: Focuses on refactoring code with minimal changes to improve quality.
    • Usefulness: Teaches how to make small, incremental improvements to code, enhancing readability and maintainability.
    • Learning Outcomes: Learn techniques for refining code without major overhauls, leading to cleaner and more maintainable code.
  6. Why Programs Fail - Andreas Zeller

    • Summary: Examines systematic debugging techniques to identify and fix software bugs.
    • Usefulness: Provides a structured approach to debugging, helping to resolve issues efficiently and prevent future bugs.
    • Learning Outcomes: Understand methods for reproducing, analyzing, and fixing bugs, improving your debugging skills and overall software reliability.

Machine Learning & Artificial Intelligence

  1. Deep Learning - Ian Goodfellow, Yoshua Bengio, Aaron Courville

    • Summary: A comprehensive guide to deep learning covering mathematical foundations and practical applications.
    • Usefulness: Offers in-depth knowledge of deep learning techniques and their applications in AI, suitable for students, researchers, and practitioners.
    • Learning Outcomes: Learn about neural networks, optimization techniques, and real-world applications of deep learning.
  2. Machine Learning - Stephen Marsland

    • Summary: Introduces core concepts and algorithms of machine learning with practical examples.
    • Usefulness: Provides a solid foundation in machine learning theory and practice, making it ideal for those new to the field.
    • Learning Outcomes: Understand machine learning algorithms, model evaluation, and practical implementation techniques.
  3. Machine Learning in Action - Peter Harrington

    • Summary: Hands-on guide to implementing machine learning algorithms with practical projects.
    • Usefulness: Teaches how to apply machine learning techniques in real-world scenarios through coding examples and projects.
    • Learning Outcomes: Gain experience in implementing machine learning algorithms and applying them to solve practical problems.
  4. Pattern Recognition and Machine Learning - Christopher M. Bishop

    • Summary: Focuses on statistical methods used in pattern recognition and machine learning.
    • Usefulness: Provides a thorough understanding of statistical techniques and their application in pattern recognition and machine learning.
    • Learning Outcomes: Learn about probabilistic graphical models, pattern recognition methods, and machine learning techniques.

Domain-Driven Design

  1. Domain-Driven Design - Eric Evans
    • Summary: Explains how to design complex software systems by aligning software models with business requirements.
    • Usefulness: Helps in creating software that accurately reflects business needs and evolves with changing requirements.
    • Learning Outcomes: Understand domain-driven design (DDD) concepts, including strategic design, bounded contexts, and domain models.

Kafka & Streaming

  1. Kafka - Confluent Book
    • Summary: In-depth guide to Apache Kafka, covering basics to advanced topics in real-time data processing.
    • Usefulness: Provides knowledge for building real-time data pipelines and streaming applications, crucial for handling big data.
    • Learning Outcomes: Learn about Kafka's architecture, setup, and use cases, including how to build and manage data streams.

Algorithms & Data Structures

  1. CLRS 4th Edition - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
    • Summary: Comprehensive guide to algorithms, covering basic data structures to complex algorithms. Provides theoretical insights and practical implementations, widely used in computer science education.

Dependency Injection

  1. Dependency Injection - Steven van Deursen, Mark Seemann
    • Summary: Explains principles and patterns of dependency injection for managing object dependencies in software development. Covers different approaches with practical examples and best practices.

Software Engineering

  1. The Mythical Man-Month - Frederick P. Brooks Jr.
    • Summary: Collection of essays on software engineering, exploring challenges and realities of software development projects. Introduces "Brooks' Law," offering timeless insights into managing large-scale projects.

About

A collection of relevant books I found online, some are recommended and a lot are downloaded because of my greed of perspectives.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published