Znanstveni programer je posebej usposobljen strokovnjak za informacijsko tehnologijo. Posebno usposabljanje v znanosti ni potrebno, vendar bi bile kakršne koli izkušnje v tej panogi koristne. Obstajajo tri glavna področja dela za znanstveni programer: srečanje z znanstveniki in raziskovalci, da ugotovijo, kaj potrebujejo, programiranje vrste sistemov za izpolnitev te potrebe, prilagajanje spreminjajočim se zahtevam, ki jih zagotavljajo znanstveniki.
Da bi se kandidat kvalificiral za tovrstno delovno mesto, mora imeti kombinacijo akademskih izkaznic in izkušenj z znanstvenim programiranjem. V večini primerov morajo biti zahtevani programi napisani iz nič ali ustvarjeni z obsežnim prilagajanjem obstoječih orodij. Standardna zahteva je najmanj 10 let programskega inženiringa in upravljanja življenjskega cikla.
Razumevanje, kaj potrebujejo raziskovalci, je glavna vloga znanstvenega programerja. Izkušnje z delom v raziskovalnem okolju so lahko zelo koristne. Med veščinami, pridobljenimi na tem področju, so najpomembnejša zaupnost, ustvarjalnost in jasna komunikacija. Raziskovalci so zelo konkurenčni in pogosto varujejo svoje delo pred drugimi, medtem ko so v fazi razvoja.
Znanstveni programer je s svojim globokim razumevanjem vrste računalniških jezikov in operacijskih sistemov odgovoren za razvoj novih programov, ki ustrezajo potrebam uporabnikov. Ta vloga vključuje veliko količino komunikacije in interakcije s širokim krogom ljudi. Prvotne zahteve lahko zagotovi znanstvenik ali glavni raziskovalec, vendar bodo testiranje opravili študenti raziskovalci.
Izvajanje novega programa zahteva celoten cikel aktivnosti. Prvi korak je oblikovanje natančnih specifikacij, kot jih razume programer. Program nato razvijejo in preizkusijo študenti raziskovalci. Popravki, revizije in urejanja so v tem procesu normalni. Po sprejemu s strani študentov raziskovalcev se program posreduje raziskovalcu v pregled. Ko je bil testiran, ga lahko zdaj uporablja ekipa. Dokumentacija programa je pogosto potrebna in je lahko celo del raziskovalne naloge, če je objavljena.
Sčasoma se pogosto pojavljajo zahteve za spremembo obstoječih programov. Te spremembe običajno opravi izvirni programer, saj je najbolj seznanjen s podrobnostmi. Zato se znanstveni programer pogosto zanaša na obsežne opombe, da bi razumel, kaj je bilo storjeno in kaj je treba spremeniti, da bi izpolnili nove zahteve. Vsaka sprememba programiranja mora iti skozi isti postopek testiranja, da se zagotovi, da program izpolnjuje vse zahteve.