很荣幸得到墨加的邀请,做了一次线上分享,对我来说一次自我梳理的机会,我把分享的内容整理成这篇文章,时刻激励自己,也希望能给那些和我一样在努力挣扎着的技术同胞们一点参考。
我们先来看看作为一枚程序员,这个行业对我们的要求是怎样的。这是一份工程师的职级表(点进去看),大约是参考腾讯系的技术族职称。我相信看完之后都会有种“路漫漫其修远兮”的感觉,就像游戏中升级打怪一样,开始升级比较快,越往后面越难。这是一场持久战,出征的战士应该时刻都注意检查自己的装备、时刻操练技能。
我们应该具备哪些技能?参考了一些前辈的建议、结合自己的经验,我总结成四方面的能力。
主要指计算机编程功底,比如编程语言,操作系统,算法能力,网络协议等等。这是作为一个程序员的最基本的能力,也叫硬实力。这方面的知识也叫专业知识,通常,我认为这方面的能力也是最容易提高的,只要愿意花时间研究,都能看到成果。
技术不是目的,解决问题才是目的,运用技术来解决问题的能力就叫做业务能力,有时也叫业务感觉。比如,任何一个产品需求,你都能立即抽象出对应的数据模型;一个及时通信的需求,你能不能理解构建处数据模型出来。这方面的能力需要经验的累积和总结,而且和行业相关,你选择的企业,你经历的公司,你做过的产品都影响着你的业务积累。
陈景润是中国一位非常有名的数学家。上个世纪80年代,因为一篇报告文学披露了他在数学研究上的成就,成为一代中国青年的励志偶像。但是,他是一个口才极差的人。他1953年于厦门大学毕业后,分配到北京四中任教,因口齿不清,被学校拒绝上讲台授课,只可批改作业,后被“停职回乡养病”,调回厦门大学任资料员。幸好他被华罗庚发现,调入中科院专门搞研究,这个尖端人才才没有因为口才不好被埋没。
沟通能力的重要性,不用我多说了,码农届单身狗这么多,我想除了忙之外,还有一个比较重要的原因:不会说话。作为程序员,其实我门心中有很多想法,也有自己的技术知识积累,但由于口头表达能力的限制导致你的能力被打打折扣,相信有过多次面试经验的都体验过。
世界上唯一不变的就是变化,人生唯一不能停的就是学习。这是贯穿一生都需要的能力,没有这项能力,你的能力系统将无法更细和维持。
以上分析了几个方面的能力,为了让我们的每一项能力都能提升到已定的水平,我们应当从现在开始就有意识的注意积累和修炼了。前三年,重点积累技术实力;三年或五年以后开始关注你的业务能力和沟通能力;五年以后开始注意自己的影响力和个人品牌。
这是比较大的一块时间,但是我们却很容易忽略这部分时间对我们的意义,很容易在这部分时间中错过自我提高的机会,我看过一些鸡汤文章说过一句话:一个人的命运决定于晚上8点到10点。其实我不太赞同这句话,如果我们连早上9点到晚上8点这么大一块时间都把握不好,还谈什么改变命运呢。
通常我们出来的前半年或一年都会学到蛮多东西。但是到已定的时间之后如果你在的团队中业务压力不大,技术要求不苛刻,你第一年所积累的能力基本都能勉强应对的部分问题,这个时候如果你没有一些自我提高的认识,其实你大部分时间是在重复的事情。时间一长你积累的只是工作年限,没有提高技术。
第二、回头看看自己的代码。结构还有解耦的空间吗,代码够整洁。这些都是一个程序员比另一个程序员高明的“证据”。
你有没有过这样的体验:
1、你在解决某个功能的需求的时候,碰到某个技术问题,通过搜索引擎,东拼西凑的把功能实现了。然后就忙着去做另一个需求去了,你看着实现的功能你以为你掌握你其中的技术,然后你的思维欺骗了你,当某天你和别人说想过技术实现的时候你居然说不出一二三来。
这些或许都是你不轻易间的思维选择倾向,实际上远比我们想象的多得多。
有两本书,一本叫做《影响力》,一本叫做《乌合之众》,这两本书都是从心理学的角度讲述了群众心里的一些特征。群众中两个比较普片的特征是:多元无知和责任分散。
14年在深圳地铁站发生过这样的意见事:一名外企女高管在清晨晕厥卧倒在地铁站,晕厥体位原因导致呼吸不畅,大约50分钟后缺氧身亡。地铁站是一个人群川流不息的地方,类似这样的事很是让人感动惋惜,总能引起一些评论热潮:感叹社会冷漠,人情淡泊。但是很多路人事后也感到很茫然,觉得很奇怪。其实就是两个原因:一、搞不清楚状况,不知道当时人情况任何,这叫多元无知。二、人太多,个人没有清晰的责任,都觉得这么多人我不去做总有人去做这件事,这叫责任分散。
我们所在的团队中也是一个群体,也会有这两个特点。例如团队中貌似谁都在抱怨的问题,去没有人来牵头解决,这是为啥?一、很可能大家都知道问题在那里,问题的始作俑者可能三年前就离职了,对问题的原因不是太清晰。二、leader(很多leader未必能看到问题)都没指定我去做,我没这个责任啊。时间一久,问题越积越多,最终奔溃。
专业类书籍:《thinking in java》、《编程之美》、《重构》、《code clean》、《HTTP 权威指南》