Over the past 20 years, there has been an increasing role of and utility for programming in psychological science and neuroscience. There are multiple reasons why these skills have become increasingly desirable. Some reflect good practices in approaching and working with information and some are very practical. 

In our research practices, programming has highly useful applications in many areas. For some research methods, like functional brain functioning and behavioral testing, we need to apply the same procedure on each of the participants' data to create useful indices for statistical analyses. If there were only a small number of participants, applying these procedures individually could be manageable. However, for a large number of participants, this may be very time consuming.  

In addition to being time consuming, humans are, unfortunately, not the best at completing the same process repeatedly. With programming, we are able to have computers complete repetitive tasks over and over again, which they are able to do wonderfully! A related issue is what happens when humans make mistakes on some processes versus what happens when computers make mistakes on processes. When humans make a small number of mistakes, it can become very difficult to identify how frequently those mistakes have happened. And the process of identifying errors would also be error prone! When computers make mistakes, they will do so fully systematically. By extension, any fixing of those errors would be systematic. This is also a tremendous protection for the execution of science as implementing these procedures using code will permit the same processes to be repeated time and time again.  

In our undergraduate psychology curriculum, we do not have coursework in programming. However, there are tremendous free, publicly available resources to provide introductory through advanced programming needs in popular languages, including R and Python. For beginning in R, "R for Data Science" is an open-source book that walks through the production of graphical displays and data wrangling for statistical analysis and visualization. There are also internal packages in R that provide learning opportunities for many programming needs, such as "swirl." 

For both R and Python, additional training modules and courses are available through LinkedIn Learning (via TUPortal). These are free trainings that are for beginners through experts. The selection of specific modules would be based on the specific training needs.  

Although not part of the curriculum, working in labs will likely open doors for learning these skills on the job. In working in labs, you will have exposure to the software, as well as more experienced users, like graduate students and post-doctoral trainees. For further in-person training, the Coding Outreach Group also provides tutorials and support for learners of all levels to gain additional programming skills.