Actions for Learning to program
Learning to program / Steven Foote
- Author
- Foote, Steven
- Published
- Upper Saddle River, NJ : Addison-Wesley, [2015]
- Physical Description
- xv, 317 pages : illustrations ; 23 cm
- Contents
- Machine generated contents note: Why You Should Read This Book -- Your Project -- 1."Hello, World!" Writing Your First Program -- Choose a Text Editor -- Core Features -- Making Your Choice -- Sublime Text -- TextMate -- Notepad++ -- Gedit -- Vim -- Eclipse -- IntelliJ -- Xcode -- Visual Studio -- Create a Project Directory -- Start Small: Create a Test File -- How HTML and JavaScript Work Together in a Browser -- The Value of Small Changes -- Build on Your Success -- Reference Your JavaScript in manifest.json -- Let It Run! -- Great Power, Great Responsibility -- Summing Up -- 2.How Software Works -- What Is "Software"? -- Software Life Cycle -- Source Code---Where It All Starts -- A Set of Instructions -- Programming Languages -- From Source Code to 0's and 1's -- Compiled vs. Interpreted Languages: When Does the Source Code Become Binary? -- Runtime Environment -- Execution by the Processor -- Input and Output -- Making Software Useful (and Reusable) with Input -- Where Does the Input Come From? -- How the Software Gets the Input -- Types of Output -- GIGO: Garbage In, Garbage Out -- State -- Add State to Kittenbook -- Memory and Variables -- Variables -- Variable Storage -- A Finite Resource -- Memory Leaks -- Summing Up -- 3.Getting to Know Your Computer -- Your Computer Is Stupid -- Your Computer Is Magic -- Standing on the Shoulders of Giants -- Computer Guts -- Processor -- Short-Term Memory -- Long-Term Memory -- Using Your Computer -- The File System -- The Command Line: Take Control -- Summing Up -- 4.Build Tools -- Automate (Almost) Everything -- Install Node -- Install Grunt -- Software That Helps You Create Software -- Avoid Mistakes -- Work Faster -- Tasks to Automate -- Compile -- Test -- Package -- Deploy -- Build Your Own Build -- Gruntfile.js -- Use Grunt Plug-ins -- Load Grunt Plug-ins -- Register Tasks -- Watch This! -- Summing Up -- 5.Data (Types), Data (Structures), Data(bases) -- Data Types -- Why Different Data Types Exist -- Primitive Data Types -- Composite Data Types -- Dynamically and Statically Typed Languages -- Data Structures -- Set -- Stack -- Tree -- Graph -- How to Choose an Effective Data Structure -- Databases -- Long-Term (Persistent) Storage -- Relational Databases -- A Brief Introduction to SQL -- Summing Up -- 6.Regular Expressions -- Ctrl+F on Steroids: Looking for Patterns -- Using Regular Expressions in JavaScript -- Repetition -- ? -- + -- * -- Special Characters and Escaping -- {1,10}: Make Your Own Super Powers -- Match Anything, Period -- Don't Be Greedy -- Understanding Brackets from [A-Za-z] -- Lists of Characters -- Ranges -- Negation -- A Pattern for Phone Numbers -- I Need My \s -- Shortcuts for Brackets -- Limitations -- Capture the Tag -- Advanced Find and Replace -- The Beginning and the End (of a Line) -- Flags -- Global -- Ignore Case -- Multiline -- When Will You Ever Use Regex? -- grep -- Code Refactoring -- Validation -- Data Extraction -- Summing Up -- 7.if, for, while, and When -- Operators -- Comparison Operators -- Logical Operators -- Unary Operators -- Binary Operators -- Ternary Operators -- "Truthy" and "Falsy" -- "Syntactic Sugar" -- Looping Through an Array -- Looping Through Images -- Nested Loops -- You Need a Break -- Infinite Loops -- Take Another Break -- When You Don't Know When to Stop -- When -- Events -- Listeners -- Cron Jobs -- Timeouts -- Catch When Things Go Wrong -- Writing Robust Code -- Summing Up -- 8.Functions and Methods -- Function Structure -- Definition -- Invocation -- Arguments -- Call Stack -- Code Encapsulation -- Do One Thing Well -- Divide and Conquer -- A Place for Everything and Everything in Its Place -- Code Reuse -- Solve the General Problem -- Do More with Less -- Don't Repeat Yourself (DRY) -- Scope -- Global -- Local -- How Variable Lookups Happen -- Summing Up -- 9.Programming Standards -- Coding Conventions -- Setting Standards -- To Hack or Not to Hack -- Pay Now or Pay Later -- Writing Maintainable Code -- Code Formatting -- Keep It Consistent -- Whitespace -- It Doesn't Happen on Its Own: Make Rules -- Using the Work of Others -- Build Faster -- Open Source Software -- Built by the Community -- When to Build It Yourself -- Best Practices -- Documentation -- Planning -- Testing -- Summing Up -- 10.Documentation -- Document Intentions -- Self-Documenting Code -- Don't Document the Obvious -- The Danger of Outdated Documentation -- Find Bugs Using Documentation -- Document for Yourself -- How Good Is Your Memory? -- Document to Learn -- Documentation Beyond Comments -- Document for Others -- Document Your Decisions -- Document Your Resources -- Document to Teach -- Summing Up -- 11.Planning -- Think Before You Build -- Create a Specification -- Design an Architecture -- Draw Diagrams -- Try to Break Your System -- Iterative Planning -- Design for Extensibility -- What Are Your Priorities? -- User Experience -- Performance -- Security -- Scalability -- Deadlines -- The Balancing Act -- Identify and Create Constraints -- Know What You Can and Can't Do -- Summing Up -- 12.Testing and Debugging -- Manual Testing -- Test As You Work -- Try Something Crazy -- Eat Your Own Dog Food -- Automated Testing -- Unit Tests -- Set Up Tests for Kittenbook -- Epic Fail! -- Spies Like Us (and We Like Spies) -- Integration Tests -- Catch Problems Early -- Debugging -- Errors -- Logs -- Breakpoints -- Inspecting, Watching, and the Console -- Stepping Through the Code -- Call Stack -- Find the Root Cause -- Code, Test, Debug, Repeat -- Summing Up -- 13.Learning to Fish: How to Acquire a Lifetime of Programming Knowledge -- How to Search -- Finding the Right Terms -- Working Backward -- Identifying Quality Resources -- Personal Blogs: Hidden Gems -- Where, When, and How to Ask Programming Questions -- Where -- When -- How -- Learn by Teaching -- Summing Up -- 14.Building Your Skills -- Make kittenbook Your Own -- Restyle Facebook -- Add New Functionality -- Share Your Version of Kittenbook -- Find Your Own Project -- Solve Your Own Problem -- Be Ambitious -- Get Help, Give Help -- Open Source Projects -- GitHub -- Finding a Project -- Different Ways to Contribute -- Create Your Own -- Free Online Education -- Project Euler -- Udacity -- Coursera -- codecademy -- Khan Academy -- Tutorials -- Paid Education -- Read a Book -- Udacity and Coursera -- Treehouse -- Summing Up -- 15.Advanced Topics -- Version Control -- Why Use Version Control? -- Working with a Team -- Subversion -- Git -- OOP (Object-Oriented Programming) -- Classes -- Inheritance -- Instances -- Design Patterns -- Pub Sub -- Mediator -- Singleton -- Summing Up.
- Summary
- "Learning to Program will help you build a solid foundation in programming that can prepare you to achieve just about any programming goal. Whether you want to become a professional software programmer, or you want to learn how to more effectively communicate with programmers, or you are just curious about how programming works, this book is a great first step in helping to get you there"--Back cover.
- Subject(s)
- ISBN
- 9780789753397 (pbk.)
0789753391 (pbk.)
View MARC record | catkey: 13830778