首先谈到程序员,很多人还是不太了解这个职业,我作为一个程序员,而且是一个有十年工龄的资深老程序员,我想把程序员最真实的一面和大家聊一聊。
程序员是一个比较泛的词,总体上来说,在从事敲代码写编程职业的从业人员都会被称为程序员,甚至有带有中性的“程序猿”称呼,百科上的描述是:“程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。”当然我看这个阐述我不是完全认同的。
目前这个职业的认知度随着这几年互联网行业的蓬勃发展而逐渐被大家所熟知,其中不乏很多贬义“秃头”“话少”“邋遢”等,也有一些和金钱挂钩的名词“富有”“钱多”,但往往正真的程序员看到这些评述的时候,都是内心默默一笑,不屑搭理,毕竟社会所描述性的程序员只是一小部分,或者只是一种调侃的噱头,但从我自身的从业经验来说,我想客观的说一程序员这个职业,也为还未踏入这条道路或即将踏入这个行业的新人做一定的指引。
一.不是整个互联网行业会写一点代码的人就叫程序员
首先说一下,互联网行业分工比较明细,单纯开发业务线来说,分为软件和硬件两大块,严格意义上来说硬件层面都不能叫做程序员,他们应该被称作硬件设计师或硬件专家更为恰当,其次就是软件业务线,确实在国内软件实力比硬件发展得快和更好这是不供的事实,软件开发中又可分为产品(策划),UI(美术),测试,运维,和正真的代码执行等,虽然测试也有自动化人员,但不能归属开发,能严格意义上本称为程序员的就是代码执行相关人员,而写代码又分为前端和后端,这两大类有会根据实际的业务场景划分为很多职能,比如说业务部门,或开发语言的选型等。总的来说专职做程序化设计的人员群体就是程序员。
二.程序员需要具备哪些能力?
无论是前端开发还是后端开发,程序员要做的第一步就是能够熟练掌握一门或多门开发语言,当然目前国际上主流的开发语言比较多,如:JAVA,C++,PHP,Python,Go,Lua……,掌握了语言基础就是熟悉各类业务场景中开发框架使用,甚至自定义搭建框架,之后就是按照产品需求的实施。
三.程序员的江湖地位
前几年程序员是一个魔幻的存在,大家都只知道程序员经常加班特别辛苦,工资很高等等,其实目前国内开发人员孵化程度特别暴力,很多非专业人员大量转移到开发大军中来,使得行业竞争极强,从另一个侧面也加快了国内互联网蓬勃发展的步伐,程序员是信息化时代,特别是信息化革命到数字化革命迈进的中坚力量,首先他们思维敏捷,执行能力极强,所以能入行挣扎到人,说明爱学习,能吃苦,智商没问题,除了勤劳,很大一部分还才华横溢,其次说一下报酬,大多数人会觉得程序员薪水很高,其实这是相对的,付出的比较多,回报当然也不能少,这也从侧面反馈出来一个道理,脑力劳动往往比体力劳动值钱,话说回来,国能程序员的薪水相对西方国家还是蛮低的。
四.程序员35岁之说
总能听到很多人会聊程序员35岁就找不到工作,35就是一道坎等等,其实这类说法是不切合实际的,国内首批老程序员像雷军之辈也不过30多岁,很多技术人员有了一定技术积累和沉淀都走上了管理岗位,或者自己创业挑战自己也不是不可能,当然,转行也有人在,所以客观公正的描述是对行业最直接的敬畏。