5 ms·
I think having separate Software Engineering and Computer Science tracks would probably help the situation. The SE track still covers some "good to knows", like
by bpyne 7y ago
I think having separate Software Engineering and Computer Science tracks would probably help the situation. The SE track still covers some "good to knows", like data structures and algorithms and hardware basics, but emphasizes the use of modern tools to build software. Preferably, it requires an end-of-year project each year with the projects gradually becoming more difficult.
Meanwhile, the CS track leads to grad school and a research career.
- scarface74 7y agoSo then you can go to grad school and statistically get a low paying job as an adjunct part time professor and have more debt....
- zanny 7y agoEven with the most theoretical CS degree you should still be qualified to get an entry level programming job. Maybe not at FAANG, but theres enough demand for programmers out there that having any related degree is often considered good enough for a highly underpaid junior position that can grow to normal salary after switching companies 2-3 times.
- scarface74 7y agoThe demand for entry level programmers is often overstated. Many companies don't want to hire developers who have no previous experience, that they have to train on their stack. A junior programmer is often a net negative to team. And you just kind of made the point, why hire a junior developer who you have to train and will leave right when they become useful? For just a little more money you can hire someone with 2-3 years of experience or at least someone who came from a boot camp who at least knows the stack you are using.
- chii 7y ago> you have to train and will leave right when they become useful? so pay them more as they become useful. They leave because now that their skills are up, the junior salary is no longer commensurate with their skill level. I bet if they were paid the same as if they jumped jobs, they would not leave.
- scarface74 7y agoI agree completely. I have no idea why companies don’t do that.
- bpyne 7y agoIf two tracks were available, I think you'd see a large reduction in the number of CS students. The ones who did go the CS route would be the ones who had no interest in commercial software development. The SE route would insure that graduating students have experience in modern tools and techniques.
- Kephael 7y agoSE is fluff, students need to learn the hard stuff and learn practical skills on their own. Students are hired based on theoretical knowledge and basic coding ability anyways, not practical skills. I sat in several classes learning about the development lifecycle and it was a waste of time and money. A class where students sat on LeetCode would be much more productive and lead to better jobs.
- scarface74 7y agoAnd this is what we call HN Silicon Valley thinking. The average corporate job doesn’t care about “the hard stuff” and “theoretical coding skills”. They are going to bypass the person who knows theory and hire someone with practical skills that can hit the ground running. Why waste money hiring you when they can hire a recent immigrant or a boot camp grad who did learn practical skills for the same amount of money - and no that’s not meant to be an insult. When I just need to hire someone to whip out a few pages in React + [c#/WebAPI || Node+Express || Python + Django], I don’t care about your leetCode abilities. I have never in my life said “Thank God we hired someone who can reverse a binary tree on the whiteboard”.
- Kephael 7y agoBootcamp grads aren't going to be able to answer my interview questions. If you can't invert a binary tree, you won't make it to the onsites, let alone pass an interview. I don't think the average CS grad can actually code and I don't want to hire them either.
- scarface74 7y ago
- MisterBastahrd 7y agoSoftware Engineering has nothing to do with "modern tools." Data structures and algorithms are absolutely essential to software engineering, which itself is just a buzzword for applying known and repeatable methodologies to writing software. Every single "software engineering" concept outside of maybe QA / testing is already a subset of a modern computer science curriculum. "Modern tools" is specious. Does it make sense for a student to use git or JUnit or Vagrant or Node to get their work done? Sure. Should a professor spend any time covering these things in class? Hell no. Any student who is unable to figure these things out on their own is going to be unemployable when they graduate anyway. A prof should give them directions to the documentation, and that's it.
- scarface74 7y agoThen what’s the use of the professor if all they do is tell people to RTFM?
- MisterBastahrd 7y agoShould a professor spend half his allotted class time teaching a student to learn a programming language and then another two weeks on git? Why? Is the student's time better spent getting spoonfed he can learn on his own, or getting education from an expert on things that are actually difficult to learn from a book?
- scarface74 7y agoIf you think that programming is “easy” for everyone to learn from a book, you’re so far out of touch I don’t know where to start. Yes most graduation students are going to be programming and not “inverting binary search trees”.
- asdffdsa 7y ago"Any student who is unable..." this is a sink or swim mentality that is just wrong imo and doesn't account for students' workload. Most everyone who started out had difficulty understanding software tools and the paradigm they operated in, and college students taking 4+ courses have 4x the material, not to mention the ramp up of 4x the tools to use, documentation to read, etc. If you're going to throw 40+ hours a week of course work, and then the responsibility of learning git, gdb, python, LaTex, fundamentals of the Linux terminal, etc without extra time or assistance, then most likely you're going to have a lot of pragmatic young people throw their hands up and say, "forget it, I'm gonna study business/physics/x engineering" instead