想在美国找CS软件工作?Warald提供需要学习的书籍和课程名单!

avatar 2
Warald
473929
422

计算机(CS)专业在美国最好找工作已是共识,Warald在《1point3acres.com》中已经指出。现在想找计算机软件工作的人很多,各个专业学生都有想转CS的。关于该如何动手、该学习哪些知识,网上有各种推荐、众说芸芸。


周星驰版的《鹿鼎记》里,陈近南指着高高的绝世武功书架,对不会武功的小宝说:我是看了三年,练了三十年,才有今天的境界。Warald不会像陈师傅那样,不会对着薄弱甚至零基础的你,潇洒指一下算法导论、career cup、leetCode,然后做高人状飘然而去,留下你硬啃天书~


Warald希望提供一个可行也相对容易实现的学习计划,希望你能从入门学起、循序渐进。Warald综合各种信息,针对如何在美国IT公司找工作,给出了下面这个书籍和课程名单。

如果你基础很好,读算法导论易如反掌、应付各种面试题目不在话下,那你当然应该跳过这个文章,早点去搞定工作。Warald敬请您在找到工作之后,来1point3acres.com分享一下经验、提供一下公司内推,帮帮其他人。


先说两个网站,一个是udacity.com,一个是coursera.org,都提供免费的在线公开课程,很多功课全球几十万人一起学习。



《第一阶段》筑基


如果你不知道什么是for/while lopp、不知道什么是list,建议你先上这门公开课:
UDacity CS101:Introduction to Computer Science/Building a Search Engine
udacity.com

学完了以后,好歹对基本的programming control flow, very basic data structure熟悉一下。绝大多数的理工科学生,本科期间是上了C语言的;如果你是美本,很可能上过其他编程语言,这就算消除了零基础了。



《第二阶段》入门

你必须先学Java和SQL,Warald推荐的书籍如下:

1)Head First Java

目前市面上要求Object oriented programming尤其是Java的工作是最多的。这本书最大的优点就是容易读懂,无论是内容讲解还是大量图片设计,都非常容易理解。

Amazon链接:

amazon.com

Preview


2)A First Course in Database Systems,作者是Jeffrey D. Ullman, Jennifer Widom

用SQL查询数据库是基本技能。基本上你会英语就能读懂这本书、学会SQL。这本书Amazon上也有,链接:

amazon.com

Preview


Warald非常推荐转专业学CS的同学从这本书入手来培养兴趣,计算机/管理信息系统甚至Business/Marketing等行业,有些人的日常工作就是用SQL处理数据。coursera之前有过Daphne Koller的database公开课,貌似下面要换成Jennifer Widom来教(class.coursera.org),上这门课程也可以。

读完这两本书,下面你要继续学Java和数据结构:


3)Data Structures and Algorithms in Java

Warald推荐Berkeley CS61b:cs.berkeley.edu 使用的课本如下:

amazon.com

Preview

Preview


据joyce在一亩三分地里说,这个老师是berkeley计算机系本科教课最清楚的老师之一,所有的lecture video都在youtube上,notes都可以自由下载。作业和projects也都在网上,可以自己练习。这门课程是给大一新生上的,并不高深,里面推荐了head first java,也推荐了Data Structures and Algorithms in Java。

[align="left"]另一个选择是coursera的algorithm课程,Princeton大学Robert Sedgewick教授开的,算法跟数据结构都有了,作业不错,也是用Java,以前开课时一亩三分地里有人组织一起上课:1point3acres.com。最近正好在开Round II。[/align]
[align="left"]公开课最大的好处是可以得到及时的feedback,而berkeley的CS61b这类传统的video下载观看模式,你只能闷头做题,作对作错都不知道。[/align]

如果你们学校有类似课程,你可以去选课或者旁听,但是一定要做作业、练习编程!否则这门课就算是白上了!

熬到这里为止,你已经具备最基本的能力了!如果这些你早就会了,恭喜!你的书没白念!

下面Warald建议你更深入的学习Java:

4)Thinking in Java

这本书很经典,但是不适合作为入门书籍。学完了前面两本java书,你可以翻着看看这本,会有帮助。
amazon.com

Preview


然后是一个重头戏:

5)Programming Interview Exposed


这本书籍不是“课本”,不是“课程”,而是教你做各种常见面试题目的。

amazon.com

Preview


很多人来问Warald:我是小白,请问该如何准备面试求职?这本书就是我的回答。熟练掌握这本书籍的内容,是你找到工作的基础。

完成了上面这五步,你就已经具备了在美国找工作的基本条件了;尽管没人敢保证你一定能找到工作,但是即使只会这些,你已经“有可能”找到工作,尤其是不瞄准google、facebook等热门公司,或者找对软件开发技能要求不高的工作。

各位同学,计算机/CS和其他专业一个很大的不同,就是容易上手、容易自学成才!你不需要焊电路板、做化学实验(这些都需要设备和钱),下载电子书和免费软件,spend your time,use your talent,就可以了! 你离在美国找到工作的距离,可能只有这五本书的厚度。



《第三阶段》进级

要全面扎实的掌握计算机学科知识,要想在找工作的时候稳拿offer、获得更多更佳的就业选择,当然不可能只学前面的五本书。基础教育可以有稳定可循的套路,而往高处进级就复杂了,有些人也未必能训练出来,否则岂不是人人都去google、linkedin、微软工作了?

从找工作的角度来看,下面是你应该做的:
6)刷cracking the coding interview和leetcode题目


前者是本书,带答案讲解:

amazon.com

Preview


一亩三分地论坛有个编程算法面试题专版(1point3acres.com),近期有人组织大家一起刷题讨论:1point3acres.com

同时,Warald建议你继续在udacity和coursera上课比如machine learning和algorithm,学了都会很有帮助。如果你在本校选计算机课程没选上,那更是应该利用这种免费的机会,听斯坦福等牛校牛人讲课。

对于在美国读书的同学来说,进入这个进级阶段,往往也是你在美国读书的中晚期了,你已经上了网路、操作系统、软件工程等课程,简历逐渐充实了,甚至对于将来做哪个行业或者方向也大体有眉目了,然后就是根据自己的兴趣,补充该领域的专业知识了。


地里很多同学表示:网上信息太多,书籍太多,不知道看什么好。地里很多人推荐过其他书籍,举几个例子。操作系统方面,1point3acres.com


本书有一个优点,就是每个方面只讲必要的东西,过于深入的细节都没有太讲。。。但是还是太多了。。。我觉得还是看面啥公司,有针对的看一看就好吧,比如面硬件的公司,尤其是写c的,就要去了解下一个program在内存里是怎么构成的,static变量存在哪,stack在哪heap在哪blabla;面pure storage就去看看memory和disk。。。。然后多线程,设计hashmap我觉得还是有必要看一看的

传送门:

amazon.com


OS还有另外一本赞誉很高的书籍,传送门:

amazon.com



最后,Warald提醒:
1)如果你要在美国找工作,看书就看英文的。
2)如果要来讨论A语言比B语言好啊,C书籍比D书籍好啊,D功课讲的太浅啊,请去一亩三分地EECS专版或者编程算法面试题版块里找共鸣。Again,Warald提供这个名单的目的,是从在美国找工作的角度,循序渐进、从入门讲起,而且我也只讲较为主流的Java路线。
3)无论别人提供的书籍和课程名单有多好,最终还是要靠你坚持不懈学下来。

继续阅读1point3acres.com

  • 1869
置顶回复
收起
avatar 2
Warald楼主
xiayuan0623 发表于 2013-2-15 09:55 1point3acres.com
....这流程是纯为了找工作而转CS么。。。

个人觉得如果不是特别喜欢写代码还是不要为了在美国工作专门刷 ...

我不打算劝所有人转cs;要不要转,自己拿主意。
这个帖子的读者应该是已经决定要转cs的,我这里提供how。
422条回复