都是程序员,怎么还有做不了的事情?
在之前的互联网团队扫盲贴中曾经说到过技能的大概分工,按照前后端逻辑,分了以下几种。
做事端开拓,也叫后端开拓,紧张是卖力产品业务逻辑的实现,数据库部分,往后做事器的运营,这个随着用户数的增长,后端团队会越来越细分。比如会有数据库的运维(DBA),有中间件的开拓团队,有大数据的开拓和运维,有底层做事器的运维(包含物理做事器和虚拟化平台已经容器平台的运维开拓)

前端开拓,随着前后端分离技能的发展,前端越来越多地做个一个完备独立的工种。在react,vue,angular这些框架涌现以前,前真个事情每每须要依赖于后端。随着技能不断迭代,前端产品越来越繁芜,尤其是移动互联网,各种型号手机的适配,还有各种开放平台,比如各种小程序开放平台,快运用开放平台等等的推出,前端要办理的问题越来越多。其余,前端常用的js开拓措辞也逐渐渗透到后端开拓中,nodejs这几年也是持续在一直地改进。
移动端开拓。移动端开拓紧张指的是ios和android的开拓。ios和android开拓现在此消彼长,android开拓越来越受到重视,从市场霸占率上来说,android目前已经占率了80以上的市场,ios只有10%多一点。android由于是java措辞作为开拓工具,以是入门门槛相对低一些,当然现在android主推kotlin。android平台最麻烦的是适配的问题,开放的结果导致便是系统的割裂,不过这个问题现在已经不那么突出了,毕竟经由这么多版本的迭代,大多数手机公司已经放弃了对android底层的大改,而须要修正部分ui层。android现在面临的每每是界面适配的问题,手机屏幕各种分辨率都有,很多时候只能做取舍。
但是随着用户数越来越多,无论是创业的管理者还是程序员本身,都会创造,自己面临的事情越来越细,涉及的细节越来越多。上述三个工种,也能细分出许多专业的工程师出来。
我用做事端工程师来举例,做事端随着产品的人数越来越多,所涉及到的人数和方向会越来越多,先说业务逻辑上,不同措辞实现各种业务逻辑,按措辞划分,就能分为,java工程师,C++工程师,php工程师,golang工程师。
运维工程师,运维工程师在初始的时候,紧张是跟机器打交道,卖力做事器,网络设备,存储设备的搭建,系统的初始化和各种配置。但是随着这些年虚拟化技能和容器化机器的不断发展,现在的运维工程师不只要盘的了机器,更须要理解各个虚假化平台和容器化平台的架构,现在有个特殊火的词,dev-ops,便是广大的运维也都在往开拓工程师方向的发展。
数据库工程师,最早就有DBA这个专职的工种,比如司职oracle,sqlserver,msyql的DBA。不过现在随着数据库的种类越来越多,对广大数据库的工程师来说,光有传统的关系数据库是弗成的,比如现在用的特殊多的redis,mongo,还是新出的各种nosql,图数据库。
大数据工程师,大数据工程师分为两种,一种是大数据运维工程师,一种是大数据开拓。大数据运维工程师紧张是卖力大数据平台的搭建,比如最早的大数据平台hadoop,现在盛行的spark,flink,elk。大数据开拓工程师则是根据业务方的须要,剖析目前已知的各种大数据,得到业务方想要的结果。
算法工程师。算法工程师现在可能是目前技能岗位中最火的岗位了,各个大厂抢来抢去,发的各种special offer的都是这个工种。这里的算法不是打算机根本中的算法,而每每是和特定的场景结合的时候须要用的各种算法,比如打算机识别的各种CV算法,现在特殊火热的自动驾驶也会用到各种算法,还有互联网的变现来源,打算广告,等等。
中间件工程师。互联网的后台会用到很多中间件,或者是开拓的时候会基于很多框架,这样就避免了很多重复造轮子的事情。但是业务发展到一定的程序,可能就须要对这些中间件和框架定制,这就须要有工程师去深入理解这些中间件和框架的事理和代码实现的逻辑。
说了这些,回到开头的问题,对付创业的小白来说,常常会问一个问题,我想做个什么样的app,但是我找了一个搞技能的,他居然跟我说一个人搞不定,他是不是在骗我?这个是范例的不理解技能而产生的误解,技能有分工,每个工程师都有自己善于的领域,可能也有每个技能都知道些的全栈工程师,但是没一项都深入理解的,基本百里挑一。