The Skeptical Methodologist

Software, Rants and Management

SYWTLTC: Advanced Beginner (AB) Chapter 1: The Command Line

Go here if you want the prolog and table of contents to the SYWTLTC series!
This is the start of the Advanced Beginner series, which is arranged as a series of chapters that will take your skills you’ve learned from the Novice portion and start to apply them to real-world problems – including tools and approaches coders must apply that are not simply code.
Please continue to intermix further Code Combat levels as you tackle these chapters, pushing at the pace of a few levels per chapter. If you are at least on the Desert stage and have found about 10 levels or so to be lacking challenge/easy, you can move on from Code Combat.
For reference, you should be about half-way through Python Programming – having read the bolded chapters and done the exercises.
  1. Programming Basics (ch 1, ch 2)
  2. Beginner Data Structures (ch 5, ch 11)
  3. Structured Programming (ch 7, 8)
  4. Procedural Programming (ch 6)
  5. Algorithms and Recursion (ch 13)
  6. Object Oriented Programming and Design (ch 4, ch 10, ch 9, ch 12)
  7. Numerical computing (ch 3)
You should find that as you tackle other online methods as part of this curriculum, as well as these chapters, that going back to Code Combat will be easier and easier – levels should begin to seem almost trivial as you get more experience.
This first chapter will be about the basics of the command line of the computer you are on, and will build skills we’ll need to draw upon to get other toolsets installed for you to practice with. The only requirement from here on out beyond the usual computer and mentor is that the computer you are on may need administrator access – you’ll need to be able to install things. Whether or not you need it will probably rear its ugly head as we move forward, as your operating system – either OSX or Windows – is going to start complaining.
These chapters are structured usually as brief explanations from me on what we’re talking about and why it’s important to you, interspersed with text, video and other exercises around the subject I’ve found online.
At the end, there will always be a challenge – tasks you need to perform to move on to the next chapter. For some of these tasks, you’ll need to set up some sort of screen share with your mentor – or get together for a live “pairing” session – while others will be questions you’ll have to answer for your mentor or code you’ll need them to review.
When you’re ready for this chapter’s challenge, contact your mentor and set up a time. Below, chose either the Windows Command line or Mac OSX Command Line instructions to go through, depending on what kind of computer you have.

The Command Line

Computers have two main interfaces, one of which you’re probably very used to, and one of which you may have used very little. The GUI, or graphical user interface, is what you drive with your mouse. You may have a start button at the bottom left, or an icon strip, or what have you. You click on your internet browser to start it, click around on the web, and so forth.

The command line was the original interface with the computer, and it still remains the most powerful of the two. GUI applications tend to be less powerful though have a lower learning curve than command line applications. The main benefit to command line applications is that they are designed to be interacted with programmatically – sometimes called ‘scripting’ – so that you can write programs that run a bunch of command line applications to get a job done.

We need to get you used to some basics in the command line so that you can install Python and other tools, as well as learn how to navigate your computer only from the command line.

The command line is also sometimes called the console or the terminal, although technically these things are all different things. This series will use the terms interchangeably.

Command Line Basics

Instead of being mouse driven, the command line is keyboard driven. There won’t be much clicking to do, although depending on your terminal (Mac and Windows differ here) it may be easier or harder to do things like copy and paste to and from the command line.

You’ll be typing commands into the command line, which will then print out feedback of what happened in the same window. The same abstractions apply at the command line level as at the GUI level, though. For instance, you’ve probably navigated nested folders on your desktop GUI to find a file. In the command line, the same folder structure exists, although the tend to be called ‘directories’ when you’re using the command line.

We’ll need to get used to the command line ultimately to install Python later. Moreover, nearly all your programming work is going to be command line heavy.

Windows Command Line

Do the following:

Mac OSX Command Line

Do the following:

Text Editing

Once you’re comfortable navigating the command line, you need to be able to open files new and old with a text editor – you’ll be using this editor to do that. The text editor is similar to the window you typed your code in for Code Combat.

I’m going to recommend you download and install the atom editor to do this, primarily because it’s cross platform and has a shallow learning curve compared to others.

Do the following:

  • Download and install Atom

Challenge

Do a screen share or live session with your mentor, and show them that you can do the following:

  • List, create and remove a directory
  • Interactively navigate your file system based on what your mentor asks you to look at
  • Open a new file in Atom, write some text, save the file and close Atom, then reopen the file – all from the command line.

Feedback?

Are there resources you’ve found you found particularly useful? Are some of the listed resources redundant? Please let me know so we can keep this clean and up to date!

Advertisements

September 20, 2016 - Posted by | Uncategorized

1 Comment »

  1. […] SYWTLTC: Advanced Beginner (AB) Chapter 1: The Command Line […]

    Pingback by So You Want To Learn to Code: Prologue « The Skeptical Methodologist | September 20, 2016 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: