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

电影《喜剧之王》里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物。

即便如此,他对演戏的态度始终认真而可敬。他每天不但锲而不舍寻找演戏机会,还在街坊福利社开了一个戏剧训练班,更实在逼仄房屋的床头,一遍遍看着《演员的自我修养》。

少有人专门去看这本书到底讲了什么,却也能从星爷身上感知,对待职业的态度和修养被刻画得如此淋漓尽致,大概也是这本书所传递的精神吧。

在职场上,在编程界,也流传着程序员的自我修养。

开发人员的技能范围很广,往往不会根据工作年限来评价一个人的才能。所谓五年、十年的“工作经验”也不一定是有能力、高效开发人员的佐证。

培养好的编程习惯,形成专业的风格和极致的治学态度,是一名优秀的开发人员会考虑的问题。在追求卓越的过程中,这些习惯都会积累下来,形成人生道路上优秀的修养和品质。

那么,编程中,尤其是对于初学者而言,有哪些好的习惯从一开始就值得坚持呢?我总结出以下7条良好的编程习惯:

01 代码规范
一切皆对象。程序员初学者在规划代码结构的时候,也需要有面向对象的思维方式,培养良好的代码规范。

对于个人而言,良好的代码规范能提升代码质量,减少低级的代码错误。

对于团队而言,每个人写代码的思维方式、技术水准不同,保持一致的规范,能保证项目结构不混乱调用,有效降低写作沟通成本,更好地保障线上的稳定性。

很多小白初学python,会发现在python里涉及到很多名字,模块名、变量名、函数名、类名。给它们命名的时候,往往为了节省时间而喜欢缩写命名。

例如,使用‘r’来代替圆的半径而不是用‘radius’;更夸张的,喜欢使用拼音缩写,比如xswl、kcsl、zgxm……

这是非常错误的示范,因为当你投入大量的编程工作,你会发现一开始节省时间的缩写,之后会浪费更多的时间,去猜测缩写变量名代表什么。

无论如何,使用有意义的变量和函数名称。 除命名外,布局规范、注释规范、代码使用规范等,都需要学习和遵守。

最直接的办法,遵循公司已有的代码规范,从简单的变量命名到模块划分,一些现有规则可以导入到编码工具中。

还可以用检测工具来规范。每一门编程语言,都有属于自己的编程规范,通常也有属于自己专属的检测工具,如Python有PEP8、Java有CheckStyle等,一开始你可以用一个工具来,帮助自己检测程序是否符合规范,结构是否良好。

正如风变编程Python小课第一节,吴枫老师引用的《Python之禅》,在Python届,用来阐释代码规范是最合适不过了:
优美胜于丑陋(Python以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,无复杂的内部实现)
复杂胜于凌乱(若复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

代码的可读性很重要,优美的代码是可读的。

02 阅读源码可以提高编程能力
学习都是从模仿开始,路遥在创作《平凡的世界》之前读了大量的“名著”,他把所有尊敬的作家都安放在历史为他们准备的“先圣祠”中,让他们各自光芒四射,照耀大地,才创作出百万巨著《平凡的世界》。

程序员亦是如此。

编程有时就像写作文,提出问题,分析问题,解决问题。要想提高写作文的水平,就要增加阅读量,读高水平的作文,从中学会模仿作文的套路,从而写出高水平的作文。

在编程学习中,阅读源码我们可以学到很多东西:别人高效的代码书写、别人对设计模式的熟练使用、别人对整个架构的布局等,不仅能帮助我们在早期形成良好的代码风,更提高我们debug的能力。

因为不管是入门时阅读教程里的示例代码,还是进阶时阅读优秀项目源码,会使用固然重要,但知道为什么这么使用同样重要。

多阅读、记录一些源码作品吧,这将帮助你写出既可执行,也能别人读得懂的代码,对代码的维护和扩展大有好处。

03 掌握多种语言
刚入行的程序员都有一个梦想,希望利用自己掌握的编程语言,实现心中所想象的应用场景。

但真正开始工作后,发现仅用自己掌握的编程语言去圆梦,几乎是不可能的事情。因为很多项目几乎不是一个人做的事情,需要一个团队,甚至几个团队协作。

每门程序语言都有其最适合的领域,当你需要解决问题时,你要找到一个最适合的语言来解决这些问题。

如果你需要性能,可能C/C++是首选,如果你需要跨平台,可能Java是首选,如果你要写一个Web上的开发程序,或是处理文本和别的应用交互,可能 Python会是最好的。

所以,花一些时间去探索一下其它你并不熟悉的程序语言,能让你的眼界变宽,知识面越广阔,思考问题也就更为全面。

04 培养代码模块化思维
生活没有什么是独一无二,我一直相信,我们所要的生活,所面临的问题,肯定前人都有经历过,更多时候我们只是重走前人的足迹而已。

如同一个个模块,因为前人有去经历、感悟、总结,最终将所有优秀的、稳定的、持久的因素结合在一起,形成我们所看到的,一般人能接受的模块。

模块化的思维方法是一种站在巨人肩膀上的思维方法。

它对工作效率的优化帮助很大:
帮助我们把复杂的工作分解,分而做之,降低难度;
帮助我们更好把握工作中的重点和主次,合理分配时间和精力。

一个优秀的程序员,遇到大的难题,能够将问题划分到功能相对独立,输入输出关系相对明确的模块实现和组合的问题。

并且,他们的思想往往不会局限于当前的工作任务里,更会去看自己写的模块,是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。

这样编写代码,还能够作风险隔离。

05 理性面对不同的编程语言或操作系统
开发者的世界里总是充斥着各种各样的争论,从编程语言、框架甚至到编辑器、Windows/Mac 系统,都可以成为争得面红耳赤的“宗教战争”。

就拿编程语言来说,人们往往偏向于喜欢自己用得熟练,用得多的那个语言。语言好坏之争,就和争谁的女朋友漂亮一样,我当然觉得自己的女朋友(虽然是null)最漂亮,但是别人并不这么觉得。

但任何语言都是为解决问题服务的。

从来没有什么最优秀语言,能够让一个人变得聪明又厉害。任何运用得当的开发语言或者技术,都会让精神愉悦。

Java也好,C#也罢,都是开发者们用来解决问题的工具。不要过于陷入浮躁的争论,而是暗示自己要理性去分析和面对,才能客观地做出正确的选择。

06 学会独立思考解决问题
作为一枚程序员,我们天生就是来解决问题的。因此最忌讳的就是,遇到困难时,没有经过自己的思考和检索,就截图抛向别人。

如果你入门学编程,一定要养成这样的习惯:在问别人问题之前,先自己搜索一下吧。

当你有什么需求的时候,往往别人也有这个需求,而且往往也有了相应的工具去解决你这个需求。用好搜索功能,Google +Stack Overflow + GitHub 能解决你的大部分编程问题。

07 时刻保持求知欲
除了写代码,程序员的日常还包含编写需求文档、设计数据库结构等,这些技术性工作可能已经排满了工作的八小时。

因此,很多人常常疲于去训练非技术的软技能。

很多程序员被挂上“直男”和“不善沟通”标签,是因为他们并没有刻意去训练沟通能力和管理能力。但往往这些能力,能带来意想不到的价值。

比如一个善于沟通的开发,可以更好地阐述用户故事,无需借助行业术语(那些让别人把他们当作外星人的话)就能把技术细节讲给外行人听。

能够问出更好的问题,进而更深入地理解客户需求,最后才能实现最漂亮的东西。

就像学员喜欢听吴枫(Python小课的老师)上课,觉得吴枫充满魅力,讲的课堂充满意思、通俗易懂。其实是因为吴枫涉猎广泛,除了专业知识外,刻意训练许多学科的技能,比如学沟通,学团队合作,学写作,好读文史、读心理、读科学等。

一定要时刻保持求知欲。

互联网时代的技术来得快,去得更快。如果没有足够强的求知精神,就无法跟上变化。

10多年前,做前端页面,写js脚本都是直接html里写

jquery来了,不用自己写一堆操作DOM的原生js API了,也能较好的解决浏览器兼容性问题。

到后来,js模块化的概念来了,典型的如requirejs,解决了js文件按需分块加载的难题。

到现在,react、angular、vue的崛起,jquery基本上已经到了退出历史舞台的地步了。

你苦心钻研多年引以为傲的技术,往往可能一夜之间就没有用武之地了。

因此,保持求知精神,既敢于在技术栈在保持不断地更新,也不排斥接纳非技术实力的学习,才是一个卓越者的胸怀的见识。

08 尾声
我们每个人,都不愿成为一个被生活牵着鼻子走的人,于是会把一个个小习惯融入到自己的生活,尽力去成为我想要成为的那个人。

有的好习惯做着做着就习惯了,谈不上坚持,最终成了喜欢的自己,明白了自律真的给人自由。

编程同理。希望每个初学者,都能尽早领悟且找到属于自己学习的那份好习惯,并自然而然地保持,最后成为超级厉害的人。

-END-

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

  1. 10条PHP编程习惯助你找工作

    过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐 趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人, ...

  2. 良好编程习惯的重要性

    良好编程习惯的重要性 1.拷贝字符串使用memcpy.虽然memcpy可以拷贝字符串,但是不严谨.当项目中有新手加入时,由于新手水平有限,在模仿前辈写代码时,使用memcpy不恰当,造成程序莫名错误或 ...

  3. php5.5参数配置优化,5个PHP性能优化的编程习惯

    在网上搜索了一下编程优化我们都会看到大量的文章,但都是一样的内容,下面我来给各位整理了我觉得最有用的5个PHP性能优化的编程习惯分享给各位,希望文章能给各位带来帮助哦. 1. 不要随便就复制变量 有时 ...

  4. php编程习惯,经验分享:PHP编程的5个良好习惯(二)

    学习良好的编程习惯能够提高代码质量和效率.像其他语言一样,开发人员可以用 PHP编写出各种质量级别的代码.根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效 ...

  5. python编程基础(四):编程习惯、代码规范、易混淆之处

    目录 编程习惯 代码规范 python中self的作用 易混淆之处 编程习惯 1. 添加主函数if __name__ == 'main': 2. 使用project_path = os.getcwd( ...

  6. php编程习惯,PHP 编程的 5个良好习惯

    根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯.不良的编程习惯将会影响到效率.本文通过展示一些良好的编程习 ...

  7. 好的Java编程习惯

    养成良好的java编程习惯 1.        应该在每个程序的开始都加上注释,解释该程序的目的.作者以及程序最后一次被修改的日期和时间. 2.        使用空行和空格来增强程序的可读性. 3. ...

  8. 程序员偷偷深爱的 9 个不良编程习惯

    我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙.同样的,我们都违背过一些编程的基本规则,并且都会坚定地表示这种行为是不可取的.但我们就是偷偷爱着这些不良的编程习惯. ...

  9. 程序员偷偷深爱的9个不良编程习惯

    新媒体管家 下面这9个编码习惯,虽然在编程规则中是被驳斥的,但我们很多人就是会不由自主地使用它们. 我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙.同样的,我们都违背 ...

最新文章

  1. html登录界面设计代码_.NET 5 开发WPF - 美食应用登录UI设计
  2. 大剑无锋之分布式和微服务分别是什么?【面试推荐】
  3. 第三次学JAVA再学不好就吃翔(part60)--Arrays类
  4. 粤嵌gec6818项目设计_西安市幸福林带景观及亮化设计国际竞赛终期评审会顺利举行...
  5. Protobuf3详细介绍
  6. linux添加usb打印机,打印机配置和添加本地打印机
  7. 《算法图解》---笔记
  8. 学习笔记(4):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
  9. matlab实现zca去白化,白化算法
  10. 雷电模拟器脚本编写_你有好的引流话术, 还需配上脚本这样的全自动引流工具, 才是高效的引流方法...
  11. Unity MVC实现背包系统(2)
  12. 神经网络学习——第一个代码学习
  13. Android 逆向之smali
  14. Eason Chan
  15. 用python解决数学问题
  16. 华东师范大学 硕士毕业论文模版 overleaf版
  17. 在ALLEGRO中添加中文字体
  18. 怎么提高公文写作水平?原来这就是公文参考模版
  19. [CODE【VS】]江哥的DP题d
  20. Android手机间语音通话使用webrtc消除回音

热门文章

  1. TC27x寄存器学习
  2. java 反射机制中的 Filed (属性反射机制)
  3. 语言表达的6c原则是指什么,第二讲 BEC写作的语言、语法、组织和文体
  4. 【瑞吉外卖】学习笔记-day1:项目介绍及后台初识
  5. C++数论库:NTL
  6. 【WiFi】WiFi6E 6G 信道与频宽对应关系
  7. 2020 GDUT Winter Personal Training Contest I (Div. 2) B - Divisors of Two Integers题解
  8. Wasserstein距离 和 Lipschitz连续
  9. 服务器和交换机物理连接_二层、三层及四层交换机的区别 | 小知识
  10. Typora里如何调整图片大小