在我上大学的时候,除去普通的英语课程,专业课程里还有一门《计算机英语》。当时大家的普遍认为,普通的“英语”是过四六级用的,《计算机英语》才是专业真正需要的。
等到工作了,我发现很多人都持这样的观点:程序员应该学好英语。这样才能方便地查找资料,迅速地学习最新的知识。换句话说,“学好英语”在很多人看来,就是是“学好专业英语”——这项要求已经很高了,我曾经在《程序员要怎样学英语》里提到,不但要能看懂文档,还要知道“黑屏”是blank screen,“死机”是system halt,否则查找就会很费力。
但是今天我想强调的是,对程序员来说,学好“英语”而不是“专业英语”是非常重要的。只学好专业英语,看得了技术文档,但那一大堆专业术语和概念可能会像陨石一样,没来由地坠落下来,只能生吞活剥地硬背。如果学好英语,你才会有融会贯通的感觉,知道那些术语和概念原来是从地里长出来的,底下连着根茎。
程序员经常被认为是呆头呆脑的古怪家伙,讲一口外人听不懂的语言,其实技术世界里的很多术语都是从生活经验中借鉴而来,是非常形象而有趣的。可惜,这些意味和趣味无法通过翻译传递,也很难在硬邦邦地研读时体会到。所以如果你只看中文资料,或者以学习“专业英语”的态度来对待,即便能记住,也只能硬背下来。天长日久,“古怪”的感觉也就油然而生了。
比如说cache和buffer,这两个英文单词是完全不一样的,但中文分别翻译为“缓存”和“缓冲”,看起来非常像,很多人确实会搞混(不要吃惊,我的面试经历已经证明了)。分得清的人都知道,“缓存”是cache,“缓冲”是buffer,不过其中还有些麻烦,因为“缓存”很多时候是用于读取的,“缓冲”很多时候是用于写入的。为避免混淆,很多人干脆放弃中文直接说英文,这确实是一种有效的办法,但是cache和buffer到底是什么意思呢,它们是天上掉下来的,还是地里长出来的?答案是后者。
cache在“缓存”的含义诞生之前就存在了,意思是a secret place of storage,也就是“用于存放物品的隐蔽区域”,比如动物贮存食物的地方,或者人类埋藏金币的秘穴。所以用cache来命名计算机中的“缓存”是非常恰当的:cache把数据存储起来加快读取,而且它必须是隐蔽的。我已经见过无数程序员写的不透明缓存了,这种“缓存”必须改动主线业务,使用和维护都异常麻烦,如果程序员多懂一点英文,知道cache原本的意思,问题会少很多吧。
buffer也是这样,它原本的意思是devices or pieces of material for reducing shock or damage due to contact,也就是“用来减少接触时产生的震荡或损坏的装置或材料”,比如为了用于逃生的气垫,或者汽车上用的减震器。用buffer来命名计算机中的“缓冲”也是非常巧妙的:buffer用来解决两种设备在数据交互时的数据丢失(或者阻塞等待)的问题。我读大学的时候,老师特意强调“缓冲是用来解决速度不匹配的问题”,让大家印象深刻。但是如果大家多懂一点英文,知道buffer原本的意思,估计不用老师强调自己也能理解了。
再比如serialize和flatten,这两个单词Java程序员都熟悉,其它程序员也不会陌生。前者是“序列化”或者“串行化”嘛;后者,嗯,有些人翻译为“扁平化”,还有些人干脆不翻译,就叫flatten好了。总之,这两个词都比较难记忆,给其他人解释的时候也很麻烦。
文档里是这么描述serialize的:the object can be flattened into bytes and subsequently inflated in the future。不妨看看flat和serial原本的意思。flatten的意思是“打扁、推倒”,serial的意思是“无间隔的规律摆放”。这样看来,整个描述是非常形象了:“序列化”指的是把对象拆散成一堆紧密码放好的字节(也就是字节数组啦),之后还能组装起来。有很多人纠结serialize到底是“序列化”还是“串行化”,如果你懂得seralize和flatten的真正意思就会知道,“序列化”还是“串行化”都不合适,但是,也无所谓。
没错,程序员面对的是机器和科技,但这并不意味着他们的工作就没有任何乐趣,就需要硬生生造出很多“天外飞仙”一般的术语。恰恰相反,许多技术术语都像庄稼一样,把生活经验当成诞生的土壤,所以显得非常生动形象。如果程序员的母语是英语,他看到cache, buffer, serialize, flatten之类的单词,虽然也要学习其专业含义,但有背景知识和生活经验可以借鉴,所以“背靠大树好乘凉”。但如果程序员的母语是中文,英文又不够好,就没有这种优势,那些专业术语就像陨石雨一样难以理解和应付,只能生吞活剥,麻烦不说,久而久之也容易变得无趣。
有人说,好的翻译可以解决这种问题。一定程度上来说确实如此,比如董乐山先生当年翻译的“导弹”,朗朗上口又生动形象,大家一听都明白。可惜如今这样用心的翻译家已经太少了,加上新单词出现太快,翻译的速度根本跟不上。所以对程序员来说,真正的出路还在于自己,不要自我束缚在“专业英语”的世界里,而是要认真完整地学英语,了解英文单词本来的意思,真正懂得用英语思考和理解世界,才能收获融会贯通的效果。
当然,这个道理反过来也是成立的,还记得前不久被关掉的“曲径”吗?它的命名和cache, buffer, serialize等等一样,其中的逻辑“不足为外人道也”,老外程序员如果只懂中文技术资料,看到这个名字多半也要挠头瞪眼了。
From Life Sailor, post 程序员为什么要学好英语
之前我写了一篇《坚持了两年之后,小朋友突然不想去打冰球了…》,本来是无心之作,没想到收到了很多留言,我自己也获益不少。 本来,我以为解决了小朋友的问题,此事就这样过去了。没想到的是,暑假过后,冰球训练重开,他又老调重弹:“我不去了,我不想打冰球了……”。 这可叫我如何是好?听到他嘟嘟囔囔说这一切的时候,我心里百感交集。 成年人的生活里总是有忙不完的事情,对应的,也希望一切井井有条、按部就班。因此,这样“意外”的变数,总是第一时间让人心生无奈和烦恼:天哪,怎么会这样呢?为什么会这样呢? 不过,基于之前的经验,借鉴大家的留言,这次我显然更有心理准备一些,起码不会慌乱。 之前我写过,如果父母多阅读一些高质量的育儿专著,有助于把自己的期望水平“降”到合适的程度,就不会那么焦虑甚至抓狂。 (more…)
认识Michael很偶然,但我也很幸运,因为我见证了一个“打冰球的好孩子”的成长。 最早认识Michael是在冰球队的夏季体能训练上。那时候这群孩子还只有六岁左右,每次训练都是家长送来,在旁边观看陪伴,再接回家。但是,我很快发现有个孩子不一样,家长送他来就回家,他靠自己换好全身装备,训练完自己洗澡更衣,再由家长接回去。看起来,他好像完全没有其他孩子那种“害怕独处”的感觉。 于是我问他:“小朋友,你这么勇敢,你叫什么名字呀?” 他说:Michael。 我尝试复述他的名字,好几遍都不成功,因为我总听成“米歇”,最后他耐着性子慢慢说,我仔细听才发现最后还有个音节,嘴要更扁一点,舌头往上垫,才可以念出来,类似“米歇-厄尔”。其实这个名字写出来大家都认识,英文里读作“迈克尔”,无奈德语的发音规则很严格,字母i不会像英文那样有两种读音,结尾的el又一定要发音,所以就成了“米歇-埃尔”。 (more…)
偶然刷到一篇文章,说的是“贵族家长”群体给小朋友安排的活动:冰球、马术…… 我有点诧异,原来“冰球”也被贴上了“身份”的标签。想想自家小朋友的情况:赶上打折花了400多欧元买的全套护具,80元买的二手冰球包,每个月60欧元的俱乐部费用……想了想,似乎很难和“贵族”联系起来。 只不过,他已经坚持打冰球到了第四年,我们的生活确实有不小的变化。写下来,既是对自己有个交代,也可以作为“贵族运动”的现身说法。因为在我看来,如果非要说它是“贵族”运动,也只能“贵”在高(时间)投入、高产出而已。细细想来,我们的生活,已经被冰球深深的影响了。 (more…)
一 很多人关心,我们父子给M写了道歉信之后,对方是否有回应。 答案是:到目前为止,还没有任何回应。不过比较特殊的是,写完信之后德国小学就开始放秋假,学生不用去学校,既然见不到,也就不可能收到任何回应。 老实说,我觉得对方父母是有点反应过度的。这些年我的一条深刻经验是,如果出现分歧、矛盾,越早、在越低的层面直接面对,就越容易解决。许多小的矛盾之所以越闹越大甚至无法收场,往往都是经过了很多演绎、传话,而没有在一开始就开诚布公地面对。 试想,如果自己的孩子收到写着“我要杀了你”的信件,哪怕一开始很惊慌甚至愤怒,但仔细想一想,毕竟还有很多信息是未知的——比如对方是谁,平时言行如何,为何要写这样的信…… 更好的办法或许是先去直接寻求这些问题的答案,而不是直接把信交给家长委员会,走“公事公办”的路子。 我当然承认,“公事公办”无可厚非,对方家长也有这样的权利——所谓权利,就是“有资格做对方不喜欢的事情,人家还拿你没办法”。既然有这样的权利,就需要尊重。 所以,“严于律己,宽于待人”的确是与人相处的重要法则:我不会选择这么做,但我能理解和尊重你这么做的权利。 也有人问,那将来你遇到M的父母,会不会紧张? 答案是:不会。 (more…)
一 收到S老师邮件的时候,我刚刚胆战心惊地做完第一次德语技术分享,还在享受着同事们的鼓励。猛然间就收到一封邮件:“您的孩子在学校参与了一起性质严重的事件,您必须来学校面谈,请从以下时间段中选择……” 什么?“性质严重的事件”?我揉了揉眼睛,确认自己没有看错。再把这段文字贴到谷歌翻译里,确认自己没有理解错。 我没有看错,也没有理解错,就是“性质严重的事件”。好吧,既然“性质严重”,那谈话肯定是越早越好,最早的日期是第三天。我紧赶慢赶,回信确认了最早可能的谈话时间,虽然德国人通常都不期待能这么快收到回复。 去接他回来的路上,我发现他一切正常,完全看不出任何异样。于是,我也没有表现出任何异样,只是依照惯例,问他当天发生了什么,在学校开心不开心。 得到肯定的答复之后,我心生疑惑,看起来和“性质严重”完全不搭边。那会是什么事情呢? 我又问他,有没有和同学吵架、打架,是不是被人欺负了不敢说。但是,答案全都是“没有”。 我满心怀疑,又按捺不住,直接问:“既然一切都挺好,为什么S老师给我发信,说让我来学校跟她谈话呢?”我担心“性质严重”会吓到他,故意隐去了这个词。 他的满面春风在那瞬间凝固了,喃喃低语道:“好吧,原来是那件事,我还以为她不会跟你说。” (more…)
在2024年之前,我从来没想过自己有一天还可以加入乐团,甚至参加音乐会演奏。我只是个普通中年人,在之前文章里说过,上世纪八十年代随大流弹了十年手风琴,考过六级(当时最高八级)之后就彻底放弃了。直到二十多年后,在上海工作时才重新开始弹琴,当时有幸跟夏老师学了两年,打开了感官,懂得了音乐的世界远远比考级要广阔和美妙。再往后,就是自己看Youtube学习了一些乐理知识。因为德国几乎每个城市都有很多音乐学校,2023年末,我给本市的音乐学校写信,询问是否可以参加手风琴课程。通过回信我才知道,原来不只是“每个城市都有很多音乐学校”,而且“每个城市都有很多乐团”,哪怕是手风琴乐团。就这样,阴差阳错的,2024年初,经过简单的试奏,我加入了本市的手风琴乐团。虽然我是乐团新人,仍然有很多要学习的,但是一年下来,确实有不少感受。如果读者朋友也对音乐感兴趣,或者想让孩子学习音乐,也许我的感受可以提供一些参考。 (more…)
View Comments
学好英语,才能更好的理解专业英语。建筑专业,我想找柔性防水套管,找来找去都不知道英文翻译是什么,Alibaba 平台都翻译成 flexible waterproof cannulas,看起来不错,可是谷歌一搜都是中文厂商的翻译、图片,实际上套管叫 pipe sleeve。好直观。
I subscribed ur blog in my feedly. After reading ur blog, I googled '英语与专业英语 博客' and ur blog was the 2nd result. I was linked to CNBlogs, where ur blog was posted. I found a comment there: '并没有用,理解一些词的本来含义的确对于理解这个词的意思有一些用,但是有些词的含义还有更深的来源,难道我还要把法语、拉丁语、希腊语都学会么。学习一个是出于一种需要,一个是出于一种兴趣。学习泛泛的英语并非是一种工作需要,更多的说是一种兴趣。不能为了兴趣而混淆了需要。'
I'm really sorry to see this guy misunderstanding your point. I don't know if he's a programmer either. I have the feeling that there are quite a few chinese or chinese programmers hold such a kind of opinion. I wonder how we can be more creative if these people are still the mainstream in the IT industry.
In my opinion, due to the poor education, some Chinese guys are very good at arguing with questionable logic. I guess the guy you mentioned would change his opinion if he had red Karl Popper's words about "infinitive trackback". Anyway, as Goethe said, a man can not real understand his mother tongue till he master another language.