Unix forms a foundation that is often very helpful for accomplishing other goals you might have for you and your computer, whether that goal is running a business, writing a book, curing disease, or creating the next great app. The means to these goals are sometimes carried out by writing software. Software can’t be mined out of the ground, nor can software seeds be planted in spring to harvest by autumn. Software isn’t produced in factories on an assembly line. Software is a hand-made, often bespoke good. If a software developer is an artisan, then Unix is their workbench. Unix provides an essential and simple set of tools in a distraction-free environment. Even if you’re not a software developer learning Unix can open you up to new methods of thinking and novel ways to scale your ideas.
This course is intended for folks who are new to programming and new to Unix-like operating systems like macOS and Linux distributions like Ubuntu. Most of the technologies discussed in this course will be accessed via a command line interface. Command line interfaces can seem alien at first, so this course attempts to draw parallels between using the command line and actions that you would normally take while using your mouse and keyboard. You’ll also learn how to write little pieces of software in a programming language called Bash, which allows you to connect together the tools we’ll discuss. My hope is that by the end of this course you be able to use different Unix tools as if they’re interconnecting Lego bricks.
Unix and Command Line Basics
This week we'll help you get access to Unix (you may already be using it), and you'll start using the command line. We'll draw parallels between using your mouse and keyboard with your computer's graphics versus only using the command line.
Working with Unix
Now we'll get into the power of different Unix tools. We'll walk through several scenarios where you could use Unix to perform tasks at a much faster speed than you would be able to normally.
During this week we'll unleash the command line's usefulness as a programming language. By the end of this week you'll be writing your own little computer programs that you can use on the command line.
Git and GitHub
First you'll learn how to use Git, which is like "track changes" for your code and plain text files, but much more powerful. We'll then explore how to use Git with GitHub, a social coding network where you can publish you projects and explore other's code.
Finally we'll set up a cloud computing environment so we can explore how computers communicate with each other using the internet.
Sean Kross, Jeff Leek, PhD, Brian Caffo, PhD and Roger D. Peng, PhD
Ray Berger completed this course, spending 1 hours a week on it and found the course difficulty to be easy.
This class is a pretty good intro to using unix tools like bash, makefiles, and git. Generally pretty clear but just a heads up there are no videos explaining the commands just short 30 second videos giving an overview of each week.
I'd say it's not worth paying for it but it's a good starting project to audit!
Nikhil George completed this course.
The course notes are well written and gave me the confidence to adopt commandline on the PC (WSL), work with a Linux server and begin using GiTHub on the commnadline, with minimum effort. Not a bad place to start.