老实说,我对于英语的认识,从没有把它的重要性放到一个足够的高度上来,从去年下半年开始,接触到越来越多的英文材料,也随着视野的开阔,逐渐发现英文能力,是程序员个人发展的必备技能。在很多情况下,它的重要性可以用“致命”来形容。以前有同事说,程序员职业生涯的发展,起到决定作用的,绝大多数时候都不是技术和业务,而是其他被人忽视的“软实力”,譬如沟通、性格、英文等等。兴许我现在正在渐渐参悟这句话的含义。
我在这篇文章中,已经讲到了“为什么程序员非得搞定英语”:
中国人为什么要学英语,程序员为什么要学英语,当我把那些方法名、变量名全部取成拼音,一样可以,谁下的这个破规定?
遗憾的是,诸多学习材料、论文、技术资料(尤其是一些刚出不久的技术),都是英语的;另一方面,国际标准、程序员交流的通用方式,都是英文的,我想肯定很难想象,那些有名的framework、lib的源码,如果用拼音来写变量名会成什么样子。
所以,如果你的英语不好(至少读写不好),就不要给自己找太借口,英语是一个掌握其他工具的工具,除非你坚信,中文很快就会在计算机界变成世界第一通用的语言。
但是原因,其实远不止上面所说的。
如果只懂中文(尤指口语),只能把自己局限在一个比较小的技术圈子里面,和你交流的人,不能超出这个范畴。都说语言是一门工具,把英语掌握不仅仅因为它是世界最流行的语言,更重要的是,世界最优秀的程序员,大多是用英语交流的;世界最优秀的技术,大多使用英文表述的。翻译解决不了技术沟通和讨论的大部分问题,尤其是在软件这个领域内。
再说一个实际不过的例子。这些天我们和整个项目组的同事坐在一起讨论问题,有来自印度的、中国的,还有美国的同事。其实讨论的问题并不复杂和深奥到何处,但是很明显,来自中国的同事都挣扎于英语的表达(大多数情况下,“听”能能力要比“说”强太多了),这成为了技术或者业务交流的瓶颈。一言以蔽之:你再牛,说不出来,又能如何?
也许在可以预见的将来,英语将和编程一样(或者比编程更早),成为世界上几乎所有人必备的技能。编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。而未来的编程技术可以将这种程序代码的编写大众化。例如在微波炉上按几个按钮(相当于录入几个宏指令),给微波炉设定好食物烹调的方式并开始工作,这就是编程大众化的一个简单例子。世界上大部分人的沟通,如果能够统一到一种语言上面,定能减弱和消除许多语言带来的屏障和浪费。波兰的一位医生创立了“世界语”,但是真正能够成为“世界语”的,至少从目前看,只有英语而已。
对于每一个有志于改变生活和改变世界的程序员,都要掌握这样的基础技能,它们非传统意义上我们讨论的软件技术,也非和你的情商相关的玄妙的东西,但是确是结结实实影响你和改变你的元素,比如英语能力,还有cross the greatwall的办法。关于墙外的事情我们暂不讨论,现在只说说程序员应该怎样来学习英语:
阅读大量的英文技术文章。我本人属于愚笨型(没有任何自谦的意思,就是事实),对于外语,起码在阅读上很不敏感,再一个记性也不佳。在学生阶段,我不记得做过多少英文习题,但是都没有好的效果,至今我也没有总结出足够有效的英语学习办法。所以直到现在,在英语识别上面,还会被人嘲笑。不过我脸皮够厚,我相信总会搞定它。事实上和去年相比,我的英文阅读能力还是有了许多进步,从阅读速度上就能看出来。英文技术文章可以到著名的blog上面去找,或者去找你感兴趣的开源项目。这是我的办法。
读写是连在一起的,听说是连在一起的。所以对于听说能力的提高,我倾向于去寻找一些英文的技术讲座。以前我也听VOA,但是后来发现老美讲话往往和VOA差别很大,所以还不如去找原汁原味的英语技术材料。由于生活环境都是中文化的,缺少英语环境的强化,所以我们不得不额外使用一些材料来保持对于英文的敏感性。在阅读和读写的过程中,尽量去用英文思维,而不是逐字逐句翻译。这话说起来简单做起来难,网上有一些资料,比如靠一些语言外的辅助信息去记忆,例如记住“red”这个词的时候,不去记忆“红色”,而是在大脑浮现红色这个颜色来记住它。英文说得好的程序员请和我讨论,毕竟我的办法并不多。
养成访问英文网站的习惯。无论是网上购物、新闻阅读还是SNS,保持自己跟上新讯息的节奏,不妨都尝试着转到英文网站上来(如果不会cross the greatwall请先学习cross the greatwall)。我在努力做这件事情,因为我发现这是一个培养英文思维的好方式。美国许多大学的公开课是一个很不错的资源。
把注意力转移到内容上,而不是语法、音准上。不是说语法、音准这些不重要,而是说,如果把注意力放在这两者上,将无助于用英文思维和表达。对我来说,这在学生时代简直是不可想象的。因为老师经常会打断你,或是在你短短的一句话以后指明你的语法错误,还有哪一个词又读错了。我以前就过度地关注了音准,以前参加过英文演讲比赛,评委发现我演讲的时候口语很流利和地道,那仅仅是因为我在“背诵”,但是到了自己“说”的环节,吞吞吐吐得不行。事实上,我留意到老美在说英语的时候,语法问题也不少,而口音上美国东西部也有所不同。毕竟,语言是用来交流的工具,交流如果只关注在交流本身,它就没有价值。有价值的一定是交流的内容。
在写程序、设计文档等等时候,对于英文的用词精益求精。哪怕细小到变量命名,这本身是职业化的表现。但是,这些关注到的词句往往是反复出现的,而且很可能是常规途径(比如字典)不容易查到的。同事举了个例子,新员工入职,用什么词?“entry”?确实有人用;更多人用“on board”,这个还勉强能查到;最多人用“ramp up”,这个我就在字典里查不到入职这个意思了。
啰嗦了一大堆,仅是我自己的体会而已。如果程序员的你也有好的办法,不妨说出来,一起分享。
转载自《四火的唠叨》
相关推荐
"HFSS软件包下的圆锥(圆形)喇叭天线模型制作与参数调整:自主创造,实验验证,全流程教程指导",HFSS圆锥(圆形)喇叭天线 天线模型,自己做的,附带结果,可改参数,HFSS软件包 (有教程,具体到每一步,可以自己做出来) ,HFSS; 圆锥(圆形)喇叭天线; 模型自制; 参数可改; HFSS软件包; 教程详尽。,HFSS圆锥喇叭天线模型:可自定义参数与结果
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"基于S7-200 PLC与组态王技术构建的智能化新能源汽车电池检测系统上位机软件平台",基于S7-200plc与组态王组态的新能源汽车电池检测系统上位机 ,S7-200plc;组态王组态;新能源汽车电池检测系统;上位机,"基于PLC与组态王的汽车电池检测上位机系统"
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
nodejs010-nodejs-docs-0.10.5-8.el6.centos.alt.x86_64.rpm
免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
“基于Cadence Orcad的全面元器件数据库管理系统——全配版与基础版对比分析”,搭建使用Cadence Orcad CIS元器件数据库(默认为Access数据库,如需MySQL数据库需提前沟通),含orcad符号库,Allegro PCB库 —————————————————— 该元器件数据库种类丰富,大分类就有28种(全配版,含有很多如海思,全志,瑞芯微,TI,Xilinx等主流复杂IC的库信息),20种(基础版)。 ———————————————————— 全配版包含1000多种元器件属性信息汇总,都是已验证使用过的,可直接用于自己的电路设计。 全配版还附有大部分与元器件PCB封装已匹配好的的3D模型。 强烈建议原理图库及封装库基于数据库的方式来管理,好处主要有以下几点: 1. 易于管理,可通过数据库文件批量添加、更改或删除器件参数; 2. 减少原理图库的种类, 同类器件只需要新建一次原理图库, 例如不同阻值、精度的电阻; 3. 器件具有唯一性, 每个器件的参数都是唯一的; 4. 方便使用, 如使用 Link Database Part 功能,可以快速完成器件批量替,
1、文件内容:ptlib-devel-2.10.10-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ptlib-devel-2.10.10-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
西门子S7-1200+5轴伺服驱动系统的走工艺对象技术解析——采用脉冲输出驱动方式的控制方法及在全博途V15.1程序中的应用研究。,S7-1200+5轴伺服 走工艺对象 脉冲输出驱动方式 适用于西门子s7-1200+第三方伺服驱动器 全套博途v15.1程序 ,S7-1200;5轴伺服;走工艺对象;脉冲输出驱动方式;第三方伺服驱动器;博途v15.1程序,西门子S7-1200 5轴伺服系统控制程序
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
《四层三列堆垛式立体库控制系统:带解释的梯形图接线原理图及IO分配与组态画面详解》,4x3堆垛式立体库4层3列四层三列书架式立体库控制系统 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,立体库; 堆垛式; 控制系统; 梯形图; 接线图; 原理图; IO分配; 组态画面,"立体库控制系统原理图:四层三列堆垛式书架的IO分配与组态画面"
1、文件内容:pyOpenSSL-0.13.1-4.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pyOpenSSL-0.13.1-4.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
基于三菱PLC与MCGS技术的防盗门报警系统:梯形图接线图原理及IO分配、组态画面详解,基于三菱PLC和MCGS的防盗门报警器 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,三菱PLC; MCGS; 防盗门报警器; 梯形图接线图; IO分配; 组态画面,基于三菱PLC与MCGS的报警器系统:梯形图接线与组态画面详解
"COMSOL金膜表面等离子共振(SPR)分析:不同入射角下的共振角度观察",comsol金膜表面等离子共振SPR,不同入射角查看共振角度 ,关键词:comsol金膜表面;等离子共振(SPR);不同入射角;共振角度;分离度;角度调节;材料表面光;生物传感;互动现象;实时分析,"COMSOL研究金膜表面等离子共振: 角度变化影响共振角度"
1. 机器学习与深度学习 机器学习是人工智能的核心领域,旨在通过数据训练模型,使计算机能够从经验中学习和改进。监督学习、无监督学习和强化学习是其主要分支,广泛应用于图像识别、语音处理和预测分析等场景。深度学习作为机器学习的重要子领域,通过神经网络模拟人脑的工作机制,尤其在图像分类、自然语言处理和自动驾驶等领域取得了突破性进展。深度学习模型如卷积神经网络(CNN)和循环神经网络(RNN)已成为许多AI应用的基础。 2. 自然语言处理与计算机视觉 自然语言处理(NLP)使计算机能够理解、生成和处理人类语言,关键技术包括机器翻译、语音识别、情感分析和问答系统。例如,智能助手(如Siri、Alexa)和聊天机器人(如ChatGPT)都依赖于NLP技术。计算机视觉则让计算机能够“看懂”图像和视频,广泛应用于人脸识别、自动驾驶、医疗影像分析等领域。目标检测、图像分割和视频分析等技术正在推动安防、零售和制造业的智能化转型。 3. 强化学习与AI伦理 强化学习通过试错和奖励机制,训练智能体在复杂环境中做出最优决策,广泛应用于游戏AI(如AlphaGo)、机器人控制和资源调度等领域。与此同时,随着AI技术的快速发展,AI伦理和社会影响也成为重要研究方向。如何确保AI的公平性、透明性和隐私保护,以及应对AI对就业和社会结构的潜在影响,已成为学术界和产业界共同关注的焦点。AI的可持续发展离不开技术与伦理的平衡。
不同放牧策略对草原土壤性质的影响研究——基于机器学习.pdf
本资源提供一种基于Proteus仿真的纯硬件NE555呼吸灯设计方案,结合NE555定时器、三极管(如2N2222或8050)、电阻、电容等元件,完整实现LED的呼吸灯效果。内容包括: Proteus仿真模型搭建:电路原理图设计、虚拟示波器波形分析; 硬件实现步骤:元件选型、焊接调试、实测波形对比; 参数调优方法:通过仿真快速调整RC参数控制呼吸频率与渐变平滑度。 目标: 掌握Proteus中NE555电路仿真技巧; 理解硬件电路与仿真模型的匹配性; 学习从虚拟仿真到实物落地的全流程设计; 培养故障排查与参数优化能力。 核心功能: 仿真验证:在Proteus中模拟NE555的PWM输出及LED亮度渐变效果; 硬件实现:通过三极管驱动电路将仿真结果转化为实物呼吸灯; 双向调试:支持仿真与硬件实测数据对比,快速定位设计问题。 关键模块: NE555无稳态多谐振荡器(控制占空比渐变); Proteus虚拟示波器(观测PWM波形变化); 三极管电流放大电路(驱动高亮度LED)。 设计亮点 虚实结合:通过Proteus仿真降低硬件试错成本,提升学习效率。
,全c源程序太阳能并网逆变器全C源程序单相3kw5kw,板图原理图清单,可以直接打板验证,超好的生产光伏逆变器的技术方案,量产方案
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx