|
Sometimes I'm wondering whether this is the future, or whether we (as an industry teaching the next generation) are taking shortcuts that will hurt us in the long run. Honest question. I don't have the answer or am insinuating anything. What do I mean? Well, I also acquired all that knowledge, but through a formal university CS degree. Before starting my degree, I was also "just" tinkering and hacking. I had been "programming" for like a decade before that, different languages, solving some problems that I found interesting or practically useful. During my degree though, I got all the details. I had full courses on hardware (transistors and upwards, all the way to CPU architecture), on mathematical logic, on compilers, on programming language paradigms, on algorithms, on complexity theory, on formal methods, in-depth on C++, Java, Prolog, computer networks, databases, cryptography, real-time systems, statistics, and a few more. This also allows me to in-depth describe a "nand to tetris" process, but obviously my education has been much broader than that. Was it necessary to take that 6-year degree? Would that have been equally well covered by a bunch of Coursera online classes and then a few years of work experience? I really don't know. I have a small sample set of colleagues who are self-taught and though ambitious are sometimes lacking broader perspective and in-depth understanding of CS foundations (that includes my boss), and of colleagues who went through a similar degree and do have a similar perspective as me, some of them not really remembering what was taught (or not caring), so those samples go both ways. I don't really know anybody without a formal degree who has the full fundamentals groked though. That would let me to conclude that the degree is a good thing, but frankly my sample is too small to tell. |