18 ms·
> This is why, across history, the tried and true method of learning a craft is an apprenticeship. And in our modern world, universities are still the best pla
by hintymad 1y ago
> This is why, across history, the tried and true method of learning a craft is an apprenticeship.
And in our modern world, universities are still the best place for such apprenticeship. Not the ones per Mark Trevor's words (https://marktarver.com/professor.html https://marktarver.com/professor.html), of course, but a self-respecting university will train their students with progressively challenging and practical assignments. We started with implementing simple data structures and algorithms and solving simple puzzles all the way to implementing toy OSes, databases, persistent data structures, compilers, CPUs, discrete simulations, machine learning models. We started with implementing functions and individual components and quicly to building things from scratch. I'm forever grateful to the training I received in my univerity.
- leptons 1y agoI'm self-taught and did pretty much all of those things. All it took was reading the docs.
- guhidalg 1y agoI downvoted you because you are exceptional but the rest of the world is not. Most people benefit from traditional education, software engineering is not different.
- Muvasa 1y agoBS. Everything I learned from college was me anki and youtube. Lectures were wasting me time from actually studying. Most people I talked to they said. They didn't follow the lecturer at all just sat there like me for the attendence. There is no reason why we should continue to have mandatory lectures when you can just record them like Gilbert Strang did.
- cultofmetatron 1y agoits not THAT exceptional. I myself know several people who bootstrapped themselves into being descent software engineers. Traditional education is certainly fine for some people but its not the only way for the masses to learn. whats missing is the discipline of pushing yourself when you have no immediate extrinsic motivation. You might have had a point a few decades ago when the information itself was difficult to fine but with the internet and online courses, its easier than ever to teach yourself in a "nontraditional" setting.
- jjcob 1y agoI was a self-taught software developer who already made money with programming for ~10 years before I took my first computer science classes. Those classes unlocked a whole new level of programming for me. I just didn't know what I didn't know before. People keep reinventing the same shit if they haven't learned about it before. Sure, you can learn many things online. But for most things you just don't even know that they exist, you wouldn't know to search for them.
- palata 1y agoI downvoted you because I kindly disagree. Seems like that's how you do it.
- brazukadev 1y agoit only becomes exceptional after you start and continue doing it. I was not capable of self-learn before I applied to it.
- timr 1y ago> And in our modern world, universities are still the best place for such apprenticeship. I spent a good portion of my life in Universities -- and went as far as one can go in terms of educational credentials and taught at the university level -- and I cannot disagree more. Universities produce job skills incidentally, if at all. It's simply not their goal [1]. Even today, at the best CS programs in the country, it's possible to get a degree and still not be better than a very junior engineer at a software company (and quite a few graduates are worse). > We started with implementing simple data structures and algorithms and solving simple puzzles all the way to implementing toy OSes, databases, persistent data structures, compilers, CPUs, discrete simulations, machine learning models. This was not my experience, nor is it what I have seen in most university graduates. It's still quite possible for a CS grad to get a degree having only theoretical knowledge in these topics, and no actual ability to write code. This leaves open the question of where "the best place" is to learn as-practiced programming [2], but I tend to agree with the root commenter that the best programmers come up through a de facto apprenticeship system, even if most of them spend time in universities along the way. [1] Their goal is to produce professors. You may not realize this if you only went as far as the undergraduate diploma, but that is mostly what academics know, and so it is what they teach. The difference between the "best" CS programs and the others is that they have some professors with actual industry experience, but even then, most of them are academics through and through. [2] Code academies suck in their own ways.
- throwup238 1y ago> Universities produce job skills incidentally, if at all. It's simply not their goal [1]. Even today, at the best CS programs in the country, it's possible to get a degree and still not be better than a very junior engineer at a software company (and quite a few graduates are worse). Having been self taught in both software and electrical engineering, I’ve experienced a lot of this. In EE, it’s amazing how many graduates come into the job without ever having used Altium/KiCAD/Cadence for a nontrivial project or who can give you a very precise definition of impedance but don’t know how to break out an engineering calculator to set design rules for impedance controlled differential pairs. Or worse yet, people who can give you all the theory of switching model power supply but can’t read datasheets and select parts in practice.
- usefulcat 1y agoI went to a good university with a decent CS program, and I'd definitely say I learned a lot more on the job than I did in school. I didn't always have any mentors to speak of but I did have at least a couple who were good.
- g9yuayon 1y agoI think both can true. I learned a lot in my university, and my learning has been carrying me ever since. Case in point, it was never a problem for me to pick up functional programming or programming-language concepts in general because the courses on programming languages were so wonderful. I had no problem tap into formal verifications or data science or distributed systems because my universities gave me solid fundamentals. Heck, I was not even a good student back then. It was Sam Toueg of the failure detector fame who taught us distributed systems, yet I was lost most of the time and I thought he was talking some abstract nonsense. Only after I graduated could I appreciate the framework of analyzing distributed systems that he taught us. On the other hand, we certainly learned more after graduation (or something is wrong, right?). When I was in the AI course, the CS department was all about symbolic reasoning I didn't even know that Hinton was in the same department. I think what matters is the core training stayed with me and helped me learn new stuff year after year.
- g9yuayon 1y agoMy own experience: https://www.quora.com/Could-online-coding-programs-and-coding-boot-camps-render-CS-degrees-useless/answer/Yong-Yuan https://www.quora.com/Could-online-coding-programs-and-codin... And my wife's experience: https://www.quora.com/What-is-it-like-to-learn-computer-science-at-a-late-stage/answer/Yong-Yuan https://www.quora.com/What-is-it-like-to-learn-computer-scie... In short, the training that we got from our universities was invaluable, and I always feel fortunate and grateful to my CS department.