Learn something new every day
More Info... by email
A scientific programmer is a specially trained information technology professional. There is no requirement for specific training in science, but any experience in this industry would be helpful. There are three primary areas of work for a scientific programmer: meeting with scientists and researchers to determine what they need, programming a range of systems to meet that need, adjusting to changing requirements provided by the scientists.
In order to qualify for this type of position, the candidate must have a combination of academic credentials and experience with scientific programming. In most cases, the programs required must be either written from scratch or created by extensively customizing existing tools. A minimum of 10 years of software engineering and life cycle management is a standard requirement.
Understanding what the researchers require is the main role of the scientific programmer. Experience working in a research environment can be very helpful. Among the skills learned in this field, confidentiality, creativity, and clear communication are the most important. Researchers are highly competitive and often guard their work from others while in the development stage.
Using his or her deep understanding of a range of computer languages and operating systems, the scientific programmer is responsible for developing new programs to meet users' needs. This role involves a significant amount of communication and interaction with a wide range of people. The original requirements may be provided by the scientist or principle investigator, but the testing will be done by the research students.
Implementation of a new program requires an entire cycle of activity. The first step is to design the exact specifications, as understood by the programmer. The program is then developed and tested by the research students. Corrections, revisions, and edits are normal in this process. Upon acceptance by the research students, the program is provided to the researcher for review. Once tested, it can now be used by the team. Documentation of the program is often required, and may even form part of the research paper, if it is published.
Over time, there are often requests to change existing programs. These changes are typically completed by the original programmer, as he or she is most familiar with the details. As such, extensive notes are often relied on by the scientific programmer to understand what was done, and what needs to be changed to meet the new requirements. Every programming change must go through the same testing process, to ensure that the program meets all the requirements.
@hamje32 - The hardest part of programming, regardless of what language you use, is understanding what the user needs, as the article talks about.
Many times users only vaguely know what they need. Worse, they want you to develop something that looks and feels similar to an ancient application they had which used to run on DOS.
DOS and Windows are two different environments, with their own look and feel. DOS programs use menus while Windows programs are event-driven, meaning they are open to whatever the user chooses to do – like clicking a button, resizing a window or whatever.
Sometimes it takes several iterations before you finally wind up with a product that meets the user’s requirements, while staying true to the principles of good software design.
I haven’t done much scientific programming myself; most of my stuff has been commercial software for the masses.
However, I did have a friend who did some scientific programming for an aviation research facility. He did his programming all in FORTRAN, which seems kind of dated to me, but I guess it was appropriate as a scientific programming language.
He helped to design programs that were simulators for various aviation models and his work was eventually used in the final design of aircraft. I think that’s a cool kind of work to be in personally, rather than hum drum database development, which is what I do.