Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
All You Need to Know, and Nothing You Don't, About Core Tools for Software Development
Three of the core tools needed for modern software development are the Unix command line, a text editor, and version control with Git. But you don't need to learn "everything" about them, just how to use them efficiently to solve real problems. In Learn Enough Developer Tools to Be Dangerous, renowned instructor Michael Hartl teaches the specific concepts, skills, and approaches you need so you can learn to write apps, get hired, collaborate, and maybe even launch your own company.
Even if you've never used (or even heard of) these tools before, Hartl helps you quickly build technical sophistication and master the lore you need to succeed. Focused exercises help you internalize what matters, without wasting time on details pros don't care about. Soon, it'll be like you were born knowing this stuff--and you'll be suddenly, seriously dangerous.
Learn enough about . . .
Download the sample pages (includes Chapter 11)
Preface xiii
About the Author xix
Part I: Command Line 1
Chapter 1: Basics 3
1.1 Introduction 5
1.2 Running a Terminal 6
1.3 Our First Command 10
1.4 Man Pages 15
1.5 Editing the Line 20
1.6 Cleaning Up 23
1.7 Summary 24
Chapter 2: Manipulating Files 25
2.1 Redirecting and Appending 26
2.2 Listing 30
2.3 Renaming, Copying, Deleting 35
2.4 Summary 40
Chapter 3: Inspecting Files 43
3.1 Downloading a File 43
3.2 Making Heads and Tails of It 46
3.3 Less Is More 49
3.4 Grepping 52
3.5 Summary 58
Chapter 4: Directories 61
4.1 Directory Structure 61
4.2 Making Directories 64
4.3 Navigating Directories 66
4.4 Renaming, Copying, and Deleting Directories 70
4.5 Summary 74
4.6 Conclusion 75
Part II: Text Editor 77
Chapter 5: Introduction to Text Editors 79
5.1 Minimum Viable Vim 84
5.2 Starting Vim 85
5.3 Editing Small Files 89
5.4 Saving and Quitting Files 91
5.5 Deleting Content 96
5.6 Editing Large Files 97
5.7 Summary 101
Chapter 6: Modern Text Editors 103
6.1 Choosing a Text Editor 104
6.2 Opening 106
6.3 Moving 117
6.4 Selecting Text 119
6.5 Cut, Copy, Paste 127
6.6 Deleting and Undoing 132
6.7 Saving 135
6.8 Finding and Replacing 138
6.9 Summary 143
Chapter 7: Advanced Text Editing 145
7.1 Autocomplete and Tab Triggers 145
7.2 Writing Source Code 152
7.3 Writing an Executable Script 166
7.4 Editing Projects 175
7.5 Customization 188
7.6 Summary 191
7.7 Conclusion 193
Part III: Git 195
Chapter 8: Getting Started with Git 197
8.1 Installation and Setup 200
8.2 Initializing the Repo 203
8.3 Our First Commit 204
8.4 Viewing the Diff 208
8.5 Adding an HTML Tag 210
8.6 Adding HTML Structure 216
8.7 Summary 220
Chapter 9: Backing Up and Sharing 221
9.1 Signing Up for GitHub 221
9.2 Remote Repo 222
9.3 Adding a README 227
9.4 Summary 234
Chapter 10: Intermediate Workflow 235
10.1 Commit, Push, Repeat 235
10.2 Ignoring Files 241
10.3 Branching and Merging 243
10.4 Recovering from Errors 252
10.5 Summary 258
Chapter 11: Collaborating 259
11.1 Clone, Push, Pull 260
11.2 Pulling and Merge Conflicts 269
11.3 Pushing Branches 283
11.4 A Surprise Bonus 292
11.5 Summary 295
11.6 Advanced Setup 296
11.7 Conclusion 302
Appendix: Development Environment 305
A.1 Dev Environment Options 306
A.2 Cloud IDE 307
A.3 Native OS Setup 312
A.4 Conclusion 322
Index 323