Python Brain Teasers
Title | Python Brain Teasers PDF eBook |
Author | Miki Tebeka |
Publisher | Pragmatic Bookshelf |
Pages | 105 |
Release | 2021-08-25 |
Genre | Computers |
ISBN | 1680509071 |
We geeks love puzzles and solving them. The Python programming language is a simple one, but like all other languages it has quirks. This book uses those quirks as teaching opportunities via 30 simple Python programs that challenge your understanding of Python. The teasers will help you avoid mistakes, see gaps in your knowledge, and become better at what you do. Use these teasers to impress your co-workers or just to pass the time in those boring meetings. Teasers are fun! At the beginning of each chapter I'll show you a short Python program and will ask you to guess the output. The possible answers can be: Syntax errorExceptionHangSome output (e.g. `[1 2 3]`) Here's how to approach the puzzles. Read through the code. Before moving on to the answer and the explanation, go ahead and guess the output. After guessing the output, run the code and see the output yourself. Finally proceed to read the solution and the explanation. The puzzles are short enough to solve on a coffee break, so carry them with you, have fun, and share them with co-workers. People who make mistakes during the learning process learn better than people who don't. If you use this approach at work when fixing bugs, you'll find you enjoy bug hunting more and become a better developer after each bug you fix. Many of these puzzles are from the author's lessons learned (and others) of shipping bugs to production. He often uses the puzzles as quizzes during conferences and meetups, and they tend to create a buzz of excitement. What You Need: You need to know Python at some level and have experience programming with it.NOTE: The book uses Python version 3.8.2 to run the code; the output _could_ change in future versions.You will need a working Python environment, you can download it from "python.org":https://www.python.org/downloads/.You will probably want a good IDE for python, two of the most popular ones are "Visual Studio Code":https://code.visualstudio.com/ and "PyCharm":https://www.jetbrains.com/pycharm/.
Rust Brain Teasers
Title | Rust Brain Teasers PDF eBook |
Author | Herbert Wolverson |
Publisher | Pragmatic Bookshelf |
Pages | 137 |
Release | 2022-02-25 |
Genre | Computers |
ISBN | 1680509551 |
The Rust programming language is consistent and does its best to avoid surprising the programmer. Like all languages, though, Rust still has its quirks. But these quirks present a teaching opportunity. In this book, you'll work through a series of brain teasers that will challenge your understanding of Rust. By understanding the gaps in your knowledge, you can become better at what you do and avoid mistakes. Many of the teasers in this book come from the author's own experience creating software. Others derive from commonly asked questions in the Rust community. Regardless of their origin, these brain teasers are fun, and let's face it: who doesn't love a good puzzle, right? What better way to exercise your brain and increase your Rust programming knowledge than with a collection of dynamic brain teasers? As you read through each of these puzzles and try to work out the answers, you'll not only learn about Rust's unique quirks and peculiarities, you'll also have loads of fun along the way. Dive right in and get started with example code and sample problems that cover numbers and text, shadowing and memory, and everything in between. Try to figure out why a particular program won't compile, why it produces unexpected output, or why it panics and terminates with an error message. Once you've run the code and read the answer, it's time to get to the heart of the matter with a detailed explanation. Learn why a program produced the result it did, and discover how similar issues might affect the code you write in your own programs, even in production. Sourced from engaging discussions within the Rust community, real-world problems, and even reader feedback, these challenges will certainly surprise, enlighten, and entertain you. Are you ready to experience Rust like never before? Then sharpen your brain and get ready for a challenge! What You Need: This book assumes you have some knowledge of the Rust programming language. To work through the brain teasers in this book, you'll need a working Rust environment on any platform. You can install Rust by visiting https://rustup.rs/. You'll also need a text editor or Rust-friendly IDE.
The Curious History of the Riddle
Title | The Curious History of the Riddle PDF eBook |
Author | Marcel Danesi Ph.D. |
Publisher | Wellfleet Press |
Pages | 155 |
Release | 2020-05-05 |
Genre | Games & Activities |
ISBN | 1577151984 |
The Curious History of the Riddle investigates the fascinating origin and history of the riddle, from the very first riddle (the Riddle of the Sphinx) to the twenty-first century, with riddles found in pop culture, including movies (Us), television shows (Game of Thrones) video games, and escape rooms. Riddles are ageless, timeless, and so common that we hardly ever reflect upon what they are and how they originated. Most importantly, their invention helped in the development of lateral thinking, the form of thinking that is the foundation of all kinds of discoveries, from mathematics to science and beyond. In The Curious History of the Riddle, puzzle expert Marcel Danesi delves deep into the riddle's origin and history and covers these fascinating topics: 1. The Riddle of the Sphinx: Origins, Legends, Patterns What creature walks on all fours at dawn, two at midday, and three at twilight? (answer: man) 2. The Greek Anthology and the Exeter Book: Medieval Views and Uses of Riddles This chapter looks at the spread of the riddle in recreational and educational contexts. 3. The Merry Book of Riddles: Riddles in the Renaissance By the late Renaissance, riddles were being tailored more and more to produce humorous or whimsical effects. 4. Enigmas, Charades, and Conundrums: Riddles from the 1600s to the Twentieth Century After the Renaissance, riddles had become virtually every literate European person’s favorite form of recreation, and were included as regular features of many newspapers and periodicals 5. The Twentieth Century: Riddles as Children’s Literature In the twentieth century, riddles became specialized for children, spreading throughout children’s literature and educational manuals. 6. The Twentieth and Twenty-First Centuries: Riddles Go to the Movies and Online In this chapter, the focus is on riddles in various entertainment media, from best-selling novels such as Harry Potter, to movies, such as the Batman series. 7. Connections: Riddles and Rebuses This chapter explores the structure of rebuses as visual riddles, connecting them historically. Part history book, part puzzle book, The Curious History of the Riddle is fully illustrated with over 200 riddles interspersed throughout the text for solving.
C++ Brain Teasers
Title | C++ Brain Teasers PDF eBook |
Author | Anders Schau Knatten |
Publisher | Pragmatic Bookshelf |
Pages | 134 |
Release | 2024-05-30 |
Genre | Computers |
ISBN |
C++ is famous for getting all the default behaviors wrong and for sometimes making demons fly out of your nose. Through 25 puzzles, from the useful to the outright weird, we explore some of C++'s most interesting quirks. How does initialization actually work? Do temporaries even exist? Why is `+!!"" ` a valid expression in C++? As you work through each puzzle, you will peel off some of the layers of complexity of C++, getting a fundamental understanding of how the language works. This will help you write better code and recognize issues more easily while debugging. Each puzzle in the book is a complete, seemingly simple C++ program, but can you figure out the output for each, or will the answers stump you? Most of the programs compile and have deterministic, though sometimes surprising, output. Some might, however, have undefined behavior, where anything can happen, including making demons fly out of your nose! Yet others might have unspecified behavior with output that is not completely deterministic; we just know nothing as bad as nasal demons will happen. All puzzles are accompanied by detailed discussions, taking a look under the hood at what exactly is going on to help you understand more about C++'s unexpected behaviors, as well as fundamental concepts like initialization, overload resolution, and implicit conversions. For the non-deterministic cases, we'll explore some typical behaviors one can expect to see in practice, what causes them, and why they shouldn't be relied on. After working through the book, you'll have tools and techniques to help you write better and safer code, and a better understanding of the fundamentals of the language, the background for some of C++'s apparent weirdness, and a better feel for identifying bugs and unsafe code in your own programs. What You Need: The book assumes basic knowledge of C++. If you want to run the programs yourself, you can use either a local C++ compiler or the online compilers at https://godbolt.org.
Mazes for Programmers
Title | Mazes for Programmers PDF eBook |
Author | Jamis Buck |
Publisher | Pragmatic Bookshelf |
Pages | 385 |
Release | 2015-07-15 |
Genre | Computers |
ISBN | 1680503960 |
Unlock the secrets to creating random mazes! Whether you're a game developer, an algorithm connoisseur, or simply in search of a new puzzle, you're about to level up. Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, fold them into cubes, and wrap them around spheres. Stretch them into other dimensions, squeeze them into arbitrary outlines, and tile them in a dizzying variety of ways. From twelve little algorithms, you'll discover a vast reservoir of ideas and inspiration. From video games to movies, mazes are ubiquitous. Explore a dozen algorithms for generating these puzzles randomly, from Binary Tree to Eller's, each copiously illustrated and accompanied by working implementations in Ruby. You'll learn their pros and cons, and how to choose the right one for the job. You'll start by learning six maze algorithms and transition from making mazes on paper to writing programs that generate and draw them. You'll be introduced to Dijkstra's algorithm and see how it can help solve, analyze, and visualize mazes. Part 2 shows you how to constrain your mazes to different shapes and outlines, such as text, circles, hex and triangle grids, and more. You'll learn techniques for culling dead-ends, and for making your passages weave over and under each other. Part 3 looks at six more algorithms, taking it all to the next level. You'll learn how to build your mazes in multiple dimensions, and even on curved surfaces. Through it all, you'll discover yourself brimming with ideas, the best medicine for programmer's block, burn-out, and the grayest of days. By the time you're done, you'll be energized and full of maze-related possibilities! What You Need: The example code requires version 2 of the Ruby programming language. Some examples depend on the ChunkyPNG library to generate PNG images, and one chapter uses POV-Ray version 3.7 to render 3D graphics.
Hands-on Rust
Title | Hands-on Rust PDF eBook |
Author | Herbert Wolverson |
Publisher | Pragmatic Bookshelf |
Pages | 446 |
Release | 2021-06-30 |
Genre | Computers |
ISBN | 1680508806 |
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters - and what better way to learn than by making games. Each chapter in this book presents hands-on, practical projects ranging from "Hello, World" to building a full dungeon crawler game. With this book, you'll learn game development skills applicable to other engines, including Unity and Unreal. Rust is an exciting programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters. With Rust, you have a shiny new playground where your game ideas can flourish. Each chapter in this book presents hands-on, practical projects that take you on a journey from "Hello, World" to building a full dungeon crawler game. Start by setting up Rust and getting comfortable with your development environment. Learn the language basics with practical examples as you make your own version of Flappy Bird. Discover what it takes to randomly generate dungeons and populate them with monsters as you build a complete dungeon crawl game. Run game systems concurrently for high-performance and fast game-play, while retaining the ability to debug your program. Unleash your creativity with magical items, tougher monsters, and intricate dungeon design. Add layered graphics and polish your game with style. What You Need: A computer running Windows 10, Linux, or Mac OS X.A text editor, such as Visual Studio Code.A video card and drivers capable of running OpenGL 3.2.
Intuitive Python
Title | Intuitive Python PDF eBook |
Author | David Muller |
Publisher | Pragmatic Bookshelf |
Pages | 130 |
Release | 2021-10-05 |
Genre | |
ISBN | 9781680508239 |
Developers power their projects with Python because it emphasizes readability, ease of use, and access to a meticulously maintained set of packages and tools. The language itself continues to improve with every release: writing in Python is full of possibility. But to maintain a successful Python project, you need to know more than just the language. You need tooling and instincts to help you make the most out of what's available to you. Use this book as your guide to help you hone your skills and sculpt a Python project that can stand the test of time. No matter your experience level or background, Python's batteries-included standard library and rich third-party ecosystem provide a solid foundation to build your projects on. With the right intuition and background knowledge, you can take advantage of all the power Python offers. Take a guided tour of some of Python's high points to craft a project that you can sustain and build on for a long time. Run static analysis tools to detect and eliminate classes of bugs before you run code. Experiment with Python's concurrency model and develop patterns for using Python's thread and process abstractions to their full potential. Introduce yourself to Python's type hinting system: mypy. Download and run third-party Python packages and do so safely without compromising on security. Debug code using Python's built in debugger, and try procedures out in the interactive console. Run your code under new versions of the Python interpreter to unlock performance and usability improvements. All along the way, sharpen your Python instincts so you can keep your code clean and reduce the chance of bugs. Mine Python for all you can by playing to its strengths and embracing patterns that harness its potential. What You Need: The books assumes you have some experience programming in any language (not necessarily Python). To run the code presented in the book, you'll need a Python environment which you can download from https: //www.python.org/downloads/.