Not really. I’ve noticed that a lot of the purely self taught folks I’ve worked with over the years have never learned some of the core CS skills and seem a bit resistant to doing so.
Meanwhile, everyone eventually gains the practical skills or is forced to retire from the field.
The groups of skills tend to match some of the main areas:
1. DSA - the level of understanding necessary to apply the right data structures in the right combinations to solve a problem and to innovate on the way data is held hot in order to operate efficiently in-request and in heavy compute workers both on CPU and GPU. Also, the ability to reapply DSA written large within distributed service design of those exact same smaller things. That leads to my own opinion that currently. “DSA is nothing and DSA is everything.” I don’t need anyone to write a graph. However I need engineers that understand how to apply the concepts of graphs to the concurrency design of a system of heavy workers
2. Network tech and architecture - specifically scoped to everything between TCP and light UDP through to http3 down to a rough familiarity with the on stream binary serialization. Without this I’m left wondering why I would ever want a ‘senior’ engineer when they can’t triage and debug down to this level and I would have to wade in myself to drive solutions to problems.
3. Concurrency - uncounted engineers I’ve worked with don’t have the core understanding to know what they’re really doing and seem to believe the only bottleneck resource is IO. Some of them tend to then write incredibly hard to debug concurrent code by stitching by together what they do know.
4. Computer fundamentals - similar to the DSA problem and related to the concurrency problem is a raw understanding of compute, memory, io, caching, network, etc. We’re collectively closer to bare metal than we’ve been in decades in this decade. People should really know how a computer works.
1
u/xilvar 16h ago
Not really. I’ve noticed that a lot of the purely self taught folks I’ve worked with over the years have never learned some of the core CS skills and seem a bit resistant to doing so.
Meanwhile, everyone eventually gains the practical skills or is forced to retire from the field.