Python Brain Teasers

Python Brain Teasers

Author: Miki Tebeka

Publisher: Pragmatic Bookshelf

Published: 2021-08-25

Total Pages: 105

ISBN-13: 1680509071

DOWNLOAD EBOOK

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

Rust Brain Teasers

Author: Herbert Wolverson

Publisher: Pragmatic Bookshelf

Published: 2022-02-25

Total Pages: 137

ISBN-13: 1680509551

DOWNLOAD EBOOK

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.


Hands-on Rust

Hands-on Rust

Author: Herbert Wolverson

Publisher: Pragmatic Bookshelf

Published: 2021-06-30

Total Pages: 446

ISBN-13: 1680508806

DOWNLOAD EBOOK

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.


Coffee Break Python

Coffee Break Python

Author: Christian Mayer

Publisher:

Published: 2018-09-10

Total Pages: 193

ISBN-13: 9781719846585

DOWNLOAD EBOOK

How to learn Python during your coffee break? Coffee Break Python is a new step-by-step system to teach you how to learn Python faster, smarter, and better. You do nothing but solving one practical Python puzzle as you enjoy your morning coffee. Why should you care about puzzle-based learning? Educational research shows that practical low-stake puzzles and tests help you to learn faster, smarter, and better. We used this for coding in Coffee Break Python and our academy Finxter.com. 13,000 online Python students have already improved their coding skills with our unique puzzle-based learning technique: "I very much enjoy your Finxter.com website because it has some real meat to the problems. Thank you so much for doing this project! I love it!" --David C. "Your site is awesome." --Victor A. "I found Finxter.com an excellent tool to brush up on my Python skills. I totally love the setup of playing against the questions - such a wonderful idea --Jesper R. Why should you read this book? As you work through Coffee Break Python, your Python expertise will grow--one coffee at a time. It's packed with 50 Python puzzles, 10 practical learning tips, 5 compressed cheat sheets, and 1 new way to measure your coding skills. You will train wildly important Python topics such as Arithmetic operations: integer & float division, and modular arithmetic; Language elements: branching, loops, keywords, and functions; Data structures: integer, float, string, list, set, dictionary, and graph; Sequence operators: indexing, concatenation, slicing, and built-in functions; Function *arguments: default *, arbitrary *, unpacking *, keyword *; Set operations: lambda, filter, map, and intersection functions; and Algorithms: recursion, Fibonacci, matrix search, bubble sort, quick sort, lexicographical sort, guess & check, binary search, and graph traversal. As a bonus, you will track your individual Python coding skill level throughout the book. Who should read this book? You are slightly beyond beginner-level in Python. For example, You have already experience with another programming language--it's time to tackle Python. You are a professional engineer and want to brush up your Python skills. You are a student and need to get better at Python for academic courses. So how do you spend your Coffee Break? Python!


The Curious History of the Riddle

The Curious History of the Riddle

Author: Marcel Danesi Ph.D.

Publisher: Wellfleet Press

Published: 2020-05-05

Total Pages: 155

ISBN-13: 1577151984

DOWNLOAD EBOOK

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.


Mazes for Programmers

Mazes for Programmers

Author: Jamis Buck

Publisher: Pragmatic Bookshelf

Published: 2015-07-15

Total Pages: 385

ISBN-13: 1680503960

DOWNLOAD EBOOK

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.


Intuitive Python

Intuitive Python

Author: David Muller

Publisher: Pragmatic Bookshelf

Published: 2021-10-05

Total Pages: 130

ISBN-13: 9781680508239

DOWNLOAD EBOOK

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/.


Pythonic Programming

Pythonic Programming

Author: Dmitry Zinoviev

Publisher: Pragmatic Bookshelf

Published: 2021-09-23

Total Pages: 211

ISBN-13: 1680509209

DOWNLOAD EBOOK

Make your good Python code even better by following proven and effective pythonic programming tips. Avoid logical errors that usually go undetected by Python linters and code formatters, such as frequent data look-ups in long lists, improper use of local and global variables, and mishandled user input. Discover rare language features, like rational numbers, set comprehensions, counters, and pickling, that may boost your productivity. Discover how to apply general programming patterns, including caching, in your Python code. Become a better-than-average Python programmer, and develop self-documented, maintainable, easy-to-understand programs that are fast to run and hard to break. Python is one of the most popular and rapidly growing modern programming languages. With more than 200 standard libraries and even more third-party libraries, it reaches into the software development areas as diverse as artificial intelligence, bioinformatics, natural language processing, and computer vision. Find out how to improve your understanding of the spirit of the language by using one hundred pythonic tips to make your code safer, faster, and better documented. This programming style manual is a quick reference of helpful hints and a random source of inspiration. Choose the suitable data structures for searching and sorting jobs and become aware of how a wrong choice may cause your application to be completely ineffective. Understand global and local variables, class and instance attributes, and information-hiding techniques. Create functions with flexible interfaces. Manage intermediate computation results by caching them in files and memory to improve performance and reliability. Polish your documentation skills to make your code easy for other programmers to understand. As a bonus, discover Easter eggs cleverly planted in the standard library by its developers. Polish, secure, and speed-up your Python applications, and make them easier to maintain by following pythonic programming tips. What You Need: You will need a Python interpreter (ideally, version 3.4 or above) and the standard Python library that usually comes with the interpreter.


C++ Brain Teasers

C++ Brain Teasers

Author: Anders Schau Knatten

Publisher: Pragmatic Bookshelf

Published: 2024-05-30

Total Pages: 134

ISBN-13:

DOWNLOAD EBOOK

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.


Go Brain Teasers

Go Brain Teasers

Author: Miki Tebeka

Publisher: Pragmatic Bookshelf

Published: 2021-08-26

Total Pages: 100

ISBN-13: 1680509152

DOWNLOAD EBOOK

This book contains 25 short programs that will challenge your understanding of Go. Like any big project, the Go developers had to make some design decisions that at times seem surprising. This book uses those quirks as a teaching opportunity. By understanding the gaps in your knowledge, you'll become better at what you do. Some of the teasers are from the author's experience shipping bugs to production, and some from others doing the same. Teasers and puzzles are fun, and learning how to solve them can teach you to avoid programming mistakes and maybe even impress your colleagues and future employers. Programmers love the Go (golang) programming language because of its efficiency and simple tooling. But that doesn't mean programming in Go is without challenges, like hidden dependencies that trip up the compiler and interesting string type conversions that differ from languages like Python. Work your way through 25 short brain teasers, and learn the nuances of Go in one of the most fun and creative ways around. Challenge yourself and challenge your assumptions to gain a more in-depth understanding of integers, strings, Unicode, compiler behavior, and a variety of subtle programming gotchas that might otherwise trip you up. Just read a short program written in Go, try to guess the output, run the code yourself, and then go to the next page for an explanation of the solution. By working through these brain teasers, you'll tighten up your Go programming skills and have lots of fun at the same time. Taken from real-world, programming problems, conference talks, and meetup quizzes, these brain teasers provide an effective learning tool that's as enjoyable as it is educational. What You Need: This book assumes you know Go at some level and have experience programming with it. *NOTE:* We use Go version 1.14.1 to run the code; the output might change in future versions. You will need a working Go environment, you can download it from https://golang.org/dl. You will probably want a good IDE for Go, two of the most popular ones are Visual Studio Code and GoLand.