四星组选4,有什么怎样成为算法工程师可以快速掌握??有什么可研究的攻略吗?

  • 扫描二维码,关注牛客网

  • 下载牛客APP,随时随地刷题

刷真题、补算法、看面经、得内推

使用第三方账号直接登录使用吧:

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器
}

导语:算法工程师是互联网领域比较热门的职位,随着大数据技术的火爆,推荐系统和机器学习等大数据相关领域获得了大量的关注,也让算法工程师的人气指数大大提升。那么做算法研究需要掌握哪些技能?算法工程师究竟拥有着怎样的工作和生活状态?做算法和做应用开发有什么区别?本次访谈将为您一一揭晓。

本期采访对象张叶银@,84年生人,毕业于中科院自动化所模式识别专业,现在搜狗从事数据挖掘方面的算法研究。谈起喜欢的数学及算法,眼睛里闪耀着欢喜的光芒。但工作之后的快节奏和绩效方式,也让研究型的他感觉到了一丝落差。且看他如何在小伤感过后重新出发,继续寻找工作的成就感和平衡点。

整个流程做下来之后,发现真正有意思的地方,是用自己的想法对数据进行建模,就这样慢慢产生了一些兴趣。

  • 技术人攻略:先谈谈你的工作和学习背景,你是怎么进入到算法这个领域的?

我研究生在中科院自动化所,实验室的方向是机器学习和模式识别。进去之后开始做视频中人的行为分析,分析视频的内容,识别这个人在做什么样的行为,从根本上讲,就是分析图像视频数据,要怎么才能输入到一个数学模型里面去,怎么去定义人的动作,怎么让模型输出我们想要的结果,也就是人的行为意图。人的行为其实可看成一个时间序列,上一时刻和下一时刻的姿势是一个串起来的过程,联系到数学就是一个随机过程,连续姿势的转移可看做随机过程里的随机变量,随着时间的变化进行建模。做这样的数据分析会涉及到一些算法层面的东西,比如说给数据建模需要分析特征,看效果好坏。整个流程做下来之后,发现真正有意思的地方,是用自己的想法对数据进行建模,就这样慢慢产生了一些兴趣。

刚开始我会按照师兄师姐的想法做一些底层的技术实现,主要是编码。会用到Matlab,它集成了很多矩阵运算、信号处理、数据分析的类库,用起来很方便,能很快看到结果。把模型建起来之后要应用到工程实践中,实际中应用,工业场景中需要完整系统,需要用C及C#编程。做完整个过程,详细了解了怎么从第一步到最后的实现,就开始尝试做一些小的改进,再后来是慢慢尝试做一些模型的改进。

研二开始写文章,涉及特征选择、模型的改进、数据的验证,比较模型的精度和效率。自己也需要推导一些公式,当然不是那种惊天劈地的推导,也是从一些小的地方开始,慢慢做改进,不是一下子把模型的整个结构都改进了。

  • 技术人攻略:是否也涉及到参数的调整?

参数调整是一方面,参数其实可以让机器去调整。人工调整主要还是特征的处理和模型的选择。不同的模型针对不同的数据效果是不一样的。模型的选择一方面靠前人的工作总结,另一方面靠个人经验,衡量的标准是综合效果和运算效率。模型不是选择效果越好的就越能实际应用,要在现实和理想之间平衡,选择折中的方案。因为很复杂的一个模型,可能在实际过程中并不是最好用的,虽然发论文的时候论文非常漂亮,但是真正用的时候和实际数据差距比较大,效果并不一定好。

研二发表了一篇国际会议的论文,研三开始做期刊论文。期刊要求文章比较有系统性,从数据到模型都比较完善完备,改进要比会议的要求更突出。一篇会议文章大概是A4纸7-8页,期刊估计能到20-30页。研三写期刊一直写到毕业,没写完,工作之后花了半年时间写完了,后来也发表了。

  • 技术人攻略:数学知识很重要吧?

模型要用到很多数学知识,例如建模的时候,数据要从高维的空间导到低维的空间,会用到矩阵分析的知识。矩阵分析是线性代数的高级版,需要很强的空间思维能力,矩阵分析会把向量做各种各样的变换。像计算广告里面提取上亿的维度的特征,一般都会做特征变换再扔给模型去学习。有一门很难的课,叫泛函分析,全是抽象的东西。空间的概念就已经很抽象了,泛函分析中用一个符号代表空间,这个符号还要跟其它各种表示函数或空间的符号算来算去,还有函数的函数,的确很难理解。

刚开始工作心理反差挺大的,从学校到公司,以前的那种豪情壮志被磨灭了,会感觉当初的理想慢慢远去。相比学校里做研究,公司做事的节奏很快,短期内就需要有所产出,仍像做研究那样去工作是行不通的。

  • 技术人攻略:说一下工作的情况吧?

刚开始工作心理反差挺大的,从学校到公司,以前的那种豪情壮志被磨灭了,会感觉当初的理想慢慢远去。相比学校里做研究,公司做事的节奏很快,短期内就需要有所产出,仍像做研究那样去工作是行不通的。目标定的更实际更具体一些,比如每周会有一个checkpoint,避讳空泛的做事情。像做研究那样长期的专研结果不可预期的算法已经变得不太现实。这和之前的理想状态有些反差,学校里学到的东西很少能派上用场。不过,有压力就有动力,经过一段时间调整,工作会让你变得专注和高效。经过一段时间的适应,开始在工作中找到成就感,当你亲手做一个产品让用户使用以及广泛好评时,是自己工作价值最直接的体现。

其实公司的工作环境和团队的氛围对于个人的成长非常重要。比如学校实验室的氛围会影响学习的效果,工作之后的团队也有各种文化风格,这会影响每个人的工作态度及方式。在一个好的团队,自己做事也变得比较积极、主动,进步会很快;如果在一个做事敷衍了事,只会拍马屁的团队,也会慢慢有这样的习惯。所以刚毕业找工作的人,不能光看表面上的东西。别人眼中好的公司,也并不一定适合你。看到某公司非常好,但是你去了之后感觉并不是那么的好,你真正加入的团队,才是影响你工作方式非常重要的因素。

  • 技术人攻略:现在还有热情吗?

碰到一些好的点子还是会激发自己的热情。关注最新的一些技术驱动的产品和文章,会不断激发自己的灵感。多了解一些实际应用的例子,比如google为什么能预测电影的票房,这个就比较有实际意义,做起来有热情。

  • 技术人攻略:你未来两到三年有什么想法,有没有想过自己创业?

未来两三年还是想在技术方面提升自己。关于创业暂时还没有特别好的想法,看了一些创业的例子,感觉就是一个简单的点子,然后把它做到极致。不一定要和我现在做的有很直接的关系,也不一定要用到很深厚的理论,可能创业更多考虑的是用户,以及卖点在哪儿。

  • 技术人攻略:应聘算法工程师和开发工程师有什么区别?

技术面试都会涉及基础的数据结构和算法,一般来说,面试比如会问一些树,链表等数据结构,排序、动态规划等也是常考的算法。

区别还是对数学的要求不一样,有些公司要考察对数学模型的理解,面试官会问你常用的机器学习模型,问模型的原理是什么,有时候会让你把公式写出来。工作中不同的地方在于做事的方式不一样,算法更侧重于数据和效果,系统开发工程师更注重稳定性。不过说到最后,不管是做算法,还是做系统开发,工作的意义都是一样的,只是侧重点不一样。

  • 技术人攻略:你平时有哪些兴趣爱好?

没有什么特别的爱好,什么都能玩,也都玩得不好;平时比较宅,有时候看看电影,上上网;运动的时候去喜欢去爬山,游泳。


技术人攻略访谈是关于技术人生活和成长的系列访问,欢迎和我们有共同价值观的你关注“”,邮箱 ,新浪微博 @,希望能成为技术人成长的精神家园。 欢迎通过微信公众账号关注技术人攻略

}

首先我们看下产品经理的主要素质和必备能力: 1.需求分析能力 2.产品设计能力 3.运营推广能力 4.项目管理能力 1.需求分析能力:楼主已工作六年,在传统的通信行业做产品经理,说明楼主对通信行业是很熟悉的,同时对需求分析和需求收集也很熟练,第一种能力,需求分析能力,楼主是没有任何问题的。<br/><br/> 2.产品设计能力:这便是楼主的硬伤,如果是通信行业,楼主可能比较熟悉,但楼主作为解决方案工程师,可能更多的是熟悉后台,并不是很熟悉前端以及用户行为,这些都将成为楼主的屏障,楼主需求多切换视角,用互联网的思维和眼光看待你曾经的行业;如果是非通信行业,那么楼主可能将付出更多的努力了,首先得熟悉行业,其次才是熟悉产品和用户; 3.运营推广能力:如果卖东西是们学问,比起楼主之前给企业做解决方案来说,给最终用户的方案和产品会更多的考虑体验和用户,同时,推广的渠道和方式也有差别; 4.项目管理能力:这个管理能力我觉的主要是两方面:一是进度,二是资源,首先楼主得保证产品研发的进度,不能使产品出现延后、残缺、废掉的可能;二是楼主需要协调各类资源,包含了开发、测试、美工、前端等各方面的资源来一块帮你完成产品的设计和开发,以及最终的上线。仔细看了下这是我自己2014年提出的问题那时候无比彷徨,经过了2015年工作,感情的双重摧残,题主我还是挺了过来,如今在一家准一线IT公司做iOS高级开发工程师。<br/><br/> 我其实和你情况差不多,目前已经入职做iOS开发。<br/><br/> 如果你时间充裕,建议你自学或参加培训再找相应的工作机会,最后辞职。<br/><br/> 至于待遇方面,大城市机会多,说不定可以平薪甚至加薪跳槽。当程序员转行去做销售(转自百度文库) 在我 上一篇随笔 中,发表了一些感慨,放着好好的程序员不做,转行做了销售,没想到,有好几个朋友给 我留言,讨论怎么转行做销售。<br/><br/> 我觉得对于还在程序员岗位上奋斗的朋友,如果您有计划或者有想法转行去做销售的话,有几个事情是需 要注意的,毕竟销售员和程序员是完全不同的两个职业,两种不同的职业状态。<br/><br/> 也有时候当程序员在家上网 聊天泡 MM 的时候, 或许你们的销售员正在公司通宵加班做标书准备投标文件, 因为第二天就要赶去投标, 而客户发标时只给了两天的准备时间。赞数最高的已经说了大部分人要说了的答案了,产品经理,运营,交互设计这些还是稍微和产品相关的,可以考虑一下,尤其产品和运营是大部分没有技术但是想投身互联网行业的同学选择的职业,不过这几个岗位也并不是完全不需要专业知识的,比如产品经理: 短期来看,你得会或者了解几种原型设计的软件,比如Axure,也得会写产品需求文档、竞品分析之类的,而且得有几篇拿得出手,可以给面试官看的,这些都是要学习的,而且学这些的目的不是为了单纯地学会,而是要有自己的感觉和想法,不是人云亦云,所以也要花费很多心血和精力; 长期来看,你得经常关注一些互联网新闻,关注最近火爆的一些产品,或者一些牛X的产品经理的动态(知乎上很多),这个过程是为了培养你对产品需求的把握和敏感以及对产品发展潮流的把握,平时可以上36Kr关注一下最新的互联网动态,这些是需要长时间积累的。


}

我要回帖

更多关于 怎样成为算法工程师 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信