So you suggest that we should put even
more emphasis on Computer Science fundamentals?
Ad of most jobs don't already put too mich emphasis on mindlessly coding reference implementations of naive classical algorithms and data structures as proof of competence.
Encouraging inexperienced devs to embrace NIH (Not Invented Here) Syndrome is not the answer.
Even poorly supported open source projects will often have better edge case coverage, testing, and battle hardened code than a prototype produced by a reasonably experienced dev alone could provide.
The issue isn't whether or not to embrace third-party libraries. Thr issue that it's very hard to get devs to join/support existing open source libs.
As a dev of multiple libs, one of which is widely used among the JS community, it's very difficult to promote my lob and draw more users/support. Despite the fact that the lib has been battle hardened, tested, and in common use by hundreds of thousands of other devs for over 4 years.
Somebody could easily create a framework specific wrapper of my lib that garners more stars/forks on GitHub in a matter of months; and worse, most wrapper/clones never bother to update from upstream so their users are left using old/outdated code.
If you want to stick to 'old values' then do the work to make existing libraries better. Don't waste time/resources producing one-off garbage that contributes to technical debt.
Not sure if you got the
memo but the one distinctive benefit of employing software developers is that we provide the ability to automate away repetitive work and save the business money in the long-term. Including, saving development time, effort, and future maintenance by leveraging existing bodies of work.
Where the code comes from and how it works Is only relevant to software devs. The everybody else, the only thing that matters is the result it produces and how costly it'll be to maintain and update in the future.
The sad truth for devs who pride themselves on a strong knowledge of algos and data structures is, most jobs don't require those skills. Software produced for profit requires mostly composing an application of existing code, not writing original implementations.