This intro is only my naive attempt at a mile-high snapshot helping me to position my question. Any user trying to answer my question, that tries to nail down one aspect of programming, will have to overcome my naive understanding, simply because of my idiosyncratic education. So here I'm placing my subject in the array of topics outlining programming and software activities:
- Fundamentals of programming (software design patterns, idioms, models)
- Code reuse and integration (libraries, frameworks, apis)
- Continual development (documentation, commenting, version control)
- Maintenance best practices (systems administration)
I'm interested to focus my programming skills on code reuse and integration topics. This topic may certainly begin with software programming languages and the differences between functional and object-oriented programming. However, what I wish to focus on in detail and at some length are the variety of uses of libraries, frameworks, and apis.
My programming education comes from what I can readily find on the internet and in books. Earlier this year I enrolled in a class on fundamentals at Coursera, Programming Languages, by professor Daniel Grossman, which attempts to prepare students for programming in any language. Reuse was mentioned only as a property of functions and object. You can start your search for 'reuse and integration' in fundamentals and not get close.
Since I started learning some Ruby, php I've put together a better understanding of 'reuse and integration', but its all cobbled and patchwork. Published materials are mostly #1 and then some idiosyncratic mix of #2-4. You can read a lot of books and still not understand how all of these abstractions fit together.
I've even participated in a discussion here at p.se on the pedagogical problem of cargo-cult programmer students who "...copy-paste code from previous, similar-looking assignments..." While my own answer to this reflects my appreciation for the OP's concern, and yet my imagination can't help envying these students who can draw with such ease from previous projects just a little bit.
I've not read the book or participated in a class or heard a discussion which attempts to survey the reuse and integration paradigms in their totality.
Where in computer science education does “reuse and integration” find comprehensive coverage?