前言
给想成长为高级别开发同学的七条建议
原文链接:https://mp.weixin.qq.com/s/8lMGzBzXine-NAsqEaIE4g
提示:此文章主要总结记录自己的心得
一、可以加强需求评审能力
需求评审是开发工作的主要入口。
对于普通程序员,他只去想这个需求怎么实现,开发大概多久,然后把需求翻译成代码。不会去思考需求是否合理,对自己做的事情有多大价值,不管也不问。
对于高级程序员,并不会一开始就陷入细节,他会更多的从产品出发,去问产品经理为什么要做这个细节,目的是什么。就是会先考虑这个需求是不是合理。
总之,高级程序员并不会一五一十地按产品经理的需求文档来进行后面的开发,而是一切从有利于业务的角度出发思考,对产品经理的需求进行删、改、增。
所以,一定要加强需求评审能力的培养。
二、主动思考效率
普通程序员,知识按部就班的写代码,很少的去深度思考现有的这些代码为什么要这么写,这么写的好处是啥,有哪些地方存在瓶颈,我是否可以把它优化一些。
高级程序员,并不会局限手头的活儿开发就算完事,他们会自己去思考现在的开发模式是不是不够好。我能不能做一个什么东西提升一下效率等等。
所以,第二个建议就是要主动思考一下现有工作中哪些地方效率有改进的空间,想到了就主动去改进它!
三、加强内功能力
那些算是内功呢,就比如学校学过的操作系统,网络等这些基础。
普通程序员,这些基础知识我都会,工作了以后并不会刻意来回头再来加强自己这这些基础上的深层次的提升
高级程序员,非常清楚自己在学校学的只是皮毛,工作之余也会深入的研究Linux、研究网络等方向的底层实现。
事实上,互联网业界的技术大牛们很大程度是因为对这些基础的理解相当是深厚,具备了深厚的内功以后才促使他们成长为了技术大牛。
我很难相信一个不理解底层,只会 CURD,只会用别人框架的开发将来能在技术方向成长为大牛。
所以,还建议多多锻炼底层技术内功能力。
四、思考性能
普通程序员,往往只是把需求开发完成就不管了,只要需求实现了,测试通过了就可以交付了。将来流量会有多大,没想过。自己的服务QPS能支撑多少,不清楚。
高级程序员,往往会关注自己写出来的代码性能,在需求评审的时候,就会估算大概的请求流量,进而根据这个量设计符合性能要求的方案。
在上线之前也会自己进行性能压测,检验一下在性能上是否符合预期。如果性能存在问题,瓶颈在哪儿,怎么样进行优化。
就是一定要多多的主动的去考虑你所负责的业务性能,并多多的进行优化和改进,前提是你要有很深厚的内功,不然你连网络是怎么工作的,系统底层是怎么运行的都不清楚,谈何优化!
五、重视线上
普通程序员,对线上的事情很少去关注,手里记录的服务器就是最近的开发机和发布机,线上机器有几台,流量多大,最近有没有波动这些可能都不清楚。
高级程序员,深深的明白,有条件的话,会尽量多多观察最近的线上服务,观察一下代码跑的怎么样,有没有错误日志,请求峰值时候的CPU,内存的消耗怎么样,网络端口消耗情况,是否需要调节一些参数配置等等。
当性能不尽人意的时候,可能会回头再来思考出性能的改进方案,重新开发和上线。
你会发现在线上出问题的时候,能紧急扑上前线救火的都是高级一点的程序员。
所以要多多观察线上运行情况,只有多多关注线上,当线上出故障的时候,你才能承担的起快速排出线上问题的重任。
六、关注全局
普通程序员,你给我分配那个模块,我就干那个模块,给自己的工作设定了非常小的一个边界,自己所有的眼光都聚集在这个小框框内。
高级程序员,他会关注队内所有项目模块,哪怕不是他负责的,他也会去熟悉,去了解。具备这种思维的同学无论在技术上,无论是在业务上,成长的也都是最快的。在职级上得到晋升,或者是职位上得到提拔的往往都是这一类同学。
甚至有更高级别的同学,还不止于把目光放在团队内,甚至还会关注公司内其它团队,甚至是业界的业务和技术栈。写到这里我想起了张一鸣说过的,不给自己的工作设边界
。
所以要有大局观,不仅仅是你负责的模块,整个项目其实你都应该去关注。也不是连自己组内的同事做的是啥都不知道。
七、归纳总结能力
普通程序员,往往关注的事情做完就拉倒了,很少回头去对自己的技术,对业务进行归纳和总结。
高级程序员,往往都会在一件比较大的事情做完之后总结一下,做个ppt,写个博客啥的记录下来。这样即对自己的工作是一个归纳,也可以分享给其它同学,促进团队的共同成长。
总结
根据所提的建议去改进,有则改之无则加勉,应该自己多多思考问题,从用户角度去思考产品,去完善需求,主动思考效率,多去巩固基础,只有当你有了良好的基础才能对性能优化。
多去关心显示问题,根据线上的实时反馈进行判断,是否需要进行调节,然后多去关注全局,不止步于自己的模块,多去关注整个项目,不要给自己的工作设置边界。
最后就是多去总结,完成一个项目,以后归纳梳理一下,能让自己的技术得到巩固,还能思考那些地方还可以优化等等。