Author: Nathaniel S. Borenstein
Publisher: Princeton University Press
ISBN: 1400862531
Category : Mathematics
Languages : en
Pages : 201
Book Description
Through a set of lively anecdotes and essays, Nathaniel Borenstein traces the divergence between the fields of software engineering and user-centered software design, and attempts to reconcile the needs of people in both camps. Originally published in 1991. The Princeton Legacy Library uses the latest print-on-demand technology to again make available previously out-of-print books from the distinguished backlist of Princeton University Press. These editions preserve the original texts of these important books while presenting them in durable paperback and hardcover editions. The goal of the Princeton Legacy Library is to vastly increase access to the rich scholarly heritage found in the thousands of books published by Princeton University Press since its founding in 1905.
Programming as if People Mattered
Author: Nathaniel S. Borenstein
Publisher: Princeton University Press
ISBN: 1400862531
Category : Mathematics
Languages : en
Pages : 201
Book Description
Through a set of lively anecdotes and essays, Nathaniel Borenstein traces the divergence between the fields of software engineering and user-centered software design, and attempts to reconcile the needs of people in both camps. Originally published in 1991. The Princeton Legacy Library uses the latest print-on-demand technology to again make available previously out-of-print books from the distinguished backlist of Princeton University Press. These editions preserve the original texts of these important books while presenting them in durable paperback and hardcover editions. The goal of the Princeton Legacy Library is to vastly increase access to the rich scholarly heritage found in the thousands of books published by Princeton University Press since its founding in 1905.
Publisher: Princeton University Press
ISBN: 1400862531
Category : Mathematics
Languages : en
Pages : 201
Book Description
Through a set of lively anecdotes and essays, Nathaniel Borenstein traces the divergence between the fields of software engineering and user-centered software design, and attempts to reconcile the needs of people in both camps. Originally published in 1991. The Princeton Legacy Library uses the latest print-on-demand technology to again make available previously out-of-print books from the distinguished backlist of Princeton University Press. These editions preserve the original texts of these important books while presenting them in durable paperback and hardcover editions. The goal of the Princeton Legacy Library is to vastly increase access to the rich scholarly heritage found in the thousands of books published by Princeton University Press since its founding in 1905.
A Small Matter of Programming
Author: Bonnie A. Nardi
Publisher: MIT Press
ISBN: 9780262140539
Category : Computers
Languages : en
Pages : 196
Book Description
Analyzes cognitive, social and technical issues of end user programming. Drawing on empirical research on existing end user systems, this text examines the importance of task-specific programming languages, visual application frameworks and collaborative work practices for end user computing.
Publisher: MIT Press
ISBN: 9780262140539
Category : Computers
Languages : en
Pages : 196
Book Description
Analyzes cognitive, social and technical issues of end user programming. Drawing on empirical research on existing end user systems, this text examines the importance of task-specific programming languages, visual application frameworks and collaborative work practices for end user computing.
Coders at Work
Author: Peter Seibel
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
Book Description
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed: Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow Joe Armstrong: Inventor of Erlang Joshua Bloch: Author of the Java collections framework, now at Google Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger Douglas Crockford: JSON founder, JavaScript architect at Yahoo! L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal Dan Ingalls: Smalltalk implementor and designer Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler Donald Knuth: Author of The Art of Computer Programming and creator of TeX Peter Norvig: Director of Research at Google and author of the standard text on AI Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress Ken Thompson: Inventor of UNIX Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
Book Description
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed: Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow Joe Armstrong: Inventor of Erlang Joshua Bloch: Author of the Java collections framework, now at Google Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger Douglas Crockford: JSON founder, JavaScript architect at Yahoo! L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal Dan Ingalls: Smalltalk implementor and designer Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler Donald Knuth: Author of The Art of Computer Programming and creator of TeX Peter Norvig: Director of Research at Google and author of the standard text on AI Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress Ken Thompson: Inventor of UNIX Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker
Small is Beautiful
Author: E. F. Schumacher
Publisher:
ISBN:
Category :
Languages : en
Pages : 255
Book Description
Publisher:
ISBN:
Category :
Languages : en
Pages : 255
Book Description
Agile Software Development - An Overview
Author: K Amuthabala
Publisher: MileStone Research Publications
ISBN: 9359963372
Category : Computers
Languages : en
Pages : 224
Book Description
This textbook has been meticulously crafted with a singular purpose: offering a comprehensive and practical guide to Agile Software Development. In the forthcoming chapters, we will delve into theintricacies of Agile methodologies, explore their underlying principles, and investigate the compelling reasons behind their prominence in the software development industry. Section I: Introduction to Iterative Development, Evolutionary, and Adaptive Development, Our journeybegins with an exploration of fundamental concepts: Iterative Development, Evolutionary Development,and Adaptive Development. These approaches break free from conventional linear development processesand prioritize flexibility, risk management, and client-driven planning. This chapter will discuss the meritsof time-boxed iterative development, evolutionary requirements analysis, incremental delivery, and theultimate goal of evolutionary delivery. Section II: Serves as a bridge between theory and practice within the Agile realm. Here, we define AgileDevelopment, categorize various methodologies, and delve deep into the Agile Manifesto and its guidingprinciples. Additionally, we explore Agile project management, emphasizing the crucial role ofcommunication, feedback, and the human element. The chapter culminates in an exploration of specificAgile methods and a balanced discussion of the ongoing discourse surrounding "Agile Hype." Section III: Motivation and Evidence, Understanding the motivation underpinning Agile is fundamental toappreciating its significance. In Chapter 3, we illuminate the imperatives for change in software projectsand how iterative development addresses these challenges. We critique the limitations of the traditionalWaterfall model and provide a comprehensive review of supporting evidence, including research findings,historical project data, and expert opinions, all converging to fortify the case for iterative development. Section IV: Fundamentals of DevOps and Technical View, Agile methodologies extend beyond softwaredevelopment into the realm of DevOps. Chapter 4 introduces the foundational principles of DevOps and itspivotal role in contemporary development practices. We delve into the building blocks of DevOps, thevital metrics and measurement perspective, and the process view that fosters seamless collaborationbetween development and operations teams. The section IV concludes with an in-depth exploration of thetechnical facets, including topics like automatic releasing, infrastructure as code, and specification byexample, enriched by real-world case studies. Upon completing this textbook, you will comprehensively comprehend Agile Software Development andDevOps. Whether you are a student embarking on a career in software development or an industryprofessional looking to stay at the forefront of the field, the knowledge and insights provided here will equip you with the tools to excel in the dynamic world of software development. Let us embark on this enlightening journey together, embracing agility, adaptability, and excellence in software development.
Publisher: MileStone Research Publications
ISBN: 9359963372
Category : Computers
Languages : en
Pages : 224
Book Description
This textbook has been meticulously crafted with a singular purpose: offering a comprehensive and practical guide to Agile Software Development. In the forthcoming chapters, we will delve into theintricacies of Agile methodologies, explore their underlying principles, and investigate the compelling reasons behind their prominence in the software development industry. Section I: Introduction to Iterative Development, Evolutionary, and Adaptive Development, Our journeybegins with an exploration of fundamental concepts: Iterative Development, Evolutionary Development,and Adaptive Development. These approaches break free from conventional linear development processesand prioritize flexibility, risk management, and client-driven planning. This chapter will discuss the meritsof time-boxed iterative development, evolutionary requirements analysis, incremental delivery, and theultimate goal of evolutionary delivery. Section II: Serves as a bridge between theory and practice within the Agile realm. Here, we define AgileDevelopment, categorize various methodologies, and delve deep into the Agile Manifesto and its guidingprinciples. Additionally, we explore Agile project management, emphasizing the crucial role ofcommunication, feedback, and the human element. The chapter culminates in an exploration of specificAgile methods and a balanced discussion of the ongoing discourse surrounding "Agile Hype." Section III: Motivation and Evidence, Understanding the motivation underpinning Agile is fundamental toappreciating its significance. In Chapter 3, we illuminate the imperatives for change in software projectsand how iterative development addresses these challenges. We critique the limitations of the traditionalWaterfall model and provide a comprehensive review of supporting evidence, including research findings,historical project data, and expert opinions, all converging to fortify the case for iterative development. Section IV: Fundamentals of DevOps and Technical View, Agile methodologies extend beyond softwaredevelopment into the realm of DevOps. Chapter 4 introduces the foundational principles of DevOps and itspivotal role in contemporary development practices. We delve into the building blocks of DevOps, thevital metrics and measurement perspective, and the process view that fosters seamless collaborationbetween development and operations teams. The section IV concludes with an in-depth exploration of thetechnical facets, including topics like automatic releasing, infrastructure as code, and specification byexample, enriched by real-world case studies. Upon completing this textbook, you will comprehensively comprehend Agile Software Development andDevOps. Whether you are a student embarking on a career in software development or an industryprofessional looking to stay at the forefront of the field, the knowledge and insights provided here will equip you with the tools to excel in the dynamic world of software development. Let us embark on this enlightening journey together, embracing agility, adaptability, and excellence in software development.
The Elements of Programming Style
Author: Brian W. Kernighan
Publisher: McGraw-Hill Companies
ISBN:
Category : Computers
Languages : en
Pages : 172
Book Description
Covers Expression, Structure, Common Blunders, Documentation, & Structured Programming Techniques
Publisher: McGraw-Hill Companies
ISBN:
Category : Computers
Languages : en
Pages : 172
Book Description
Covers Expression, Structure, Common Blunders, Documentation, & Structured Programming Techniques
Software Engineering at Google
Author: Titus Winters
Publisher: O'Reilly Media
ISBN: 1492082767
Category : Computers
Languages : en
Pages : 602
Book Description
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
Publisher: O'Reilly Media
ISBN: 1492082767
Category : Computers
Languages : en
Pages : 602
Book Description
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldâ??s leading practitioners construct and maintain software. This book covers Googleâ??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youâ??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
Code Simplicity
Author: Max Kanat-Alexander
Publisher: "O'Reilly Media, Inc."
ISBN: 1449334695
Category : Computers
Languages : en
Pages : 85
Book Description
Good software design is simple and easy to understand. Unfortunately, the average computer program today is so complex that no one could possibly comprehend how all the code works. This concise guide helps you understand the fundamentals of good design through scientific laws—principles you can apply to any programming language or project from here to eternity. Whether you’re a junior programmer, senior software engineer, or non-technical manager, you’ll learn how to create a sound plan for your software project, and make better decisions about the pattern and structure of your system. Discover why good software design has become the missing science Understand the ultimate purpose of software and the goals of good design Determine the value of your design now and in the future Examine real-world examples that demonstrate how a system changes over time Create designs that allow for the most change in the environment with the least change in the software Make easier changes in the future by keeping your code simpler now Gain better knowledge of your software’s behavior with more accurate tests
Publisher: "O'Reilly Media, Inc."
ISBN: 1449334695
Category : Computers
Languages : en
Pages : 85
Book Description
Good software design is simple and easy to understand. Unfortunately, the average computer program today is so complex that no one could possibly comprehend how all the code works. This concise guide helps you understand the fundamentals of good design through scientific laws—principles you can apply to any programming language or project from here to eternity. Whether you’re a junior programmer, senior software engineer, or non-technical manager, you’ll learn how to create a sound plan for your software project, and make better decisions about the pattern and structure of your system. Discover why good software design has become the missing science Understand the ultimate purpose of software and the goals of good design Determine the value of your design now and in the future Examine real-world examples that demonstrate how a system changes over time Create designs that allow for the most change in the environment with the least change in the software Make easier changes in the future by keeping your code simpler now Gain better knowledge of your software’s behavior with more accurate tests
Mazes for Programmers
Author: Jamis Buck
Publisher: Pragmatic Bookshelf
ISBN: 1680503960
Category : Computers
Languages : en
Pages : 385
Book Description
Unlock the secrets to creating random mazes! Whether you're a game developer, an algorithm connoisseur, or simply in search of a new puzzle, you're about to level up. Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, fold them into cubes, and wrap them around spheres. Stretch them into other dimensions, squeeze them into arbitrary outlines, and tile them in a dizzying variety of ways. From twelve little algorithms, you'll discover a vast reservoir of ideas and inspiration. From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job. You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces. Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities! What You Need: The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics.
Publisher: Pragmatic Bookshelf
ISBN: 1680503960
Category : Computers
Languages : en
Pages : 385
Book Description
Unlock the secrets to creating random mazes! Whether you're a game developer, an algorithm connoisseur, or simply in search of a new puzzle, you're about to level up. Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, fold them into cubes, and wrap them around spheres. Stretch them into other dimensions, squeeze them into arbitrary outlines, and tile them in a dizzying variety of ways. From twelve little algorithms, you'll discover a vast reservoir of ideas and inspiration. From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job. You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces. Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities! What You Need: The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics.
Agile and Iterative Development
Author: Craig Larman
Publisher: Addison-Wesley Professional
ISBN: 9780131111554
Category : Computers
Languages : en
Pages : 364
Book Description
This is the definitive guide for managers and students to agile and iterativedevelopment methods: what they are, how they work, how to implement them, andwhy they should.
Publisher: Addison-Wesley Professional
ISBN: 9780131111554
Category : Computers
Languages : en
Pages : 364
Book Description
This is the definitive guide for managers and students to agile and iterativedevelopment methods: what they are, how they work, how to implement them, andwhy they should.