# Is knowing a programming language useful if not used as a job?

**URL:** <https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187>\
**Category:** Factual Questions\
**Created:** [March 7, 2018, 3:56pm UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187 "2018-03-07T15:56:55Z")\
**Posts on this page:** 10\
**Page:** 4

<div class="post-metadata">

**Author:** ![GottaBeMeh](https://avatars.discourse-cdn.com/v4/letter/g/57b2e6/32.png) [@GottaBeMeh](https://boards.straightdope.com/u/GottaBeMeh)\
**Post date:** [March 13, 2018, 3:12am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/61 "2018-03-13T03:12:40Z")

</div>

> [@Voyager](#):
>
> Scripting languages are just fine.  
> The point is not that you can’t write structured code in assembler - I have - but that a new programmer given only an unstructured language is not going to be able to figure out how to do it.  
> The whole point of our exercise was to force our students to use structured techniques when writing in assembler, because otherwise their code would be impossible to understand, buggier than it would be structured, and tough to help them debug which we had to do.  
> Back then we didn’t even have adb. We let them run in a kind of sandbox so that they didn’t crash the machine when they screwed up, and so we could give them register and memory dumps when their code crashed.  
> Bottom line - some high school student back then writing Basic with no support is not going to write good structured code, even though it is possible.

I get what you’re saying, but the onus of structure (v/s spaghetti) is 95% on the instructor and student and 5% on the language. You can write C code all in one method with nothing but GOTOs and it’ll look a lot like BASIC.

---

<div class="post-metadata">

**Author:** ![GottaBeMeh](https://avatars.discourse-cdn.com/v4/letter/g/57b2e6/32.png) [@GottaBeMeh](https://boards.straightdope.com/u/GottaBeMeh)\
**Post date:** [March 13, 2018, 3:33am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/62 "2018-03-13T03:33:15Z")

</div>

> [@Voyager](#):
>
> **GottaBeMeh** , do you have some data on the marketability of shell scripting?  
> The resumes I used to get, all of which were from people working primarily on UNIX/Linux, never mentioned it as a skill, which makes me think it wasn’t considered all that valuable. The ones I hired knew it reasonably well. Like I said it is a useful skill, but I’d hate for anyone to try to find a job with shell scripting as their major talent.  
> I used to work for Sun, and there wasn’t much even there. And what was there was terrible.

Bear in mind, all a shell script is ultimately doing is executing system calls. So to show proficiency in that realm, to me demonstrates a greater understanding of the underlying operating system. In the hundreds of technical interviews I have given over the years, I have _never_ asked someone to write a shell script. However if I turn a candidate loose on a bare 'Nix system, and ask them to solve a programming problem, the person that’s familiar enough to be able to write a shell script will most likely also have a better understanding how to do … well … anything really in that environment. And I do recall a candidate to whom I gave a parsing problem. He realized that he could either write about 30 lines of C code or 3 line script using grep and sed. So he opted for the latter with no guidance from me whatsoever. Yes, he got an offer. 🙂

But really what I see everyday at work is the guys that are willing to get their hands dirty with some degree scripting (and not just shell scripting for that matter) are generally far more effective at their jobs even if that job is not software development.

---

<div class="post-metadata">

**Author:** ![eschereal](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/eschereal/32/18939_2.png) [@eschereal](https://boards.straightdope.com/u/eschereal)\
**Post date:** [March 13, 2018, 4:41am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/63 "2018-03-13T04:41:12Z")

</div>

> [@GottaBeMeh](#):
>
> … GOTOs …

Man, do you need to be fucking vulgar? That is just disgusting.

---

<div class="post-metadata">

**Author:** ![Voyager](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/voyager/32/133_2.png) [@Voyager](https://boards.straightdope.com/u/Voyager)\
**Post date:** [March 13, 2018, 6:53am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/64 "2018-03-13T06:53:11Z")

</div>

> [@GottaBeMeh](#):
>
> I get what you’re saying, but the onus of structure (v/s spaghetti) is 95% on the instructor and student and 5% on the language. You can write C code all in one method with nothing but GOTOs and it’ll look a lot like BASIC.

You’re assuming there is an instructor. That was the problem - those kids were self taught. This was before decent languages were widely and freely available.

---

<div class="post-metadata">

**Author:** ![Voyager](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/voyager/32/133_2.png) [@Voyager](https://boards.straightdope.com/u/Voyager)\
**Post date:** [March 13, 2018, 6:54am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/65 "2018-03-13T06:54:15Z")

</div>

> [@eschereal](#):
>
> Man, do you need to be fucking vulgar? That is just disgusting.

In the Computing Surveys issue on structured programming from 1975 or so, Knuth, in his paper, cited a Professor Goto from Japan who wondered why everyone was trying to eliminate him.

---

<div class="post-metadata">

**Author:** ![MrDibble](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mrdibble/32/114_2.png) [@MrDibble](https://boards.straightdope.com/u/MrDibble)\
**Post date:** [March 13, 2018, 7:19am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/66 "2018-03-13T07:19:45Z")

</div>

> [@JakeRS](#):
>
> Since I am playing around with 3d modeling and game engines, I actually have a lot of logic related stuff, for example a hierarchy, a car 3d model object, a light object, physics, materials and shaders and combining stuff like that.

All of this is so much easier if you can program. You can script procedural generation, animation, filters - whatever. If all you use is the GUI D&D stuff, you’re stuck with what someone else has written.

I’m most familiar with Blender, which uses Python and can do some [fun things](http://paessel.com/blog/2014/08/24/converting-pixels-to-voxels-in-blender-with-pythong.html)., and POVRay, which has it’s own scripting language.

---

<div class="post-metadata">

**Author:** ![MrDibble](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mrdibble/32/114_2.png) [@MrDibble](https://boards.straightdope.com/u/MrDibble)\
**Post date:** [March 13, 2018, 7:27am UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/67 "2018-03-13T07:27:18Z")

</div>

> [@GottaBeMeh](#):
>
> But really the reason I suggested shell scripting is because the cost of entry is so low. Quite literally any bare-metal install of any Linux distro has everything baked into it that you would need. And when I talk about basics, I really do mean the fundamentals of programming such as variables, scope, calling conventions, methods … the first few CS 101 lessons … they’re all there in bash scripts. Then once you’ve mastered those, I’d say look into moving into Perl or Python.

Most any non-BSD Linux flavour will have Python installed out of the box. The rest will have the package.

---

<div class="post-metadata">

**Author:** ![filmore](https://avatars.discourse-cdn.com/v4/letter/f/7993a0/32.png) [@filmore](https://boards.straightdope.com/u/filmore)\
**Post date:** [March 13, 2018, 4:11pm UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/68 "2018-03-13T16:11:59Z")

</div>

I feel like we’ve deviated from the spirit of what the original question was. In thinking back on that, I would recommend javascript for a beginner to dabble in. While that may not be the right choice for someone going into programming, it can be a great language for someone who is just going to occasionally write a few simple programs. Javascript is embedded in just about every browser, which means the programs can run anywhere–computer, phone, tablet, etc. Also, it’s simple to have GUI components like buttons, fields, colors, etc. which are more complicated to do in other languages and environments. Javascript tutorials will likely have the student creating a GUI as one of the first tasks. So for someone who may only venture slightly into the world of programming, javascript is a great choice for the flexibility it offers in that case.

The limitations of javascript are that it’s not a good general-purpose language and it will be more problematic if the student is trying to operate on data on their own machine. Because javascript typically runs in the browser, there can be security issues if the programs try to access local files. While there are ways around that, it would probably be better to use a standalone language, like Python, if the student starts running into the limitations of javascript.

---

<div class="post-metadata">

**Author:** ![RaftPeople](https://avatars.discourse-cdn.com/v4/letter/r/6f9a4e/32.png) [@RaftPeople](https://boards.straightdope.com/u/RaftPeople)\
**Post date:** [March 13, 2018, 7:50pm UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/69 "2018-03-13T19:50:01Z")

</div>

> [@filmore](#):
>
> I feel like we’ve deviated from the spirit of what the original question was. In thinking back on that, I would recommend javascript for a beginner to dabble in.

I was about to post the same thing.

The nice thing is that you can go to [W3Schools.com](http://W3Schools.com) to both learn and modify the code (they give you little windows where you can modify and execute).

Probably a pretty good way to go because you can easily get some gratification from seeing it run.

---

<div class="post-metadata">

**Author:** ![Melbourne](https://avatars.discourse-cdn.com/v4/letter/m/b5e925/32.png) [@Melbourne](https://boards.straightdope.com/u/Melbourne)\
**Post date:** [March 14, 2018, 11:34pm UTC](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187/70 "2018-03-14T23:34:16Z")

</div>

> [@Stranger\_On\_A\_Train](#):
>
> For fuck’s sake, I’m don’t “flounder” in Excel, I’m not “a beginner”, and I used Excel back when it was an outside product developed for the Machintosh and then acquired by Microsoft l

Your own posts are the evidence I use against you. And emotion is leading you to double down on repeated errors. I’m trying to be gentle here Stranger, but you’ve had factual mistakes about Excel in each of your posts.

Look, we’ve got a lot to agree on: Matlab is the best-of-class Matrix Laboratory. Python has multi-platform support even better than Matlab, and Excel isn’t even in that race. I’ve already mentioned dataset size, dimension, and skills environment. Why don’t we leave it at that?

[Previous page](https://boards.straightdope.com/t/is-knowing-a-programming-language-useful-if-not-used-as-a-job/810187.md?page=3)
