v 友能否给文科研究生推荐一门进可攻退可守的编程语言

228 天前
 tangshuier

先用一句话概括我要问的问题:文科研究生(这是大前提,很多人拿理工科背景转码成功说事)学习什么编程语言合适,进可以开发工具解决实际问题,退可以拿它找到工作(仅限国内环境)。

先说一下我选择编程语言的标准:一是学习曲线是否陡峭,二是就业市场上不同语言所需岗位的多少(仅以 boss 直聘为例)。在我个人认知里,似乎好找工作的编程语言很难学,容易学的编程语言很难找工作。

起初我选择了 python 进行学习,因为语言难度不大,基础也容易,但是我拿着它找工作却没找到合适的工作(也许是这个语言很“胶水”,性能不如 c++,应用生态不如 java ;也许是我技术水平确实不够);后来我选择了 c++,因为这个语言几乎无法替代,工作相对其他语言来说也好找(这只是我的个人认知,如果有误请指正),但是学习曲线很陡峭,很多抽象概念我很难理解。

我对编程语言以及就业前景的认知有很大问题,而且我也很难从企业视角去了解一个企业主力开发语言,我能了解到的很多信息几乎来自培训机构“制造”的大量充满焦虑甚至偏见的信息,可靠性很低。希望大家能够帮我确定一个切实可行的方向,谢谢大家。


在这里也对于可能出现的一些观点做个统一回应:

  1. 关于考公考编: 我在成为研究生之前考过公考过事业编,均告失败,这也是我成为研究生的原因

  2. 文科研究生为什么想“转码”,自己的优势在哪里: 我提出这个问题的本意只是确定一门“进可攻退可守”的编程语言,结果发现回答问题的人大部分由于我所写的“大前提”把话题引向了“文科生不要轻易转码”。如果说自己转码的优势在哪里,我觉得即便代码写的再怎么好,功能实现再怎么完美,光“文科生”这个标签就已经是巨大劣势了吧😂

  3. “进”和“退”是不是搞反了,为什么要提出这种问题: 我对编程语言以及就业前景的认知有很大问题,提出这个问题也是为了给我的认知纠偏。当然我也希望能给文科生想转码的群体纠偏(就目前来说我没那么大牌面)


同问题亦发布于 telegram ,非用于引流行为,仅供回答者参考:
链接 1 链接 2

8035 次点击
所在节点    问与答
153 条回复
mscsky
228 天前
之前遇到文学专业做前端
tangshuier
228 天前
@zeroDev 我补充一下我所说的那个“hr 不认的实际问题”,我在外站说过。我使用 python 解决过一个实际问题是提取一个 json 文件里的全部手机号,实际上就是正则表达式的事情,更何况 python 也存在专门处理 json 文件的库,更何况 json 本身就是比较规则的文件。对于我这种纯素人来说,能遇到的实际问题只有这些了,但是 hr 不会认为这个问题是问题。
GeruzoniAnsasu
228 天前
进,就别选后端语言。因为后端开发一般要求计算机科班出身,需要你有应对各种网络、IO 、OS 、性能和硬件故障的经验或知识储备。 与之相比较,前端的开发一般只要求你有一定的体系化的计算机网络和数据库原理知识,没有后端的知识门槛高。而且前端的开发相比后端更通用,虽然大家在频繁制造相似的新框架,但至少语言语法不会有太大区别;底层原理(比如 DOM, CSS )也是相同的。前端的需求也多,且经久不衰。

退,就算你不干程序开发,js 仍是一门你每天都会打交道的语言,也能当好自动化脚本的角色。
zhangshine
228 天前
js/typescript 前后端通吃
GGBond2001
228 天前
python 和 R 吧? 文科做统计分析用 R 也挺方便的, R 语言本身也比较简单
fields
228 天前
这标题起的就很文科生
coderluan
228 天前
@tangshuier #39 那我也不知道了,这专业在我眼中属于该被取消那种......
qxdo1234
228 天前
我觉得 go 和 python 会好一点,java 现在人太多了,很多培训出来的都烂大街了,你再去挤估摸着挤不过。早几年就烂大街了,现在培训的还和萝卜一样出来。go 的上手难度相对低,而且是一门相对新的语言,学的相对要比 java 少一点,go 在设计的时候 集各家之所长,从 java 和 go 的代码量对比来说,就可以看得出来 go 的潜力。java 生态发展太成熟了各种框架,上手成本比较高,而且现在行业内卷太严重,面试要求自然高。python 的话 基本没难度吧,主要是调用库的经验,而且 python 的潜力也很不错,可做机器学习,AI ,统计,这些发展潜力都不小。
javalaw2010
228 天前
看了 OP 的描述,我很难得出 OP 想学习编程语言的目的是什么,如果是想转码,那么跟“文科研究生”这个属性就毫无关系了,市场需要什么就学习什么,如果是想对自己本身的专业领域有所帮助,那么 python 显然已经足够了。

或者我简单理解一下,OP 所说的“进可攻退可守”是希望这门编程语言如果深入可以在就业市场上获得一席之地,如果不能深入也对自己的工作有所帮助?那我很遗憾,可能并不存在这样一门语言。市场对人的需求从来都不是基于编程语言的,而是基于人本身的,或者说,基于人所拥有的知识或经验的。换一个角度理解,即使是 TIOBE 榜上你最瞧不起的 PHP ,只要你拥有足够的知识和经验,依然可以在市场上得到一份不错的工作(有相当多的中小型企业依然在使用 PHP ),而需求最多的 Java ,即便科班出身,没有足够的经验依然无法得到一份 offer 。

那么话说回来,我觉得 OP 或许在某些追求上出了一些偏差,你可能未必需要“转码”,你可以考虑一下测试岗或者产品岗,门槛相对低一点的情况下,掌握一定的编程技能很有可能会给你带来一些优势。
david98
228 天前
@tangshuier 建议可以尝试做个实际的开源项目 体验完整的解决问题过程 这样更有说服力。
如果从跨行的角度说 我也觉得目前比较适合进入的是前端语言 不要一次性跨越太多。没有很好运气加持的情况下 要一步步地来 还需要持久的决心。每次都有收获 每次都在持续进步 时间就会站到你这一边。
怕就怕前进道路太陡峭 直接打消了你前行的动力。
SantuZ
228 天前
@tangshuier #16 要求 python 是因为搞算法研究需要的是快速验证想法,要求 C++那就不是算法研究,属于是对算法的开发或者 HPC 方向了,要求有离散数学的功底是没有这个知识你连矩阵乘法都搞不明白怎么做深度学习。
yunyuyuan
228 天前
js 和 python 选一个,优先图形界面就 js ,优先系统工具或脚本就 python
Ayahuasec
228 天前
“研究生+要解决实际问题” 看到这两个条件,我感觉可以了解下 MatLab ?学校没买授权也不想掏钱买学生版的话,可以用开源的 Octave 平替。

MatLab 的文档很全,学过 Python 的话上手也应该很快,而且有问题也可以问 AI 。比如如果需要数据支撑或者论证观点的时候,就可以问 AI 需要什么数学工具或方法,然后用 MatLab 实现,以及可以输出合理的图可以放进论文里之类的。感觉可能对 op 的主业会比较有帮助。
buchikoma
228 天前
没其他的,就是 python ,学习曲线平滑,使用领域多,独立性强,进可解决日常实际问题,退可找工作做测试做运维做部分开发工作,当然你要是认为 qa 和 sre 不是程序员那也没办法....

python 的工作除了大家都熟悉的算法,还有几个常见但使用公司不多的方向:云计算、公司内部平台(质量、效能、运维、机器学习)、测试、SRE
h272377502
228 天前
@Ayahuasec 对于文科研究生,matlab 有什么好推荐的,除了特定的工科专业用到仿真工具,其他没什么优势吧,之后进入社会用到的概率也更小
libook
228 天前
不存在这种语言,进退二者只能择一。

Python 确实是我所见过的各个非计算机专业最通用的编程语言,很多非计算机专业的研究人员都会使用 Python 辅助研究,用来做学术实验和计算数据都非常有用,所以你想找个在本专业能发挥价值的编程语言,Python 可能是最好的选择。

转行要看你想从事什么细分职业,每个职业的技术栈都是不一样的,这也就是为什么在计算机技术领域编程语言也没有实现大一统。不存在在所有领域都有优势的一项技术。

比如你后期选择的 C++,在大部分领域中它的开发效率都很差,而且品控成本很高;人们只有在对性能方面的需求大于其他方面的时候才会考虑用它。

另外即便对于计算机专业人员来说,通常也都是需要学习多个编程语言来应对工作中不同领域的综合问题的。

其实语言只是冰山一角,要想真正具备解决技术问题,必须同时具备计算机基础知识,如计算机组成原理、操作系统、计算机网络、编译原理等课程,不具备这些基础知识你只能照葫芦画瓢,解决问题的思路将极其狭窄。工作中也是需要大量的行业技术栈知识比如框架、库、中间件、架构、思想;我总是跟我的实习生说,语言只需要花一周到一个月的时间就能学会,但技术栈相关的知识可能需要数月、数年才能了解全面。

不要认为学了编程将来就好转行、薪资高,一方面你没有绝对的硬实力是无法竞争过数量庞大的计算机科班出身的人的(特别是有大量科班出身的人现在还找不到工作);另一方面计算机相关岗位薪资在 4k-70k ,你凭什么有信息自己是那个 70k 的而不是那个 4k 的。
tangshuier
228 天前
@Ayahuasec Matlab 这个就算了,我们专业极端情况下甚至连 stata 都可以不需要,只写定性分析也不是不行
fioncat
228 天前
如果想入行,学一门编程语言是远远不够的。
如果仅仅要学一门工具,py 足矣。
lstz
228 天前
如果你想做数据分析师或者商业分析师,学 Python 和 R 语言

做分析写报告这是文科商科的特长
JackMi
228 天前
不建议当程序员,都到研究生了,还是考公去吧,现在互联网太卷了,有卷又累又赚不到钱,最近很多人也降薪了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1031166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX