1. Search
  2. Images
  3. Maps
  4. Play
  5. YouTube
  6. News
  7. Gmail
  8. Drive
  9. More
    1. Calendar
    2. Translate
    3. Mobile
    4. Books
    5. Shopping
    6. Blogger
    7. Finance
    8. Photos
    9. Videos
    10. Docs
    11. Even more »

Account Options

  1. Sign in

    Top ebooks in programming

    The second edition of the best-selling Python book in the world (over 1 million copies sold!). A fast-paced, no-nonsense guide to programming in Python. Updated and thoroughly revised to reflect the latest in Python code and practices.

    Python Crash Course is the world's best-selling guide to the Python programming language. This fast-paced, thorough introduction to programming with Python will have you writing programs, solving problems, and making things that work in no time.

    In the first half of the book, you'll learn basic programming concepts, such as variables, lists, classes, and loops, and practice writing clean code with exercises for each topic. You'll also learn how to make your programs interactive and test your code safely before adding it to a project. In the second half, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, a set of data visualizations with Python's handy libraries, and a simple web app you can deploy online.

    As you work through the book, you'll learn how to:
    Use powerful Python libraries and tools, including Pygame, Matplotlib, Plotly, and Django
    Make 2D games that respond to keypresses and mouse clicks, and that increase in difficulty
    Use data to generate interactive visualizations
    Create and customize web apps and deploy them safely online
    Deal with mistakes and errors so you can solve your own programming problems

    If you've been thinking about digging into programming, Python Crash Course will get you writing real programs fast. Why wait any longer? Start your engines and code!
    Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively—so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14—i.e. using modern C++.

    Topics include:

    • The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions
    • The relationships among std::move, std::forward, rvalue references, and universal references
    • Techniques for writing clear, correct, effective lambda expressions
    • How std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API
    • How best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++

    Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.

    "After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".

    -- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft

    Top 3 reasons why a software engineer might be interested to work at financial firms in the capital markets area

    1) work with top Hedge Funds, Investment Banks, HFT firms, Algorithmic Trading firms, Exchanges, etc.

    2) implement smart algorithms and build low-latency, high-performance and mission-critical software with talented engineers

    3) earn top compensation

    This book will help you with interview preparation for landing high-paying software engineering jobs in the financial markets industry – Hedge Funds, Banks, Algo Trading firms, HFT firms, Exchanges, etc.

    This book contains 120+ questions with solutions/answers fully explained. Covers all topics in breadth and depth. Questions that are comparable difficulty level to those asked at top financial firms. Resources are provided to help you fill your gaps.

    Who this book is for:

    1)This book is written to help software developers who want to get into the financial markets/trading industry as trading systems developers operating in algorithmic trading, high-frequency trading, market-making, electronic trading, brokerages, exchanges, hedge funds, investment banks, and proprietary trading firms. You can work across firms involved in various asset classes such as equities, derivatives, FX, bonds, commodities, and cryptocurrencies, among others.

    2)This book serves the best for programmers who already know C++ or who are willing to learn C++. Due to the level of performance expected from these systems, most trading systems are developed in C++.

    3) This book can help you improve upon the skills necessary to get into prestigious, high paying tech jobs at financial firms. Resources are provided. Practice questions and answers help you to understand the level and type of questions expected in the interview.

    What does this book contain:

    1)Overview of the financial markets trading industry – types of firms, types of jobs, work environment and culture, compensation, methods to get job interviews, etc.

    2)For every chapter, a guideline of what kind of topics are asked in the interviews is mentioned.

    3)For every chapter, many questions with full solutions/answers are provided. These are of similar difficulty as those in real interviews, with sufficient breadth and depth.

    4)Topics covered – C++, Multithreading, Inter-Process Communication, Network Programming, Lock-free programming, Low Latency Programming and Techniques, Systems Design, Design Patterns, Coding Questions, Math Puzzles, Domain-Specific Tools, Domain Knowledge, and Behavioral Interview.

    5)Resources – a list of books for in-depth knowledge.

    6) FAQ section related to the career of software engineers in tech/quant financial firms.

    Upsides of working as Trading Systems Developer at top financial firms:

    1)Opportunity to work on cutting-edge technologies.

    2)Opportunity to work with quants, traders, and financial engineers to expand your qualitative and quantitative understanding of the financial markets.

    3)Opportunity to work with other smart engineers, as these firms tend to hire engineers with a strong engineering caliber.

    4)Top compensation with a big base salary and bonus, comparable to those of FAANG companies.

    5)Opportunity to move into quant and trader roles for the interested and motivated.

    This book will be your guideline, seriously cut down your interview preparation time, and give you a huge advantage in landing jobs at top tech/quant firms in finance.

    Book website: www.tradingsystemsengineer.com

    This practical, tutorial-style book uses the Kali Linux distribution to teach Linux basics with a focus on how hackers would use them. Topics include Linux command line basics, filesystems, networking, BASH basics, package management, logging, and the Linux kernel and drivers.

    If you're getting started along the exciting path of hacking, cybersecurity, and pentesting, Linux Basics for Hackers is an excellent first step. Using Kali Linux, an advanced penetration testing distribution of Linux, you'll learn the basics of using the Linux operating system and acquire the tools and techniques you'll need to take control of a Linux environment.

    First, you'll learn how to install Kali on a virtual machine and get an introduction to basic Linux concepts. Next, you'll tackle broader Linux topics like manipulating text, controlling file and directory permissions, and managing user environment variables. You'll then focus in on foundational hacking concepts like security and anonymity and learn scripting skills with bash and Python. Practical tutorials and exercises throughout will reinforce and test your skills as you learn how to:

    - Cover your tracks by changing your network information and manipulating the rsyslog logging utility
    - Write a tool to scan for network connections, and connect and listen to wireless networks
    - Keep your internet activity stealthy using Tor, proxy servers, VPNs, and encrypted email
    - Write a bash script to scan open ports for potential targets
    - Use and abuse services like MySQL, Apache web server, and OpenSSH
    - Build your own hacking tools, such as a remote video spy camera and a password cracker

    Hacking is complex, and there is no single way in. Why not start at the beginning with Linux Basics for Hackers?
    BRIDGE THE GAP BETWEEN NOVICE AND PROFESSIONAL

    You've completed a basic Python programming tutorial or finished Al Sweigart's bestseller, Automate the Boring Stuff with Python. What's the next step toward becoming a capable, confident software developer?

    Welcome to Beyond the Basic Stuff with Python. More than a mere collection of advanced syntax and masterful tips for writing clean code, you'll learn how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control. Sweigart takes you through best practices for setting up your development environment, naming variables, and improving readability, then tackles documentation, organization and performance measurement, as well as object-oriented design and the Big-O algorithm analysis commonly used in coding interviews. The skills you learn will boost your ability to program--not just in Python but in any language.

    You'll learn:
    Coding style, and how to use Python's Black auto-formatting tool for cleaner code
    Common sources of bugs, and how to detect them with static analyzers
    How to structure the files in your code projects with the Cookiecutter template tool
    Functional programming techniques like lambda and higher-order functions
    How to profile the speed of your code with Python's built-in timeit and cProfile modules
    The computer science behind Big-O algorithm analysis
    How to make your comments and docstrings informative, and how often to write them
    How to create classes in object-oriented programming, and why they're used to organize code

    Toward the end of the book you'll read a detailed source-code breakdown of two classic command-line games, the Tower of Hanoi (a logic puzzle) and Four-in-a-Row (a two-player tile-dropping game), and a breakdown of how their code follows the book's best practices. You'll test your skills by implementing the program yourself.

    Of course, no single book can make you a professional software developer. But Beyond the Basic Stuff with Python will get you further down that path and make you a better programmer, as you learn to write readable code that's easy to debug and perfectly Pythonic

    Requirements: Covers Python 3.6 and higher
    An approachable, hands-on guide to understanding how computers work, from low-level circuits to high-level code.

    How Computers Really Work is a hands-on guide to the computing ecosystem: everything from circuits to memory and clock signals, machine code, programming languages, operating systems, and the internet.

    But you won't just read about these concepts, you'll test your knowledge with exercises, and practice what you learn with 41 optional hands-on projects. Build digital circuits, craft a guessing game, convert decimal numbers to binary, examine virtual memory usage, run your own web server, and more.

    Explore concepts like how to:
    Think like a software engineer as you use data to describe a real world concept
    Use Ohm's and Kirchhoff's laws to analyze an electrical circuit
    Think like a computer as you practice binary addition and execute a program in your mind, step-by-step

    The book's projects will have you translate your learning into action, as you:
    Learn how to use a multimeter to measure resistance, current, and voltage
    Build a half adder to see how logical operations in hardware can be combined to perform useful functions
    Write a program in assembly language, then examine the resulting machine code
    Learn to use a debugger, disassemble code, and hack a program to change its behavior without changing the source code
    Use a port scanner to see which internet ports your computer has open
    Run your own server and get a solid crash course on how the web works

    And since a picture is worth a thousand bytes, chapters are filled with detailed diagrams and illustrations to help clarify technical complexities.

    Requirements: The projects require a variety of hardware - electronics projects need a breadboard, power supply, and various circuit components; software projects are performed on a Raspberry Pi. Appendix B contains a complete list. Even if you skip the projects, the book's major concepts are clearly presented in the main text.
    Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you're going to need to know more than just the language. The case studies and strategies in this book will get you there. Learn the best practices for the whole life of your application, from design and team-building, to managing stakeholders, to deployment and monitoring. Go beyond the syntax and the tools to learn the techniques you need to develop your Elixir application from concept to production.

    Learn real-life strategies from the people who built Elixir and use it successfully at scale. See how Ben Marx and Bleacher Report maintain one of the highest-traffic Elixir applications by selling the concept to management and delivering on that promise. Find out how Bruce Tate and icanmakeitbetter hire and train Elixir engineers, and the techniques they've employed to design and ensure code consistency since Elixir's early days. Explore customer challenges in deploying and monitoring distributed applications with Elixir creator Jose Valim and Plataformatec.

    Make a business case and build a team before you finish your first prototype. Once you're in development, form strategies for organizing your code and learning the constraints of the runtime and ecosystem. Convince stakeholders, both business and technical, about the value they can expect. Prepare to make the critical early decisions that will shape your application for years to come. Manage your deployment with all of the knobs and gauges that good DevOps teams demand. Decide between the many options available for deployment, and how to best prepare yourself for the challenges of running a production application.

    This book picks up where most Elixir books leave off. It won't teach you to program Elixir, or any of its tools. Instead, it guides you through the broader landscape and shows you a holistic approach to adopting the language.

    What You Need:

    This book works with any version of Elixir.

    Summary

    Get Programming with Go introduces you to the powerful Go language without confusing jargon or high-level theory. By working through 32 quick-fire lessons, you'll quickly pick up the basics of the innovative Go programming language!

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

    About the Technology

    Go is a small programming language designed by Google to tackle big problems. Large projects mean large teams with people of varying levels of experience. Go offers a small, yet capable, language that can be understood and used by anyone, no matter their experience.

    About the Book

    Hobbyists, newcomers, and professionals alike can benefit from a fast, modern language; all you need is the right resource! Get Programming with Go provides a hands-on introduction to Go language fundamentals, serving as a solid foundation for your future programming projects. You'll master Go syntax, work with types and functions, and explore bigger ideas like state and concurrency, with plenty of exercises to lock in what you learn.

    What's inside

    • Language concepts like slices, interfaces, pointers, and concurrency
    • Seven capstone projects featuring spacefaring gophers, Mars rovers, ciphers, and simulations
    • All examples run in the Go Playground - no installation required!

    About the Reader

    This book is for anyone familiar with computer programming, as well as anyone with the desire to learn.

    About the Author

    Nathan Youngman organizes the Edmonton Go meetup and is a mentor with Canada Learning Code. Roger Peppé contributes to Go and runs the Newcastle upon Tyne Go meetup.

    Table of Contents

      Unit 0 - GETTING STARTED
    1. Get ready, get set, Go
    2. Unit 1 - IMPERATIVE PROGRAMMING
    3. A glorified calculator
    4. Loops and branches
    5. Variable scope
    6. Capstone: Ticket to Mars
    7. Unit 2 - TYPES
    8. Real numbers
    9. Whole numbers
    10. Big numbers
    11. Multilingual text
    12. Converting between types
    13. Capstone: The Vigenère cipher
    14. Unit 3 - BUILDING BLOCKS
    15. Functions
    16. Methods
    17. First-class functions
    18. Capstone: Temperature tables
    19. Unit 4 - COLLECTIONS
    20. Arrayed in splendor
    21. Slices: Windows into arrays
    22. A bigger slice
    23. The ever-versatile map
    24. Capstone: A slice of life
    25. Unit 5 - STATE AND BEHAVIOR
    26. A little structure
    27. Go's got no class
    28. Composition and forwarding
    29. Interfaces
    30. Capstone: Martian animal sanctuary
    31. Unit 6 - DOWN THE GOPHER HOLE
    32. A few pointers
    33. Much ado about nil
    34. To err is human
    35. Capstone: Sudoku rules
    36. Unit 7 - CONCURRENT PROGRAMMING
    37. Goroutines and concurrency
    38. Concurrent state
    39. Capstone: Life on Mars
    "The computer world is like an intellectual Wild West, in which you can shoot anyone you wish with your ideas, if you're willing to risk the consequences. " --from Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham

    We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?

    Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.

    Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls "an intellectual Wild West."

    The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.

    A detailed introduction to the C programming language for experienced programmers.

    The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era--covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems.

    Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience.

    You'll learn:
    How to identify and handle undefined behavior in a C program
    The range and representations of integers and floating-point values
    How dynamic memory allocation works and how to use nonstandard functions
    How to use character encodings and types
    How to perform I/O with terminals and filesystems using C Standard streams and POSIX file descriptors
    How to understand the C compiler's translation phases and the role of the preprocessor
    How to test, debug, and analyze C programs

    Effective C will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
    he fun, fast, and easy way to learn programming fundamentals and essentials – from C to Visual Basic and all the languages in between

    So you want to be a programmer? Or maybe you just want to make your computer do what YOU want for a change? Maybe you enjoy the challenge of identifying a problem and solving it. If programming intrigues you (for whatever reason), Beginning Programming All-In-One Desk Reference For Dummies is like having a starter programming library all in one handy, if hefty, book.

    In this practical guide, you’ll find out about algorithms, best practices, compiling, debugging your programs, and much more. The concepts are illustrated in several different programming languages, so you’ll get a feel for the variety of languages and the needs they fill.

    Inside you’ll discover seven minibooks:

    • Getting Started: From learning methods for writing programs to becoming familiar with types of programming languages, you’ll lay the foundation for your programming adventure with this minibook.
    • Programming Basics: Here you’ll dive into how programs work, variables, data types, branching, looping, subprograms, objects, and more.
    • Data Structures: From structures, arrays, sets, linked lists, and collections, to stacks, queues, graphs, and trees, you’ll dig deeply into the data.
    • Algorithms: This minibook shows you how to sort and search algorithms, how to use string searching, and gets into data compression and encryption.
    • Web Programming: Learn everything you need to know about coding for the web: HyperText. Markup Language (better known simply as HTML), CSS, JavaScript, PHP, and Ruby.
    • Programming Language Syntax: Introduces you to the syntax of various languages – C, C++, Java, C#, Perl, Python, Pascal, Delphi, Visual Basic, REALbasic – so you know when to use which one.
    • Applications: This is the fun part where you put your newly developed programming skills to work in practical ways.

    Additionally, Beginning Programming All-In-One Desk Reference For Dummies shows you how to decide what you want your program to do, turn your instructions into “machine language” that the computer understands, use programming best practices, explore the “how” and “why” of data structuring, and more. And you’ll get a look into various applications like database management, bioinformatics, computer security, and artificial intelligence. After you get this book and start coding, you’ll soon realize that — wow! You’re a programmer!

    Want to design your own video games? Let expert Scott Rogers show you how!

    If you want to design and build cutting-edge video games but aren’t sure where to start, then the SECOND EDITION of the acclaimed Level Up! is for you! Written by leading video game expert Scott Rogers, who has designed the hits Pac Man World, Maximo and SpongeBob Squarepants, this updated edition provides clear and well-thought out examples that forgo theoretical gobbledygook with charmingly illustrated concepts and solutions based on years of professional experience.

    Level Up! 2nd Edition has been NEWLY EXPANDED to teach you how to develop marketable ideas, learn what perils and pitfalls await during a game’s pre-production, production and post-production stages, and provide even more creative ideas to serve as fuel for your own projects including:
    • Developing your game design from the spark of inspiration all the way to production
    • Learning how to design the most exciting levels, the most precise controls, and the fiercest foes that will keep your players challenged
    • Creating games for mobile and console systems – including detailed rules for touch and motion controls
    • Monetizing your game from the design up
    • Writing effective and professional design documents with the help of brand new examples

    Level Up! 2nd Edition is includes all-new content, an introduction by David “God of War” Jaffe and even a brand-new chili recipe –making it an even more indispensable guide for video game designers both “in the field” and the classroom.

    Grab your copy of Level Up! 2nd Edition and let’s make a game!

    A comprehensive guide to exploring software architecture concepts and implementing best practicesKey Features
    • Enhance your skills to grow your career as a software architect
    • Design efficient software architectures using patterns and best practices
    • Learn how software architecture relates to an organization as well as software development methodology
    Book Description

    The Software Architect’s Handbook is a comprehensive guide to help developers, architects, and senior programmers advance their career in the software architecture domain. This book takes you through all the important concepts, right from design principles to different considerations at various stages of your career in software architecture.

    The book begins by covering the fundamentals, benefits, and purpose of software architecture. You will discover how software architecture relates to an organization, followed by identifying its significant quality attributes. Once you have covered the basics, you will explore design patterns, best practices, and paradigms for efficient software development.

    The book discusses which factors you need to consider for performance and security enhancements. You will learn to write documentation for your architectures and make appropriate decisions when considering DevOps. In addition to this, you will explore how to design legacy applications before understanding how to create software architectures that evolve as the market, business requirements, frameworks, tools, and best practices change over time.

    By the end of this book, you will not only have studied software architecture concepts but also built the soft skills necessary to grow in this field.

    What you will learn
    • Design software architectures using patterns and best practices
    • Explore the different considerations for designing software architecture
    • Discover what it takes to continuously improve as a software architect
    • Create loosely coupled systems that can support change
    • Understand DevOps and how it affects software architecture
    • Integrate, refactor, and re-architect legacy applications
    Who this book is for

    The Software Architect’s Handbook is for you if you are a software architect, chief technical officer (CTO), or senior developer looking to gain a firm grasp of software architecture.

    An In-depth guide updated with the latest version of Qt 5.11 including new features such as Quick Controls and Qt GamepadKey Features
    • Unleash the power of Qt 5.11 with C++
    • Build applications using Qt Widgets (C++) or Qt Quick (QML)
    • Create cross-platform applications for mobile and desktop platforms with Qt 5
    Book Description

    Qt 5.11 is an app development framework that provides a great user experience and develops full capability applications with Qt Widgets, QML, and even Qt 3D. Whether you're building GUI prototypes or fully-fledged cross-platform GUI applications with a native look and feel, Mastering Qt 5 is your fastest, easiest, and most powerful solution. This book addresses various challenges and teaches you to successfully develop cross-platform applications using the Qt framework, with the help of well-organized projects.

    Working through this book, you will gain a better understanding of the Qt framework, as well as the tools required to resolve serious issues, such as linking, debugging, and multithreading. You'll start off your journey by discovering the new Qt 5.11 features, soon followed by exploring different platforms and learning to tame them. In addition to this, you'll interact with a gamepad using Qt Gamepad. Each chapter is a logical step for you to complete in order to master Qt.

    By the end of this book, you'll have created an application that has been tested and is ready to be shipped.

    What you will learn
    • Create stunning UIs with Qt Widgets and Qt Quick 2
    • Develop powerful, cross-platform applications with the Qt framework
    • Design GUIs with the Qt Designer and build a library in it for UI previews
    • Handle user interaction with the Qt signal or slot mechanism in C++
    • Prepare a cross-platform project to host a third-party library
    • Use the Qt Animation framework to display stunning effects
    • Deploy mobile apps with Qt and embedded platforms
    • Interact with a gamepad using Qt Gamepad
    Who this book is for

    Mastering Qt 5 is for developers and programmers who want to build GUI-based applications. C++ knowledge is necessary, and knowing QT basics will help you get the most out of this book.

    Uncover modern Python with this guide to Python data structures, design patterns, and effective object-oriented techniquesKey Features
    • In-depth analysis of many common object-oriented design patterns that are more suitable to Python's unique style
    • Learn the latest Python syntax and libraries
    • Explore abstract design patterns and implement them in Python 3.8
    Book Description

    Object-oriented programming (OOP) is a popular design paradigm in which data and behaviors are encapsulated in such a way that they can be manipulated together. This third edition of Python 3 Object-Oriented Programming fully explains classes, data encapsulation, and exceptions with an emphasis on when you can use each principle to develop well-designed software.

    Starting with a detailed analysis of object-oriented programming, you will use the Python programming language to clearly grasp key concepts from the object-oriented paradigm. You will learn how to create maintainable applications by studying higher level design patterns. The book will show you the complexities of string and file manipulation, and how Python distinguishes between binary and textual data. Not one, but two very powerful automated testing systems, unittest and pytest, will be introduced in this book. You'll get a comprehensive introduction to Python's concurrent programming ecosystem.

    By the end of the book, you will have thoroughly learned object-oriented principles using Python syntax and be able to create robust and reliable programs confidently.

    What you will learn
    • Implement objects in Python by creating classes and defining methods
    • Grasp common concurrency techniques and pitfalls in Python 3
    • Extend class functionality using inheritance
    • Understand when to use object-oriented features, and more importantly when not to use them
    • Discover what design patterns are and why they are different in Python
    • Uncover the simplicity of unit testing and why it's so important in Python
    • Explore concurrent object-oriented programming
    Who this book is for

    If you're new to object-oriented programming techniques, or if you have basic Python skills and wish to learn in depth how and when to correctly apply OOP in Python, this is the book for you. If you are an object-oriented programmer for other languages or seeking a leg up in the new world of Python 3.8, you too will find this book a useful introduction to Python. Previous experience with Python 3 is not necessary.

    What others in the trenches say about The Pragmatic Programmer...

    “The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.”

    Kent Beck, author of Extreme Programming Explained: Embrace Change

    “I found this book to be a great mix of solid advice and wonderful analogies!”

    Martin Fowler, author of Refactoring and UML Distilled

    “I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.”

    Kevin Ruland, Management Science, MSG-Logistics

    “The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.”

    John Lakos, author of Large-Scale C++ Software Design

    “This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.”

    Eric Vought, Software Engineer

    “Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.”

    Pete McBreen, Independent Consultant

    “Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.”

    Jared Richardson, Senior Software Developer, iRenaissance, Inc.

    “I would like to see this issued to every new employee at my company....”

    Chris Cleeland, Senior Software Engineer, Object Computing, Inc.

    “If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.”

    Ward Cunningham

    Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to

    • Fight software rot;
    • Avoid the trap of duplicating knowledge;
    • Write flexible, dynamic, and adaptable code;
    • Avoid programming by coincidence;
    • Bullet-proof your code with contracts, assertions, and exceptions;
    • Capture real requirements;
    • Test ruthlessly and effectively;
    • Delight your users;
    • Build teams of pragmatic programmers; and
    • Make your developments more precise with automation.

    Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.



    Get to grips with the advanced features of Apex programming for Salesforce developers using this comprehensive guideKey Features
    • Discover how to build reliable applications with Apex by avoiding common mistakes and pitfalls
    • Learn how to use the different asynchronous programming tools in Apex
    • Profile and improve the performance of your Apex code
    Book Description

    As applications built on the Salesforce platform are now a key part of many organizations, developers are shifting focus to Apex, Salesforce’s proprietary programming language. As a Salesforce developer, it is important to understand the range of tools at your disposal, how and when to use them, and best practices for working with Apex. Mastering Apex Programming will help you explore the advanced features of Apex programming and guide you in delivering robust solutions that scale.

    This book starts by taking you through common Apex mistakes, debugging, exception handling, and testing. You'll then discover different asynchronous Apex programming options and develop custom Apex REST web services. The book shows you how to define and utilize Batch Apex, Queueable Apex, and Scheduled Apex using common scenarios before teaching you how to define, publish, and consume platform events and RESTful endpoints with Apex. Finally, you'll learn how to profile and improve the performance of your Apex application, including architecture trade-offs.

    With code examples used to facilitate discussion throughout, by the end of the book, you'll have developed the skills needed to build robust and scalable applications in Apex.

    What you will learn
    • Understand common coding mistakes in Apex and how to avoid them using best practices
    • Find out how to debug a Salesforce Apex application effectively
    • Explore different asynchronous Apex options and their common use cases
    • Discover tips to work effectively with platform events
    • Develop custom Apex REST services to allow inbound integrations
    • Build complex logic and processes on the Salesforce platform
    Who this book is for

    This book is for Salesforce developers who are interested in mastering Apex programming skills. You’ll also find this book helpful if you’re an experienced Java or C# developer looking to switch to Apex programming for developing apps on the Salesforce platform. Basic Apex programming knowledge is essential to understand the concepts covered.

    Solve real-world data problems with R and machine learningKey Features
    • Third edition of the bestselling, widely acclaimed R machine learning book, updated and improved for R 3.6 and beyond
    • Harness the power of R to build flexible, effective, and transparent machine learning models
    • Learn quickly with a clear, hands-on guide by experienced machine learning teacher and practitioner, Brett Lantz
    Book Description

    Machine learning, at its core, is concerned with transforming data into actionable knowledge. R offers a powerful set of machine learning methods to quickly and easily gain insight from your data.

    Machine Learning with R, Third Edition provides a hands-on, readable guide to applying machine learning to real-world problems. Whether you are an experienced R user or new to the language, Brett Lantz teaches you everything you need to uncover key insights, make new predictions, and visualize your findings.

    This new 3rd edition updates the classic R data science book to R 3.6 with newer and better libraries, advice on ethical and bias issues in machine learning, and an introduction to deep learning. Find powerful new insights in your data; discover machine learning with R.

    What you will learn
    • Discover the origins of machine learning and how exactly a computer learns by example
    • Prepare your data for machine learning work with the R programming language
    • Classify important outcomes using nearest neighbor and Bayesian methods
    • Predict future events using decision trees, rules, and support vector machines
    • Forecast numeric data and estimate financial values using regression methods
    • Model complex processes with artificial neural networks — the basis of deep learning
    • Avoid bias in machine learning models
    • Evaluate your models and improve their performance
    • Connect R to SQL databases and emerging big data technologies such as Spark, H2O, and TensorFlow
    Who this book is for

    Data scientists, students, and other practitioners who want a clear, accessible guide to machine learning with R.

    A riveting account of espionage for the digital age, from one of America’s leading intelligence experts

    Spying has never been more ubiquitous—or less understood. The world is drowning in spy movies, TV shows, and novels, but universities offer more courses on rock and roll than on the CIA and there are more congressional experts on powdered milk than espionage. This crisis in intelligence education is distorting public opinion, fueling conspiracy theories, and hurting intelligence policy. In Spies, Lies, and Algorithms, Amy Zegart separates fact from fiction as she offers an engaging and enlightening account of the past, present, and future of American espionage as it faces a revolution driven by digital technology.

    Drawing on decades of research and hundreds of interviews with intelligence officials, Zegart provides a history of U.S. espionage, from George Washington’s Revolutionary War spies to today’s spy satellites; examines how fictional spies are influencing real officials; gives an overview of intelligence basics and life inside America’s intelligence agencies; explains the deadly cognitive biases that can mislead analysts; and explores the vexed issues of traitors, covert action, and congressional oversight. Most of all, Zegart describes how technology is empowering new enemies and opportunities, and creating powerful new players, such as private citizens who are successfully tracking nuclear threats using little more than Google Earth. And she shows why cyberspace is, in many ways, the ultimate cloak-and-dagger battleground, where nefarious actors employ deception, subterfuge, and advanced technology for theft, espionage, and information warfare.

    A fascinating and revealing account of espionage for the digital age, Spies, Lies, and Algorithms is essential reading for anyone who wants to understand the reality of spying today.
    Learn Unity game development with C# through a series of practical projects ranging from building a simple 2D game to adding AR/VR experiences and machine learning capabilities in a simple yet effective wayKey Features
    • Gain a high-level overview of the Unity game engine while building your own games portfolio
    • Discover best practices for implementing game animation, game physics, shaders, and effects
    • Create fully featured apps, including Space shooter and a 2D adventure game, and develop AR/VR experiences and Game AI agents
    Book Description

    The Unity game engine, used by millions of developers around the world, is popular thanks to its features that enable you to create games and 3D apps for desktop and mobile platforms in no time. With Unity 2020, this state-of-the-art game engine introduces enhancements in Unity tooling, editor, and workflow, among many other additions.

    The third edition of this Unity book is updated to the new features in Unity 2020 and modern game development practices. Once you’ve quickly got to grips with the fundamentals of Unity game development, you’ll create a collection, a twin-stick shooter, and a 2D adventure game. You’ll then explore advanced topics such as machine learning, virtual reality, and augmented reality by building complete projects using the latest game tool kit. As you implement concepts in practice, this book will ensure that you come away with a clear understanding of Unity game development.

    By the end of the book, you'll have a firm foundation in Unity development using C#, which can be applied to other engines and programming languages. You'll also be able to create several real-world projects to add to your professional game development portfolio.

    What you will learn
    • Learn the fundamentals of game development, including GameObjects, components, and scenes
    • Develop a variety of games in C# and explore the brand new sprite shaping tool for Unity 3D and 2D games
    • Handle player controls and input functionality for your Unity games
    • Implement AI techniques such as pathfinding, finite state machines, and machine learning using Unity ML-Agents
    • Create virtual and augmented reality games using UnityVR and AR Foundation
    • Explore the cutting-edge features of Unity 2020 and how they can be used to improve your games
    Who this book is for

    If you are a game developer or programmer new to Unity and want to get up and running with the game engine in a hands-on way, this book is for you. Unity developers looking to work on practical projects to explore new features in Unity 2020 will find this book useful. A basic understanding of C# programming is required.

    In just 24 sessions of one hour or less, this guide will help you create great 2D and 3D games for any platform with the 100% free Godot 3.0 game engine. Its straightforward, step-by-step approach guides you from basic scenes, graphics, and game flow through advanced shaders, environments, particle rendering, and networked games. Godot’s co-creator and main contributorwalk you through building three complete games, offering advanced techniques you won’t find anywhere else.


    Every lesson builds on what you’ve already learned, giving you a rock-solid foundation for real-world success.


    Step-by-step instructions carefully walk you through the most common Godot engine programming tasks and techniques

    Practical, hands-on examples show you how to apply what you learn

    Quizzes and exercises help you test your knowledge and stretch your skills

    Notes and tips point out shortcuts, solutions, and problems to avoid

    Learn how to…

    · Install Godot, create projects, and use the visual editor

    · Master the scene system, and organize games with Scene Trees

    · Create 2D graphics, 3D graphics, and animations

    · Use basic and advanced scripting to perform many game tasks

    · Process player input from any source

    · Control game flow, configurations, and resources

    · Maximize realism with Godot’s physics and particle systems

    · Make the most of 3D shaders, materials, lighting, and shadows

    · Control effects and post-processing

    · Build richer, more sophisticated game universes with viewports

    · Develop networked games, from concepts to communication and input

    · Export games to the devices you’ve targeted

    · Integrate native code, third-party APIs, and engine extensions (bonus chapter)

    Enterprise Agility is practical framework for enhancing Agility and equipping your company with the tools to survive. Key Features
    • Prepare your company to navigate the rapidly-moving business world
    • Enhance Agility in every component of your organization
    • Build a framework that meets the unique requirements of your enterprise
    Book Description

    The biggest challenge enterprises face today is dealing with fast-paced change in all spheres of business. Enterprise Agility shows how an enterprise can address this challenge head on and thrive in the dynamic environment. Avoiding the mechanistic construction of existing enterprises that focus on predictability and certainty, Enterprise Agility delivers practical advice for responding and adapting to the scale and accelerating pace of disruptive change in the business environment.

    Agility is a fundamental shift in thinking about how enterprises work to effectively deal with disruptive changes in the business environment. The core belief underlying agility is that enterprises are open and living systems. These living systems, also known as complex adaptive systems (CAS), are ideally suited to deal with change very effectively.

    Agility is to enterprises what health is to humans. There are some foundational principles that can be broadly applied, but the definition of healthy is very specific to each individual. Enterprise Agility takes a similar approach with regard to agility: it suggests foundational practices to improve the overall health of the body—culture, mindset, and leadership—and the health of its various organs: people, process, governance, structure, technology, and customers. The book also suggests a practical framework to create a plan to enhance agility.

    What you will learn
    • Drive agility-oriented change across the enterprise
    • Understand why agility matters (more than ever) to modern enterprises
    • Adopt and influence an Agile mindset in your teams and in your organization
    • Understand the concept of a CAS and how to model enterprise and leadership behaviors on CAS characteristics to enhance enterprise agility
    • Understand and convey the differences between Agile and true enterprise agility
    • Create an enterprise-specific action plan to enhance agility
    • Become a champion for enterprise agility
    • Recognize the advantages and challenges of distributed teams, and how Agile ways of working can remedy the rough spots
    • Enable and motivate your IT partners to adopt Agile ways of working
    Who this book is for

    Enterprise Agility is a tool for anyone with the motivation to influence outcomes in an enterprise, who aspires to improve Agility. Readers from the following backgrounds will benefit: chief executive officer, chief information officer, people/human resource director, information technology director, head of change program, head of transformation, and Agile coach/consultant.

    Explore GPU-enabled programmable environment for machine learning, scientific applications, and gaming using PuCUDA, PyOpenGL, and Anaconda AccelerateKey Features
    • Understand effective synchronization strategies for faster processing using GPUs
    • Write parallel processing scripts with PyCuda and PyOpenCL
    • Learn to use the CUDA libraries like CuDNN for deep learning on GPUs
    Book Description

    GPUs are proving to be excellent general purpose-parallel computing solutions for high performance tasks such as deep learning and scientific computing.

    This book will be your guide to getting started with GPU computing. It will start with introducing GPU computing and explain the architecture and programming models for GPUs. You will learn, by example, how to perform GPU programming with Python, and you’ll look at using integrations such as PyCUDA, PyOpenCL, CuPy and Numba with Anaconda for various tasks such as machine learning and data mining. Going further, you will get to grips with GPU work flows, management, and deployment using modern containerization solutions. Toward the end of the book, you will get familiar with the principles of distributed computing for training machine learning models and enhancing efficiency and performance.

    By the end of this book, you will be able to set up a GPU ecosystem for running complex applications and data models that demand great processing capabilities, and be able to efficiently manage memory to compute your application effectively and quickly.

    What you will learn
    • Utilize Python libraries and frameworks for GPU acceleration
    • Set up a GPU-enabled programmable machine learning environment on your system with Anaconda
    • Deploy your machine learning system on cloud containers with illustrated examples
    • Explore PyCUDA and PyOpenCL and compare them with platforms such as CUDA, OpenCL and ROCm.
    • Perform data mining tasks with machine learning models on GPUs
    • Extend your knowledge of GPU computing in scientific applications
    Who this book is for

    Data Scientist, Machine Learning enthusiasts and professionals who wants to get started with GPU computation and perform the complex tasks with low-latency. Intermediate knowledge of Python programming is assumed.

    Master machine learning concepts and develop real-world solutions


    Machine learning offers immense opportunities, and Introducing Machine Learning delivers practical knowledge to make the most of them. Dino and Francesco Esposito start with a quick overview of the foundations of artificial intelligence and the basic steps of any machine learning project. Next, they introduce Microsoft’s powerful ML.NET library, including capabilities for data processing, training, and evaluation. They present families of algorithms that can be trained to solve real-life problems, as well as deep learning techniques utilizing neural networks. The authors conclude by introducing valuable runtime services available through the Azure cloud platform and consider the long-term business vision for machine learning.



    · 14-time Microsoft MVP Dino Esposito and Francesco Esposito help you


    · Explore what’s known about how humans learn and how intelligent software is built

    · Discover which problems machine learning can address

    · Understand the machine learning pipeline: the steps leading to a deliverable model

    · Use AutoML to automatically select the best pipeline for any problem and dataset

    · Master ML.NET, implement its pipeline, and apply its tasks and algorithms

    · Explore the mathematical foundations of machine learning

    · Make predictions, improve decision-making, and apply probabilistic methods

    · Group data via classification and clustering

    · Learn the fundamentals of deep learning, including neural network design

    · Leverage AI cloud services to build better real-world solutions faster


    About This Book


    · For professionals who want to build machine learning applications: both developers who need data science skills and data scientists who need relevant programming skills

    · Includes examples of machine learning coding scenarios built using the ML.NET library

    A step-by-step guide to learning Flutter and Dart 2 for creating Android and iOS mobile applicationsKey Features
    • Get up to speed with the basics of Dart programming and delve into Flutter development
    • Understand native SDK and third-party libraries for building Android and iOS applications using Flutter
    • Package and deploy your Flutter apps to achieve native-like performance
    Book Description

    Google Flutter is a cross-platform mobile framework that makes it easy to write high-performance apps for Android and iOS. This book will help you get to grips with the basics of the Flutter framework and the Dart programming language.

    Starting from setting up your development environment, you’ll learn to design the UI and add user input functions. You'll explore the navigator widget to manage app routes and learn to add transitions between screens. The book will even guide you through developing your own plugin and later, you’ll discover how to structure good plugin code. Using the Google Places API, you'll also understand how to display a map in the app and add markers and interactions to it. You’ll then learn to improve the user experience with features such as map integrations, platform-specific code with native languages, and personalized animation options for designing intuitive UIs.

    The book follows a practical approach and gives you access to all relevant code files hosted at github.com/PacktPublishing/Flutter-for-Beginners. This will help you access a variety of examples and prepare your own bug-free apps, ready to deploy on the App Store and Google Play Store.

    By the end of this book, you’ll be well-versed with Dart programming and have the skills to develop your own mobile apps or build a career as a Dart and Flutter app developer.

    What you will learn
    • Understand the fundamentals of the Dart programming language
    • Explore the core concepts of the Flutter UI and how it compiles for multiple platforms
    • Develop Flutter plugins and widgets and understand how to structure plugin code appropriately
    • Style your Android and iOS apps with widgets and learn the difference between stateful and stateless widgets
    • Add animation to your UI using Flutter's AnimatedBuilder component
    • Integrate your native code into your Flutter codebase for native app performance
    Who this book is for

    This book is for developers looking to learn Google's revolutionary framework Flutter from scratch. No prior knowledge of Flutter or Dart is required; however, basic knowledge of any programming language will be helpful.

    A step-by-step instructional guide to understanding the fundamentals of game development with OpenGL. Right from the setup to the important features, we'll get a better understanding of games and the engines behind them.Key Features
    • Learn the basics of drawing along with fundamentals of shading to create amazing objects.
    • Get in-depth knowledge of lighting and materials to make realistic objects.
    • Understand the fundamentals of model loading and cube mapping.
    Book Description

    Learn OpenGL is your one-stop reference guide to get started with OpenGL and C++ for game development. From setting up the development environment to getting started with basics of drawing and shaders, along with concepts such as lighting, model loading, and cube mapping, this book will get you up to speed with the fundamentals.

    You begin by setting up your development environment to use OpenGL on Windows and macOS. With GLFW and GLEW set up using absolute and relative linking done, you are ready to setup SDL and SFML for both the operating systems.

    Now that your development environment is set up, you'll learn to draw using simple shaders as well as make the shader more adaptable and reusable. Then we move on to more advanced topics like texturing your objects with images and transforming your objects using translate, rotate and scale.

    With these concepts covered, we'll move on to topics like lighting to enable you to incorporate amazing dynamic lights in your game world.

    By the end of the book, you'll learn about model loading, right from setting up ASSIMP to learning about the model class and loading a model in your game environment. We will conclude by understanding cube mapping to bring advance worlds to your game.

    What you will learn
    • Set up GLFW and GLEW on Windows and macOS with absolute, relative Linking
    • Set up SDL and SFML on your system using absolute and relative Linking
    • Draw using the simple shaders
    • Create a camera and learn to populate your game world with objects
    • Learn about color and lighting concepts to create an amazing game world
    • Understand model loading and cube mapping to advance your game
    Who this book is for

    This book is targeted towards anyone and everyone who is interested in creating games, learning how game engines work and most importantly for anyone who is interested in learning OpenGL. The ideal reader for this book would be anyone with a passion for learning game development or looking out for an OpenGL reference guide. The skills that you'll learn in this book will be applicable to all your game development needs. You'll require a strong foundation in C++ to understand and apply the concepts of this book.

    Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually.

    The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e

    ISBN: 0321751043

    Art of Computer Programming, Volume 1, Fascicle 1, The: MMIX -- A RISC Computer for the New Millennium

    This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his "cookbook" solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books.

    To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published t regular intervals. Each fascicle will encompass a section or more of wholly new or evised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete.

    Volume 1, Fascicle 1

    This first fascicle updates The Art of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms, and ultimately will become part of the fourth edition of that book. Specifically, it provides a programmer's introduction to the long-awaited MMIX, a RISC-based computer that replaces the original MIX, and describes the MMIX assembly language. The fascicle also presents new material on subroutines, coroutines, and interpretive routines.

    Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP),http://msp.org



    ©2022 GoogleSite Terms of ServicePrivacyDevelopersAbout Google Play|Location: United StatesLanguage: English
    By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.