What Is Computer Programming? de Ning Software Development

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

5/1/2020 What is Computer Programming? Defining Software Development.

Donate

Stay safe, friends. Learn to code from home. Use our free 2,000 hour curriculum.

16 APRIL 2020 / #PROGRAMMING

What is Computer
Programming? De ning
Software Development.
Phoebe Voong-Fadel
Front-end Web Developer. Mum of two. I love to cook and bake.

My ve year old son, Ramy, approached me one day


while I was working from home and asked, “What are
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 1/28
5/1/2020 What is Computer Programming? Defining Software Development.

you doing Mama?” Donate

“I’m working,” I replied.

He looked at my laptop screen and inquired again: “But what are you
doing?”

I paused and started to think about this. I’m a web developer and I’m
programming in JavaScript. How do I explain this to a ve year old?

“I write instructions for the computer and the computer does what I
tell it to do. This is called programming,” I explained. Ramy looked
puzzled.

I continued, “For example, I can give the computer instructions to add


two numbers and it will give me the answer.” I wrote a function which
added 2 + 2 and showed him the answer on my screen. His eyes lit up.

From that point, I started to think what is programming? What actually


happens under the hood? When I rst started to learn to code in 2017
on freeCodeCamp, I used the inbuilt code editor on the website and
would see the results. However, I didn’t really understand the magic
that was going on behind the scenes.

I started doing some research and these were some of the terms I
searched for: “What is computer programming? What is software?”
There are over 600 million search results on Google for “What is
Computer Programming?” It's a bit like going down a rabbit hole – it
can be complicated and overwhelming.

I wanted to put together a comprehensive introduction to what


computer programming and software development is for beginners. I
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 2/28
5/1/2020 What is Computer Programming? Defining Software Development.

will start with computer programming and then cover computer Donate
programming languages. Then I’ll talk about software and software
development. Finally, I’ll move onto the current trends and the future
of computer programming.

If you’re thinking about transitioning into the world of programming


or are just interested in learning to code, then this will provide you
with a general overview, without (too much!) technical jargon.

Just one thing to note: you can use the words “Developer” and
“Programmer” to mean someone who writes code.

What is Computer Programming?

On Wikipedia, the de nition of “Computer Programming” is:

“Computer programming is the process of designing and building an


executable computer program to accomplish a speci c computing

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 3/28
5/1/2020 What is Computer Programming? Defining Software Development.

result.” Donate
But what does that mean?

A computer itself isn’t smart. Yes they’re powerful and have the
potential to carry out tasks much faster than a human. But computers
need a human to write instructions and tell them what to do.

Therefore, programming is the process of writing those instructions.


We use a programming language to do this. These instructions are
translated to a readable format which a computer can understand.
The instructions are then carried out by the computer.

Programming how to make a cup


of tea

Let’s take making a cup of tea as an example. If you were to give

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 4/28
5/1/2020 What is Computer Programming? Defining Software Development.

instructions on how to make a cup of tea, it would look like the Donate
following:

1. Boil some water

2. Pour hot water in a cup with a teabag

3. Let the tea brew

4. Remove the teabag

5. Add milk and/or sugar (if desired)

Simple, right?

What we take for granted is that communication with a human being


is different than communicating with a computer. A human has prior
knowledge and life experience – they may know where to nd the tea.
We assume they know that milk is stored in a fridge.

Humans also have intuition. If you can't nd a cup you might then
search the cupboards instead. There’s also reading people’s non verbal
cues like body language.

When it comes to programming, you have to be very speci c.


Continuing with how to make a cup of tea, you might write
instructions in pseudo-code like this:

1. Go to the kitchen

2. Locate the kettle

3. Open the lid of the kettle

4. Fill the kettle with water

5. Turn the kettle on

6. Wait for it to boil to 100 degrees Celsius


https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 5/28
5/1/2020 What is Computer Programming? Defining Software Development.

7. Find a cup Donate

And so forth.

What if instructions like the ones above are not enough? You may
need to add some logic to account for all scenarios. For example: 2)
Locate the kettle. Well, is it an electric kettle or is it a kettle you put on
a hob? You’ll need to add a condition that if it is an electric kettle, then
do xyz. Otherwise, do xyz for a kettle that you put on a hob.

Even when you think that you’ve accounted for every possible
condition and given very speci c instructions, there are things that
you may not foresee. You start making your cup of tea and something
goes wrong. Oh no! Your kettle stops working after you start boiling it.

What happened? There’s a bug in your code! A bug is an error or aw


in your code which might lead to unexpected results. In order to x
your code, you go through a process of “debugging”, which is where
you nd the problems in your code and resolve the issues.

In this case, your instructions didn’t include lling up your kettle to 0.8
litres to cover the heating element. So the kettle switches off as a
safety measure.

To prevent errors from happening after you run your program,


developers carry out testing and unit-testing on their programs. Unit-
testing is where you write tests for parts of your code. The tests either
fail or pass.

For example, you write a function which adds two numbers: 1 + 1. You
then write a unit test where the expected output is 2. All answers will
fail unless it's 2.
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 6/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate
You go through your code until everything runs without any
unexpected problems. Programming is therefore a detailed oriented
and iterative process where you are continuously improving what you
have previously written.

How does your computer


understand your code?

What most programmers write as “code” is a high level programming


language. It is abstract by design. Abstraction in this context means
that we are moving further away from machine code and
programming languages are closer to spoken languages.

But a computer can’t understand text based code. It needs to be


compiled (translated) into machine code. Machine code is a set of
instructions which can be understood by a computer’s central

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 7/28
5/1/2020 What is Computer Programming? Defining Software Development.

processing unit (CPU). Think of the CPU as the brain of a computer. Donate
Machine code is made up of ones and zeros. This is called binary.
For example, this is how you would write “Hello World” in binary:

01001000 01100101 01101100 01101100 01101111 00100000 01010111


01101111 01110010 01101100 01100100

As you can see, binary is not easily readable for humans, so we tend to
avoid programming in machine code!

What exactly is a programming


language?
Programming languages fall both within the spectrum of low-level
languages, such as assembly, and high level programming languages,
such as JavaScript.

But what is a programming language exactly? The best analogy I can

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 8/28
5/1/2020 What is Computer Programming? Defining Software Development.

think of are the spoken languages we use today. All languages expressDonate
the same idea, but in different ways to another person:
English: Hello

French: Bonjour

Spanish: Hola

Programming languages are different ways of expressing the same


idea, but to a computer instead. The following will print out “Hello” in
three different programming languages:

JavaScript: alert(“Hello”);

Python: print(“Hello”)

Perl: print "Hello";

Each programming language has its own syntax. In English, we have


grammar. The same applies to programming languages – they each
have their own set of rules.

How do you know if a


programming language is a
programming language?
This might seem like an odd question to ask. Is all code written in a
programming language? Technically, no. For example, there is a
misconception that HTML (HyperText Markup Language) is a
programming language. It is in fact a “declarative” language, which
according to Wikipedia is:

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 9/28
5/1/2020 What is Computer Programming? Defining Software Development.

“...a style of building the structure and elements of computer Donate


programs - that expresses the logic of computation without
describing its control ow.”

In other words, HTML provides the structure of a web page, but


doesn’t control how the website behaves or functions.

You can determine if a language is a programming language by


whether it’s “Turing complete”. The Turing Machine is a hypothetical
machine described by Alan Turing in 1936. For a programming
language to be Turing complete it needs:

1. Conditional branching (which I explore below).

2. The ability to read and write to an in nite paper tape. This


essentially means being able to store data in memory.

I’m not going to explore this topic deeply, but if you are interested this
video is a helpful introduction.

What are the fundamentals of a


programming language?
There are some basic elements which are commonly featured. This
includes variables, loops, conditional statements, data structures and
algorithms. These are the building blocks of most programming
languages.

What is a 'for loop'?


For loops are useful if you have to execute a set of instructions
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 10/28
5/1/2020 What is Computer Programming? Defining Software Development.

repeatedly. For example, you have afternoon tea and have to make ve
Donate
cups of tea for your guests. In order to make one cup of tea, you have
to follow a set of instructions, like my earlier example.

Instead of writing the instructions ve times, you can tell the


computer to loop through the same instructions ve times. This
enables you to scale.

Below is an example of a basic for loop:

for (let i = 0; i < 5; i++) {


console.log("Make Tea!");
}

//expected output:
"Make Tea!"
"Make Tea!"
"Make Tea!"
"Make Tea!"
"Make Tea!"

What is a conditional statement?


In JavaScript we have if...else conditional statements. These are
used when you want to execute different actions based on a condition.

Going back to my earlier example, you ask the user if they want milk in
their tea. If they do want milk, then add milk to tea, else do nothing.

Here is an example of an if...else statement in JavaScript:

if(milk == true) {

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 11/28
5/1/2020 What is Computer Programming? Defining Software Development.

// add milk
Donate
} else {
// don't add milk
}

What are data structures?


“A data structure is a way of organizing data so that it can be used
effectively...They are essential ingredients in creating fast and
powerful algorithms.”

(Data Structures Easy to Advanced Course, William Fiset)

Common data structures that you can nd across many programming


languages are arrays, objects, tuples, and unions. I’ll take arrays as an
example.

In JavaScript, an array can store a range of data such as numbers and


strings (text). I love biscuits with my tea so I’m going to store them in
my array:

biscuits = [“shortbread”, “digestive”, “ginger nut”];

These biscuits are stored in the computer’s memory and you, as a


developer, can access a speci c biscuit by referencing its index. You
start counting the index from 0. The index is like the biscuit’s position
in a biscuit tin. You reference it by using the square bracket notation.

biscuits[0]; // “shortbread”
biscuits[1]; // “digestive”
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 12/28
5/1/2020 What is Computer Programming? Defining Software Development.

biscuits[2]; // “ginger nut”


Donate

If you want to get a digestive biscuit, you can access its index position:
biscuits[1] . I can easily nd it because I know where it’s stored.

Remember that the rst item of the array is index 0. So when you refer
to index 1, it’s actually the second item of the array.

Therefore, data structures are a way to manage data. This includes


storing and retrieving data. It’s more ef cient to execute algorithms if
data is organised in a data structure.

What is an algorithm?
An algorithm is a speci c set of instructions that solves a problem. It’s
an abstract concept. Here’s a link to a short video from TED on "What
is an Algorithm?".

Remember when we were writing instructions on how to make a cup


of tea earlier? That is essentially an algorithm: a set of sequential
instructions.

When I wrote my rst function in JavaScript, I actually created my


rst algorithm without knowing it was an algorithm! A function is an
implementation of an algorithm.

Just like in real life, there are often multiple solutions for a coding
problem. For example, say you’re planning on going to a cafe that
you’ve never been to before. There are several ways of getting to your
destination. Some routes take longer than others, but ultimately, they
all get you to the same place. Ideally you want to pick the quickest,
most ef cient, and easiest route.
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 13/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate
The same principle can be applied to programming. There are usually a
few ways to solve a coding problem, and programmers strive to nd
the most elegant and ef cient solution.

Developers often don’t get it right on the rst try! Just as I would
write a rst draft for an article, it’s the same for coding. I would redraft
an article several times, where I may change the structure, edit,
rewrite sections, and cut out unnecessary sentences. In programming
we go through a similar process, and we call this refactoring our code.

What are the main programming


languages used today? How many
are there?
There seems to be some debate on the total number of programming
languages on the internet. Some websites such as Wikipedia list
approximately 700 of “all notable” current and historical programming
languages. Other sites such as Tiobe track and monitor 250 of the
“most popular” languages.

On Github, the most popular programming language of 2019 was


JavaScript:

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 14/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate

Why are there so many programming


languages? How have programming
languages evolved?
Different programming languages are developed to satisfy different
Source: https://octoverse.github.com/#top-languages
needs. This is demonstrated throughout the history of programming
languages. Please refer to this diagram by O’Reilly which maps out the
history of programming languages from the 1950s to 2004.

In the mid 1950s, FORTRAN (Formula Translation) was created to


work out complex mathematical, statistical, and scienti c problems.
COBOL (“Common Business Oriented Language”) was created in
1959 to make it easier for businesses to use code. There are some
languages which are more suited for doing statistical analysis such as
R (1976).

There was the rise of general purpose programming languages from


the 1970s onwards, such as C, C++, C# and Java. As you can see in the
chart above, general purpose languages dominate the top 10 most
popular languages.

JavaScript, created in 1995, is a popular language for the web. It gives

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 15/28
5/1/2020 What is Computer Programming? Defining Software Development.

websites their interactivity and life. Donate


More recently, we’ve seen the birth of new languages such as Go from
Google, which was intended to maintain large software systems more
ef ciently. We'll probably see even more programming languages
created in the future.

Compiled vs. interpreted


programming languages

As you start to become more familiar with programming languages,


you will come across compiled and interpreted programming
languages. What is the difference?

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 16/28
5/1/2020 What is Computer Programming? Defining Software Development.

What is a compiled language? Donate

Programming languages such as C, C++, and Java have a “build”


process where your code is compiled down to a more readable format
(machine language) for the computer.

It might be easier to think of two people who don’t speak the same
language, but they have to work together. John speaks English and
Chloe speaks French. Chloe writes a set of instructions on how to
make a chocolate souf é in French, but John can’t understand it. They
need a translator that can speak both English and French. It’s easier if
the translator can translate Chloe’s instructions in advance before
they start cooking together.

Instead, developers “speak” a programming language like Java or


Python. They need their code to be compiled (translated) to machine
language before a program can run so the computer can understand it.

Programs made from a compiled language are easier for a computer to


understand, and therefore run very quickly.

What is an interpreted language?


JavaScript, PHP, and Python are examples of interpreted
programming languages. There’s no build process and the code
doesn’t need to be compiled. Your code is being interpreted or read
line by line as you run the program.

Back to my analogy of Chloe and John. John writes down a set of


instructions on how to make a shepherds pie. The translator doesn’t
translate John’s instructions in advance, but instead joins them for

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 17/28
5/1/2020 What is Computer Programming? Defining Software Development.

their cooking session. The translator translates each line of John’s Donate
instructions from English to French as Chloe cooks. Because of this, it
takes longer for Chloe to prepare and cook the meal.
Therefore, interpreted languages are slower than compiled languages.
They have to be translated on the y so the computer can understand.

But with just-in-time (JIT) compilers, interpreted languages are


becoming faster and more ef cient.

Which programming language(s)


should I choose to learn?
Programming languages pretty much do the same thing, but they are
just different ways of expressing the same instructions to a computer.
Once you've grasped the concepts and fundamentals of one
programming language, the learning curve for learning another
language won't be as steep.

The programming language you should choose to learn rst depends


on a number of factors. For example, I wanted to be a web developer,
so I chose JavaScript as my primary programming language. Other
languages for the web you can learn are PHP and Ruby on Rails.

If you want to become a data scientist, then Python might be an


option. Python is considered one of the best data science tools to
analyze big data. I mentioned R earlier, which is another language
used widely amongst data scientists and statisticians.

Python is a general purpose programming language, and is also useful


to learn if you want to get into the eld of Machine Learning and
Arti cial Intelligence.
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 18/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate
If you want to become a Software Engineer then Java could be an
option. Java is one of the most popular and in demand languages in the
world. It's a versatile language which can be used for developing small
to large enterprise software.

So think about what role in tech you would like and what kind of
companies you want to work for.

Choosing a programming language also depends on what software


you’re trying to build. This leads us nicely to our next section.

What is software?

How many times do you interact with software on a given day?

Software is everywhere. It’s integrated as embedded systems into


everyday devices such as your microwave, washing machines, cars,
TVs, children’s toys, and remote controls. Then there’s more obvious
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 19/28
5/1/2020 What is Computer Programming? Defining Software Development.

computer related devices which have application and/or system Donate


software such as tablets, smart phones, laptops, desktop computers,
and home assistants like Alexa.

The average person probably interacts with software a few dozen


times a day, if not more. It is part of our daily life.

All software is programmed by a developer. Software is agile by nature


and can constantly iterate. Software and hardware are intertwined.
Imagine your phone without its apps and operating system. The phone
would essentially be an expensive brick! Therefore, software gives
hardware life and hardware is how we interact with software.

The majority of software that’s created by programmers is written in a


high level programming language.

What is software development?

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 20/28
5/1/2020 What is Computer Programming? Defining Software Development.

Software development is everything from the conception of an idea toDonate


development and deployment. This process, from conceiving an idea
to deploying software, is also known as the software life cycle.

There are several stages of the software life cycle: discovery, design,
programming/creation, testing, and deployment/execution. It also
includes everything else in the software development ecosystem such
as maintenance, documentation, and bug xes.

I won't go into detail here, as the subject of software development


warrants its own article.

Current trends in Software


Development and Computer
Programming
Artificial Intelligence and Machine Learning

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 21/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate

In recent years you’ve probably heard of terms like arti cial


intelligence and machine learning. Sometimes they’re used
interchangeably, but are they the same?

No, they’re not quite the same thing. Machine learning is where a
machine learns through experience. Whereas arti cial intelligence is a
broader idea that machines can execute tasks intelligently. Machine
learning is a subset of Arti cial Intelligence.

What is Artificial intelligence?


I’ve covered how programming languages work – the programmer
writes a set of instructions for the computer to execute. Arti cial
Intelligence (AI) is a broader concept where computers can mimic the
way a brain functions. It’s training a machine to “think” like a human.

The big question is: can you replicate human intelligence in a machine?
Can you mimic the way a human learns, reasons, and perceives? Alan
Turing asked this question in his article in 1950:

“Can machines think?”

(Computing Machinery and Intelligence, 1950 by Alan Turing)

In Turing’s article he proposed the “Turing test” in which a machine


would be classed as “intelligent” if a person could not tell the

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 22/28
5/1/2020 What is Computer Programming? Defining Software Development.

difference between the responses of a human and the arti cially Donate
intelligent machine.
After 70 years, AI developers, academics, scientists and researchers
are still trying to answer this question and create an arti cially
intelligent machine. I don’t think we’re there yet. Have you tried
having a conversation with Siri or Alexa? Conversations with these
two devices are still basic. However, I’m sure it’s just a matter of time
before the technology improves.

Companies like DeepMind are researching this concept and whether


machines are capable of intelligence. DeepMind’s AlphaGo program
made the headlines when it beat a professional player at Go. This was
a huge milestone for AI.

What is Machine Learning?


Machine learning (ML) is a subset of arti cial intelligence. ML is a
different way of programming. It is the idea that the computer has the
ability to learn without being explicitly programmed. Arthur Samuel
rst came up with the idea of machine learning in his paper in 1959:

“Programming computers to learn from experience should


eventually eliminate the need for much of this detailed
programming effort.”

When I was teaching my son how to recognize a cat, I would show him
pictures of cats. I did this repeatedly until he was able to recognize a
cat without me prompting him.

Machine learning is similar to this. You give your computer a hundred


images (input) of cats. It then learns the patterns in the data and builds
a classi cation system through repetition. If you give your computer
more images of cats and other animals, it should be able to identify
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 23/28
5/1/2020 What is Computer Programming? Defining Software Development.

whether the animal in the picture is a cat or not a cat. It has essentiallyDonate
learned what a cat should look like.

ML is giving your computer data and examples, and in turn, it’s able to
learn for itself like babies and young children do. Instead of
developers giving the instructions to a computer, the computer
creates its own set of instructions to follow – machine learning
algorithms. Machine learning algorithms is a subset of ML, a concept
known as “Deep learning”.

“AI is one of the most profound things we’re working on as


humanity. It’s more profound than re or electricity...”

(Sundar Pichai, World Economic Forum, January 2020)

The quote from Sundar Pichai, the CEO of Alphabet Inc, summaries
the importance of AI and ML.

What is the future of computer


programming?
This nal section will be my predictions on the future of computer
programming.

Developers will continue to create new programming languages.


Programming languages will become more abstract and, therefore,
accessible to individuals learning to code.

I believe there will be greater importance placed on coding and


programming education in primary and secondary school curricula.
The demand for developers and programmers will only increase as

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 24/28
5/1/2020 What is Computer Programming? Defining Software Development.

technology and software becomes ever more integrated in our daily Donate
lives. Programming will become ubiquitous.
We will see the continual rise and popularity of ML and AI to assist
developers in the software development process. This includes
automating testing, along with detecting and preventing
vulnerabilities and bugs.

AI will revolutionize all aspects of our society, not just in programming


and software development. For example, we’ve seen great strides in
the area of AI and self driving cars.

One of the world’s leading companies developing self driving cars is


Tesla, founded by Elon Musk. With the supervision of a human driver,
a Tesla car can now automatically change lanes, navigate
autonomously on limited access freeways, and the owner can summon
the car to and from a garage or parking spot. Tesla's goal is to create a
fully automated, self driving car without any human supervision.

As machines become more intelligent, we may come to a point where


machines surpass the intelligence of human beings. This is referred to
as singularity. It may seem like complete science ction at the
moment! But notable gures such as Ray Kurzweil predict that
machines with human level intelligence will be available within the
next 20 years. Kurzweil is known for his accurate predictions of how
technologies will progress. He wrote a book on this: The Age of
Spiritual Machines.

How will our society change as a result of super intelligent machines?

Final words
https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 25/28
5/1/2020 What is Computer Programming? Defining Software Development.

Donate

Technology in uences and code touches almost every part of our


lives. From our choice of entertainment (online games, streaming) and
how we shop, to choosing what we eat and even how we date! Code is
important and more jobs will shift and require people to have at least
some basic understanding of programming.

Yet there are only approximately 23.9 million developers in the world
according to the Global Developer Population and Demographic study
2019. To put this in perspective, only 0.3% of the world’s population
knows how to program. As I discussed earlier, our dependency on
software and technology is increasing. According to the US Bureau of
Labor statistics, the demand for software engineers is expected to
grow by 21% from 2018 to 2028. Therefore, we need to increase the
number of developers.

If you’re thinking about becoming a developer, start today. It is an


incredibly exciting time to do so! There are many learn-to-code
resources online. There are self-paced platforms like freeCodeCamp.
There's also a great post by Laurence Bradford which compiles all the

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 26/28
5/1/2020 What is Computer Programming? Defining Software Development.

best resources to learn to code for free. Do some research and nd Donate
out which resource suits your learning style.
If you have any questions or just want to say hello, nd me on Twitter
@PhoebeVF.

A special thanks to Katerina Limpitsouni from Undraw for creating the


illustrations for this article.

If you read this far, tweet to the author to show them you care.
Tweet a thanks

Learn to code for free. freeCodeCamp's open source curriculum has


helped more than 40,000 people get jobs as developers.
Get started

freeCodeCamp is a donor-supported tax-exempt 501(c)(3) nonpro t organization (United States


Federal Tax Identi cation Number: 82-0779546)

Our mission: to help people learn to code for free. We accomplish this by creating thousands of
videos, articles, and interactive coding lessons - all freely available to the public. We also have
thousands of freeCodeCamp study groups around the world.

Donations to freeCodeCamp go toward our education initiatives, and help pay for servers,
services, and staff.

You can make a tax-deductible donation here.

Trending Guides

SQL Interview Questions CSS Flexbox


https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 27/28
5/1/2020 What is Computer Programming? Defining Software Development.
SQL Interview Questions CSS Flexbox
Donate
Statistical Signi cance Linux Commands

SQL Queries JavaScript Map

What is Blockchain? What is HTTPS?

Full Stack Developer Python List Append

JavaScript Substring What is Chromium?

What Does a VPN Do? Smoke Testing

Docker Remove Image Clear History

Tar GZ Incognito Mode

What is a CSV File? Linux Add User

Correlation VS Causation MD5 Hash

Permutation VS Combination What is Cached Data?

Computer Programming Completing the Square

JWT Error 403 Forbidden

How to Find a Square Root CSS Inline Style

Our Nonpro t

About Alumni Network Open Source Shop Support Sponsors Academic Honesty

Code of Conduct Privacy Policy Terms of Service Copyright Policy

https://www.freecodecamp.org/news/what-is-computer-programming-defining-software-development/ 28/28

You might also like