وبلاگ بلیان

A friendly guide to software development : what you should know without being a developer

جلد کتاب A friendly guide to software development : what you should know without being a developer

معرفی کتاب «A friendly guide to software development : what you should know without being a developer» نوشتهٔ Leticia Portella، منتشرشده توسط نشر Apress : Imprint: Apress در سال 2023. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Software is everywhere, but despite being so common and useful, it remains magical and mysterious to many. Still, more and more people are finding themselves working for tech companies, or with an array of software products, services, and tools. This can segregate those who understand tech from those that don’t. But it doesn’t have to be this way. This book aims to bring these two worlds closer together, allowing people to learn basic concepts of software development in a casual and straight-forward way. Assuming no previous technical knowledge, you’ll embark on a journey where you can understand and build a new software project from scratch until it is an advanced product with multiple users. Imagine moving from a “traditional” company and suddenly finding yourself in one where software is the main product or is a foundational component to it. One is often left to wade through the infinite concepts while still doing their actual jobs. This book closes that gap, improving communication between technical and non-technical parties. A Friendly Guide to Software Development makes technical concepts broadly available and easy to understand. In doing so, you'll be able to achieve better communication, which will undoubtedly lead to better working relationships, a better working environment, and ultimately better software. What You'll Learn See how a new software project is created Examine the basics of software development and architecture Know which questions to ask to avoid potential problems and pitfalls Start using and building software projects Who This Book Is For Non-technical people like business and project managers who need to work closely with software developers and teams People who are interested in building a software system but don’t know where to start. Programmers who want to jump to development but have no experience in the industry and its common concepts Table of Contents About the Author About the Technical Reviewer Acknowledgments Foreword Preface Part I: Getting to Know This Familiar Unknown World Chapter 1: Welcome! 1.1 Why Am I Writing This Book? 1.2 How Will We Learn Together? Chapter 2: The Birth of a Software Project 2.1 Understanding the Hypothesis 2.2 Validating the Hypothesis 2.3 Preparing for a User Interview 2.4 Creating JollyFarm User’s Questions 2.5 Allow Yourself to Change Directions 2.6 Defining Your Target 2.7 Narrowing Down the Users 2.8 Define What Should Be Built First 2.9 Understanding Software Requirements 2.10 Requirements Are Tricky! 2.11 Defining Requirements of the JollyFarm Ecommerce 2.12 Chapter Summary 2.13 Further Reading Chapter 3: You Are Surrounded by This World! 3.1 Two Sides of the Same Coin 3.2 Accessing the Internet 3.2.1 The Logic Behind Web Addresses 3.3 Where Does Software Exist on the Internet? 3.4 Software and Programming 3.5 When Code Is Working 3.6 From the Developer’s Computer to the User 3.7 Chapter Summary 3.8 Further Reading Part II: Let’s Get Technical! Chapter 4: What Happens When You Open a Website? 4.1 Finding a Single Computer in the Web 4.2 Communication over the Internet 4.2.1 The Required Part 4.2.2 Where We Send Data 4.2.3 Information About Information! 4.3 Protecting Your Data: Why the S in HTTPS Means So Much 4.4 Status Code: Discover What Happened with Three Numbers 4.5 What Kind of Website Is Our Landing Page? 4.6 Dynamic Systems 4.7 An Introduction to Software Architecture 4.8 Chapter Summary 4.9 Further Reading Chapter 5: Frontend: The Tip of the Iceberg 5.1 A Web Page Skeleton 5.1.1 HTML Is a Tree! 5.1.2 The Importance of HTML in Accessibility 5.1.3 HTML Is the Base of It All! 5.2 Let’s Add Color! 5.3 Let’s Add Movement! 5.4 Don’t Need to Reinvent the Wheel: Use Frameworks 5.5 Intelligent Clients 5.6 Mobile Technologies 5.7 JollyFarm’s Frontend 5.8 Chapter Summary 5.9 Further Reading Chapter 6: Backend: What’s Underwater 6.1 A Closer Look on Servers 6.2 What Happens When We Create a New Product? 6.3 The Concept of APIs 6.4 Databases 6.4.1 Relational Databases 6.4.2 Retrieving Information on Relational Databases 6.4.3 Nonrelational Databases 6.4.4 Which One to Choose? 6.5 Chapter Summary 6.6 Further Reading Part III: Working on Software Projects Chapter 7: The Big Questions While Starting a Project 7.1 Which Programming Language? 7.1.1 Why So Many Programming Languages Exist? 7.1.2 Programming Languages Can Be More or Less Strict 7.1.3 Programming Language Beyond the Scopes of Your Project 7.1.4 I Still Don’t Know Which One to Use! 7.2 Which Framework? 7.2.1 What a Framework Can Do? 7.3 Which Architecture? 7.3.1 You’ll Never Get a 100% 7.4 Which Database? 7.5 Don’t Give Answers to Questions That Weren’t Made 7.6 Let’s Answer Some of These Questions! 7.7 Chapter Summary 7.8 Further Reading Chapter 8: How Do We Build Software? 8.1 The Old Way 8.2 There Must Be a Better Way! 8.3 Shared Strategies 8.3.1 User Stories 8.3.2 Kanban Board 8.3.3 Daily Standups 8.3.4 Pair Programming 8.3.5 Continuous Delivery 8.4 Beyond Agile 8.5 Chapter Summary 8.6 Further Reading Part IV: What You Should Consider When Building Software Chapter 9: Building Today Thinking of Tomorrow 9.1 But What Does It Mean to Have a “Good” Code? 9.2 Naming Is Everything! 9.3 Software Is Made of Small Pieces 9.4 A Second Pair of Eyes: The Importance of Code Review 9.5 Versioning 9.6 Documentation 9.6.1 Documentation at Code Level 9.6.2 Documentation at Development Level 9.6.3 Documentation at a User Level 9.7 Maintainability at JollyFarm 9.8 Chapter Summary 9.9 Further Reading Chapter 10: Guaranteeing Software Quality 10.1 What Does It Mean to Test a Software? 10.2 Is There Anything Else? 10.3 Beyond Unit Tests 10.4 Tests Save Money 10.5 Tests Also Increase Code Quality 10.6 When to Test? 10.7 Tests As the Driver of Development 10.8 Testing Performance 10.9 JollyFarm Is Launched! 10.10 Chapter Summary 10.11 Further Reading Chapter 11: Working 24/7: Making Software Available at All Times 11.1 What Indicates a Reliable System? 11.2 Monitoring Is the Basis of Reliable Systems 11.3 What Happens When Something Is Wrong 11.4 What Can Go Wrong? 11.4.1 Hardware Faults 11.4.2 Software Errors 11.4.3 Human Errors 11.5 Some Strategies for Safer Deploys 11.6 Using Architecture to Prevent Known Points of Failure 11.7 Can We Avoid a Crisis? 11.8 Chapter Summary 11.9 Further Reading Chapter 12: The Monster Behind the Door: Technical Debt and Legacy Code 12.1 Technical Debt 12.2 Technical Debt Is the Same As “Bad Code”? 12.3 When We Go Bankrupt: Legacy System 12.4 Why Can’t We Just Move Away from a Legacy System? 12.5 When you have to work with a Legacy System 12.6 Fighting Back on Poor Quality 12.7 Learning from Legacy 12.8 What’s Next? 12.9 Chapter Summary 12.10 Further Reading Part V: Human Aspects of Building Software Chapter 13: A Deeper Look to What Influence Software Teams 13.1 On-Call Rotation 13.2 External and Unpredicted Work 13.3 Developer Tools 13.4 Interruptions 13.5 Interviews 13.6 Communication 13.7 Timezones Are Hard 13.8 Changing Priorities 13.9 Glue Work 13.10 Team Diversity 13.11 Team Moral and Mental Health 13.12 What Now? 13.13 Chapter Summary 13.14 Further Reading Chapter 14: The Role of the Developer 14.1 What Does a Developer Do Anyway? 14.2 Which Level Am I? 14.3 The Fallacy of the Superhero Developer 14.4 The “Soft” Skills 14.5 Where Are the Juniors? 14.6 The Ideal Team 14.7 Chapter Summary 14.8 Further Reading Chapter 15: Building Software Is More Than Developers 15.1 The Role of the Managers 15.1.1 The Developer Manager 15.1.2 The Product Manager 15.1.3 The Project Manager 15.2 The Role of the Business Specialist 15.3 The Role of the Designer 15.4 The Role of the Data Analyst 15.5 The Role of the Customer Support 15.6 The Role of the Technical Writer 15.7 The Role of... You! 15.8 Further Reading Glossary Acronyms Index Software is everywhere, but despite being so common and useful, it remains magical and mysterious to many. Still, more and more people are finding themselves working for tech companies, or with an array of software products, services, and tools. This can segregate those who understand tech from those that don't. But it doesn't have to be this way. This book aims to bring these two worlds closer together, allowing people to learn basic concepts of software development in a casual and straight-forward way. Assuming no previous technical knowledge, you'll embark on a journey where you can understand and build a new software project from scratch until it is an advanced product with multiple users. A Friendly Guide to Software Development makes technical concepts broadly available and easy to understand. Imagine moving from a "traditional" company and suddenly finding yourself in one where software is the main product or is a foundational component to it. One is often left to wade through the infinite concepts while still doing their actual jobs. This book closes that gap. In doing so, you'll be able to achieve better communication, which will undoubtedly lead to better working relationships, a better working environment, and ultimately better software. What You'll Learn See how a new software project is created Examine the basics of software development and architecture Know which questions to ask to avoid potential problems and pitfalls Start using and building software projects Who This Book Is For Those without a traditional technical background people like business and project managers who need to work closely with software developers and teams People who are interested in building a software system but don't know where to start. Programmers who want to jump to development but have no experience in the industry and its common concepts Software is everywhere, but despite being so common and useful, it remains magical and mysterious to many. Still, more and more people are finding themselves working for tech companies, or with an array of software products, services, and tools. This can segregate those who understand tech from those that don't. But it doesn't have to be this way. This book aims to bring these two worlds closer together, allowing people to learn basic concepts of software development in a casual and straight-forward way. Assuming no previous technical knowledge, you'll embark on a journey where you can understand and build a new software project from scratch until it is an advanced product with multiple users. Imagine moving from a “traditional” company and suddenly finding yourself in one where software is the main product or is a foundational component to it. One is often left to wade through the infinite concepts while still doing their actual jobs. This book closes that gap, improving communication between technical and non-technical parties. A Friendly Guide to Software Development makes technical concepts broadly available and easy to understand. In doing so, you'll be able to achieve better communication, which will undoubtedly lead to better working relationships, a better working environment, and ultimately better software. You will: See how a new software project is created Examine the basics of software development and architecture Know which questions to ask to avoid potential problems and pitfalls Start using and building software projects
دانلود کتاب A friendly guide to software development : what you should know without being a developer