4 ms·
Even 20 years ago back when I was in college you had a sizable portion of kids who came in to study computer science thinking it would be fun and games. They we
by paxys 1y ago
Even 20 years ago back when I was in college you had a sizable portion of kids who came in to study computer science thinking it would be fun and games. They were then made to study formal logic in their first semester and debug segfaults in gdb in the next, and by the end of the first year pretty much all of them had switched majors.
Anecdotally I've heard that very few CS programs even use C++ anymore, and schools now favor Python because students find it more accessible.
- sofixa 1y agoWhile C++ is unquestionably still widely used, outside of legacy and some niches (like embedded) it's not in the top 3 "best" choices. Why teach a more complicated language with a poorer ecosystem and toolchain than is actually needed? I think there's still value in starting with C and C++, to see where it's coming from and see how much tooling and DX has improved, but I can't really blame courses jumping directly to the more useful things.
- msgodel 1y agoMaybe it's selection bias because I'm an above average C++ programmer but all three large tech companies I've worked at used C++ very heavily.
- giantg2 1y agoThe first real language I learned was C++ and I was decent at it (best in class but mostly stuck with console based programs, nothing advanced like GUIs that year). I have never used it at work. If you look at job boards, it's overwhelmingly stuff like Java, JS/TS frameworks, etc. Why teach it when it seems like less than 10% of postings are looking for it? Might as well teach other languages and just learn it if you need it.
- dagw 1y agoWhy teach it when it seems like less than 10% of postings are looking for it? And we're back to the discussion of what is the point of a University CS education. I would argue that learning something like C++ is important for the same reason something like Lisp or Haskell is important. Not because it will necessarily help you get a job, but because it introduces you to new concepts and a new way of thinking about programming and computation that will be useful no matter what language you end up programming in for a living.
- giantg2 1y agoI don't think there are any main concepts that I learned in C++ that weren't also covered in other courses, such as Java, assembly, and COBOL. If we're going to teach different types of languages then they should be truly different, such as the ones just mentioned.
- dagw 1y agoOf course you can teach most concepts in most languages, but when it comes to understanding concepts like stack vs heap, pointers to a value vs the value itself, move vs copy semantics, pass by reference vs pass by value, explicit vs implicit memory allocation and deallocation, and so on, I found C++ pretty useful.
- giantg2 1y agoSure, and those are pretty much all things you learn in assembly with the added benefit of understanding the structure (registers).
- sys_64738 1y agoUniversity isn't there to teach any languages. But it is there to provide the foundation and theory. If somebody wants practical C++ then go to a further education college.
- msgodel 1y agoFrameworks are the opposite of what universities should be teaching. I had this argument with another classmate when I was there who said they should be doing that. The point of a university is to give students the skills to communicate the ideas needed to use and develop frameworks effectively, not to teach you particular frameworks.
- paxys 1y agoEspecially considering that the hot framework you are studying will probably be out of fashion by the time you graduate. If I was paying American college tuition rates and sat in class studying Next.js I'd demand a refund.
- giantg2 1y agoThere seem to be relatively few C/C++ jobs, so they went with what the market wanted (Java). They still exposed you to other other types of languages such as assembly, JS, and even COBOL. I really don't think going with python except for an into/cross-major class is a good idea since it's so simple and there aren't that many jobs with it.
- Borealid 1y agoI recently heard someone say "I've never had a job that didn't involve at least some Python". I think that's true of almost all computer science jobs in the current market. Python is the primary language for scientific computing and the secondary language for a good number of other tasks.
- giantg2 1y agoYeah, but I'd work that in the same way it's actually used - as a secondary language in one of the data related classes, such as a database course where you learn SQL, then have the students do calculations on in python. Or do it in one of the course that is used for introduction or non-CS students minoring in CS (like business majors). The real thing is that if you learn other stuff like Java, Python is super easy to pick up and doesn't need to be formally taught.
- Moomoomoo309 1y agoI work at a fintech company doing Spring Boot, and the only python I've seen here is in some CI scripts (which I can see but do not have access to edit, we have a team that maintains CI). Everything else is Java, Kotlin, or JS for some websites, that's about it. I've heard the AI teams use python, but while pretty much all the devs in my team know python, we don't use it at all.
- giantg2 1y agoSimilar here. One exception is that we had some Lambdas written in Python. Now there is a push to replace them with Go because of the potential money savings from faster execution times.
- ghaff 1y agoThere's definitely this disconnect between programming and computer science. For better or worse, a lot of top schools don't even really teach programming in their computer science programs. It's something you just pick up on your own. But not sure that using Python as the specific tool is so bad--based on the MOOC that's what MIT uses in Intro to Algorithms. May be better than spending a lot of time on the vagaries of C++ which are certainly relevant to system programming (though that's probably slowly switching to Rust) if your focus is on algorithms and other design details.
- throw0101b 1y ago> […] a lot of top schools don't even really teach programming in their computer science programs. It's something you just pick up on your own. "Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do." * https://quoteinvestigator.com/2021/04/02/computer-science/ https://quoteinvestigator.com/2021/04/02/computer-science/ * https://en.wikiquote.org/wiki/Computer_science#Disputed https://en.wikiquote.org/wiki/Computer_science#Disputed Perhaps a trade school would be better if someone wants to focus on 'just' programming.
- ghaff 1y agoTotally. One consequence which I'm somewhat ambivalent about is that people with interest in engineering fields other than computer science may not be expected to have the degree of familiarity with the tools of the trade that budding computer scientists do. But, given the popularity of computer science as a major, it's probably inevitable to expect that freshmen at least in top schools have done at least some programming.
- dingnuts 1y agoBeing able to understand computer science and apply it is called software ENGINEERING for a reason, and it's a lot more complicated than 'just programming'. You sound like a physicist who thinks mechanical engineers are unnecessary because we have physicists and car mechanics.
- bilbo0s 1y agoI think that's what the professor meant when s/he said that schools are "dumbing down" curricula. The amount of Python being taught is a bit concerning even from the perspective of personal economics. If I was paying all that money every term in tuition, I'd want them to teach me the hard stuff. Not the language I can learn in a weekend while I'm shirtless on the couch watching GameDay. It's like no one ever stops for a moment and says, "Wait? Why am I paying this much money to learn a language that's so easy my English Lit friend knows it inside out already?" If I were at a school where they are teaching JavaScript or Python, you kind of already know that program is more "money grab" than "study of computing technologies".
- joshstrange 1y agoI don’t think I could disagree more strongly. College should not be about teaching a specific language. It should be teaching the programming skills needed to pick up any language. Python is just as good as C++ in this regard. In fact, if python is an easier on ramp and get people excited about programming and show shows them what’s possible before crushing their soul with C/C++ then I say go for it. In college, I regularly wrote my programs in PHP language I had taught myself prior to college and then converted them to see to submit my homework/test. While PHP was obviously much slower to run, it let me iterate and develop faster than my peers. In fact, I find it borderline fraudulent that so many colleges waste time on a language that most graduates will never use. Python knowledge is way more useful than C++ knowledge in my opinion, especially for a new grad. Then again, I have a very dim view on college CS programs as a whole. They aren’t just fighting the “last war”, they are fighting a war from decades ago. Almost everything that I used in my first job were things that I taught myself, not things that I learned in college. That was one big reason why I dropped out of college my junior year I wasn’t learning anything that was useful for my field. The professors were pedantic and cared about silly things like making sure I put a semicolon at the end of each of SQL queries that I wrote for an exam.
- nickd2001 1y agoI would argue that Python, being a simple, easy to learn language, allows you to focus on other aspects of CS e:g complex algorithms. Rather than faffing about with memory management etc you can really study algorithms without the language getting in the way. Of course, this depends upon the professors actually teaching this "hard stuff" :)
- mrkramer 1y agoI tried to study IT(lighter version of CS) without any prior programming experience and our first programming language was Java because apparently with Java you "Write once, run anywhere". But when I saw Java's syntax, I was like....this is not happening. That was the golden age of mobile apps and our focus was on the mobile development since Web was not sexy anymore. I'm actually happy that I quit because all I heard were horror stories of Java's mobile development on Android. My interest is actually Web development and if I had to choose all over again I would rather learn JavaScript. I can only imagine and speculate how hard it is for someone with no prior CS and programming experience to learn computer architecture, assembly, C and C++ for the first time.
- ghaff 1y agoI took the MIT MOOC CS Intro a few years back for a combination of refresher (though I wasn't actually a CS major) and just to kick the tires. Good Lord, that would have kicked my butt back when I was a freshman absent prior programming experience, admittedly when computer programming was much less a norm than it is today. I had a high school BASIC class but that was about it.
- amy_petrik 1y ago> But when I saw Java's syntax, I was like....this is not happening. No, you're good, this is the natural reaction of basically all programmers except for those strange beasts known as Java programmers who believe verbosity and needlessly complex yet organized in a twisted sense is nirvana, in the same way the accountant sees the tax return as nirvana. Many other language enthusiasts such as C, python, or LISP, will also get a bad taste for Java. Of course there are other gnarly languages such as APL or SAS.