Strengthen your overall coding skills by exploring the wonderful, wild, and often weird world of esoteric languages (esolangs). Strange Code starts with a dive into the underlying history of programming, covering the early computer-science concepts, like Turing machines and Turing completeness, that led to the languages we use today. It then explores the realm of "atypical" programming languages, introducing you to the out-of-the-box thinking that comes from these unusual approaches to coding. Later chapters address the even more unusual esolangs, nearly all of which are like nothing you've ever seen. Finally, author Ron Kneusel helps you develop and use two entirely new programming languages. You may not apply these languages in your day job, but this one-of-a-kind book will motivate you to think differently about what it means to express thought through code, while discovering the far-flung boundaries of programming. You'll learn:
Autorentext
A programming language enthusiast, Ronald T. Kneusel's experience with programming languages began circa 1980 when he first encountered an Apple II computer. Decades later, he completed a PhD in machine learning from the University of Colorado, Boulder, and now works in the industry developing deep learning systems. He is the author of Practical Deep Learning: A Python-Based Introduction (No Starch Press), Math for Deep Learning (No Starch Press), Numbers and Computers (Springer), and Random Numbers and Computers (Springer).
Klappentext
Strengthen your coding skills by exploring the weird world of esoteric programming languages.
Explore the wonderful, wild, and often weird world of esoteric programming languages. The book begins with the history and theory of programming languages, addressing concepts like Turing machines and Turing completeness. You're then treated to a tour of three "atypical" programming languages, real languages that are unusual and require out of the box thinking. Following that are five chapters on existing esoteric languages (esolangs), some of which are easy to use, others quite difficult, and others novel because of their approach (programming with pictures, for example). Finally, the remaining chapters detail the development and use of two entirely new programming languages.
The main point of the book is to encourage readers to think differently about what it means to express thought using a programming language, and to explore the limits and boundaries of what a programming language might be. Though readers aren't likely to use any of these languages in their day jobs, learning to think in these languages will make them better, more confident programmers.