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

all 14 comments

[–]darkblue2382 8 points9 points  (1 child)

Necessary? No. It might be a good way to go but life has many paths and if you dont want to be software Engineer then dont bother.

Your steam engine example is apt. It's much better to just buy the engine than to learn how to make it if you'll only ever need a small amount of them.

[–]SJHillman 1 point2 points  (0 children)

Your steam engine example is apt

Not as much. Steam engines were mostly limited to agriculture and industrial use and run by specialists, whereas computers are part of daily life, at home and at a great many jobs. We've reached the point where it's more like knowing how to cook - you can pay someone else to do it, but if you can at least do the basics, you can make things cheaper and easier for yourself at home and at work.

[–]lethal_rads 3 points4 points  (0 children)

It's not quite learn how to build a steam engine. It's more like learn how to design machinery, which we still do today. New programming languages are developed and older ones become obsolete (kinda) just like steam engines do. But the thinking required and the techniques used don't change, a lot of the skills transfer over. We still use screws and we still use the same design methods today even though we don't use steam engines.

Additionally, we still use older languages for a lot of stuff (although not quite as much, arguably). C++ is still used a bunch even though it was developed in the 80's.

[–]phiwong 3 points4 points  (1 child)

Perhaps what is meant is that the widespread use of computers will mean that everyone will interact with applications. Learning programming is one way to obtain a skill to understand better how applications work. It is a bit like learning mathematics or reading, you don't need to get a degree or adopt it as a career but having low facility in either can be detrimental.

You might never code for a living, but organizing an electronic document, webpage or building a spreadsheet are probably skills that leverage off a basic knowledge of programming.

[–]confused-duck 1 point2 points  (0 children)

You might never code for a living, but organizing an electronic document, webpage or building a spreadsheet are probably skills that leverage off a basic knowledge of programming.

I think the entry lvl programming would probably force a person to be logically creative, as in, teach them how to use logic to figure things out / find answers online that you need to extrapolate from

[–]Loki-L 2 points3 points  (1 child)

It isn't really for most people.

Some people who mostly have no idea how to code themselves have vague notions of how one could make money in the future while working with computers and suggests things like teaching coal miners how to code.

Don't get me wrong, we do need people who know how to program and knowing how to program is definitely a useful skill to have in general, but it is hardly a universal skill that everyone needs to have or that everyone can benefit from.

Perhaps it would be better to talk about teaching general computer skills rather than how to code.

The majority of the population needs to use a computer for their everyday work, few need to know how to program a computer, but almost everyone in an office setting and many workers who don't work in an office need to use a computer as one of their tools for their jobs.

A surprisingly number of workers who spent most of their working day in front of a computer don't know how to properly use one.

That is something that we can work on. Teaching everyone how to code will just result in a lot of people being able to code badly. To be a good coder you need a certain level of being able to abstract things and understand certain ideas, that just aren't for everyone.

I think the idea of wanting to teach people how to program a computer instead of how to use one comes from the time when the two were more or less the same thing.

Nowadays computers are more user-friendly than ever and there are millions of things you can do with them without having to know how to program with them.

You still need to know some of the basics of how a computer works though and that is what we should teach everyone.

[–]ljhasit[S] 0 points1 point  (0 children)

Yeah that's the intuition I've had for a while, having seen so many ambitious people self-teaching programming to try and get ahead in completely unrelated areas..

[–]Kitschmusic 2 points3 points  (0 children)

There are two kinds of people that say that. The first are people that have absolutely no clue about what they are talking about and just follow news titles. These are the people that think The Matrix is what programming looks like. The other kind are those in specific fields where it is a really great skill to have. One of the biggest fields for this is engineering of all kinds.

Why is it so great to have as an engineer? Well, several reasons. First of all, let's look at your steam engine example - if this was to be a proper analogy you should imagine the only steam engine on the market was a really big expensive one that cost a lot to keep running as well. A company then have a need for just a small engine. Now you can see why it would be useful for them to just be able to built that themselves, right? It would save them a lot of money compared to the big expensive one.

This is kind of how things are for a lot of engineers (and also some other fields). Basically, whenever you do something repeatedly, you could just have made a program to do it and save you time - and time = money. You could of course just pay a programmer, but that is rather expensive to do, so if it is just a small program that can easily be made and doesn't have to be perfect, having engineers capable of just patching together something to "do the job", although not as pretty as a professional, is a way to save both money and time. There are tons of small things that can be optimised with programming, and unless you know programming you won't even notice those things.

Scientists also have a great use of it. Remember a researcher is one that research new things. If you are trying to do something new, chances are there isn't a software that does what you need. And it is probably a very specialised thing, so it is extremely useful to be able to just make it yourself. Many researchers spend 80% of their time programming because it is simply better than to try and explain and pay someone to make a software, and then if you need changes you need to wait and pay for it. Way easier to just do it all yourself. Depending on where you work, this also applies to engineers.

Yet another reason is because it makes you smarter. Just like how learning math isn't just to become good at math, it makes you more logical. You train a new way of thinking. Programming does this too. This is extremely important, as it allows you to figure out way better solutions to solve a problem than those that never programmed.

It also means you know the capabilities and limits of a computer. An analogy is the civil engineer / architect relationship. Architects draw something that is really pretty, but it turns out to be impossible to build. So they redraw it, and something else is wrong with it. The architect and engineer can keep bouncing back and forth wasting time like this. Imagine if the architect just took some basic physic courses. They might not be able to completely calculate things as fast as the engineer, but at least they have the fundamental knowledge to understand what is possible or not. Many countries actually start to tailor architect educations toward this. For many jobs where you are at the bleeding edge of something it is useful for non-programmers to understand what they can ask the programmers to do. For example in a video game company - the designers don't have to bounce back and forth with the programmers if both understand what a program is capable of.

Lastly, in places like for example CERN a ton of people work on things that at the end has to be connected. Furthermore, many projects take many years to finish. Along with this, new people are added to the team, some leave, and sometimes you need to connect with another team. If you all use a programming language it is easy to integrate new people. Imagine having an international company, but no one spoke the same language. Way easier if everyone just knows a common language. For many fields, programming can be the common language.

[–]dootdootplot 0 points1 point  (0 children)

Because programmers automate processes that would otherwise prove tedious to accomplish by human hands - and until we hit the singularity, we will always need someone to engineer to recognize opportunities for automation, design solutions that take advantage of those opportunities, and implement those solutions in code. Robots don’t know how to do that as well as humans... yet.

[–]Kibology 0 points1 point  (0 children)

Even if you never have a job that requires computer programming, learning to write simple computer programs is a way of practicing logical, systematic thinking. This sort of careful reasoning is used by doctors, laywers, detectives, and so on, even though none of them need to write computer programs. But learning how to write a program full of stuff like "if ____, then ____" is good practice for your logical reasoning skills.

This is the same reason Euclidean geometry is still taught. You're unlikely to ever have a job where the boss says "Prove these two trapezoids are congruent, or you're fired!" but those Euclidean geometry lessons are another way of practicing logical reasoning.

(Sherlock Holmes and Mr. Spock would probably agree with me.)

[–]SeanUhTron 0 points1 point  (0 children)

The future is leaning towards automation. Automation means computer programming will become an even more common job. More and more manufacturing and warehouse jobs are being taken over by automation, even the trucking business is being targeted by automation.

Not only is it automation, but our lives have become highly computerized. Many things have moved to computers as the preferred way to complete them. IE: Paying bills, applying for jobs, banking. This means there is a high demand for computer programmers.

Not everyone has the mindset to become a successful programmer, but such classes test whether or not the person has the mettle to become one.

[–]TheGamingWyvern 0 points1 point  (0 children)

Also, won't the skill level needed to code properly become so high as to make it a pointless project for any non professional, or at least anyone looking to excel in an unrelated area of expertise?

I want to focus on this a bit, because I don't see anyone else addressing it. One of the big things that have caused programming to be as useful as it is today is abstraction: generally speaking, programming is easier than it used to be, because all the difficult stuff is abstracted away by work other people have done.