Prerequisites and Self-Assessment
This book assumes no prior programming experience. None. If you have never written a line of code in your life, you are exactly the person this book was written for.
That said, you do bring skills and habits to this course that will affect how smoothly things go. This self-assessment helps you identify where you are strong and where you might need a little extra preparation. Answer honestly — this is for you, not for a grade.
Part 1: Basic Math Comfort
You do not need to be a math wizard. CS1 uses arithmetic, basic algebra, and logical reasoning. Calculus never appears. Here is your check:
Can you do the following?
- Calculate the average of five numbers: 85, 92, 78, 95, 88.
- Solve for x:
3x + 7 = 22 - Evaluate this expression:
(10 + 5) * 2 - 8 / 4 - Determine whether this statement is true or false: "If it is raining AND I have an umbrella, then I will stay dry." (It is raining. You do not have an umbrella.)
- Convert a percentage to a decimal: What is 85% as a decimal?
Scoring:
- 5/5: You are completely ready. Math will not be a barrier.
- 3-4/5: You are fine. Brush up on order of operations (PEMDAS) and basic algebra if you want extra confidence. Appendix C covers the math foundations you will need.
- 0-2/5: Consider reviewing basic algebra before or alongside Chapter 3. Khan Academy's pre-algebra course is free and excellent. This is not a dealbreaker — but shaky arithmetic will slow you down when you are trying to learn programming concepts at the same time.
Answers
1. (85 + 92 + 78 + 95 + 88) / 5 = 438 / 5 = **87.6** 2. 3x = 15, so **x = 5** 3. (15) * 2 - 2 = 30 - 2 = **28** 4. **False.** Both conditions must be true for an AND statement to be true. You do not have an umbrella, so the AND fails. 5. **0.85**Part 2: Computer Comfort
You do not need to be a "computer person," but you do need basic familiarity with using a computer. Programming is a hands-on activity that requires interacting with files, installing software, and typing commands.
Rate yourself on each skill (1 = never done it, 2 = could figure it out, 3 = comfortable):
| Skill | 1 | 2 | 3 |
|---|---|---|---|
| Creating, renaming, and organizing files into folders | |||
| Downloading and installing software from the internet | |||
| Typing at a reasonable speed (you do not need to be fast, but hunt-and-peck will be painful) | |||
| Using a web browser to search for information | |||
| Unzipping a compressed file (.zip) | |||
| Finding where a downloaded file was saved on your computer | |||
| Knowing the difference between saving a file and saving a file as a specific type |
Scoring:
- 18-21 (mostly 3s): You are ready to go. Chapter 2 will walk you through installation and setup.
- 12-17 (mostly 2s): You will be fine. Chapter 2 and Appendix B provide step-by-step setup instructions with screenshots for Windows, macOS, and Linux. Just budget a little extra time for the setup chapter.
- 7-11 (mostly 1s): Consider spending an hour or two getting comfortable with file management on your computer before starting Chapter 2. Practice creating folders, moving files between them, and installing a free application. These skills are assumed throughout the book and are hard to teach alongside programming concepts.
Part 3: Mindset Check
This is the most important section. Technical prerequisites can be caught up on. Mindset determines whether you stick with it when things get hard — and they will get hard.
Read each statement and honestly assess whether it sounds like you:
-
"I am willing to be confused for a while." Learning to program involves sustained confusion. Concepts will not click immediately. Code will break for reasons you do not understand. This is normal and temporary, but it is uncomfortable. Students who expect instant understanding tend to conclude they are "not smart enough" and drop the course. The truth is simpler: they were not patient enough.
-
"I am willing to make mistakes — lots of them." Your code will have bugs. Every single program you write for the first several weeks will have bugs. Professional developers with 20 years of experience still write bugs every day. The difference is they have learned to expect them, find them, and fix them. If making mistakes feels like failure to you, programming will be a rough ride until you reframe it.
-
"I am willing to ask for help." There is a persistent myth in computer science that real programmers figure everything out alone. This is false. Every professional developer uses Stack Overflow, reads documentation, asks colleagues, and occasionally stares at code for an hour before realizing they misspelled a variable name. Asking for help is not weakness — it is a professional skill.
-
"I can commit regular time to practice." Programming is a skill, like playing an instrument or learning a language. You cannot cram it. Thirty minutes of coding every day beats a six-hour marathon on Sunday. If your schedule does not allow regular practice time, this course will be significantly harder.
-
"I am here because I want to be, or at least I am open to being surprised." The best outcome is genuine curiosity. The second-best outcome is showing up with an open mind. If you are only here because someone told you to be and you are determined to hate it — well, you might still be surprised. Many students who start skeptical end up fascinated. Give it a chance through at least Chapter 6, when functions click and you suddenly feel like a programmer for the first time.
Scoring:
There is no numeric score for this section. But if you read those five statements and thought, "Yeah, I can do that" — you are ready. That willingness matters more than any technical prerequisite.
What You Do NOT Need
Let's be explicit about what is not required:
- Prior programming experience. Not in Python, not in Scratch, not in anything. Chapter 1 starts from absolute zero.
- A powerful computer. Any computer made in the last eight years that runs Windows, macOS, or Linux will work fine. Python is lightweight. A Chromebook can work with some extra setup (see Appendix B).
- Advanced math. No calculus, no statistics, no linear algebra. Basic arithmetic and simple algebra are all you need.
- A "computer science brain." There is no such thing. The belief that some people are naturally good at programming and others are not has been thoroughly debunked by research. What predicts success is practice, persistence, and willingness to sit with discomfort.
Ready?
If you made it through this self-assessment and you are not running for the door, you are ready for Chapter 1. Everything else, this book will teach you.
Let's go.