Koncocoo

Best Software Design, Testing & Engineering

Cracking the Coding Interview: 189 Programming Questions and Solutions
And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions. Extensive coverage of essential topics, such as big O time, data structures, and core algorithms. At Google, she interviewed hundreds of software engineers and evaluated thousands of hiring packets on the hiring committee.
Reviews
"The DP solutions in this book are not actually tabular DP formulations--I recommend looking at the problems here http://people.cs.clemson.edu/~bcdean/dp_practice/ (Brian Dean's Dynamic Programming Practice Problems)."
"The main reason I bought the book is that it closely reflects the status quo of the technical interviews in large tech companies. For many of the problems, unless you know the solutions beforehand, there is no way you can code up a decent one within an hour. The book mentions an example, a good candidate whom the author knows very well but just cannot pass the coding interviews. I am guessing the assumption is that the coding problems we do nowadays on the interviews somehow achieve minimal number of false positives. One solution reduces the problem to checking for substrings. The author claims the time complexity is O(m+n), which I believe for Java is actually O(mn). Overall this is good book for preparing for coding interviews."
"I've been writing software for a long time, and I'm competent at my job. Because the presence of books like these create a vicious cycle: prep book gets written; interviewees study/memorize answers; interviewers make questions "harder" to compensate; new book gets written! The grinder continues to turn, and whereas ten years ago you could get a good job with some string or linked-list manipulation questions, now you've got people who consider whiteboard coding of topcoder elite questions to be the baseline measurement of programmer competency. You'll even run into lazy interviewers who take questions directly from this book, which is the ultimate in stupidity: if "good" candidates have prepared from the book, and you ask questions directly from the book, what are you really accomplishing, other than a test of memorization skills? I've seen it myself."
Find Best Price at Amazon
Clean Code: A Handbook of Agile Software Craftsmanship
Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it. Clean Code is divided into three parts. How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development. Robert C. “Uncle Bob” Martin has been a software professional since 1970 and an international software consultant since 1990.
Reviews
"What's sad about the reality is that 'bad code' will continually increase over time because people don't realize what 'bad code' can do in the long run."
"This is one of the books that I keep multiple copies of around my office for my developers to read."
"Best book for programming, period."
"I believe that mastery of computer programming involves mastery of both the science & the art of programming, and this is the go-to book for the art of computer programming."
"Although highly opinionated, applying the principles and practices here will make any programmer more productive than they might otherwise be."
"This is a great book for learning to write easy, readable, testable code."
"Great writing, with clear examples and explanations."
"Stop reading reviews, start reading the book."
Find Best Price at Amazon
Design Patterns: Elements of Reusable Object-Oriented Software
These texts cover the design of object-oriented software and examine how to investigate requirements, create solutions and then translate designs into code, showing developers how to make practical use of the most significant recent developments. Design Patterns is a modern classic in the literature of object-oriented development, offering timeless and elegant solutions to common problems in software design.
Reviews
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I find it very interesting and it goes into details for design patterns and re-use of code."
"I have been using this book as a reference on Design Pattern."
"This book will forever stand as a foundation of software development."
"OK, so this title has become almost a bible for the software industry - it seems to get cited by every other author I read, so I thought it was about time I actually bought a copy."
"Even though I program in ABAP, it helps me to translate the pattern into that code."
"Great book for who want to understand each pattern deeply."
"Excelent book."
Find Best Price at Amazon

Best Software Coding Theory

Error Control Coding (2nd Edition)
A reorganized and comprehensive major revision of a classic book, this edition provides a bridge between introductory digital communications and more advanced treatment of information theory. In 1970 the first author published a book entitled An Introduction to Error-Correcting Codes, which presented the fundamentals of the previous two decades of work covering both block and convolutional codes. Other major additions included a comprehensive treatment of the error-detecting capabilities of block codes and an emphasis on soft decoding methods for convolutional codes. Three of these new developments stand out in particular: the application of binary convolutional and block codes to expanded (nonbinary) modulation alphabets, the development of practical soft decoding methods for block codes, and the discovery of soft-input, soft-output iterative decoding techniques for block and convolutional codes. A total of seven new chapters covering these topics have been added to this edition: two chapters on trellis- and block-coded modulation techniques, three chapters on soft decoding methods for block codes, and two chapters on turbo and low-density parity-check codes and iterative decoding. Chapters 3 through 10 cover in detail the fundamentals of block codes. Chapter 8 provides detailed coverage of majority-logic decodable codes, including the important classes of Euclidean and projective geometry codes. Chapter 9 develops the theory of the trellis structure of block codes, laying the groundwork for the introduction of trellis-based soft decoding algorithms in Chapter 14. Chapter 10, written by Professor Marc Fossorier, presents comprehensive coverage of reliability-based soft decoding methods for block codes and includes an introduction to iterative decoding techniques. Convolutional codes are introduced in Chapter 11, with the encoder state diagram serving as the basis for studying code structure and distance properties. Chapter 12 covers optimum decoding methods for convolutional codes, with an emphasis on the (maximum likelihood) Viterbi decoding algorithm for both hard and soft demodulator decisions. Chapter 13 covers suboptimum decoding methods for convolutional codes, with an emphasis on sequential decoding, using both the ZJ (stack) and Fano algorithms, and majority-logic decoding. Chapter 14 extends the soft decoding methods introduced for convolutional codes in Chapter 12 to block codes. This completely new chapter makes extensive use of the block code trellis structures introduced in Chapter 9. Chapter 15 discusses the important concepts of code concatenation, multistage decoding, and code decomposition. Chapter 16 introduces the area of parallel concatenation, or turbo coding, and its related iterative decoding techniques based on the BCJR algorithm presented in Chapter 12. Both block (Chapter 20) and convolutional (Chapter 21) burst-error-correcting codes are included. As a text the book can be used as the basis for a two-semester sequence in coding theory, with Chapters 1-10 on the fundamentals of block codes covered in one semester and the remaining chapters on convolutional codes and advanced block code topics in a second semester. Another possibility is to cover Chapters 1-8 and 11-13, which include the fundamentals of both block and convolutional codes, in one semester, followed by a second semester devoted to advanced topics. A course on block codes comprise Chapters 1-7 plus selected topics from Chapters 8-10, 14-15, 17, 19-20, and 22, whereas Chapters 1, 11-13, 16, 18, and 21 provide a thorough coverage of convolutional codes.
Reviews
"There are so many codes included in this book, and I am not interested in 'knowing' every code in the world, so for me the real world application is more important then I can choose a certain code to learn if I have limited time."
"At last a readable book on this important subject."
"Lin & Costello is the standard book on error correcting codes for a reason."
"I had the previous version of this book as my text at USC."
"Delicious reading, and presented a delicate math."
"Great book."
Find Best Price at Amazon

Best Computer Localization

How to Create a Mind: The Secret of Human Thought Revealed
In How to Create a Mind , Kurzweil presents a provocative exploration of the most important project in human-machine civilization—reverse engineering the brain to understand precisely how it works and using that knowledge to create even more intelligent machines. “Kurzweil's vision of our super-enhanced future is completely sane and calmly reasoned, and his book should nicely smooth the path for the earth's robot overlords, who, it turns out, will be us.” —The New York Times “Kurzweil writes boldly and with a showman’s flair, expertly guiding the lay reader into deep thickets of neuroscience.” —Kate Tuttle, Boston Globe “This book is a breath of fresh air . His best so far!” —Marvin Minsky, MIT Toshiba Professor of Media Arts and Sciences; cofounder of the MIT Artificial Intelligence Lab; widely regarded as “the father of artificial intelligence” “If you ever wondered about how your mind works, read this book. This is an eloquent and thought-provoking work.” —Dean Kamen, physicist; inventor of the first wearable insulin pump, the HomeChoice dialysis machine, and the IBOT mobility system; founder of FIRST; recipient of the National Medal of Technology “One of the eminent AI pioneers, Ray Kurzweil, has created a new book to explain the true nature of intelligence, both biological and nonbiological. He provides a credible road map for achieving the goal of super-human intelligence, which will be necessary to solve the grand challenges of humanity.” —Raj Reddy, founding director, Robotics Institute, Carnegie Mellon University; recipient of the Turing Award from the Association for Computing Machinery “Ray Kurzweil pioneered artificial intelligence systems that could read print in any type style, synthesize speech and music, and understand speech. Just as Chanute’s Progress in Flying Machines ushered in the era of aviation over a century ago, this book is the harbinger of the coming revolution in artificial intelligence that will fulfill Kurzweil's own prophecies about it.” —Dileep George, AI scientist; pioneer of hierarchical models of the neocortex; cofounder of Numenta and Vicarious Systems.
Reviews
"How to Create a Mind: The Secret of Human Thought Revealed by Ray Kurzweil. "How to Create a Mind" is a very interesting book that presents the pattern recognition theory of mind (PRTM), which describes the basic algorithm of the neocortex (the region of the brain responsible for perception, memory, and critical thinking). It is the author's contention that the brain can be reverse engineered due to the power of its simplicity and such knowledge would allow us to create true artificial intelligence. The one and only, futurist, prize-winning scientist and author Ray Kurzweil takes the reader on a journey of the brain and the future of artificial intelligence. A Model of the Neocortex: The Pattern Recognition Theory of Mind, 4. The author's uncanny ability to make very difficult subjects accessible to the masses. Thought-provoking questions and answers based on a combination of sound science and educated speculation. The art of recreating brain processes in machines. The Pattern Recognition Theory of Mind (PRTM). The four key concepts of the universality and feasibility of computation and its applicability to our thinking. The concept of free will, "We are apparently very eager to explain and rationalize our actions, even when we didn't actually make the decisions that led to them." The laws of accelerating returns (LOAR), where it applies and why we should train ourselves to think exponentially. Some of it is understandable as it relates to the limitations of what we currently know but I feel that the book could have been reformatted into smaller chapters or subchapters. Technically I disagree with the notion that evolution always leads to more complexity. Regardless of your overall stance on the feasibility of artificial intelligence no one brings it like Ray Kurzweil. The author provides his basic thesis of how the brain works and a path to achieve true artificial intelligence and all that it implies. Fascinating in parts, bogs down in other sections but ultimately satisfying. Further suggestions: "Subliminal: How Your Unconscious Mind Rules Your Behavior" by Leonard Mlodinow, "The Believing Brain: From Ghosts and Gods to Politics and Conspiracies---How We Construct Beliefs and Reinforce Them as Truths" by Michael Shermer, "The Scientific American Brave New Brain: How Neuroscience, Brain-Machine Interfaces, Neuroimaging, Psychopharmacology, Epigenetics, the Internet, and ... and Enhancing the Future of Mental Power" by Judith Horstman, "The Blank Slate: The Modern Denial of Human Nature" by Steven Pinker, "Who's in Charge? : Free Will and the Science of the Brain" and "Human: The Science Behind What Makes Us Unique", by Michael S. Gazzaniga, "Hardwired Behavior: What Neuroscience Reveals about Morality 1st Edition by Tancredi, Laurence published by Cambridge University Press Paperback" by Laurence Tancredi, "Braintrust: What Neuroscience Tells Us about Morality" by Patricia S. Churchland, "The Myth of Free Will" by Cris Evatt, "SuperSense" by Bruce M. Hood and "The Brain and the Meaning of Life" by Paul Thagard."
"While I do not necessarily agree with Mr. Kurzweil's ideas and views nonetheless I am able to recognize and appreciate excellent work. has developed over the decades that has lead to the current state of achievements of A.I., which is the basis for his projections, rather than prediction."
"The first half of Kurzweil's book summarizes what is known about information processing by the human brain."
"Kurzweil of course embraces the eventual singularity this technology moves us closer to, as the next step in human evolution."
"Excellent book.Is difficult to imagine how far humanity can go in the quest of understanding itself."
"This should be required reading in college, freshman year !"
"Some parts of the book explain massive parallel computing, Markov models, natural language processing, which is what I was looking for."
"Anything by Ray Kurzweil will challenge your mind."
Find Best Price at Amazon

Best Computer Programming Logic

Starting Out with Programming Logic and Design (4th Edition)
In its Fourth Edition, Starting Out with Programming Logic and Design is a language-independent introductory programming book, ideal for a precursor programming course or the first unit of an introductory programming course. He is a highly acclaimed instructor who was previously selected as the North Carolina Community College “Teacher of the Year” and has received the Teaching Excellence award from the National Institute for Staff and Organizational Development. series includes introductory books covering Programming Logic and Design, C++, Java, Microsoft® Visual Basic, C#®, Python, and Alice, all published by Pearson.
Reviews
"After taking the time t read this cover to cover, I know feel much more confident in my skills and knowledge."
"great book for someone that is trying to learn how to become a programmer our engineer I will refer this book to anyone who is just starting out."
"Exactly what i needed for class!"
"Good book also this book helped me to gain more progress in my education through school."
"The author explain every detail."
"Wonderful resource."
Find Best Price at Amazon

Best Object-Oriented Design

Design Patterns: Elements of Reusable Object-Oriented Software
These texts cover the design of object-oriented software and examine how to investigate requirements, create solutions and then translate designs into code, showing developers how to make practical use of the most significant recent developments. Design Patterns is a modern classic in the literature of object-oriented development, offering timeless and elegant solutions to common problems in software design.
Reviews
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I find it very interesting and it goes into details for design patterns and re-use of code."
"I have been using this book as a reference on Design Pattern."
"This book will forever stand as a foundation of software development."
"OK, so this title has become almost a bible for the software industry - it seems to get cited by every other author I read, so I thought it was about time I actually bought a copy."
"Even though I program in ABAP, it helps me to translate the pattern into that code."
"Great book for who want to understand each pattern deeply."
"Excelent book."
Find Best Price at Amazon

Best Computer Performance Optimization

How Computers Work: The Evolution of Technology, 10th Edition (How It Works)
Having sold more than 2 million copies over its lifetime, How Computers Work is the definitive illustrated guide to the world of PCs and technology. Whether your interest is in business, gaming, digital photography, entertainment, communications, or security, you’ll learn how computing is evolving the way you live. Only the accomplished and award-winning team of writer Ron White and artist Tim Downs has the unique ability to meld descriptive text with one-of-a-kind visuals to fully explain how the electronic gear we depend on every day is made possible. Ron White has been writing How Computers Work for 20 years, during which time he’s also been executive editor at PC Computing magazine, BYTE.com, and groovyPost.com.
Reviews
"I have used this book series since 1999 to better explain computers and networks to beginning students and laypersons."
"This book gives 2 pages for each topic, and is great for me, or for a curious person just wanting to learn more about computers."
"When i first pick this book i expect to have a book with some nice pictures about how computers works, now that i{m reading the book i have to say that i become adicted to it."
"Great book if you want to learn about computer and computer programming, it lets you understand how things work and how you can do this stuff yourself."
"It is so easy to forget how technology evolved and the many amazing small advances that contributed to it."
"Great book with many neat illustrations."
"coming in December), but the quality of the kindle version is nowhere near to that of the printed version."
Find Best Price at Amazon

Best Computer Quality Control

Error Control Coding (2nd Edition)
A reorganized and comprehensive major revision of a classic book, this edition provides a bridge between introductory digital communications and more advanced treatment of information theory. In 1970 the first author published a book entitled An Introduction to Error-Correcting Codes, which presented the fundamentals of the previous two decades of work covering both block and convolutional codes. Other major additions included a comprehensive treatment of the error-detecting capabilities of block codes and an emphasis on soft decoding methods for convolutional codes. Three of these new developments stand out in particular: the application of binary convolutional and block codes to expanded (nonbinary) modulation alphabets, the development of practical soft decoding methods for block codes, and the discovery of soft-input, soft-output iterative decoding techniques for block and convolutional codes. A total of seven new chapters covering these topics have been added to this edition: two chapters on trellis- and block-coded modulation techniques, three chapters on soft decoding methods for block codes, and two chapters on turbo and low-density parity-check codes and iterative decoding. Chapters 3 through 10 cover in detail the fundamentals of block codes. Chapter 8 provides detailed coverage of majority-logic decodable codes, including the important classes of Euclidean and projective geometry codes. Chapter 9 develops the theory of the trellis structure of block codes, laying the groundwork for the introduction of trellis-based soft decoding algorithms in Chapter 14. Chapter 10, written by Professor Marc Fossorier, presents comprehensive coverage of reliability-based soft decoding methods for block codes and includes an introduction to iterative decoding techniques. Convolutional codes are introduced in Chapter 11, with the encoder state diagram serving as the basis for studying code structure and distance properties. Chapter 12 covers optimum decoding methods for convolutional codes, with an emphasis on the (maximum likelihood) Viterbi decoding algorithm for both hard and soft demodulator decisions. Chapter 13 covers suboptimum decoding methods for convolutional codes, with an emphasis on sequential decoding, using both the ZJ (stack) and Fano algorithms, and majority-logic decoding. Chapter 14 extends the soft decoding methods introduced for convolutional codes in Chapter 12 to block codes. This completely new chapter makes extensive use of the block code trellis structures introduced in Chapter 9. Chapter 15 discusses the important concepts of code concatenation, multistage decoding, and code decomposition. Chapter 16 introduces the area of parallel concatenation, or turbo coding, and its related iterative decoding techniques based on the BCJR algorithm presented in Chapter 12. Both block (Chapter 20) and convolutional (Chapter 21) burst-error-correcting codes are included. As a text the book can be used as the basis for a two-semester sequence in coding theory, with Chapters 1-10 on the fundamentals of block codes covered in one semester and the remaining chapters on convolutional codes and advanced block code topics in a second semester. Another possibility is to cover Chapters 1-8 and 11-13, which include the fundamentals of both block and convolutional codes, in one semester, followed by a second semester devoted to advanced topics. A course on block codes comprise Chapters 1-7 plus selected topics from Chapters 8-10, 14-15, 17, 19-20, and 22, whereas Chapters 1, 11-13, 16, 18, and 21 provide a thorough coverage of convolutional codes.
Reviews
"There are so many codes included in this book, and I am not interested in 'knowing' every code in the world, so for me the real world application is more important then I can choose a certain code to learn if I have limited time."
"At last a readable book on this important subject."
"Lin & Costello is the standard book on error correcting codes for a reason."
"I had the previous version of this book as my text at USC."
"Delicious reading, and presented a delicate math."
"Great book."
Find Best Price at Amazon

Best Computer Reengineering

The ITSM Process Design Guide: Developing, Reengineering, and Improving IT Service Management
--Details and deconstructs ITSM process components, models, and deliverables. --Includes strategies for gathering and analyzing process requirements to aid in analyzing and improving processes. --Shows how to engage process stakeholders and incorporate ITSM best practices into your organization. --Contains a methodology for developing meaningful metrics for your organization and ways to convert data into usable, actionable information. --WAV offers downloadable templates, plans, and checklists such as a sample process definition document, document control sheet, high-level implementation plan, key performance indicator checklist, and communication and training plans -- available from the Web Added Value Download Resource Center at jrosspub.com. The ITSM Process Design Guide: Developing, Rengineering and Improving IT Service Management closes the knowledge gap by providing detailed guidance on assessing, designing, measuring, and integrating ITSM processes.
Reviews
"Excellent book which summarizes the ITSM Process and Design."
"Excellent reference for process improvement projects and initiatives in the real world."
"I got this book to expand my process knowledge and yep it has."
Find Best Price at Amazon

Best Computer Robohelp

Adobe RoboHelp HTML 10: The Essentials
What is RoboHelp? A frequent speaker at conferences and trade shows, Kevin was recognized by Adobe Systems, Inc. as one of their Top Five Most Highly Rated Adobe Certified Instructors, Worldwide.
Reviews
"I downloaded a free trial of RoboHelp 10 and I was really under the gun to figure it out fast and produce meaningful results to convince mgmt to purchase it. It's ironic, though, that Adobe is positioning itself as a content company and yet they appear to have abandoned any pretense of writing usable documentation for their own products. They're relying more and more on community help forums, webinars, additional-cost training, and third-party experts like Kevin Siegel to do the work for them."
"However, one of the main features of FrameMaker 11 and RoboHelp 10 is the ditamap and structured FrameMaker documents in Dita 1.2."
"Although it is not a book, it is a very easy way to learn about this tool."
"Well written and well organized, the tutorial approach to presenting the material was quite effective for one with little or no experience with Help authoring tools."
"Kevin Siegel's IconLogic tutorials are the best I've ever bought."
"Great tutorial and reference guide!"
"I'm pretty tech savvy, but I struggled trying to learn RoboHelp 10 without this workbook."
"This book has just what it says; it covers the essentials."
Find Best Price at Amazon

Best Software Development

Cracking the Coding Interview: 189 Programming Questions and Solutions
And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions. Extensive coverage of essential topics, such as big O time, data structures, and core algorithms. At Google, she interviewed hundreds of software engineers and evaluated thousands of hiring packets on the hiring committee.
Reviews
"The DP solutions in this book are not actually tabular DP formulations--I recommend looking at the problems here http://people.cs.clemson.edu/~bcdean/dp_practice/ (Brian Dean's Dynamic Programming Practice Problems)."
"The main reason I bought the book is that it closely reflects the status quo of the technical interviews in large tech companies. For many of the problems, unless you know the solutions beforehand, there is no way you can code up a decent one within an hour. The book mentions an example, a good candidate whom the author knows very well but just cannot pass the coding interviews. I am guessing the assumption is that the coding problems we do nowadays on the interviews somehow achieve minimal number of false positives. One solution reduces the problem to checking for substrings. The author claims the time complexity is O(m+n), which I believe for Java is actually O(mn). Overall this is good book for preparing for coding interviews."
"I've been writing software for a long time, and I'm competent at my job. Because the presence of books like these create a vicious cycle: prep book gets written; interviewees study/memorize answers; interviewers make questions "harder" to compensate; new book gets written! The grinder continues to turn, and whereas ten years ago you could get a good job with some string or linked-list manipulation questions, now you've got people who consider whiteboard coding of topcoder elite questions to be the baseline measurement of programmer competency. You'll even run into lazy interviewers who take questions directly from this book, which is the ultimate in stupidity: if "good" candidates have prepared from the book, and you ask questions directly from the book, what are you really accomplishing, other than a test of memorization skills? I've seen it myself."
Find Best Price at Amazon

Best Software Reuse

Design Patterns: Elements of Reusable Object-Oriented Software
These texts cover the design of object-oriented software and examine how to investigate requirements, create solutions and then translate designs into code, showing developers how to make practical use of the most significant recent developments. Design Patterns is a modern classic in the literature of object-oriented development, offering timeless and elegant solutions to common problems in software design.
Reviews
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I find it very interesting and it goes into details for design patterns and re-use of code."
"I have been using this book as a reference on Design Pattern."
"This book will forever stand as a foundation of software development."
"OK, so this title has become almost a bible for the software industry - it seems to get cited by every other author I read, so I thought it was about time I actually bought a copy."
"Even though I program in ABAP, it helps me to translate the pattern into that code."
"Great book for who want to understand each pattern deeply."
"Excelent book."
Find Best Price at Amazon

Best Computer Programming Structured Design

Algorithms (4th Edition)
This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. Robert Sedgewick has been a Professor of Computer Science at Princeton University since 1985, where he was the founding Chairman of the Department of Computer Science.
Reviews
"Pure, elegant coding."
"Great book on algorithms: the author explains basics, then goes dipper into the topic."
"Great book!!"
"Indispensable algorithms reference and textbook."
"I really enjoy reading this book."
"I thought I still had it, so when I find I needed the C version for a graduate class (this has since been upgraded to Algorithms in C++) I decided to sve beaucoup bucks in getting a used version."
"Every programmer should have the hard copy of this book in his/her library."
Find Best Price at Amazon

Best Software Testing

Clean Code: A Handbook of Agile Software Craftsmanship
Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it. Clean Code is divided into three parts. How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development. Robert C. “Uncle Bob” Martin has been a software professional since 1970 and an international software consultant since 1990.
Reviews
"What's sad about the reality is that 'bad code' will continually increase over time because people don't realize what 'bad code' can do in the long run."
"After writing a program, I realized it was not written in a way that would make it easy for me to maintain."
"Your coding will never be the same after reading even half the book."
"It is true that seasoned developers will find that they "already know" much of what is in the early portion of the book -- but my experience is that Martin has a unique ability to crystalize even common wisdom in a way that gives accepted practice new impetus and that expands my understanding of the implications of tenets I hold to but don't always fully implement. All of that said, this is not a light weight book; while offering up the fundamental principles that separate yeoman programmers from the truly expert, he goes on to teach more (and more effectively) about test driven development in one chapter than most authors accomplish in a book."
"Gone over the book twice since I liked it so much."
"Great amusing book to go though really quickly."
"This is one of the books that I keep multiple copies of around my office for my developers to read."
"Best book for programming, period."
Find Best Price at Amazon

Best Software Design Tools

A Smarter Way to Learn HTML & CSS: Learn it faster. Remember it longer.
Using the Smarter Way to Learn method, you actually learn HTML/CSS, you don’t just read about it. Read the reviews that call The Smarter Way of learning fun, involving, frustration-free, and confidence-building. Then, if you want to go beyond reading about HTML & CSS and actually learn the skills, do it the smarter way.
Reviews
"I did learn a long ago version of HTML from the ground up, but since then, I haven't studied the newer versions in detail, just used the features without really exploring all their details. Not only do the exercises make learning fun, they reinforce the material right away so it sinks in deeper."
"I purchased the book, A Smarter Way to Learn HTML & CSS, and then to my surprise it came also on my Samsung Galaxy Tablet for free."
"As the course progresses, material from previous chapters is used repeatedly in the chapter tests so that the material remains fresh. After completing the javascript course, I was working towards an exam in Mongo DB and I was able to put my new-found javascript knowledge to great use for that class."
"Mark Myers' method of getting what can be--at times--difficult information into a format that makes it exponentially easier to consume, truly understand, and synthesize into real-world application is beyond anything I've encountered before."
"I definitely recommend this book to those looking for a great learning experience, especially to those who struggle with the average educational read."
"I am amazed at what Mark Myers has been able to accomplish with his Smarter Way to Learn books. Specifically, in the HTML and CSS book, he has given you exercises at the end of each chapter so you can build your own (admittedly ugly) webpage. Mr. Myers has been helpful throughout, whenever I needed guidance or had a question."
"Thanks Mark, for writing this book."
Find Best Price at Amazon

Best UML Language

Object-Oriented Software Engineering Using UML, Patterns, and Java (3rd Edition)
Using a step-by-step case study to illustrate the concepts and topics in each chapter, Bruegge and Dutoit emphasize learning object-oriented software engineer through practical experience: readers can apply the techniques learned in class by implementing a real-world software project. This book is about conquering complex and changing software systems. The application domain (mountain expedition planning, air traffic control, financial systems, word processing) usually includes many concepts that software developers are not familiar with. The solution domain (user interface toolkits, wireless communication, middleware, database management systems, transaction processing systems, wearable computers, etc.). Consequently, the system and the development project are complex, involving many different components, tools, methods, and people. As quality control finds defects in the system and users request new features, developers modify the system and its associated work products, resulting in continuous change. This book reflects more than 10 years of building systems and of teaching software engineering project courses. Reacting to this state of affairs, the typical undergraduate curriculum now often includes a software engineering project course, organized as a single development project. We use examples from real systems and examine the interaction between state-of-the art techniques, such as UML (Unified Modeling Language), Java-based technologies, design patterns, design rationale, configuration management, and quality control. Understanding complexity can only be gained by working with a complex system; that is, a system that no single student can completely understand. When trying to understand and model the application domain, developers interact regularly with others, including users and clients, some of whom know little about software development. Even if developers build software for developers only, they would still need to communicate among themselves. Instead, we focus on a limited set of techniques and explain their application in a reasonably complex environment, such as a multiteam development project that includes 20-60 participants. In Chapter 1, Introduction to Software Engineering, we describe the difference between programming and software engineering, the current challenges in our discipline, and basic definitions of concepts we use throughout the book. In Chapter 2, Modeling with UML, we describe the basic elements of a modeling language, UML (Unified Modeling Language), used in object-oriented techniques. Subsequent chapters teach the reader how to build UML diagrams to model various aspects of the system. We use UML throughout the book to model a variety of artifacts, from software systems to processes and work products. In Chapter 3, Project Communication, we discuss the single most critical activity that developers perform. In Part II, Dealing with Complexity, we focus on methods and technologies that enable developers to specify, design, and implement complex systems. In Chapter 4, Requirements Elicitation, and Chapter 5, Analysis, we describe the definition of the system from the users' point of view. In Chapter 6, System Design, we describe the definition of the system from the developers' point of view. We refine the requirements and system models and specify precisely the classes that constitute the system and define the boundary of existing class libraries and frameworks. The models we develop during requirements elicitation, analysis, and system design help us deal with complexity, by providing us with different perspectives on what the system should be doing and how it should do it. In Chapter 9, Testing, we describe the validation of system behavior against the system models. Testing detects faults in the system, including those introduced during changes to the system or its requirements. In Chapter 10, Software Configuration Management, we describe techniques and tools for modeling the project history. Change management ensures that modifications to the system are consistent with project goals. In Chapter 11, Project Management, we describe techniques necessary for initiating a software development project, tracking its progress, and dealing with risks and unplanned events. In Chapter 12, Software Life Cycle, we describe software life cycles, such as Boehm's Spiral Model and the Unified Software Development Process, which provide an abstract model of development activities. We expect that students have the necessary problem-solving skills to attack technical problems, but we do not expect that they have been exposed to complex or changing situations typical of system development. An instructor may consider teaching early in the course introductory project management concepts from Chapter 11, Project Management, such that students become familiar with planning and status reporting. A management course focusing on managerial aspects such as communication, risk management, rationale, maturity models, and UML could use the chapter sequence 1, 2, 11, 3, 4, 8, 10, 12.
Reviews
"We have various copies of this book in our offices - its a great book for software engineering and a must read for any software engineer, computer scientist or project manager."
"It's also not a book on Capability Maturity Models (CMM), Class-Responsibilities-Collaborators (CRC) cards, Decision Representation Language (DRL), Extreme Programming (XP), Gantt charts, Issue-Based Information Systems (IBIS), Joint Appication Design (JAD), Key Process Areas (KPA), the Liskov Substitution Principle, Model-View-Controller (MVC) architectural styles, Nonfunctional Requirements (NFR) Frameworks, Object Design Documents (ODD), PERT charts, the Questions-Options-Criteria (QOC) model, Requirements Analysis Documents (RAD), Royce's methodology, Software Configuration Management Plans (SCMP), System Design Documents (SDD), Software Project Management Plans (SPMP), the Unified Software Development Process, User Manuals, V-Models, Work Breakdown Structures (WBS), or any of the myriad other tools introduced in the book. The readers certainly won't be experts in the things covered, but they'll at least have a good grounding and be able to bootstrap themselves from there (especially since the authors provide "Further Readings" and a Bibliography at the end of each chapter)."
"Great introduction to everything that a senior level, or graduate computer science/engineering major will see in industry as a software engineer."
"Used it as main textbook for one of my classes."
"This is exactly what I needed for my class."
"You can probably can get something else that it is not that heavy to read."
"College books.. who picks them."
Find Best Price at Amazon
Home > Best Books > Best Computers & Technology > Best Computer Programming > Best Software Design, Testing & Engineering