You seem to be arguing that non-CS trained devs can learn these things when they come across them.  I wouldn&#x27;t disagree with that.<p>I think what I see as the real concern is a case of &quot;not knowing what you don&#x27;t know.&quot;  If you aren&#x27;t exposed to at least the fundamentals of this broad base of CS knowledge you aren&#x27;t going to know that they are available to you when you need them. Learning about a tree when you first read about it is great.  But that person will still have huge gaps in their CS knowledge compared to someone who systematically studied it.<p>I also don&#x27;t think this is so much about having a CS degree, as it is simply having studied CS in <i>some</i> fashion.  I&#x27;ve worked with plenty of talented self-taught developers who took the time to learn these things on their own.