4 ms·
> Synthesis is essence of software engineering, whereas abstraction is the essence of computer science. Your job as a software developer will be to synthesise
by davidatbu 5y ago
> Synthesis is essence of software engineering, whereas abstraction is the essence of computer science. Your job as a software developer will be to synthesise something new from composable pieces. What you create should be simple to understand and extend.
Loved this.
- auggierose 5y agoThis is definitely a 1x rule. ;-)
- Floegipoky 5y agoIt's a nice quote, but I really disagree with this section. Yes, software development is more concrete than computer science, but abstraction is so, so important. The author acknowledges the value of simplicity, but simple code is only produced by choosing the right abstractions. Getting even 1 key abstraction wrong can create enough "friction" to eventually kill a product if the tech debt isn't managed well. 99.5% of a car mechanic's job is assembling/disassembling pre-made components, but they still need to understand how a car works.
- yCombLinks 5y agoI didn't read it as "never use abstraction". Consistently the most difficult code for me to work with (enterprise development, business use cases etc...) has come from excess abstraction and having the business context hidden behind layers of terminology used in academic settings and not the current business context. Mental mapping required for every class and method name to why the business would be interested in this code being ran.
- davidatbu 5y agoAgreed that the quote, in isolation, undersells the importance of abstraction in software dev.