Prof said doing CS to become a web developer is using a cannon to kill a fly
old.reddit.com
old.reddit.com
Designers also took over the front-end industry with the likes of things like ember.js and turned it into a fashion show with zealotry sprinkled in.
Trying to disagree with someone in the community that supports these frameworks ends in an endless flame war.
In that regard, you would never ask a Mechanical Engineer to change your oil or your spark plugs in the same way you would never ask a Mechanic to design a new high-performance engine from scratch.
Software development is much the same. Computer Scientists (frequently also called Software Engineers) Are concerned with the _mathematical accuracy and precision_ of the software, whereas Programmers are concerned with the _usability and functionality_ of the software. In that regard, they are broadly analogous to my metaphor.
As a web developer, you are a Programmer. Your job is to make functional and usable software that meets requirements. While you can also dive into the structural and philosophical rigour of the code itself, that is not your job. Software Engineers have already trod this path by creating frameworks and patterns and broadly-applicable software development guidelines for you to leverage.
Many places of higher education, however, do make the unfortunate and highly intentional step of muddying the waters and bringing pretty much everything computer-related under the umbrella of “CS”, when most of it is definitely _not_ “CS”. They do so for marketing and income purposes, and in doing so, do a disservice to the industry.
In reality web is just a platform I like to write software for. Not making my software less complex. Don't let yourself get confused with these phrases, just do what feels right
1. Chaos Theory was all the rage in the 80s. My dynamical systems prof said “you couldn’t go to a cocktail party without talking about it.” Clearly I’ve been going to the wrong cocktail parties. That’s also why you see it pop up in fictional works like Jurassic Park from that era.
2. Chaos gives rise to all sorts of chemistry relevant phenomena that can be modeled via statistical mechanics. The most obvious is thermodynamics but that’s because I’m not a chemist. I know people study chemical reactions from a stat mech perspective, and a lot of people doing stat mech are in the chemistry department. How you get the randomness in stat mech is by approximating a high-dimensional chaotic system with a low-dimensional one to render a problem tractable. In doing so, you lose the Markov property of the dynamics (your rates of change don’t just depend on the current state of the system but all previous states). Non-Markovian systems are very complicated, so the non-Markovian part of the dynamics gets replaced by random noise.
You can also get a 'CS' degree by taking a lot of math heavy theory course, or hardware and compiler courses, which would be much less useful when working as a web developer.
The advice I would give is that if you know you want to do web development and you want to get a CS degree, you're best served to keep your end goal in mind when choosing what courses (or even school) you decided to go for.
Not part of the CS curriculum. As electives, sure.
I know, for the UCs at least, you would need to do some solid Java or C++ classwork, along with algorithms/data structures and machine language, at minimum. Unless things have changed drastically in the past few years, there's no way you're getting a CS degree at one of those universities coasting exclusively on UX, project management, interactivity theory, etc; those are electives to broaden your knowledgebase or specialize.
Edit - for instance, this is UCLA's core courseload for a CS BS:
https://catalog.registrar.ucla.edu/major/2022/computerscienc...
All of the aforementioned are required, even for a project management focus.
As we know from Moore's Law, new tech will emerge and it would most likely be based on existing tech you should have learned from school.
You are going to be just as well-paid as a networking, hardware or general software engineer and it will look good on your CV.
Also this forum is littered with << after all these years in tech i feel like i know nothing >> career existential angst. So learning that stuff in school would avoid that issue.
Stay in school kids. ;)
doing CS = learning all the intricacies of how modern software works under the hood in college
and
web development = writing common patterns with a few modifications
then yes, the prof is right. Modern web dev is mostly passing json around while using common patterns in frameworks like React. My cousin with zero college education was able to get an 80k a year job doing web dev after spending a year doing free bootcamps online and working a few open source projects.
But the internet and the web is fantastically important. It deserves the full power of higher level languages written by people who care about code correctness, type safety, security, and all of the things expected in a non-web application. The prof clearly doesn't get that. Unfortunately he has a lot of company.
The professor is correct in that the majority of Web developers could get by without much theoretical/academic background (and anecdotally, do get by without using those skills/knowledge much)
Maybe there's an industry-wide Dunning-Kruger effect?