谢邀。
不知道题主原来是学什么专业的,但鉴于“之前从来没想过学理工科”,转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课,不推荐。 |