Let's start off strong. Web development is not computer science. They are not the same. Some might say that web development is an application of computer science and that is a bit more accurate but still not totally correct. There are just some major differences between the two that need to be discussed.
Computer science is more math and hardware based.
If you've taken a CS class before then you know how much math is actually involved. You have to make sure that the algorithm you're designing doesn't increase the Big O to some ridiculous number and to do that, at the bare minimum you need to know some algebra 2.
This is where most of the complex machine learning algorithms come from and believe me, they take way more math knowledge than just algebra. When's the last time you really had to do complex math in web development? It's extremely rare that a web developer will ever have to deal with Bayesian statistics.
Take this with a grain of salt because there is way more to computer science than just math. You have to create the architecture for your programs and that could be dependent on the hardware you're using.
Web development is more application-based.
There's no way you can be a web developer without putting your hands on an IDE and laying down some code. No amount of theory will ever build a website. Actually, you can't even learn web development without writing code. There are a few theoretical things that will help you as a developer, but they aren't always related to computer science.
A computer scientist might never touch a piece of code if their algorithms and architectures get passed on to a developer. Most computer scientists know how to write code, but there is a large chunk that aren't very good at it. As a web developer, writing and debugging code is just a regular part of your life.
Again, take this with a grain of salt. Web developers are focused on making applications that people use every day. All of the code you write is centered around how people will use your app and how to keep them from breaking it. Sometimes the way you have to do it won't be the most efficient, but you need it to work before a deadline.
Most of the time a computer scientist can become a web developer easier than the other way around because of the degree requirement although it does happen. Then there's the thing with web development being a subset of software engineering which goes into a completely different argument.
Just remember that web development is more specialized than computer science in general. The main thing you probably want to know is about the pay. Depending on experience level and specialization, yes, computer science does typically pay more.
The catch is that you still need a degree to be called a computer scientist. If you're looking for a job that pays really well and doesn’t technically require a degree, then web development might be what you're looking for.
Another thing to keep in mind is that one isn't necessarily better than the other. They both have their uses and they both have their challenges. At the end of the day though, we're all still tech people.
I know this can start some intense debates, so I want to hear what you think. Is the difference between computer science and web development closing or are they still worlds apart?
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding
Top comments (15)
Computer Science does not involve code, if you start coding, then it's programming and not computer science anymore. You can't compare the entire domain to a part of the domain.
Very well written post otherwise!
I've been saying for years that programming isn't a science. In fact, what we call "computer science" is a complete misnomer - it's an art.
Yet, I think I'll be expanding that explanation a bit more now, because you are absolutely correct. "Computer science" is actually a branch of mathematics involving the study of algorithms; it was founded by Ada Lovelace, and formalized as a discipline out of the math and physics department at MIT during the genesis of computing. Very few people actually study computer science.
In fact, I'd even go as far as to say that most undergraduate degrees in Computer Science [ASCS/AACS/BSCS/BACS] actually aren't computer science at all. They all touch on computer science, but they're mostly programming.
Agreed. Also don't forget about the roots in philosophy (logic) and linguistics (grammar) :-)
I was lucky enough that I studied CS at a time while it was not yet fully streamlined into a process of creating an army of specialized programmers ready to join the workforce. That was about to change though and it was noticeable at the time. Collaboration with and funding through big companies kind of diluted everything. For instance my university sacrificed a prestigious German degree for a watered down Bachelor's degree that was on the one hand internationally recognized and standardized. But on the other hand probably only worth a third of the original degree when measured against an average first year salary. Which is also of course in the best interest of big companies. Quicker education process, cheaper labor.
Personally I'm OK with gaining knowledge just for the sake of knowledge. It's often times decades (sometimes hundreds) of years later when humanity finds some practical application for crazy heady things that had no other purpose than being explored in someone's imagination at some point in time. Case in point Ada Lovelace you mention. She had no actual hardware to work with but the imagination for programming one. I think that's pretty awesome :-D
I have to admit I just read the article because I wondered how anyone could possibly think WebDev and CS are the same.
CS (or for me, coming from Germany "Informatik") comprises so many fields e.g. theoretical CS (graphs, formal languages) , technical CS (boolean algebra),... up to specialized fields like robotics, AI, computer networks and so on, that IMHO there's no way to put CS and WebDev (or Software Development) on the same level.
"Web Development !== Computer Science" or "Programming !== Computer Science" ?
There are both theoretical and practical disciplines within Computer Science. It depends on your definition. If you mean Computer Science is only theory, you would be right. If you mean that web development most of the time is not as complex, and therefore not Computer Science, as say AI then you are wrong.
I can create a neural network in 3 lines of code in Python, about the same as writing an event handler for a button click. I don't have to know all the internals of a neural network to use it. It all comes down to frameworks. So does that mean only frameworks are Computer Science worthy?
At the end of the day Javascript, Python, C, C++ etc. are all Turing complete languages. So it has nothing to do with the power of languages.
"When's the last time you really had to do complex math in web development?" When was the last time you had to do complex math in anything? Last I did complex math was in animation code, but the math would be the same no matter the language or platform.
Hmm I am actually not sure how to define the terms correctly. I think a better explaination is to depict the whole spectrum.
Web developments deals with business logic most of the time. You still need to concern performance but it is uncommon to worry about it. On the other hand, you focus more on delivering in a timely manner and keep your codebase maintainable over time.
Then as a backend web dev, when you progress, you will encounter issues with scaling your data store. Now you may understand a thing or two about db index, sharding, replica etc. Just enough to roll out your application. Maybe You have heard of raft concensus, blockchain, machine learning, all the fancy stuffs that you treat as blackbox and build your app on top of it. When shit happens, you struggle to figure out why because your blackbox is broken and you need some black magician to fix it.
One day you realize you have hit the limit. What sounds crazy before now looks remotely possible. You wonder if you can configure or even customize a piece of existing software. And you realize inside your db there are so much work with complex math and formal proof. Index is a tradeoff and you exactly know in which case it does not help and may even does more harm. You cannot just jump straight into code but have to read a whitepaper first to grasp the concept. Crazy shit like how to decompose a signal (say, image pixels) into discrete frequencies.
Finally you desire to make your own new database with some new design to fit a specific use case. Nobody has that idea before nor such problem is so new that people havent studied it yet.
Where do you draw a line to separate a web programmer, an engineer and a computer scientist? You can probably tell now. The last phase is what we call of research nature and is academically most demanding, the work has to be original and fundamental. Yet the one who earn the best salary are those who practice what in the 2nd last phase. They apply the latest research work to solve the most complex business problems.
As a Computer Science graduate who worked in ecommerce Web Development this is absolutely true.
I was feeling lost for a while because I was expecting programming course like web dev in my CS degree. When I earned it I felt like I didn't deserve it because I didn't know any frameworks, most recent web dev trends, advanced SQL statements and what not. I wish I had read this post back then.
Yeah well... kill me plis.
I'm a Web Dev studying CS, and I'm kinda... not disappointed or bored... but you know, this may not be it.
Yeah, lots of Math and Logics and yes, it's the study of algorithms but hey, you can apply many things to Web Development, like software architecture, and logical thinking, all the basics of programming help you to understand better what are you coding, and how does it works.
But, let's face it, a Web Dev can skip this. It's not needed knowledge to get the UI Designer job, does it helps? Yeah, sure. But in my case, I'm feeling that it's just not worthy, too much effort to get something... that I actually not looking for.
I wanted to use CS as a catapult to land my first job, with good revenue, and well, make a living. And I'm feeling that it's just too much, too much time on it...
Regards.
THANK YOU. I get rather bothered by the way people use "web development", computer science" and "software development" interchangeably. They are all related (to one degree or another), but each have unique meanings, and confusing them can lead to real-world problems.
The company that I work for, Tallyfy.com, just hired an intern who is a CS major from the top university in the area. He wants to get into web software product management but did not even know about HTTP or JSON. These did not take terribly long for him to understand due to his education and the beauty of YouTube, but I was surprised that none of his classes taught him what we would consider basics despite being in his last year of school.
I do not have a computer related degree and am largely self-taught, so this makes me wonder about a few things:
Is this typically the experience of CS grads? And if so, what have other CS grads done to bridge the gap?
What have other web tech companies done to help new CS grads get up to speed quickly?
I study Computer Engineering and even though it's technically not CS, I understand what you're saying about your CS intern.
This is what actually scares me when I'll get my degree, because even though I know how to program in C/C++, JS, PHP and Java, we didn't really applied any of that stuff to real-world problems.
I had a small 60-hours course for web development that focused more on the good and bad practices of the craft (we used PHP 5.7, JS 1.6 and DOM handling.. like, "innerHtml" was a no-no). Funny enough, with that course you wouldn't know what a web API is or even how the internet works. The scope was to build a small website with basic client/server interactions using vanilla old-school languages.
Most of the stuff I know I learned it here or trying stuff by myself.
I have friends that are taking a degree in "pure" CS and they don't have a single course on web development, but instead focus on algorithms efficiency, hardcore C and Java programming, architectures and programming languages theory using CAML and other weird stuff that even I don't really understand (the main difference with my degree is that we have more hardware-based knowledge, digital electronics and stuff like that).
Hope this answered your question.
50% agreed with you. But, does a web developer knows about pointer? algorithms? how an array reference can change its original value? later they found horror! and after that they would think "oww! this happen if I do like this" they don't know why this actually happen! And, where they would find the curriculum to study all about them? Forget about UI/UX, what about back-end? server? process? thread? OS? OSI model? etc....? moreover, databases? 99.9% tutorials/text tutorials/articles don't cover them, they just show how to up and running a server! not even explaining the code! So, to inspire non CS people you wrote well. Furthermore, "Web dev" is a part of Software Engineering major of CS degree, among Data Science, Hardware, Networking etc. you have to choose in the last year (Most of the modern universities).
A well written post and was happy to see someone take this up.
Once again, well written.
Thanks a lot for the post ! My brain always mixed up programming and computer science