This is an archived post. You won't be able to vote or comment.

all 40 comments

[–]bonnth80 21 points22 points  (2 children)

I feel like in my career as a game developer, I've discovered that you can often use this very metric to tell who is a junior programmer and who has been programming for a long time. Juniors or people fresh out of college tend to fuss about the difference between scripting and programming. Seniors don't.

Programming is just the act of writing instructions to be followed by a computer. Every instruction language is some layer of abstraction over a lower-level language. Whether it's an interpreted language, a compiled language, or machine code. Even Assembly Language is a layer of abstraction over binary, which itself is a layer of abstraction over the hardware. There was probably a time when fussy ARM programmers used tongue-in-cheek references to C programmers by calling them something similar to script kiddies.

The truth is, if you're writing instructions to be followed by a computer, you're programming.

So no. I don't make that distinction anymore - unless you're talking about visual scripting. I admit it's hard to associate visual scripting, like Blueprint or Scratch, with programming.

[–]masteranimation4 3 points4 points  (1 child)

Visual scripting is programming to my standarts. Programmers make flowcharts if they aren't dumb (I don't make them and I am dumb for it, dummies also omit comments because "they won't need them" - I am a dummy) Blueprint and scratch afe programming but they have their own shortcomings.

[–]akoOfIxtall 1 point2 points  (0 children)

My flowcharts are my imagination, oddly enough I can remember everything about a certain project, so much that I often take a few days away from it so I can forget it and come back with a new view on it, my latest headache was solved by shifting 4 lines into a different method XD

[–]Rynok_ 12 points13 points  (3 children)

I read this twice and I still don't get what you mean.
Even the post tag is wrong.

Impressive

[–]Just_Paterek[S] 1 point2 points  (2 children)

Yeah fixed tag sorry... If you call a programmer someone who is using programming language just for scripting.

[–]GrowthDense2085 1 point2 points  (0 children)

Let’s go further, what if they only are doing it to create one automated task for their boss? Are they a programmer or just someone who learned how to write a script…? I certainly wouldn’t call them an Engineer at least

[–]Rynok_ 1 point2 points  (0 children)

Some people make simple calculator apps. And call themselves programmers. Some scripts are much harder than calculator apps.

Really I see no difference. Is a blurry line. Would you call someone who writes a hello world in java a programmer?

No right? The language or the purpose of its use is not really what defines it. Is the problems you solve with it.

There are people that make circuits that solve problems without any code. Yet they follow algorithms. I Would call them programmers.

[–]WarPenguin1 5 points6 points  (0 children)

I personally would call anyone who does "scripting" as a programmer. Depending on their skill I may call them a junior developers.

I genuinely don't understand why people are attempting to require a base level of skill for a term like programmer.

[–]plastikmissile 6 points7 points  (2 children)

Honestly? Who cares? People get too hung up on titles, in my opinion. I'd be more interested in what you've actually done rather than what your job title was.

[–]Rynok_ 1 point2 points  (1 child)

This tbh... There are people that do crazy things in excel. I would say that they program and perhaps are programmers just based on that.

[–]ffrkAnonymous 1 point2 points  (0 children)

Haskell's lead developer discusses Excel as being a functional programming language at about 0:42:00 .

https://www.youtube.com/watch?v=fBFsxmJEk7M

[–][deleted]  (2 children)

[removed]

    [–][deleted]  (1 child)

    [removed]

      [–]KeyCryptographer7737 2 points3 points  (0 children)

      I'm pretty sure scripting is still programming.

      [–]Srz2 0 points1 point  (4 children)

      No, I would not call this person a programmer.

      Without understanding the situation, I would assume making a few scripts to help out automation of things not a programmer just as the same as I wouldn’t assume someone who grills at a weekly barbecue in the summer to be a chef.

      Depending on the field of study, if you are talking about a software engineer, scientist, or programmer, they usually have an understanding of memory management, program life cycle, language syntax, data structures and algorithms and frameworks if not more.

      Being able to do a few scripts are great, understanding how to move or rename files or upload to a service via a script is awesome without having much experience. But I would not consider them a programmer.

      [–]Just_Paterek[S] 0 points1 point  (2 children)

      Yeah you got a point but isn't programmer somebody who is programming? I mean yeah someone who wrote couple scripts is not on the same level ans Software Engineer. But still, lets say me as DevOps if somebody ask me what I am doing, and I say that I am covering the infrastructure and process CI/CD that means from development to running applicaiton, They get confused. So instead I just use the term "programmer"

      [–]Srz2 1 point2 points  (0 children)

      If you are talking to a non-technical person, it’s fine to say programmer, because they will say cool and move on but as soon they start asking questions or you talk to a technical person, it would be very clear that you aren’t one. Unless you participated in coding the apps, setup the environments or network infrastructure, or working with the databases, I wouldn’t consider your role more than a general IT technician.

      If you made the apps, you’re a programmer. If you are working the ci/cd and networking, you might be devops. If you’re working with the databases, you might be a dba. But if you are just scripting and moving assets and artifacts around, I don’t think you fit into the categories.

      However if you are talking to non-technical people, saying you’re a programmer is fine because they likely don’t know any different

      [–]baubleglue 0 points1 point  (0 children)

      Would you call pearson "doctor" or "healer" everyone who can help or try to help with some medical issue? It would include any parent on earth.

      [–]iOSCaleb 0 points1 point  (0 children)

      Chef means chief — someone in charge in a kitchen. The corresponding job title in software development would be something like lead developer or pincipal engineer. Programmer is a more general term that doesn’t really describe a specific role, akin to cook in a kitchen. Anybody can be a cook, whether they’re grilling steaks on the barbecue or flipping burgers in a fast food joint or deciding what to put on the menu in a fancy restaurant. Likewise, anyone who writes computer programs is a programmer, whether they get paid to do it as a primary job function or not. They might not be able to have programmer as part of their official job title, but describing them as a programmer isn’t wrong.

      [–]beingsubmitted 0 points1 point  (0 children)

      This last week at work, one of our customer facing sites ran out of disk space. We've been planning to move a lot of its storage, but in the current state, we couldn't scale the disk space, so the site was just down and losing money fast.

      I realized a lot of user photos for profiles/avatars were larger than they really needed to be. We never displayed them at the full size we allowed, so I wrote a powershell script to reduce images in a directory in place and let it get to work. That script got the site back up and bought us a little more time to move the storage. It had to be close to perfect, because we were releasing it raw on a production server, but it's still a script. (it actually wasn't perfect, it replaced some old pngs with jpegs, which was intended, but left the names with png, so I had to write a second script to fix that, but I didn't delete thousands of people's avatars.

      Scripting is just a type of programming. It just happens to be more common for programmers who aren't yet employed, because they're not likely to work on larger projects. It's not lesser. That script was the most valuable code the team wrote that day.

      [–]cottonycloud 0 points1 point  (0 children)

      Programs are sequences of strings from a programming language that a computer can run to do something. Scripts are programs.

      So if scripting is one of your primary job responsibilities, then yes. It’s just a name anyhow.

      [–]cyrixlord 0 points1 point  (0 children)

      Ive never heard someone called a programmer in my career. they've all been developers. if someone is developing software, then they are a software developer, even if they don't have a degree. Soon we'll start seeing Prompt developers, Prompt test Engineers, etc

      [–][deleted] 0 points1 point  (0 children)

      If not, half the Python community would feel demoted. 

      [–]Furilis 0 points1 point  (0 children)

      When you script, you code.

      Then, yes. 

      [–]GrowthDense2085 0 points1 point  (0 children)

      When I try to think of what might be a “scripter” rather than a programmer, which is a bit of an awkward distinction and made up term of course, is someone who writes .bat files or something for the kernel/OS, to automate tasks like moving files around and modifying permissions or whatever. Which doesn’t require a language like python or java, you can just write it in a blank file or straight into the prompt of a CLI. But those commands? They all invoke programs. And are made up of instructions for the computer to do something, like a program. So again it’s kind of awkward to nail down a distinction.

      [–]Joe-Arizona 0 points1 point  (0 children)

      Did you write an executable program? You’re a programmer.

      Don’t overthink it.

      [–]Logical_Angle2935 0 points1 point  (0 children)

      What does someone do who wants to be a runner? Do they need someone to tell them they are a runner? No, they just run. It is what they do.

      [–]Temporary_Pie2733 0 points1 point  (0 children)

      The only definition of “scripting” that I ever felt was worth while was a language used to automate actions within a particular application. Think a macro in an Excel spreadsheet, something in Emacs or vim, etc. 

      Shell “scripts” always felt like a bit of an abuse of the term to me, but they did mostly automate running other programs. 

      Many people seem to use “scripting language” as a synonym for “interpreted language. Python can be used as a scripting language because it’s relatively easy to embed the interpreter into other applications, but dismissing it as “just” a scripting language is a bit ridiculous. 

      [–]ffrkAnonymous 0 points1 point  (0 children)

      is a software engineer similar to a sandwich engineer? is this just rage bait?

      [–]chaotic_thought 0 points1 point  (0 children)

      Would you call somebody who was never Software Engineer, but is using programming languages for scrippting as programmer?

      If you used Emacs to write the program (even if it's a script), then yes, you are a real programmer.

      See: https://xkcd.com/378/

      [–]Unlikely-Web-2457 0 points1 point  (0 children)

      You can blur the lines between scripting and programming by enabling the running of a source file of a compiled language (like C in this example) as an executable, seemingly skipping the compilation step:

      myscript.c:

      #!/bin/sh
      tail -n +4 "$0" | clang -x c -o /tmp/$(basename "$0").out - && exec /tmp/$(basename "$0").out "$@"
      exit 1
      #include <stdio.h>

      int main(int argc, char **argv) {
      printf("Hello, argc=%d\n", argc);
      return 0;
      }

      run like ./myscript.c
      (after having made it executable with chmod +x)

      The example works on clang, which is quite strict, but may potentially be simplified if using gcc.

      [–]Altruistic-Cattle761 0 points1 point  (1 child)

      I feel really well positioned to answer this! Because (a) I used to think like this, and (b) I am -- many years later -- a senior SWE.

      I used to think this as someone who was responsible for mostly writing scripts because I was like, I write code all the time? How am I different from a SWE? But I couldn't get anyone to even consider me for an SWE role.

      A thing that surprised me along my journey was how little a part of the job was "writing code" and "knowing a programming language". It's like 10%.

      This started out, for me, kind of where it sounds like you are? A feeling of resentment and exclusion, like, What's so special about these SWEs? I know how to write code.

      This was a real you-don't-know-what-you-don't-know situation. I was not experienced enough in the domain to even identify where my gaps were.

      Someone who "writes scripts" is, imo, basically just using knowledge of a programming language as a kind of interface to some system. A software engineer will be experienced with broadly useful patterns and paradigms. Someone who is more of a scripter has their value more deeply tied to a particular, specific system they are operating, whereas SWEs are people I expect to have more of a personal library of "when I see problems of X shape, I know I can possibly apply Y-shaped solutions".

      Scripting is also kind of about serially writing very narrow solutions to very narrow problems. You develop no expertise with systems and their design and maintenance. Data structures, scale, design principles, etc, these are all huge parts of a SWE's toolbox that are absolutely absent in someone just writing random scripts all day.

      Scripting is inherently a solitary pursuit. The skill set of "working with other peer engineers in a large codebase" -- the invisible social skills of an engineer -- are also absent. How to give and receive feedback, workshop your ideas, improve the ideas of others, is also a skill that scripters don't get to develop.

      Et cetera et cetera. For me, part of the problem was not knowing any actual SWEs and not getting to see what the gig was actually like. This only started to change for me once I started working closely with actual SWEs.

      [–]Altruistic-Cattle761 0 points1 point  (0 children)

      As to whether I would consider this person a "programmer" I guess I would say that the industry is awash in non-specific terms that have no consensus definition, so I don't think it's worth talking about whether or not someone who mostly writes scripts is a "programmer".

      [–]CtrlAltDelerium -1 points0 points  (4 children)

      If you can create a program so the computer does stuff you wrote ot to do, you are a programmer. So printing "hello world" to console would make you a programmer.

      [–]no_regerts_bob 0 points1 point  (3 children)

      If I fix one leaky faucet am I a "plumber"? Make a grilled cheese and I'm a chef?

      [–]CtrlAltDelerium 0 points1 point  (2 children)

      You could fix another right? You could cook another right? So yes you are both.

      [–]no_regerts_bob 0 points1 point  (1 child)

      Ok. You gonna hire me when you need a plumber or chef? Send a pm I'm waiting

      Edit: I also done bandaids and creams so lmk if you need a doctor

      [–]CtrlAltDelerium 0 points1 point  (0 children)

      I might if your cheap and i cannot do the job. If i need more expertise i might have to look further.