嗨,小伙伴们大家好,我是沉默王二,就是那个吹自己既有颜值又有才华的家伙。今天这个话题我觉得还是值得和大家探讨的,因为好的编程习惯对程序员的职业生涯真的非常重要。

记得我在学驾照的时候,遇到一哥们,之前开过车,属于无证驾驶的那种。但是,这哥们科目二竟然挂了四次,第五次有没有过我不知道,因为我科目三都考过了,那哥们还在练科目二。教练真气的不轻,天天扯着嗓门喊:“你那个脑袋瓜子特么能不能不要钻到车窗外面看,把车窗玻璃给我摇上去,里面难道看不到镜子吗?”

我在排队等车期间真的观察过,尤其是侧方停车的时候,这哥们总是有意无意把脑袋伸出窗外看,玻璃摇上去的时候都能磕到车窗上,看得我都替他捉急。教练说这哥们之前开车的时候养成了这个坏习惯,现在想改就是改不过来;报了 VIP 也没用,最后一次看天意吧,实在是没招了。

不是我吹牛,我科目二就考得挺顺利,一次性过,倒车入库的时候感觉都要压线了,但凭借着两周时间养成的好习惯硬是过了。

那接下来我就来分享三个好习惯,自我感觉良好地认为,值得所有的小伙伴们借鉴。

01、代码一定要规范

任何编程语言都有自己的一套规范,好的规范能让代码更易阅读,能让 bug 没有容身之处。你比如说,Java 类的命名应该遵守以下规则:

  • 必须以大写字母开头
  • 最好是一个名词,比如说 System
  • 尽量不要省略成单词的首字母

来看个例子:

public class Writer {}

再比如说,方法的命名应该遵守以下规则:

  • 必须以小写字母开头
  • 最好是一个动词,比如说 print()
  • 可以包含多个单词,第一个单词的首字母小写,其他的单词首字母大写,比如说 actionPerformed()

来看个例子:

void writeBook(){}

遵守这些规则就像是在马路上遵守交通规则一样,否则后果不堪设想。之前给小伙伴们安利过两个 IDEA 插件,一个阿里巴巴的开发规约,一个 SonarLint,它们在提高代码质量上面的效果杠杠的,我自己一直在用。

还有就是阿里出品的 Java 开发手册,一定要把上面罗列的条目刻到脑子里,至少放一份在桌面上吧,活学活用。

我之前在日企的时候,公司内部就有一份编码规约,关于 ActionScript 方面的,详细程度可以和阿里的开发手册媲美,只不过没有对外开放。好多年过去了,虽然规约上面的内容忘得一干二净,但它给我的印象深刻——就像初恋女友一样,容颜早已忘却,背影却时不时涌上心头(逃。

02、学会阅读源码

源码是香,但我不建议新手一上来就阅读源码,因为很容易劝退。就好像文章开头提到的学驾照一样,如果一开始就从科目三练起,那多半会在路上完蛋。

阅读源码之前,技术储备一定要到位。也就是说科目三练习之前,科目一的理论知识要过关,科目二的基本技巧要掌握,如果说方向盘都不会打,油门刹车都不会踩,档位都不会挂,那教练不被吓出心脏病才怪。

一旦你的技术功底达到一定程度后,想要更上一层楼,阅读源码就变得势在必行了。因为阅读源码有以下好处:

  • 解决 bug。如果 Google、Stack Overflow 上搜不到答案,那么阅读源码几乎就是唯一可行的解决办法了。

  • 知其所以然。比如说,你想知道为什么 String 类是不可变类,那就必须钻一钻源码才能明白。

  • 学习。为什么大牛们都会推荐 GitHub,就是因为它上面的项目都是开源的,源代码是可以直接阅读的。

  • 改造。很多时候,我们已经拿到了一个轮子,但需要对它进行一些改造才能满足需求,那就必须在改之前阅读源码,否则,轮子可能会被改造成锤子。

知道阅读源码的好处了吧?那有小伙伴可能要问,怎么去阅读源码呢,有哪些技巧呢?我来分享一下自己经验:

  • 先阅读文档。知道库是干嘛的,知道类是干嘛的,知道方法是干嘛的,知道变量是干嘛的。

  • 打断点,进行调试。代码之间会有很多调用关系,如果只看不动手和源码干一架的话,很可能不知道代码之间是如何衔接的,通过调试就可以看清楚整个源码之间的脉络。

  • 分享阅读源码后的心得。所谓好记性不如烂笔头,写下来可不只是为了分享自己阅读源码后的喜悦之情,更重要的是,当你忘的差不多时笔记可以唤醒你的记忆。

03、独立思考并解决问题

我的技术交流群里有过那么一个小伙伴,一年多时间过去了,几乎没什么成长,遇到问题就往群里群里扔,或者直接私信发给我。我发现,现在问的问题和一年前问的问题真差不多,无非就是形式上发生了一些变化。

这说明什么呢?这名小伙伴没有学会独立思考,没有学会举一反三。人最珍贵的财产其实不是钱,而是思考的能力,对吧?脑子是越用越灵活的,不用呢,就真的会生锈。

一旦你学会独立思考,那么你解决问题的能力真的是会提升一个很高的档次——从一名合格的程序员蜕变为一名优秀的程序员的关键节点。在我上大专的两年时间里,成长真的特别慢,因为遇到问题我就想着问同学啊,问老师啊,结果是同学和老师进步了,我还是原来的我。

等到大三去实习后,一切就悄然改变了,领导忙得很,压根就没有工夫帮你解决一些鸡毛蒜皮的小问题。再者,真不好意思,不能把底裤漏给领导看啊,没办法,我就只能自己硬着头皮上。

硬上的次数多了,真的发现,原来自己不通过别人的帮助也能够把问题解决掉。渐渐地,随着时间的推移,我在团队里面开始显山露水了。

那怎么才能培养独立思考的能力呢?按照胡适先生所说的,就是质疑一切,然后提出假设,最后去求证。

你比如说,Java 程序员都知道 String 类是不可变的,那假如说它是可变的呢?会是什么样子,研究完你就会明白,原来一个不可变类是这样设计的啊,自己也能搞个不可变类了!

04、最后

好了,我亲爱的小伙伴们,这篇文章就探讨到这吧,也许这些习惯你早已经养成,那再好不过了,我必须要为你点个赞。如果你还保留了其他的一些好习惯,欢迎在留言区昭示天下,别藏着掖着啦,让我们也开开眼界,见识见识,学习学习。

如果觉得文章对你有点帮助,请微信搜索「 沉默王二 」第一时间阅读。本回答已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

我是沉默王二,一枚有颜值却靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,嘻嘻

编程中,有哪些好的习惯一开始就值得坚持?相关推荐

  1. C#编程中的66个好习惯 值得收藏

     在网上发现这篇文章,收藏 时刻看看 学习学习(转) 1. 避免将多个类放在一个文件里面.   2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面. 3. 一个文件最好不要超过5 ...

  2. C#编程中的66个好习惯,你有多少个?(转)

    http://www.cnblogs.com/jxsoft/archive/2012/01/11/2318824.html 转载于:https://www.cnblogs.com/ein-key520 ...

  3. 这5个PHP编程中的不良习惯,一定要改掉!

    在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误.以下这五个错误应该要及时纠正,这是纠正它们的方法. 这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言! 测 ...

  4. 76. Lotus Notes编程中的命名习惯

    程序里实体的命名规则和习惯 在一种开发环境里编程,会用到各种实体(开发中用到的从文件类型.程序的组织单元到数据库对象的种种对象,不用对象一词以与面向对象语言里的对象区分).实体种类的多少,与所用语言和 ...

  5. 吴枫 python小课怎么样_编程中,有哪些好的习惯从一开始就值得坚持?

    电影<喜剧之王>里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物. 即便如此,他对演戏的态度始终认真而可敬.他每天不但锲而不舍寻找演戏机会,还在街坊福利社开了 ...

  6. 项目的命名规范,为以后的程序开发中养成良好的行为习惯

    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 一.包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 1.s ...

  7. 编程中python怎么读-Python编程怎么学习好?老男孩Python入门

    怎么学习Python编程呢?Python是一门计算机编程语言,同时也是一门入行IT行业的首先语言,学习一门新技术最重要的就是去掌握学习方法,对于Python学习来说,对于新手来说相对于是非常简单的,而 ...

  8. Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方

    最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...

  9. python预处理c语言_详解C语言编程中预处理器的用法

    预处理最大的标志便是大写,虽然这不是标准,但请你在使用的时候大写,为了自己,也为了后人. 预处理器在一般看来,用得最多的还是宏,这里总结一下预处理器的用法. #include #define MACR ...

  10. Java编程中“为了性能”需做的26件事

    下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说, ...

最新文章

  1. 太阳电池板特性实验_汕头市通风柜厂家报价-广州中增实验室设备
  2. 剖析一个再次调整的seo排名案例
  3. 【opencv】边缘高斯模糊(canny+dilate+GaussianBlur)Python实现
  4. 联合国和平音乐会主题粮安天下 国际农民丰收节贸易会贺电
  5. 发展中国家如何炼成发达国家?
  6. iOS UIKit:UITableView
  7. java文件拷贝时 buff给多大合适_Java复制文件
  8. linux下安装服务,linux下的软件服务安装管理
  9. 在Makefile中创建文件夹指令
  10. SQL Server:查找表的生成或顺序
  11. python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?
  12. mysql 关键字搜索 排名_mysql 的 查找 与 排序
  13. Instruments工具的使用
  14. HDU - 5950 Recursive sequence(矩阵快速幂)
  15. mysql安装 黑马程序员_MySQL数据库安装教程详解
  16. JavaWeb案例:抽奖小游戏
  17. 计算机会计学ufo报表,UFO报表管理实验报告.doc
  18. 若有恒,何必三更眠五更起;最无益,莫过一日曝十日寒。
  19. cadence xbl封装转AD
  20. 视频格式转换器如何截取视频片段

热门文章

  1. T检验、卡方检验、F检验
  2. 实验室信息管理系统LIMS的25个典型模块
  3. 问题解决:虚拟机无法复制粘贴文件
  4. Android获取外网ip
  5. css 设置冻结表格头,固定/冻结行表头、列表头的做法
  6. dd命令打包多个文件_linux dd命令将系统打包成iso - 卡饭网
  7. A problem occurred starting process 'command 'xxx
  8. 安装及使用RSSHub
  9. TAS5754应用笔记
  10. 中国超级城市的新变局