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.
Computer vibence
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.
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.
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.
The problem is when people assume you can actually build an entire software/service architecture of any complexity just through vibe coding.
Welcome to CEO handling 101. It’s an art, a very soft skill, and not for the faint of heart. I worked for a mid sized (50 employee) company once where I’d “speak truth to power” in our weekly meeting, get shot down rather enthusiastically by the CEO during the meeting, then after I and the rest of R&D left his office, he’d go out to production and have them start implementing all the concepts of my pitch - as his own ideas, naturally.
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.
Once my business is in a more profitable place I’ll bring someone on to fix up the code
AKA: technical debt. I actually approve of this approach when you’re testing the market and don’t have any paying customers. Where it gets ugly is when customers start placing trust in your product, trust that might be costly if your code fails, and management doesn’t budget the resources to actually fix up the code. I was very glad to leave the place that was doing this…
The tools I’m using are for internal use and there is a backup in place. So, if something does go down, my contractors can pull the files up in one drive in a view only format.
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.
I have been building various things with AI coding tools for a month or so now. I rate the various engines on how far I can take them before they get hopelessly lost, unable to correct their own errors. For the best tools this seems to come after about 50 to 70 iterations of asking for small feature additions or error corrections, weaker tools (like Copilot) hit these infinite loops of fixing their errors with other errors much faster.
It’s a good limit, because after 2-3 hours of AI interactive development, I can then spend 4-6 hours going through the resulting code - cleaning it up and understanding how it works. I suspect if AI were taking me farther, like 100-150 iterations, it would probably take me more like 15-20 hours to unravel the various things it comes up with - kind of a point of diminishing returns.
Bottom line: think of your project in terms of microservices. AI is pretty good at microservices. As long as the individual services are each robust in their delivery of the required functions, you’re in good shape.
If it ever becomes “mystery meat,” it’s time to recode by hand.
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.
AI coding is actually a very powerful tool, almost like a light saber. Do you notice how many amputations and artificial limbs there are in that galaxy far far away?
That’s pretty funny.
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.
deleted by creator
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
to the point where non-programmers can solve their problems
I had a period of about 10 years where I bounced from company to company fixing non-programmers’ code so that it could actually be used in commercial products that brought in revenue.
I have been doing this stuff for over 40 years, the tools get faster and the ecosystems get more complex.
What would be really nice is a return to simplicity, using the fast tools to make simple stuff fast-squared, but nobody seems to want that.
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.
legit concern I hear is its environmental impact.
Commuting my fat ass to a climate controlled office, out to lunch, back home, parking spaces, highway lane miles, fuel, periodic vehicle replacements… that all has environmental impacts too, if I can do my job in half the time, that’s a big win for the environment.
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.
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.
Try Claude by Anthropic. I noticed Copilot and Google getting hung up much faster than Claude.
Also, I find that if you encourage a good architecture, like a formalized system of variables with Atomic / Mutexed access and getter/setter functions, that seems to give a project more legs than letting the AI work out fiddly access protection schemes one by one.
I just checked and it’s 278.
I got one up around 500 lines before it started falling apart when trying to add new features. That was a mix of Rust and HTML, total source file size was around 14kB, with what I might call a “normal amount” of comments in the code.
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…
deleted by creator
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
Funny. I dislike vibe coding because it takes away the “art”.
Implicit in these remarks is the notion that there is something undesirable about an area of human activity that is classified as an “art”; it has to be a Science before it has any real stature. On the other hand, I have been working for more than 12 years on a series of books called “The Art of Computer Programming.”
it can be both artless and scienceless
I dislike it because it encourages shit code
Since when are programmers the same thing as computer scientists?
Pfft. Computer Science ain’t about coding
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.
People who use AI frequently are the ones who don’t understand the fundamentals.
Code AI is to programming as a microwave is to cooking
deleted by creator
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.
i mean, when they were new that was absolutely what people paid for. microwaves were the new hotness, the height of luxury for a few years. there were microwave-only restaurants.
which i guess serves to further strengthen the metaphor.
Exactly how AI is a useful programming tool when used correctly by a professional.
No, it doesn’t, because the need for programmers has not changed one single iota.
Vibe Coders do not replace them at any level. They are not computer scientists, they are not engineers, they cannot even program any more than a regular person could (possibly much worse).
it’s all computer!
I’m a comp science web designer. Because of my dyslexia. I never could get hired as a real dev. Ai does a bit of the cleaning up I have trouble with and helps me speed up my development. I appreciate it for that. But you still need to know the code for the programs to work. There is still a need for humans. So far. But for how much longer?
But for how much longer?
How much longer will we need people who understand how things work?
How much longer until the bots are capable of knowing the code better than the developers.
Too hard to guess until we reach the stage where the bots know anything at all instead of just regurgitating text based on statistics.
Knowing it (well, appearing to, by regurgitating the average) better than many developers, pretty soon. A huge number of us know disturbingly little about how computers actually work. (Edit: Sorry, I’m being needlessly unkind to a bunch of us, since as Snoogums said, the current stuff doesn’t actually know anything at all, yet.)
Knowing it better than top developers is a science fiction fantasy singularity daydream.
And even Heinlein’s and Asimov’s post singularity fiction novels acknowledged that there would likely be roles for expert humans.
deleted by creator
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.










