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

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

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

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

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

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

那么,编程中,尤其是对于初学者而言,有哪些好的习惯从一开始就值得坚持呢?

通过查阅收集国内外一些优秀程序员,公开分享的方法和经验,我们总结出以下7条良好的编程习惯:

1.代码规范

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

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

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

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

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

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

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

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

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

正如风变编程Python小课第一节,吴枫老师引用的《Python之禅》,在Python届,用来阐释代码规范是最合适不过了:

优美胜于丑陋(Python以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,无复杂的内部实现)

复杂胜于凌乱(若复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

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

2.阅读源码可以提高编程能力

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

程序员亦是如此。

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

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

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

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

3.掌握多种语言

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

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

(图片来自网络)

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

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

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

4.培养代码模块化思维

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

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

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

它对工作效率的优化帮助很大:帮助我们把复杂的工作分解,分而做之,降低难度;

帮助我们更好把握工作中的重点和主次,合理分配时间和精力。

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

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

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

赫伯特·西蒙就讲过一个关于制表匠的故事。假设每只手表都有1000个零件,第一个制表匠一个零件一个零件地安装,如果他出了一个小错,或是工作被打断,就得从头再来;

第二个制表匠则把手表分为10个模块,每个模块中又有10个小模块,每个小模块中有10个零部件,那么,即使他装错了,或是工作被打断,损失的只是工作的一小部分。

时常训练自己的模块化思考,能够在你编程时具备这种风险隔离意识,规避出错带来的不必要劳动。

5.理性面对不同的编程语言或操作系统

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

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

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

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

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

6.学会独立思考解决问题

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

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

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

7.时刻保持求知欲

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

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

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

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

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

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

一定要时刻保持求知欲。

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

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

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

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

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

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

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

8.尾声

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

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

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

想要获取相关免费资料给UP来个素质三连,看主要的联系方式!

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

  1. 吴枫 python小课账号_无门槛速学编程——Python小短课,自上而下分而治之

    [Python小短课 11]自上而下,分而治之 做任何事都需计划,编程也是. 譬如写文章要列大纲.作画要想布局,编程也需先谋全局,而后思虑细节. 就以上回说到的"找宝藏"这个程序举 ...

  2. 吴枫 python小课账号_吴的解释|吴的意思|汉典“吴”字的基本解释

    [丑集上][口] 吴·康熙筆画:7 ·部外筆画:4 俗吳字.[吳志·薛綜傳]無口爲天,有口爲吴.[正字通]此借字形爲諧語,非吴字本義.[正韻]吳字註亦作吴,非. (吳)[古文]

  3. python小课网站_攻陷朋友圈的8.9元Python小课,有哪些新套路?

    欢迎关注"创事记"微信订阅号:sinachuangshiji 文/套路编辑部 来源:运营研究社(ID:U_quan) 记得有那么一段时间,我经常会在朋友圈刷到同一条广告.神奇的是, ...

  4. python骗局-如何识破python小课骗局_怎样选择学校呢

    如果想要得到更好的Python培训学习效果,建议需要学会识破python小课骗局的方法,这样才能真的想选择合适的学校,也能选择更为专业的课程培训学习,自然就会有更好的发展优势,由于现在提供Python ...

  5. python小课网站_全民编程——Python小短课,美好的重复

    [Python小短课 9]美好的重复 美好的重复?前提是别人帮你重复. 你作为Python世界的唯一上帝,CPU.内存这些忠心耿耿的奴仆时刻等着你一声令下,吭哧吭哧地开始干活. 譬如你累了,希望有个人 ...

  6. 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?

    之前好多人私信我python数据分析怎么快速入门,我在这里直接介绍一下自己的心得经验吧. 要学习pandas,我并不建议看大量的教程,等看完教程,天都黑了,一觉醒来热情都凉了. 我的建议是,首先放平心 ...

  7. 熊猫的python小课怎么样_如何评价熊猫小课?

    因为之前有报过熊猫小课的课程,所以我就简单说一下我自己对它的看法吧. 我第一次接触熊猫小课是在18年的3月份.第一个免费课程是时间管理课程.刚开始无论是从它的上课模式,或者说是精彩的内容上讲,我都完全 ...

  8. 风变编程python小课怎么样_风变编程Python小课最近很火,大家学完感受如何?

    我也是上了体验课之后想了一天交了全款.自以为自己真的是一个拖延症患者加三分钟热度的人,这也是我为什么想了一天的原因.后来实在是因为编程未来的适用范围太广了(前面很多答案说的很棒我就不重复啦)加上下个学 ...

  9. 微信上python小课 骗局_聊聊 Python 做微信小程序自动化,那些踩过的坑?

    1. 场景 之前写过 微信小程序的几种方式,对于有源码的小程序推荐使用微信开放的 SDK 来做自动化,否则只能使用原生或 WebView 的方式. 最近在用 Python + Appium 在微信小程 ...

最新文章

  1. 一步步学会使用ASP.NET 4 WEB应用程序中使用URL Routing(翻译)
  2. adobe就不敢把融合做得更好一点?
  3. spring中controller与jsp之间的那些事儿
  4. Tableau 必知必会之使用环境的配置需求
  5. 跟我一起学.NetCore之依赖注入作用域和对象释放
  6. 4、requests-基础
  7. 尾气冒黑烟是什么问题_汽车排气管冒大量白烟?车肯定有问题
  8. promise 为什么出现
  9. spark线性svm支持向量机 小结
  10. Linux 与Windows 7双系统默认引导顺序的修改
  11. python发音翻译-python实现在线翻译
  12. 3D视觉点云数据处理十大方法
  13. OBS直播影视使用虚拟声卡
  14. App自动绑定的五大应用场景
  15. 字谜游戏Java程序实现
  16. block locality
  17. 虚幻C++入门个人笔记(4)——UMG、网络
  18. 中国电子学会图形化四级编程题:小猫钓鱼
  19. MS5607 气压计调试记录
  20. 360强行卸载金山网盾 致大量用户系统异常

热门文章

  1. 程序编写界的不满意,Perl是他最反感的编程语言之一
  2. 云原生爱好者周刊:比 runc 更神奇的容器运行时 - Sysbox
  3. 如何在Python中调用RNAfold接口,即RNA扩展包
  4. linux 时间戳几字节,时间戳汇总-jennyljd-ChinaUnix博客
  5. 喜茶/农夫山泉/星巴克/这些成功案例,有些人仿佛已经嗅到了什么
  6. 实心变压器和空心变压器的区别和联系
  7. 安卓自定义View——网易颜色渐变效果指示器
  8. debian下基本系统和gnome桌面安装
  9. Hadoop出现的错误及处理
  10. systemtap 学习