cncici 2019-04-26
今天给大家推荐一个技术大牛,大飞,我还是最近认识的,当时看了他的号一篇文章《不懂算法,还想进大厂?做梦吧》,读完文章,感觉非常赞,立马收藏了一下。
后来我还特意在自己微信中搜索了一下,说不定有这位朋友,可惜没有搜索到。
巧合的是,过了两天他竟然看到我号加我了,于是我们做了一些交流,他在运营号上也遇到一些问题,也咨询了我能否推荐一下他,在看了他的大多数文章后,我决定推荐给大家。
本号的文章偏向于纯技术输出,当然我最近也在不断输出一些学习方法,但是大飞,拥有多年的技术经验,文章所谈及都是一些比较值得思考的。
他是微信早期员工,腾讯高级工程师,技术leader。高中开始接触编程,大学校招实习生进入腾讯,在腾讯工作十年。算是微信部门的资深大牛,做过一线技术小兵,带过团队,做过产品,在工程技术上有丰富的经验。平时喜欢思考,对技术,产品,商业,技术成长规划等都有独到的见解。
最近他开了个公众号,跟读者分享他的一些经验和想法,汇集了他在腾讯10年的感悟,无论是技术,产品开发都有独到的见解!比如下面这几篇文章:
1. 写给期待年薪百万的IT同学
来说说工程类的。我周边有不少同学是本身是搞服务器开发的,有的转去做了数据推荐和AI。有的还做的不错。核心能力,我给划分了三个等级:
第一级,能够读懂英文的paper,完全理解paper里面描述的算法。知道算法的优劣和适用的场景,并且可以用自己熟悉的语言实现出该算法。这个算是工程里面的一流水平了,应该可以拿到很高工资。
第二级,不能完全理解paper和算法,但知道算法在某些特定场景下的效果和调优的方式。可以在GitHub上面找到合适的开源实现,进行使用甚至优化。如果有丰富的项目经验和实操经验会加分。
第三级,完全看不懂英文的paper,知道常用的算法,但无法区分出各种算法的优劣和适用场景,会用python,C++等语言的库进行算法组装。
大家看完上面的描述,觉得,数据,AI的核心竞争力是什么?是python语法,还是python的库?当然不是,我觉得最核心的还是算法本身,只不过对算法的理解程度的不同,会处于不同的等级。这里英文的阅读能力对很多人来说,也会成为一道坎。
目前自学和参加培训的同学大部分处在第三级,甚至第三级都没达到。有参加培训的同学过来咨询我。我问他目前是怎么学的。他说在看培训的视频,书太难了,看不懂。如果是这种情况,恕我直言,可能永远没有机会进阶到第二级了。因为后面需要看的书籍,只会比入门书籍更难。
2. 一行代码引发的恐惧
那个时期,我们写代码都是特别小心的,变更,更是极度的谨慎。所以使得自己对代码变更有了一种焦虑和恐惧的心理。至少在那时候,写代码不是一件轻松的事情。
这个事情,我现在回过头来看。你可以认为有一部分是人的原因,但仔细的想想,写代码不出bug ,几乎也是极难做到,所以这里在研发流程上,其实也是有缺失的。
前期因为业务发展太快,团队的整体人力跟不上,所以,一开始很多流程,都是很原始的,那时候,是想做但客观条件不允许。
后来,业务稳定了,流程就规范了不少。比如引入了coverity的代码检查,也推行过测试用例覆盖,持续集成等。
但最终,并不是所有的流程都延续了下去。比如,代码测试用例覆盖,有的团队到后面就放弃了,需求变化太快,测试用例成本太高。
coverity倒是自动化程度高,没啥人力投入,执行了下来。
但我相信不是所有的公司,所有的团队,都会有这种规范的流程。一个是研发流程成熟度建设的问题,但除此,还有成本,业务迭代速度。在互联网,产品高速迭代的时候,产品都还没有存活下来,成熟流程就更不太可能有了。
综合来看,一种规范,但相对较重的研发流程的建立,应该也是根据具体情况而定的。需要考虑产品的形态,产品迭代的速度,团队的人力预算成本,产品的生命周期等等。当然,无论怎么说,反正这不是个人可以决定的事情,如果你所在的团队有完善的研发流程,那是最好的事情,但如果没有那么完善,自己又能够做些什么呢?(未完,可以观看公众号原文)
限于篇幅,他还有很多不错的文章:
一行代码引发的恐惧
如何成为一名优秀的架构师
你,技术,自信吗?
我的程序员入门之路
技术人, 请不要封闭自己
可能主要是因为我本身不具备太多的经历,他的很多思想是本号没有办法能教授给大家的,算是做一个互补吧,可以扫码关注。而且在运营初期,所以他的微信号是对外开放的,关注同时还能加一下他的个人微信,未来说不定有所用处: