Learning to Program

Author:   Steven Foote
Publisher:   Pearson Education (US)
ISBN:  

9780789753397


Pages:   336
Publication Date:   13 November 2014
Format:   Paperback
Availability:   In Print   Availability explained
This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us.

Our Price $43.95 Quantity:  
Add to Cart

Share |

Learning to Program


Add your own review!

Overview

Learning to Program will help students build a solid foundation in programming that can prepare them to achieve just about any programming goal. Whether they want to become a professional software programmer, learn how to more effectively communicate with programmers, or are just curious about how programming works, this book is a great first step in helping to get there.

Full Product Details

Author:   Steven Foote
Publisher:   Pearson Education (US)
Imprint:   Addison Wesley
Dimensions:   Width: 18.00cm , Height: 2.00cm , Length: 22.50cm
Weight:   0.528kg
ISBN:  

9780789753397


ISBN 10:   0789753391
Pages:   336
Publication Date:   13 November 2014
Audience:   College/higher education ,  Tertiary & Higher Education
Format:   Paperback
Publisher's Status:   Active
Availability:   In Print   Availability explained
This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us.

Table of Contents

Introduction Why I Wrote This Book 1     Why You Should Read This Book 3     Your Project 3 1 “Hello, World!” Writing Your First Program 5     Choose a Text Editor 5         Core Features 6     Making Your Choice 8         Sublime Text 9         TextMate 9         Notepad++ 9         Gedit 9         Vim 10         Eclipse 10         IntelliJ 11         Xcode 11         Visual Studio 11     Create a Project Directory 12     Start Small: Create a Test File 12         How HTML and JavaScript Work Together in a Browser 13         The Value of Small Changes 15     Build on Your Success 17         Reference Your JavaScript in manifest.json 20         Let It Run! 20     Great Power, Great Responsibility 21     Summing Up 21 2 How Software Works 23     What Is “Software”? 23     Software Life Cycle 24     Source Code—Where It All Starts 25         A Set of Instructions 25         Programming Languages 26         From Source Code to 0’s and 1’s 31         Compiled vs. Interpreted Languages: When Does the Source Code Become Binary? 31         Runtime Environment 32         Execution by the Processor 34     Input and Output 34         Making Software Useful (and Reusable) with Input 34         Where Does the Input Come From? 35         How the Software Gets the Input 36         Types of Output 36         GIGO: Garbage In, Garbage Out 37         State 38         Add State to Kittenbook 39     Memory and Variables 41         Variables 41         Variable Storage 42         A Finite Resource 44         Memory Leaks 44     Summing Up 45 3 Getting to Know Your Computer 47     Your Computer Is Stupid 47     Your Computer Is Magic 48         Standing on the Shoulders of Giants 48     Computer Guts 48         Processor 48         Short-Term Memory 49         Long-Term Memory 49     Using Your Computer 50         The File System 50         The Command Line: Take Control 52     Summing Up 62 4 Build Tools 63     Automate (Almost) Everything 63         Install Node 64         Install Grunt 66         Software That Helps You Create Software 69         Avoid Mistakes 70         Work Faster 70     Tasks to Automate 70         Compile 71         Test 71         Package 72         Deploy 72     Build Your Own Build 72         Gruntfile.js 73         Use Grunt Plug-ins 73         Load Grunt Plug-ins 76         Register Tasks 76     Watch This! 78     Summing Up 80 5 Data (Types), Data (Structures), Data(bases) 83     Data Types 83         Why Different Data Types Exist 84         Primitive Data Types 84         Composite Data Types 89         Dynamically and Statically Typed Languages 96     Data Structures 96         Set 99         Stack 99         Tree 100         Graph 101         How to Choose an Effective Data Structure 104     Databases 104         Long-Term (Persistent) Storage 104         Relational Databases 104         A Brief Introduction to SQL 106     Summing Up 107 6 Regular Expressions 109     Ctrl+F on Steroids: Looking for Patterns 109     Using Regular Expressions in JavaScript 110     Repetition 111         ? 111         + 111         * 112         Special Characters and Escaping 112         {1,10}: Make Your Own Super Powers 113         Match Anything, Period 113         Don’t Be Greedy 114     Understanding Brackets from [A-Za-z] 115         Lists of Characters 115         Ranges 115         Negation 116     A Pattern for Phone Numbers 116     I Need My \s 119         Shortcuts for Brackets 119         Limitations 121         Capture the Tag 124         Advanced Find and Replace 125         The Beginning and the End (of a Line) 126     Flags 126         Global 126         Ignore Case 126         Multiline 127     When Will You Ever Use Regex? 127         grep 127         Code Refactoring 127         Validation 128         Data Extraction 128     Summing Up 129 7 if, for, while, and When 131     Operators 131         Comparison Operators 131         Logical Operators 132         Unary Operators 134         Binary Operators 134         Ternary Operators 136         “Truthy” and “Falsy” 139         “Syntactic Sugar” 140         Looping Through an Array 142         Looping Through Images 142         Nested Loops 143         You Need a Break 143         Infinite Loops 145         Take Another Break 146         When You Don’t Know When to Stop 146     When 147         Events 147         Listeners 147         Cron Jobs 148         Timeouts 149         Catch When Things Go Wrong 150         Writing Robust Code 151     Summing Up 151 8 Functions and Methods 153     Function Structure 153         Definition 154         Invocation 154         Arguments 155         Call Stack 157     Code Encapsulation 158         Do One Thing Well 158         Divide and Conquer 159         A Place for Everything and Everything in Its Place 162     Code Reuse 163         Solve the General Problem 163         Do More with Less 163         Don’t Repeat Yourself (DRY) 165     Scope 166         Global 167         Local 168         How Variable Lookups Happen 168     Summing Up 171 9 Programming Standards 173     Coding Conventions 173         Setting Standards 174         To Hack or Not to Hack 174         Pay Now or Pay Later 175         Writing Maintainable Code 175     Code Formatting 176         Keep It Consistent 177         Whitespace 178     It Doesn’t Happen on Its Own: Make Rules 178     Using the Work of Others 180         Build Faster 180         Open Source Software 181         Built by the Community 181         When to Build It Yourself 182     Best Practices 182         Documentation 182         Planning 183         Testing 183     Summing Up 183 10 Documentation 185     Document Intentions 186         Self-Documenting Code 187         Don’t Document the Obvious 189         The Danger of Outdated Documentation 190         Find Bugs Using Documentation 191     Document for Yourself 191         How Good Is Your Memory? 191         Document to Learn 192         Documentation Beyond Comments 192     Document for Others 196         Document Your Decisions 196         Document Your Resources 197         Document to Teach 197     Summing Up 198 11 Planning 199     Think Before You Build 199     Create a Specification 200     Design an Architecture 200         Draw Diagrams 201         Try to Break Your System 202     Iterative Planning 203     Design for Extensibility 203     What Are Your Priorities? 204         User Experience 204         Performance 204         Security 205         Scalability 205         Deadlines 205     The Balancing Act 206         Identify and Create Constraints 206         Know What You Can and Can’t Do 206     Summing Up 207 12 Testing and Debugging 209     Manual Testing 209         Test As You Work 210         Try Something Crazy 210         Eat Your Own Dog Food 211     Automated Testing 211         Unit Tests 212         Set Up Tests for Kittenbook 215         Epic Fail! 218         Spies Like Us (and We Like Spies) 219     Integration Tests 221         Catch Problems Early 222     Debugging 222         Errors 223         Logs 224         Breakpoints 224         Inspecting, Watching, and the Console 228         Stepping Through the Code 229         Call Stack 231         Find the Root Cause 231         Code, Test, Debug, Repeat 232     Summing Up 232 13 Learning to Fish: How to Acquire a Lifetime of Programming Knowledge 233     How to Search 234         Finding the Right Terms 235         Working Backward 236         Identifying Quality Resources 236         Personal Blogs: Hidden Gems 237     Where, When, and How to Ask Programming Questions 237         Where 237         When 240         How 241         Learn by Teaching 241     Summing Up 242 14 Building Your Skills 243     Make kittenbook Your Own 243         Restyle Facebook 243         Add New Functionality 244         Share Your Version of Kittenbook 245     Find Your Own Project 246         Solve Your Own Problem 246         Be Ambitious 246         Get Help, Give Help 247     Open Source Projects 247         GitHub 247         Finding a Project 248         Different Ways to Contribute 248         Create Your Own 249     Free Online Education 249         Project Euler 249         Udacity 250         Coursera 250         codecademy 251         Khan Academy 251         Tutorials 251     Paid Education 252         Read a Book 252         Udacity and Coursera 252         Treehouse 253     Summing Up 253 15 Advanced Topics 255     Version Control 255         Why Use Version Control? 256         Working with a Team 257         Subversion 260         Git 260     OOP (Object-Oriented Programming) 265         Classes 266         Inheritance 266         Instances 267     Design Patterns 268         Pub Sub 268         Mediator 269         Singleton 270     Summing Up 270 Glossary 273 TOC, 9780789753397, 10/13/2014  

Reviews

Author Information

Steven Foote is a web developer at LinkedIn. A self-taught programmer who loves technology, especially the Web, he has a Bachelor’s degree and Master’s degree in Accountancy from Brigham Young University. While working on his Master’s degree, he built all aspects of two AJAX-y web applications, from visual design to server and database maintenance, and everything in between.

Tab Content 6

Author Website:  

Customer Reviews

Recent Reviews

No review item found!

Add your own review!

Countries Available

All regions
Latest Reading Guide

wl

Shopping Cart
Your cart is empty
Shopping cart
Mailing List