V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tangshuier
V2EX  ›  问与答

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

  •  
  •   tangshuier · 232 天前 · 8045 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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


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

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

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

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


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

    第 1 条附言  ·  232 天前

    我重新理顺一下需求:退可以找到工作不一定是码农、开发岗位

    第 2 条附言  ·  231 天前

    后续:
    还是选择python,正在过基础,python后续的方向还不确定 考虑辅学javascript,目前不太清楚javascript/typescript有什么区别,后续方向还是不确定

    153 条回复    2024-08-01 14:46:49 +08:00
    1  2  
    ck65
        101
    ck65  
       232 天前 via iPhone   ❤️ 3
    文科生只是个标签而已,针对你的兴趣,在热门工种语言里学一门容易看懂的就行,这只是万里之行第一步,最起码还要补的东西是计算机科班生花了四年学到的计算机基础知识。比如我目前主力 Go 、Python 、TypeScript ,C/C++、Rust 以及小众语言例如 Nim 都能来。

    比较重要的是,初入行时语言功底必须扎实,要么写得快要么搜得快,你得有足够的产出效率,数据结构、算法、数据库基础理论、代码抽象能力这些基本方面不能和从业总体水平相比落后太远。你的技术就是你的货,识货的雇主多数不会死磕你的出身。做全栈开发八年目前三狗的外语本科哲学硕士大龄码农留。
    hitmanx
        102
    hitmanx  
       232 天前   ❤️ 5
    你太浮躁了,兄弟。这就和看了几个罗翔的视频就在考虑应该是进律所还是法院一样,哪个远景更好。这个根本不是你这个阶段该操心的问题……你这都还没入门呢。

    但凡哪些“谋定而后动”、“三思而后行”的人,最后的结果都是半途而废,这个在各种论坛见的太多了。而真正实干的人,都是闷头在那里搞,到此时可能已经丢了一个看上去很不错的作品上来了。

    什么文科生、理科生的,那都是给自己找的借口。岗位挑学历那是在所难免,但是真有一技傍身,还是很有机会的,放低身段,从小公司开始干起,先进这个行业再说。

    甘蔗没有两头甜。又想进入这个行业,又担心付出没有回报,哪有那么好的事。想清楚、决定了以后把整个身心都投入进去,尽最大努力义无反顾搏一把。

    写这些可能比较刺耳。因为我也是这样过来的,我能在一定程度上理解你畏首畏尾的心情
    tangshuier
        103
    tangshuier  
    OP
       232 天前 via iPhone
    @lueluev
    先解释前端,本来我对前端有刻板印象,我觉得现在靠 aigc 前端页面不成问题,但是评论里有人提到了人机交互和校验(#83 ),我才发现前端确实重要。
    再解释 python 和 java ,我看了这么多楼,加上重新体验了一下这两门语言的开发,有重新捡起 python 的打算了( java 写一个 hello world 就已经够抽象了)
    最后一个“文科生”标签,我这么说吧,要不是论坛规则要求友善发言,拿着文科专业的简历去找工作,有几个能找到合适的呢(我在这不说好不好,因为这个概念是相对的)?
    xz410236056
        104
    xz410236056  
       232 天前

    python 排第一不是没道理的
    ben1024
        105
    ben1024  
       232 天前
    php,js,go,python,java
    vevlins
        106
    vevlins  
       232 天前   ❤️ 1
    @tangshuier

    "因为生成式人工智能出现,哪怕不熟悉前端的人也能写出前端页面" 这就是纯粹胡扯。根据我的经验,对 IT 领域新技术吹捧最过头的,要么是包装了大便一样项目去骗投资的,要么就是外行人。人工智能完成前端交互的难度肯定要比完成后台的难度大。

    你要求进可攻退可守,我还是建议学习 python ,因为现在文科生用 python 做做统计和简单的机器学习也很热门,考研也是一个不错的优势。用 python 学会写后台之后,学点其他的语言去小公司写写后台能有什么问题。

    我个人非常推荐新手学习 js ,我真觉得现在 js 写起来比 python 顺手,而且 js 自己几乎可以把小公司一把梭全干了,写网页写 app 写后台,前端凑活画画 UI 也没什么问题,而且对于文科生来说转行前端难度确实稍微低点,尤其是低级前端。但是目前来看,有几个问题:

    1. 时代不同了, 现在外行转码农不容易了,主要是业内的都卷,985 科班硕士都招不过来了。

    2. JS 作为初学语言,系统化的教程不够多,很多是跟前端混合起来的,新手没人带学起来容易蒙蔽。

    3. JS 在机器学习上有短板,很多科研任务不太适合做。

    在程序员这一行上,语言真不是问题,是要借助一门语言学习计算机体系和某一个技术方向(前端/后端/算法)。这个时代不建议转码了,没什么用了。
    tangshuier
        107
    tangshuier  
    OP
       232 天前 via iPhone
    @hitmanx 第二段-第四段我在培训班基本体验过一样的话术了。我在这不想也不会怀疑你是否是培训班水军,我想问这样几个问题:

    1. 能否列举出实际岗位招聘不会在乎文科生专业身份,甚至 hr 都可以打开简历中 github 项目地址的公司?

    2. 能否列举出文科背景的著名程序员、码农?
    clue
        108
    clue  
       232 天前
    @tangshuier #107
    这样和你说吧, 大厂社招, 只看学校档次不看专业, 我以前的一个同事是学生物的, 照样做开发, 还是非常强的那种

    计算机本来就是一个强烈依赖自学的领域, 在学校学的那些只能算是全面的基础, 不自学几乎不可能胜任现有的工作

    你是来寻求帮助的, 这里回复的很多人绝对比你想象的要资深, 你大可不必担心人家闲得蛋疼来消遣你
    Lambert2022
        109
    Lambert2022  
       232 天前
    绝对是 Swift
    cocogovern
        110
    cocogovern  
       232 天前
    我想练习绝世武功,然后打工赚钱。
    tangshuier
        111
    tangshuier  
    OP
       232 天前 via iPhone
    @clue 那大厂更直接寄了,我本科 211 ,研究生双非,文科专业
    clue
        112
    clue  
       232 天前
    @tangshuier #111
    211 完全没问题的, 我是指社招, 你这个起点已经超越 90%的人了, 关键还是看技术能力
    该讲的前面也讲了很多了, 还不如现在去学点新知识, 找个好玩的项目直接上手开发
    cshever999
        113
    cshever999  
       232 天前
    python
    deplives
        114
    deplives  
       232 天前   ❤️ 2
    泼个冷水,别想着转码了,你没有任何优势。
    你的认知还停留在 [在我个人认知里,似乎好找工作的编程语言很难学,容易学的编程语言很难找工作]
    如果你真的想走这条路,现在踏踏实实在一个用一个你喜欢的任何计算机语言做点东西出来,而不是就学了个怎么从 json 提取手机号就开始杞人忧天 python 的性能不够,生态不好。可以说这个顾虑在你 5 年以内遇不到。
    cherrycake
        115
    cherrycake  
       232 天前 via iPhone
    在 tg 群里看到一模一样的,祝题主早日找到方向
    Seulgi
        116
    Seulgi  
       232 天前
    目前的话,我感觉就是 python 啊,基本上现在很多系统都内置了 python 环境,简单写一些脚本 python 也很简单高效。
    tangshuier
        117
    tangshuier  
    OP
       232 天前 via iPhone
    @Promtheus 培训班出教程赚钱赚麻了,代价是多了一大群像我这种没有方向的炮灰……
    SayHelloHi
        118
    SayHelloHi  
       232 天前
    Python 吧
    xcid
        119
    xcid  
       232 天前
    本文科生一开始跟你想得一样,所以学了 python 。后来并没有找到这样的职位,索性学 java 转码了。。。
    lchynn
        120
    lchynn  
       232 天前
    Excel VBA , 不开玩笑, 搞得好大部分办公室白领不如你, 部门工作离不开你。当然你得先有一个这样的工作。
    aresyang
        121
    aresyang  
       232 天前
    ocaml
    iorilu
        122
    iorilu  
       232 天前
    非专业程序员就两个选择

    js 或 python, 看你兴趣
    456789
        123
    456789  
       232 天前
    python 是易守难攻,真正考验智商的就属它;文科大佬应该学记忆力强的比如 java php 这些; js 这类灵活的语言其实计算机专业性很强,易学难精不建议;
    shijingshijing
        124
    shijingshijing  
       232 天前
    我说句不该说的,你本身底子就是文科,即使是计算机专科,起码也花了几年时间来学计算机基础;现在你还想找一个学习曲线既不陡峭,还好找工作的进可攻退可守的语言,怎么说,属于典型的“既要……又要……还要……更要……”,想弯道超几次车。

    你所谓的曲线既不陡峭,还好找工作的进可攻退可守的语言,即使在以前计算机繁荣的时候,对计算机从业者来说都几乎不存在(上面很多人说的 Python ,说实话,除了豆瓣用来做后端,几乎没有正经互联网公司用来做主力语言,都是用来做辅助的),更何况现在这种卷上天的就业市场。

    你说的“python 进行学习,因为语言难度不大,基础也容易,…………性能不如 c++,应用生态不如 java”,我真心觉得你是想多了,真的就是小时候考虑自己是读清华好还是读北大好。还是拿前面推荐最多的 python 来说吧,真正要达到生产级的使用,对于 Python 底层的实现,GIL 锁,内存管理等等,都需要你有细致入微的了解,python 为什么被人们认为容易?还不是因为隐藏了大量的细节,降低了入门门槛,但是编程入门和工业级生产是两码事,还有,不要用你的业余爱好挑战别人吃饭的技能,我读书的时候在和校队朋友打乒乓球的时候就意识到了这两者的区别。
    fanyange
        125
    fanyange  
       232 天前
    我感觉是 JavaScript ,生态超丰富,做点小网站/程序成就感大,而且永远都是热门语言

    学习 JavaScript 还是不算简单的(主要涉及的概念有点多,语言本身不算复杂),但花的时间都是值得的。
    lyp82ndlfjh
        126
    lyp82ndlfjh  
       232 天前
    java 。java 的需求应该还是很大的。真正找工作的话不只是编程语言,还需要一些 CS 的基础知识。python 目前在工作中一般写一些小脚本。
    tangshuier
        127
    tangshuier  
    OP
       232 天前
    @fanyange 确实不算简单,我看到那个“js 代码消消乐”就很难绷得住😂
    kuber
        128
    kuber  
       232 天前
    文科生转到计算机行业适合的应该不是码农,而是项目经理,BA 吧。可以先从 BA 做起,积累项目经验慢慢转成项目经理。除了互联网公司,还有很多传统 IT 公司,你也可以看看。
    话说文科不同专业之间还有很大差别。我们是外企,招了很多商科,财会,以及英语专业的毕业生做 BA 。
    @tangshuier 作为文科生你自认为你的长处是什么(包括性格,经历,专业,思维能力等等)?
    epiloguess
        129
    epiloguess  
       232 天前 via Android
    文科学这些东西是给你赋能,就赋能来说,py js 很适合,不是让你拿爱好挑战别人的饭碗 就算是前端没个全身心半年也学不明白达不到初级开发的水平
    chenzhekl
        130
    chenzhekl  
       232 天前 via Android
    找什么工作,学什么语言。不同行业需求不一样。
    GabrielleBellamy
        131
    GabrielleBellamy  
       232 天前
    我也是文科生啊,也写代码啊,但从没想过成为码农,这个职业根本不值得……
    写代码是为了自我表达,仅此而已。跟写论文是一个意思,只不过表达方式不同而已。
    换言之,有人拿着语言材料搭建自己的大厦,有人拿实验数据,然后这个拿代码而已。
    开心就好。
    thedog
        132
    thedog  
       232 天前
    pytho
    Cubat
        133
    Cubat  
       231 天前
    我高考失利报了英语专业,毕业后做了两年开发,然后五年的时间里运维、技术支持、实施、售前转了一圈。看你描述 C++ 和 Python 就觉得其实你挺浮躁的,也不是很想写代码,那你也别听楼上啥前端后端的了。你可以试试:

    - 推荐
    1. 事业单位的运维岗。做甲方,帮单位和厂商对接,不用写代码,进去一般只需要考行测和申论。
    2. 传统行业的运维开发岗。不需要像事业单位一样准备行测,技术面试普遍简单。
    3. 售前 & 解决方案。如果工作年限上去了可以考虑这个,一般得在技术岗干个十年左右。
    4. 项目经理。和解决方案一样,需要项目累积,如果没有经验大概率找不到工作。

    - 不推荐
    1. 技术型销售。销售部门经常会这样说,但就是个销售,天天得吃业绩压力。
    2. 初创公司的开发岗。初创公司缺人,搞点作品放简历里,一般看中了就会要,但基本什么都得靠自己。
    3. 外包开发岗。走投无路的话也别嫌弃,如果还有其他机会就别看。
    ebushicao
        134
    ebushicao  
       231 天前
    看到有人推荐前端,我来泼下冷水。前端岗位确实不少,入门也算简单,但东西是真杂,细分领域是真多,大部分工作都要求指定技术栈的实际项目经验,一般是 UI 框架+组件框架+状态管理库。比如 react-antd+redux ,vue+element+pinia 等等,然后还有其它类,比如 electron 、react native 、uni-app 等等,桌面端的网页、移动端的适配、浏览器兼容性的处理、移动端的 App 、各类的小程序等等。即便很多东西基础能力满足就可以无缝使用,但 HR 筛选简历的时候可不管,所以现在前端巨难找工作... 还有,BOSS 直聘上有很多假信息和过期信息,不要光在列表上滑动就感觉很多,实际上很多点进去,要么人力外包,要么半年前甚至一年前活跃。
    hello2090
        135
    hello2090  
       231 天前 via iPhone
    懂得太少,想的太多。
    SD10
        136
    SD10  
       231 天前 via iPhone
    Python ,我觉得没有比这个更合适的语言了。
    首先,在你的日常学习中可以用来分析数据、做一些小工具,比其他语言简单,很容易带来成就感。
    再次,和机器学习、AI 密切,方便摇摆。
    还有,虽然豆瓣外没有大公司用 python 做主站,并不是说 python 不能做做网站,而且大公司内部也有不少自用的工具是用 python 做的,不要只盯着头部流量的网站看他们的技术,有所少从业人员在这些大公司做主站的?别被带偏了

    学 python 吧,语言性能什么的不是你现在考虑的东西,生态才是!
    snailya
        137
    snailya  
       231 天前
    @coderluan 你说的最对,现在如果是转码,根本不可能找到专门的程序员工作。反而是很多传统行业的公司,内部有很多需求,但是不愿意找外部的开发,可能原因有需求不明确,随时变更,涉密等,与现在的开发模式不匹配,他们不会要求这么学历之类的门槛,当然他们也不会给到互联网那么高的薪资。
    tangshuier
        138
    tangshuier  
    OP
       231 天前 via iPhone
    @snailya 这里面有个大前提,需要进入传统行业的公司
    dog82
        139
    dog82  
       231 天前
    不如把 excel 、word 学精,你就超过 99.99%的人了,包括 99.99%的程序员
    xinyu391
        140
    xinyu391  
       231 天前
    文科就算了吧
    lowly
        141
    lowly  
       231 天前
    都没看你的内容,第一反应想到的就是 Python
    进可纯开发岗,退可自动化脚本
    开发岗:进可数据开发,退可 web 开发
    自动化脚本:进可互联网测试岗,退任何行业工作都可应用
    至于说别的语言,你走后台数据开发,自然而然会涉猎,实际工作岗位需求,到了一定阶段,就是看实战项目如何
    说说前端,你走 web 开发,也绕不开,react 、vue 、TS 等等,这些都只是公司工作内容 web 岗的次要工作内容( web 岗非纯前端的话)
    再看你说的内容,以及各楼层你回复的,并非有意打击你
    你就是想的太多,有一个选择,你看到不是好前景,而是会遇到多大的坑,你没有贵人指点,互联网上寻求帮助,协助你做决定,那你只能服从多数建议,少数建议说的也很有见地,但你心不够绝,做不来扑朔迷离的未来决定。往后你因为服从多数建议的决定,而没有很好的发展,你也没必要后悔,因为路一开始都在这里,是你自己不会对自己复盘,对各路分析,你听再多人分析,我们这些人也只是从我们角度看市场看自己能了解到的内容去给你建议
    EndlessMemory
        142
    EndlessMemory  
       231 天前
    你这挺难搞得
    zgsi
        143
    zgsi  
       231 天前
    py/js
    zen1
        144
    zen1  
       231 天前   ❤️ 1
    @tangshuier #107 我可以补充个文科背景的著名程序员——尤雨溪。不过这种万中无一
    8355
        145
    8355  
       231 天前
    不如还是去学习 excel 编程吧
    charlie21
        146
    charlie21  
       231 天前 via Android   ❤️ 1
    学你个大马猴这道题拿到程序员面前就是一种侮辱
    shyangs
        147
    shyangs  
       231 天前
    高級运维一樣掌握兩門語言以上 Bash (Shell Script), Python, Node.js, Go-lang (因為 k8s) , Groovy (因為 Jenkins)

    維運會的語言沒比開發少.

    你只會一門語言去小廠,可能低薪又累成狗.
    wzbrbj
        148
    wzbrbj  
       231 天前
    你有这时间还不如学学 ai 相关的语法及表达方式。
    miaowo
        149
    miaowo  
       230 天前
    @tangshuier #13 想多了,人工智能的出现,对前端和后端的影响都差不多,能生成一些简单逻辑的前端页面,也能生成简单逻辑的后端 api ,这东西目前还只能作为一个辅助工具,实际开发复杂着呢,远远做不到完全替代...我觉得如果你真的想转开发的话,还是以兴趣为导向吧,看自己是更喜欢和前端视觉类的打交道,还是喜欢和抽象的东西打交道
    miaowo
        150
    miaowo  
       230 天前
    现在不比以前了,去网上看一看,很多 985 、211 科班毕业的都很难找工作了,你拿什么和他们竞争
    lueluev
        151
    lueluev  
       227 天前
    @tangshuier #103 现在非工程/工程中的后端:都要求对你不想学的操作系统、计算机组成原理、算法、数据结构等等有一定的要求;工程中的前端:轮子很多更新迭代也多不符合你一个语言一把梭的要求。对于你的刻板印象我不想多说啥,实际上手试一试呢。真的我最建议的就是产品,产品找不到就干测试,测试干阵子转产品也是可以的,你这个组织语言和表达能力还是挺好的,我不知道你为啥非要转码,如果转码没那么顺利的话真的可以看看产品岗,更适合表达能力好又不想学很多编程语言的你。
    swordspoet
        152
    swordspoet  
       212 天前
    @tangshuier #13 入行六年以来,每年都是“寒冬”。年年难过年年过。
    mark2025
        153
    mark2025  
       119 天前
    可能 js + TS 更适合
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2797 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:37 · PVG 23:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.