26
top 49 comments
sorted by: hot top controversial new old
[-] magic_lobster_party@fedia.io 7 points 3 weeks ago

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.

[-] fubbernuckin@lemmy.dbzer0.com 1 points 3 weeks ago

I wish I could've gotten a software engineering degree

[-] theneverfox@pawb.social 0 points 3 weeks ago

Computer science is basically the study of software engineering, because computer engineering means hardware, which has grown into a separate discipline that computer science only touches on

Programming is writing code for the ticket, architecture is designing the system that gets written into tickets, and software development is the whole process

But all these disciplines grew faster than language, so really the titles are whatever you want them to be

[-] SorteKanin@feddit.dk 0 points 3 weeks ago

Computer science is basically the study of software engineering

That's not at all true if you ask me. Computer science is the study of data and computation, on a theoretical level. Software engineering is not theoretical at all, but very practical.

[-] theneverfox@pawb.social 0 points 3 weeks ago

Here’s the thing…all of computer science is based on the practical, and software engineering is based on the theoretical

The data and computation being studied? We made it up. We don’t need to do it any particular way, we’re playing with ideas to interface to computers. Computers we made up too

Software engineering is using the lessons we learned by studying how others did things and how it works out in practice

We teach students computer science to make them into software engineers. You can still study how things are done as a separate career, but the two ideas are like an ouroboros. It’s a cycle of creation and analysis

[-] SorteKanin@feddit.dk 0 points 3 weeks ago* (last edited 3 weeks ago)

all of computer science is based on the practical

I don't understand this at all. Computer science is based on theoretical foundations that were developed way before any actual computer existed. This goes back more than 100 years.

We teach students computer science to make them into software engineers.

That's only true if you studied a very practically-oriented education. Such educations are usually called "Software engineering" rather than "Computer Science".

As a computer science graduate myself, my university definitely did not try to make me into a software engineer. It was very theoretical, with a clear focus on further research if that was what you wanted to pursue. You could get through the education quite okay and only ever write very little actual code. It was the maths that was the harder part to write.

[-] magic_lobster_party@fedia.io 0 points 3 weeks ago

I studied computer science as well and I share this sentiment.

Although I’m happy about my degree because I’ve learned many things I would otherwise miss, I also wish my degree prepared me more for the industry. There’s a disconnect between academia and the industry.

What I’m mostly concerned with is how to build software that can grow with 10ish team members. I find it hard to find good academic sources on this matter.

[-] theneverfox@pawb.social 0 points 3 weeks ago

It's methodology. Basically what you need is the correct amount of process - you can pick agile or scrum or whatever, and then you follow it to the amount that it makes sense. If you over-adhere to it, it slows things down to a crawl

Once you get up to 10 team members, you need to do things like feature branches, code reviews, and rigid style. You should also add in tests... At 10 you don't have to have full coverage, but you need to be able to exercise your system enough to know when something breaks immediately

You also need ownership. You need one primary person who is the heart and soul of the code base, and they're going to be the one who knows the whole thing and gives everyone direction. You can spin off another team at solid interface points, like an API or a plug in system, but you need one person who owns the core system and holds the code debt back

You also can add in code pipelines, enforce docstrings to generate documentation, you need diagrams so people understand how things flow through the system, etc

Ultimately, a lot of it comes down to mentorship. You have to be very hands on teaching people how the code works, and really hold their hand until they gain proficiency over an area. Then let them be secondary owners over that part of the symptom... And you have to make sure to stick them in a place where they'll be a benefit - as you grow in numbers, it gets easier for each new person to be a drain on progress.

I'm not sure about academic sources...I dropped a lot of keywords in there that might help search, but ultimately it's about team culture. You can't just shove it all in at once, you have to slowly add new processes and make sure everyone is moving in the same direction

[-] magic_lobster_party@fedia.io 1 points 3 weeks ago

I know these concepts - after working in the industry for a while. Computer science education barely touched these topics. One professor was passionate enough to hint at test driven development, but that’s about it.

[-] theneverfox@pawb.social 1 points 3 weeks ago

I had a nice teacher who gave us IRL clients over the course of a full year, and basically guided us through the process while teaching us methodology theoretically as we went through the process

I don't think there's a better way, honestly the theory is important, but methodology is learned by doing. I really benefitted by learning from my brother... He taught me best practices as he went through school and the workforce. So I pay it forward

I think courses should focus more on teaching how to use libraries and debug tools... Past that, you get into skills that can't be taught, only learned

[-] possiblylinux127@lemmy.zip 4 points 3 weeks ago

People who use AI frequently are the ones who don't understand the fundamentals.

[-] LovableSidekick@lemmy.world 1 points 3 weeks ago

Taking the black hat off the AI and putting it where it belongs? That's crazy talk!

[-] neon_nova@lemmy.dbzer0.com 2 points 3 weeks ago

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.

[-] WolfLink@sh.itjust.works 2 points 3 weeks ago

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.

[-] MangoCats@feddit.it 2 points 3 weeks ago

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?

[-] magic_lobster_party@fedia.io 2 points 3 weeks ago

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.

[-] MangoCats@feddit.it 1 points 3 weeks ago

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.

[-] Asswardbackaddict@lemmy.world 1 points 3 weeks ago

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.

[-] jaupsinluggies@feddit.uk 0 points 3 weeks ago

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?

[-] MangoCats@feddit.it 1 points 3 weeks ago

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.

[-] TranquilTurbulence@lemmy.zip 0 points 3 weeks ago

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.

[-] MangoCats@feddit.it 2 points 3 weeks ago

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.

[-] HarryOru@lemmy.zip 0 points 3 weeks ago

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.

[-] MangoCats@feddit.it 1 points 3 weeks ago

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.

[-] neon_nova@lemmy.dbzer0.com 0 points 3 weeks ago

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.

[-] MangoCats@feddit.it 2 points 3 weeks ago

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...

[-] rumba@lemmy.zip 0 points 3 weeks ago

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.

[-] MangoCats@feddit.it 1 points 3 weeks ago

You need to be able to read it to understand that it’s going a little off the rails.

At least 2/3 of the time I spend with AI coding is getting it to compile without errors - that's more than a little off the rails, but it's also much more helpful when you finally do get to a working example that you can look at, instead of beating your own head against the Stack Exchange archives hoping for inspiration, let it try for you.

[-] neon_nova@lemmy.dbzer0.com 0 points 3 weeks ago

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.

[-] rumba@lemmy.zip 1 points 3 weeks ago

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.

[-] MangoCats@feddit.it 1 points 3 weeks ago

That's a great tip: having it review the security of code that an earlier context generated.

I plan on having it write unit tests, or at least try to...

[-] kibiz0r@midwest.social 2 points 3 weeks ago

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."

Knuth: Computer Programming as an Art

[-] match@pawb.social 1 points 3 weeks ago

it can be both artless and scienceless

[-] JackbyDev@programming.dev 2 points 3 weeks ago

Most programming already didn't use computer science.

[-] bhamlin@lemmy.world 1 points 3 weeks ago

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?

[-] MangoCats@feddit.it 2 points 3 weeks ago

Because: for $20 per month to the AI company, you can output poor code much much faster.

[-] dilroopgill@lemmy.world -1 points 3 weeks ago* (last edited 3 weeks ago)

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)

[-] DarkDarkHouse@lemmy.sdf.org 0 points 3 weeks ago

Computer science is much more than programming. Did you cover other topics like formal logic, finite state machines, computability, crytography, machine learning etc?

[-] dilroopgill@lemmy.world -1 points 3 weeks ago

Why are you arguing with me and the dude that said programming didnt use computer science when computer science encompasses programming...

[-] iamkindasomeone@feddit.org 1 points 3 weeks ago* (last edited 3 weeks ago)

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.

[-] cryptTurtle@piefed.social 1 points 3 weeks ago

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

[-] spongebue@lemmy.world 1 points 3 weeks ago

Computer vibence

[-] qevlarr@lemmy.world 1 points 3 weeks ago

Code AI is to programming as a microwave is to cooking

[-] BigBenis@lemmy.world 1 points 3 weeks ago

Meh, I actually know how to code without the help of AI and my knowledge in computer science is minimal. It's like the difference between being a construction worker and having an engineering degree.

[-] kbal@fedia.io 0 points 3 weeks ago

Why stop there? Ouija coding takes the "science" and the "computer" out of computer science.

[-] Grimy@lemmy.world -1 points 3 weeks ago
[-] EnsignWashout@startrek.website 1 points 3 weeks ago

"yes", "no", and "ship" is hilarious.

[-] Cocopanda@lemmy.world -1 points 3 weeks ago

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?

[-] AbouBenAdhem@lemmy.world -1 points 3 weeks ago* (last edited 3 weeks ago)

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.

this post was submitted on 24 Jul 2025
26 points (100.0% liked)

Showerthoughts

36656 readers
186 users here now

A "Showerthought" is a simple term used to describe the thoughts that pop into your head while you're doing everyday things like taking a shower, driving, or just daydreaming. The most popular seem to be lighthearted clever little truths, hidden in daily life.

Here are some examples to inspire your own showerthoughts:

Rules

  1. All posts must be showerthoughts
  2. The entire showerthought must be in the title
  3. No politics
    • If your topic is in a grey area, please phrase it to emphasize the fascinating aspects, not the dramatic aspects. You can do this by avoiding overly politicized terms such as "capitalism" and "communism". If you must make comparisons, you can say something is different without saying something is better/worse.
    • A good place for politics is c/politicaldiscussion
  4. Posts must be original/unique
  5. Adhere to Lemmy's Code of Conduct and the TOS

If you made it this far, showerthoughts is accepting new mods. This community is generally tame so its not a lot of work, but having a few more mods would help reports get addressed a little sooner.

Whats it like to be a mod? Reports just show up as messages in your Lemmy inbox, and if a different mod has already addressed the report, the message goes away and you never worry about it.

founded 2 years ago
MODERATORS