留学生转学计算机快要崩溃了?

论坛 期权论坛 留学     
匿名知乎用户   2019-4-11 23:06   3132   10
我在半年多前转专业到计算机。上学期上了编程入门和一些数学课,还可以应对。这学期在上数据结构,Software Systems Programming(Unix, C, Bash,ect.), Computer Organization。常常作业不会写,整个学期一直在挫败感和自我怀疑中煎熬,感受着以往升学 大考时都没有的巨大压力..

数据结构的老师讲课很糟,却出T.A.都不会做的研究生程度的作业。很多学生组团写作业,但是我不太喜欢/擅长抱团。可写不出 看到他们又觉得心慌难过,有种掉队 隔绝要死了的感觉.. 也有教授带课非常漫不经心,讲课slides上的内容匆匆一扫,作业却又很脱节很难(是我太弱了吗。。); 而office hour里永远人满为患,比较难得到个人的指导。

Assignment一个接一个的打击,让我看到新的作业出来都特别恐惧.. 在不断地受挫后也开始拖延  常常情绪低落 焦虑 越来越难专注,导致反而在最急迫的时候大段大段地浪费时间。不能熬夜,也缺乏学习动力,所以无法像其他同学那样拼。但是心里又恐惧,觉得自己太水。现在final在眼前,真的快要挂科了。。。在转CS之前跟老爸开玩笑说 学计算机会不会毕不了业,结果现在真的要考试不及格,心里难以接受。

以前从没有像现在这样恐慌、不知所措。。。最近常常思考人生而无法学习(苦笑..)。自尊心更是薄脆。
  有时候甚至想休学去旅游,但是知道这样只是逃避... 在这段日子的自我怀疑和羞愧里也想了无数次是不是实在不适合学计算机。之前从来没想过学理工科,而现在在一群理科生中间觉得格格不入,思维转换不过来。也查了一些其他可能会更感兴趣的出路(心理咨询 建筑 法律),但得出的结论都是对于我若想在国外立足,除了CS 我真的看不到有更合适的路。看一亩三分地会有种人人都能转CS的感觉,然而实际操作起来真是路漫漫...

  希望前辈可以提供建议、敲醒啥的....
也求邀请同路的同学前辈..

-----------这是数据结构入门课一次作业的一道题(学了recursion以后的),不知道难度合不合理?(前辈们有时间的话帮我看看呗)
On January 19, 2016, Dr. Curtis Cooper published about his recent discovery of a 49th Mersenne prime,2^274207281  1 (a number with 22,338,618 digits), as a result of a search executed by a GIMPS server network.


The best method presently known for testing the primality of Mersenne  numbers is the Lucas–Lehmer test. Specifically, it can be shown that for prime p > 2, Mp = 2^p  1 is prime if and only if S(p  2) =0,
where S0 = 4 and, for k > 0,
Sk = ((S(k  1))^2  2) % Mp.

I give you two options: you may use either the grade school algorithm for multiplication or the Karatsuba algorithm.
I arbitrarily chose the following two constants: time to add two numbers of 64 bits each: 0.5 nano-sec time to multiply two numbers of 64 bits each: 1.5 nano-sec.
How much time would be required (on a single machine) to prove the primality of the 49th Mersenne prime?
( Proceed by making some reasonable assumptions about the recurrence expressing the running-time of both multiplication methods and solving them. )
Count time for subtraction to be the same as addition and the time for modulo (%) to be the same as multiplication.

分享到 :
0 人收藏

10 个回复

倒序浏览
2#
知乎de用户  16级独孤 | 2019-4-11 23:06:08 发帖IP地址来自
计算机,特别是系统原理和数据结构那些部分,就我的经验……上课对于写作业完全没用。

这种时候你最需要的,就是一个懂的人,手把手和你讲每一行程序都是为什么那么写。而很不幸,一般教授都不会负责这种没用的小事(笑)。至于搞明白上课的原理和你写的东西什么关系,那基本上都是靠经验堆出来的。

所以上边说的对,抱学霸的大腿,非常重要。
不过有一点,就是计算机不是可以大团体一起学的东西。这东西不比文科,基本上如果讨论的人超过3个,写程序时候就会一点效率都没有了。效率最高的是一对一(这也是为什么实际工作中都讲究pair programming的原因),可能的话最好这么干。

那么如果你抱不到团呢?或者如果比如像我当年一样社交恐惧症加重度抑郁呢?
可以说的就是,死抠细节,耐心,信仰。

死抠细节的意思是,取决于语言,你多一个加号,引号,分号,括号,以及空格放的位置,在不同的情况下都可能会影响你程序的结果。所以这些东西全部都要非常注意。绝不能觉得“大体上差不多啊”就过去。每一个符号在每一个位置出现的原因必须搞明白。

耐心的意思是,因为问题大部分出在细节里,所以你必须有冷静的一行一行追踪程序运行的能力。当然谁都未必能一直冷静,但至少要有能把自己的心态调整好,不受情绪影响的能力。否则的话搞的明白的东西也会搞不明白。

至于说到信仰……你一定要坚信,所有的问题都是有解的。这个世界上的一切,一定,是符合逻辑的。如果有什么东西的结果不对,那一定是逻辑错误,一定是可以改正的。
然后,工作量=效率*时间。所以如果效率不是0,时间足够多,任何工作,一定都会被完成。于是无论多么绝望,可以休息,可以暂停,可以去干别的,但绝对不能放弃。

------------

不过上边说的是写代码。至于数据结构,那根数学题一样,多做题多设计data model,没有捷径。

------------

至于你说的其他几个专业,我现在恰好也有同学是那些背景来的,大概也可以评价一下。

心理咨询 - 想做到任何东西都要读到博士;工作压力大学习难度高工资低,且精神一定会不正常;工作很少;需要学相当的生物知识
建筑 - 竞争极其激烈;需要天分和积累;基本也得至少读个研究生;工作很少;需要大量networking
法律 - 竞争极端激烈;至少读到30岁才能出头之前挣不到钱出来会背20万美金的债;同样不保证能找到工作;出来同样要学一辈子

工作收获姑且不论,这三个专业的难度绝对不在计算机之下。只是对天分的要求不同。所以……如果换也不是不行,但请一定慎重。
3#
知乎de用户  16级独孤 | 2019-4-11 23:06:09 发帖IP地址来自
谢邀。

不知道题主原来是学什么专业的,但鉴于“之前从来没想过学理工科”,转CS的难度可能略大。先给题主以下两条建议:
1、找学霸抱大腿。这个不是让你去抄作业糊弄GPA,而是CS的各门科目的learning curve普遍非常陡,但是一旦积累到一定程度的话,很容易触类旁通。这种情况下,如果没人推你一把的话,光靠自己爬的投入产出比太低,而且正如你所说,很容易学得没信心,进而恐惧+拖延。讲真,随便让哪个新手去自学Unix+C+Bash,没有不抓瞎的。
2、选课时量力而行,最好听听前两届你们学校毕业的入行CS的学长学姐的建议。同理,这个也不是让你去刷GPA,而是投入产出比的问题。学校的培养目标永远是研究型人才,跟就业市场的需求有很大gap——比如说你学数据结构八成会学红黑树和Hash函数而且可能会学得很郁闷,然而去公司面试的时候没人会让你自己撸一个出来。其他课程同理,像你提到的那门Unix的课程,肯定避不开OS的很多概念,C的话需要你对底层硬件有一定了解,Bash那反人类的语法以及typing。。。这种课要是有一定基础的话很容易让人把概念串起来加强记忆和理解,但是显然不适合新上手CS的人,尤其是很功利的以短时间内找工作为目标的人。 建议题主列出各门课程的syllabus,以便具体分析。

如果仅仅是为了找一份工作,刷题是最低要求,其最低条件如下:
Java。了解基本syntax即可,JVM和JDK会cover你目前理解不了的那些概念的。
数据结构。划个重点:数组了解范围不须超过动态数组,树的了解范围不须超过自平衡二叉树,HashMap和链表只需要会用即可,最多再加一个有向图/无向图+广度优先搜索。
算法。熟用递归+动规基本上就问题不大了。
之所以看起来人人都能转CS,是因为以上三条的要求着实不高,刷题解题纯粹是抽象的数字游戏,具体的实现概念(OS,Compiler,Network,Computer Architecture)等难点一概跳过。在当年CS人才紧缺时不乏这样做进而转专业成功的例子,对现在的CS就业市场来讲以上要求只能是底线里面的底线了。

你可以邀请下@Coke,她是文科转CS的前辈,也许她能帮到你。

============

1.编程入门(java)
推荐。
2.数据结构和算法 1,2
推荐,不过不必深究过于复杂的数据结构和算法,那是给ACM的人刷智商用的,能考试过了就行。
3. Intro to software systems (integrate Unix, Bash, C, Python什么的)
Python在这里出现是什么鬼。。。建议可以啃,略费力,但对于理解lower level的原理很有用。
4. Computer organization (MIPS, Memory, register, CPU etc.)
简易版的Computer Architecture,深坑,(对找工作)无用,不推荐。
5. Programming languages and paradigms (Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming)
这个我没学过(毕竟转行背景出身),不作评价。
6. Algorithm design (Advanced algorithm design and analysis. Linear programming, complexity and NP-completeness, advanced algorithmic techniques.)
纯理论,不推荐,除非你打算读PhD做优化相关研究。
7. Operating System (prerequisite: 4)
8. Networks (pre: 7)
9. Database (pre: 2,3,5)
学有余力的话推荐。如果以web相关类工作的角度来看,优先级9>=8>7。
10. Numerical Computing ( IEEE Standard for Floating Point Representation, computer arithmetic and rounding errors. Numerical stability. Matrix computations and software systems. Polynomial interpolation. Least-squares approximation. Iterative methods for solving a nonlinear equation. Discretization methods for integration and differential equations)
同属于PhD课,不推荐。
4#
知乎de用户  16级独孤 | 2019-4-11 23:06:10 发帖IP地址来自

5#
知乎de用户  16级独孤 | 2019-4-11 23:06:11 发帖IP地址来自
为何如此脆弱啊。我也是转专业到CS的,高中是文科生,浑浑噩噩地念了一年中文系。然后觉得不想再浪费生命了,大二就转学CS了。
当时转专业面试,老师让我做好挂科的心理准备。
呵呵,不过运气不错,迄今为止没有挂过。(其实也就只有半年的时间)
由于是从大二直接念。。。都不降级的说。。。orz
困难,真不是一般地大啊。
第一学期就学数据结构了,当时我一点都不懂。。。大概就是知道大体模型,然而写代码都不会。因为C++才学。。。然后我有好多次都想申请退选= =但每次想到,都已经坚持这么久了,放弃就太亏了。于是就坚持下来了。。。反正上了一学期的数据结构课,完全不懂。后来我看了哈工大的数据结构网课,基本上每一节课都看下来了。然后总算搞明白了。虽然最后分数太不是太高。。。但是至少觉得一些基本的东西都懂了呢。
然后这学期的计算机组成原理。。。这么说吧,我有时候上课不由自主就走神了,因为听不懂。然后我就强迫自己重复老师说的每句话,然后快速记下来,但是悲哀的是,完全不懂。有一次为了完成作业,看《深入理解计算机系统》到早上6点。然后做作业还是不太懂。。。看书能看哭。。。简直不能更羞耻。但是即便如此,我都没想过放弃啊。因为我一直相信自己还是非常机智的。。。(呵呵)
我的感觉是我们接触计算机的时间太短啦,很多底层的东西不是太懂,所以才会走起来很困难。然而只要把基础打好,以后以后会很好走吧。还有熟能生巧,如果很多东西不懂,就是因为太生疏啦。
上学期学数据库的时候(第一学期学CS就学数据库了。。。简直不能更糟糕的体验)和国防科大的老师交流,他鼓舞的时候就说,只要走过这些日子,这些体验就会成为一生中宝贵的财富。我觉得他说的很对啊,所以常常能坚持下去。
上学期的斗争都是这么令人心酸,过得惊心动魄= =说多了都是泪,感觉熬过这些日子,最后都能感动自己吧。
不过,运气很好的是,我遇到了一个非常好的学弟,然后我基本上每天都问他问题。。。(所以你也找一个很强的同学,然后向他学习。)
我坚持每天写两题leetcode,呵呵,其实哪里是写啊,根本想不出,于是就搜题解,学习。才坚持了17天= =目的大概就是为了增强自己的毅力吧。
然而人毕竟惰性太强,我常常会心生厌倦。什么都不想做,但是过些时间,就会很有激情,然后又能投入到学习当中了。
这学期也过得惨不忍睹,大部分都不会。呵呵。但是人的潜力是无限的啊,只要想学习就不可能有学不会的东西。所以没学好大概就是态度不对吧,有时候太恐惧了,有时候太厌倦了。端正心态,然后一步一步地前进。
反正不可思议的奇迹总是在不经意间完成的。大概就是有问题就一定要问,不想学习的时候就去爽一下,或者干脆睡到爽。然后就努力学习。= =

从来没有什么救世主,
也不靠神仙皇帝,
要创造自己的幸福,
就要靠自己的奋斗啊。

我刚才才在为没有进校队而悲伤,然而机会总是留给有准备的人的,进不了完全就是因为自己没有付出很多。以为会遇到奇迹,然而并没有。不过没事,还有机会,所以充满激情地学习吧。明年不能再错失良机了。
还有啊,虽然遇到过这么多的挫折,我从来没有怀疑过自己不是学CS的料,所以题主你也不要怀疑自己啦。反正这是你的人生嘛。就算爬着过,也要硬着头皮上啊。不过呢,后来你就会发现,其实你很喜欢你擅长的东西了。后来就能产生感情了。
所以,共勉啊,题主!一起加油!!!
6#
知乎de用户  16级独孤 | 2019-4-11 23:06:12 发帖IP地址来自
其实重点不是学科相关你要选什么课,选课当然很重要,但实际上你的问题不出在这里。

你主要是对自己所处的位置和周边环境没有一个比较完善的认识。

简单来说,我觉得你的处境没有你想象的那么糟糕,就我的感觉来说,我身边学计算机的同学大多数都非常痛苦,我上个学期放假的时候有个大我两级的学生听我说下学期要学数据结构,然后说你一定要准备好,最难的一门课,我说我要好好学吗,他说你最好寒假就学会,因为他的一系列表现搞得我蛮紧张的,但我完全没学——但我还是更紧张了。

结果学起来以后,发现是挺难的,但是不是没有规则可循的,实际上是很有趣的感觉——这部分就不说了,重点是想和你强调,其实你的同辈很多都会觉得非常难都非常痛苦,这其实就很直接地说明了,为什么计算机行业薪资水平如此之高——寻求高是一方面,对技术要求比起其他工种可能还是普遍要高,而且具有终身学习的不可避免之处。

但是不是你学的辛苦,你很累,所以你就会在这个行业里失败呢,我觉得完全不是这样的,每个行业都有不同的层次和内化分类,有一些是根据特长来分,有的就是技术高就待遇高,技术差一点就待遇低一点,但是你看看身边的人其实大家都就这么个水平,说难听点,都这个水平,你有什么必要过分担心自己呢?所以也许你不能成为技术大牛,但你可以找好自己的位置,做好自己的事情,也是可以很快乐。

对于我自己来说呢,我对绩点是完全不在乎的,但是人各有志,只是我觉得题主要想清楚自己想做什么,现在到底是一个什么状况,你说老师布置的作业有的助教都不会,那其实就说明难度很高啊,观察观察周围,你没什么好焦虑的,就算你确定你的目标是技术大牛,技术大牛也不是靠焦虑来实现的。

另外说点私货,我感觉现在简单来说,薪资最高的就是金融和计算机了,但是普通从业人员待遇里,计算机行业比金融行业好多了,金融的杠杆作用实在是太强了,而且也是要素质过硬,所以金融高层一些的从业人员来钱快是很有道理的,计算机呢,大家也看到了,学起来都这么费劲,需求又这么大,没什么好担心的,能吃下这碗饭就干这码事儿吧,干不了就换,真别想不开。刚剁手买了点东西,心情亢奋码字释放,祝诸位生活愉快。
7#
知乎de用户  16级独孤 | 2019-4-11 23:06:13 发帖IP地址来自
抱团很重要哈。
有时自己看不懂的东西和队友切磋点拨一下,问题就解决了。有时候你也能解决队友的问题呢。
以后工作也需要团队合作,学校里找人抱团是一个好的练习。

8#
知乎de用户  16级独孤 | 2019-4-11 23:06:14 发帖IP地址来自
(p-2)*(1.5+0.5)+一个modMp的时间?
9#
知乎de用户  16级独孤 | 2019-4-11 23:06:15 发帖IP地址来自
我不知道你是出于什么原因转学CS. 是真的出于好奇心, 一份热情, 还是仅仅为了容易找工作?
如果你是后者, 抱歉, 帮不了你.
但如果你是前者, 我这两年TA生涯中也见过个别很想学好CS的同学. 其实本科阶段的CS并不要求你有多少天赋, 或许要求一些勤奋刻苦, 但最重要的是一份热情.

10#
知乎de用户  16级独孤 | 2019-4-11 23:06:16 发帖IP地址来自
别觉得大神们遇到不会的新知识都是一路碾压过去。大家都是慢慢啃硬骨头。慢慢分析问题找到线索一步一步学习不会的。

给你个安慰,我们项目的神太多了,属于放在世界哪个位置也没人敢说他们智商不行的。遇到老师布置的奇奇怪怪的作业也不都是很懊恼慢慢啃嘛。
11#
知乎de用户  16级独孤 | 2019-4-11 23:06:17 发帖IP地址来自
计算机的确难,我最近学一些简单的编程语言都感觉有点儿力不从心了
建议你不要放弃,相信自己可以的
必要的时候应该可以找一些课外辅导吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:27300
帖子:5460
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP