㈠ 我不想当程序员,自己更倾向于搞一些底层或算法的研发,大学这四年该如何规划呢
算法的话,《算法导论》自然是重中之众,如果有时间可以尝试去搞搞acm比赛,在oj上做习题,参加算法比赛,多看stackoverflow之类的网站,关注一些算法牛人,看看大家都在做什么,看一些machine learning和artificial intelligence的东西
㈡ 计算机搞算法和搞开发的区别
第一点:因为开发是要做功能的开发,虽然开发的难度没有算法的难度高,但是开发的工作量比算法的工作量更多,开发是有时间的限制的
第二点:算法是没有时间限制的,算法是对功能的一种优化,不需要实时的运用到实际项目中去。
综上所述两点可以得出的结论是开发的加班多一点。
㈢ 算法和开发岗相比,哪个前景更好呢
这两个岗位的工作内容我都接触过,目前我带的大数据团队中既有算法工程师也有开发工程师,所以我说一说这两个岗位的区别,以及未来的发展方向。
算法设计与算法实现
通常涉及到算法的岗位有两个,分别是算法设计和算法实现,现在有不少团队把这两个岗位进行合并,做算法设计的同时也要负责实现。但是也有一些团队是分开的,做算法设计的不管实现过程。
算法岗位门槛是很高的,人才也是稀缺的,总体发展空间很好。还有一点算法岗位的不可替代性强,如果有机会去算法岗建议是去的,一般学历要求在硕士,Java本科大专都是可以的哈。从工作的复杂性上来说,算法工程师的工作强度还是比较大的,但是算法工程师的职业周期也比较长。
算法岗主要是在于如何量化我们的产出,写代码做开发非常简单。你完成了一个任务或者是项目,有了经验之后,这是在简历上实打实的东西。很多算法工程师最终成长为企业的首席科学家,或者是首席技术官等岗位,可以说算法工程师的发展前景还是非常不错的。
开发岗位
软件团队的大部分岗位都是开发岗位,有前端开发、后端开发、移动端开发等,可以说大部分程序员做的都是开发岗的工作。
与算法岗位不同的是,开发岗位人数多,占比大,而且大部分开发岗位的职业周期都比较短,一般开发岗位在做到一定年龄(比如35岁)之后都会转型。一部分会转向项目经理等管理岗位,一部分会转型做架构师,还有一部分转型为行业咨询专家等,当然,也有一部分开发人员转型为算法工程师。
一个优秀的开发者不是网上说的那样吃青春烦的,每一个岗位都会有自己的未来职业发展。开始确实是青春饭,因为大多数人不懂如何提升自己在公司当中的潜在价值,或者不知道如何更加聪明的完成任务。
其实两个岗位没有什么可比性。聊聊这两个岗位的突出项,开发门槛不很高的,算法就相对高一些,因为涉及大数据人工智能等等。现在做算法的话,5年左右基本会成为专家,给别人讲,因为大多数的人是不太懂算法的,所以会觉得你很牛。收入上来说,算法的收入是高于开发的。创业的话,大白话就是算法其实是更容易给别人讲故事的,而且相对产品来说,算法是更容易形成产品的。
㈣ 研究生做算法还是开发
研究生做开发的比较常见,做算法的比较少,很多公司算法岗的hc比开发岗少很多,足以见得算法岗的难和门槛高。
㈤ 做研发好还是做数据挖掘或算法好,或者说哪个更有前途
这个看怎么说,事实上如果你做得比较浅,都很容易,因为门槛低。也正因为这个所以你能做,别人也能做。因此谈不上什么前途。但你如果做得深,那基本都不会太差。
㈥ 算法工程师、研发工程师、软件工程师都是什么
算法工程师是利用算法来处理事物的人,根据研究领域,主要包括软件开发和软件开发方面的知识和知识,它主要包括对软件开发的知识/视频专业进行加工的工程师,软件开发的工程师和软件开发的工程师需要有丰富的经验。
研发工程师是从事某一行业的专业人员,系统地研究和开发一些不存在的东西,并且有一定的经验,或者改进已经存在的东西以达到最广泛的工作目标的程序员,它需要强烈的好奇心,喜欢新的东西,有趣的学习。
软件工程师是从事软件专业的人的专业能力的认证,它表明他具有从事工程开发的系列的相关工程师的集体资格。
(6)算法研发是做什么的扩展阅读:
算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。
研发工程师创新意识:
思路开阔,能从市场、用户和生产工艺角度考虑产品开发。唯技术至上的人,思路狭隘,即使聪明过人,只能扮演一个处理具体问题的小角色。企业的唯一目标是赚钱,能赚钱就是好产品,不能赚钱就等于零。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。
㈦ 软件开发是做什么的
软件开发的内容是:需求、设计、编程和测试!
需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据……为了清楚地知道这些需求,你经常要和客户、项目经理等交流。
设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。
编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。
测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。
软件开发中,客户和开发人员都有自己的基本权利和义务。
客户:
定义每个用户需求的商业优先级;
制订总体计划,包括用多少投资、经过多长时间、达到什么目的;
在项目开发过程中的每个工作周,都能让投资获得最大的收益;
通过重复运行你所指定的功能测试,准确地掌握项目进展情况;
能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调整项目计划;
能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是合乎要求的,正在进行或未完成的的工作则应该是不难接手的。
开发人员:
知道要做什么,以及要优先做什么;
工作有效率;
有问题或困难时,能得到客户、同事、上级的回答或帮助;
对工作做评估,并根据周围情况的变化及时重新评估;
积极承担工作,而不是消极接受分配;
一周40小时工作制,不加班。