For all the self-taught geeks out there, here our content library with most of the learning materials we have produces throughout the years.
It makes sense to start learning by reading and watching videos about fundamentals and how things work.
Full-Stack Software Developer
Data Science and Machine Learning - 16 wks
Search from all Lessons
Curated list of small interactive and incremental exercises you can take to get better at any coding skill.
Curated section of projects to build while learning with simple instructions, videos, solutions and more.
Guides on different topics related to the technologies that we teach in our courses
Social & live learning
The most efficient way to learn: Join a cohort with classmates just like you, live streams, impromptu coding sessions, live tutorials with real experts, and stay motivated.
☝️ Windows users don't use the same terminal commands, but you should learn and practice them anyway because they are heavily used when publishing your apps on any web hosting, Gitpod, Codespaces, Cloud9, etc. You can use Git SCM to create a similar terminal on your computer.
At first, everybody hated the command line. After years of experience, it became an acquired taste.
But why do developers like it? Well, the list is infinite, but here are a few important reasons:
The console is really simple: it’s a black screen that’s always expecting a command. After you type the desired command and press the
return key, the computer executes it and shows some feedback with the resulting output on the screen. A simple Question <> Answer interface.
But, what is a command?
It is something like "print", "show", or "delete" but abbreviated. For example, if you want to tell the console to list all the files in a particular directory, you have to use the
ls command like this:
1ls -l /path/to/directory
All commands have three parts: the utility, the flags, and the arguments. The utility always comes first. The other two parts have different rules, and, depending on which command you are using, you may not have to use any flags or arguments at all.
In this particular case, we use the
-l "flag" to specify that we want a "long" version of the list of files (with more details).
The last thing we have to add is the "argument." In this case, the "argument" will be the path of the directory from which we want to list the files.
Your computer has files, directories, and applications. Your command line is able to deal with all three of them. Use commands to move within the files and directories (like the
cd command). Every application that you install comes with a set of commands that become available the moment you install the app (like the GIT command).
There are 4 important things to notice here:
.to refer to all the files and folders in the hierarchy.
..to refer to the parent directory.
/to navigate further down in the hierarchy of directories.
Here is a small selection of the most used commands by a software developer.
The list command
The ls command is used for listing all the files and directories that form the current position.
1ls -l ./applications 2#shows the files and folders inside "applications" 3#the -l is for asking more detailed output information on the files.
The change directory command
Travel between two different directories.
The move command?
Move a file to another folder or directory. Just like dragging a file located on a PC desktop to a folder stored within the "Documents" folder.
1mv /path/to/file.txt /path/to/destination/file.txt
The remove command
This deletes files (not directories).
1rm file1.txt file2.txt file3.txt file4.txt 2#removes these four files 3 4rm -r dbstore/ 5#deletes all the files and sub-directories recursively within the "dbstore" directory.
The make directory command
Makes a new directory. Just like making a new directory within a PC or Mac desktop environment, the mkdir command makes new directories in a Linux environment.
1mkdir newdirectoryname 2#creates newdirectoryname in the current directory. 3 4mkdir path/of/new/newdirectoryname 5#creates newdirectoryname inside /path/of/new/
The remove directory command
It deletes a directory (not files).
1rmdir mydirectory 2#removes mydirectory if it's in the current directory. 3 4rmdir path/of/targetdirectory/mydirectory 5#removes mydirectory from "targetdirectory"
☝️ It will only remove empty directories, to empty all directory files use the
rm -rcommand (-r flag forces the remove command to delete the directory and all the files within it). Pro-tip: you can use
rm *to delete all of the files inside a directory simultaneously; use with caution.
The Copy File command
Don’t confuse this command with the clipboard copy functionality – it has nothing to do with it.
cp will copy an entire file and create a new one with whatever name you decide it should have.
1cp path/to/file.ext path/to/new/file.txt 2#copy file.txt and create a new file.txt with the same content.
The find command
Finds a file in the given directory with the given specifications.
1find / -name game 2#finds all files containing the exact name "game" that is inside the root folder. 3 4find . -name *.mp3 5#finds all files containing the extension "mp3" within the current directory and its parent.
These will help you save time and make fewer mistakes when typing:
uparrow, and it will show you each command, one by one.
~key like this:
clearcommand to "clean" the current console (it is just a scroll, but a very useful one).
This is one of the things that you cannot avoid doing in the terminal. As a developer, you will have to edit files in the terminal more often than you think. That’s why you’d better be prepared to use either the VIM Application or the Nano Application. We will talk about Nano and its commands (yes, here the text editor opens inside the command line and runs using commands).
It’s not really a command, actually the name of "Nano" is a text editor application.
When working with the command line, sometimes you will have to open a file to review it and even change it. For that, we use the "nano" command. Nano basically opens a text editor within the command line.
1nano path/to/the/textfile.txt 2#opens a text editor to start editing the content of textfile.txt 3#if textfile.txt does not exist, it will create it!
When nano opens, it will show a top bar with the current version of the nano application; the name of the file being edited; and, a status telling you if the files were modified or not.
At the bottom you will see the most often used commands in nano such as: exit, where is, get help, etc.
☝️ This website has a ton of great mini-challenges to help you practice the command line: