this post was submitted on 07 Dec 2023
6 points (100.0% liked)

196

16551 readers
2097 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] FooBarrington@lemmy.world 0 points 11 months ago (1 children)

Ah, good!

I feel like there is a fundamental difference between developers with a data-centric perspective, and a function-centric perspective.

The function-centric one is about adding functionality, and it's what developers start out with. You have functions that do things, and if requirements change or the thing should be re-used - no problem, I can quickly add a new toggle parameter here or bolt it on over there. I'll be done in 5 minutes, no problem!

Then, over time, you learn that functionality isn't that interesting or difficult. Instead, the hard parts are the ones concerning the flow of data through your application. What do I know about the shape of my data in this part of my application? What can I be sure of regarding invariants over there? This forces you to build modular software without interdependencies, because - in the end - you just build a library that has small adapters to the outside world.

I like scripting languages a lot, but it's way too easy to become "good" at that style of programming, and the better you get at it, the harder it will be to actually move forward to a data-centric perspective. It's a local maximum that can trap people, sometimes for their whole career. That's why I try to look at typing experience when evaluating candidates for positions.

[โ€“] gandalf_der_12te@feddit.de 0 points 11 months ago

That's true.

It's also true in other fields. For example, take far-eastern fighting skills:

Young students will try to hit someone, to beat someone up, to hit a target, to become "stronger".

Experienced teachers, however, don't really care about hitting a target. It's all about the posture. How you stand. How you carry out your movements.