Patterns for Beginning ProgrammersProgramming patterns are solutions to problems that require the creation of a small fragment of code that will be part of a larger program. Hence, this book is about teaching you how to write such fragments of code. However, it is not about teaching you the syntax of the statements in the fragments, it assumes that you already know the syntax. Instead, it is about finding solutions to problems that arise when first learning to program.
Patterns can be used to teach problem solving at various levels of abstraction (which are inversely related to the level of detail). Programming patterns are solutions to problems that require the creation of a small fragment of code that will be part of a larger program. Hence, this book is about teaching you how to write such fragments of code. However, it is not about teaching you the of the statements in the fragments, it assumes that you already know the syntax. Though the syntax of a particular programming language can be confusing at first, it ...
Learn Python the right wayPython is a fun and extremely easy-to-use programming language that has steadily gained in popularity over the last few years. Developed over ten years ago by Guido van Rossum, Python's simple syntax and overall feel is largely derived from ABC, a teaching language that was developed in the 1980's.
However, Python was also created to solve real problems and it borrows a wide variety of features from programming languages such as C++, Java, Modula-3, and Scheme. Because of this, one of Python's most remarkable features is its broad appeal to professional software developers, scientists, researchers, artists, and educators.
Despite Python's appeal to many different communities, you may still wonder why Python? or why teach programming with Python? Answering these questions is no simple task - especially when popular opinion is on the side of more masochistic alternatives such as C++ and Java. However, I think the most direct answer is that programming in Python is simply a lot of f ...
Applied Machine Learning and AI for EngineersWhile many introductory guides to AI are calculus books in disguise, this one mostly eschews the math. Instead, author Jeff Prosise helps engineers and software developers build an intuitive understanding of AI to solve business problems. Need to create a system to detect the sounds of illegal logging in the rainforest, analyze text for sentiment, or predict early failures in rotating machinery? This practical book teaches you the skills necessary to put AI and machine learning to work at your company.
Applied Machine Learning and AI for Engineers provides examples and illustrations from the AI and ML course Prosise teaches at companies and research institutions worldwide. There's no fluff and no scary equations - just a fast start for engineers and software developers, complete with hands-on examples. ...
Building Evolutionary Architectures, 2nd EditionThe software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time. ...
Software Test DesignSoftware Test Design details best practices for testing software applications and writing comprehensive test plans. Written by an expert with over twenty years of experience in the high-tech industry, this guide will provide you with training and practical examples to improve your testing skills.
Thorough testing requires a thorough understanding of the functionality under test, informed by exploratory testing and described by a detailed functional specification. This book is divided into three sections, the first of which will describe how best to complete those tasks to start testing from a solid foundation.
Armed with the feature specification, functional testing verifies the visible behavior of features by identifying equivalence partitions, boundary values, and other key test conditions. This section explores techniques such as black- and white-box testing, trying error cases, finding security weaknesses, improving the user experience, and how to maintain your product in the ...
Web Development with Julia and GenieJulia's high-performance and scalability characteristics and its extensive number of packages for visualizing data make it an excellent fit for developing web apps, web services, and web dashboards. The two parts of this book provide complete coverage to build your skills in web development.
First, you'll refresh your knowledge of the main concepts in Julia that will further be used in web development. Then, you'll use Julia's standard web packages and examine how the building blocks of the web such as TCP-IP, web sockets, HTTP protocol, and so on are implemented in Julia's standard library. Each topic is discussed and developed into code that you can apply in new projects, from static websites to dashboards. You'll also understand how to choose the right Julia framework for a project. The second part of the book talks about the Genie framework. You'll learn how to build a traditional to do app following the MVC design pattern. Next, you'll add a REST API to this project, including ...
Redis For DummiesNoSQL is a modern data persistence storage paradigm that provides data persistence for environments where high performance is a primary requirement. Within NoSQL, data is stored in such a way as to make both writing and reading quite fast, even under heavy load.
Redis and Redis Enterprise are market-leading, multi-model NoSQL databases that bring NoSQL to organizations both big and small. Redis is open source, and Redis Enterprise software adds several enhancements that are important to the enterprise customer. Redis Enterprise Cloud enables Redis Enterprise deployments on popular cloud providers like Amazon Web Services (AWS), Google Cloud, and Microsoft Azure.
This book provides a starting point for those new to NoSQL and those who have heard about NoSQL but would like to see how it might be used in their organization.
The book serves multiple audiences, with chapters geared towards managers and chapters specifically for developers. You don't need to read this book from fron ...
Data Visualization with Python and JavaScript, 2nd EditionHow do you turn raw, unprocessed, or malformed data into dynamic, interactive web visualizations? In this practical book, author Kyran Dale shows data scientists and analysts-as well as Python and JavaScript developers-how to create the ideal toolchain for the job. By providing engaging examples and stressing hard-earned best practices, this guide teaches you how to leverage the power of best-of-breed Python and JavaScript libraries.
Python provides accessible, powerful, and mature libraries for scraping, cleaning, and processing data. And while JavaScript is the best language when it comes to programming web visualizations, its data processing abilities can't compare with Python's. Together, these two languages are a perfect complement for creating a modern web-visualization toolchain. This book gets you started. ...
Clojure In Small PiecesRich Hickey invented Clojure. This is a fork of the project to experiment with literate programming as a development and documentation technology.
Clojure is a break with the past traditions of Lisp. This literate fork is a break with the past traditions of code development. As such it is intended as an experiment, not a replacement or competition with the official version of Clojure.
Most programmers are still locked into the idea of making a program out of a large pile of tiny files containing pieces of programs. They do not realize that this organization was forced by the fact that machines like the PDP 11 only had 8k of memory and a limit of 4k buffers in the editor. Thus there was a lot of machinery built up, such as overlay linkers, to try to reconstruct the whole program.
The time has come to move into a more rational means of creating and maintaining programs. Knuth suggested we write programs like we write literature, with the idea that we are trying to communicate th ...
C++ TodayNow that software development is shifting primarily toward mobile and cloud computing, the venerable C++ programming language is returning to the dominant position it held during the object-oriented boom of the 1990s. In this O'Reilly report, you'll learn why C++ is once again the preferred choice across several diverse industries, after taking a backseat to Java during the 2000s.
C++ is a complicated beast that's not easy to learn. But when you need a powerful, highly portable systems programming language or an application programming language with uncompromising performance, it's hard to beat. With the 2011 and 2014 updates, C++ feels like a completely new language, rather than the old C++ with new features bolted on.
Authors Jon Kalb and Ga�per A�man demonstrate how modern C++ (C++11 and C++14) provides the power, performance, libraries, and tools necessary for massive server farms as well as low-footprint mobile apps.
- Delve into the modern C++ features that are gener ...