从编程语言、算法、项目等层面深谈读研如何提高技术【转载】

你想进什么公司,和你读什么计算机方向,关系不是很大。只要是理工科的学生,面对技术岗位,其实机会是差不多的。

至于你想什么职位,那显然和你的专业/方向关系较大,比如说很多大数据职位,就明确表示要求你DM/ML/NLP/IR背景,但是这也只是说这些 学生可能更有优势些,事实上,数学和统计学出身的,很多搞这个非常牛逼的。

所以,不要问选什么导师,选什么方向;也不要问我的实验室很水老板很菜我还能找到好工作吗?你要问的是:我想毕业去互联 网公司,我读研的这几年是应该打酱油呢,还是打地沟油?

想找一个好的互联网技术类、研发类工作,无非就是以下4点,你任选一点,做好了,都是有利的,哪4点?

  • 语言层面
  • 算法层面
  • 项目层面
  • 专业层面

具体分析如下:


语言层面

你是想搞C++还是Java?选定一门语言后,多看一些这方面的书。

C++,不用说了,《Effective C++》《More Effective C++》《Inside The C++ Object Model》等等。

Java,最好能看点虚拟机相关的。尤其是Java虚拟机的内存管理。以及多线程、线程池、设计模式等。

问题来了:学C++好还是学Java好呢?语言争论每天都在发生,真的好无聊。建议按照方向和兴趣来选择,不靠谱的说:

如果是想做大型游戏开发、底层研发、系统研发、驱动研发等等,就选用C/C++

如果是想做网站开发、网络研发、上层开发、Android开发等等,就选用Java

顺便说一下,有空可以学学Python


算法层面

学好算法。这个有两条路,最好是并行,那就是看书和做题。

看书的话,主要有《算法导论》、《算法》(Robert Sedgewick著)、《算法竞赛入门经典》、《挑战程序设计竞赛》

找一本认真看,认真思考。证明过程可以不看,但是算法思想最好能懂,以及实现,最好能在纸张上写出来。复杂度总要知道吧?

研一的时候,我就把算法导论上的很多算法,都自己亲自coding了下。

特别复杂的数据结构,比如红黑树、B树,没空就别搞了。互联网面试一般都不要求的。

主要是排序、查找、简单DP、贪心、图算法和搜索。 根据身边同学的面试经验,二分搜索和快速排序,是面试常备了。看书的时候,如果有 时间,可以思考几个问题:

  • 这个算法的时间空间复杂度,各是多少?如何分析?
  • 工程实现里,都有哪些trick?如何加速?
  • 这个算法可能用在哪些方面?有哪些应用?你比如说吧,求交集的算法,就广泛用在倒排索引、新浪微博共同关注、计算Jaccard系数等 等上。

除了看书,还有就是很重要的:刷题啦。主要有pojzoj等。找一个网站,认真刷一些题目,踏踏实实的,别浮躁。


项目层面

如果实验室比较牛,基本上忙项目就足够累死累活了;不过做了相对给力的项目,对于找工作,还是有很大帮助的。基本上不用怎么愁了。 如果老板这儿没项目呢?

如果实验室比较水,那就尽量去实习。大公司的实习经验很能给简历加分。如果老板不让你出去实习。既然实验室很水,说明自由时间 比较多,那还是可以干很多事。比如说,github上就有很多开源项目,你可以选择一两个著名的,阅读源码,然后尝试自己也参与进去。

说几个我比较感兴趣的开源项目吧:redisspark


专业层面

你对数据挖掘很精通,你对推荐系统很熟悉。你在NIPSSIGIR上发表论文无数;你是百度推荐大赛,阿里巴巴大数据比赛冠军常客。

也就是说,除了尝试发顶会论文,还可以参加各种比赛。本专业本领域里都有什么比赛可以参加呢?搜一下微博或者知乎,或者问下师兄师姐,不就知道了?

专业层面,可以做的东西非常多。比如,你对数据挖掘很感兴趣,那么数据挖掘中的常见模型,我们了解多少?机器学习,我们掌握到什么程度了?举个例子:

  • SVMlogistic regression这两种model,有什么特点?各自的适用场合?
  • feature selection的常用方法有哪些?为什么lasso可以作为feature selection
  • Adaboosting为什么不容易over-fitting?你能不能从statistical view来解释解释?
  • 哦,你和我说,你不是搞学术研究,你反感Learning Theory,你说你是一个工程师,那你写了多少代码?

scikit-learnweka,以及spark,你会用哪个工具?(熟悉一种工具)

你有自己下载一些数据集跑跑实验吗?你有参加一些大数据相关的竞赛吗?(动手实验/参加比赛)

专业层面,能做的,要做的,还有很多。

哦,最好熟悉下linux的基本使用。


最后的话

如果能在读研期间做到这里的一点或者几点,到时候甚至不需要翻《编程之美》或者leetcode就毫无压力啦。 最后说几点个人感受。

  • 算法牛,项目牛,长得又帅,又精通很多语言,这种人,是不多见的。

也就是说,你想拿一个好offer,一般只要有一两点突出,就可以了。

  • 互联网面试,除了个别公司个别面试官,一般都是要考查(考查?考察?这两个词有什么区别?考察是调研、研究、分析的意思)算法的 。你研一的时候准备,看书做题,总比研三的时候抱佛脚来的好吧?

况且,算法的学习,也不仅仅是为了面试吧?可能是受益终身的。或者,吹牛皮装逼作为谈资,也是可以的。

  • 别轻易说我就要去某某公司。到时候,你会发现,选择比你想象的多。

也有可能比你想象的还少,为什么?

就看你有没有做到我上面说的这些了。

Posted by Yebangyu Oct 17th, 2015 2:34 pm

转载自:http://www.yebangyu.org/blog/2015/10/17/whattodoinmaster/

时间: 2024-10-25 19:48:24

从编程语言、算法、项目等层面深谈读研如何提高技术【转载】的相关文章

(转)技术人,不要总在很初级的层面上谈管理

无意间瞄到<[畅言]管理是权力的游戏吗?>,引起了我一些“新仇旧恨”,就也来吐槽一把.但吐槽的点倒不是权力不权力的,这是一点意思也没有的问题,在大多数人这个层次上(包括大多管理者)谈权力,形象来讲就和一般人老想象皇帝每天吃猪肉炖粉条一样,差太远,扯下去也没意思. 我想说的是技术人对管理的认知. 遇到问题谈问题 层次性很差 最常见的谈管理场景是一个人从技术转到管理岗位,接下来实践了几个项目,有成功的也有失败的,总结了经验后,就开始分享管理的成功经验.我偶尔翻到很多关于管理的文字都给我这么一种感觉

百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

百度为何开源深度机器学习平台? 有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举. 5月20日,百度在github上开源了其深度机器学习平台.此番发布的深度机器学习开源平台属于"深盟"的开源组织,其核心开发者来自百度深度学习研究院(IDL),微软亚洲研究院.华盛顿大学.纽约大学.香港科技大学,卡耐基·梅陇大学等知名公司和高校. 通过这一开源平台,世界各地的开发者们可以免费获得更优质和更容易使用的分布式机器学习算法源码,

《浅谈JavaScript系列》系列技术文章整理收藏

<浅谈JavaScript系列>系列技术文章整理收藏 1浅谈JavaScript中面向对象技术的模拟 2浅谈javascript函数劫持[转自xfocus]第1/3页 3浅谈javascript 面向对象编程 4老鱼 浅谈javascript面向对象编程 5浅谈javascript的数据类型检测 6浅谈Javascript嵌套函数及闭包 7根据一段代码浅谈Javascript闭包 8浅谈JavaScript编程语言的编码规范 9浅谈Javascript面向对象编程 10浅谈JavaScript

机器学习Spark Mllib算法源码及实战详解进阶与提高视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

从程序员到项目经理(26):项目管理不能浑水摸鱼【转载】

怎样才算是一名合格的项目经理?最根本的一点,就是要胸有成竹,否则管项目就好比浑水摸鱼,最后的结果就是得到一只死鱼! 成功的项目经理都有一个共同的特征,那就是胸有成竹.如果做不到这一点,意味着项目经理缺乏总体的盘算,只能走一步看一步,项目究竟会走多少弯路,那就只能看运气了. 1.胸有成竹是项目经理胜任的标志 顾名思义,胸有成竹就是说一个画家,在画竹子之前,心里就有了竹子的形象,画家所做的,只不过是把心里所想的东西,誊到纸面上而已,当然可以做到驾轻就熟.游刃有余了. 胸有成竹是对一个优秀画家的要求,

Unity教程之再谈Unity中的优化技术

这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的”顶点处理“一项.这里的几何体就是指组成场景中对象的网格结构. 3D游戏制作都由模型制作开始.而在建模时,有一条我们需要记住:尽可能减少模型中三角形的数目,一些对于模型没有影响.或是肉眼非常难察觉到区别的顶点都要尽可能去掉.例如在下面左图中,正方体内部很多顶点都是不需要的,而把这个模型导入到Unity里就会是

项目上线后,谈一下感触比较深的一点:查询优化

前言 开心一刻 儿子有道题不会做,喊我过去教他.我推了推一旁的老公:我头疼,你去吧.老公不动,我:零花钱涨一千.话音刚落,老公就屁颠屁颠跑去儿子房间.进去不到几分钟,一声怒吼伴随着儿子的哭声传来的瞬间,老公从儿子房间出来,边走边说:“朽木不可雕也.”儿子从房间探出半个身子,一脸委屈:“爸爸也不会做,他说给我一块钱,让我明天早点去学校抄同学的.还让我不要告诉你,我不肯,他就吼我.” 问题背景 前段时间,被紧急调到一个新项目,支撑新项目的开发.跌跌撞撞之下,项目也正常上线了,期间收获颇多,无论是业务

深谈社会贡献模式,全球首个NGO区块链项目NGOT提出新“贡献即挖矿”理念

(关注微信号[NGOT中文社区],即可领取价值580元的区块链行业图书) 7月15日,全球首个NGO区块链产品NGOT,在京举办产品发布会,并开创性的提出"贡献即挖矿"的新型社会参与模式.NGOT希望运用区块链技术,带动更多的社会组织与个人参与社会活动,扩散社会正能量.相信,在区块链技术的驱动下,未来将会出现更长远.更合理的社会贡献模式. 区块链技术,群众参与社会监督的途径区块链技术可理解为是一个分布式的记账账本,借助于区块链技术去中心化.不可篡改等天然特性,记录所有信息并实现无法篡改

寻找软件开发高手,开发影像测量系统和算法项目

影像测量系统的算法,包括几何特征(点,线,圆,椭圆,曲线,槽等)的提取,软件的交互,相机的标定算法等.注意:是测量系统相关的技术,而不是某一个具体的测量项目. 注:仅限于高校研究团队,具备丰富经验的软件工程师或者视觉测量软法工程师接洽. 有意向者请通过http://www.xianjichina.com/require/4484.html联系哦