As someone who has NO experience programming, is this book meant for a reader like me?

as someone who has NO experience programming, is this book meant for a reader like me?

what do you want user? What caused you to post here

How clever are you?

i post here all the time. however, i only dick with hardware. i've garnered an interest for programming as of recent though, i've seen this recommended a few times over the years.

define clever

I'd start by learning the basics of a programming language before reading that. It's not the most inspiring of works

>define clever
So no, then

A beginner could understand and get a lot out of SICP, but depending on your goals it might not be the best place to start. It teaches a programming language and a way of thinking about programming that is not in vogue in the software industry.

i'd say that is a correct evaluation, user

either way, are the concepts the authors are conveying in the book that hard to grasp? do you need a fundamental understanding of programming before attempting to read SICP?

the software industry isn't relevant to me. i am just interested in programming.

i understand that the language LISP(?) is taught? what concepts are to be covered though? abstraction?

Depends on what do you want to archive:

If you want to learn to program to get a job in six months, no, this books is not for you.

But if you want to understand the underlying concept of what programming is and what computing really means, yes this books is a good start.

Programming from the Ground Up it gently introduces you to things such as stacks, activation records, system calls, binary numbers, memory management, and linking. It uses assembly so that you can get a taste of how the machine itself is working, but its purpose is to help you in other programming languages besides assembly.

Fucking google it you stupid mong

>meant for a reader like me
You can do anything you want user, books are not tailored for a specific audience.

it's meant to be an introduction to computer science

K&R was for people who already knew FORTRAN and COBOL for example

Yes, it's an introductory text for people who may never have programmed before.

You are expected to know entry-level university maths, however, since that was part of the curriculum at MIT. A lot of electrical engineering concepts pop up too for the same reason, but you don't really need to understand them.

Programming from the Ground Up has a totally different focus than SICP which is concerned mostly with high-level computation theory. In fact, SICP is even given as recommend reading in PftGU

This book was used on the freshman CS curriculum for a long time user. You'll be able to handle it fine if you do the exercises.

However, lisp really isn't a great first programming language. It's simply not relevant any more.

SICP is a great book when you've been programming for a while and want your world view shattered.

Otherwise it's just a shortcut to getting bored and disillusioned with programming and never returning.

>However, lisp really isn't a great first programming language. It's simply not relevant any more.

Common Lisp, Racket, Clojure, and to an extent, Scheme still have vibrant communities. Even after all these years no other language has quite captured what makes Lisp so great to use.

Not disputing that fact.

But starting with lisp kind of spoils you when you get a job writing python, and realise your data as code paradigm doesn't work anymore.

I think learning lisp is most effective when you've felt the limitations of other programming styles.

That's certainly true, but on the other hand it's far too common for even somewhat experienced programmer to fall into a kind of mindset where every language is seen as fundamentally the same with some slight syntax differences.
The fact that lisp macros are often misunderstood because C has something ostensibly similar is the most basic example. More recently there's other languages calling anonymous or first-order functions 'lambdas' because Lisp did it. However, lambda means nothing in Lisp, it just denotes a function, since all functions are first-order and can be declared inline like any other variable.

For this reason I think it's valuable for beginners to be exposed to a variety of languages that are radically different from one another. They probably shouldn't learn a Lisp as their only language, but it's a valuable thing to understand.

Hmm yes, I agree with you here too.

I guess I wouldn't recommend lisp (and specifically SICP) for a beginner, but definitely would advocate diving into it within the first year of learning before habits get too ingrained.

I personally think SICP is just too overwhelming for a beginner. Give them something with real world results early. For this I reason I think python and even javascript (shudder), are good first languages to gain enthusiasm for programming.

Haven't a bunch of CS programmes dropped SICP in favor of python for freshman year?

Yes, anyone can read and learn from this book if they apply themselves.

I don't think it's still taught as a first-year course anywhere, however, there are some in later years that use it.
The explanation given for its replacement at MIT was that programming today is less about building complex systems from basic abstractions and more about manipulation and connection structures in a way that is fault-tolerant, which is why they moved to a course based on python and robots.

Seems reasonable I guess.

This has been the first non-jewed conversation I've ever had on Sup Forums. top kek user, well done.

Watch the lectures instead, only use book to help with things you don't understand

Wrong. You should do the opposite, read the book and only watch the lectures for fun another year.

Are you in high school and are undecided on whether you shall pursue CS? If yes then SICP is for you, otherwise no.

Yes, definitely.
It was written as an introduction book and even after decades it's still a "must read" for many people.


Why?
You see, programming consists of several parts. Knowing a certain programming language is not as important as you might think. You can learn programming with almost any language!

What's important is a certain way of thinking, breaking down problems in smaller tasks, breaking those tasks down in sub tasks and so on.
This gets complex very fast, too complex for the human brain to keep in all in your brain at the same time, so people came up with different ideas or "paradigms" as it's called.

SICP does a great job in introducing those different paradigms. It's give you very fundamental insights, i.e. makes you think about the difference between "data" and "programming code".
The authors chose Scheme (which is a LISP, so to speak) because it has not much syntax to remember. It gets "out of your way" and lets you focus on thinking about programming. Also it's pretty fluid, you can do a lot of things with it.

Even if you probably won't use Scheme afterwards a lot, since it's not that common anymore, it will make learning other programming languages very easy, because a lot of things carry over.


So it's not a "be all end all" book, but it's a great foundation for your further development as programmer.

composingprograms.com is python based SICP