Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

I don't get the purpose of programming

  1. May 11, 2015 #1

    pie

    User Avatar

    So I see all of this talk about how you everyone should know how to program, etc. However, I don't get the purpose of it. I have seen people saying that you know how to program so you can tell the computer what to do. But even then what is the benefit of that? Others said that with programming, one would be paid a lot. Again, why would one be paid so much for doing something I think it to be nonsensical? Others even said that one needs programming for software/video games engineering. So, would companies even hire computer programmers then or are they just the broad category (like saying someone is a doctor but which type of doctor)?

    Simply, what is programming and why is it so special that people actually learn it? I don't get it.
     
  2. jcsd
  3. May 11, 2015 #2
    By posting this message you've used applications that were built by programmers. Isn't that evident enough for the purpose of programming? This capability is not drawn from thin air.

    Simply, computers need programmers to build applications. Programming can be a highly technical and difficult profession at the highest levels.

    Programming is a broad category. Companies hire programmers with an expertise in a language that compliments some development or technology they use.

    Again, what you've used to post this message has required programmers to build devices and programs that gave you the ability to do so. This isn't magic.
     
  4. May 11, 2015 #3

    pie

    User Avatar

    @Greg Bernhardt Thanks for your response.

    So, is Physics Forums actually programmed with all of that complicated code?
     
  5. May 11, 2015 #4
    Yes absolutely. Everything from the design to the functionality has been programmed in explicitly.
     
  6. May 11, 2015 #5

    pie

    User Avatar

    @Greg Bernhardt Thanks.
     
  7. May 11, 2015 #6

    phinds

    User Avatar
    Gold Member
    2016 Award

    How do you suppose large banks, and insurance companies, and government programs like Social Security (to say nothing of pretty much ever other business in existence) manage all the information that is essential to their operation?

    How do you think scientists design things like the Large Hadron Collider?

    The list is just endless.
     
  8. May 11, 2015 #7

    rcgldr

    User Avatar
    Homework Helper

    Not everyone needs to know how to program, in the same manner that not everyone needs to know how to ride bicycle or do basic math, it can be helpful, but it isn't required. Programming is writing a set of instructions in a specific language so that a computer can follow those instructions to perform some type of operation. It's similar to writing instructions for how to mix ingredients and bake a cake, or how to assemble something you bought from a store, although a closer analogy would be a set of instructions to perform with a calculator to do something like solve a quadratic equation.
     
  9. May 11, 2015 #8

    symbolipoint

    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Without even reading ANY of the responses to this first, just be ready to change your mind within one year's time. You simply WILL become more aware and you will change your mind.

    Computers are just dumb machines UNTIL a set of instructions is organized into them.

    Imagine you have samples of chemical blends, each of them from a different blend from its own tank in a production yard. You need to run the same test on every sample, but each blend requires its own accurate quantity of sample to use to actually make the test measurement; and so you need to calculate how much sample to measure for each individual sample. For example, you have ten samples to check, and you need to know (calculate and then compute) how much of each sample to weigh for running the analysis test. Do you want to do the calculations and computing with pencil on paper, even WITH a hand-held calculator? OR would you rather enter the needed input data into a computer program and have the results of how much sample to weigh in 15 seconds or less?

    If you have some skill at computer programming, you can develop your own program to handle relevant data to find various values to use for your analysis test.
     
  10. May 11, 2015 #9

    ShayanJ

    User Avatar
    Gold Member

    You say that but the fact that it doesn't affect you means you still don't understand it.
    There are things like memory, processing units, etc. for computing and calculating, for finding answers to problems and also things like agility, strength, precision,etc. to do some works well. People don't have arbitrary high amount of these things but they can build machines that have. But the point is, these machines are extremely stupid! They have all these things to do anything you want well but they can do nothing without being told how. So you should tell them and if you tell them accurately, they will do what you want very well. Programmers are people who know how to say computers what to do.
     
  11. May 11, 2015 #10

    meBigGuy

    User Avatar
    Gold Member

    Everything a computer does is controlled by a computer program. The program uses/controls the hardware (that is the computer).

    Say a microprocessor chip had input and output pins and you want to make it turn on a light when you press a switch 2 times.

    You have to write a program that monitors an input pin connected to the switch, counting the number of times it is pressed, and then drive a signal to the light through an output pin to cause the light to go on after the 2nd press. That simple logic would be contained in a simple program.

    Writing generically (not in a specific language, and not good programming structure)

    Start:
    if (button pressed) {
    increment counter
    }
    if (counter greater than 1) {
    turn_on_light
    }
    while (button_pressed) { // wait for button to be released
    delay 10 milliseconds
    }
    delay 10 milliseconds //wait a bit before looking again
    goto start

    Again, that is an oversimplified example of a simple computer program.

    In the real world it would be written is a real computer language, deal with real computer IO, deal with real timers, deal with initial conditions, etc etc

    It would then be compiled into binary code and loaded into the computer to execute.
     
  12. May 12, 2015 #11

    jtbell

    User Avatar

    Staff: Mentor

    A better analogy might be that not everyone who drives a car needs to know how to build one.

    If all the software that you need/want has already been written; or if the software that currently exists, allows you to do everything that you need/want to do with a computing device; or if you can always find someone to write any software that you need/want, then you yourself don't have to learn how to program.
     
  13. May 16, 2015 #12
    In addition to the previous posts about the applications of programming, there is one unmentioned benefit of proficiency in programming. More than 99% of Americans have little to no programming skills. Adding advanced computer knowledge to a resume increases your value as an employee. With increased demands in technology to support businesses, companies are paying programmers ridiculous amounts for tasks that are fairly simple. Why? Because so little people even take a programming course. Computer science will eventually become a requirement for college graduation, but in the meantime you should take advantage of people's lack of knowledge on the subject.
     
  14. May 16, 2015 #13

    symbolipoint

    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Degree programs in sciences and engineering in the past, required (or was this not universal?) at least a beginning programming course. Has this changed? Some people might have taken just the minimum for their undergraduate program requirements, and maybe if only that, these graduates had forgotten their skills. Your "fairly simple" comment is interesting, and I am curious to know just HOW SIMPLE is that? One thing in general I know: If one has several repetitive computations and calculations with decisions to make, designing a fairly simple computer program is a way to manage those calculations and have them done QUICKLY.
     
  15. May 16, 2015 #14
    Really? You don't know that? let say this application we are using is not Programmed by a programmer, then what is it ?
     
  16. May 16, 2015 #15
    NOTE: I am speaking about business firms that are not IBM, Xerox, Google, Microsoft, etc. I'm talking about companies with a fai

    http://techland.time.com/2012/07/16/can-we-fix-computer-science-education-in-america/

    This TIME article basically says that is in decline, but the number "19% of high school students are involved with computer science" shouldn't be taken seriously. This includes learning how to make powerpoint and excel. The AP Computer Science exam has gained popularity in recent years though which gives me good hopes for a rise in programming proficiency. I know a lot of people in business as well as people who work as state IT workers and the same response is that:
    1. They are typically one of the highest paid employees in their office.
    2. They always get the highest starting salary.
    3. They have gotten computer programming degrees to fix people's emails and reboot the wifi when it goes down.
    (I am speaking salaries north of 100,000 a year which I view as a handsome pay)

    Obviously IT workers in big banks, highly secure government jobs, and technology firms are way beyond my capabilities and have very competitive positions.

    One thing that blows my mind is that people ACTUALLY put down on their resume "know how to use Microsoft Excel" as a skill who apply for jobs requiring a college degree. Our education system is way behind other countries, especially in computer science which I'm sure you can believe.

    Lastly, yes requirements have changed. In my undergraduate physics curriculum, I was initially not required to take a computer programming course (and this is a highly regarded school). Eventually they introduced Computational Physics, but this was just basic Matlab stuff and finished with using Matlab to solve PDEs. I think Computational Physics is on the rise because of the reliance on computers for physics research, but I still do not think it is fully developed. I took it as an elective.
     
  17. May 16, 2015 #16
    Magic!
     
  18. May 22, 2015 #17

    CWatters

    User Avatar
    Science Advisor
    Homework Helper

    Even if you don't want to be a programmer it is very useful to have some programming skills. Not because you want to write programs but because you might want to manipulate data.

    For example suppose you want to be a hospital manager. You might have to use a spread sheet program like Excel to work out budgets or plot graphs. It's not unusual to want to process data in some conditional way. Suppose you have a huge list of hospital equipment (10,000 items) with the date they were purchased and last used. You might want to extract a new list of those that are over 10 years old and have been used more than 3 times in the past year. It could takes years to go through the whole list by hand. However Excel has functions that can help you solve it very quickly. The skills needed to use these functions are very similar to those needed to write computer programs.
     
  19. May 22, 2015 #18

    WWGD

    User Avatar
    Science Advisor
    Gold Member

    1) Computers automate tasks that are tedious so that they free your time to do things that are more enjoyable, or beneficial to you in general
    2) Computers are much better at certain tasks than humans and viceversa. So it seems like a good idea to assign to computers tasks they are
    better at.
    How much time would you like to spend, e.g., computing 6324 x 9263 if you are doing an engineering application. Would you like to memorize hundreds/thousands of pieces of information, or write them all in a notebook? And what if you have data you would like to rearrange? And what if you want to correct some data, or update it?

    I have also found that programming ( I am a beginner, though) forces you to think more clearly and develops your analytical skills. I think there is research that supports that this is true in general.
     
    Last edited: May 22, 2015
  20. May 22, 2015 #19

    FactChecker

    User Avatar
    Science Advisor
    Gold Member

    As I sit here, I have a program running that calculates how an airplane will fly through the air. It calculates how the plane will move through the air in time steps of 1/100 second. Each step requires many thousands, probably a million arithmetic operations. Other people programmed that. I wrote a top level program that will keep running example cases of the airplane flyout and record the results. When it is done in about 3 hours, it will have done 420 complete flight simulations. Each simulation represents a couple of minutes of flight. If my friends could not program the airplane flight calculations or if I could not program the top level "script" that does the 420 runs, I could not do my work. As it is, I can take a coffee brake till it is done ;>).
     
    Last edited: May 22, 2015
  21. May 22, 2015 #20
    Programming is very useful in physics and astronomy research (Python is a popular language).

    "Only 50 years ago, most physics and astronomy research relied on the analytical skills of the scientist, on the tools of classical mathematics that were taught to them as students, and in some cases on data management and numerical analysis done by hand. Today, cutting edge research often requires high speed computing for simulation and data analysis, interactive tools to enhance extraction of relevant information from multi-parameter databases, access to automated and robotic instrumentation, and management of incomprehensibly large data sets. The issue for the researcher in training is not whether computing skills are needed, but which ones are most critical."

    http://prancer.physics.louisville.edu/astrowiki/index.php/Programming_for_Physics_and_Astronomy
    http://www.astropython.org/ [Broken]
     
    Last edited by a moderator: May 7, 2017
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook