1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Physics Interested in physics but *Hate* computers...

  1. May 20, 2016 #1
    Hi I'm in a physics lab right now (biophysics specifically) and I'm interested in the field of physics and biology. I've already been in this lab for five months now but I'm coming to the point where I have to work with a lot of computer programming (Matlab) and debugging.

    I've had absolutely no formal training in coding and I feel like I've been sent to war with some of the projects the lab has given me. I don't really have any desire to be a software engineer or software anything. Is there a way I can survive in physics without being software savvy?
  2. jcsd
  3. May 20, 2016 #2


    User Avatar
    Science Advisor
    Education Advisor

    Well there are certainly different people who have vastly different skill sets when it comes to coding, so it certainly is possible to get by on the minimal end of the curve. But if you plan on going far in physics, the better your computing skills are, the more of an advantage you will have.

    One thing to remember as a student is that skills like coding are not inherent. They come with practice, conscious efforts at improvement and constructive feedback. It's frustrating to be the one in the lab who takes a hour to solve a problem that the guy next to you can solve in two minutes. But, the way the guy next to you got that way was from taking so many hours to work on previous problems.
  4. May 20, 2016 #3
    I suppose I would like to get better at programming and increase my overall skill set it's just that the skill others in the lab have with programming intimidates me. I feel like I'm out of place with some of their requests but if they're patient enough with me then I'm fine with trying to catch up on software proficiency at my own pace...
  5. May 20, 2016 #4


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    Here's the advice I tell my students.

    In the past, it seemed as if one has to go through most of the major courses
    to get to the stage to really contribute to research in physics as an undergraduate [especially in theory projects].
    However, nowadays, programming and/or running software to analyze data or perform simulations
    is one way that students can contribute earlier. (It can also make you more marketable for summer REUs, summer jobs, or jobs after college.)

    In my own experience, it's usually the desire to solve a specific problem at hand
    that drove my abilities to program a computer. Taking courses in the computer science department weren't helpful to me.
    Getting some library books (or, nowadays, searching the web or watching youtube) and spending the time figuring out how to solve my problem was more useful.
  6. May 20, 2016 #5
    You won't get far in physics without an understanding of the mathematics behind theories.
    Computers are able to do the grinding part of calculating very quickly, which in principle should give you more time to explore ideas.
    Then again my toaster produces infuriatingly unexpected results sometimes.
  7. May 21, 2016 #6
    If you are at the point where you have to learn computer to progress, and you have been putting it off, chances are your advisor thinks it is important. You probably should bite the bullet and put in a conscientious effort to learn and tame the computer to do what you (and your supervisor) want. You might bail after 5 months, but what would be different in the next lab position. There is still a good chance you will need to do programming. The short answer to your last question is No, you need to be software saavy.

    At least you can console yourself to the observation, the skill you learn now (i.e. taming computers) will be in higher demand when you look for a job, than if you never learned to use this important tool.
  8. May 21, 2016 #7
    You can do more lab work. In a sense, you are either waiting for a centrifuge/PCR/gel or you are behind a computer.

    Organic chemistry also seems low in computer work, though I don't know how much that has changed/is changing with high-throughput methods, if your lab has the money to afford that.
  9. May 21, 2016 #8
    I have no problem with mathematics my enthusiasm for math is more than sufficient. It's the computer part I'm not as keen on. I don't have enthusiasm for debugging or coding or anything involving patience with computers. But I guess it's something I will just have to get over eventually.
  10. May 21, 2016 #9
    Sigh I suppose you're right even though I'm not particularly enthusiastic about it. I just hope my superiors are patient enough for me and my learning process. But then again I'm working for them for free anyway so they can just take it or leave it haha...
  11. May 21, 2016 #10


    User Avatar
    Science Advisor
    Gold Member

    Why not take a couple of classes in computer programming? An intro class followed by a class in C++ (Matlab has moved to an object-oriented structure) will give you the background to confidently write Matlab code. You can start in summer school.
  12. May 21, 2016 #11
    That is certainly an idea. I will consider my reservoirs of money and will power...
  13. May 21, 2016 #12
    Learning to use a computer and enjoy using them are two different things.

    That said, if you truly enjoy solving physics problems, you enjoy solving them with most powerful problem-solving tools available. And many times, that's a computer.
  14. May 21, 2016 #13


    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Learning about computers and programming in the educational institution setting that is the real difficulty. The quote that you said helps to explain that. Students may well find later that a computer program which only they can create will make some of their work better, if they just take the time to formulate, test it, and debug it. Learning how might not all happen during semester time, but reviewing and studying again can make him stronger in program-designing. Working on a programming project for your own goals and interest also helps this happen.
  15. May 22, 2016 #14
    I may have been too free in giving advice. I did not realize your were not being paid for the position. I think most of my suggestions and observations were valid. I do think your co-workers, and supervisor should exhibit the utmost patience and support in your learning, particularly because you are not being paid for the work.
  16. May 22, 2016 #15


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    While the "working for them for free so they can just..." statement was a joke,
    let me just add this.

    While I agree that the supervisor should exhibit patience,
    the reality of working with a student (free or paid, for credit or for a class) is that
    time and effort and sometimes resources are taken away from other things [other projects, other students, teaching, etc...].
    Hopefully, the time and effort is well spent and pays off for both student and supervisor.
  17. May 23, 2016 #16


    User Avatar
    Science Advisor

    Hey Delong.

    It might help for you to discuss the specifics of why programming and software development are difficult.

    The process of problem solving in programming is similar to that of mathematics and the derivative fields (like the sciences and engineering that use it) but there is a lot more specificity involved because not only does the process have to be specific - so does the structure of information.

    If you are able to do mathematics, physics, and other mathematically based problem solving but find coding difficult I'd imagine it has more to do with the specificity of the data structures and protocols on a computer than it does for your inherent inability to code.

    Also - mathematics and programming organize things in different ways requiring a kind of "translation" between them.

    I've had to become sort of fluent in both and if you have specific questions on what is difficult I can do my best to answer them.
  18. May 24, 2016 #17
    Well some of the problems I have with programming is that when an error message pops up on the screen most of the time I don't even know how to begin go about solving it or even what it means. Most of this is because a lot of the program was written by grad students before I came. But they expect me to be able to fix something if a bug happens. It just feels too overwhelming I don't even know how to begin to address all the problems and I'm afraid of asking for help because they usually just say "you should be able to do it yourself".

    Basically I suppose the problem partly comes from working with people and not so much with programming in and of itself.
    Last edited: May 24, 2016
  19. May 24, 2016 #18


    User Avatar
    Education Advisor

    The feeling of overwhelmingness is not unique to yourself. The ability to fix code that someone else wrote (even something you wrote a long time ago!) is a skill that is cultivated over years of banging your head against the wall. My general advice to people new to this process is to break the problem up into bite size pieces. Trace the code step by step, make a flowchart if possible, and then break it and see why it breaks. Is this tedious? Of course, but in order to fix bugs well you often have to understand the general flow of the program and understand the built in assumptions. From there you can start tracing possible error points and creating little test cases.

    Anyway, my general advice is just keep working at it. The longer you do it, the easier it becomes. You'll eventually find that after you encounter 1000 bugs, they start to repeat (for the most part :p).
  20. May 24, 2016 #19


    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Just reread this original posting.
    That description seems to mean that the necessary course prerequisites were kept secret, maybe unintentionally. Best thing now is, understand you will have more trouble in your current course/lab, but you need to start studying computer programming at the soonest opportunity. You need a beginning or introductory programming course. If possible, maybe also some course which instructs how to use mathematica, something you indicate you are presently using.
  21. May 24, 2016 #20
    Thanks everyone for your helpful responses :)!
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted