4 ms·
I'm in my 40s and have been, to varying levels of professionalism, a "professional" web developer since the early 2000s (having started self-teaching soon after
by tomhoward 3y ago
I'm in my 40s and have been, to varying levels of professionalism, a "professional" web developer since the early 2000s (having started self-teaching soon after I started using the web in the mid 90s). I've always been self-taught.
It's only in the past year or so that I've started doing LeetCode, and learning about things like sorting algorithms, uses of hashes, binary trees, linked lists, and other things that are basic CS concepts. I've also been learning about how microprocessors work, a little assembly code, electronics/hardware design, embedded programming.
I'm not about to say it's been transformative or profoundly enlightening, but I do consider it to be useful and valuable to be able to know these things when working on projects where large data sets and performance issues are involved. I'm no longer able to nod along when people go on those rants about how LeetCode and whiteboard tests are just testing for conformity and obedience; I can now see how these concepts are important for people to know when working in the kinds of roles that the major tech companies are hiring for.
I think the bigger realisation I've had is that academic Computer Science and contemporary software development are just quite different fields, and it's non-obvious until you make the effort to bridge the gap, just how little in common they have, at least until you become more advanced as a software developer.
I agree that it's mostly due to the fact that many/most software developers these days are self-taught or taught in bootcamps or "IT" courses that just don't teach much or any fundamental CS. And I agree it's probably not a bad thing on the whole, but I also think it would be better if self-taught software developers were encouraged to believe that learning these concepts at some point is achievable, worthwhile and possibly quite satisfying and confidence-building.