4 ms·
we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium
by CodeArtisan 9y ago
we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.
This is from the preface of SICP[1] which taught me that abstraction is the most important concept of programming (and computer science?). Do you need to know how sqrt() has been implemented to being able to use it? no. A programmer shall first have a good knowledge of the abstraction techniques. He shall know how, when, and the cost to use them. Then, if you are illiterate when it come to algorithm design and analysis, it shall not be a problem because replacing a bad algorithm/implementation by another would be easy due to the correct application of abstraction. "The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast." — Joshua Bloch
[1] https://sarabander.github.io/sicp/ https://sarabander.github.io/sicp/