• 技术从业者的未来(转)


     

     

      前言

      新的一年,在暂时没有工作以及家庭的双重羁绊的这个周末给自己放了一天假,这样的时间尤属难得。  

      我在《致所有.Net者和有梦想的朋友们 - 共勉》这篇文章中提到过,在如今的工作生活不分家的快速节奏中,为了生活和家庭,我们必须负重前行,即使每天的时间大部分都给了工作以及家庭,但是我们还是要定期给自己清理负面情绪以及释放压力,因为只有自己能持续成长,才能更好的抵御年龄所带来的危机。  

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

      说话即生产力   

      对于大部分技术人员来说,可能我们都不会注重自己的说话,因为我们很多人都没有意识到说话所产生的生产力。

      为什么说话就是生产力?

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

      举个例子,如果你是CEO,你希望自己重要的话语能被即刻理解和付诸行动吗?是的,所以你希望的是说话即是生产力。

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

      所以好的说话,就是生产力,能够产生很多积极作用。

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

      一个显而易见的例子是,在会议上,我们较多的人会把话题越拉越远,就像脱缰野马,以致完全脱离主题,久而久之,给人的印象就是,你说的话中,有意义的并不多,可参考度低。这无形中是在降低自己的影响力。

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

      如何提高自己的说话

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

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

      一种显而易见的提高方式是,首先在心里要暗示把自己放在重要的位置上,希望自己的说话能产生生产力,那么自然而然你就会注重自己的说话,就会在说话前进行一定的逻辑梳理,使自己的表述清晰有序。

      所以一切的东西,都是在于你把自己的一个定位在哪。你在意自己说话是否可以产生生产力,那么你就要把时刻把自己放在高的立场上,注重自己说话。

       

      像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年重新启航。

      其实不管在哪个行业,如果你许诺了给自己或者家人一个美好的未来,那么我们都将需好好规划这个未来,而这个未来,我相信,并不会轻易就达成,所以我们在这之前一定要先自醒,清晰自己的方向,不能了解自己真实的状况,就不会找到有效的办法去改变现状。

      让我们继续加油!

    如果你觉得该文章还不错且有所收获,请右下角推荐一下,也可留下您的问题或建议,让我们共同进步。 原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址!

    作者:lex-wu,原文链接:https://www.cnblogs.com/lex-wu/p/13086475.html

     
  • 相关阅读:
    delete 用法总结
    js数组去重的常用方法总结
    学习中 常用到的string内置对象方法的总结
    Array 对象常用的方法总结
    javascript中运算符有哪些? 他们的优先级 呢?
    那些年前端经典面试题
    HHVM 3.0 发布,执行 PHP 的虚拟机
    【问底】徐汉彬:PHP7和HHVM的性能之争 (真是学到了很多)
    mysql 简单sql语句
    【问底】王帅:深入PHP内核(一)——弱类型变量原理探究
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/15483663.html
Copyright © 2020-2023  润新知