As a new PhD student, is a strong background in computer programming required in order to start research in computational aspects of chemical engineering? Or can one start from the scratch with just the preliminary knowledge and learn more programming on the way?
-
-
Answer:
If you can call yourself a modeler at the end of your PhD then you are an expert in properly setting up problems, are very adept at the methods used to solve them, and have enough programming knowledge to accomplish these two things. I would say that a strong background is not required but some background certainly is. The group I'm working in does purely computational work but we have a group code that is maintained by a permanent member of the research team so the need for me to write a large program for my thesis was pretty much eliminated. I do modify code on a daily basis and certainly write my own scripts to perform a lot of data analysis but my coding experience coming in was limited to MATLAB and working knowledge of FORTRAN and Python. I have had to learn C/C++ while in the group. These days, groups face a bit of a choice. They can either have each student produce his own code or use another. When a student writes their own then they are limited in the scope of the problems they can solve. If the group maintains a code, they can solve very complex problems but the students often don't learn the coding or the mathematics/algorithms quite as well. So it really depends on the group you want to go into. If you choose a more fundamental group, you'll probably be developing your own code, to solve more fundamental problems. Other groups will either maintain codes or employ/modify widely available codes requiring much less programming experience. That said, I believe that most chemical engineering professors will tell you that they will prefer strong science fundamentals over strong programming fundamentals. Programming for the most part can be learned and the type of programming being done in these situations is usually fairly basic whereas the science and mathematics being studied are really the heart of the PhD. Even the people I know who came from more fundamental groups were not adept programmers at first. Then again, lack of programming skills is probably why scientific codes tend to be poorly written and/or optimized and why computer scientists hate us.
Jeff H Peterson at Quora Visit the source
Other answers
Depending what others in your field are doing you should be acquainted with Fortran / C / Matlab / Maple / Mathematica. It doesn't hurt to know a bit about numerical methods (eg. from the Numerical Recipes book) and process optimization algorithms. But it really boils down to your field, the specifics should be given to you by your advisor or through classes that you'll attend. However I would advise you to learn some modern software development best practices, they'll be very useful in the long run. For example, learn to setup and use a Version Control system (git for example), extract and track "requirements" and changes in a system like Trello and use automatic tests (unit tests) to make sure important parts of your code behave as they should (compute the expected result, always terminate, are quick enough). Also, learnĀ to analyze critical parts of your algorithm for their time complexity (using O-notation). Oh, and learn an Object Oriented language like Java if you have time. You can have nice GUI to modify some parameter on the fly instead of messing with code all the time.
Ioannis Dermitzakis
Related Q & A:
- What company has a white open book against a red background for a logo?Best solution by Yahoo! Answers
- What is a good college for computer programming?Best solution by Yahoo! Answers
- How can I become a foreign exchange student to a Korean high school?Best solution by efexchangeyear.org
- How can one start a non-profit organization?Best solution by Yahoo! Answers
- Can I trade a new Xbox 360 for a new PS3?Best solution by gamestop.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.