对心理学专业者来说，哪些编程语言是应该学习和掌握的？
一谈到编程，各大编程语言帮派很容易陷入无穷无尽的“鄙视链”（程序员的鄙视链是什么？ - 知乎；鄙视链现象普遍存在的深层原因是什么？ - 知乎）。鄙视链有百害而无一利，害的是对各种编程语言尚且理解不深的初学者，害的也是自己。 所以下面的回答尽量做到客观和全面（当然，受限于我的个人水平，一些方面可能涉及不到，还请大家补充）。 我会从每款软件或语言入手，尝试分析它们能被心理学研究者最大化利用的地方。而在这之前想先阐述一下学习编程或技术的几个基本原则。 学心理的人都知道，“人类的大脑只被开发了10%”是一个myth、一个错误的言论。然而，“Excel的功能只被大多数人使用了10%”却是一个相对的事实。学Excel的人其实也有一条“鄙视链”（转自“Excel之家ExcelHome”微信公众号）：搞笑的EXCEL水平等级划分,看看你是哪一级？。 Excel是心理学研究者的基础必备技能： “Excel的功能只被大多数人使用了10%”，“SPSS的功能只被大多数人使用了50%”，剩下的50%是SPSS的Syntax（语句）。 除了结构方程模型和其他更高级的多元统计，SPSS已经能满足心理学研究者大部分的统计需求了，而且具有操作简便、掌握容易的优点。但是，如果只是满足于菜单化的“点点点”操作，那么还不算真正掌握SPSS。 一个比较好的习惯是：保留原始数据，然后记录下每一步分析的syntax（可以在菜单里面点paste粘贴，熟练之后也可以自己写），再保存这个syntax文件。这样，无论是再做一遍分析，还是以后自己回过头来看当时做了什么分析，抑或是给别人看分析的流程，都是极方便的。每一次分析都只需打开原始数据和syntax文件，运行语句就OK了。这其实已经是所谓的“编程”，远比菜单操作高效和规范。 SPSS的优势主要有： R语言是比SPSS功能更强大的数据分析工具，也是比Excel功能更强大的数据可视化工具，还能满足其他的很多功能需求（比如网络爬虫、机器学习）。一般需要配上RStudio编辑器使用。 R的优势主要有： Mplus是众多的专门用于结构方程模型的统计软件里，相对优秀而高效的一款。 AMOS虽然是图形化界面操作，但是变量一多绝对会很麻烦，容易出错；LISREL输出的指标多一些，但是编程难度比较大，不容易掌握。而Mplus只需要一点点的编程，就可以灵活方便地实现大多数的多元统计，输出的指标也是足够研究者使用的，性价比非常高。 Python是目前很热门的语言，免费开源、代码简洁、开发高效，利用Python可以完成很多事情。不过Python 2.x 和 3.x 的各种差异还是挺让人无奈的。Python虽然也能做统计分析，但是R在统计方面似乎更友好一些。 对于心理学研究者而言，Python的可利用价值主要在： PsychoPy目前使用的人并不很多，它的特点主要有： MATLAB+PsychToolBox能实现非常灵活的实验编程，也能对数据进行预处理和输出（当然Python也行）。MATLAB本身也是非常优秀的科学软件，擅长对矩阵的操作和计算。 总结起来，MATLAB+PTB的搭配能满足的就是一项心理学实验从无到有的“一条龙”服务（从被试信息采集，到完成实验，再到数据预处理和输出；当然Python也行）。 基于MATLAB的EEG、fMRI等功能包也非常优秀（当然Python也有类似的功能）。 最基本和普及的实验软件，菜单操作，偶尔需要一点编程（也就是里面的inline，语法和VB相似）。虽然掌握起来更简单，但是软件不是免费的，可实现的功能也少一些，不够灵活。 总的来看，实验编程，学MATLAB或者Python的性价比更高一些。但对于心理学初学者而言，E-Prime还是有必要学习和掌握的，有利于在头脑里形成一套心理学实验流程框架的原型。 Excel是万事之基础。 统计：SPSS入门，R提升，Mplus可选。 实验：E-Prime入门，MATLAB或Python提升。 （这里只涉及了最基本的研究需要，如果你的研究有比较特殊的要求，当然就需要学习更专门化的、领域特殊的技能了）