Book picks similar to
Thinking Recursively with Java by Eric S. Roberts
technical
technology
textbook
abandoned
Test-Driven Development: By Example
Kent Beck - 2002
While some fear is healthy (often viewed as a conscience that tells programmers to be careful!), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually! In short, the premise behind TDD is that code should be continually tested and refactored. Kent Beck teaches programmers by example, so they can painlessly and dramatically increase the quality of their work.
CompTIA A+ Certification All-In-One For Dummies
Glen E. Clarke - 2009
1,200 pages of up-to-date information correlates with both the hardware and operating system exams and serves as a reference after the test-taking is completed.The minibooks cover each domain of the exam: A+ Groundwork, Inside the Box, Outside the Box, Maintenance and Troubleshooting, Operating System Basics, Managing The Operating System, Recovering Systems, Networking, and Securing Systems. You'll find plenty of sample test questions to get you prepared, too.
CompTIA's A+ certification is vendor-neutral and validates the skills of entry-level computer technicians; it can be the ticket to a new or better job
Certification requires successful completion of two exams; this prep guide covers all the core competencies required
Nine minibooks cover A+ Groundwork, Inside the Box, Outside the Box, Maintenance and Troubleshooting, Operating System Basics, Managing The Operating System, Recovering Systems, Networking, and Securing Systems
Covers installation, configuration, diagnosing, preventive maintenance, and basic networking, with extra information about Vista and a heavier emphasis on hardware
Companion CD-ROM include the Dummies Test Engine, an exclusive, fully customizable test-prep software package that includes 400 exam review questions
CompTIA A+ Certification All-In-One For Dummies, 2nd Edition is the best study guide to have as you prepare for the A+ exams!Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.
The Mythical Man-Month: Essays on Software Engineering
Frederick P. Brooks Jr. - 1975
With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 45 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."
Domain-Driven Design: Tackling Complexity in the Heart of Software
Eric Evans - 2003
"His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
Head First Networking
Al Anderson - 2009
You'll learn the concepts by tying them to on-the-job tasks, blending practice and theory in a way that only Head First can. With this book, you'll learn skills through a variety of genuine scenarios, from fixing a malfunctioning office network to planning a network for a high-technology haunted house. You'll learn exactly what you need to know, rather than a laundry list of acronyms and diagrams. This book will help you:Master the functionality, protocols, and packets that make up real-world networking Learn networking concepts through examples in the field Tackle tasks such as planning and diagramming networks, running cables, and configuring network devices such as routers and switches Monitor networks for performance and problems, and learn troubleshooting techniques Practice what you've learned with nearly one hundred exercises, questions, sample problems, and projects Head First's popular format is proven to stimulate learning and retention by engaging you with images, puzzles, stories, and more. Whether you're a network professional with a CCNA/CCNP or a student taking your first college networking course, Head First Networking will help you become a network guru.
Patterns of Enterprise Application Architecture
Martin Fowler - 2002
Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned.
Patterns of Enterprise Application Architecture
is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include - Dividing an enterprise application into layers - The major approaches to organizing business logic - An in-depth treatment of mapping between objects and relational databases - Using Model-View-Controller to organize a Web presentation - Handling concurrency for data that spans multiple transactions - Designing distributed object interfaces
Swift Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)
Matthew Mathias - 2015
Throughout the book, the authors share their insights into Swift to ensure that you understand the hows and whys of Swift and can put that understanding to use in different contexts. After working through the book, you will have the knowledge and confidence to develop your own solutions to a wide range of programming challenges using Swift.
Computer Security: Principles and Practice
William Stallings - 2007
This is the only book available that provides integrated, comprehensive, up-to-date coverage of the broad range of topics in this subject. Comprehensive treatment of user authentication and access control. Unified approach to intrusion detection and firewalls, giving readers a solid understanding of the threats and countermeasures. More detailed coverage of software security than other books. Exploration of management issues. Systematic, comprehensive discussion of malicious software and denial of service attacks. Coverage of Linux and Windows Vista. Up-to-date coverage of database security. Thorough overview of cryptography, authentication, and digital signatures. Coverage of Internet security. For system engineers, programmers, system managers, network managers, product marketing personnel, system support specialists; a solid, up-to-date reference or tutorial for self-study.
SEO 2013 & Beyond: Search Engine Optimization Will Never Be The Same Again
Andy Williams - 2012
Panda was designed to remove low quality content from the search engine results pages. The surprise to many were some of the big name casualties that were taken out by the update. On 24th April 2012, Google went in for the kill when they released the Penguin update. Few SEOs that had been in the business for any length of time could believe the carnage that this update caused. If Google's Panda was a 1 on the Richter scale of updates, Penguin was surely a 10. It completely changed the way we need to think about SEO. On September 28th 2012, Google released a new algorithm update targeting exact match domains (EMDs). I have updated this book to let you know the consequences of owning EMDs and added my own advice on choosing domain names. While I have never been a huge fan of exact match domains anyway, many other SEO books and courses teach you to use them. I'll tell you why I think those other courses and books are wrong.The EMD update was sandwiched in between another Panda update (on the 27th September) and another Penguin update (5th October).Whereas Panda seems to penalize low quality content, Penguin is more concerned about overly aggressive SEO tactics. Stuff that SEOs had been doing for years, not only didn't work any more, but now can actually cause your site to be penalized and drop out of the rankings. That’s right, just about everything you have been taught about Search Engine Optimization in the last 10 years can be thrown out the Window. Google have moved the goal posts. I have been working in SEO for around 10 years and have always tried to stay within the guidelines laid down by Google. This has not always been easy because to compete with other sites, it often meant using techniques that Google frowned upon. Now, if you use those techniques, Google is likely to catch up with you and demote your rankings. In this book, I want to share with you the new SEO. The SEO for 2013 and Beyond.
The Spatial Web: How Web 3.0 Will Connect Humans, Machines, and AI to Transform the World
Gabriel Rene - 2019
Blade Runner, The Matrix, Star Wars, Avatar, Star Trek, Ready Player One and Avengers show us futuristic worlds where holograms, intelligent robots, smart devices, virtual avatars, digital transactions, and universe-scale teleportation work together perfectly, somehow seamlessly combining the virtual and the physical with the mechanical and the biological. Science fiction has done an excellent job describing a vision of the future where the digital and physical merge naturally into one — in a way that just works everywhere, for everyone. However, none of these visionary fictional works go so far as to describe exactly how this would actually be accomplished. While it has inspired many of us to ask the question—How do we enable science fantasy to become....science fact? The Spatial Web achieves this by first describing how exponentially powerful computing technologies are creating a great “Convergence.” How Augmented and Virtual Reality will enable us to overlay our information and imaginations onto the world. How Artificial Intelligence will infuse the environments and objects around us with adaptive intelligence. How the Internet of Things and Robotics will enable our vehicles, appliances, clothing, furniture, and homes to become connected and embodied with the power to see, feel, hear, smell, touch and move things in the world, and how Blockchain and Cryptocurrencies will secure our data and enable real-time transactions between the human, machine and virtual economies of the future. The book then dives deeply into the challenges and shortcomings of the World Wide Web, the rise of fake news and surveillance capitalism in Web 2.0 and the risk of algorithmic terrorism and biological hacking and “fake-reality” in Web 3.0. It raises concerns about the threat that emerging technologies pose in the hands of rogue actors whether human, algorithmic, corporate or state-sponsored and calls for common sense governance and global cooperation. It calls for business leaders, organizations and governments to not only support interoperable standards for software code, but critically, for ethical, and social codes as well. Authors Gabriel René and Dan Mapes describe in vivid detail how a new “spatial” protocol is required in order to connect the various exponential technologies of the 21st century into an integrated network capable of tracking and managing the real-time activities of our cities, monitoring and adjusting the supply chains that feed them, optimizing our farms and natural resources, automating our manufacturing and distribution, transforming marketing and commerce, accelerating our global economies, running advanced planet-scale simulations and predictions, and even bridging the gap between our interior individual reality and our exterior collective one. Enabling the ability for humans, machines and AI to communicate, collaborate and coordinate activities in the world at a global scale and how the thoughtful application of these technologies could lead to an unprecedented opportunity to create a truly global “networked” civilization or "Smart World.” The book artfully shifts between cyberpunk futurism, cautionary tale-telling, and life-affirming call-to-arms. It challenges us to consider the importance of today’s technological choices as individuals, organizations, and as a species, as we face the historic opportunity we have to transform the web, the world, and our very definition of reality.
Java Concurrency in Practice
Brian Goetz - 2005
Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."--Martin BuchholzJDK Concurrency Czar, Sun Microsystems"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."--Doron RajwanResearch Scientist, Intel Corp"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."--Ted NewardAuthor of Effective Enterprise Java"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."--Kirk PepperdineCTO, JavaPerformanceTuning.com"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."--Dr. Cliff ClickSenior Software Engineer, Azul Systems"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."--Dr. Heinz KabutzThe Java Specialists' Newsletter"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."--Bruce TateAuthor of Beyond Java" Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."--Bill VennersAuthor of Inside the Java Virtual MachineThreads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.This book covers:Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
Thinking in JavaScript
Aravind Shenoy - 2014
Before we delve into the intricacies of JavaScript, we need to know why it is used. While HTML tells your browser how your webpage will look, JavaScript is used for dynamic content and to add functionality. Using this book, you will understand the concept of JavaScript and its use in web designing. You will also have a look at jQuery in general. You will learn about Functions, Operators, the concept of Variables, Conditions and Loops, Arrays, and the basics of jQuery in this book. Instead of wandering through loads of theory, we have used practical examples in this book. The examples in this book are compatible with almost every browser. Instead of using the verbatim code, you can modify the code and see the change in the output thereby understanding the subtle nuances of JavaScript. By the end of the book, with practice, you can achieve better things and get more acquainted with JavaScript.
Fundamentals of Data Structures in C++
Ellis Horowitz - 1995
Fundamentals of Data Structures in C++ offers a complete rendering of basic data structure implementations, enhanced by superior pedagogy and astute analyses.
Real-Time Big Data Analytics: Emerging Architecture
Mike Barlow - 2013
The data world was revolutionized a few years ago when Hadoop and other tools made it possible to getthe results from queries in minutes. But the revolution continues. Analysts now demand sub-second, near real-time query results. Fortunately, we have the tools to deliver them. This report examines tools and technologies that are driving real-time big data analytics.
The Algorithm Design Manual
Steven S. Skiena - 1997
Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.