SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Video accessible from your Account page after purchase.
Register your product to gain access to bonus material or receive a coupon.
4+ Hours of Video Instruction
In Learn Enough Developer Tools to Be Dangerous: Command Line, Text Editor, and Git Version Control Essentials, renowned instructor Michael Hartl teaches the foundational tools and skills you need to to work with developers or become a developer yourself.
Overview
Learn Enough Developer Tools to Be Dangerous teaches you three essential tools for modern software development: the Unix command line, a text editor, and version control with Git. All three are ubiquitous in the contemporary technology landscape, and yet there are surprisingly few resources for learning them from scratch and seeing how they all fit together. Learn Enough Developer Tools to Be Dangerous, which assumes no prerequisites other than general computer knowledge, fills this gap.
The skills you'll learn are valuable whether your interest is in collaborating with developers or becoming a developer yourself. No matter what you want to do--level up in your current job, start a new career, or even start your own company--Learn Enough Developer Tools to Be Dangerous is a great place to start.
And staying true to the Learn Enough philosophy, the course focuses on the most important aspects of the respective technologies. You don't have to learn everything to get started--you just have to learn enough to be dangerous.
About the Instructor
Michael Hartl is the creator of the Ruby on Rails Tutorial, one of the leading introductions to web development, and is cofounder and principal author at Learn Enough. Previously, he was a physics instructor at the California Institute of Technology (Caltech), where he received a Lifetime Achievement Award for Excellence in Teaching. He is a graduate of Harvard College, has a PhD in Physics from Caltech, and is an alumnus of the Y Combinator entrepreneur program.
Skill Level
Learn How To
Who Should Take This Course
Course Requirements
Lesson Descriptions
Lesson 1: Basics
In Lesson 1, you learn the basics of the Unix command line. Using a command line interface, or CLI, involves typing commands that tell the computer to perform particular tasks, like renaming or deleting files, making directories, or launching other programs. Unix refers to a family of operating systems that includes Linux, Android, and iOS (iPhone and iPad, and Mac OS). Unix systems serve most of the software on the World Wide Web, run most mobile and tablet devices, and power many of the world's desktop computers as well. As a result, understanding the basics of the command line is absolutely essential to becoming a skilled developer. You start by launching and using a terminal, which is the program that gets you to the command line. After an introduction to the command line prompt, you begin learning how to execute simple Unix commands. You also see how to use so-called man pages to let you use the command line itself to learn more about any given command. The lesson ends with some tricks for editing the command line, and then you learn how to exit it when you are done.
Lesson 2: Manipulating Files
In Lesson 2, you learn how to manipulate files, one of the most important tasks of the command line. Because Module 1 assumes no technical prerequisites, you are not assumed to have any familiarity with a text editor, which is covered in Module 2. This means that you need to create files by hand at the command line. But this is a feature, not a bug, because learning to create files at the command line is a valuable skill in itself. You begin by learning how to redirect output, which will enable you to use the echo command from the previous lesson to create a new file at the command line. You also learn how to add more lines to the end of a file, a process known as appending. Next, you learn various ways to list the details of files, including both short and long forms, and reverse by modification time. Finally, you see how to rename, copy and delete files, including how to use wildcards to make changes that can be hard to make using a graphical user interface but are easy using a CLI.
Lesson 3: Inspecting Files
Having seen how to create and manipulate files in Lesson 2, in Lesson 3 it is time to learn how to examine their contents. This is especially important for files that are too long to fit on a single screen. In particular, you saw in the last lesson how to use the cat command to dump the file contents to the screen, but this doesn't work well for longer files. To get started with a file too long to cat, you use a powerful program called curl, which lets you interact with the Internet via the command line. You use curl to download a long text file from the web and then use the head and tail commands to examine its beginning and end, respectively. You then use the interactive less command to examine your files contents more thoroughly. Finally, you use the important grep command to search for patterns inside your file using both ordinary strings and so-called regular expressions.
Lesson 4: Directories
Having examined many of the Unix utilities for dealing with files, in Lesson 4 you learn about directories, sometimes known as folders. As you'll see, many of the ideas developed in the context of files also apply to directories, but there are many differences as well. The lesson starts with a big-picture overview of the Unix directory structure. You then learn how to make directories ourselves. Next, you learn how to change directories. Then, as with files, you learn how to rename, copy, and delete directories. Finally, you learn how to use the grep utility, introduced in the previous lesson, to search inside some or all of the files in a directory.
Lesson 5: Introduction to Text Editors
In Lesson 5, the first lesson of Module 2, "Learn Enough Text Editor to Be Dangerous," you learn the basics of how to use a text editor. Unlike most other text-editor tutorials, which are typically tied to a specific editor, Learn Enough Developer Tools to Be Dangerous introduces the entire category of application, a category many people do not even know exists. A text editor is an application used to edit plain text, often called just text for short, which is the most common document format for code, markup, configuration files, and many other things. After a general overview of what text editors are and what they can do, the lesson dives into the important, if somewhat obscure, Vim editor. The lesson includes only Minimum Viable Vim, not even really enough to be dangerous, but enough to get started. You begin by learning how to launch Vim right at the command line and then how to exit it safely using the Most Important Vim CommandTM. You then learn how to use Vim to edit, save, and quit small files and how to delete content in files. The lesson ends by teaching you how to use Vim to navigate, search, and edit larger files as well.
Lesson 6: Modern Text Editors
Lesson 6 builds on the basic Vim text editing you learned in Lesson 5 to introduce so-called modern text editors such as Sublime Text, Visual Studio Code, and Atom. Modern editors are distinguished by their combination of power and ease of use. You can do fancy things like global search-and-replace, but unlike Vim, they let you just click in a window and start typing. In addition, many modern editors include an option to run in Vim compatibility mode. So even if you end up loving Vim, you can still use a modern editor without having to give Vim up entirely. Although we'll mainly be using the Atom editor in the videos, the ideas covered in this lesson and the next broadly apply to any modern editor. You learn how to open files, how to move around inside them, how to select text, and how to cut, copy, and paste. You then learn how to delete text, and perhaps most importantly, how to undo such deletions. Next, you learn how to save files, and the lesson ends by teaching you how to find and replace text based on exact string matches. As part of all this, you also get an introduction to Markdown, a useful human-readable markup language designed to be easy to convert to HTML, the language of the World Wide Web.
Lesson 7: Advanced Text Editing
Having covered the basic functions of modern text editors in Lesson 6, in Lesson 7 you learn about a few of the most common advanced topics. Even more than in Lesson 6, details will vary based on the exact editor you choose. So use your growing technical sophistication to figure out any necessary details. The most important point is that the advanced functions in this lesson are all things that any professional editor can do. So you should be able to figure out how to do them no matter which editor you are using. The lesson begins with autocomplete and tab triggers, which are two powerful techniques for generating longer strings of text automatically. Next, you learn some tricks and techniques for writing source code. You apply this knowledge to write a working executable script, which extends the capabilities of the command line introduced in Module 1. The lesson ends with a discussion of how to use a text editor to work on an entire project consisting of many files and directories, such as a Ruby on Rails web application, including how to find and replace using the regular expressions introduced in Lesson 3.
Lesson 8: Getting Started with Git
In Lesson 8, the first lesson of Module 3, "Learn Enough Git to Be Dangerous," you'll learn the basics of the Git Version Control System, or VCS, which provides an automatic way to track changes in software and other text-based projects. Fluency in at least one VCS is an essential component of technical sophistication. Nowadays, by far the most popular choice of VCS is Git, designed by Linux creator Linus Torvalds. Because Git runs as a command-line program and tracks changes in plain text files, you will have a chance to apply many of the things you learned in Modules 1 and 2. You begin by covering the installation and initial setup needed to get started with Git. You then initialize a new Git repository to contain our project consisting of a simple website, create a new file, and record the change by making our first commit. Next you make a change to the file and view the change using Git's version of the diff command introduced in Lesson 2. You then make and commit several more changes. Along the way you learn a little about Hypertext Markup Language, or HTML, the language of the World Wide Web.
Lesson 9: Backing Up and Sharing
In Lesson 9, you learn how to use Git to back up and share the work you did in Lesson 8, by pushing a copy of your project up to a remote repository. This will serve as a backup of our project and its history and will also make it easier for collaborators to work with us on our site. You start by signing up for GitHub, a site designed to facilitate collaboration with Git repositories. First, you create a remote repository at GitHub and then use git add to connect it to our local repository. You then use git push to push our local copy up to GitHub. Next, you add an explanatory README file using the same Markdown formatting language covered in Module 2. After pushing up our repository again, you will discover that GitHub automatically converts Markdown to HTML and displays the result.
Lesson 10: Intermediate Workflow
In Lesson 10, you practice and extend the basic workflow introduced in Lesson 9. This includes adding a new directory to your project, learning how to tell Git to ignore certain files, how to branch and merge, and how to recover from errors. Rather than providing an encyclopedic coverage of Git's many commands, the focus is on covering practical techniques used every day by software developers and other users of Git. You start by reviewing the process of committing and pushing covered in the previous lesson. You then discuss how to get Git to ignore things like temporary and log files that we don't want to keep in version control. You then learn how to make an efficient copy of your code using a branch, which enables us to make changes safely without affecting the main project. Then you learn how to incorporate those changes using a merge. You end with the discussion of how Git helps you recover from errors such as accidentally deleting the files in your project.
Lesson 11: Collaborating
Now that we've covered some of the tools needed to use Git effectively on solo projects, in Lesson 11, you learn about what is perhaps Git's greatest strength: making it easier to collaborate with other people. This is especially the case when using repository hosts like GitHub or Bitbucket, but it is also possible to host Git repositories on private servers, sometimes using software like GitLab to get many GitHub-like benefits. You begin by making a copy of your project's repository using the git clone command, and then you learn how to use git pull to pull in changes pushed by your collaborators. As part of this, you learn how to deal with the inevitable conflicts that arise from having multiple people working on the same source files. You also learn how to push the kinds of branches introduced in Lesson 10 so that you can collaborate with others on possibly dangerous changes and then merge them in only when you are confident you want to keep them. The lesson ends with a special surprise bonus that will give you bragging rights with all of your friends. In a final optional section, you can learn some more advanced Git setup, such as aliases and tab completion.
About Pearson Video Training
Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Sams, and Que. Topics include: IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at http://www.informit.com/video.
Video Lessons are available for download for offline viewing within the streaming format. Look for the green arrow in each lesson.
Introduction
Module 1: Command Line
Lesson 1: Basics
Topics
1.1 Introduction
1.2 Running a terminal
1.3 Our first command
1.4 Man pages
1.5 Editing the line
1.6 Cleaning up
Lesson 2: Manipulating Files
Topics
2.1 Redirecting and appending
2.2 Listing
2.3 Renaming, copying, deleting
Lesson 3: Inspecting Files
Topics
3.1 Downloading a file
3.2 Making heads and tails of it
3.3 Less is more
3.4 Grepping
Lesson 4: Directories
Topics
4.1 Directory structure
4.2 Making directories
4.3 Navigating directories
4.4 Renaming, copying, and deleting directories
4.5 Conclusion
Module 2: Text Editors
Lesson 5: Introduction to Text Editors
Topics
5.1 Minimum Viable Vim
5.2 Starting Vim
5.3 Editing small files
5.4 Saving and quitting files
5.5 Deleting content
5.6 Editing large files
Lesson 6: Modern Text Editors
Topics
6.1 Choosing a text editor
6.2 Opening
6.3 Moving
6.4 Selecting text
6.5 Cut, copy, paste
6.6 Deleting and undoing
6.7 Saving
6.8 Finding and replacing
Lesson 7: Advanced Text Editing
Topics
7.1 Autocomplete and tab triggers
7.2 Writing source code
7.3 Writing an executable script
7.4 Editing projects
7.5 Customization
7.6 Conclusion
Module 3: Git
Lesson 8: Getting Started
Topics
8.1 Installation and setup
8.2 Initializing the repo
8.3 Our first commit
8.4 Viewing the diff
8.5 Adding an HTML tag
8.6 Adding HTML structure
Lesson 9: Backing Up and Sharing
Topics
9.1 Signing up for GitHub
9.2 Remote repo
9.3 Adding a README
Lesson 10: Immediate Workflow
Topics
10.1 Commit, push, repeat
10.2 Ignoring files
10.3 Branching and merging
10.4 Recovering from errors
Lesson 11: Collaborating
Topics
11.1 Clone, push, pull
11.2 Pulling and merge conflicts
11.3 Pushing branches
11.4 A surprise bonus
11.5 Advanced setup
11.6 Conclusion
Summary