The Self-Taught Programmer: The Definitive Guide to Programming Professionally


Cory Althoff - 2017
    After a year of self-study, I learned to program well enough to land a job as a software engineer II at eBay. Once I got there, I realized I was severely under-prepared. I was overwhelmed by the amount of things I needed to know but hadn't learned yet. My journey learning to program, and my experience at my first job as a software engineer were the inspiration for this book. This book is not just about learning to program; although you will learn to code. If you want to program professionally, it is not enough to learn to code; that is why, in addition to helping you learn to program, I also cover the rest of the things you need to know to program professionally that classes and books don't teach you. "The Self-taught Programmer" is a roadmap, a guide to take you from writing your first Python program, to passing your first technical interview. I divided the book into five sections: 1. Start to program in Python 3 and build your first program.2. Learn Object-oriented programming and create a powerful Python program to get you hooked.3. Learn to use tools like Git, Bash, and regular expressions. Then use your new coding skills to build a web scraper.4. Study Computer Science fundamentals like data structures and algorithms.5. Finish with best coding practices, tips for working with a team, and advice on landing a programming job.You CAN learn to program professionally. The path is there. Will you take it?

The Art of Multiprocessor Programming


Maurice Herlihy - 2008
    To leverage the performance and power of multiprocessor programming, also known as multicore programming, programmers need to learn the new principles, algorithms, and tools.The book will be of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines. This change in the industry is so fundamental that it is certain to require a significant response by universities, and courses on multicore programming will become a staple of computer science curriculums.This book includes fully-developed Java examples detailing data structures, synchronization techniques, transactional memory, and more.Students in multiprocessor and multicore programming courses and engineers working with multiprocessor and multicore systems will find this book quite useful.

Eloquent JavaScript: A Modern Introduction to Programming


Marijn Haverbeke - 2010
    I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!" —Brendan Eich, creator of JavaScriptJavaScript is the language of the Web, and it's at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible and complex language, capable of much more than the showy tricks most programmers use it for.Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that's elegant and effective. You'll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you'll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.Along the way you'll learn to:Master basic programming techniques and best practices Harness the power of functional and object-oriented programming Use regular expressions to quickly parse and manipulate strings Gracefully deal with errors and browser incompatibilities Handle browser events and alter the DOM structure Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?

Working at the Ubuntu Command-Line Prompt


Keir Thomas - 2011
    His books have been read by over 1,000,000 people and are #1 best-sellers. His book Beginning Ubuntu Linux recently entered its sixth edition, and picked-up a Linux Journal award along the way. Thomas is also the author of Ubuntu Kung Fu. * * * * * * * * * * * * * * * * * Get to grips with the Ubuntu command-line with this #1 best-selling and concise guide. "Best buck I've spent yet" — Amazon review.* Readable, accessible and easy to understand;* Learn essential Ubuntu vocational skills, or read just for fun;* Covers Ubuntu commands, syntax, the filesystem, plus advanced techniques;* For ANY version of Linux based on Debian, such as Linux Mint--not just Ubuntu!;* Includes BONUS introduction to Ubuntu chapter, plus a glossary appendix and a guide to reading Linux/Unix documentation.

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

Async JavaScript


Trevor Burnham - 2012
    Even experienced JavaScripters sometimes find themselves overwhelmed as complex apps grow into a tangled web of callbacks.With Async JavaScript, you'll learn about:Event schedulingThe PubSub patternPromises and Deferred objectsFlow control with Async.jsRecipes for common async scenariosMulti-threading with Web WorkersAltJS languagesand more, with examples tailored to jQuery and Node.js.

In the Beginning...Was the Command Line


Neal Stephenson - 1999
    And considering that the "one man" is Neal Stephenson, "the hacker Hemingway" (Newsweek) -- acclaimed novelist, pragmatist, seer, nerd-friendly philosopher, and nationally bestselling author of groundbreaking literary works (Snow Crash, Cryptonomicon, etc., etc.) -- the word is well worth hearing. Mostly well-reasoned examination and partial rant, Stephenson's In the Beginning... was the Command Line is a thoughtful, irreverent, hilarious treatise on the cyber-culture past and present; on operating system tyrannies and downloaded popular revolutions; on the Internet, Disney World, Big Bangs, not to mention the meaning of life itself.

The Elements of Computing Systems: Building a Modern Computer from First Principles


Noam Nisan - 2005
    The books also provides a companion web site that provides the toold and materials necessary to build the hardware and software.

The Linux Command Line


William E. Shotts Jr. - 2012
    Available here:readmeaway.com/download?i=1593279523The Linux Command Line, 2nd Edition: A Complete Introduction PDF by William ShottsRead The Linux Command Line, 2nd Edition: A Complete Introduction PDF from No Starch Press,William ShottsDownload William Shotts’s PDF E-book The Linux Command Line, 2nd Edition: A Complete Introduction

Software Design Decoded: 66 Ways Experts Think


Marian Petre - 2016
    Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software.The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, "Experts generate alternatives" is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful.Organized into such categories as "Experts reflect," "Experts are not afraid," and "Experts break the rules," the insights range from "Experts prefer simple solutions" to "Experts see error as opportunity." Readers learn that "Experts involve the user"; "Experts take inspiration from wherever they can"; "Experts design throughout the creation of software"; and "Experts draw the problem as much as they draw the solution."One habit for an aspiring expert software designer to develop would be to read and reread this entertaining but essential little book. The insights described offer a guide for the novice or a reference for the veteran--in software design or any design profession.A companion web site provides an annotated bibliography that compiles key underpinning literature, the opportunity to suggest additional insights, and more.

Concepts, Techniques, and Models of Computer Programming


Peter Van Roy - 2004
    The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together.After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language—a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.

Mastering Vmware Vsphere 5


Scott Lowe - 2011
    You'll learn how to install, configure, operate, manage, and secure the latest release.Covers all the new features and capabilities of the much-anticipated new release of VMware vSphere Discusses the planning, installation, operation, and management for the latest release Reviews migration to the latest vSphere software Offers hands-on instruction and clear explanations with real-world examples Mastering VMware vSphere is the strategic guide you need to maximize the opportunities of virtualization.

Functional Programming in Scala


Rúnar Bjarnason - 2013
    As a result, functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs. Scala is an emerging JVM language that offers strong support for FP. Its familiar syntax and transparent interoperability with existing Java libraries make Scala a great place to start learning FP.Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, they'll find concrete examples and exercises that open up the world of functional programming.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Version Control By Example


Eric Sink - 2011
    Topics covered include:Basic version control commands and conceptsIntroduction to Distributed Version Control Systems (DVCS)Advanced branching workflowsStrengths and weaknesses of DVCS vs. centralized toolsBest practicesHow distributed version control works under the hoodFeaturing these open source version control tools:Apache SubversionMercurialGitVeracity

C# in Depth


Jon Skeet - 2008
    With the many upgraded features, C# is more expressive than ever. However, an in depth understanding is required to get the most out of the language.C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by understanding "behind the scenes" issues.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.