职场 | 工做五年以后,对技术和业务的思考

苦海无边,回头无岸。

01

晃晃悠悠的,在互联网行业工做了五年,默然回首,你看哪里像灯火阑珊处?程序员

初入职场,大部分程序员会以为苦学技术,之后会顺风顺水升职加薪,这样的想法没有错,可是不算全面,五年后你会不会继续作技术写代码这是核心问题。算法

初入职场,会以为努力加班能够不断提高能力,能够学到技术的公司就算薪水低点也能够接受,可是五年以后会认为加班都是在不断挤压本身的上升空间,薪水低是人生的天花板。数据库

这里想说的关键问题就是:初入职场的认知和想法大部分不会再适用于五年后的认知。segmentfault

工做五年以后面临的最大压力就是选择:职场天花板,技术能力天花板,薪水天花板,三十岁天花板。设计模式

如何面对这些问题,是大部分程序员都在思考和纠结的。作选择的惟一参考点就是:利益最大化,这里能够理解为职场更好的升职加薪,顺风顺水。架构

五年,变化最大不是工做经验,能力积累,而是心态,清楚的知道现实和理想之间是存在巨大的差距。app

02

回首本身的职场五年,最承认的一句话就是:学会适应变化,并积累能力。框架

变化的就是,五年的时间技术框架更新迭代,开发工具的变迁,公司环境队友的更换,甚至是不一样城市的流浪,想着能把肉体和灵魂安放在一处,有句很经典的话就是:惟一不变的就是变化自己。运维

要积累的是:解决问题的能力,思考方式,拓宽认知。分布式

这种很难直白的描述,属于我的认知的范畴,不一样的人有不同的见解,因此只能站在大众化的角度去思考。

首先聊聊技术,大部分小白级别的,都但愿本身的技术能力不断提升,争取作到架构师级别,可是站在当前的互联网环境中,这种想法实现难度仍是偏高,这里既不是打击也不是为了抬杠。

能够观察一下现状,技术团队大的20-30人,小的10-15人,能有一个架构师去专门管理底层框架都是少有现象。

这个问题的缘由不少,首先架构师的成本太高,环境架构也不是须要常常升级,说的难听点可能框架比项目生命周期更高。

因此大部分公司的大部分业务,基于现有大部分红熟的开源框架均可以解决,这也就致使架构师这个角色一般由项目主管代替或者级别较高的开发直接负责,这就是现实状况。

这就致使技术框架的选择思路就是:只选对的。即这方面的人才多,开源解决方案多,以此下降技术方面对公司业务发展的影响。

那为何还要不断学习和积累技术能力?若是没有这个能力,程序员岗位可能根本走不了五年之久,须要用技术深度积累不断解决工做中的各类问题,用技术的广度提高本身实现业务需求的认知边界,这是安放肉体的根本保障。

这就是致使不少五年之后的程序员压力陡然升高的缘由,走向管理岗的另外一个壁垒就是业务思惟和认知。

03

程序员该不应用心研究业务,这个问题真的没有纠结的必要,只要不是纯技术型的公司,都须要面对业务。

无论技术、运营、产品、管理层,都是在面向业务工做。

从本身职场轨迹来看,五年变化最大就是解决业务问题的能力,职场之初面对不少业务场景都不知道如何下手,到几年以后设计业务的解决方案。

这是大部分程序员在职场前五年跳槽就能涨薪的根本缘由,面对业务场景,基于积累的经验和现有的开源工具,能快速给出合理的解决思路和实现过程。

工做五年可能对技术底层的清晰程度都没有初入职场的小白清楚,可是写的程序却能够避开不少坑坑洼洼,对于业务的审视也是很细节全面。

解决业务能力的积累,对于技术视野的宽度需求更甚,好比职场初期对于海量数据的处理一筹莫展,可是在工做几年以后见识数据行业的技术栈,真的就是技术选型的视野问题。

什么是衡量技术能力的标准?站在一个共识的角度上看:系统的架构与代码设计能适应业务的不断变化和各类需求。

相对比与技术,业务的变化更加快速频繁,高级工程师或者架构师之因此薪资高,这些角色一方面能适应业务的迭代,而且在工做中具备必定前瞻性,会考虑业务变化的状况下代码复用逻辑,这样的能力是须要必定的技术视野和业务思惟的沉淀。

因此职场中:业务能说的层次分明,代码能写的明明白白,获得机会的可能性更大。

04

从理性的角度看技术和业务两个方面,能让大部分人职场走的平稳顺利,可是不一样的阶段对二者的平衡和选择是不同的。

在思考如何选择的时候,能够参考二八原则的逻辑,即在任何一组东西中,最重要的只占其中一小部分,约20%,其他80%尽管是多数,倒是次要的,所以又称二八定律。

我的真的很是喜欢这个原则,大部分人都不是天才,因此很难三心二意同时作好几件事情,在同一时间段内应该集中精力作好一件事件。

可是单纯的二八原则模式可能不适应大部分职场初期的人,由于初期要学习不少内容,如何在职场生存:专业能力,职场关系,为人处世,产品设计等等。

固然这些东西不是都要用心刻意学习,可是合理安排二二六原则或其余组合是更明智的,首先是专业能力要重点练习,其次能够根据本身的兴趣合理选择一到两个方面去慢慢了解,例如产品,运营,运维,数据等,毕竟三五年之后会不会继续写代码很难说,多给本身留个机会老是有备无患。

在职场初期,基本都是从技术角度去思考问题,如何快速提高本身的编码能力,在公司能稳定是首要目标,所以大部分时间都是在作基础编码和学习规范,这时可能90%的心思都是放在基础编码上,另外10%会学习环境架构。

最多一到两年,就会开始独立负责模块需求开发,须要本身设计整个代码思路,这里业务就会进入视野,要懂得业务上下游关联关系,学会思考如何设计代码结构,才能在需求变更的状况下代码改动较少,这个时候可能就会放20%的心思在业务方面,30%学习架构方式。

三到五年这个时间段,是解决问题能力提高最快的时候,由于这个阶段的程序员基本都是在开发核心业务链路,例如交易、支付、结算、智能商业等模块,须要对业务总体有较清晰的把握能力,否则就是给本身挖坑,这个阶段要对业务流付出大量心血思考。

越是核心的业务线,越是容易爆发各类问题,若是在平常工做中不花心思处理各类细节问题,半夜异常自动的消息和邮件老是容易让人憔悴。

因此努力学习技术是提高本身,培养本身的业务认知也一样重要,我的认为这两者的份量势均力敌,只是须要在合适的阶段作出合理的权重划分。

05

基于技术能力和业务思惟,学会在职场作选择和生存,这些是职场前五年一路走来的最大致会。

不论是技术仍是业务,这两个概念依旧是个很大的命题,不容易把握,因此学会理清这两个方面能力中的公共模块是关键。

无论技术仍是业务,都不可能从一家公司彻底复制到另外一家公司,可是能够把一家公司的技术框架,业务解决方案学会,而且带到另外一家公司,例如技术领域内的架构、设计、流程、数据管理,业务领域内的思考方式、产品逻辑、分析等,这些是核心能力而且是大部分公司人才招聘的要求,因此这些才是工做中须要重点积累的。

人的精力是有限的,并且面对三十这个天花板,各类事件也会接连而至,在职场中学会合理安排时间并不断提高核心能力,这样才能保证本身的竞争力。

职场就像苦海无边,回首望去可能也没有岸边停泊,可是要具备换船的能力或者有个小木筏也就大差不差了。

阅读标签

Java基础】【设计模式】【结构与算法】【Linux系统】【数据库

分布式架构】【微服务】【大数据组件】【SpringBoot进阶】【Spring&Boot基础

数据分析】【技术导图】【 职场

相关文章
相关标签/搜索