程序员综合能力参考清单

本文属于原创文章,转载请注明--来自桃源小盼的博客

工作五年了,回头看看走过的路,好多道理真该早点懂得,但当时的我还在努力成为一个合格的程序员,没考虑到上层建筑的事。老话说得好不谋全局者,不足谋一域,更早的从整个软件行业来看待自己的职业,会做出更好的路线选择。

石头是个程序员,热爱新鲜的技术,醉心于这些好玩的东西,感觉它们很酷啊,希望把他们用到工作中,然后发现各种问题,不太实用,只能放弃了这项新技术,然后继续验证下一个想法。

如果我是一个leader,需要这样的员工吗?答案是不一定,他热爱新技术,那只是他的加分项。因为我有另一个判断标准:能完成一件事,能实现业务目标,积极拥抱业务变化,为业务提供更好的技术支持,这是我要的员工。也就是说人得能成事,不仅仅是工作里的分内事。

我发现,如果一个人的全部信息都局限于他的工作领域,那么他的工作不会做的很好。一个人必须有眼光,他可以从书籍或者人们身上,最好是两者兼有,培养眼光。 ——哈维·费尔斯通

管理能力

石头刚入行不久,他幻想某一天也会成为某个小领导,目前来看还得几年,所以说管理能力不是石头该关心的事?反过来看,大部分人通常都会在私底下吐槽领导,就算你直属领导人挺好,你可能还会吐槽上层领导。如果领导经常做出错误的决定,那他怎么成为领导的,又怎么带领团队工作呢?

逐渐去拥有管理能力的过程,会改变看事情的角度。也会将心比心的去问自己,能不能做出更好的决定。如果领导犯错了,我怎么恰当的给出提示。当有一天给到你带领团队的机会,也多少会胸有成竹。

沟通能力

人类之所以统治世界,是大规模群体合作的成果,沟通起到至关重要的作用。如果你能用一句话让别人明白你的意思,那就比用三句话的效率提高了一大截。

能用尽量少的语言描述清楚一个问题,能迅速明白别人话语背后的意思,遇到不清楚的问题,多和相关人员,有经验的人去交流,总会给到你更丰富的信息,减少你的无谓劳动。这就是沟通能力带来的好处。

沟通的过程中管理好自己的情绪,俗话说伸手不打笑脸人,我们的目的是解决问题,而不是比吵架谁赢了。

英文听说读写

编程语言是英文的,这项基本的能力不够好,会在方面掣肘你。代码的可读性跟命名有直接关系。

石头英语能力薄弱,公司要做个活动女神颜值测试,石头给项目起名nvshen,想了想汉语全拼有点低级,又想了个英文的womanGod,感觉还挺满意,其实这是中式英文chinglish。石头又用专业的有道词典,查到了goddess,这次应该没跑了,正宗的。而真相呢?goddess是女神仙的意思,电视剧里的女神仙确实挺漂亮的,它不是地道的英语表达。在这里hottiesexypeach这一类的单词显然更好。

学好英文的唯一方式就是长期的刻意练习,石头狠心报了一个三年的培训班,从最开始的见面时打招呼How are you?到后来的How's it going?。英语交流开始变得顺其自然,看英文材料再也不是一筹莫展,而是迅速把握到重点片段,解决遇到的棘手问题。

话说stackoverflow真香

技术全面性

其实笔者一直在强调全面性,而技术能力是看家本事,技术全面性也不能掉以轻心。难道这是让石头既要会前端,又要会后端,还是能运维?如果这么想说明还是不理解全栈工程师。当下这个时代,知识太多,要装下更多,也要学会放弃很多知识。咱们得把那些行业里大浪淘沙后的真金白银吃进肚子里。

石头他们公司要做一个新项目,一兄弟说既然咱们都有a.example.comb.example.com,咱们再买个新域名c.example.com吧,你听完不想笑吗?

  • 算法
  • 计算机原理&Linux
  • 安全
  • html&css&js
  • Java&Python&php
  • Mysql
  • 网络&http
  • 正则表达式
  • git&开发工具

以上这些基本的技能,尽量都掌握,有了他们,学习其他新技术的周期会缩短,也可以顺畅迁移到任何的新兴技术职业。

特斯拉创始人马斯克有一个故事,每次他认为谁没足够努力把一件事做好,会当场把他辞掉,然后对他说,你的工作我接手了。直到找来新的员工,这期间他会一直承担那个人的工作。如果不具备全面的基本技能,他无法胜任。

凡事讲究个过程

先学习那些跟自身职业有关联的能力,尽量要学以致用,如果未来的一个项目会用到某项知识,就要提前开始学习。

除了学好自身职业的关键知识,还要学会主要领域的关键知识,而一些子领域的知识点,视兴趣、工作情况选择性了解,在实际运用时再做详细研究。

结语

芒格在《穷查理宝典》中提到一个lollapalooza效应,为那些相互强化并极大地放大彼此效应的因素发明的词组。类比到工作中,如果你能综合利用各项能力去完成一件事,最终的结果通常会更好。

你可能感兴趣的:(全栈工程师)