---
id: 66581a78b1eb2281159492fa
title: Learn to Solve Problems and Understand Errors Lesson A
challengeType: 15
dashedName: learn-to-solve-problems-and-understand-errors-lesson-a
---

# --description--

Before you start digging into some pretty nifty JavaScript, you need to begin talking about problem solving: the most important skill a developer needs.

Problem solving is the core thing software developers do. The programming languages and tools they use are secondary to this fundamental skill.

From his book, "Think Like a Programmer", V. Anton Spraul defines problem solving in programming as:

> Problem solving is writing an original program that performs a particular set of tasks and meets all stated constraints.

The set of tasks can range from solving small coding exercises all the way up to building a social network site like Facebook or a search engine like Google. Each problem has its own set of constraints, for example, high performance and scalability may not matter too much in a coding exercise but it will be vital in apps like Google that need to service billions of search queries each day.

New programmers often find problem solving the hardest skill to build. It's not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start.

The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you'll be prepared to solve real world problems.

# --assignment--

Read <a href="https://www.freecodecamp.org/news/how-to-think-like-a-programmer-lessons-in-problem-solving-d1d8bf1de7d2/" target="_blank">How to Think Like a Programmer - Lessons in Problem Solving</a> by Richard Reis.

# --questions--

## --text--

According to V. Anton Spraul in "Think Like a Programmer," what is problem solving in programming?

## --answers--

Learning the syntax and concepts of different programming languages.

---

Building applications with high performance and scalability as the key features.

---

Writing an original program that performs a specific set of tasks and meets all stated constraints.

---

Solving coding exercises to improve programming skills.


## --video-solution--

3
