Learning Relevant Programming as a Psychology Student

This forum made possible through the generous support of SDN members, donors, and sponsors. Thank you.

Psipi140

Full Member
7+ Year Member
Joined
Jul 17, 2014
Messages
27
Reaction score
0
Hi,

A question that has been rattling around in my head for a while is how do so many psychology research positions expect the ability to program when programing is typically (and I'm talking from my experience) not included in a psychology curriculum?

If I had to guess, I would assume that people in psychology with programming experience either didn't start in psychology or learned it volunteering in a lab.

I've started to dabble with learning programming on my own (outside the context of a lab) but without context it seems less than useful to do because of an issue of "not knowing what I don't know". In this respect, does anyone have any advice on how to go about learning relevant programming outside the context of a lab setting?

Best,

Psipi140

Members don't see this ad.
 
I think a lot of that comes with what statistical package people use (e.g., Mplus, SPSS, R), but, in my experience, I went to an undergrad professor who I knew that did some programming, and asked if he would be willing to teach me anything. He was more than happy to do so.
 
Programming....what? Are you talking about statistical syntax or are you talking about more general computer programming? Programming cognitive tasks? What are you talking about here?

I taught myself Visual Basic for Applications--well I taught myself enough of it to use it successfully, not enough to get a job as a VBA programmer. If you want to teach yourself how to program, my suggestion is to give yourself a relevant project. Want to learn html? Make a website. Give yourself a project that could be translated into something you might want to do in a lab.
 
Members don't see this ad :)
As noted above - depends what type of "programming" you mean. There is a lot of it that is relevant to the field. I don't think your program is alone in not covering it, but I do think there are a fair number of people who learn it on their own throughout their life. I taught myself when I was a kid and most folks I know in this field who do this sort of thing did the same. I don't see it as a requirement very often for volunteer research assistants (where many will learn it) but paid ones may expect it. Particularly if you are going more into cognition or neuroscience, where complex programming is often more directly relevant. Certainly many jobs don't require it, but since neuroscience is an emphasis area right now a lot of funding is available for folks who work more in that area. Heck, I took a workshop a couple years back with an individual whose undergraduate work was in electrical engineering, so there is more overlap than many expect in the research world.

If there are particular languages you see popping up, you can try and tinker around online. There are a LOT of great "teach yourself" websites with guided projects, etc. for certain languages. I think more valuable though is just getting comfortable with computing more than a specific language. Like EmotRegulation, I started with VB (actually originally QBASIC if we want to get technical, which it makes me feel old even admitting I know). You could just as easily start with Python, Java, or anything else - once you learn one its very easy to switch so its more about getting comfortable with "figuring things out". I personally think it should be mandatory for everyone...my programming background was arguably more helpful than any of my graduate training in teaching me how to break down and solve problems...be it in the clinic or the lab.
 
If you mean statistical syntax such as is needed for R or SAS, you should check out coursera as well as some other websites that offer free courses. I've seen courses about how to program in R offered before.
 
You just have to pick it up on your own. E-Prime, DOS-batch, SPSS Syntax, AFNI, just stuff you need to be able to pick up to work in certain areas. I just see this as an aptitude level necessary to excel as a doctoral level researcher.
 
To address some of the earlier questions about the specific kind of programming I am talking about that's kind of what I mean by relevance. Having never had to learn programming within the context of the lab it's a bit difficult to know what languages/kinds of programming I am talking about. I really don't know.

Positions I am looking at often say that experience with language x, y, z is required/preferred but most don't say what kinds of experience. Are there certain programming tasks that are more common than others?

I appreciate everyone weighing in.

Psipi140
 
If you tell us more about the ads we can be more helpful but without any information beyond "programming" we really can't tell you anything either. Its not much better than saying ads are looking for someone who knows about "Psychology" and asking us to help figuring out what to learn.

Common programming tasks (nowhere near exhaustive). True computer scientists would argue most are "scripting" and not technically programming, but from psychology's perspective its all going to be considered more or less the same.
1) Stats syntax (not really programming in the traditional sense - SAS, SPSS, R, S-Plus, M-Plus)
2) Advanced data processing/analysis (e.g. signal processing for EEG/MEG, developing computational models; typically Matlab but not exclusively).
3) Large-scale database management (SQL or any of a bajillion others)
4) Developing computer tasks (E-Prime, SuperLab, PsychoPy, a bajillion others)
5) Web development/management (HTML, Javascript)
6) Developing applications for other miscellaneous research tasks (C++, Basic, Python, Java, etc.)

If you tell us the languages you are seeing, we'll likely be able to give you a better sense of what the tasks likely are. e.g. People probably aren't analyzing fMRI data in C++, but they might be developing applications. SAS is likely for data analysis/manipulation but not developing/administering cognitive tasks and so on.
 
One common programming task is data munging to prepare it for visualization and data analysis. For example, you may need to merge many data sets into one data set, recode variables, or convert the form of the data (e.g. from long to wide). Some researchers do this task manually, but the problem with this method is that it is error prone and inefficient. Programming is the best method to achieve this task.

Another common programming task is developing experimental tasks and stimuli (e.g. creating a flanker task that subjects perform during an fMRI scan).

Python is an example of a language that can handle both of these tasks (look at Pandas and PsychoPy). I personally prefer R for data munging, and some people really like E-Prime for stimulus delivery software.
 
Top