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.