什么是程序员的全部?
程序员回答一定是技术啊,学技术、用技术、研究技术。但是今天我要告诉你的是:对于程序员而言技术是非常重要的,但是它不是一个程序员的全部。
接下来我们来详细聊聊:
一、技术性思维
技术人最大的优势就在于思维缜密,考虑事情比较全面,逻辑性较强。产品经理提出一些天马行空的想法时,总能第一时间评估可行性,给出实现方案,让看似缥缈的想法变成现实。
然而这种技术性思维很容易形成一种思维定式,直接导致的结果就是不管任何事,总是if...else,总是从技术的角度出发去考虑事情。这反而会成为技术人的一个限制,造成思维局限,要知道这世界上的事情并不一定非是即否的,很多时候从技术的角度去思考问题反而会大打折扣。
举个例子,产品经理有一个很棒的创意,然后技术部门去评估,觉得实现起来太复杂,于是给出建议,把需求做了大幅简化,这就是典型的技术性思维。而摆脱技术性思维是什么样子的?是先不管它的技术复杂度,应该先仔细评估下这个创意是不是真的很棒,是不是真的对用户很有价值,如果是,那么尽管很复杂,技术也都尽所能去想办法克服,而不应该先觉得实现起来很复杂,而去简化需求。
技术人有转做产品经理的,技术是他的优势,这个优势很明显,然而如果摆脱不了技术性思维,那么将会极大地制约产品的发展。
技术性思维不止影响着工作,在生活中同样有很大影响,同学聚会,你跟人聊天,大谈特谈你的技术方向,自认为自己写的代码很炫酷、很牛逼,然而在别人眼里,那只不过就是你的职业而已,跟世界上的其他职业没有任何区别,他对你的职业不感任何兴趣。
技术人如果无法摆脱技术性思维,那么可能会极大地影响职业发展的宽度。
二、你可能还有别的潜力
试想有这么一个场景,你是公司技术部的一名高级工程师,由于工作表现出色,公司觉得你还有其他潜力,想让你转产品、业务或者管理,这个时候你会怎么抉择?
这个问题不是空穴来风,我身边就有这样的例子,很多工作了 4、5 年甚至更长时间的技术人,遇到过这个情况,很困惑,不知道该怎么选择。
至于困惑的原因主要是以下几点:
1.技术是所有公司通用的,而业务不是,也就是说技术人跳槽要比其他跟业务相关的岗位容易得多;
2.业务、管理方面的能力自己比较缺乏,担心做不好;
3.人的精力是有限的,重心转移也就意味着技术方面会有所牺牲,而自己又不知道公司未来的发展怎么样,万一发展不好,自己跳槽,但是下份工作肯定优先还是找技术岗位,转岗对自己来说其实是一种风险;
我想以上几点是大部分人会考虑的,也是犹豫的主要原因。
这是人的本性,绝大部分人在做职业选择的时候,都会以自己最擅长的技能为第一选择,你擅长设计,不可能去投一个开发岗位,你擅长开发,也不可能去寻求一份产品工作。但是我要告诉你们这是错误的,我一直认为选择职业要以提升自身能力为第一要素,不管是你所擅长的方向还是你从没接触的领域。至于你擅长开发,而不会去投递产品岗,本质上是因为你知道肯定不会被录取。
但是公司内部,技术转业务、转管理,这是一次免费的学习机会,而且薪资、级别很可能还会提升,我想这世上少有这种既给你免费学习提升自己能力,又给你发比较高的薪水的机会了吧?
从这个角度出发,我想你应该不会再犹豫了。而我很早就明白这个道理,所以,在公司需要我转岗管理的时候毫不犹豫地转岗,这大半年的时间投入在技术的精力确实牺牲了不少,但是同样我也学习了很多,比如如何管理团队,参与业务、产品,到后面更深地理解商业,参与公司最高层次的决策等。
如果单纯地做个技术人,这些可能是我很难接触到的,而且我也从不知道自己在别的领域同样也有潜力。
所以,请一定多接触下技术之外的世界,技术固然重要,但是你不试着接触下别的领域,你永远不知道你自己还有别的潜力没有发挥。
三、多向身边各行各业的人学习
上面说了,请尽量多接触别的领域,很多时候在你没接触过之前就贸然说自己不感兴趣、来不了之类的话,只是你在为你的懒惰找借口而已。只有接触过,亲自尝试过才有资格说不感兴趣。而怎么接触别的领域呢?
就是多向身边的人学习,你身边有大量的专业人才,设计师、产品经理、运营总监、销售经理等等,这些最宝贵的资源你却从没有好好利用,每一个人在他们的领域都是专业的,而你却只顾低头搞技术,从没有跟他们交流过,殊不知他们的身上可能有各种技能、思想、素养值得你学习,交流的多了,你可能会突然发现,除了技术之外,还有很好玩的东西可以学习尝试,不奢望成为职业,培养一门兴趣,增加一项技能也是极好的。
想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,可以选择学好C/C++。如果感觉自学C/C++编程有困难的话可以湫湫扫下方二维码。这里是编程爱好者的聚集地,欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。