this post was submitted on 26 Feb 2024
137 points (97.2% liked)

Programming

17524 readers
356 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

As someone who spends time programming, I of course find myself in conversations with people who aren't as familiar with it. It doesn't happen all the time, but these discussions can lead to people coming up with some pretty wild misconceptions about what programming is and what programmers do.

  • I'm sure many of you have had similar experiences. So, I thought it would be interesting to ask.
you are viewing a single comment's thread
view the rest of the comments
[–] lemmyvore@feddit.nl 28 points 9 months ago (2 children)

At the same time, I find it amazing how many programmers never make the cognitive jump from the "playing with legos" mental model to "software is math".

They're both useful, but to never understand the latter is a bit worrying. It's not about using math, it's about thinking about code and data in terms of mapping arbitrary data domains. It's a much more powerful abstraction than the legos and enables you to do a lot more with it.

For anybody who finds themselves in this situation I recommend an absolute classic: Defmacro's "The nature of Lisp". You don't have to make it through the whole thing and you don't have to know Lisp, hopefully it will click before the end.

[–] amio@kbin.social 5 points 9 months ago (1 children)

the “playing with legos” mental model

??

[–] nottelling@lemmy.world 13 points 9 months ago (1 children)

Function/class/variables are bricks, you stack those bricks together and you are a programmer.

I just hired a team to work on a bunch of Power platform stuff, and this "low/no-code" SaaS platform paradigm has made the mentality almost literal.

[–] amio@kbin.social 10 points 9 months ago* (last edited 9 months ago) (1 children)

I think I misunderstood lemmyvore a bit, reading some criticism into the Lego metaphor that might not be there.

To me, "playing with bricks" is exactly how I want a lot of my coding to look. It means you can design and implement the bricks, connectors and overall architecture, and end up with something that makes sense. If running with the metaphor, that ain't bad, in a world full of random bullshit cobbled together with broken bricks, chewing gum and exposed electrical wire.

If the whole set is wonky, or people start eating the bricks instead, I suppose there's bigger worries.

(Definitely agree on "low code" being one of those worries, though - turns into "please, Jesus Christ, just let me write the actual code instead" remarkably often. I'm a BizTalk survivor and I'm not even sure that was the worst.

[–] Solemn@lemmy.dbzer0.com 1 points 9 months ago

My take was that they're talking more about a script kiddy mindset?

I love designing good software architecture, and like you said, my object diagrams should be simple and clear to implement, and work as long as they're implemented correctly.

But you still need knowledge of what's going on inside those objects to design the architecture in the first place. Each of those bricks is custom made by us to suit the needs of the current project, and the way they come together needs to make sense mathematically to avoid performance pitfalls.