Hacking with Swift (self-published), 2022. — 212 p.
Learn the meta-skills you need to be a better coder no matter what language.
If you’ve read my other books, you’ll know my personal motto is this: “Programming is an art. Don't spend all your time sharpening your pencil when you should be drawing.”.
That has served me well in the 30+ years I’ve been programming computers, and I’ve written multiple books on the same principle. This book is different from the others because it’s all about “sharpening your pencil” – learning the meta-skills around programming that will help you be a better coder.
I hate to repeat myself, so I’ll say this only once: as important as all these skills are, getting out there and making things is the best way to improve your programming skills. This book is designed to be a companion alongside your existing programming, not a replacement for it. It will help you do more with what you already know, but at the end of the day opening up your favorite editor and writing fresh code is the best practice you can get.
What's inside:The Unix terminalA brief tour of the terminal.
Reading file contents.
Paging through output.
Printing parts of files: head and tail.
Counting lines and words.
Listing files intelligently.
Piping one command into another.
Finding files based on search criteria.
Searching for text with grep.
Copying, moving, and deleting files.
Reading file information.
Combining commands.
Sorting and de-duping.
Terminal tips and tricks.
Some terminal challenges.
Remote terminals.
Terminal multiplexing using screen.
Regular expressionsRegular expressions.
Character classes.
Quantification.
Meta characters.
Grouping.
Greedy, lazy, and eager matching.
Escape characters.
Back references.
Positive and negative lookahead.
Match groups.
Replacements.
Back to Grep.
GitIntroduction to version control.
An abridged tour of Git.
Git’s design decisions.
Adding files to a Git repository.
Fixing mistakes in your commits.
Unstaging changes.
Seeing what’s changed with a diff.
Staging partial changes.
Removing files from your repository.
Short Git statuses.
Writing great commit messages.
Amending existing commits.
Working with Git's commit log.
Branching and merging.
Rebasing and cherry-picking.
Tagging your repository.
Stashing unsaved changes.
Working with a remote Git server.
Git tips and techniques.
ScrumIntroducing Scrum.
Organizing your team.
Organizing your tasks.
Organizing your meetings.
How to make Scrum work.
TeamworkRunning a great team.
Building a great environment.
Communicating effectively.