广告

使用空格键比用Tab键的程序员挣得多?!原因在这……

2018-09-25 10:05:04 Max Maxfield 阅读:
Stack Overflow 2017开发者调查数据分析表明,使用空格键的程序员比用Tab键的薪水高8.6%。无论是在美国、印度、英国、德国、加拿大,还是其它国家和地区,无一例外。我这儿有一段代码出了问题,它碰巧用了Tab键来缩进,但是30年来,我一直被告知要“慎用”Tab键……

最近,我们在网站上发布了Thomas (Tommy) Gartlan的一篇文章,文章发布后看起来有点问题:某处的代码缩进不见了,影响了可读性。Kjpednc

这让我有点窘,因为我总是苦口婆心地教导我那些可怜的学生们写代码的时候要注意缩进,不要怕麻烦,这样可读性才好。Kjpednc

说真的我有点惊讶,因为在编辑文章时,这段代码看起来很好。我回去检查,发现确实出问题了:Kjpednc

Space-Tab-F1.gifKjpednc
这段代码本来是有缩进的,现在没了(来源:Max Maxfield)Kjpednc

我一边捶胸顿足,一边动手重新缩进所有内容并在内容管理系统(CMS)中保存,然后我在浏览器中打开改好的版本,发现缩进又不见了。Kjpednc

然后我去检查另一篇文章的代码。结果一样,这让我很失望:Kjpednc

Space-Tab-F2.gifKjpednc
结果一样,我真是欲哭无泪!(来源:Max Maxfield)Kjpednc

接下来只能在CMS文件中找原因了,这次查看原始HTML代码。我希望只是漏了<pre>和</ pre>标签,它是用来保留多余空格的。但是标签并没有漏,到底是什么原因让空格不见了?此时此刻,我的IT同事还在查看这个问题。上面显示的那段代码原本是这样的:Kjpednc

Space-Tab-F3.gifKjpednc
这段代码本来缩进了4个空格(来源:Max Maxfield)Kjpednc

好吧,这些都不是我今天想说的重点。在查找问题的过程中,我知道了Tommy是用Tab键来实现缩进的。输入代码时使用Tab键确实比较省事,但是30年来,我一直被告知要“慎用”Tab键,因为不同的系统可能用不同的方式解释它们。一个系统可能认为Tab代表四个空格,另一个系统则可能被设置为代表八个空格。但如果总是使用空格来缩进,就永远不会有歧义。我把这些告诉了Tommy,他回复说:Kjpednc

“我得承认,我以前从没听说过不要使用Tab键。使用Tab键缩进很容易,但我们确实遇到了麻烦。一些IDE工具会自动执行缩进,因此检查它们是使用Tab键还是空格键十分有趣。”Kjpednc

前不久,Barr Group向我介绍了嵌入式C语言编码规范。Michael Barr及其同事创建此规范最主要的原因是为了减少嵌入式软件(即固件)中的错误个数,包括由维护人员添加或修改的代码。Kjpednc

规范中有两点让我印象深刻:Kjpednc

(a)缩进时始终使用空格键,不要用Tab键;Kjpednc
(b)最佳缩进是四个空格。Kjpednc

当然,我向Tommy介绍了Barr Group的编码规范之后,他这样回答:Kjpednc

“我现在肯定只用空格键了,因为使用空格键的人会赚更多钱......我可不是开玩笑!”Kjpednc

什么!真的吗?这个我倒是从未听说过。Tommy为了证明他没有瞎说,让我到StackOverflow.blog上看调查报告。Kjpednc

这真是太有趣啦。Kjpednc

在Stack Overflow的2017开发者调查中,共有64,000多名受访者,其中28,657位“职业程序员”对这个“空格与Tab”问题进行了回答,又有12,426位对他们的薪水情况进行了回答。Kjpednc

其中40.7%使用Tab,41.8%使用空格,而剩下的17.5%两者都用。偏爱空格与偏爱Tab的人数几乎完全相同,这很有意思,但如果你看一看他们的薪水,就更有趣了:使用空格进行缩进的程序人员比使用Tab的人挣得多,即使他们的工作经验完全一样。Kjpednc

说得更具体一点,“使用空格键的程序员比使用Tab键的工资高8.6%,”换句话说,“这相当于一个多2.4年工作经验的程序员高出的薪水。”Kjpednc

Space-Tab-F4.pngKjpednc

下图表明,无论是在美国、印度、英国、德国、加拿大,还是其它国家和地区,都是如此。Kjpednc

Space-Tab-F5.pngKjpednc

针对这一调查结果,美国的程序员们反应热烈,纷纷发表了自己的观点。Kjpednc

@ Rick Curl Kjpednc
哇! 这个以前谁知道?以后我不要求加薪了,只要在代码中多插入空格就行了!Kjpednc

@ Elizabeth Simon Kjpednc
但是用Tab键更方便......因为在增加和删除缩进时按键次数少。Kjpednc

必须承认,我来自从前的老学校,那时Tab键统领天下(我开始学的是汇编语言),但是如果使用空格更赚钱的话,我准备改了,哈哈。Kjpednc

当然,我最喜欢的编辑器(Notepad ++)是使用Tab进行自动缩进的,所以改起来可能有点儿难.... ....Kjpednc

@ Sean Ellis Kjpednc
要么使用Tab键,要么使用空格键,想通过按Tab键来得到4个空格可不太好。如果输入错误并按“backspace”键来删除,你确定所有4个空格都删除了? 而大多数自动完成机制比这还糟。Kjpednc

(原文发表于ASPENCORE旗下EDN姐妹社区EEWeb,参考链接:Spaces vs. Tabs? Coders Who Use Spaces Make More Money!;Jenny Liao编译)Kjpednc

本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • @ Sean Ellis “如果输入错误并按“backspace”键来删除,你确定所有4个空格都删除了?”…… 请用 Shift+Tab
  • 哈哈哈notepad++其实可以设置tab自动转换为4个空格
  • 职业还是要有特质,有不违反人类习惯的偏执才能把一件事情做到极致,职业称谓其实还是挺神圣的,而且不分贵贱(贵贱是钱来衡量的),你对得起职业称谓你就是高尚的,你配不上这几个字,就与高尚无缘,尊重自己的职业,把他做到极致才好。
  • tab自动转换成空格
  • 自从遇到tab键在不同编辑器下面带来的麻烦后,我一直用空格键缩进,就没那么多还要设定的问题了,简单。
  • 作为一个纯粹的码农对自己的代码必须有点洁癖,怎能因为这点噱头改变自己的行为习惯?所以必须掌握一两个自动格式化工具,AStyle,uncrustify等等,一键瞬间完成一丝不苟,想要空格给你空格,想要Tab给你Tab,一个Tab代表几个空格也是可以设定的,你把空格说得再好,我还是照用我的Tab。
Max Maxfield
EEWeb主编。Max为EE Times的Designlines栏目提供内容,涵盖可编程逻辑、微控制器单元和原型设计。 多年来,他设计了从硅芯片到电路板,脑波放大器到蒸汽朋克“Display-O-Meters”的所有产品。 他拥有英国谢菲尔德谢菲尔德哈勒姆大学的控制工程学士学位。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 理工类专业的薪酬更高,前三名为机械工程、材料科学与工 高考刚结束,志愿填报成了考生及家长当下关注的焦点。某人力机构发布的《2022年大学生就业前景研判及高考志愿填报攻略》显示2021届应届大学生整体就业形势、不同院校及专业毕业后的薪酬情况,数据显示双一流院校毕业生具备更强的就业竞争力,首份工作月薪上也领跑。
  • 台积电、联电校招万人,业内人士:行业薪资达十年来最高水 近日,台积电、联电开启了校招活动,其中,台积电预计招募超过8000名新员工、联电预计招募 2000 名人才,硕士毕业工程师平均年薪上看200万新台币,约合人民币45万元。晶圆厂们大手笔扩招源于晶圆厂们2021年的“疯狂”扩产。
  • 2021最受欢迎技术文章排行TOP 10:小知识 在过去的2021年里,是哪些文章吸引了大家的关注点赞转发三连呢?EDN小编从几个热门类别中,选出最热门的几篇技术文章分享给大家。
  • 种下硅林的泰克,更期待创造未来 有人说,如果你在硅林有一份高科技工作,那么你可以能要感谢泰克。
  • 通信行业为何频繁加班?套路到底有多深? 网上关于加班的新闻越来越多。人们对于加班现象的声讨,也越来越激烈。既然国家现在提倡合法用工,拒绝强制加班,那么,问题来了——我们通信行业是否也会减少加班呢?通信行业,为什么会有这么多加班?都是合理合法的吗?面对加班,通信人又有哪些常见套路?
  • 硬件工程师应记住的10大软件技巧 嵌入式系统设计不仅需要了解硬件,还需了解软件是如何影响硬件并与硬件进行交互的。设计硬件所需的范式可能与设计软件完全相反。当从硬件设计转向包含软件的设计时,硬件工程师应牢记以下十个技巧。
  • 数字IC设计工程师笔试面试题(五) 设计一个自动售货机系统,卖soda水的,只能投进三种硬币,要正确的找回钱数。 
  • 数字IC设计工程师笔试面试题(四) 给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q(Tco),还有 clock的delay,写出决定最大时钟的因素,同时给出表达式。
  • 数字IC设计工程师笔试面试题(三) 用与非门等设计全加法器?A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的个数比0 多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制?(与非-与非形式)
  • 环境与温度对控制电路、供配电开关设备等实际电路有什 无论是手机电路、电视机电路,数据交换以及控制电路,还有供配电开关设备和控制设备内部的电路,温度和环境条件对这些实际电路的影响都很大。
  • 新冠疫情加速工程师选择退休? 因为较年长劳工在疫情期间面临的健康风险较高,似乎也让它们对于重新加入职场兴趣缺缺。约有210万美国劳工在疫情期间选择退休,该人数是2019年的将近一倍。
  • 清华、北大等12高校开设“未来技术学院”,怎么招生?学生 日前,教育部公布包括北京大学、清华大学在内的首批12所未来技术学院建设高校名单。该通知一经发布,引起了网友的热议及质疑,未来技术学院到底是什么?包含了这么多学科的未来技术学院,怎么招生,学生怎么培养呢?选在2021年高考还剩10多天的时间公布名单,对高考将产生哪些影响?
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了