野生猿类生存指南

96
心思冷清
0.3 2019.03.05 13:25 字数 4300

序言

我,一只常年混迹n线小厂的野生猿类,没有名牌大学教育背景,没有一线大厂工作经营。在浩瀚的原始森林流浪了十多年,经历了北上广的技术理想,享受过二线城市的悠闲安逸。战战兢兢的在35岁以上的高压线年龄向前挪着步子。总结一句话,还行,活着。
近来看到许多人都在谈论三十岁的坎,程序员的青春饭问题,忍不住也想冒个泡。大多都是小厂野生猿类的江湖史,角度不同,没有任何高大上,希望对大家有用吧。

对国内软件行业的理解

不论是北上广还是二三线城市,国内的软件开发,大多还是以信息化系统的建设为主吧,专业类软件比较少,如果你是专业类软件的开发人员,如音视频编辑器,推荐算法,游戏引擎等,恭喜你,大约你走了一条专精的道路,基本上是要向专业和学术方向发展了,这种职业发展和技术深度有关,基本也都在大厂研究院里面混,我也不是很懂,就不瞎聊了。


我所经历的公司,几乎都是做信息化建设的公司,以业务系统为主,说白了,就是做基于Web的业务网站[这样说是不是太直白了,好像很low的样子:(]。软件系统毕竟是为了传统行业提供服务的,属于辅助类的,所以对于不同行业的信息化建设,有不同的套路,但是归根结底,就是表单、流程那一套,毕竟再复杂的业务,都得经历信息采集、信息处理、信息存储以及展示的过程,不是么?
近年来,随着移动和大数据等技术的发展(其实主要是受一线互联网大厂的影响),业务类系统开始出现了服务化、支持移动等要求,一个业务系统,从一个独立的网站逐步延伸到全端(支持PC Web页面,支持移动端APP、PAD等)。业务系统的部署方式,也从独立的单一网站,发展到公有云部署(大多都是放在阿里或腾讯的虚拟机上,部署本质没有变),高端一些的,采用混合云,微服务化,技术的实现方式进步了,部署的方式更加简便了,运维起来更轻松了,当然,门槛也越来越低了,野生猿类自然也越来越多了。
另外,从技术实现上来讲,软件行业一直梦寐以求的软件复用,在这个时代,得到了充分的体现,被推向了一个新的高度,主要包含两个方面,一方面开源的社群涵盖的技术越来越广,甚至可以说,你想要的,都能找到开源实现,通用技术,基本没有不开源的,开源的甚至比个别公司开发的商业产品或框架更稳定。另一方面云服务的发展,很多事情都可以通过调用服务完成各种高大上的功能,比如直播,即时聊天,人脸识别、语音识别。这种功能层面的复用,使得开发效率越来越高,开发成本逐步降低,对一个系统的开发来讲,门槛越来越低,直接导致的结果就是,技术不值钱了这大概也是很多职业程序员心理恐慌的原因吧
接下来,用软件和信息技术赚钱创业的人越来越多,创业公司遍地都是(尸体也遍地都是),老牌企业互联网化、数字化转型,各种技术人员为了生存,不断玩新花样,看上去新技术层出不穷,程序员们怨声载道。慢慢的,你会发现,软件服务向着几个主要的方向在分化:

  • 互联网ToC的消费服务,这种服务一般都掌握在大厂手里,为什么呢,人家有平台啊,小厂最多是在平台上搞搞特色功能,靠平台引流发展自我,这个时候,小厂的系统,变成了玩创意,而不是玩技术,产品经理最重要,比如在玩公众号,小程序的,比如做淘宝插件的
  • 互联网化ToB的服务,这种大多是面向传统信息化比较落后的中小企业,或者是不想负担沉重信息化建设费用的中小企业,这种SAAS化的服务,没有什么太多的个性化,基本都是平台定义规则,入驻企业适应规则。
  • 大企业或政务类业务系统的开发,对于很多大型企业和政府来讲,例如银行、石油、医院、政府、公安等,出于安全方面的要求,是不可能把核心业务系统公开到互联网上的,而且随着业务的发展,业务规则在不断的改变,信息化是这类企业运营的重要支撑,系统种类繁多,需求也层出不穷,很多软件企业都是这些单位的系统供应商,也包含很多人力资源外包企业。
    所以说,国内大多的程序员,应该都是在做业务类的系统,基本就是理解业务,代码实现,测试上线这个路子上不断重复,收入的高低,与所服务的行业,所在企业息息相关

对职业发展的看法

分析完行业,再来说说程序员的职业发展,很多人都觉得三十岁是程序员的生死红线,很多人也都在找三十岁以后的程序员来讲故事,当然,有很多的牛人,站出来现身说法,告诉大家,三十岁不是问题,要持续学习,学好xx技术,你就是公司核心,不受年龄限制,其实我想说,您是技术布道者,是大师,咱不这么明显的做广告好嘛,我们智商还没有低于零嘛。
我个人认为,程序员是个技术职业,和机械工程师、建筑师其实没有什么区别。只不过呢,程序员这个职业上网比较多,历史比较短,网上各种吸引眼球的思想太多,搞得大家对这个职业的看法两极分化比较严重而已。平心而论,不就是个技术职业么,干嘛要神话他或者贬低他呢?每种职业,都有其发展的思路或者说是套路。对于小厂的野生程序猿来讲,很多人不是很清楚,或者没有仔细想过而已。所以说,程序猿的职业发展,还是要注重以下几个方面:
知识体系和学习创新能力
其实不论任何行业,任何岗位,都需要建立自己的知识体系,进而发展自己的学习和创新能力,现在很多野生程序猿,项目做了好几个,会写前端,会写后台,结果搞不清楚http是怎么回事,连GET和POST都分不清,这就麻烦了。软件,从需求分析到架构设计,再到开发,上线运行。至少要了解业务和技术两个方面。软件系统是用技术来表达业务思路的。没有一个完善的知识体系,你怎么知道如何用技术来表达你需要实现的业务呢?知识体系的建立,是个比较大的课题,这里只说说知识体系的概念和重要性。就像做饭,先不论你做得好不好吃,你都不知道厨具怎么用,火候怎么掌握,别说做大餐,做熟都困难。所谓知识体系,就是字面的意思,系统化的掌握某个领域的知识。以软件来讲,服务器、操作系统、浏览器、网络、通信、编译、数据结构等等就是构成知识体系的部分。全面系统的建立个人知识体系,是职业发展的基石。上面说过,现在很多底层的东西都是开源的,现成的,为什么有人用的好,有人用不好呢,不是努力的问题,是基础好不好的问题,具备知识体系的人,因为能够理解技术的本质,所以学习一项新技术就会快,解决问题就会快,同样,面对问题,会有创新的想法,慢慢的,也就走的越来越远了。很多野生程序猿,都不是科班出身,没有受过系统的教育(当然,受过的也许是没学好哈),工作后也没有这方面的意识,当然职业发展的路就越来越窄了,因为没法跟上知识和技术更新被淘汰。因此,在工作中,逐步建立、完善不断更新自己的知识体系,是非常重要的,需要在职业生涯中不断坚持下去。
再野生也是要接受文明驯化的
人类走向文明,是因为人类会发明和使用工具,更重要的是在这个基础上的协作。现在的社会,分工非常细,很多行业都因为技术进步而发生了颠覆,很多职业也从神坛走下,为什么,因为社会发展过程中,工具更新了,协作方式也变了。对于软件来讲,软件工程就是软件行业协作的方式。很多野生程序猿入行,被很多文章和培训机构吹捧的个人英雄主义所洗脑,崇拜行业大神,觉得自己就是技术牛x就可以了,其他都与我无关,整天活在自己构建的软件技术世界里面。殊不知,这样和社会越来越脱节,职业发展不下去,甚至生活中也碰壁无数。协作,才是王道
其实,现在的软件开发,技术框架大都是用开源的,最多就是再重复造个轮子(模仿秀技成分居多),纯粹技术上讲,真没什么可以引以为傲的。会用菜刀就是好厨子么?显然不是。有个很常见的笑话,公司做什么业务呢,是给xx行业做xx业务系统,通过业务系统规范xx业务的过程,提高业务处理能力和效率,结果,公司自己的开发过程都一塌糊涂,连代码版本都管不好。所谓的文明驯化,就是不要在野路子上越走越远,而是要根据实际情况,结合软件工程的思想,逐步摸索出适合公司和团队的协作方式,适应不断变化的需求。这里的协作,包括建立规范可重复的过程规范、技术规范,推广应用相关的支撑工具或系统,拥抱变化,关注业务,关注过程优化,建立持续可交付的机制。这些协作过程,随着业务的发展,不断更新,完善。
三十岁是分水岭,所有行业都一样
都说程序员是吃青春饭的,当年龄大了,无法适应无休止的加班熬夜,就像转管理,可是管理岗位又少,很多人又不得不转行,由此理论来证明,程序员是吃青春饭的。这样说对吗?对,也不对!技术类的岗位,其实最怕的,就是干了十年,重复着第一年的工作,而你自己却没有任何想法和提高,这样的结局,就是当年不能持续的通过体力劳动进行产出时,只能转岗或转行。都说医生越老越香,可是反过来想,如果这个医生在年轻的时候就没有一个持续的积累和发展,哪个病人会给他机会,让他在这个岗位上坚持到老呢?
三十岁,是而立之年,对于很多人来说,三十岁意味着结婚生子,有了家庭的羁绊,体力和精力逐步的有衰弱的趋势,这都是正常的,不仅仅是IT行业的人是这样的。在一个行业干一辈子,就要有干一辈子的能力和价值,这里要包括不断更新自己的技能,积累自己的经验,创造更大的价值。对于一个程序员来讲,三十岁,近8年的工作经验,如果在一个行业中,应该是个不错的项目经理或者架构师。然而,这仅仅是开始,这个年纪,如果自身努力,应该是刚刚对自己服务的行业有自己的深入思考,又有一定的经验,逐步开始实践自己的想法,为企业创造更大价值的时候。对一个企业而言,这个格局的人,好不容易培养出来了,谁会放弃呢?另一方面,对于一个创业公司来讲,这样的人是一大助力,谁会不要呢?试问,三十岁了,是过不去公司的坎还是过不去自己的坎?
能贡献利益和价值衡量标准
对于一个企业来讲,最重要的是什么?是产生价值,通过产生价值获取利润。程序员,作为一个创造和生产单元,最大的作用就是生产出客户所需要的系统,为客户带来价值,这叫共赢。而在这个互联网化的社会,老板和员工之间,不再是单纯的雇佣关系,而是合作共赢关系。大多数野生程序猿,因为所在公司和环境问题,没有人会来讲这些HR灌输的东西,都以为自己有技术,所以老板应该为此买单,应该给与更好的待遇。反过来想想,我们产生的价值在哪里?是每天写的代码么?所以说,每个程序猿,都应该不断的反思与总结,自己在企业中产生的价值是什么,如何产生更大的价值,当价值变现,就是自己获得回报的时候。这个时候,不论是在企业中的地位和收益,都会是你想要的。技术的输出和变现,是每个技术人员都应该思考的问题。也只有这样,自己才会有一条可持续发展的路。


结束语

每个人的机遇不同,环境背景不同,所以每个人的职业道路都是不同的,不断思考和总结,正确的价值观取向,才是不断把路走宽的源动力。生存是艰辛的,也是充满未知和乐趣的,作为一枚野生猿类,可能无法得到更多的指导,没有固定的套路,但是只要不断的发掘自己的价值,创造价值,不论如何,都不会混的太差。希望大家都好!

软件行业杂谈
Web note ad 1