Computer arts?
I’m a computer scientist and work in academia. Programming stuff usually takes like ~10% of my time, while the rest is theory and more like social sciences, i.e. studying human behaviour when working with machines etc. So even if I were to replace all my actual programming with vibe coding, I still would be a computer scientist because to me, coding is just a tool to achieve a bigger purpose. I think you are more referring to the job of a software dev, which can be someone that studied CS, but not necessarily.
Computer vibing
Most programming already didn’t use computer science.
Yeah, I never needed an AI to write poor, inefficient, and ineffective code. I’ve always had a tremendous personal capacity for that. Why should I give a company money to do something that I’m already good at?
lol, I feel you, but what I’m trying to say is you often don’t need to know concepts like P vs. NP for work other than an extreme baseline “is this gonna take forever if I throw more data at it?” I am not saying it’s not useful, just that for lots of work it’s not always super useful to know. Computer science as a field of study is much more mathy than a lot of fields of dev work. Then again, you’ve got other fields where it’s more important. Like I’m sure folks doing 3d graphics need to know a lot more trigonometry than I do as a backend engineer.
Surprisingly little trig, from my experience with opengl, direct3d, and vulkan. Much of the interfaces abstract that away. It helps you to understand what’s going on if you do know it, but you can go in without and be able to do fine. Most of what you interact with is angle calculations.
So you dont use programming languages? learning how to use them was like all of computer science’s actual classes? Lets just start with the first class, you dont use classes, vectors, arrays, forloops, while, if else, etc? cout?
I dont understand what that means, the degree itself literally covers the fundamnetals, ehats realprogramming? (I dropped and graduated with it years ago)
When I think about computer science as a field of science I think about things like algorithmic complexity. I believe things like what you mentioned should be taught in general education prior to university (or, like calculus, as an optional elective) and are only covered because you need to know those basics to cover the advanced things.
It’s really difficult to come up with other examples of this that aren’t contrived because computer programming is the only field I know of that’s like this. I might compare it to architects needing to know how to use tools, but I don’t think they actually cover that. Maybe a better example might be engineers needing to know how to use tools before designing machines. Either way, things like how to use tools aren’t covered in those classes and they’re either not taught or taught as shop classes (or maybe they are, I didn’t go into those fields). Things like for loops I view as learning how to make a computer operate. Like how someone who drives a car doesn’t need to know how to fix an engine but a mechanic does. But learning about computer science is more like learning about what car designers do than what mechanics do. A lot of programming work doesn’t need that low level of attention to detail.
Like I said before, it doesn’t hurt, but it’s not super critical. A classic example is something like learning how to make a linked list. This is an early example of an assignment that starts to get into the actual computer science stuff because you start to talk about the comparisons between different data structures, like linked lists versus array lists. So in university you may be thinking “damn I’m gonna be making list implementations all the time” but you quickly learn, no, you’re not. The standard library of your language already has one and it’s worlds better than anything you made. Plus, 99% of the time you’re gonna want an array list, at least in the types of work I do.
I hope that helps make it more clear what I’m trying to say. I’m not saying computer programming is easy or doesn’t require skills.
Computer science is much more than programming. Did you cover other topics like formal logic, finite state machines, computability, crytography, machine learning etc?
Sure they teach that, but its not the first thing you’re thought the first two main classes for into are programming?
Why are you arguing with me and the dude that said programming didnt use computer science when computer science encompasses programming…
It’s like the relationship between mathematics and accounting. Sure, almost everything accountants do involve math in some way, but it’s relatively simple math that is a tiny subset of what all of mathematics is about, and the actual study of math doesn’t really touch on the principles of accounting.
Computer science is a theoretical discipline that can be studied without computers. It’s about complexity theory and algorithms and data structures and the mathematical/logical foundations of computing. Actual practical programming work doesn’t really touch on that, although many people are aware of those concepts and might keep them in the back of their mind while coding.
Meh, I actually know how to code without the help of AI and my knowledge in computer science is minimal. A lot of people assume you need to be good at math and whatnot to be a software developer but in reality it’s like the difference between being a construction worker and having an engineering degree.
Edit: I’m a senior software engineer for a big tech company. Y’all down voting me are either over-inflating what software engineers do on a day-to-day or undervaluing what construction workers do.
People always talk about it in relation to programmers, but what about us non-programmers that have been able to code things only becuase of chatgpt?
I have some python, sysadmin, and computer security knowledge. I actually obtained the security+ cert a few years ago.
I do not work in tech anymore, and chatgpt has helped me so much, by basically coding stuff for me to do random work tasks that I was either unqualified to do or didn;t have the time to do.
I’m working on a physics project, and my simulator suits my purposes and produces reliable results. And I learned a teeny bit about coding building it.
It’s a neat tool, but be careful what you do with it. I wouldn’t make anything web-connected or otherwise requiring security considerations, for example.
I think LLM is fine for shorter scripts. As a professional programmer, it has helped me with writing simple throwaway scripts. Those circumstances are rare.
My stance is that if you think LLM help you get your job done, then use LLM. It’s just another tool to your arsenal.
I don’t trust using LLM for large long running software projects though.
It’s an interesting tool.
It can shave hours off of experienced programmers work if they use it in the right scenarios. You can use it in places where you need to do something that’s mundane but fiddly. It’s suboptimal for crapping out a large project, But it’s super effective at generating a single function or module to do a task. It might even come up with a better idea than you would use for some things. The key is if it does something that’s not quite right or not the best idea You need to be able to read it to understand that it’s going a little off the rails.
If you’re a spreadsheet junkie, It’s capable of writing really really complicated rules without getting lost in the minutia.
For non-developers that don’t know anything it’s a dicer proposition. After a couple thousand lines of code You might start running into interesting problems. When it starts having to go and do problem solving mode, and you’re just feeding it back The errors and asking it to fix the problem You can get bogged down pretty quickly.
For DevOps it’s the diggity bomb. Practically everything in that profession is either a one-off quick emergency script or a well thought out plan of templates.
Here are my five Amazon accounts give me a shell script that goes into every account in every availability zone, enumerate every security group and give me a tool to add remove or replace a given IP with a description and port based on the existence of other IPs descriptions or ports. Or write me an ansible script to install zabix monitoring playbooks with these templates.
This is what I’m talking about. So many people talk about it in white or black.
I was able to “code” a front end that my contractors can log into to view the files they are authorized to see.
It helped me write so many different things that all work together to solve my problem.
It may or may not be the most efficient code, but in terms of overall business operation, it’s extremely efficient.
Tip, when you’re done having it do your project, restart the chat, tell it that it’s a security engineer and ask it to check for any vulnerabilities or anything that should be done to protect the site against malicious activities. Ask it if there’s anything with your hosting or site that should be addressed.
Most of the training data out there is on how to get a task done and the best way to do the task, there’s a lot less training on completing a project with security in mind. There is however a lot of data on specifically how to secure already written code so it can do it, but it generally will not unless you ask it to.
Thanks! I’m going to do that Nita a great idea.
That’s perfectly fine though. And I say that as a professional dev. The problem is when people assume you can actually build an entire software/service architecture of any complexity just through vibe coding.
Currently LLMs are great for helping me pick out the curtains or even to help me assemble some furniture, but I would NEVER let them build the entire house, if that makes sense.
Sure, I get it. Once my business is in a more profitable place I’ll bring someone on to fix up the code, but for now it’s more than enough.
What’s the largest program, in line count (wc -l will be close enough, or open the file in Notepad++ and scroll to the end), that you’ve created this way?
If you count only 100% vibed code, it’s probably a 20 lines long script.
Usually, I tweak the code to fit my needs, so it’s not 100% vibes at that point. This way, I have built a bunch of scripts, each about 200 lines long, but that arbitrary limit is just my personal preference. I could put them all together into a single horribly unreadable file, which could be like 1000 lines per project. However, vast majority of them were modified by me, so that doesn’t count.
If you ask something longer than 20 lines, there’s a very high probability that it won’t work on the 15th round of corrections. Either GPT just can’t handle things that complicated, or maybe my needs are so obscure and bizarre that the training data just didn’t cover those cases.
Using a tool as a tool to solve a problem?! Blasphemy, hectic, you shall bring about the end times!
But to be serious ai is here, it exists, you can’t put things back in the box. Bitching about ai at this point is like bitching the sun is bright and hot.
People need to just get the fuck over it and move on. Focus on regulating and updating laws to the new status quo. Not just bitching like some child having a tantrum because people are using a fucking tool.
I’m not bitching about the existence of code agents in general, I’m bitching about the general attitude of “Code Agents will replace programmers” because no the fuck they are not.
They can produce one-off apps and scripts fairly well to the point where non-programmers can solve their problems (great!) but they lack the necessary sophistication and context to build long-lasting, maintainable and scalable applications, which is what you are hiring developers for in the first place
I’m with you on this. The only legit concern I hear is its environmental impact.
But things will become more efficient over time and it had led to increased interest in nuclear energy, so i think it’s a problem that will take care of itself.
Computer science has always been separate from software engineering.
In my mind:
- Computer science: Theoretical. Deals with algorithms, complexity and such.
- Software engineering: Practical. Deals with whatever PM has written in Jira tickets.
Both are important in their own right.
I wish I could’ve gotten a software engineering degree
I have a BEng in software engineering. It wasn’t thst different from a normal BSc in CS. Bits that stood out to me was industrial stuff around building and programming our own circuits, making our own (very simple) compiler, and some assembly modules, I had more maths stuff but that was for 3D graphics. My dissertation was a temperature control system for radiators.
I don’t really use any of it in my job, although I did do a ton more programming modules than most CS of the time, and those programming modules prove very useful.
Pfft. Computer Science ain’t about coding
Code AI is to programming as a microwave is to cooking
Microwaves are useful cooking tools and can be used to make many things.
Exactly how AI is a useful programming tool when used correctly by a professional.
correct, but if you’re paying someone to make you a dish you wouldn’t want them to just slap a frozen fish in the microwave and serve it to you. That’s what using AI to build enterprise applications for customers is like.
People who use AI frequently are the ones who don’t understand the fundamentals.
Taking the black hat off the AI and putting it where it belongs? That’s crazy talk!
Computer vibence
Why stop there? Ouija coding takes the “science” and the “computer” out of computer science.
“yes”, “no”, and “ship” is hilarious.
I kind of see the relationship between computer science and programming as parallel to the relationship between linguistics and speaking foreign languages. You don’t need to learn linguistics to speak another language—so AI translation isn’t taking the linguistics out of translating because it wasn’t a necessary element to begin with.
Since when are programmers the same thing as computer scientists?
I think it depends on who you ask. Some people who “vibe code” definitely use it as a crutch for a lack of understanding. But others (often more senior) tend to use it as just a really really complex auto-complete. Mostly it generates chunks and patterns but the ideas and how those pieces connect come from the dev
I feel like not knowing what you’re doing is a critical piece of the vibe coding definition tho. If a sr developer is using AI, understands the code generated, and can manipulate it in a secure, industry standard way, then that’s just a developer.
Fair enough. I put it in quotes because honestly I’ve seen all kinds of definitions thrown around. The conversation seems to often become a substitute for pro-LLM tools and anti-LLM tools. I think it’s more about how you use it and who controls it.
Vibe coding is shit, and will always be shit no matter who is doing it.
Edit: The mods decided my other comment was too controversial… “I’m an engineer to genius” apparently thats too controversial for this site 🙄
Totally disagree. Your position is way too overly simplistic and naive.
An engineer only builds a bridge as strong as it needs to be, and likewise I “vibe code” things based on how few fucks I need to give.
I’m experienced and can review the output for sanity and completion. I can test it, I can rewrite it, etc.
Stop looking at vibe coding as doing the whole thing, it’s more valuable as the glue between things, or to create scripts tools that make you more efficient.
And you can vibe code entire apps that basically just work these days. You probably don’t want to maintain those apps but thats a question of lifecycle planning.
It is so much faster to vibe code an API integration and a suite of tests than I can write. It’s faster to write a functional jq or bash script.
But it’s also much much much worse at doing data viz or writing pandas code because it’s trained on 10,000 shitty medium blogs.
You really have to know what you’re doing and what the model is doing, but it is not universally trash.
And if you don’t believe me, put $20 into the Claude API and install Claude Code and ask it to build something.
I’m experienced and can review the output for sanity and completion. I can test it, I can rewrite it, etc.
You aren’t vibe coding if you refactor and test properly…
why do you guys always just move the goalposts?
“X thing isn’t real AI, because real AI sucks and I might have to concede the positive attributes of X about AI generally… [OCR, chess bots, etc.]”
“Y thing isn’t real vibe coding, because real vibing coding sucks and I might have to concede the positive attributes of Y about vibe coding…”
like… you seem like you’ve just decided these things are “bad things” in your head and just shift your definitions the moment you meet reality and see anything that might evoke cognitive dissonance about it.
why do you guys always just move the goalposts?
“Vibe coding” has a pretty specific definition, which includes not understanding the code. So writing tests, or correcting the code both disqualify a piece of work from being technically “vibe coded”.
Usage by scientists to do pattern matching and by language models to replicate natural sounding language and a bunch of other AI is neat and useful but the AI is not literally intelligent as described by the people that are dumping LLMs into settings they are not actually useful for like regurgitating accurate facts.
When we criticize AI in situations like this it is because they are using a tape ruler to hammer in a nail and then taking away people’s hammers and replacing them with tape measures and then we find out they stole all the tape measures.
We are complaining about a combination of what it is and how it is used. We also want to make sure that a term that means something stupid is clearly used for that stupid thing and doesn’t lose meaning because they have some vaguely related usage. Using a hammer put pound in a nail and using the hammers claw to pull a nail out are two different things even if they both use a nail.
Where as you seem to think anyone criticizing shitty use of AI means all AI that exists instead of understanding context.
Removed by mod