Take a look at our Programming books. Shulph carries a great selection of Programming books, and we are always adding more.
Harness the power of Python objects and data structures to implement algorithms for analyzing your data and efficiently extracting information Key Features Turn your designs into working software by learning the Python syntax Write robust code with a solid understanding of Python data structures Understand when to use the functional or the OOP approach Book Description This Learning Path helps you get comfortable with the world of Python. It starts with a thorough and practical introduction to Python. You'll quickly start writing programs, building websites, and working with data by harnessing Python's renowned data science libraries. With the power of linked lists, binary searches, and sorting algorithms, you'll easily create complex data structures, such as graphs, stacks, and queues. After understanding cooperative inheritance, you'll expertly raise, handle, and manipulate exceptions. You will effortlessly integrate the object-oriented and not-so-object-oriented aspects of Python, and create maintainable applications using higher level design patterns. Once you've covered core topics, you'll understand the joy of unit testing and just how easy it is to create unit tests. By the end of this Learning Path, you will have built components that are easy to understand, debug, and can be used across different applications. This Learning Path includes content from the following Packt products: Learn Python Programming - Second Edition by Fabrizio Romano Python Data Structures and Algorithms by Benjamin Baka Python 3 Object-Oriented Programming by Dusty Phillips What you will learn Use data structures and control flow to write code Use functions to bundle together a sequence of instructions Implement objects in Python by creating classes and defining methods Design public interfaces using abstraction, encapsulation and information hiding Raise, define, and manipulate exceptions using special error objects Create bulletproof and reliable software by writing unit tests Learn the common programming patterns and algorithms used in Python Who this book is for If you are relatively new to coding and want to write scripts or programs to accomplish tasks using Python, or if you are an object-oriented programmer for other languages and seeking a leg up in the world of Python, then this Learning Path is for you. Though not essential, it will help you to have basic knowledge of programming and OOP.
Begin writing graphical user interface(GUI) applications for building human machine interfaces with a clear understanding of key concepts of the Qt framework Key Features Learn how to write, assemble, and build Qt application from the command line Understand key concepts like Signals and Slots in Qt Best practices and effective techniques for designing graphical user interfaces using Qt 5 Book Description Qt is a cross-platform application framework and widget toolkit that is used to create GUI applications that can run on different hardware and operating systems. The main aim of this book is to introduce Qt to the reader. Through the use of simple examples, we will walk you through building blocks without focusing too much on theory. Qt is a popular tool that can be used for building a variety of applications, such as web browsers, media players such as VLC, and Adobe Photoshop. Following Qt installation and setup, the book dives straight into helping you create your first application. You will be introduced to Widgets, Qt's interface building block, and the many varieties that are available for creating GUIs. Next, Qt's core concept of signals and slots are well illustrated with sufficient examples. The book further teaches you how to create custom widgets, signals and slots, and how to communicate useful information via dialog boxes. To cap everything off, you will be taken through writing applications that can connect to databases in order to persist data. By the end of the book, you should be well equipped to start creating your own Qt applications and confident enough to pick up more advanced Qt techniques and materials to hone your skills. What you will learn Set up and configure your machine to begin developing Qt applications Discover different widgets and layouts for constructing UIs Understand the key concept of signals and slots Understand how signals and slots help animate a GUI Explore how to create customized widgets along with signals and slots Understand how to subclass and create a custom windows application Understand how to write applications that can talk to databases. Who this book is for Anyone trying to start development of graphical user interface application will find this book useful. One does not need prior exposure to other toolkits to understand this book. In order to learn from this book you should have basic knowledge of C++ and a good grasp of Object Oriented Programming. Familiarity with GNU/Linux will be very useful though it's not a mandatory skill.
Port projects over from GitHub and convert SVN projects to GitLab hosted git projects Key Features Effective guide for GitLab migration from GitHub and SVN Learn to implement DevOps with GitLab 11 Manage projects with issue boards and time tracking Book Description Gitlab is an open source repository management and version control toolkit with an enterprise offering. This book is the ideal guide to GitLab as a version control system (VCS), issue management tool, and a continuous integration platform. The book starts with an introduction to GitLab, a walkthrough of its features, and explores concepts such as version control systems, continuous integration, and continuous deployment. It then takes you through the process of downloading and installing a local copy of the on-premise version of GitLab in Ubuntu and/or CentOS. You will look at some common work?ows associated with GitLab work?ow and learn about project management in GitLab. You will see tools and techniques for migrating your code base from various version control systems such as GitHub and SVN to GitLab. By the end of the book, you will be using Gitlab for repository management, and be able to migrate projects from other VCSs to GitLab. What you will learn Set up CI and test builds for your projects Understand the benefits and limitations of GitLab work?ow Migrate from other common VCS platforms to Gitlab Create, review, and merge code changes Learn to branch local code and create a new branch in GitLab Configure sequential stages and simultaneous stages for CI/CD Access Mattermost for on-premise GitLab Discover the issue tracking features of GitLab Who this book is for The book is intended for the developers, SREs, and DevOps professionals who are looking for techniques to port their codebase to GitLab from GitHub or are looking to work with GitLab as their version control system of choice. If you've used other VCSs before, that will help with this book.
Tackle the trickiest of problems in Go programming with this practical guide Key Features Develop applications for different domains using modern programming techniques Tackle common problems when it comes to parallelism, concurrency, and reactive programming in Go Work with ready-to-execute code based on the latest version of Go Book Description Go (or Golang) is a statically typed programming language developed at Google. Known for its vast standard library, it also provides features such as garbage collection, type safety, dynamic-typing capabilities, and additional built-in types. This book will serve as a reference while implementing Go features to build your own applications. This Go cookbook helps you put into practice the advanced concepts and libraries that Golang offers. The recipes in the book follow best practices such as documentation, testing, and vendoring with Go modules, as well as performing clean abstractions using interfaces. You'll learn how code works and the common pitfalls to watch out for. The book covers basic type and error handling, and then moves on to explore applications, such as websites, command-line tools, and filesystems, that interact with users. You'll even get to grips with parallelism, distributed systems, and performance tuning. By the end of the book, you'll be able to use open source code and concepts in Go programming to build enterprise-class applications without any hassle. What you will learn Work with third-party Go projects and modify them for your use Write Go code using modern best practices Manage your dependencies with the new Go module system Solve common problems encountered when dealing with backend systems or DevOps Explore the Go standard library and its uses Test, profile, and fine-tune Go applications Who this book is for If you're a web developer, programmer, or enterprise developer looking for quick solutions to common and not-so-common problems in Go programming, this book is for you. Basic knowledge of the Go language is assumed.
A fast-paced guide to get you started with cross-platform mobile application development with Google Flutter Key Features Understand the fundamentals of Flutter and get started with cross-platform mobile app development. Learn about different widgets in Flutter and understand the concepts of Routing and Navigating. Work with Platform specific code to use Native features and deploy your application on iOS and Android. Book Description Flutter is a cross-platform mobile application development framework. It uses the Dart programming language, which was created by Google, and aims to make development easier, faster, and more efficient. This book is going to be your guide, from introducing Flutter to successfully developing a cross platform application. In the first few chapters, we will learn what Flutter is and how to get started with it. We will also take a dive into the widgets world, explore the widget catalog, and learn how to navigate through it. In the next few chapters, we will widen our horizon by learning about networking and accessibility with Flutter. We'll learn what Silvers are and how to use them, and we'll also learn how to use constraints and animations. Before we take a look at how to deploy our applications in Flutter, we will use Firebase for cloud messaging and remote configuration. By the end of the book, you will have learned everything you need to know to get started with your journey of cross-platform mobile development with Flutter. What you will learn Take a tour through the widget catalog Route and navigate through the widgets Use listview and scroll widgets Gain knowledge on networking with Flutter and Dart Build and publish plugins to pub.dart.com Use Firebase cloud messaging and remote configuration Build and release your application on Android and iOS Who this book is for This book is for developers who are willing to learn flutter and develop cross-platform applications
Understand and solve complex computational problems and write efficient code with Kotlin Key Features Learn about important data structures such as lists, arrays, queues, and stacks Design custom algorithms for real-life implementations Identify suitable tools for different scenarios and deliver immediate results Book Description Data structures and algorithms are more than just theoretical concepts. They help you become familiar with computational methods for solving problems and writing logical code. Equipped with this knowledge, you can write efficient programs that run faster and use less memory. Hands-On Data Structures and Algorithms with Kotlin book starts with the basics of algorithms and data structures, helping you get to grips with the fundamentals and measure complexity. You'll then move on to exploring the basics of functional programming while getting used to thinking recursively. Packed with plenty of examples along the way, this book will help you grasp each concept easily. In addition to this, you'll get a clear understanding of how the data structures in Kotlin's collection framework work internally. By the end of this book, you will be able to apply the theory of data structures and algorithms to work out real-world problems. What you will learn Understand the basic principles of algorithms and data structures Explore general-purpose data structures with arrays and linked lists Get to grips with the basics of stacks, queues, and double-ended queues Understand functional programming and related data structures Use performant searching and efficient sorting Uncover how Kotlin's collection framework functions Become adept at implementing different types of maps Who this book is for If you're a Kotlin developer who wants to learn the intricacies of implementing data structures and algorithms for scalable application development, this book is for you.
Design and implement professional level programs by exploring modern data structures and algorithms in Rust. Key Features Use data structures such as arrays, stacks, trees, lists and graphs with real-world examples Learn the functional and reactive implementations of the traditional data structures Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Book Description Rust has come a long way and is now utilized in several contexts. Its key strengths are its software infrastructure and resource-constrained applications, including desktop applications, servers, and performance-critical applications, not forgetting its importance in systems' programming. This book will be your guide as it takes you through implementing classic data structures and algorithms in Rust, helping you to get up and running as a confident Rust programmer. The book begins with an introduction to Rust data structures and algorithms, while also covering essential language constructs. You will learn how to store data using linked lists, arrays, stacks, and queues. You will also learn how to implement sorting and searching algorithms. You will learn how to attain high performance by implementing algorithms to string data types and implement hash structures in algorithm design. The book will examine algorithm analysis, including Brute Force algorithms, Greedy algorithms, Divide and Conquer algorithms, Dynamic Programming, and Backtracking. By the end of the book, you will have learned how to build components that are easy to understand, debug, and use in different applications. What you will learn Design and implement complex data structures in Rust Analyze, implement, and improve searching and sorting algorithms in Rust Create and use well-tested and reusable components with Rust Understand the basics of multithreaded programming and advanced algorithm design Become familiar with application profiling based on benchmarking and testing Explore the borrowing complexity of implementing algorithms Who this book is for This book is for developers seeking to use Rust solutions in a practical/professional setting; who wants to learn essential Data Structures and Algorithms in Rust. It is for developers with basic Rust language knowledge, some experience in other programming languages is required.
A comprehensive guide with extensive coverage on concepts such as OOP, functional programming, generic programming, and STL along with the latest features of C++ Key Features Delve into the core patterns and components of C++ in order to master application design Learn tricks, techniques, and best practices to solve common design and architectural challenges Understand the limitation imposed by C++ and how to solve them using design patterns Book Description C++ is a general-purpose programming language designed with the goals of efficiency, performance, and flexibility in mind. Design patterns are commonly accepted solutions to well-recognized design problems. In essence, they are a library of reusable components, only for software architecture, and not for a concrete implementation. The focus of this book is on the design patterns that naturally lend themselves to the needs of a C++ programmer, and on the patterns that uniquely benefit from the features of C++, in particular, the generic programming. Armed with the knowledge of these patterns, you will spend less time searching for a solution to a common problem and be familiar with the solutions developed from experience, as well as their advantages and drawbacks. The other use of design patterns is as a concise and an efficient way to communicate. A pattern is a familiar and instantly recognizable solution to specific problem; through its use, sometimes with a single line of code, we can convey a considerable amount of information. The code conveys: "This is the problem we are facing, these are additional considerations that are most important in our case; hence, the following well-known solution was chosen." By the end of this book, you will have gained a comprehensive understanding of design patterns to create robust, reusable, and maintainable code. What you will learn Recognize the most common design patterns used in C++ Understand how to use C++ generic programming to solve common design problems Explore the most powerful C++ idioms, their strengths, and drawbacks Rediscover how to use popular C++ idioms with generic programming Understand the impact of design patterns on the program's performance Who this book is for This book is for experienced C++ developers and programmers who wish to learn about software design patterns and principles and apply them to create robust, reusable, and easily maintainable apps.
Get up to speed with creational, structural, behavioral and concurrent patterns in Delphi to write clear, concise and effective code Key Features Delve into the core patterns and components of Delphi in order to master your application's design Brush up on tricks, techniques, and best practices to solve common design and architectural challenges Choose the right patterns to improve your program's efficiency and productivity Book Description Design patterns have proven to be the go-to solution for many common programming scenarios. This book focuses on design patterns applied to the Delphi language. The book will provide you with insights into the language and its capabilities of a runtime library. You'll start by exploring a variety of design patterns and understanding them through real-world examples. This will entail a short explanation of the concept of design patterns and the original set of the 'Gang of Four' patterns, which will help you in structuring your designs efficiently. Next, you'll cover the most important 'anti-patterns' (essentially bad software development practices) to aid you in steering clear of problems during programming. You'll then learn about the eight most important patterns for each creational, structural, and behavioral type. After this, you'll be introduced to the concept of 'concurrency' patterns, which are design patterns specifically related to multithreading and parallel computation. These will enable you to develop and improve an interface between items and harmonize shared memories within threads. Toward the concluding chapters, you'll explore design patterns specific to program design and other categories of patterns that do not fall under the 'design' umbrella. By the end of this book, you'll be able to address common design problems encountered while developing applications and feel confident while building scalable projects. What you will learn Gain insights into the concept of design patterns Study modern programming techniques with Delphi Keep up to date with the latest additions and program design techniques in Delphi Get to grips with various modern multithreading approaches Discover creational, structural, behavioral, and concurrent patterns Determine how to break a design problem down into its component parts Who this book is for Hands-On Design Patterns with Delphi is aimed at beginner-level Delphi developers who want to build scalable and robust applications. Basic knowledge of Delphi is a must.
Build safety-critical and memory-safe stand-alone and networked embedded systems Key Features Know how C++ works and compares to other languages used for embedded development Create advanced GUIs for embedded devices to design an attractive and functional UI Integrate proven strategies into your design for optimum hardware performance Book Description C++ is a great choice for embedded development, most notably, because it does not add any bloat, extends maintainability, and offers many advantages over different programming languages. Hands-On Embedded Programming with C++17 will show you how C++ can be used to build robust and concurrent systems that leverage the available hardware resources. Starting with a primer on embedded programming and the latest features of C++17, the book takes you through various facets of good programming. You'll learn how to use the concurrency, memory management, and functional programming features of C++ to build embedded systems. You will understand how to integrate your systems with external peripherals and efficient ways of working with drivers. This book will also guide you in testing and optimizing code for better performance and implementing useful design patterns. As an additional benefit, you will see how to work with Qt, the popular GUI library used for building embedded systems. By the end of the book, you will have gained the confidence to use C++ for embedded programming. What you will learn Choose the correct type of embedded platform to use for a project Develop drivers for OS-based embedded systems Use concurrency and memory management with various microcontroller units (MCUs) Debug and test cross-platform code with Linux Implement an infotainment system using a Linux-based single board computer Extend an existing embedded system with a Qt-based GUI Communicate with the FPGA side of a hybrid FPGA/SoC system Who this book is for If you want to start developing effective embedded programs in C++, then this book is for you. Good knowledge of C++ language constructs is required to understand the topics covered in the book. No knowledge of embedded systems is assumed.