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

Applications of programming in the real world

  1. Nov 11, 2006 #1
    I'm a physics undergrad who's had some experience with Java and Fortran and a little bit with C++. I've only taken one computer science course which taught me the basics of Java, so I've been somewhat shielded from other programmers and from programming as it's done in the "real world". I have two questions.

    First, what are the applications of programming in general, and what skills would be useful for these applications? How would you divide the bulk of programming today into general applications? It seems to me like there's numerical programming, and there's GUI/event-driven programming, and there's some other stuff I don't know about. My second question might clarify what I mean:

    Second, how do you think the demand for different areas of programming will change in the future? I'm guessing that the ability to solve differential equations will always be important, but knowing how to design an application from the ground up will become less important, though basic principles like information hiding will remain important. Any thoughts?
  2. jcsd
  3. Nov 12, 2006 #2


    User Avatar
    Science Advisor

    I'm not yet a professional, if I ever become one, but the field of programming is very deep. Differential equation solvers are more of a one-niche application. It's one small part of the field of algorithms, which is huge. In terms of types of applications, most anything you can think of is still being developed. Web programming, OS development, artificial intelligence, operations management tools, databases, game development, a huge number of other things. A large corporate project can have a hundred million lines of code--it's not all setting up a few text buttons and menus.
  4. Nov 12, 2006 #3
    Programming has become a very complex thing, it can be viewed as art, science, skill, craft, you name it.

    Programming has become soo popular because computers have the ability to be programmed to do almost any task that is possible with the computer input and output mechanisms.

    You can programm your computer to play you an mp3 file, make recordings or music via the provided hardware, you can make CAD programs, you can control the beam in a particle accelerator...lots of possibilities.

    Therefore the art of programming has become very complex but it all comes down to a sequence of zeros and ones that the computer processes. But writing a sequence of zeros and ones isn't very productive therefore the bulk of todays programming is done in a high level programming language that abstracts the sequence of zeros and ones in some meaniningful way. That abstraction can be done in a few ways, the most famous is the procedural way where you specifiy a finite number of arbitrary steps the computer should take to preferom a specific task, now having a file with a buch of steps isn't very clean therefore there is yet another level of abstraction that is Object Oriented programming which is bottom line just a method of organizing code that is you organize the procedures in some meaningful way. There are some more exotical abstractions but lets just leave it that.

    Applications of programming are diverse. General programming skills will always be at the heart of programming(procedural programming principles and OOP principles) and ofcorse a good understanding of the language one programmes in.

    In the future I expect that the demand for web-developers will raise, for things such as J2EE, JSF, PHP, HTML, JavaScript, AJAX,...

    but there will always be people who will write programs that solve mathematical problems, write drivers, etc.

    Programming field is diverse and it will remain soo for a long time.

    In the future I also expect the raise of TDD (Testing Driven Development) that is writing test is also important to ensure that the application does what it is supose to do.

    Knowing how to design an application is also very important in fact there are different methodologies developed that enable an efficient way of how to make a program - from specificiations to the finished product.

    I would say it is difficult to get the felling of real-world programming without any real-world programming experiences. If it is possible try to get a job as an entry level programmer at a small computer company for a summer job.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook