Author: William Buchanan
Publisher: Elsevier
ISBN: 0080541372
Category : Computers
Languages : en
Pages : 689
Book Description
Specialisation in software has become a thing of the past. With the move towards graphical user interface programming, engineers must have a sound knowledge of several programming languages and for the first time most of the main technical languages are introduced in a single volume.All the example programs included relate to real life applications to provide a long needed reference that students will find invaluable throughout their studies, and a definitive guide for professional developers requiring an insight into other languages. Using C++ and Pascal to provide a basic grounding in software development the author then goes on to introduce more advanced concepts such as object-orientated design through the development of C++. Sections on Visual Basic and 80X86 Assembly Language follow before Java, Windows, NT and DOS are introduced, finishing with an overview of the UNIX system.
Software Development for Engineers
Author: William Buchanan
Publisher: Elsevier
ISBN: 0080541372
Category : Computers
Languages : en
Pages : 689
Book Description
Specialisation in software has become a thing of the past. With the move towards graphical user interface programming, engineers must have a sound knowledge of several programming languages and for the first time most of the main technical languages are introduced in a single volume.All the example programs included relate to real life applications to provide a long needed reference that students will find invaluable throughout their studies, and a definitive guide for professional developers requiring an insight into other languages. Using C++ and Pascal to provide a basic grounding in software development the author then goes on to introduce more advanced concepts such as object-orientated design through the development of C++. Sections on Visual Basic and 80X86 Assembly Language follow before Java, Windows, NT and DOS are introduced, finishing with an overview of the UNIX system.
Publisher: Elsevier
ISBN: 0080541372
Category : Computers
Languages : en
Pages : 689
Book Description
Specialisation in software has become a thing of the past. With the move towards graphical user interface programming, engineers must have a sound knowledge of several programming languages and for the first time most of the main technical languages are introduced in a single volume.All the example programs included relate to real life applications to provide a long needed reference that students will find invaluable throughout their studies, and a definitive guide for professional developers requiring an insight into other languages. Using C++ and Pascal to provide a basic grounding in software development the author then goes on to introduce more advanced concepts such as object-orientated design through the development of C++. Sections on Visual Basic and 80X86 Assembly Language follow before Java, Windows, NT and DOS are introduced, finishing with an overview of the UNIX system.
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
Modern Software Engineering
Author: David Farley
Publisher: Addison-Wesley Professional
ISBN: 0137314868
Category : Computers
Languages : en
Pages : 479
Book Description
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Publisher: Addison-Wesley Professional
ISBN: 0137314868
Category : Computers
Languages : en
Pages : 479
Book Description
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
How to Engineer Software
Author: Steve Tockey
Publisher: John Wiley & Sons
ISBN: 1119546672
Category : Computers
Languages : en
Pages : 1188
Book Description
A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software.
Publisher: John Wiley & Sons
ISBN: 1119546672
Category : Computers
Languages : en
Pages : 1188
Book Description
A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software.
Become an Effective Software Engineering Manager
Author: James Stanier
Publisher: Pragmatic Bookshelf
ISBN: 9781680507249
Category :
Languages : en
Pages : 398
Book Description
Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.
Publisher: Pragmatic Bookshelf
ISBN: 9781680507249
Category :
Languages : en
Pages : 398
Book Description
Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.
Skills of a Successful Software Engineer
Author: Fernando Doglio
Publisher: Simon and Schuster
ISBN: 1638350647
Category : Computers
Languages : en
Pages : 190
Book Description
Skills to grow from a solo coder into a productive member of a software development team, with seasoned advice on everything from refactoring to acing an interview. In Skills of a Successful Software Engineer you will learn: The skills you need to succeed on a software development team Best practices for writing maintainable code Testing and commenting code for others to read and use Refactoring code you didn’t write What to expect from a technical interview process How to be a tech leader Getting around gatekeeping in the tech community Skills of a Successful Software Engineer is a best practices guide for succeeding on a software development team. The book reveals how to optimize both your code and your career, from achieving a good work-life balance to writing the kind of bug-free code delivered by pros. You’ll master essential skills that you might not have learned as a solo coder, including meaningful code commenting, unit testing, and using refactoring to speed up feature delivery. Timeless advice on acing interviews and setting yourself up for leadership will help you throughout your career. Crack open this one-of-a-kind guide, and you’ll soon be working in the professional manner that software managers expect. About the technology Success as a software engineer requires technical knowledge, flexibility, and a lot of persistence. Knowing how to work effectively with other developers can be the difference between a fulfilling career and getting stuck in a life-sucking rut. This brilliant book guides you through the essential skills you need to survive and thrive on a software engineering team. About the book Skills of a Successful Software Engineer presents techniques for working on software projects collaboratively. In it, you’ll build technical skills, such as writing simple code, effective testing, and refactoring, that are essential to creating software on a team. You’ll also explore soft skills like how to keep your knowledge up to date, interacting with your team leader, and even how to get a job you’ll love. What's inside Best practices for writing and documenting maintainable code Testing and refactoring code you didn’t write What to expect in a technical interview How to thrive on a development team About the reader For working and aspiring software engineers. About the author Fernando Doglio has twenty years of experience in the software industry, where he has worked on everything from web development to big data. Table of Contents 1 Becoming a successful software engineer 2 Writing code everyone can read 3 Unit testing: delivering code that works 4 Refactoring existing code (or Refactoring doesn’t mean rewriting code) 5 Tackling the personal side of coding 6 Interviewing for your place on the team 7 Working as part of a team 8 Understanding team leadership
Publisher: Simon and Schuster
ISBN: 1638350647
Category : Computers
Languages : en
Pages : 190
Book Description
Skills to grow from a solo coder into a productive member of a software development team, with seasoned advice on everything from refactoring to acing an interview. In Skills of a Successful Software Engineer you will learn: The skills you need to succeed on a software development team Best practices for writing maintainable code Testing and commenting code for others to read and use Refactoring code you didn’t write What to expect from a technical interview process How to be a tech leader Getting around gatekeeping in the tech community Skills of a Successful Software Engineer is a best practices guide for succeeding on a software development team. The book reveals how to optimize both your code and your career, from achieving a good work-life balance to writing the kind of bug-free code delivered by pros. You’ll master essential skills that you might not have learned as a solo coder, including meaningful code commenting, unit testing, and using refactoring to speed up feature delivery. Timeless advice on acing interviews and setting yourself up for leadership will help you throughout your career. Crack open this one-of-a-kind guide, and you’ll soon be working in the professional manner that software managers expect. About the technology Success as a software engineer requires technical knowledge, flexibility, and a lot of persistence. Knowing how to work effectively with other developers can be the difference between a fulfilling career and getting stuck in a life-sucking rut. This brilliant book guides you through the essential skills you need to survive and thrive on a software engineering team. About the book Skills of a Successful Software Engineer presents techniques for working on software projects collaboratively. In it, you’ll build technical skills, such as writing simple code, effective testing, and refactoring, that are essential to creating software on a team. You’ll also explore soft skills like how to keep your knowledge up to date, interacting with your team leader, and even how to get a job you’ll love. What's inside Best practices for writing and documenting maintainable code Testing and refactoring code you didn’t write What to expect in a technical interview How to thrive on a development team About the reader For working and aspiring software engineers. About the author Fernando Doglio has twenty years of experience in the software industry, where he has worked on everything from web development to big data. Table of Contents 1 Becoming a successful software engineer 2 Writing code everyone can read 3 Unit testing: delivering code that works 4 Refactoring existing code (or Refactoring doesn’t mean rewriting code) 5 Tackling the personal side of coding 6 Interviewing for your place on the team 7 Working as part of a team 8 Understanding team leadership
What Every Engineer Should Know about Software Engineering
Author: Philip A. Laplante
Publisher: CRC Press
ISBN: 1420006746
Category : Computers
Languages : en
Pages : 330
Book Description
Do you Use a computer to perform analysis or simulations in your daily work? Write short scripts or record macros to perform repetitive tasks? Need to integrate off-the-shelf software into your systems or require multiple applications to work together? Find yourself spending too much time working the kink
Publisher: CRC Press
ISBN: 1420006746
Category : Computers
Languages : en
Pages : 330
Book Description
Do you Use a computer to perform analysis or simulations in your daily work? Write short scripts or record macros to perform repetitive tasks? Need to integrate off-the-shelf software into your systems or require multiple applications to work together? Find yourself spending too much time working the kink
Building Mobile Apps at Scale
Author: Gergely Orosz
Publisher:
ISBN: 9781638778868
Category :
Languages : en
Pages : 238
Book Description
While there is a lot of appreciation for backend and distributed systems challenges, there tends to be less empathy for why mobile development is hard when done at scale. This book collects challenges engineers face when building iOS and Android apps at scale, and common ways to tackle these. By scale, we mean having numbers of users in the millions and being built by large engineering teams. For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering. The book covers iOS and Android mobile app challenges on these dimensions: Challenges due to the unique nature of mobile applications compared to the web, and to the backend. App complexity challenges. How do you deal with increasingly complicated navigation patterns? What about non-deterministic event combinations? How do you localize across several languages, and how do you scale your automated and manual tests? Challenges due to large engineering teams. The larger the mobile team, the more challenging it becomes to ensure a consistent architecture. If your company builds multiple apps, how do you balance not rewriting everything from scratch while moving at a fast pace, over waiting on "centralized" teams? Cross-platform approaches. The tooling to build mobile apps keeps changing. New languages, frameworks, and approaches that all promise to address the pain points of mobile engineering keep appearing. But which approach should you choose? Flutter, React Native, Cordova? Native apps? Reuse business logic written in Kotlin, C#, C++ or other languages? What engineering approaches do "world-class" mobile engineering teams choose in non-functional aspects like code quality, compliance, privacy, compliance, or with experimentation, performance, or app size?
Publisher:
ISBN: 9781638778868
Category :
Languages : en
Pages : 238
Book Description
While there is a lot of appreciation for backend and distributed systems challenges, there tends to be less empathy for why mobile development is hard when done at scale. This book collects challenges engineers face when building iOS and Android apps at scale, and common ways to tackle these. By scale, we mean having numbers of users in the millions and being built by large engineering teams. For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering. The book covers iOS and Android mobile app challenges on these dimensions: Challenges due to the unique nature of mobile applications compared to the web, and to the backend. App complexity challenges. How do you deal with increasingly complicated navigation patterns? What about non-deterministic event combinations? How do you localize across several languages, and how do you scale your automated and manual tests? Challenges due to large engineering teams. The larger the mobile team, the more challenging it becomes to ensure a consistent architecture. If your company builds multiple apps, how do you balance not rewriting everything from scratch while moving at a fast pace, over waiting on "centralized" teams? Cross-platform approaches. The tooling to build mobile apps keeps changing. New languages, frameworks, and approaches that all promise to address the pain points of mobile engineering keep appearing. But which approach should you choose? Flutter, React Native, Cordova? Native apps? Reuse business logic written in Kotlin, C#, C++ or other languages? What engineering approaches do "world-class" mobile engineering teams choose in non-functional aspects like code quality, compliance, privacy, compliance, or with experimentation, performance, or app size?
The Passionate Programmer
Author: Chad Fowler
Publisher: Pragmatic Bookshelf
ISBN: 1680505106
Category : Business & Economics
Languages : en
Pages : 184
Book Description
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
Publisher: Pragmatic Bookshelf
ISBN: 1680505106
Category : Business & Economics
Languages : en
Pages : 184
Book Description
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
Guide to the Software Engineering Body of Knowledge (Swebok(r))
Author: IEEE Computer Society
Publisher:
ISBN: 9780769551661
Category : Computer software
Languages : en
Pages : 348
Book Description
In the Guide to the Software Engineering Body of Knowledge (SWEBOK(R) Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society's responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide's 15 knowledge areas summarize generally accepted topics and list references for detailed information. The editors for Version 3.0 of the SWEBOK(R) Guide are Pierre Bourque (Ecole de technologie superieure (ETS), Universite du Quebec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).
Publisher:
ISBN: 9780769551661
Category : Computer software
Languages : en
Pages : 348
Book Description
In the Guide to the Software Engineering Body of Knowledge (SWEBOK(R) Guide), the IEEE Computer Society establishes a baseline for the body of knowledge for the field of software engineering, and the work supports the Society's responsibility to promote the advancement of both theory and practice in this field. It should be noted that the Guide does not purport to define the body of knowledge but rather to serve as a compendium and guide to the knowledge that has been developing and evolving over the past four decades. Now in Version 3.0, the Guide's 15 knowledge areas summarize generally accepted topics and list references for detailed information. The editors for Version 3.0 of the SWEBOK(R) Guide are Pierre Bourque (Ecole de technologie superieure (ETS), Universite du Quebec) and Richard E. (Dick) Fairley (Software and Systems Engineering Associates (S2EA)).