Skip to content

Latest commit

 

History

History
119 lines (63 loc) · 9.09 KB

19-if-not-cs.md

File metadata and controls

119 lines (63 loc) · 9.09 KB

给非科班同学的一些建议

本文主要目标群体是对泛CS领域非常感兴趣,但由于各种原因没有转专业的同学

假如思考和准备来的早一些,现在还有转专业机会,并且你正在犹豫是否要做出这样的决定,可以参考转计软网二三事中的**「为什么要转计软网」**篇章,这里重复内容不再做赘述。

提前说明,笔者并无意鼓吹无脑转码的思想,漫长人生中,条条大路通罗马。挤破头学一个自己不喜欢也不擅长的专业,并不一定可以得到想要的结果。任何其他专业也是一样,只看到光鲜亮丽的一面,却不试着去理解背后的努力与付出,这样的评价,实在有失公正。

但话又说回来,如果你对一个领域抱有浓厚兴趣,最好也最便捷的选择还是转专业过去,而非寄希望于仅靠选他们的课初步搭建知识体系。笔者不敢说这种想法天真,不过有下述困难,你可能会在本科学习中真切地体验到,也需要尽早想一些方案克服或者避免。

困难与风险

选课机制受限

你可能会觉得听上去不太重要,但这其实是万物之源

计算机传统核心课如计网和数据结构还是有不少学院开设,可以尽量补齐。但开设计组和操作系统的院系并不多,由于SCU的选课限制,有可能无法把这两门课纳入你的成绩单中。个中问题在于,一者你没法学到传统计算机中solid的知识,二者在申请的时候成绩单会显得格外空虚,因为最最基础的东西似乎都没有接触过。

部分转码项目其实也有先修课要求,比如MISM@CMU就需要Database和OOP(Java/C++)的课程。这自然说得过去,有些科班的朋友就跟我讲过如果Java和C++都不会,就很难说自己学过计算机。

科班身份问题

你或许会觉得这只关乎认同感,是心理层面的建设,无伤大雅。但如果你是非科班的选手,可能会出现的情况是,受到专业歧视,同时也难以收获他人的认同感。

不妨设想以下场景,大佬在找队友,老师在招RA,大厂在招开发/lab member,官方项目(如mitacs)在挑candidate,有多大的可能会优先考虑一个非科班出身的人?其实某些时候,简历关就可以把你挂掉,都不会给你任何自由发挥的机会。这里不妨宽慰一下,国内现状如此,倒也不是个人的过错,因为他们的选择实在太多了,不缺你一个。而多数情况下,硬卡专业是一个最低成本的筛选。

而这还不止于本科阶段,在备研期间,你会遇到同样的问题。你会发现有些名校严卡科班,比如ScM CS@Brown,很大程度上你不是科班本基本无异于送钱。诚然,像CSE@MIT这种程度的项目都会招收转专业的陆本学生,但其实他们offer holder的dp都是top2数学物理。所谓的高三维就可以去的转码友好校,定位多数也集中在理科和传统工科,比如CS37@USC。

同样和笔者同级跨专业考研CS的同学也遇到了不晓得障碍,有些非常优秀的学习者自大三上就开始准备,在下学期中旬的时候已经把数一和408完整地过了一遍。但他联系上上岸的学长学姐,了解到心仪校转专业录取率的时候,还是不禁叹了一口气。跨保计软网的难度不太了解,但同样应该也是不低的。

文商科转码的难度或许会比理工科还高一些,笔者之前在地里求定位的时候,看到了如下的dp:同为末985,商minor cs,88.7/101/323,一篇ccf-B,一段大厂da实习,一段小公司算法实习,最后仅仅拿到两个top40保底。诚然,商科转码,本科能发ccf-B本身已经是一种能力的证明,但按照笔者个人了解,实际上ms除了三维,还是挺看重科班身份的。如果TA是科班,可能会有一个更好的结果。

环境反馈 & 视野闭塞

这个是通过个人努力,最容易避免的。但你需要试着去socialize,也或多或少需要一些运气。

很多小专业就那么几十个同学,在相对养老和平静的环境下,如果你不是一个非常自律且目标清晰的人,环境反馈没有那么充分。需要外界motivation的人在这种情况下,沉沦或许显得自然而然。而据笔者观察,大三在一种受迫的环境下才产生强感知(我应该开始做准备了)的人,并不在少数。如果前期选择躺平,后面会陷入非常疲惫的状态。设若可以把tg,research,intern,diy/中介申请打散一些,单位时间的强度会更加合适,也不容易产生过大的心理压力。而这,正是一个良性的竞争环境可以督促你做的。

开源文化崇尚的本来就是智慧成果共享,而在以最低的成本了解最新最先进的科学技术后,你也会多少受到些启发和激励。如果有渠道的话,尽早加入这个圈子,关注别人在做什么,并且日复一日自己踏实地学东西,想必是利大于弊的。在其他无关专业下,做这个领域相关的人自然也就少,很难找到合适的人一同进步。笔者认为在遇到理论/工程瓶颈的时候,多问才是最节省时间也最醍醐灌顶的方式。

与此同时,计软网同学信息共享的意识也比较完备,即使上述所说你都不存在需求,也可以抱团取暖,避免站在信息链下游,吃到不必要的亏。

当然非常功利地“混计软网圈子”也并不可取,读书尤其是本科期间还是可以跟不同领域的同学多聊聊天。多跟计软网同学交流,因为你可以看到自己努力的方向;多跟理科同学交流,因为有些方向比如statistical ml需要并不低的数学基础,而这很大程度上是仅靠自己的公共课无法弥补的;多跟医学同学交流,因为这或许是可行的落地场景;多跟文科同学交流,因为你可以在这荒谬的人生中,发现活着的意义。

实验资源保障

计算机学院为例,实验室似乎还是蛮多的,而在一般的文商科学院,很少有老师有这种lab和算力资源,他们的兴趣和研究方向似乎也并不在于此。更难有老师为了带你,而开辟出一个与计算机强相关的新课题,因为这无异于开盲盒,实际上是一个高风险低收益的行为。

如果希望计软网的老师带你,除非你的能力特别强,否则也并不是件容易的事。单纯的做一个交叉大创或许还可行,但长时间收留你做RA一定需要展现出过硬的本领,这是不可或缺的。

众所周知,计软网奆佬的浓度本来就超乎寻常的高,老师自己学生还带不过来呢。近水楼台先得月。

变通之路

因为笔者也只是懵懂的探索阶段,很难给出非科班选手的局部最优解,这里只是总结了一些或许可行的变通方式,作为参考。也希望各位如果有想法和意见可以一同完善文档,向着更合理的方向给出优化建议。

课程选择

CS自学指南已经是件老生常谈的东西了,除了网上学一些课,也可以考虑辅修,后续可以参照双学位有啥用再做选择。其实校内也有一些非限选课,笔者以及一些同学上过,可以尝试下这些补补成绩单:

  • 编程相关

    • 数据科学与商业分析

    • Python人工智能(比较难,没基础者慎重)

    • Python科学计算

    • 数据挖掘

    • 高性能计算

  • 数学相关

    • 深度学习(数院本硕混上的课,每人都要上去讲顶会paper,期末全是推导,慎重选)
    • 机器学习(数院)
    • 并行式计算
    • 时间序列分析
    • 蒙特卡洛方法(先修课统计计算方法)
  • 应用数学

    • 运筹学与最优化
    • 运筹学(II)
    • 博弈论与经济分析(完全对标yale game theory讲的,双语)

研究尝试

实力过硬的学生可以直接联系计算机的老师,不过也可以尝试其他方向,以下均为前人走通过的路:

  • 华西大数据中心(人工智能/医学大数据)

  • 国家天元数学西南中心(高性能计算)

  • 商学院(复杂系统)

  • Berkeley交换然后keep in touch,直接RA

  • mitacs(退而求其次别选最卷的方向)

申请方向

  • mis,如MISM@CMU或MSIM@UIUC(商科和管理)
  • hci(玄学,考虑维度比较多)
  • ds(有数据科学的背景)
  • ee(这个更适合自动化的同学)

心态转换

一定不要自暴自弃。千万别像强化学习模型一样,不能收敛就开始摆烂。你的人生只有一次,而AI可以调整重开。

我不敢说非科班的上限有多高,但无疑的是,下限是个无底洞。能做的事相较而言会显得比较有限,也只能在局部进行优化,但这并不是玩世不恭的理由。

怕什么真理无穷,进一寸有一寸的欢喜。