浙江铃声推荐联盟

【学生必看】互联网职位大起底(一)-工程师篇

疯狂IT人2019-05-03 14:42:35

临近毕业季,很多在校的学弟学妹们正在忙着求职,互联网行业马上会接收到一波新鲜的血液。作为职场老司机,我非常期待各位学妹们的到来……咳,学弟们也一样。互联网公司分工明细、职位众多,很多同学们在求职的时候肯定会碰到职位选择方面的问题,为了让大家的选择方向更为明确,老雕虫将在近期用一个系列的文章为大家起底互联网公司的各种职位,以及附上个人的一点关于职位选择方面的小小建议。欢迎同学们阅读!


请大家坐好,老司机要发车了。


后端工程师/研发工程师/RD

岗位职责是对软件后端服务的研发/维护/性能调优等工作,服务对象包括市面上的各类C/S、B/S结构的软件,例如app、H5、网络游戏、网站等。后端工程师需要对数据接口进行统一的封装,并且实现绝大多数的业务逻辑,无论是app还是web,都需要通过某种格式的协议向后端服务获取数据。说简单点,我们用到的软件看不见的部分,绝大多数是后端工程师实现的。


后端工程师除了后端服务的代码编写,还需要负责日常对服务接口的监控、调优等工作。后端工程师职位所涵盖的知识面相当广,除了要熟练掌握数据库、NoSQL、网络协议、编程语言和框架以外,还需要对数据结构和算法有一定的理解和运用。


后端工程师比较常用的编程语言是Java 、PHP、Nodejs等,近几年Golang异军突起,在程序员圈子里也有了不少的拥趸。无论是Java还是Nodejs,并不单纯指的是语言本身,而是包括了语言背后的整个生态系统,无数框架、中间件、开源软件支撑起了这样一个生态系统。 目前国内Java的龙头老大是阿里,阿里有着十数年的Java生态系统的技术积淀;PHP在百度用得比较多一点;Golang在七牛云和B站是主流的开发语言。


后端工程师学习周期长,需要对各方面的技术都有所涉猎并能够灵活运用。如果想入后端这个坑,老雕虫建议同学们不光要重视知识的广度,更重要的是对某一项技术做较深的研究,比如数据库、网络协议、算法等都值得长期的学习和积累。 总之要记住八个字:“技术全面、特长突出”。


那么问题来了——


前端工程师

与后端工程师相对应,前端工程师主要负责用户能看得见的部分。一般意义上的前端工程师都指的是web前端,他们主要负责产品的微信公众号、H5页、网站以及app内嵌的H5等。


前端工程师所关注的重点在于页面的布局、特效实现以及前端组件的统一封装。html、css和javascript是他们要掌握的基本技能,前端框架方面,目前ReactJS、VueJS等MVVM框架独领风骚,网页特效方面SVG、d3.js等技能也逐渐被人重视。


前端技术框架繁多,“门派”丛生,而且新技术层出不穷,需要从业者保持数年如一日的学习精神,否则很容易被行业淘汰。例如前几年流行的jQuery在当前已经成为昨日黄花。

所以,老雕虫给想要从事前端方向的同学们的建议是,始终保持对新技术的浓厚兴趣和学习能力。当然,前端工程师相较之下更需要耐心和细心,这也是很重要的。


IOS/Android开发工程师

随着移动互联网的兴起,IOS和安卓两大平台出现了巨大的人才渴求,当然近两年也开始降温了,不过客户端开发的岗位需求仍然存在。运行在这两大平台上的app,对工程师的要求大多会局限在这两大平台上面,比如IOS开发需要掌握obj-c和近年来火爆的swift,安卓需要熟悉Java和Android内核等。


客户端开发工程师对于服务器端如何实现可能并不需要很care,但对于网络协议尤其是TCP/IP、HTTP协议需要烂熟于心。


客户端开发工程师相较于后端而言,更贴近产品这一层,对于产品感兴趣的,不妨先做几年IOS/Android工程师。另外IOS/Android工程师和前端工程师比较容易接私活,业余时间赚点零花钱,甚至独立维护一个个人app,也是美滋滋。


大数据工程师

2004年,Google的MapReduce论文横空出世,至此拉开了大数据行业的序幕。对于数据的计算、整合、统计等需求,在数据量达到一定规模(比如1T)时,单台计算机几乎无法完成。MapReduce计算模型解决了这个问题,此后的十多年内,围绕着MapReduce模型实现的Hadoop生态和spark,都成为了热门的大数据技术,互联网公司里面的龙头企业对大数据也越来越重视,大数据工程师这个职位一直保持着较高的热度。


大数据工程师主要负责对公司业务数据的挖掘和计算,并且得到统计分析后的一些有意义的结果,比如电商公司通过大数据可以为业务部门提供更好的数据支撑、帮助商家发现运营中的问题、实现用户画像、提高运营的效率和预防风险等等。

大数据工程师需要掌握的技术相对来说比较单一,用得最多的无非就是Hadoop和Spark,编程语言方面、Python、scala和Java都比较热门。但大数据工程师需要有良好的分析能力,如何能够更快更好地得到有意义的数据,需要长期的技术积累。国内的同学如果想要入大数据这个坑,一线城市是首选,原因也很简单,拥有大数据的公司基本都集中在一线城市,如BAT等,想要去二三线城市的同学可能会遇到职业发展瓶颈。

(所以,先得买套房~)

机器学习算法工程师

当前最热门的岗位,没有之一!无论薪资还是发展前景,都是一片光明。AI已经向着成熟期发展,谷歌的阿尔法狗已经血虐全球围棋高手。Robin说过人工智能将是人类史上第四次工业革命,这种论调是否准确暂且不论,跟AI/机器学习相关的岗位缺口以后一定越来越大,薪资也会水涨船高。

做机器学习需要掌握的知识并不需要太宽的广度,但深度一定要足够。想成为一名机器学习工程师,你首先需要掌握一门工具语言,比较常用的是Python和scala;另外,你需要熟悉一个计算框架,比如谷歌的tensorflow、百度的PaddlePaddle、spark的ML模块等。至此,万里长征只走了第一步。机器学习最重要的是算法,比如决策树、随机森林、朴素贝叶斯、神经网络等等,都需要学习较长的时间才能吃透。在实际运用中,对算法本身的理解会指导你去选择哪一种算法。


机器学习的数据也是非常重要的,数据的质量直接决定了训练出来的模型的好坏,所以机器学习工程师也需要有一定的数据处理能力。


机器学习从事的方向也比较多,比如图像识别、NLP、自动驾驶等无一不是贴近日常生活的技术。但想成为一名合格的机器学习工程师门槛可能较高,除了对计算机相关技术本身的掌握外,对数学和信息论也需要有足够深的理解。当然,目前机器学习工程师的学历门槛一般是研究生,所以会将很多求职者拒之门外。



IT老鸟分享职场干货、在线答疑解惑。欢迎职场新人关注“疯狂IT人”,公众号ID:crazy_debugger。