记得最早 13 年我在知乎回答「如何自学 Android 编程」的答案中就提到:技术不是全部,有很多事情比技术更重要。当时没有详细阐述,因为觉得当时只是一个刚入行的小菜鸟,根本没有资格对这个话题大谈特谈,时隔三年,今天我就来说说除了技术,还有哪些我觉得是更重要的。
摆脱技术性思维
技术人最大的优势就在于思维缜密,考虑事情比较全面,逻辑性较强。产品经理提出一些天马行空的想法时,总能第一时间评估可行性,给出实现方案,让看似缥缈的想法变成现实。
然而这种技术性思维很容易形成一种思维定式,直接导致的结果就是不管任何事,总是 if...else,总是从技术的角度出发去考虑事情。这反而会成为技术人的一个限制,造成思维局限,要知道这世界上的事情并不一定非是即否的,很多时候从技术的角度去思考问题反而会大打折扣。
举个例子,产品经理有一个很棒的创意,然后技术部门去评估,觉得实现起来太复杂,于是给出建议,把需求做了大幅简化,这就是典型的技术性思维。而摆脱技术性思维是什么样子的?是先不管它的技术复杂度,应该先仔细评估下这个创意是不是真的很棒,是不是真的对用户很有价值,如果是,那么不管多么复杂,技术都应该想办法去克服,而不应该先觉得实现起来很复杂,而去简化需求。
技术人有转做产品经理的,技术是他的优势,这个优势很明显,然而如果摆脱不了技术性思维,那么将会极大的制约产品的发展。
技术性思维不止影响着工作中,在生活中同样有很大影响,同学聚会,你跟人聊天,大谈特谈你的技术方向,自认为自己写的代码很炫酷、很牛逼,然而在别人眼里,那只不过就是你的职业而已,跟世界上的其他职业没有任何区别,他对你的职业不感任何兴趣。
技术人如果无法摆脱技术性思维,那么可能会极大的影响你职业发展的宽度。
你可能还有别的潜力
试想有这么一个场景,你是公司技术部的一名高级工程师,由于工作表现出色,公司觉得你还有其他潜力,想让你转产品、业务或者管理,这个时候你会怎么抉择?
这个问题不是空穴来风,我身边就有这样的例子,很多工作了 4、5 年甚至更长时间的技术人,遇到过这个情况,很困惑,不知道该怎么选择。
至于困惑的原因主要是以下几点:
1. 技术是所有公司通用的,而业务不是,也就是说技术人跳槽要比其他跟业务相关的岗位容易的多;
2. 业务、管理方面的能力自己比较缺乏,担心做不好;
3. 人的精力是有限的,重心转移也就意味着技术方面会有所牺牲,而自己又不知道公司未来的发展怎么样,万一发展不好,自己跳槽,但是下份工作肯定优先还是找技术岗位,转岗对自己来说其实是一种风险;
我想以上几点是大部分人会考虑的,也是犹豫的主要原因。
这是人的本性,绝大部分人在做职业选择的时候,都会以自己最擅长的技能为第一选择,你擅长设计,不可能去投一个开发岗位,你擅长开发,也不可能去寻求一份产品工作。但是我要告诉你们这是错误的,我一直认为选择职业要以提升自身能力为第一优先,不管是你所擅长的方向还是你从没接触的领域。至于你擅长开发,而不会去投递产品岗,本质上是因为你知道肯定不会被录取。
但是公司内部,技术转业务、转管理,这是一次免费的学习机会,而且薪资、级别很可能还会提升,我想这世上再也没有给你免费学习提升自己能力,又给你发比较高的薪水的机会了吧?
从这个角度出发,我想你应该不会再犹豫了。而我很早就明白这个道理,所以,在公司需要我转岗管理的时候毫不犹豫的转岗,这大半年的时间投入在技术的精力确实牺牲了不少,但是同样我也学习了很多,比如如何管理团队,参与业务、产品,到后面更深的理解商业,参与公司最高层次的决策等。
这些可能如果单纯的做个技术人是我很难接触到的,而且我也从不知道自己在别的领域同样也有潜力。
所以,请一定多接触下技术之外的世界,技术固然重要,但是你不试着接触下别的领域,你永远不知道你自己还有别的潜力没有发挥。
多向身边各行各业的人学习
上面说了,请尽量多接触别的领域,很多时候在你没接触过之前就贸然说自己不感兴趣、来不了之类的话,只是你在为你的懒惰找借口而已。只有接触过,亲自尝试过才有资格说不感兴趣。而怎么接触别的领域呢?
就是多向身边的人学习,你身边有大量的专业人才,设计师、产品经理、运营总监、销售经理等等,这些最宝贵的资源你却从没有好好利用,他们每一个人在他们的领域都是专业的,而你却只顾低头搞技术,从没有跟他们交流过,殊不知他们的身上可能有各种技能、思想、素养值得你学习,交流的多了,你可能会突然发现,除了技术之外,还有很好玩的东西可以学习尝试,不奢望成为职业,培养一门兴趣,增加一项技能也是极好的。
提高你的沟通表达能力
职场中有没有遇到过这种现象,跟部分人讨论事情总觉得不是在一个频道,这其实本质上就是沟通能力与表达能力的问题。工程师中尤其缺乏这种能力,因为长期跟机器打交道,很少跟人接触,自然沟通表达能力较弱,但是这不是借口,为什么有的工程师交流起来很顺畅,而有的就很难交流?
说白了,沟通表达能力其实是情商的体现,程序员相信智商都挺高,然而情商相对较缺乏。
举个例子,听说产品经理又要改需求了:
情商低的程序员通常内心 OS 是:「傻逼,又他妈改需求,真是废物!」,但是倒不敢直接说出来,顶多说:「卧槽,怎么又改了?改了多少次了?老子没法做下去了...」
情商高的程序员内心 OS 是:「傻逼,又他妈改需求,真是废物!」,嘴里说的是:「这改的有点稍频繁吧?这次为什么要这么改?对用户来说有什么区别?体验更好些么?」,如果改的不合理,还会跟产品说明不合理的地方在哪里。
第一种程序员通常是心里不爽,即使觉得需求不合理,但是也不得不做所谓的傻逼产品经理的需求改动,而第二种程序员如果觉得需求不合理,很可能通过一番交流之后,让产品经理乖乖的不改需求了。
不止工作中,我认为沟通能力与表达能力是各行各业,不管工作、生活都非常重要的一个能力。那么沟通表达能力有没有一些技巧呢?
当然有,答案就是「换位思考」。试想如果你能从对方的角度去思考问题,那就会避免很多情绪,比如程序员可能会想:产品经理改需求那肯定不是平白无故的故意改需求,一定是从用户角度出发,且听听原因吧。而如果你懂得换位思考,在跟非业内人交流的时候,你肯定会考虑到对方的专业、方向,不再用你自己领域的术语跟他们交流了,而会想方设法从对方的角度重新组织语言,沟通交流起来会更顺畅,也能极大的提高沟通效率。
那么,有没有一些办法能够锻炼自己的沟通与表达能力呢?我自己的实践是,多参与团队讨论,多与人交流,甚至多写都可以有帮助。
等你真的能心平气和,说服产品经理心甘情愿把改的需求撤回的时候,那么,你的沟通表达能力就有了质的进步。
努力赚钱
说到底,我们认真搞技术就是为了赚钱,不用为钱困扰,这样我们就可以安心做自己喜欢的事,过自己想要的生活。但是你的技术真的发挥了最大的价值么?可能你空有一身好武艺,但是却没有好好利用。在公司工作,只是你技术发挥价值的一部分,但是你不应该只满足于这点回报。你得相信,公司付给你的薪酬要远少于你实际能创造的价值,工作之外,你还有大把的业余时间可以利用,让你的技术得到更多额外的回报。
可能你是接私活、录制收费课程、写书、做技术顾问、做个 App 或者网站等,赚钱的同时,你还可以培养其他方面的能力,或者提升名气,这都是用技术,在为你的未来投资。这种赚钱方式丢人么?简直可笑,技术是自己的能力,利用自己能力,付出了宝贵的时间,不偷不抢,这种赚钱何来丢人一说?我反而认为这是受人尊敬的行为,因为所有为梦想而努力的人,都应该受到尊敬!
当然,如果你的技术能力还不过关,那么请先以提升技术能力为第一导向,之后再考虑如何利用你的技术,帮你创造更多的财富。
别觉得赚钱很俗,我们努力赚钱的意义,都只是为了拥有掌控命运的权利而已!
积累人脉
之前有一个话题争论很火,就是「CTO 要不要写代码?」,我个人认为这个问题有什么过多争论的,CTO 不一定需要写代码,只需要他能搞定事情就行,不管是自己出马,还是让别人来搞定,总之能搞定各种事情就是一个优秀的 CTO。
其中让别人来搞定就需要很广的人脉,而人脉是需要积累的,不管在任何地方,人脉的重要性不言而喻,我就不过多解释了。至于如何积累人脉呢?我想有各种方式与渠道,你以为有些人宁愿花几千块甚至上万块门票去参加一些技术交流会真的是去学习技术的么?那就太天真的,很大的可能只是为了去认识一些行业牛人,积累一些人脉而已。不过想积累人脉,请记住最重要的一点,你不能只奢望那些人脉给你提供什么,你得先想清楚你能给他们带来什么,所有人的时间都是宝贵的,任何人都没有责任一直给你提供无偿帮助。
最后,以上是我自己的看法与人生经验,不期望每个人都认同,仅做参考,不喜勿喷。无论如何,这些人生经验在别处可是没人愿意分享出来的,希望对你们有点用。
【本文为51CTO专栏作者“stormzhang”原创稿件,转载请联系原作者(微信号:googdev)】