技术从业者的将来(2)

  前言

  新的一年,在暂时没有工做以及家庭的双重羁绊的这个周末给本身放了一天假,这样的时间尤属可贵。  html

  我在《致全部.Net者和有梦想的朋友们 - 共勉》这篇文章中提到过,在现在的工做生活不分家的快速节奏中,为了生活和家庭,咱们必须负重前行,即便天天的时间大部分都给了工做以及家庭,可是咱们仍是要按期给本身清理负面情绪以及释放压力,由于只有本身能持续成长,才能更好的抵御年龄所带来的危机。  web

  因此,对于职场人来讲,成长永远应该放在第一位,关注本身的心态以及需求,这就须要给本身时间和空间思考,给本身喘息思考的时间,才能更好的看清楚方向,才能更好的厉行本身的梦想。  算法

  说话即生产力   

  对于大部分技术人员来讲,可能咱们都不会注重本身的说话,由于咱们不少人都没有意识到说话所产生的生产力。编程

  为何说话就是生产力?设计模式

  不知你们有没发现,跟身边一些思想层次很高的人谈话会很是舒畅,由于这些人能快速的洞悉到问题的本质,一语中的,把问题回归到本质上,而不是任由别人天马行空说到哪就是哪。  缓存

  举个例子,若是你是CEO,你但愿本身重要的话语能被即刻理解和付诸行动吗?是的,因此你但愿的是说话便是生产力。安全

  再换个场景,若是一个管理者说话没有突出重点,而是内容或思路比较零散,你会打心底承认这个管理者吗?下属的执行力会强吗?websocket

  因此好的说话,就是生产力,可以产生不少积极做用。网络

  说话其实就是一场看不见的硝烟。大多数人在讲话的过程当中,内容或思路比较零散,讲到了这点又忘记了那点,说到了后面前面的话又重复说了一遍,并且还夹杂着大量的口头禅,势必不会带来可观的影响力。架构

  一个显而易见的例子是,在会议上,咱们较多的人会把话题越拉越远,就像脱缰野马,以至彻底脱离主题,长此以往,给人的印象就是,你说的话中,有意义的并很少,可参考度低。这无形中是在下降本身的影响力。

  展示过人的说话水平,不只是我的魅力的展示,更是影响他人与事业发展的重要技能之一。

  如何提升本身的说话

  咱们可能会发现,越是高职位的人,可能说话越是精简,字里行间都是重点。同时他们在公司也更加具备影响力,所以他们的职业或事业发展也更加顺风顺水。

  由于他们注重说话所带来的生产力,即注重当前说话的中心以及探讨问题的重点是什么,针对明确的重点,发言流利顺畅,使内容清晰有次序。

  一种显而易见的提升方式是,首先在内心要暗示把本身放在重要的位置上,但愿本身的说话能产生生产力,那么天然而然你就会注重本身的说话,就会在说话前进行必定的逻辑梳理,使本身的表述清晰有序。

  因此一切的东西,都是在于你把本身的一个定位在哪。你在乎本身说话是否能够产生生产力,那么你就要把时刻把本身放在高的立场上,注重本身说话。

   

  像CEO同样思考

  公司最近有这样的培训,遗憾的是我的因为生病错过了,但我能想象获得,核心思想是:把本身的思想层次提升,再提升!

  你想拥有管理者同样的工做生活方式,那么你就要像管理者同样的思考,思考什么?换位思考,若是换成你来作,你是怎么规划的,你会怎么在执行过程当中采用哪些手段来下降失败的可能性的,换言之,你会不会作得更好?

  不要觉得这些很遥远,没有培养这样的意识的人,是很难作到量变引发质变的。

  咱们不少作技术的人,关注的基本都是技术层面所带来的自我成就感,可是若是你想让本身前进一大步,是须要在思想层面作改变了。

  从企业的角度出发

  我不是在画饼,也不须要画饼,由于咱们没有直接的利益关系,可是对于有缘的朋友,我仍是强烈推荐的是,任何事情的出发点,都站在企业的角度去思考。

  我明白在不少人的内心认为,本身永远都是打工者。拿人钱财,替人消灾,作到跟工资相符的价值出来就能够了,甚至能低于这个收入的价值都行,反正公司又不是个人。

  短时间来讲,这是对的。然而对于咱们整个职业生涯来讲,这是不利的,由于这样作只会让咱们贬值,而不会让咱们升值,还会固化了咱们打工人的心态。

  站在企业的角度看问题能给咱们带来什么?

  首先这样能培养本身的更高层次的思想维度,这些思惟习惯的培养和积累,会促使咱们作事的方法论和眼光持续成长,继而会给咱们带来一种工做本能,成为本身的一种优点工做思惟和技能,使得本身愈来愈值钱。

  —我的的价值在上升,在于你的优秀习惯愈来愈多,而同时借助于更高的思惟格局、技能和经验,在面对各类困难时心中不慌,从容应对,做出正确的决策以及有效的执行计划。

  其次,没有这样的思想积累,是很难让本身的思想有质的改变,继而是很难为咱们后续走到高职位铺路的。

  你想作老板,翘着二郎腿抱着秘书,听着工做汇报,没问题的,那么你有什么能够支持起你老板的位置?  

  咱们的目标是什么?让本身变得更好!只有站在老板的角度看待企业,才是让本身成长最快的角度。

  因此我建议朋友们站在更高的层次去看待问题,即便咱们不能便可站在企业的角度出发,但咱们仍是能够比现有的角度更高一点,就是这种高一点的思想,会给咱们职业生涯慢慢带来质变的。

  关注产品

  只关注技术所带来的成就感,是技术人的通病,而可能就是过于专一在技术层面,让不少技术人忽视了产品这个层面。 

  这个层面对于咱们技术人来讲,意义何在呢?

  体现技术价值的,是将技术转化为生产力的产品自己。产品实际上是各类技术解决方案的集合体,它映射的是,对通用问题的解决模式。若是你是有意在某个行业持续发展成为领域专家的话,那这些模式的积累以及深刻,绝对会让你身价不菲。

  因此关注产品自己,对于技术人员的职业素质的提升是大有裨益的,也是对在职业生涯上有意成为领域专家的重要步伐。

  技术再好,作出来的产品不能很好的解决用户的痛点,市场是不会买单的,这无疑是对咱们技术的一个最大否认。

  要知道,除非你是在作着本身的专利技术,且这些技术就是公司的生产力,不然技术都是为你的产品业务服务的。  

  并且在关注产品的同时,你会发现,本身做为用户的话,基于对技术的追求,免不了会想让客户在使用层面具有极致体验模式,那么产品的体验这部分就会让你的技术价值更加获得验证。你要给客户极致体验,就促使你使用websocket,使用缓存,使用高可用方案来支撑。

  因此若是你真是一个技术追求者,那么你必须重视你的产品自己,由于这是对技术的一个最好验证。

  关注需求自己

  关注产品,其实就是关注需求自己。

  咱们不少技术人员,在作需求的时候,可能仅仅看到需求表面的东西,接到需求就着手编写代码,这样实际上是不利于本身的思惟培养的。

  作一个需求,虽然不必定要像CEO以及产品经理那样深入了解这个功能给客户带来什么价值,但至少知道这个需求是不是某一类问题中的一个,这类问题的经常使用解决方案是什么,这个需求所要传达的信息,如何能更好的传递给用户?

  磨刀不误砍柴工,在深刻发掘需求自己的同时,会引导咱们针对该需求衍生出一类问题的解决方案,在基于这样的解决方案,对于再次过来相似的需求,是能够帮助咱们避免作另外一套相似的方案来实现的。

  说到这里,我强烈推荐的是,不要作一个需求直译机,咱们须要发现客户的需求,是真需求仍是伪需求,继而深刻发掘客户真正须要的是什么,抽象出来,做为一类问题的通用解决方案。  

  关注客户

  嗯这个层面对于技术人来讲,视乎有点风牛马不相干了。

  可是若是你注重本身的技术带来的成就感,那为何不重视你的技术价值最终验证者的反馈呢?

  产品给公司带来收益,也承载着咱们的技术能力,产品的价值,也就是咱们技术人关注的所谓技术成就感,是要经过客户验证的。换言之,客户承认了咱们的产品,咱们的技术才真正产生价值。

  站在更高的层次看一下这个命题,当咱们关注客户后,就会引伸出:产品在前期是如何推广进而吸引用户的? 如何运营留住用户的?在用户的这些反馈数据之上,咱们是如何分析并优化产品的?

  好吧,说到这里,引伸出一堆可能在实际工做中跟开发工做不相及的观点,然而我知道,对于有心在本身职业生涯勇攀高峰的人,这些思惟的培养,将会对你的职业生涯产生很是重要的影响。

  君不见管理层乃至CxO,更多的关注点都是在客户身上,关注如何提高用户的满意度等等,而这些的最后,才是考虑使用什么技术服务于这些。 

  

  关注客户以及产品这两个层面,才会使本身的视野愈来愈开阔,也会为本身的职业带来更多资源。

  提升本身的眼界

  无论你走向哪一个岗位,例如架构师亦或技术管理乃至技术总监或者CTO/CEO,开拓的视野是职业中很是重要的一环。  

  当你在三楼时,你能看到可能就是眼前的垃圾堆,可是当你在三十楼时,你就能看到城市的不一样风景。可是若是咱们不会在爬上三十楼以前,基于每一层的风景对本身的眼界进行开阔,有可能到了三十楼,你眼中仍是只是看到这个垃圾堆。

  培养CEO同样的思考,不必定会给咱们带来即刻的自我增值,可是具有了高阶的眼界以后,就会帮助你在多个场合即刻脱颖而出。  

  遗憾的是,不少技术人员,可能会更关注眼前的风景,更多的可能连头都不抬。

  当咱们埋头默默耕耘的时候,也要时不时抬头看天。

  就像上面说的同样,关注客户和产品,让本身的眼界不局限于技术,对比本身产品在市场上的竞争力如何,其余竞品的优点以及劣势,产品如何盈利,对手的商业模式是怎样的,让本身从更宏观的角度看待这个产品的生命力。  

  眼界的开拓,让咱们具有更多的选择以及作出更好的抉择,合理的让技术为咱们服务,这样才会在问题的解决方案上进行更好的抉择。

  你要知道业界内的解决方案有什么?基于什么状况下选择不一样的解决方案?这些都须要你有这样的眼界。

  当你准备创业或者到了高级别的职位,你就会知道,团队的组建,产品的运营模式,市场的推广方式,流量的流转控制,核心竞争力的创建,这些光景所让人提升的眼界层面,是不一样于技术层面所带来的。

   将来方向

  我在《技术从业者的将来》这篇文章中,分享了一些我的的职业感悟,时代发展的太快,技术更新换代的太快,除了面对着家庭以及工做外,在如此高速的科学技术发展洪流中,咱们还要保持不断的自我进步,因此咱们技术人更加须要明确本身将来的方向是什么。  

  基础技术能力      

  曾几什么时候我认为,走到了管理岗位,技术将不会显得那么重要。

  在真正作了技术管理以后,发现技术的重要程度并无减弱。由于咱们须要作的技术决策更多了,这些决策是否会成功,就是创建在技术能力基础之上的。  

  咱们须要扎实的基本功,而这个基本功并不只仅是熟知面向对象编程便可,还须要计算机原理,网络,部署,算法,设计模式等等。

  并且在云生态发展迅速的时代,愈来愈多的企业如今或者将来都会上云,基于云上的技术能力,将也是当今时代的技术人应该掌握的基础技术。

  当咱们决定在技术路线继续走下去时,咱们就不能忽视这些基础能力的积累。

  抽象能力

  好的设计就是基于抽象能力抽象出本质,让抽象知足更多通用的场景。

  这里举个例子,咱们使用太高德地图App都知道,里面是能够查询车辆的具体到站信息的。好比我天天到公司有两条路线的公交A,B可选,某天我坐了A,可是我到站下车时想知道B车到了哪里。

  因而做为产品就会很容提出这样的需求:在地图中我要知道坐A车到站时,B车到了哪里。

  做为开发者,很容易想到给车作一个标记功能,这样就很容易对比车辆的位置,因而乎就往下作了。其实咱们往深点想,若是期间用户退出了地图再从新进来的时候,咱们如何找到”有状态的“这两辆车?因而乎又想到能够经过我的的帐号信息进行关联,标记的车辆能够绑定到我的的相关信息里面。这里面又带来了问题,这样的话就会要求客户强制进行注册,而咱们目前的不少地图是没有要求用户注册才能使用。

  当咱们作到这一步的时候,就体现出咱们的抽象能力是不够的,可能就会出现我上面说的需求直译机,而这样是对咱们的职业生涯没有任何帮助的。

  产品直接的需求是能对比功能,试想若是咱们地图上提供对车辆的一些基本信息例如车牌号,再借助GPS的能力,这样是否就能具有区分A和B车辆的能力了呢?并且基于这样的能力,咱们还能拓展其余的能力,譬若有两辆车靠近的时候,经过公交的基本信息告诉好友本身在哪辆车上。

  你的抽象程度越高,复用能力就越宽。

  Devops       

  试想一下,当咱们须要给公司开发一款新产品,从需求到这款产品最终上线到客户手里,咱们软件开发者具体作了些什么?

  我相信你们都会清晰地知道,软件最终能到达用户的手中,有两个层面的事情是不可或缺的:

  1. 应用服务开发层面(功能性需求)
  2. 部署上线落地层面(非功能性需求

  实际的工做场景中,咱们很大部分的人都只是专一在这两个层面中某一块,鉴于工做的内容性质, 运维工程师和开发工程师有着彻底不一样的思惟逻辑。

  因此在这种状况下,Dev和Ops之间是割裂的状态。

  那么Devops能给咱们带来什么?

  咱们先看一下什么是DevOps?

  传统的软件开发流程是这样的

   而DevOps是这样的

   

  DevOps 是字面上 Dev 开发 / Ops 运维二者组合,是一种重视"软件开发人员(Dev)"和"IT 运维技术人员(Ops)"之间沟通合做的文化、运动或惯例,实际上它是一种文化 + 愿景 + 方法的统称。

  DevOps 强调的是高效组织团队(文化)之间如何经过自动化的工具协做和沟通(方法)来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件(愿景)  

  咱们为何须要DevOps?  

  当咱们面对快速发展的互联网行业,稍纵即逝的商机,业务须要快速迭代,不断试错,更快地交付产品和服务是咱们全部公司赖以生存的条件,也是咱们全部公司的愿景。

  所以,在这样的愿景下,用科学的方法学来指导企业经过快速的对应,迅速地部署,实现了一流的稳定性/可靠性/安全性的系统服务,让企业拥有持续交付的能力。  

  在这里,跨职能的团队的合做并不只仅是为了实现用户要求的功能,他们保障的是:快速的对应在整个价值流中不会带来对内或者对外的混乱和困扰。

  DevOps打破原来的开发和运维之间的界限,将分离的两个流程融合到了应用的研发过程当中。经过自动化"软件交付"和"架构变动"的流程,来使得构建、测试、发布软件可以更加地快捷、频繁和可靠。这些改变的目的是为了支持和适应应用快速、安全、可持续和频繁的版本发布。

  咱们如何实践DevOps?      

  文化

  首先DevOps是一种文化的背景下,文化的推行,确定要涉及到思惟的转变。

  DevOps并非简单的在组织机构上把开发团队和运维团队合并起来,咱们上面提到它包含着思想,因此在思想层面上,须要企业文化和思想观念的变革。

  那么想要将DevOps真正落地,第一点就是思想改革。不只是运维的思想要变,开发也要变。员工要变,领导更要变。

  DevOps并不只仅是组织架构变革,更是企业文化和思想观念的变革。若是不能改变观念,即便将员工放在一块儿,也不会产生火花。

  方法

  想要充分落地DevOps,离不开工程和平台的支持。

  在更快的交付愿景下,映射出来的是在整个产品交付环节的效率提高的,因此咱们将在效率工程上进行效率提高。

  • 开发效率

  在这里引入了敏捷开发,敏捷开发大幅提升了开发团队的工做效率,让开发专一于每一个迭代内需交付的最小闭环功能,让版本的更新速度变得更快。

  • 测试效率

  当开发团队的效率提高后,不可避免的需同步提高测试效率。而自动化测试流程将会在DevOps设置的上下文中起做用,并且这还将须要持续测试(CT)。

  若是没有持续测试,也就不能对持续集成进行及时验证,天然就没法作到有效的持续交付。

  自动化测试是一项艰巨的技术活动,若是没有有效实施,它就有能力破坏整体的DevOps策略。

  虽然在持续集成中要尽量的使用自动化测试,可是难以免有些状况是自动化测试难以覆盖。因此手工测试仍是必不可少的,可是在测试团队的持续改进中必须将手工测试尽量的优化,不能让其成为自动化测试的瓶颈。

  • 部署效率

  减小部署层面的重复性和出错可能性,自动化手段是必不可少的,因此咱们须要提供基础设施平台的支撑,其中包括咱们耳熟能详的术语:CICD,观测面板,容器化(虚拟化),编排工具,服务网格等,其中CICD是DevOps的基础核心,没有CICD自动化的工具和流程,DevOps是没有意义的。

  在咱们上面作了这些效率工程以后,咱们的将会大大缩短产品上市以及换代的时间,这就是咱们DevOps的愿景。

 

  在有了基础支撑以后,很重要的一点是, 咱们的工做是有交互的。

  在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程当中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案来支撑自动化和研发工做。

  而开发人员也会在运维的初期参与到系统部署中,了解部署架构以及基础设施平台是如何运转的,在资源管理、监控、网络、安全等方面提供系统部署的优化建议。  

  在这期间,自动化测试工程师和开发工程师一块儿基于场景以建立测试脚本,并在产品经理的帮助下扩大其测试范围,而且在基础设施平台集成这些代码和脚本做为持续测试的基础。

  后记

  在这不容易的过去一年中,若是你的2020年是平安美好的,那咱们应该感谢本身以及家人和朋友,若是你的2020没有那么美好,那么让咱们忘掉这段记忆,在2021年从新启航。

  其实无论在哪一个行业,若是你许诺了给本身或者家人一个美好的将来,那么咱们都将需好好规划这个将来,而这个将来,我相信,并不会轻易就达成,因此咱们在这以前必定要先自醒,清晰本身的方向,不能了解本身真实的情况,就不会找到有效的办法去改变现状。

  让咱们继续加油!