So I took courses such as Data Structures and Software Engineering. I also took some higher level courses such as Computational Linguistics. To be able to implement your theory is important. Psychologists in general are loose in using that term. Although algorithms can be more or less independent from the implementation level, to understand an algorithm well, one must implement and run it.
Experimentation is the way most psychologists are using, of course.
Results from experimentation provide constraints to the solution of a particular problem. But my experience was that you could never know whether the constraints are sufficient unless you implement and run it. On the other hand, as a programmer I am old. I have to carefully choose the domain that I want to devote myself into. Being a psychologist I have the advantage of understand more about the human information processing system than other programmers do.