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

Computer skills I should learn

  1. Jun 13, 2010 #1

    I'm taking a break from college to learn some computer skills that will hopefully allow me to find work and return to school once I have some sort of job as a programmer and I'm more financially secure.

    I was wondering which are the best computer skills to aquire that are relevant to the field of science (particularly physics)?

    I have done an intro to CS course in Java, and that just about summarizes my technical skills. (I barely know how to make a graph in excel).

  2. jcsd
  3. Jun 13, 2010 #2
    C++ is very good to learn. It is a little challenging if you do not have a solid grasp of programming, so be patient.
    Additionally, Matlab and it's various components are useful - most applied math courses that I have been in and seen have used it.
  4. Jun 13, 2010 #3
    Would you consider Java to be useful for an aspiring physicist? More specifically, would it be "worth" taking a course with the following description:

    "An introduction to solving Computing Science problems by writing computer programs in a high-level programming language called Java. Students are introduced to objects and values, messages and methods, control structures, and simple containers. Discussion of elementary algorithms and software engineering techniques for constructing elegant and robust solutions to problems."

    OP, sorry for stealing your thread, but it is somewhat related and I believe an answer to my question would answer part of yours', as well :)
  5. Jun 13, 2010 #4
    Programming skills are useful in most areas of physics, and what language you aquire them in doesn't matter all that much. If you can program in one language, you should be able to pick up other languages pretty quickly.
  6. Jun 13, 2010 #5

    I have a little experience with C++ and a smatter of Matlab.

    Is there a way to really get familiar with Matlab without actually practicing advanced mathematics and modeling? (I have about a year and a half worth of physics courses).

    Also, I am totally lost when it comes to dealing with really basic things, like formatting a computer. Does it make sense to try and learn that stuff, or should I focus on high level programming and just call a technician when something goes wrong with the operating system?

    Also -

    Is it important to learn LaTex and Excell?
    What about HTML?

    It seems like those are the kind of really basic skills that are worth having around and that aren't too difficult to master.


    Can you learn good programming habits when you teach yourself from books?

    I've read in several places on the web that the disadvantage of being an autodidact programmer is "lack of order and good habits".

    Any recommendations for good programming books?
  7. Jun 13, 2010 #6
    I wouldn't worry about basic computer skills, as you put it, formatting a computer and things like that. If you try to learn all of those basic tasks, you will be wasting a lot of time.

    You will pick up LaTex and Excel as you use them, writing your papers, organizing data, etc. Some of my friends took first and second year comp. sci. courses to learn these things and said they were a complete waste of time.

    The best way to learn to program is by making applications and playing around with codes. When I started, I used a basic Pascal editor and just messed around with codes, learning the basic commands - when I got an error message I would go back and see what I did wrong and learned from that mistake. Eventually I started making simple programs, like the Tower of Hanoi game. I think this is how most people learn to program. If you would like to get better at programming, I would suggest downloading an editor and play around with codes. Loops, functions, variables, and all those things are common throughout all languages, and playing around with one language will allow you to learn how to combine these things to make a nice program. It's like a visual artist - there are lots of different styles of art but they stem from combining the different techniques and tricks that all good artists learn at the beginning. You need to learn how to mix paint, how the brush, and draw a human body before you can make a masterpiece. Once you have a good foundation in a language, the rest will seem like a piece of cake.

    To be honest, the best 'programming' books I've read were biographies and stories of popular computer figures like Turing or Gates. They got me to sit down and patiently play around with codes.
    Last edited: Jun 13, 2010
  8. Jun 13, 2010 #7


    User Avatar

    Staff: Mentor

    Learn how to do stuff at the Unix/Linux command line: file and directory manipulation, simple shell scripts, maybe some Perl, some system administration stuff. You might end up having to help manage one of those boxes, or at least use one without a GUI.
  9. Jun 13, 2010 #8
    The ability to debug very large complex codes.

    Let me just take you to the deep end of the pool and push you in......

    Start with http://astro-sim.org/ and http://www.astrosim.net/

    1) Find a code
    2) Get it to run.

    It will probably take you several weeks to do that, but you'll have some idea what type of programming is involved.
    Last edited by a moderator: Apr 25, 2017
  10. Jun 13, 2010 #9


    User Avatar

    LaTeX will come in very useful. One programming language is good, and then you can pick up whatever the people in the specific field you choose use (Python, C++, C, IDL, even Fortran). After you learn one, the rest are just syntax. Basic Unix/Linux commands will be necessary. I don't know anyone who actually uses Excel - they've made it pretty much useless for actual scientists these days. People I know do their data manipulation in IDL, OriginPlot, Python, R, GnuPlot, or SM.
  11. Jun 13, 2010 #10
    I am currently teaching myself c++ for the next semester: I have a pretty well recognized book - but as was mentioned earlier the way I really understand the concepts is actually messing around with the code. The internet is littered with a lot of c++ tutorials, examples, exercises etc. I have been trying to take advantage of that. At first I started out with almost immediately looking at the solutions to a code I was supposed to write, then the solutions became more of a guide. I would be working through my code and then glancing at that part in the solutions if I got stuck, or forgot something. Learning how to debug is very useful. There are also some compilers which make it easier on the beginning programmer (highlight the lines were there are errors in the code, and what those errors might be). Point is, I think you can do it! Just takes time, and patience. And do your research, there is always help if you look in the right places. Cheers!
  12. Jun 14, 2010 #11
    I know this will sound really stupid BUT

    What is Unix/Linux?

    Isn't it an operating system?

    (Just goes to show how new I am to the strange and wonderful world of computers)
  13. Jun 14, 2010 #12


    User Avatar

    Staff: Mentor

    Yes, it's an operating system. Actually there's a whole collection of related operating systems. There are various "flavors" of the original Unix, there's Linux which is a freely available open-source OS that mimics Unix, and there's Mac OS which is derived from Unix. There are probably other variations. When you put a graphical interface on top of them, they can look very different, but "under the hood" at the command line in a terminal window they are very similar in many ways, especially basic file and directory (folder) manipulation.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook