如何确定自己是否适合做程序员?
怎样知道自己到底喜不喜欢编程?将来要以此为工作?
程序员成长的必备条件
程序员的工作,说到底就是要编出满足需求的程序,如果这项工作你做得好,你就发展得好,所以,程序员的成长,都是围绕着「编出满足需求的程序来展开的。
第一,程序员要了解工作的终极目标是满足需求。
很多程序员在这一条上就走错方向了,他们误以为,程序员的价值就在于把技术玩得神乎其技,于是,他们脑子里想的,是如何应用各种时髦、炫酷、看起来很牛的技术,而完全忽略了工作的最根本目的是要满足需求。
很不幸,这种程序员还不在少数,而且因为这种想法表面上看起来还挺迷惑人,所以很有市场,我
其至听过一个初创公司的CTO这样说:[如果程序员不用最新最牛的技术,那还做这行干吗?
他们在下作中就是把各种最新的时髦技术都用上,不出意外,这家初创公司已经倒闭了。
如果你能够意识到,程序员的工作是要满足需求,你就已经强过了大部分二吊子的程序员,因为你看问题的出发点就会不一样。在做技术选择的时候,你就会更可能做出正确的选择。
有的程序员会说,需求满足不满足,那是公司的事情,管他呢,我只要学习到最新最酷的技术,公
司倒闭了好歹我还能找到下一份工作。月不说这样的想法很自私,从「学习!的角度说,也是错
的。我接下来要说下一个程序员成长的必备条件-学习能力。
第二,程序员成长必须要有学习能力。
每个程序员都知道,这个行业有浩如烟海的知识量,月不说层出不穷的编程语言和框架,光是各种
概念和风潮就已经让人应接不暇了。这个行业的特点就是技术发展快,没几年就会有一次革命性变
化,几年前微服务还只是一个最佳实践的候选,现在就是开发大型后端应用的标准配置;几年前整
个行业都在说大数据,这几年整个行业都在说人工智能......快速发展的行业,带来了快速增长的知识和技术。
那么,我们是应该展现我们的学习能力,把这些都学了吗?
当然不是!
学习能力的一个很重要组成部分,是知道「哪些需要学,哪些不需要学」,不做区分,什么时髦学什么,别人鼓吹什么学什么,那就会贪多嚼不烂,最后样样都稀松。
为什么我在前面反复强调,程序员应该首先明确自己的领域方向,还有确定自己会在什么类型的公
司工作呢?因为这些选择将决定什么样的知识对你是最有价值的,
假设你确定自己的发展方向是移动端开发,服务的公司定位是初创型公司,那么,一个新的手机操
作系统出现,你就应该更加关注,相对地,一个新的机器学习算法,你就没必要花太多时间了解;一个快速开发模型出现,你值得关注,相对地,一个超重量级的软件管理流程,你知道有这么回事
就足够了。
把学习精力放在和你的方向相关的领域上,你才能获得最佳的投入产出比,当然,并不是说对和自
己领域无关的东西完全不管不问,从扩大自己知识面的角度来说,你需要了解这些知识点,但是你
不应该被这些东西分散有限的时间。
面对新技术变革的挑战,抓住自己专属的领域,伤其十指不如断其一指,先做到一个领域的专家水平。