CodeCraft: Mastering the Art and Science of Software Engineering


Book Description

Unlock the secrets of software mastery with 'CodeCraft: Mastering the Art and Science of Software Engineering.' Delve into the core principles of programming languages, agile methodologies, and design patterns, equipping yourself with the tools to craft elegant and efficient solutions. From testing and quality assurance to scalability and performance optimization, explore every facet of the software development lifecycle. Embrace the DevOps mindset and navigate the ethical considerations of modern technology. Whether you're a seasoned developer or a novice coder, 'CodeCraft' is your essential guide to becoming a virtuoso in the world of software engineering.




Becoming a Better Programmer


Book Description

If you’re passionate about programming and want to get better at it, you’ve come to the right source. Code Craft author Pete Goodliffe presents a collection of useful techniques and approaches to the art and craft of programming that will help boost your career and your well-being. Goodliffe presents sound advice that he’s learned in 15 years of professional programming. The book’s standalone chapters span the range of a software developer’s life—dealing with code, learning the trade, and improving performance—with no language or industry bias. Whether you’re a seasoned developer, a neophyte professional, or a hobbyist, you’ll find valuable tips in five independent categories: Code-level techniques for crafting lines of code, testing, debugging, and coping with complexity Practices, approaches, and attitudes: keep it simple, collaborate well, reuse, and create malleable code Tactics for learning effectively, behaving ethically, finding challenges, and avoiding stagnation Practical ways to complete things: use the right tools, know what “done” looks like, and seek help from colleagues Habits for working well with others, and pursuing development as a social activity




Software Craftsmanship


Book Description

This book introduces the author's collection of wisdom under one umbrella: Software Craftmanship. This approach is unique in that it spells out a programmer-centric way to build software. In other words, all the best computers, proven components, and most robust languages mean nothing if the programmer does not understand their craft.




The Craft of Programming


Book Description

The modern computer is so powerful that a casual knowledge of programming suffices for most of its users. However, a variety of circumstances can abruptly require a much deeper understanding: the need to structure a program carefully to avoid being overwhelmed by its complexity, the need to insure reliability beyond what can be achieved by debugging, or the need to utilize computing resources efficiently. Beyond such practical considerations is an inherent intellectual satisfaction in mastering the fundamental concepts of programming. The aim of this book is to provide such mastery concept by concept.




Code Craft


Book Description

A guide to writing computer code covers such topics as variable naming, presentation style, error handling, and security.




Concise Guide to Object-Oriented Programming


Book Description

This engaging textbook provides an accessible introduction to coding and the world of Object-Oriented (OO) programming, using Java as the illustrative programming language. Emphasis is placed on what is most helpful for the first-time coder, in order to develop and understand their knowledge and skills in a way that is relevant and practical. The examples presented in the text demonstrate how skills in OO programming can be used to create applications and programs that have real-world value in daily life. Topics and features: presents an overview of programming and coding, a brief history of programming languages, and a concise introduction to programming in Java using BlueJ; discusses classes and objects, reviews various Java library objects and packages, and introduces the idea of the Application Programming Interface (API); highlights how OO design forms an essential role in producing a useful solution to a problem, and the importance of the concept of class polymorphism; examines what to do when code encounters an error condition, describing the exception handling mechanism and practical measures in defensive coding; investigates the work of arrays and collections, with a particular focus on fixed length arrays, the ArrayList, HashMap and HashSet; describes the basics of building a Graphical User Interface (GUI) using Swing, and the concept of a design pattern; outlines two complete applications, from conceptual design to implementation, illustrating the content covered by the rest of the book; provides code for all examples and projects at an associated website. This concise guide is ideal for the novice approaching OO programming for the first time, whether they are a student of computer science embarking on a one-semester course in this area, or someone learning for the purpose of professional development or self-improvement. The text does not require any prior knowledge of coding, software engineering, OO, or mathematics.




TinyML


Book Description

Deep learning networks are getting smaller. Much smaller. The Google Assistant team can detect words with a model just 14 kilobytes in size—small enough to run on a microcontroller. With this practical book you’ll enter the field of TinyML, where deep learning and embedded systems combine to make astounding things possible with tiny devices. Pete Warden and Daniel Situnayake explain how you can train models small enough to fit into any environment. Ideal for software and hardware developers who want to build embedded systems using machine learning, this guide walks you through creating a series of TinyML projects, step-by-step. No machine learning or microcontroller experience is necessary. Build a speech recognizer, a camera that detects people, and a magic wand that responds to gestures Work with Arduino and ultra-low-power microcontrollers Learn the essentials of ML and how to train your own models Train models to understand audio, image, and accelerometer data Explore TensorFlow Lite for Microcontrollers, Google’s toolkit for TinyML Debug applications and provide safeguards for privacy and security Optimize latency, energy usage, and model and binary size




Wetware


Book Description

“A beautifully written journey into the mechanics of the world of the cell, and even beyond, exploring the analogy with computers in a surprising way” (Denis Noble, author of Dance to the Tune of Life). How does a single-cell creature, such as an amoeba, lead such a sophisticated life? How does it hunt living prey, respond to lights, sounds, and smells, and display complex sequences of movements without the benefit of a nervous system? This book offers a startling and original answer. In clear, jargon-free language, Dennis Bray taps the findings from the discipline of systems biology to show that the internal chemistry of living cells is a form of computation. Cells are built out of molecular circuits that perform logical operations, as electronic devices do, but with unique properties. Bray argues that the computational juice of cells provides the basis for all distinctive properties of living systems: it allows organisms to embody in their internal structure an image of the world, and this accounts for their adaptability, responsiveness, and intelligence. In Wetware, Bray offers imaginative, wide-ranging, and perceptive critiques of robotics and complexity theory, as well as many entertaining and telling anecdotes. For the general reader, the practicing scientist, and all others with an interest in the nature of life, this book is an exciting portal to some of biology’s latest discoveries and ideas. “Drawing on the similarities between Pac-Man and an amoeba and efforts to model the human brain, this absorbing read shows that biologists and engineers have a lot to learn from working together.” —Discover magazine “Wetware will get the reader thinking.” —Science magazine




Clean Code


Book Description

This title shows the process of cleaning code. Rather than just illustrating the end result, or just the starting and ending state, the author shows how several dozen seemingly small code changes can positively impact the performance and maintainability of an application code base.




21st Century C


Book Description

Throw out your old ideas about C and get to know a programming language that’s substantially outgrown its origins. With this revised edition of 21st Century C, you’ll discover up-to-date techniques missing from other C tutorials, whether you’re new to the language or just getting reacquainted. C isn’t just the foundation of modern programming languages; it is a modern language, ideal for writing efficient, state-of-the-art applications. Get past idioms that made sense on mainframes and learn the tools you need to work with this evolved and aggressively simple language. No matter what programming language you currently favor, you’ll quickly see that 21st century C rocks. Set up a C programming environment with shell facilities, makefiles, text editors, debuggers, and memory checkers Use Autotools, C’s de facto cross-platform package manager Learn about the problematic C concepts too useful to discard Solve C’s string-building problems with C-standard functions Use modern syntactic features for functions that take structured inputs Build high-level, object-based libraries and programs Perform advanced math, talk to internet servers, and run databases with existing C libraries This edition also includes new material on concurrent threads, virtual tables, C99 numeric types, and other features.