做社会科学研究的一定要熟练掌握一门编程语言

这个时代,会写点小程序没什么了不起,也就算点鸡鸣狗盗的本事吧。但是,不会写还真就麻烦了,这个麻烦其实对搞理科的比搞文科的还要大。这里说的文科不包括需要艺术天分的文学创作。现在是信息大爆炸的时代,早年那个凭着博闻强记就能安身立命的时代早已结束了,搞社会科学如果没有掌握并处理海量信息的基本技能,是一件令人悲伤的事情。想起早些年有些文科学者靠读那套著名的商务印书馆汉译世界学术名著丛书搞研究,我就想,看这二手的翻译材料还能叫研究?闲的蛋疼,说点感想给大家喷一喷 :joy:

君子生非異也,善假於物也。 「荀子.勸學」

拿古籍來說,有精力就各種影印版走起,稍微差點精力就現成的點校版走起,學習不是一件跌份的事,不學才是。

做社会科学研究的一定要熟练掌握一门编程语言

擡槓一下,都是物而已,遠的不說,乾嘉學派,哪個不是皓首窮經,外物不是決定物,心智才是。

1 Like

除了艺术创作人才,一般的“心智”相差都不是很大,所以只有用时代提供的最好的工具才能做出点在这个时代下看来有意义的事情。比如很多AI都能做很好的事情就不要去做了,(下棋是体育运动不算),要用AI去做点更高层次的事情。

1 Like

我正在用這時代提供最好的工具做這時代最沒意義的事,像是在這回文 :laughing: :rofl: :joy:

1 Like

自己玩的嗨,也是一种意义,没意见 :joy:

支持楼主,不过不学也没关系吧。就好像,学哲学的要学点历史,学历史的要学点中文,学中文的要学点哲学。其实,只学历史,只学清史,也行吧

1 Like

我的论点是不学关系很大,不是没关系啊 :joy:

很有道理,顶一顶

1 Like

我觉得编程应该是通识教育,属于跟识字课,公民课,民族史课一类基础课。不过已经进入暮年的人就没必要学了。

1 Like

当然,只要上班就有薪水领,那就别费这个劲了 :joy:

哈哈哈哈,感觉现在学语言学的也得熟练掌握一门编程语言才行了,“语料库”三个字真的是水论文的神器:)

另外,大家也可以分享一下心得和一些很有意思的项目,考虑到本论坛CS专业的人可能不多,偏文科方向会多一点,可以整点实在的东西,什么 LeetCode、龙书这样过于专业的东西就不要丢出来了。

我先来,算是抛砖引玉吧。

先简单交代下背景,高中理科,日语专业本科,学编程全靠自己一个人摸索,没有报过班之类。

最常用的编程语言是Python,跟着北理的嵩天老师《Python语言程序设计》学习,三天打鱼两天晒网地学了2年,才考过了Python的计算机二级(主要还是背题库背过的)。摸过一点JS,主要是为了写Auto.js脚本,折腾的过程中意识到JS在数据处理方面实在是太拉跨了

综上,如果给学日语的同学推荐编程语言,JS和Python里面选的话,

  1. 出于学术研究的目的,我偏向于推荐Python,我接触过的日语相关的语料库研究工具Wordless和大名鼎鼎的 mecab都与Python高度相关。现成的语料库或者只依赖第三方工具编辑下恐怕不太容易做出真正有意义的研究玩出新花样,而且做研究的数据往往都都是数以万计,总不能手动编辑吧,Python在文本处理方向甩JS真的不是一星半点——抛开第三方库不谈,单就正则表达式,这个对于文本处理而言最重要的特性而言,JS真的是相形见绌。

如果只是为了处理文本的话,推荐的学习路径是看嵩天老师《Python语言程序设计》入门了解基本的语法,然后再看看配套的《Python网络爬虫与信息提取》(边看边动手),最后翻翻余晟老师的《正则指引》的相关章节(不要光看,把现成的代码边改边看学得更快,过一遍,之后遇到问题再查就可以了),有了上面三板斧,基本就能做出来自己想要的语料,轻松水满字数,查重率也轻松降下来虽然据说国内的日语论文查重就是个摆设

  1. 出于就业的目的的话,我推荐JS,虽然日本目前招聘程序员最受欢迎的还是Java,但网页作为目前为止在日本运用最广的跨平台技术(Java其实是伪跨平台啦),而且JS的上手难度和Python有得一拼,蛮适合非计算机专业的人自学。再加上近几年TypeScript(相当于JS的升级版)异军突起,npm、Electron、Flutter等等后起之秀,让JS早已不只是简单的HTML网页的脚本语言,在未来的可能真的可以在软件开发领域和Java、C#、Swift等传统语言分庭抗礼。学习路径的话,我是看的阮一峰的《JavaScript教程》,视频课是Build Responsive Real-World Websites with HTML and CSS(没看完)

另外,有用过R、Perl的可以简单评价下么?据我所知,这2门语言在文本处理和数据分析方面也蛮有优势的。

2 Likes

个人的一个教训是,多年来一路为求简单方便都找权宜之计,所以整过VB,js,c,python,结果啥都知道一点但都是三脚猫,三脚猫的问题是效率低、解决方案的层次不高。所以,从头开始系统掌握好一门语言是最好的选择。python挺好的,好用的网络相关的库比较多,js也是必需的,因为大部分信息现在都要从网页上抓。对了,我比较老派,不要忘了把数据结构学一下,基础中的基础。

这个确实是相当重要的,我都忘记了。

不过不要拿什么《算法导论》和国内出版的数据结构相关的教材入门,不然真的会怀疑自己的智商好吧,我就是逊啦

个人更推荐,当折腾过几个项目之后,自己意识到不注意数据结构导致写的代码跑起来确实会有问题这一点之后再开始研究这方面比较好,不然可能真的是看天书。

我就是在自己做词典时,发现一个脚本跑了3天都还没完才洗心革面,回头去看这方面的书。推荐《我的第一本算法书》,里面没有代码,纯粹讲解思路,不过自己磕磕绊绊、半抄半写的推出最基本的几个最基本的经典算法之后,现在写东西,都会下意识地注意这方面的问题,不是真·面向过程就了事了:)

1 Like