Programming Language Pragmatics, Fourth Edition, is the most comprehensive programming language textbook available today. It is distinguished and acclaimed for its integrated treatment of language design and implementation, with an emphasis on the fundamental tradeoffs that continue to drive software development. The book provides readers with a solid foundation in the syntax, semantics, and pragmatics of the full range of programming languages, from traditional languages like C to the latest in functional, scripting, and object-oriented programming. This fourth edition has been heavily revised throughout, with expanded coverage of type systems and functional programming, a unified treatment of polymorphism, highlights of the newest language standards, and examples featuring the ARM and x86 64-bit architectures.
- Updated coverage of the latest developments in programming language design, including C & C++11, Java 8, C# 5, Scala, Go, Swift, Python 3, and HTML 5
- Updated treatment of functional programming, with extensive coverage of OCaml
- New chapters devoted to type systems and composite types
- Unified and updated treatment of polymorphism in all its forms
- New examples featuring the ARM and x86 64-bit architectures
Published by: Morgan Kaufmann | Publication date: 11/30/2015Kindle book details: Kindle Edition, 943 pages
- The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers.
- Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool.
- The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples.
- Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time.
- The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries.
Published by: Addison-Wesley Professional | Publication date: 11/16/2015Kindle book details: Kindle Edition, 400 pages
The Rust Programming Language is the official book on Rust, an open-source, community-developed systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds. Known by the Rust community as “The Book,” The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs. The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice. The Rust Programming Language will also show you how to:- Grasp important concepts unique to Rust, like ownership, borrowing, and lifetimes- Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies- Effectively use Rust’s zero-cost abstractions and employ your own You’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain. You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more. The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.
Published by: No Starch Press | Publication date: 07/10/2018Kindle book details: Kindle Edition, 552 pages
This ebook is the first authorized digital version of Kernighan and Ritchie’s 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmer’s digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."
Published by: Prentice Hall | Publication date: 03/22/1988Kindle book details: Kindle Edition, 279 pages
The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively. The C++ Programming Language, Fourth Edition, delivers meticulous, richly explained, and integrated coverage of the entire language—its facilities, abstraction mechanisms, standard libraries, and key design techniques. Throughout, Stroustrup presents concise, “pure C++11” examples, which have been carefully crafted to clarify both usage and program design. To promote deeper understanding, the author provides extensive cross-references, both within the book and to the ISO standard. New C++11 coverage includes
- Support for concurrency
- Regular expressions, resource management pointers, random numbers, and improved containers
- General and uniform initialization, simplified for-statements, move semantics, and Unicode support
- Lambdas, general constant expressions, control over class defaults, variadic templates, template aliases, and user-defined literals
- Compatibility issues
- Basic facilities: type, object, scope, storage, computation fundamentals, and more
- Modularity, as supported by namespaces, source files, and exception handling
- C++ abstraction, including classes, class hierarchies, and templates in support of a synthesis of traditional programming, object-oriented programming, and generic programming
- Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more
- The C++ basic memory model, in depth
Published by: Addison-Wesley Professional | Publication date: 07/10/2013Kindle book details: Kindle Edition, 1376 pages
- I know a little HTML and CSS
- I find programming books boring
- I can't focus long enough reading technical texts
- I need to start really slow
- I am a graphic and/or web designer
- I am a parent who wants to spark an interest in programming in my kids
- The syntax of the language
- The most important concepts
- Programming terminology
- Basics of the object oriented programming
- Learn by doing exercises
Published by: Ivelin Demirov | Publication date: 06/27/2014Kindle book details: Kindle Edition, 116 pages
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
Published by: Microsoft Press | Publication date: 10/11/2000Kindle book details: Kindle Edition, 400 pages
The Complete Software Developer's Career Guide: How to Learn Your Next Programming Language, Ace Your Programming Interview, and Land The Coding Job Of Your Dreams
Technical Knowledge Alone Isn't Enough - Increase Your Software Development Income by Leveling Up Your Soft Skills Early in his software developer career, John Sonmez discovered that technical knowledge alone isn't enough to break through to the next income level - developers need "soft skills" like the ability to learn new technologies just in time, communicate clearly with management and consulting clients, negotiate a fair hourly rate, and unite teammates and coworkers in working toward a common goal. As John invested in these skills his career took off, and he became a highly paid, highly sought-after developer and consultant. Today John helps more than 1.4 million programmers every year to increase their income by developing this unique blend of skills. "If you're a developer, green or a veteran, you owe it to yourself to read The Complete Software Developers Career Guide." - Jason Down, Platform Developer, Ontario, Canada What You Will Learn in This Book
- How to systematically find and fill the gaps in your technical knowledge so you can face any new challenge with confidence
- Should you take contract work - or hold out for a salaried position? Which will earn you more, what the tradeoffs are, and how your personality should sway your choice
- Ever notice how every job ever posted requires "3-5 years of experience," which you don't have? Simple solution for this frustrating chicken-and-egg problem that allows you to build legitimate job experience while you learn to code
- Is earning a computer science degree a necessity - or a total waste of time? How to get a college degree with maximum credibility and minimum debt
- Coding bootcamps - some are great, some are complete scams. How to tell the difference so you don't find yourself cheated out of $10,000
- Interviewer tells you, "Dress code is casual around here - the development team wears flipflops." What should you wear?
- How do you deal with a boss who's a micromanager. Plus how helping your manager with his goals can make you the MVP of your team
- The technical skills that every professional developer must have - but no one teaches you (most developers are missing some critical pieces, they don't teach this stuff in college, you're expected to just "know" this)
- An inside look at the recruiting industry. What that "friendly" recruiter really wants from you, how they get paid, and how to avoid getting pigeonholed into a job you'll hate
Published by: Simple Programmer | Publication date: 07/11/2017Kindle book details: Kindle Edition, 798 pages
The Ruby Programming Language is the authoritative guide to Ruby and provides comprehensive coverage of versions 1.8 and 1.9 of the language. It was written (and illustrated!) by an all-star team:
- Yukihiro "Matz" Matsumoto, creator, designer and lead developer of Ruby and author of Ruby in a Nutshell, which has been expanded and revised to become this book.
- why the lucky stiff, artist and Ruby programmer extraordinaire.
Published by: O'Reilly Media | Publication date: 01/25/2008Kindle book details: Kindle Edition, 448 pages
Updated for C11 Write powerful C programs…without becoming a technical expert! This book is the fastest way to get comfortable with C, one incredibly clear and easy step at a time. You’ll learn all the basics: how to organize programs, store and display data, work with variables, operators, I/O, pointers, arrays, functions, and much more. C programming has neverbeen this simple! Who knew how simple C programming could be? This is today’s best beginner’s guide to writing C programs–and to learning skills you can use with practically any language. Its simple, practical instructions will help you start creating useful, reliable C code, from games to mobile apps. Plus, it’s fully updated for the new C11 standard and today’s free, open source tools! Here’s a small sample of what you’ll learn: • Discover free C programming tools for Windows, OS X, or Linux • Understand the parts of a C program and how they fit together • Generate output and display it on the screen • Interact with users and respond to their input • Make the most of variables by using assignments and expressions • Control programs by testing data and using logical operators • Save time and effort by using loops and other techniques • Build powerful data-entry routines with simple built-in functions • Manipulate text with strings • Store information, so it’s easy to access and use • Manage your data with arrays, pointers, and data structures • Use functions to make programs easier to write and maintain • Let C handle all your program’s math for you • Handle your computer’s memory as efficiently as possible • Make programs more powerful with preprocessing directives
Published by: Que Publishing | Publication date: 08/02/2013Kindle book details: Kindle Edition, 354 pages