如何渡过小白期,不再当菜鸟程序员?

周末闲来无事 , 和大家随便聊聊 。本来想写的题目是如何成为一个优秀的程序员 , 后来想想 , 我自己也未必能算得上 。所以还是谦虚一点 , 就把题目改了 。
我这次不写那些方法论或者是感受的东西 , 这些可能大家get不到 , 也未必喜欢 。这次写一点实际的 , 只要照着做 , 基本上不会被认为是个菜鸟 , 在职场当中也不会踩雷 。
相信小习惯的力量菜鸟和大牛的区别除了写代码、debug的核心能力差距之外 , 另外一个很大的差别就是在习惯上 。大牛经过摸爬滚打练出了一系列优良的习惯 , 而菜鸟好习惯还没养成 , 坏习惯有了一堆 。所以身为菜鸟的时候一定要有规范和习惯意识 , 养成好习惯 , 去掉坏习惯让自己越来越习惯写出优质的代码 。
关于习惯仁者见仁 , 每个人也都有自己的习惯 。我简单提几个 , 给大家抛砖引玉 。
一个函数只做一件事如果有一天你接手了另外一个同事的代码 , 发现他有一个函数里面装了三千行代码 , 你会是什么感受?
这是我亲身的经历 , 我当时看到代码的第一反应就是把这个人揪出来暴打一顿 。代码和其他文本信息不同 , 越拥挤可读性越差 。优质的代码和优质的文章很像 , 结构清晰、层次分明、表达准确 。一个函数里面装几千行代码显然是老太太的裹脚布——又臭又长 。
对于一个函数里究竟应该写多少代码 , 每个人有不同的理解 。实际上我们也没必要硬扣 , 遵守一个简单的原则即可——一个函数只做一件事 。举个简单的例子 , 假设我们要从上游读一批数据 , 然后画出某一个函数作用之后的结果 。我们简单分析一下 , 表面上是画图这一件事情 , 但是这一件事情当中其实包含了好几个步骤 , 比如说从上游获取数据 , 获得函数作用的结果 , 最后才是画图 。那么我们完全可以拆分成三个函数 , 一个函数获取数据 , 一个函数获取结果 , 一个函数画图 。
【如何渡过小白期,不再当菜鸟程序员?】这样别人以及以后的自己看这段代码就会非常清楚 , 每个函数做了什么一目了然 。假如有一天老板无意间翻了大家的代码 , 别人的代码一个函数里装了几千行 , 你的代码层次分明 , 每个函数做什么都一目了然 , 你说老板会怎么想?
起长一点的变量名新手一个很大的问题就是总喜欢起很短的变量名 , 像是a,b,c,d 。或者是什么bd,aa什么的 , 看起来非常难看 , 可读性也很差 。之前有几个同学找我帮他们看代码 , 给的都是这种代码 , 看起来感觉眼睛都被针扎了……
吐槽归吐槽 , 老实说我在之前打acm的时候也是喜欢短变量名 , 虽然不至于这么夸张 , 但一般一个变量名也不会很长 。当然这是由于当时比赛的需要 , 大家争分夺秒 , 别人一个变量名叫btn , 你叫binary_tree_node , 很显然拼敲代码的速度你一定输 。
但问题是后来毕业了之后我也一直保留这样的风格 , 不出意外地遭到了老板和同事的毒打 。大家都表示不喜欢我这样的代码风格 , 我当时还坚持 , 觉得是自己代码能力的体现 。后来去读了一下一些大牛的代码 , 尝试换了一种风格之后 , 发现真香了 。虽然写起来的时候麻烦了一点(其实也还好 , 现在有各种代码补全功能) , 但是读起来是真的很舒服 , 思路也清楚了很多 。所以如果你现在的代码不是这种风格的话 , 请一定尝试改一下 , 对自己对其他人都好 。
另外一点是我们起名的时候可以是不规范的英文 , 哪怕不太准确也没问题 , 但一定一定不要用拼音 。

如何渡过小白期,不再当菜鸟程序员?

文章插图
 
拼音阅读起来比半通不通的英文还要费劲 , 而且用拼音做变量或者是函数名是一件非常非常low的事情 , 绝对会让对方对你的能力产生怀疑 。市面上也有一些帮助起名的插件 , 有这方面需求的同学请务必去了解一下 。


推荐阅读