6 ms·
You should invert the question: since EVERYONE forgets all of this CS stuff then perhaps teaching this CS stuff to us programmers is a complete waste of our tim
by oifjsidjf 4y ago
You should invert the question: since EVERYONE forgets all of this CS stuff then perhaps teaching this CS stuff to us programmers is a complete waste of our time in the 1st place?
So it's not YOU who is "wrong": it's the universities who have it backwards and are disconnected from the real world work that programmers do.
- deleted 4y ago[deleted]
- gardenhedge 4y agoI don't think it's a waste. Some people going into web development, some into compiler design, some into database optimisation, some into IT management, some into AI, some into 3d game development etc etc. CS is a broad subject. It's pretty much like studying general science in college.
- p0nce 4y agoThen why do we not study debugging, naming, maintenance, reading code etc... specifically?
- loydb 4y agoThere needs to be an entire class devoted to working with Product Managers without killing anyone...
- beltsazar 4y agoBecause in most universities it's a Computer Science degree, not a Software Engineering degree. I suppose in those universities that offer SE degree, they have more courses focusing on programming and managing software projects.
- fma 4y agoI had a class titled "Software Engineering" that prepared me very well for software dev life cycle, maintenance etc... It was a semester long project where the professor was the "business" person and everyone had shared roles (someone was QA for a sprint)...and we get lectures on code quality, testing, best practices. To my surprise it doesn't exist in every college. Even though I went to a state school, not all state schools in that state required it. I disliked the professor but am eternity grateful for the class...I would interview kids nowadays who want $100k but have no idea what Agile is. This was in mid 2000s.
- maccard 4y ago> I would interview kids nowadays who want $100k but have no idea what Agile is. I've worked for companies and managers who don't know what Agile is. Not knowing one specific thing, even if it's an important thing, isn't worth writing off a candidate. If you can't teach someone the basics of agile in an afternoon, you're doing agile wrong.
- fma 4y agoI wouldn't write them off, but certainly as you dig deeper you can see there's more than "one specific thing" and there's a disconnect between theoretical computer science vs practical programming. It would require more than an afternoon to be ready for the workplace and our company ended up having several weeks of bootcamps for all incoming college students...and still hear complaints that something is "too hard".
- jen20 4y ago> I would interview kids nowadays who want $100k but have no idea what Agile is. You’d be amazed at how many middle managers making 250+ think that agile equals scrum or that scrum is valuable in the context of software. I’ll take the person that has never heard of it, to be honest.
- fma 4y agoRight...because someone who went through 4 year of a computer science program and doesn't know anything about any software development life cycle (Agile was just one example) sure shows a lot of passion & initiative to explore outside of what's taught in school or outside their comfort zone. Exactly the type of person to hire.
- thematrixturtle 4y agoBecause those are all closely tied to the specific programming language, editor, complier etc that you use, which will change repeatedly over your career.
- bordercases 4y ago
- bordercases 4y ago
- dev_0 4y agoProfessors are not good software engineers
- rramadass 4y agohttps://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
- codegeek 4y agoIt depends on the college/university. I went to Stony Brook University (SUNY) in NY and we had an excellent CS program where we not only learned theory but did plenty of real world programming challenges including learning how to use version control (we used cvs circa 2002-2004) etc. We even had one specific class called Software Engineering where we designed a software from scratch and it was great learning. We did decent amount of HTML/CSS/JS as well. At the time, our server side language of choice was Java and Swing for GUI etc. We had assignments where we had to literally just design and not code (I kinda thought it was strange) but made us think more abstract. So yea, it depends where you did your CS degree from. Personally, I think it taught me a lot and got us ready for the real world at least as an entry level. Back then, there were no frameworks.
- amelius 4y agoNo, the universities are right. We need academia to advance our knowledge, this also includes teaching. The programmers should take one level or so below that level of education (which has different names depending on where you live).
- oifjsidjf 4y agoMost knowledge advencements come from real world, not academia. Academia has mostly devolved to intellectual dick measurement contenst by entrenched academics/professors who cannot be fired.
- f1shy 4y agoI think in every decent university you get to choose most of the courses, so you can fit it to your interests. Now it can be that somebody did the wrong choice, and now does not find a job where what he learned is useful. I think the university’s curriculum is not bad as it is. More specifically, you do not need to be a CS graduate to be a programmer.
- oifjsidjf 4y agoI have a CS bachelor + masters and the only actually real-world useful courses were on the masters levels (and only 3 courses out of many, the rest were time wasters), 99% of the other stuff before it was a total waste of my time.
- thfuran 4y agoThat sounds rather unlikely, unless you've somehow ended up in a job that could be done by someone who doesn't really know anything about anything, in which case I don't think your education was the issue.
- Jtsummers 4y agoWhich three courses, that might help the discussion. I can think of many more than 3 courses that helped me directly or indirectly later on: 1. CS 101 - I mean, duh? Intro to programming, basic algorithms and data structures. By the end you can at least write a simple program, and if you weren't a nerd like me (started programming at 8 because the computer was there) this would be essential. Which was the case for the majority of my classmates in college, most hadn't done any programming beyond maybe "hello world" before college. 2. CS 102 - Data structures focus, don't recall its name, may have just been "Data Structures". Choosing the right data structure for the job (though many of the particulars aren't necessarily relevant, but how to choose what, that part is critical for embedded systems). 3. Compilers - Parsing, mostly, not the translation part. This was an introductory course, 200-level. 4. CS theory - Main takeaway was choosing between regular and context free languages and understanding the limits of both. Again, parsing but not translation has been more common in my work. The proofs side has been less useful in my professional work, but informal proofs are still very useful. 5. Systems 101 - Baby operating systems, especially working "close to the metal" in embedded, even on a host OS. 6. Computer graphics - Less the graphics part, more the structure of programs to operate at high throughput on large data. 7. Calculus through Linear algebra - (required by the CS degree, 4 courses) highly applicable to some of my work. Especially the recent stuff, touching on orbital mechanics. 8. AI - In the "good old fashioned" sense, not the deep learning/machine learning sense. Turns out it's highly applicable to making expert systems. Probably because that's what it excelled at, and those can be applied to some interesting situations. I'll place this as "indirect" though, like graphics. 9. Computer architecture - Direct and indirect. On the indirect side, it really taught me to work with boolean algebra which turns out to be very useful for studying real programs and their logic (and simplifying them). On the direct side, ever done VHDL/Verilog? Good luck being successful at that without studying computer architecture (self-study or in school) 10. Another computer systems course - Had a big assembly emphasis. Means that I don't "fear" it like many of my colleagues. I can read disassembled code without much trouble, and write it with reference material (because I don't do it often, it's like Fortran to me - I can read it, but writing is slow since I'm unpracticed). 11. Parallel programming - Actually very applicable to some embedded work if you have multiple processors involved or a multi-tasking OS available. That's 14 courses right there that I've used in my career or am presently using. And that's not counting the math courses I took when I tacked on a math degree. At least I didn't waste 99% of my time. Maybe 10%? But, honestly, I cannot think of a technical course that has not, at some point, come up in my professional work. Even my abstract algebra class from the math degree saved us a lot of time and money a couple times when I proved a requirement was actually impossible. I can imagine some of my colleagues feeling the way you do, the lack of utility of their degrees. But they all jumped into management roles early on, their technical degrees are useful only for the lingo. EDIT: I finally thought of a time-waster class. It was our software engineering class. In theory, that should've been one of the more practical classes. Taking requirements, developing solutions, changing requirements, changing the system, etc. In practice, it was all theory. Useless. My AI class was actually a better software engineering class since it was team-project based.
- bsuvc 4y agoAn even better question is why do people go to college, expecting it to be a trade school? There is nothing wrong with CS curriculum. It's just not for everybody. This is like going to college for Physics and then complaining that they didn't teach you how to fly an airplane.
- ravenstine 4y agoThey expect it to be a trade school because it's so expensive that there needs to be some kind of payoff. Most people aren't the sort of elites that universities were once founded upon whom money was not much of a concern for. Like yeah, go to college and get enriched and all of that, but honestly, if one can be self enriched by taking courses a la carte online, then is it really worth to pay out the nose for a degree that has not much (and even dwindling) monetary return? For some, yeah, because of a level of prestige you get from having a degree. For other fields, not so much. No, people shouldn't take physics and then expect to become a pilot. On the other hand, computer science, which is not actually science but instead a fancy way of describing usage of computers, necessarily means applying algorithms and programming languages. If someone goes through an entire CS degree program but comes out with mostly knowledge that doesn't apply to real world usage of computers, well, what were they even taught in that case?
- scarface74 4y agoBecause strangely enough, most people don’t spend tens of thousands of dollars to be a better citizen of the world. Most people have an insatiable addiction to food and shelter and need to be able to trade labor for money to support that addiction.
- Asraelite 4y agoI think this is part of a more general problem with universities: they are designed to teach you academia, not practical industry knowledge. They don't teach you what you need to know because that was never their goal. (maybe this isn't true for every field, but in my experience it seems to be for most) Ideally a lot more people would be doing apprenticeships or vocational courses instead, not getting Bachelor's and Master's degrees. This isn't really viable now though because of the expectation society has for everyone to get a university degree.
- jonnycomputer 4y agoI agree, and it would also make it easier on teachers in university; its a royal pain dealing with students who aren't really interested, but are merely seeking a certificate of some kind so they can get a decent job. Most plumbers don't need to be theoretical experts in hydraulics and pneumatics; but there certainly is time when such expertise is called for.
- jrootabega 4y agoWell, we don't really "forget" the knowledge; the shallower and more explicit aspects of it just fade away. The roots are still in there, and still inform how we understand problems and act on them. I'm not saying that a costly college education is essential; just that this is not proof that it's worthless.
- thfuran 4y agoThe universities don't have it backwards, you do. Computer Science fundamentally isn't Software Engineering. If you have a degree in computer science and a job in (some particular subfield of) software engineering, it makes quite a lot of sense that the degree and the day to day aren't perfectly aligned. At any rate, not directly and frequently using all the theoretical underpinnings of networking/databases/etc hardly means learning them was useless.
- oifjsidjf 4y agoPeople go to universities to learn how to tackle real world programming problems. But then the universities teach them CS bullshit where 90% of it is unapplicable to the real world. Why would you go to such an university which is so disconnected from the real world?
- dilyevsky 4y agoI maybe in minority here but I regularly use CS, networking, OS internals statistics, discrete math (I could go own) knowledge I was taught in school and I work in infrastructure. Ofc if you let that knowledge falter and forget all this stuff you’re never gonna use it bc you won’t even know when it was useful
- SoftTalker 4y agoI have a CS degree, and the main thing I developed that stuck with me is the ability to pick up most any programming language and separate the syntax from the fundamental concepts such as objects, functions, loops and flow of control, lists, arrays, other data structures, etc. Pretty much every class in my degree program used a different programming language. You had to develop the ability to learn a language and be productive with it in a semester (~4 months) or at most an academic year. Sometimes you'd be learning two new languages along with the course material. The CS theory I use far less. I think if you are in a job that boils down to implementing CRUD functionality (even if dressed up a bit on the UX side) you don't really find yourself thinking about CS theory very often.
- cmiles74 4y agoIsn't it the employer's demand that everyone holding a position even somewhat related to software development have a CS degree the real mismatch? I think this is starting to change, for instance, front-end developers being hired from a boot camp or similar program (although this seems nearly the opposite extreme).
- Nimitz14 4y agoYour premise is incorrect.
- never_inline 4y ago> EVERYONE forgets all of this CS stuff Can you point out a thing in standard CS curriculums that doesn't doesn't come up in software once in a while, assuming you are not doing react and express js entire life?
- dunemaster 4y agoAh yes, you’ll forget almost everything learned at school, so just close down close right? Why stop smoking and getting drunk all the time when you die anyway?