Introduction To Programming Languages and Tools of The Trade
Introduction To Programming Languages and Tools of The Trade
Pre-Lecture Quiz
Pre-lecture quiz
Introduction
In this lesson, we'll cover:
What is programming?
Types of programming languages
Basic elements of a program
Useful software and tooling for the professional developer
What is Programming?
Programming (also known as coding) is the process of writing instructions to a device,
such as a computer or mobile device. We write these instructions with a programming
language, which is then interpreted by the device. These sets of instructions may be
referred to by various names, but program, computer program, application (app),
and executable are a few popular names.
A program can be anything that is written with code; websites, games, and phone apps
are programs. While it's possible to create a program without writing code, the
underlying logic is interpreted to the device and that logic was most likely written with
code. A program that is running or executing code is carrying out instructions. The
device that you're currently reading this lesson with is running a program to print it to
your screen.
✅ Do a little research: who is considered to have been the world's first computer
programmer?
Programming Languages
Programming languages serve a main purpose: for developers to build instructions to
send to a device. Devices only can understand binary (1s and 0s), and
for most developers that's not a very efficient way to communicate. Programming
languages are a vehicle for communication between humans and computers.
Programming languages come in different formats and may serve different purposes.
For example, JavaScript is primarily used for web applications, while Bash is primarily
used for operating systems.
Low level languages typically require fewer steps than high level languages for a device
to interpret instructions. However, what makes high level languages popular is its
readability and support. JavaScript is considered a high level language.
The following code illustrates the difference between a high level language with
JavaScript and low level language with ARM assembly code.
let number = 10
let n1 = 0, n2 = 1, nextTerm;
Believe it or not, they're both doing the same thing: printing a Fibonacci sequence up to
10.
✅ A Fibonacci sequence is defined as a set of numbers such that each number is the
sum of the two preceding ones, starting from 0 and 1.
Elements of a program
A single instruction in a program is called a statement and will usually have a character
or line spacing that marks where the instruction ends, or terminates. How a program
terminates varies with each language.
Most programs rely on using data from a user or elsewhere, where statements may rely
on data to carry out instructions. Data can change how a program behaves, so
programming languages come with a way to temporarily store data that can be used
later. This data is called variables. Variables are statements that instruct a device to save
data in its memory. Variables in programs are similar to ones in algebra, where they
have a unique name and their value may change over time.
There's a chance that some statements will not be executed by a device. This is usually
by design when written by the developer or by accident when an unexpected error
occurs. This type of control of an application makes it more robust and maintainable.
Typically these changes in control happen when certain decisions are met. A common
statement in modern programming languages to control how a program is run is
the if..else statement.
✅ You'll learn more about this type of statement in subsequent lessons
A development environment is a unique set of tools and features that a developer will
use often when writing software. Some of these tools have been customized for a
developer specific needs, and may change over time if a developer changes priorities in
work or personal projects, or when they use a different programming language.
Development environments are as unique as the developers who use them.
Editors
One of the most crucial tools for software development is the editor. Editors are where
you write your code and sometimes where you will run your code.
Browsers
Another crucial tool is the browser. Web developers rely on the browser to observe how
their code runs on the web, it's also used to view visual elements of a web page that are
written in the editor, like HTML.
Edge
Chrome
Firefox
Powershell 💻
Command Line (also known as CMD) 💻
Windows Terminal
mintty
MacOS
Terminal 💻
iTerm
Powershell
Linux
Bash 💻
KDE Konsole
Powershell
Documentation
When a developer wants to learn something new, they'll most likely turn to
documentation to learn how to use it. Developers rely on documentation often to guide
them through how to use tools and languages properly, and also to gain deeper
knowledge of how it works.
🚀 Challenge
Compare some programming languages. What are some of the unique traits of
JavaScript vs. Java? How about COBOL vs. Go?
Post-Lecture Quiz
Post-lecture quiz
Assignment
Reading the Docs