高级程序员,你需要养成这7个习惯

初入编程时的我,作为新手,一直很迷茫,从未有方向。

总觉得高级程序员,像天空中的星星高高在上。不知道自己通过怎样的姿势,才可以到达。

直到有一天我阅读了《程序员修炼之道:从小工到专家》,里边的这几条至今受用,以下是我的分享,供也在迷茫期的你参考。如果受用,请把他们记在心里,贴在桌子上。

1.要有负责心

在我们的每日工作中,有一半以上时间是在解决各种Bug。高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。

他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。

责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。

2.掌握代码调试技巧

众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。

这时调试技巧就尤为重要。一行代码的输入输出要清楚,一个函数的输入输出要明确而具体。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。

高级程序员清楚的知道他写的每一行代码在项目中的作用和意义。

3.不要重复造“轮子”

我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。

重复是怎样发生的呢?

-1.程序员们没有意识到他们在重复。

-2.程序员们偷懒,他们重复,因为那样似乎更容易。

-3.同一个团队的几个人重复同样的信息。

新需求持续进行迭代,需求的变化导致代码需要重新修改。这时的程序员也未必是当初那个程序员,导致隐藏的问题产生,产品到用户手上随时可能会爆发问题。

高级程序员会尽力避免开发重复的代码,组装成公共组件库是最好的选择。

4.尽量使你的程序解耦

全球首位计算机博士David Wheeler曾经说过这样一句话,“计算机科学领域的任何问题都可以通过增加一个中间层来解决”。这句话诠释了解耦的重要性。网络七层协议的设计,软件开发的设计中,数据层、服务层和应用层,无不参考这位伟大计算机博士的思想。

生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。

高级程序员开发的代码,既屏蔽细节,又提高了灵活性。

5.适当的进行重构

重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。

什么时间做最好?做的太早,看不出有做的必要性。做的晚,耗费大量的时间周期,会影响当前的项目。

初期的系统架构设计以简单、易用为主。在创业公司3、5个人一个小队,开始了一个项目。在人力资源匮乏的条件下,首要任务是先把系统搭建起来,短期实现基础版。后期随着需求的增加,系统变得庞大。早期的架构明显有些弊端,不能跟随项目进行发展。这时候重构就势在必行了。

高级程序员清楚在什么时间点进行重构。在不影响外部系统的情况,重新开发,提供更稳定的服务。

6.>积累自己的代码库

如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。网络上也可以下载到相关代码,但随手的一个小功能,如果在自己的代码仓库里积累好。也省去了搜索的时间。

高级程序员会积累自己的代码仓库

七.实践、实践、再实践

有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。

高级程序员会不停的实践,总结,再实践

附:1.1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏携程技术中心

干货 | 携程基于大数据分析的实时风控体系

42150
来自专栏CDA数据分析师

原来,你是这样的R语言

? 今天给大家介绍一款在开源世界里集万千宠爱于一身的软件——R语言。 有多受宠呢?简单说,你能想到的地方都有它的身影。 做学术?看看R在各大语言排名系统的表...

266100
来自专栏CDA数据分析师

数据科学入门丨选Python还是R

对于想入门数据科学的新手来说,选择学Python还是R语言是一个难题,本文对两种语言进行了比较,希望能帮助你做出选择。

15300
来自专栏数据和云

遇见未来 | 软件定义数据中心:人类文明运行在软件之上

互联网及其延伸,正在导向我们走向一个新的时代,软件技术在新一轮革命技术中毫无疑问是核心竞争力之一。C++语言发明人Biarne Stroustrup说,人类文明...

38060
来自专栏云计算

评估云的安全性

云安全既是一场短跑也是一场马拉松。这场短跑需要安全团队迅速采取正确的防御措施,以在短期内解决零日攻击 (zero-day attacks) 和持续性的威胁。同时...

24970
来自专栏Java帮帮-微信公众号-技术文章全总结

怎么才算一个合格的程序员?【大牛经验】

产品经理经常改需求这是程序员最头疼的事情,作为程序员应该也站在PM的角度思考,帮助PM分析出本质的需求,这也许可以减少需求的变更。当然,前提是得干一行爱一行,...

20820
来自专栏CSDN技术头条

微服务与单一整体式架构的优劣浅析

责编/钱曙光,关注架构和算法领域 开发者要么出于本能,要么很快就能在痛苦中发觉:即便一个很小的变化也能改变一切。就像攀岩那样,每次挪移都会影响到未来的抉择,因此...

23870
来自专栏华章科技

大数据商业智能的十大戒律

如今,各路企业和组织都不再使用上一代架构来存储大数据。既然如此,为什么还要使用上一代商业智能(BI)工具来进行大数据分析呢?在为企业选择BI工具时,应该遵守以下...

10220
来自专栏程序员互动联盟

给年轻程序员的几句话

我收到了不少新手的来信,他们都希望能成长为一名真正的程序员。我绝对不是第一个谈论这个话题的人,所以,我不知道应该做哪方面的补充。不管怎样,下面的是一些一直记在我...

35590
来自专栏智能算法

98.8秒夺冠,解析腾讯云数智背后的架构与算法优化

背景 11月10日,具有计算奥运会之称的 Sort Benchmark 全球排序竞赛公布了2016年最终成绩,腾讯云大数据联合团队用时不到99秒(98.8秒)就...

40140

扫码关注云+社区

领取腾讯云代金券