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

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

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

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

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

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

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

通过查阅收集国内外一些优秀程序员,公开分享的方法和经验,我们总结出以下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. 《数据结构》知识点Day_02
  2. 福禄克2500V数字绝缘电阻测试仪开箱与上手实测
  3. 【RS】Amazon.com recommendations: item-to-item collaborative filtering - 亚马逊推荐:基于物品的协同过滤...
  4. 详解nginx 代理多个服务器(多个server方式)
  5. 计算机算法设计与分析 最长子序列
  6. nodejs pm2的简单应用
  7. 在ArcGIS软件中导入数据图标题层不显示的问题
  8. 服务器网卡驱动装好后本地连接显示,系统装好后网卡驱动也装好了,可是没有本地连接,怎么弄...
  9. ARM嵌入式实验 熟悉PROTEUS电子仿真软件的使用(LPC2138)
  10. vue中使用 svg图片
  11. 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码独立部署。
  12. Rhino 3D旋转
  13. 【matplotlib】画图基本函数 pyplot.barh 画水平柱状图
  14. 重启网卡提示Bringing up interface eth0
  15. java相同字符组合归类_对相同字母组合的单词进行归类
  16. 将base64转换为图片
  17. cdn缓存服务器有网站图片,CDN缓存服务器图片存储一致性hash算法的理解
  18. 09. 软件测试工程师的核心竞争力是什么
  19. python 正则提取 中文,汉字
  20. 昨夜梦里回了一趟故乡

热门文章

  1. 银行从业中级系列课程之——银行管理(三)市场准入、非现场监管和现场检查
  2. 云原生爱好者周刊:长得最像苹果的 Linux 桌面
  3. 第十四周java实验作业
  4. 《Xcode基本用法》手机App图标与开机动画图片的设置
  5. nvme固态必须uefi启动吗_为什么固态硬盘同样是M.2接口,你的速度却比我快?
  6. 使防弹玻璃工作的机制
  7. 宾利欧陆飞驰迎来小改款,质感更出色。
  8. jQuery和CSS3商品图片预览轮播图插件
  9. 顺丰与中铁快运携手备战双11,双地网正成为拉动内需消费的新动力
  10. 耗时20天,终于通过了阿里(Android 岗,写给正在求职的安卓开发