4 ms·
> You already have a career in software. I’m here to tell you: you probably won’t be learning much you don’t already know. I didn’t. Woah. Pump the brakes. Eve
by vunderba 2y ago
> You already have a career in software. I’m here to tell you: you probably won’t be learning much you don’t already know. I didn’t.
Woah. Pump the brakes. Even without precisely knowing what area of the IT world OP is in professionally - I can guarantee there's a huge amount of knowledge in a proper CS degree that they don't have. Granted a lot of that might be theoretics, but it's all fundamental to computer science.
Just off the top of my head - it's highly doubtful that they have familiarity with any of the following topics (all of which are found in rigorously academic CS programs):
- Linear algebra (eigenvectors, vector spaces, least squares, etc.)
- Discrete maths (recurrence, graph theory, tree spanning, grammars, etc.)
And that doesn't even begin to cover graphics and computation, compilers, algorithms, operating systems, data structures, artificial intelligence, and on and on.
You can dispute how much practical value this might have for your average software dev - but OP will 100% learn a great deal from a BS/MS in Computer Science.
- tester756 2y ago>And that doesn't even begin to cover graphics and computation, compilers, algorithms, operating systems, data structures, artificial intelligence, and on and on. Maybe if you are attending top3 country schools, but for the rest all those topic you can get good or better knowledge on the internet
- vunderba 2y agoWhat's your point? You can make that argument for almost any subject matter. The discussion was whether or not OP would LEARN anything from a traditional Computer Science degree that they hadn't already encountered as a software dev. The answer is almost assuredly yes. To circle back around, everyone learns differently. Some people prefer a more scholastic approach to learning with classes, labs, assignments, meeting in person, and engaging with professors. Others might be just as happy listening online to lecture after lecture from MIT OpenCourses. OP sounds like they'd prefer a more traditional pathway.
- tekla 2y ago> Maybe if you are attending top3 country schools This is bog standard stuff for any school, not "top 3". Working in software doesn't mean you know jack shit about anything. I also notice calc 2 or 3 isn't included in the list.
- nextos 2y agoMy BSc degree taught lots of things that would be useful for an average software developer with some experience. MSc programs tend to be more research-oriented and thus less practical unless you work in some R&D niche that matches what you studied 1-to-1. Practical BSc materials included other programming paradigms, mostly pretty advanced declarative and functional programming, equivalent to big chunks from CTM and a typical Haskell book. Also deep relational algebra and calculi, including query optimization, and low-level driver programming, concurrency models, and networking. Further to that, compiler construction, amounting to significant chunks of the Dragon Book, etc. This is something you can self-study. But, obviously, an institution will provide good structure and credentials. Depending on the cost, it might make more or less sense. The OP might want to look at good EU universities where tuition is free for EU nationals and coursework is taught in English at BSc level.
- throwaway2037 2y ago> significant chunks of the Dragon Book You did this as an undergrad? I am surprised. That is normally graduate level.
- nextos 2y agoYes, my undergrad school was dominated by some compiler researchers. We didn't cover it all, by any means, but we built lots of lexers, parsers, and interpreters. There was an elective that went through the rest of the book. Crafting Interpreters would have been a better textbook, but it wasn't available at the time.
- musicale 2y agoI suppose it isn't entirely paradoxical, but I disliked the dragon book, even though I rather liked Hopcroft/Motwani/Ullman's (theoretical, non-compiler book) Automata Theory, Languages, and Computation. (Turing award winner) Ullman giveth and taketh away. Purple dragon (Aho/Lam/Sethi/Ullman) is probably better than red (or green) dragon though, as it adds some interesting topics. In an undergrad course, I'd probably prefer a simple book that uses recursive descent.
- deleted 2y ago[deleted]
- epolanski 2y ago> I can guarantee there's a huge amount of knowledge in a proper CS degree that they don't have. Idk, I don't buy it. I have a master in Chemistry, but ended up a software engineer 8+ years ago with no formal CS education. Way after starting to work, I started digging in most CS topics and I'll just plainly say that: I know more about networking, OSs, math, programming languages, type systems, algorithms and ds, system design etc than fresh graduates I interview, let alone people that graduated ages ago. Unless you've been living under a rock, most universities out there programs are public, lecture and notes are there, and there's an overabundance of excellent full courses on YouTube and simila. The only thing that a degree tells me is that you went through a series of tests and passed them, tells me absolutely zero, nothing, about what you retained in years studying. It's not surprising, in chemistry it was the same. There were many people that would ace all exams but literally forget stuff or not really understand it just few weeks after an exam.
- bruce511 2y agoFirstly, congratulations (seriously) on your efforts. Firstly for getting a degree in chemistry (not easy) and secondly for a rigorous approach to self-improvement. I would however suggest that you are not a prototype for self-taught programmers, much less self-taught programmers with no other degree (and thus no exposure to academic rigor.) Of course the OP might be as advanced as you are, but its fair to suggest they likely aren't. Personally I learned to program as a child, and then did a comp sci degree. And I got a lot of value from that which I've used through my career. Of course (these days) there are lots of resources online so the OP could learn everything he needs "self taught", but degree programs formalize this, and give you a degree at the end of it. (And formal degrees are still a valuable hiring filter.)
- throwaway2037 2y ago> I would however suggest that you are not a prototype for self-taught programmers Twenty-five years ago this was bog standard. Most people who were programmers did not come from a computer science background. They were self-taught. What is so different today that they cannot do the same? If anything, the biggest difference is the "gates are higher", but the work is barely different.
- tharkun__ 2y agobut OP will 100% learn a great deal from a BS/MS in Computer Science. You missed one of the biggest points. OP want's to do a mechanical / electrical engineering degree. So most if not all of what you're saying goes straight out the window. Actual EEs with a degree tend to go into software because they can make more money, not using much of their degree except in some specialist roles. That's not to say that they wouldn't learn the things you said they would learn in an actual CS degree. But it it's not what OP is talking about at all. I say that as someone that does have a Bachelor and Master degree in Comp. Sci.
- vunderba 2y agoSigh. It's also not what was I addressing AT ALL. The line of reasoning was: sircastor: You (OP) already have a career in software. I’m here to tell you: you probably won’t be learning much you don’t already know. Me: Yes they will. (Irrespective of whether they choose to study mechanical engineering, electrical engineering, or computer science.) Fin And FWIW, OP did mention CS as a possible field of study.
- throwaway2037 2y agoI hear this all the time on HN. I am nearly a neckbeard at this point as a programmer. I have never once used any linear algebra in my career. Discrete math: Only a tiny bit, and mostly to pass HackerRank/LeetCode questions for interviews. Looking back, the highest impact (to me) undergraduate comp-sci course was intro to algorithms. You really use those over and over again, even if you are just "using the library" (vector/map/etc.). It helps to know what and how they do it, even if you cannot write it from scratch yourself.
- jairuhme 2y agoWhile you haven't used linear algebra, someone working in MLE would probably find it useful to understand. Now I'm not saying you need to take a linear algebra class to understand matrix/vector operations, but it would be useful as it comes up.
- imtringued 2y agoWhen I did my degree I tried to do as many courses unrelated to the things you listed as possible. I signed up for as many mechanical and electrical engineering courses as possible, plus control theory, VLSI design, FPGA design, robotics and optimization.
- deleted 2y ago[deleted]