首先,你这里指的程序员应该指的是软件开发工程是吧?其实,这个问题,如果问:算法工程师和软件工程师,也就是一般的程序员有什么不同或者有什么区别会更好。其实,只要写程序的人,工作跟程序相关的, 应该都统称 ...
首先,你这里指的程序员应该指的是软件开发工程是吧?其实,这个问题,如果问:算法工程师和软件工程师,也就是一般的程序员有什么不同或者有什么区别会更好。 其实,只要写程序的人,工作跟程序相关的, 应该都统称为程序员。 算法工程师 算法工程师一般分为两类。 第一类是做数据模型进行推荐、分类、识别、预测等工作的建模型算法工程师,也写成数据挖掘工程师、深度学习工程师等。这类大体的工作就是结合业务场景,选择合适的算法模型,将数据进行处理后使用模型获得结果。 第二类就是做针对性方向的算法研究,包括图像、语音、文本等,其囊括了在外界看来很智能的人脸识别、人脸变换、语音生成、语音识别、新闻推荐、智能对话等功能。和第一类的区别主要在于处理的数据非传统的结构化数据,需要进行针对性的处理,比如图像的取点、二值化,语音的要素提取,文本的分词、向量化等等。 通过这两种分类,我们就看出来了,算法工程师的要求比较高,需要有非常好的数据基础和数学能力,统计分析能力,高数,离散数学,线性代数,概率统计,数据分析等都得比较好才可能做好一个算法工程师。 软件开发工程师 也就是一般我们所认知的程序员,一般都是应用层开发的工程师,只要学会编程语言,做对应的开发工作即可,对数学的要求其实不高,相对于算法工程师,脑力不需要太大。 说白了,我们常规所说的软件工程师,其狭义的定义实际上软件研发工程师、程序员等,他们是主要进行软件架构和编码实现,会使用我们常常听到的 JAVA、PHP 等开发语言。 举个简单例子:比如今日头条 App,你所看到的 App 就是有前端,移动端工程师做出来的,而调用的数据就是后台开发工程师在支持。根据不同的兴趣,做推荐,其实是基于算法来建模的,这里算法推荐,建模模块就是由算法工程师来做的。 在IT行业里,学历对程序员有什么影响? 1.高中学历的程序员,就目前来看,大部分的职业上限是小公司的技术leader。或许其中有人凭借人际关系或能力,能自己接业务开公司做老板,但概率不是特别大。 2.大专学历的程序员,上限是中型公司或大型外包公司或有一定规模公司的部门经理。 比如在一些大城市,做外包的一些公司,或者人数在两三百人的中型公司,会要大专学历的程序员,至于一些小微公司,大专学历在里面已经算不错了。 但大专学历,目前来看,可能无法进好公司,哪怕工作经验再久也未必行,除非有其它加分项。 3.本科学历的程序员,在有5年工作经验以后,不论学校,其实就有投大厂外企等好公司的资格。 这个其实当事人自己都未必感知到,但不少大公司收简历时,会默认有一条,至少是本科及以上学历。 4.大专升本,不同公司的认可程度不同。如果有些大公司着急要人,至少专升本的简历,有面试机会。 5.好学校的计算机本科,或者是研究生学历,除了具备投好公司简历的资格外,在竞争一些值钱职位时,其实更有优势。比如当下各种AI职位,或薪资比较高的算法工程师,不少公司对此类职位,除了会看学历,更会看学校。 |