Who is this for?#
This book is written for individuals with no prior programming experience. It is meant to cover the basics and provide you with opportunities for practice. It is meant to move people who are complete novices when it comes to programming in the direction of being a beginner programmer. It is not meant to make anyone an expert programmer. That takes time and practice, but if you learn the basics up front, you’ll be well on your way.
Beyond being for beginners, this approach to learning programmers is designed for individuals who will go on to become end-user programmers (rather than say, software engineers). Software engineers are trained to build software. End-user programmers are people who use code to accomplish a task, such as a complicated analysis. End-user programmers tend to be scientists of all types, data scientists, economists, mathematicians, business analysts, among others. They generally use code as a means to an answer, rather than as part of a larger system, whereas software engineers use code to build products or parts of systems.
How Long Should This Take?#
As a gauge, my students spend approximately 30 hours with me in class, and then approximately 16 hours (on average) outside of class working on assignments. Beyond that, they study for two exams and develop a final project, which takes them minimally another 4-5 hours. All told, to have a strong grasp on the content in this course, each student engages with the material covered in this book for for at least 50 hours. Now, you may not spend as many hours practicing beyond this book, but I would guess that if you’re new programming, it will take around the same amount of time (~50 hours) to really get a grasp on the content covered in this book.