当前位置:首页 » 编程软件 » 老外教编程

老外教编程

发布时间: 2023-03-02 00:47:28

A. 老外学编程是不是很容易

老外学编程的难度跟我们一样,不要去高估他们,只不过英语为母语的老外有一点点语言上的优势而已,毕竟绝大部分编程语言的函数名称都是用英语来命名的,他们更容易知道其代表的含义而已,不过我们国家从儿童到大学都在不遗余力的开展英语教育,相信很多人也不会相差太多的。

B. 美国人学代码会不会比较容易点

美国人学代码肯定是优势的,英语国家的人,在其他条件同等下,比如智力,勤奋程序,肯定优势很大。(1)代码语言是英文的,他们看着轻松,关键词,一看就懂。 (2)计算机是美国人搞出来的,各类文献资料比我们多。他们也看得懂。 一个客观实例,印度人为什么好多地方不如中国人,但是软件业不错,英语优势嘛。
求采纳

C. 为什么在编程语言的教程上,老外总是比中国人写得书更

因为外国的程序设计教育起步比中国早得多,加上像美国这些国家,一般在小学的时候就接受计算机教育了,对计算机程序设计的理解普遍比中国要好.

D. 不懂英语应该怎么学编程

一般的编程,不需要高深的数学,但逻辑要清楚。不需要太多英语,但了解些基本的单词对编程有好处,必要时也可以查外文文献。下面我为你收集了不懂英语学编程的建议的资料,希望对你有所帮助!

不懂英语学编程的建议

1. 从小的有用的程序入手

学习可以从编写一些具体的小的真正有点用程序入手,需要用到数据结构与算法时,顺带着就学了,感兴趣的再深入系统地学一下。除非你在一些特定的有特殊要求的领域写程序,否则,大多数情况下用不上很高深的数学。

2. 坚持使用英语

至于英语,你要把它真当成一种语言去用,用它去与别人交流,去吸收新知,建议你在有一定基础后,直接看一些英文版的教材和视频,开始会比较难,慢,但坚持下来,好处很多的,你既能学到了知识,又能提高英语水平。

3. 要多尝试,多动手

不能一味地停留在知识点掌握的程度上,因为知识点是死的,然而可以通过这些知识点的串联可以解决很多活的问题。踏实学习,多动脑多探索,多练代码慢慢就会有一个不错的水平!

英语和数学给我们带来的优势

1. 英文好的,你的技术资讯永远都是领先其他人

2. 数学好的,你的代码质量永远都是优越其他人

回到现实中:如果你要成为别人的焦点,那你就要学好英文和数学。如果你要提高你的编程质量,那你就要学好英文和数学。如果你要领高薪,那你就要学好英文和数学。

给英文和数学不好的朋友建议

1. 英文可以补习,数学可以补习,时间是挤出来的,不要为自己的学习找借口

2. 编程领域太广了,需要各种人才,中国这么多人口,你不做编程,别人也会做。

3. 很多先进的技术,不用你去操心的,让老外去完成。我们要学会拿来主义,我们的目标就是挣钱,有钱了才能实现你自己的理想。

你也不要随便地给自己贴标签,比如自己给自己贴上“数学和英语不好”这个标签,也许它符合你现在的情况,但并不等于你以后也是这种情况。

学习编程的注意事项

一:自学也需要看书

自学只是说没有专门的老师手把手教你,并不是说连书本都可以不要了。有人天天来问我一些很基础的概念问题,我问他:“这些概念书上不都写得很明白吗?”他回答:“我没有书。”如果没有书,那么你很难在脑子里形成一个较为整体性的认识,所有了解到的知识都是支离破碎的。且不说大多数人没有精力回答你这些问题,即使回答了,很多东西也不是三言两语就能说清的,很多高手说出来的都是他们自己的理解,这些理解或许很有意味,但也许费了你半天的脑子却怎么也搞不明白。一本书,即使不是什么经典之着,它也可以向你提供一个大体完整的框架,成为你自学过程中的一个向导。这里要说的是:网上电子教程资源丰富,看看无妨,但手中至少应有一本印刷的书——毕竟网上的教程鱼龙混杂,其作者也许并不精通此道,很难分辨其质量好坏。

二:学编程更需要实践

书是有了,可是整天抱着书也不成。编程最怕的就是纸上谈兵,我看到有的初学者,看完了大半本书,和我说起循环函数来头头是道,却连编译器长什么样都没有见过。真要他写几行程序,便是错误百出。我的建议是,无论你涉及编程的时间是多么地短,无论你目前学到的知识多么地少,你都应该不断地尽自己所能去编写一些小程序——即使是把书上的“Hello, World!”亲手输入进去运行一遍,都能让你的编程能力有着极速地提高。

三:编程是创造,不是默写

有人甚至打算用题海战术来学习编程——这完全没有理解编程的内涵。仅仅通过“欣赏”别人写的代码也无法学好编程。有一点需要明白:编程是一个创造的过程。编程的意义在于:通过程序的形式,教计算机如何去完成一项任务。写代码只是形式,真正重要的是如何完成特定的任务。学习别人的代码固然是很有用的,可以学习别人的思想;但是如果仅仅是记忆了一些别人写好的代码,就希望能通过拼拼凑凑成为自己的程序,那是基本不可能的。我的建议是:在自己编写程序,进行创造的过程中,借鉴前人程序中的思想方法——而不是整天处于复制粘贴的状态中。

四:好习惯要从开始做起

所谓“不以善小而不为”,等坏习惯养成了,再改就困难了。因此,类似写程序要注意缩进、为变量和函数起有意义的名字、大小写的使用、行末分号的注意等等,要从一开始做起。很多人对这些善意的提醒不屑一顾,觉得多此一举,浪费时间。其实,如果真的能严格地去做,它们反而可以帮你节省许多时间。

五:不必太刨根问底

“打破沙锅问到底”确实表现了一种钻研的精神,不过我还是建议初者学,有的时候,不必太刨根问底。编程的相关知识都是盘根错节交织在一起的,大多数问题深挖下去会越说越复杂,对于知识掌握不多的初学者来说,只能是越来越糊涂。很多东西,时间长了,随着知识了解得深入,自然而然会明白。就像刚刚学英语的时候,你知道“goodbye”是再见就足够了,难道非要把这个good和再见的关系先弄个水落石出吗?作为初学者,最重要的是尽快地能全面地了解整个知识的全貌,在单独的知识点上,暂时不需要太深入。可以等知识经验丰富之后,再回头来研究。

E. 老外说的关于并发编程的笑话,是什么意思

‘别让你的权利睡着了’,这句话通常用于洞房花烛夜时。

F. 零基础想自学编程,可以推荐什么书籍或程序吗

零基础想自学编程,可以推荐什么书籍或程序吗

编程这个东西自学有一定难度,因为你无法在短时间内体会到它的实际用途,所以一大批人会半途而废。就算你学会了c语言,你会发现你照样做不出东西,忙碌了半天,也只会在黑乎乎的控制台上显示些字符。所以你还得学习其他知识,像SQL。
想要以最短时间体会到代码的作用,那莫过于学习前端 HTML 了,配合CSS,你会立马写出几个静态页面,然后沾沾自喜,有种成就感。然而这并没有什么卵用。前端还需要学习一门叫javaScript的语言,JavaScript才是编程语言,HTML和CSS只能叫做页面设计,类似美工。
而你想要学习JavaScript时,你就得明白什么叫编程,像是数据类型、函数、各种判断循环语句,这时你学起来就会感觉很吃力(当然也能学会,我就是没接触过C语言就直接学了前端了)。
真正的编程入门级语言是C语言,为什么要先学C语言呢?这时你得明白编程语言的历史发展。C语言的前身是B语言,B语言由贝尔实验室开发。B语言写出了世界上第一款操作系统Unix,沿用至今,比如银行的取款机和大型商务机就是用的Unix。后来由Unix 进化出了linux操作系统。这款操作系统一直应用于服务器,而Windows操作系统是由C语言写的。暂且不谈操作系统。
C语言往后发展就有了C++ 这些都同属贝尔实验室开发。Java是由C++改写而来。C#也是由C++改写而来。所以你会发现C#与Java语法相识。总结一点,这些语言都由C语言而来。只要你学会了C语言,以后你学其他语言就会简单的多。你学C语言就是学了80%的Java。C++又是完全兼容C语言的。所以你可以把C语言看成是祖宗,其他的都是分支。
本人就是自学的。走了很多弯路。因为我一开始就是学的前端HTML。后来才去学的C,不过也没关系,我学会JavaScript后,学C语言就轻松很多。
说了这么多言归正传,如何自学编程,其实就是如何自学C语言。我认为最好是找教学视频来看。个人推荐 : 郝斌c语言180个视频。
网上很多人力推《c语言程序设计 谭浩强》这本书,你可以去看看。这是大学计算机专业必备教程。也是C语言入门书籍。反正看书我是看不进去的。
一句话,这些语言都大同小异。真正重要的是编程思想。就是如何通过语言来实现解决问题的思路。

零基础学习编程,推荐书籍

应该先学C语言,它是C++的基础课程,我们就是这么学过来的,刚学完C++,如果你要学C++,我们的教材就很好,就是C语言程序设计基础与应用,清华大学出版社出版的,书皮是红色的,挺基础的,对于初学者先学习C++就难了

零基础自学编程,先学什么语言,请推荐相关书籍

完全零基础的话,建议学做网页吧,比较简单。书籍的话,先计算机基础,然后就学一些web前端的东西。

请问自学编程零基础入门看什么书籍好?

当然学习C语言入门,看C语言的书,我是大学计算机专业的,师大987奇巧300杂项192,提出数字,能Q,共同进步

零基础想自学编程

请问你想学什么语言,我推荐C语言,最接近底层的高级编程语言,我学了很多的计算机编程语言,最爱的还是C语言,最酷最炫。
入门级的书籍我推荐《C primer》老外写的,可能有一定难度。谭浩强的C语言程序设计是国内不错的入门书。
进阶的书包括《C缺陷与陷阱》《C专家编程》,都是老外写的。

编程零基础,想自学python语言,有什么适合的教材或者书籍推荐码?

简明python 教程入门错相关我文资料算少我两前搜集百MPYTHON教程相关资料

零基础学编程求推荐好书

编程这个概念很大,不同领域需要学习的编程语言不同。应该先从你兴趣开始,有兴趣再决定编程领域,有了编程领域在决定语言.不同的语言对应着不同编程领域,只有确定这些信息了,才知道要看什么书籍。如果你要学完那是有点不现实.
因此你要回想一下你兴趣来源是什么?比如喜欢做黑客,喜欢研究反病毒,喜欢为Windows桌面开发一些实用的小软件等等.要分析好兴趣来由,在决定你的发展方向,就好了.比如你喜欢为WINDOWS开发软件,那么 C语言是必备基础,学好好了然后在扩展一门面向对象的语言比如C++ C# JAVA 等.这些是不错的选择。然后光有语言不行,为了软件的质量保证,还需要研究一下系统理论基础,这样你的软件才能做到对系统的作家兼容性和获取最佳性能。
也可网络一下, 80x86汇编小站 这个网站里面有几篇关于编程入门文章或许会对你有帮助, 或者 你直接联系 这个站长 跟他交流编程方面的事情

零基础学编程c语言java选什么书籍

我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和Java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言„„呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。

零基础怎么自学编程

第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看,操作系统还是首选windwos或者mac
第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;还有一点,尊重图书作者的版权。
第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习
–1>.去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
–2>.选择一门简单的语言作为入门语严;
–3>.学会使用搜索引擎;
–4>.知道如何看书;
–5>.要”像”个高手;
–6.>应具备的学习态度;

选定方向
编程的世界是多元纷繁的,大的方向就分前端开发、后端开发、移动开发、云计算、数据处理、智能硬件、物联网、虚拟现实等等,光编程语言都几十种。如果没有做过功课,贸然进入只会分分钟懵逼。所以最好是根据自己的兴趣爱好再结合市场前景,先选定一个方向,再选择一门语言,然后头也不回的深深扎进去。
我当初开始自学编程的时候,因为工作时学了点Linux,就准备学Linux。Linux没学几天,发现游戏编程的Unity 3D挺好玩的,就转学Unity 3D。Unity 3D学了段时间又觉得大数据很火,感觉接下来是大数据的时代,要跟上时代的脚步,然后又去学习Python。后面才意识到自己在移动应用上面有极大的兴趣并有一些自己的想法,再加上本人很喜欢Google,遂最终决定好好学习Android移动开发。
如果自己对自己兴趣爱好没有深刻的认识,没有明确的学习目标,只是一味茫然的去尝试,最终只会像猴子掰玉米一样,不但浪费了自己宝贵的时间,还会一无所获。
####制定学习目标计划
选定了方向之后,剩下的就是朝着目的努力前进了。自学的过程是枯燥乏味的,也没有人陪伴督促,所以要想自学有一定成果,除了要有清晰明确的目标计划,还要有很强的自我约束能力,还要善于自我及激励。不然很容易自由涣散,三天打鱼两天晒网,看起来花了不少时间,实际上没学到什么。
我开始的时候就是凭兴趣漫无目的的学习,结果发现收效甚微,于是才制定学习计划,开始系统的学习。我先是学习了JAVA基础语法,然后将整个Android开发涉及到的所有知识面简单快速的学习一遍,这样对整个体系框架有一个全面大概的认识,然后在详细具体的学习每一部分,尽量搞明白其中的实现逻辑和原理,以达到掌握知识的目的。最后开发练习的时候再根据自己要实现什么功能,去查相关的资料。
优化学习方式
一、做好笔记,记录经验
我们大多数人并没有过目不忘的神技,很多时候我们学了也不一定马上掌握,需要过后花时间慢慢领悟,而且还有忘掉的风险,所以对于重要的知识点都要做好笔记。
编程的过程中总会遇到各种各样的问题,比如编程环境的配置,常用的快捷键,编程过程中的错误、异常,软件更新问题等等。这些问题往往会不只一次出现,所以我们面对这些问题都是如何解决的,一定要记录下来,一是增加自己解决问题的经验,而是以防下次出现。
我做笔记记录的方式:
* 截图
* 拍照
* 思维导图
* 写Word文档
除了最初用纸质笔记本做过笔记,后面都是用上面的方式。用电子的方式方便快捷易于分享,而且我还能传到手机上,利用其它时间随时随地阅读。
二、认认真真敲代码
二、认认真真敲代码
二、认认真真敲代码
编程没有捷径,只有勤奋努力。
三、多看官方文档,外文资料
互联网是一个更新迭代很快的行业,所有编程语言都会不断的更新新功能和修复旧Bug,网上查的资料很有可能是旧的解决方案,现在已经不适用了。所以最好最快的方法就是查看官方文档。
毕竟互联网技术还是国外发展起来的,所以在很多技术问题方面,人家还是有优势的。有些问题在国内不一定能找到答案就去外网找。
四、进入行业圈子
只有进入行业圈子与其他人交流,你才了解最新的行业动态,才知道自己需要更新哪些技能。最重要的是有了这群人,自己遇到问题解决起来嗖嗖的,那速度才叫“倍爽儿”。
进入行业圈子的方式:
* 混迹各行业网站论坛个人技术博客
一般在搜问题时很容易就搜到这些网站
* 关注各种行业话题和人
比如知乎、微博、微信公众号等
* QQ群、微信群
交流基地,技术后援团
* Github
互联网圣地,行业大圈子就在这。
五、动手做项目
我们学习编程的最终目的就是用所学的做出具有一定功能的项目,而做项目又是最好的学习和巩固知识的方式。如果前期能力不足就先做一些简单的功能模块,一步一步慢慢来,不要一开始就要实现各种酷炫炸天功能,遇到不会的就在网上查, 现在互联网这么发达,获取资源也及其方便。而且开发前也最好在网上查一下有没有已经成型的框架或模板,编程界有一句很流行的话“不要重复造轮子”,什么都自己做一是很耗费时间,二是自己技术能力不足还可能留下不少坑。

G. 学编程是不是一定要英语很好

不一定。学编程的人最根本的还是要数学底子好,所有的算法都是靠严密的思维逻辑才能够行得通的。编程语言要写大量源代码,其实只要是认得26个字母的人都可以编程。
但是毕竟程序这个东西是西方那里过来的,我们现在编程的代码都是英文字母。先进的计算机编程技术也都是西方那里学过来的,一些大型的计算商用程序大多数被西方垄断。如果要想在编程上有所进展,学习英语对拓展视野大有用处。
国内也有编程不用英文字母写源代码的,比如说易语言,所以学习编程外语不一定要很好,将来中国强大了,源代码用中文写,不也是很好嘛!我们的雷军,英语虽然不是很好,但编程可也是一流的,这正说明了学编程不一定要英语很好。

H. 老外的测试让你更好地编程

老外的12条测试让你更好地编程

你听说过SEMA么?它是一个用来测试一个软件团队有多好的相当深奥的系统。不,等等!不要手贱点开这个链接!它会花费你大概六年的时间来了解这个东西。所以我提出了我自己的、跟它相比极不负责任的、草率的评价一个软件团队的质量的测试。这个测试最棒的方面是它只会花费你3分钟的时间。你节省下来的所有时间,还可以去上个医学院。

Joel测试

TheJoelTest

Doyouusesourcecontrol?

Canyoumakeabuildinonestep?

Doyoumakedailybuilds?

Doyouhaveabugdatabase?

?

Doyouhaveanup-to-dateschele?

Doyouhaveaspec?

?

?

Doyouhavetesters?

Donewcan ?

?

Joel测试的好处是很容易快速得出针对每一个问题的“是”或“不是”。你不必去翻出那些每日编程行数和每个拐点的平均bug数。如果你的团队有一个“是”就得一分。关于Joel测试令人失望的是,你真的不应该用它来确保你的核电站软件的安全。

获得12分是完美的,11分也还可以容忍,但10分或更低的分数表明你有严重的问题。事实上,大多数软件企业都以2分或3分的分数在运转着,他们真的很需要帮助,因为像微软这样的公司一直以来都以12分的完美表现在运转。

当然,这些都不是决定成败的唯一因素:特别是当你有一个正在开发没人要的产品的伟大的软件团队的时候,那么,人们是真的不会接受这个产品的。同时一个没有这么做的“神枪手”仍然能产生出令人难以置信的改变世界的软件也是可能存在的。但是,在其他条件相同的情况下,如果你把这12件事情都做好了,你就会拥有一个能始终如一完成任务的团队。

你使用源代码管理么?

我用过商业源代码管理包,也用过CVS,它是免费的,让我来告诉你,CVS很好用。但如果你没有对源代码进行管理,你就要应激尝试把程序员都弄到一块来工作。程序员根本不会知道别人都做了什么。犯过的错误不能轻易改过来。关于源代码管理系统的另一个好处就是源代码本身可以在每个程序员的硬盘上进行验证---我还从没听说过哪个使用源代码管理的项目丢失了很多代码。

你能在一步之内编译程序么?

通过这条测试我想明白:从最新的源代码的快速复制到进行能输出的编译需要多少步骤?再优秀的团队里,有一个单独的脚本,它能从零开始对代码做一个全面的检查,重新编译每一行代码,生成EXE文件,在他们各种各样的版本、编程语言和#ifdef宏定义组合,创建安装包和最终媒体--CDROM 布局、下载网站等等。

如果这个过程需要一个以上的步骤,就很容易出现误差。当你接近完工的时候,你很想有很快的修复“最后一个”bug的周期,生成最后的EXE文件等。如果编译代码要用20步才能完成,运行安装编译器,……,等等,你会抓狂的,并且会导致你犯下愚蠢的错误。

正式由于这个原因,我曾工作过的上个公司就从“聪敏”模式切换到了“软件安装打包”模式:我们要求安装过程中可以运行,使用NT调度从脚本整晚自动地运行,“聪明”模式做不到这些,所以我们就抛弃了这个模式。

你每天都编译代码么?

当你使用源代码管理的时候,有时候程序员偶然会检查出会停止编译的东西。比如,他们添加了一个源文件,一切在他们的机器上编译起来都很好,但他们忘记把源文件添加到代码库里了。所以他们锁定了机器就回家去了,比较健忘也比较高兴。但其他人都不能继续工作了,所以他们也不得不很不愉快地卷铺盖回家了。

打断编译是很糟糕的(也很常见的),但它能帮助程序员每天都编译代码,以确保不会出现没有预兆的编译中断。在大型团队里面,一个很好的确保中断能迅速修复的方法是每天下午都对代码进行编译,比如可以在午饭时间做这个。每个人都尽可能多地在午饭前做代码检查。这样当他们吃完午饭回来的时候,这个编译就已经完成了。如果它能用,就太好了!每个人都对最新的源代码进行检查,然后才继续工作。如果编译失败了,你就修复它,但每个人还能在预编译、没有中断版本的源代码上继续工作。

在Excel项目组,我们有一条规则:谁中断了编译,作为对他的“惩罚”,他就要在其他人中断编译之前临时照顾代码编译的工作。这是一个很好的不中断编译的激励方式,也是一个让每个人轮流参与编译工作从而都能知道编译原理的好方法。

你有bug数据库么?

我不在乎你怎么说。如果你在开发代码,即使是在一个人的团队,没有一个组织的列出代码里所有已知bug的数据库,你将会产生出低质量代码。许多程序员都认为他们能把众多的bud存在脑子里。真是胡说八道。我根本就不能再同一时间记住两个或三个bug,第二天早上,或者在写代码的高峰时期,就记不起它们了。你绝对要正式地跟踪bug。

但数据库可以是复杂或简单的。一个最小限度的bug数据库必须包含以下对每个bug的数据:

再次出现这个bug的完整步骤

预期的行为

观察到的行为

它是被设计来干嘛的

它是否已被修复

如果bug跟踪软件的复杂性是让你不想跟踪你的bug的唯一理由,只用上面包含简单的5个元素的表格用在这些至关重要的领域,开始使用它吧。

你在写新代码前会修复bug么?

第一个版本的Windows系统上的微软Word被认为是一个“死亡行军”项目。不知道这项目要什么时候才能完成,它不断的延期。整个项目组在荒谬的时间里工作着,项目再次、再次、再次延期,这时候的压力的令人难以置信的。当讨厌的事情最终出货,几年以后,微软把这整个团队都送到坎昆去度假了,他们可以静下来做些严重的自我反省了。

他们意识到,项目经理一直在坚持按照“日程安排”部署工作,而程序员们只是头脑简单的赶紧完成敲代码的过程,又因为修复bug阶段并没有成为正式日程安排的一部分,这导致他们写出了及其恶劣的代码。没有能试图保持住bug不发作的倒计时。恰恰相反,据说一个程序员写了计算文本行高的代码,仅仅写了“renturn12;”然后就开始等待关于他的功能总是正确的bug报道。日程安排仅仅是即将变为bug的功能的检查清单。事后,这个被称为“无穷大缺陷的方法”。

为了解决这个问题,微软普遍地采取了一种叫做“零缺陷方法”的东西。公司的许多程序员都咯咯地笑,因为它听起来是一种好像通过行政法令就能够减少bug数量的管理思想。其实,“零缺陷”意味着在任意给定的时间内,优先级最高的是消除bug,然后才是编写新代码。让我来讲讲为什么。

一般情况下,你等待修复bug的时间越长,这个bug就需要付出的代价就越大(在实践和金钱上)。

比如,当你犯了一个编译器能捕捉的拼写或语法错误时,修复它的代价微不足道。当你第一时间看到你尝试运行的代码里有bug的时候,你能够很快的把它解决掉,因为所以的代码在你脑子里印象还很清楚。

如果你在几天前的代码里发现了bug,你会花费一段时间来找到它,但当你重读先前写下的代码后,你就会记起一切然后就能在一个合理的时间内修复这个bug。

但如果你在几个月前的代码里发现了bug,你很可能把关于这段代码的大部分东西都忘了,要修复它就很难了。这个时候你可能正在修复别人代码里的bug,他们可能会在阿鲁巴岛度假,这种情况下,修复bug就像科学一样:你不得不放缓步调、有条不紊、细致地开始工作,并且你还不能确定需要多长时间才能找到问题的治疗方法。

如果你在已经售出的代码中发现了bug,你会招致令人难以置信的代价修复它。

这是要立刻修复bug的一个原因:因为这样花费更少的时间。这关系到写新代码之前而不是修复bug之前还要等多长时间。比如,如果我要你预测写一个给列表排序的代买要多长时间,你可以给我一个很好的估计值。但如果我要你预测修复一个安装Explorer5.5版本后代码就不能工作的bug需要多长时间,你猜都猜不出来,因为根本不知道到底什么导致了这个bug。它可能需要3天时间才能跟踪到,或者仅仅3分钟就足够了。

这句话的意思是,如果你有一个很多bug有待修复的日程安排,这个日程是不靠谱的。但如果你修复了所有已知的bug,并且所有剩下的都是新代码,这样你的日程安排才会更加惊人的精确。

关于把bug控制到零还有另一件重要的事,那就是你可以对竞争响应更快。一些程序员认为这点能让产品在任何时候为发售准备好。如果你的竞争对手从你的客户那里引入了一个杀手级的新功能,你就能在发售之前只实现这个功能,而不必去修复大量累计下来的bug。

你有最新的日程安排么?

这条测试把我们带到了日程安排上来。如果你的代码对生意是很重要的,会有很多知道代码完成日期怎么对生意很重要的原因。程序员在制定日程安排上是出了名的倔。“该完成的时候就完成了!”他们会这样对商务人士尖叫。

不幸的是,这并没有让一切变得更好。在发售代码之前,公司需要做太多的计划好的决定:软件演示,展会,广告等。而要做到这一点的唯一方法就是拥有一个日程安排,并保证其为最新版本。

关于要有一个日程安排的另一个至关重要的原因是,它能强迫你决定要做哪些功能,然后迫使你挑选出最无关紧要的功能并砍掉它们,而不是陷入长期的犹豫中去。

同时,跟随日程安排做事并不一定要很苛刻。

你写代码有规范么?

书写规范就像牙线,每个人都同意这是一个很好的事情,但却没人做。

我不知道这是为什么,但很可能是因为大多数程序员讨厌写文档。结果,对一个大部分有程序员组成的团队遇到了一个难题的时候,他们更倾向于用代码来表达他们的解决办法,而不是用文档。他们宁愿埋头写代码而不是先写一份规范。

在设计阶段,当你发现问题时,你可以很容易地通过编辑几行文本就修复它。一旦开始写代码,修复问题的代价就大大地提高了,无论在感情上(人们讨厌扔掉代码)还是在时间上,所以这时候修复问题是有阻力的。不是从规范开始建立起来的软件通常会很糟糕地结束设计,并且日程安排会不受控。这个在 Netscape好像已经成为大问题了,Netscape的前四个版本慢慢变得一团糟,然后管理层愚蠢地决定抛弃旧代码再重新开始。然后他们又在 Mozilla上再一次犯了这个错误,创建了一个失控的怪物,并且浪费了好几年时间才又回到初始阶段。

我的一贯主张是,这问题可以通过把程序员送去学习写作的集中课程,把他们变为差不多的写手来解决。另一个方案是雇佣一些聪明的程序管理人员,让他们来写代码规范。在这两种情况下,你应该执行简单的规则“无规范不出代码”。

程序员有安静的工作环境么?

广泛的记录表明,通过给知识型员工提供空间、安静和隐私就能提高生产力。经典的软件管理书《人件》就广泛地记录了生产力受益于这些方面。

问题来了。我们都知道知识型员工随着“灵感流动”工作最好,就是我们所说的“进入状态”,在哪里他们会全身心专注于他们的工作,并且完全脱离了周围的环境。通过绝对的专注,他们忘记了时间,产生出伟大的代码。这是他们把工作完成的过程。作家、程序员、科学家,甚至篮球运动员都会告诉你要进入状态。

问题是,进入状态并不那么容易。当你尝试去考量它的时候,在最大生产力下好像需要15分钟才能开始工作。有时,如果你累了或那天已做了很多创造性工作时,你就是进入不了状态,你会把这天剩下的时间都用来摆弄点什么,看看网页,或玩玩俄罗斯方块。

另一个问题是,很容易脱离那个状态。噪声,来电话,出去吃午饭,不得不开5分钟车去星巴克喝咖啡,还有被同事打扰--尤其是被同事打扰-- 都会把你从那个状态里拉出来。如果同事问你问题,导致了一分钟的中断,但这个会很悲惨地把你从状态里脱离出来,你的话费半个小时才能再次变的高效起来,你的整体生产力会遇到很大的麻烦。如果你在一个含咖啡因的网络公司喜欢创造的嘈杂的牛棚一样的环境里,有营销人员在程序员身边尖叫着打电话,你的工作效率会大幅下跌,因为知识型工作者一次又一次的'被打断,一直都进入不了状态。

对程序员来说,这就更难了。工作效率依赖于能够同时在短期记忆中兼顾很多小细节。任何类型的打断都会导致这些细节轰然倒下。当你重新开始工作,你已经记不起任何细节(比如你刚才还在使用的本地变量名字,或你刚想出来的实施搜索算法的好点子)了,你不得不一直回想这些事情,这会让你变得很慢,直到你重新变得高效起来。

这有一个简单的代数运算。可以这么说(有证据暗示)如果我们打断了一个程序员,即使只有一分钟,我们真的会失去15分钟的工作效率。在这个例子里,我们假设有两个程序员,Jeff和Mutt,在一个标准的相邻开放的格子间里。Mutt记不起strcpy函数的Unicode版本的名字。他可以查一查,这需要30秒,或者他可以问问Jeff,这需要15秒。因为他就坐在Jeff旁边,所以他选择直接问Jeff。Jeff被分心了,失去了15分钟的工作效率(仅仅节省了Mutt的15秒)。

现在我们把他们两个分到有门和墙隔开的两个办公室去。这时如果Mutt忘记那个函数名,他可以花30秒去查一查,或者花45秒去问问 Jeff,这过程包括了站立起来(考虑到程序员的平均体能这并不是一项简单的任务!)。所以他会选择自己查一查。这样Mutt失去了30秒的工作效率,但同时为Jeff节省了15分钟。哈哈哈哈!

你使用钱能买到的最棒的工具么?

在公园里使用家用电脑立即用一门编译语言写代码仍然是最不能做的事情之一。如果你的编译过程超过几秒钟,使用最新和性能最强的电脑会让你节省点时间,当编译器运行的时候,程序员会感到厌倦,这是他们会切换到阅读点别的书籍,这会吸引他们的注意力,失去好几个小时的工作效率。

使用单个显示器调试GUI代码是很痛苦的,这也不是不可能。如果你在写GUI代码,两台显示器会让很多事情变得更加容易。

大多数程序员最终要处理图标或工具栏的位图,但他们大多数都没有一个好用的位图编辑器。尝试用MicrosoftPaint来处理位图是个笑话,但这就是大部分程序员们所要做的。

在我上一份工作中,系统管理员一直给我发自动的垃圾邮件抱怨,说我用了超过220兆字节的服务器上的硬盘存贮空间。我指出,鉴于最近硬盘的价格,这些硬盘空间的成本比我使用的卫生纸的成本都低多了。甚至花费我10分钟来清理我的邮件目录,这真是对我工作效率的极为荒诞的浪费。

顶尖的开发团队不会折磨他们的程序员。即使是因为功能不完善的工具引起的小挫折累加起来,也会使程序员脾气暴躁和不愉快。一个脾气暴躁的程序员是不会有工作效率的。

程序员最容易接受最酷、最新的东西贿赂了。与支付有竞争力的薪水比起来,这是一种让他们为你工作更便宜的方式。

你有测试人员么?

如果你的团队没有专门的测试人员,至少应该为两三个程序员就配一个测试人员,你会写出有很多bug的产品,或者你在花冤枉钱让测试人员30 刀每小时就能做的工作交给100刀每小时的程序员来做。在测试人员身上节省下来的钱是一个离谱的虚假的经济,我只是想让更多的人认识到这一点。

找工作的人面试时会写代码么?

你会雇佣一个没看过他魔术技巧的魔术师么?当然不会。

你会雇佣一个没尝过他的食物的餐饮服务商来为你的婚礼服务么?我对此表示怀疑。

然而,一天天的,程序员通过让人印象深刻的简历被雇用,或是因为面试者喜欢跟他们聊天。或者他们被问到很细的问题(“CreateDialog()和DialogBox()之间有啥不同?”),这些看文档就能回答了。你不关心他们是否记得关于编程的成千上万的细节,你只关心他们到底能不能写出代码。或者,更糟糕的是,他们被问到的都是“啊?”问题:就是那种你知道答案就看起来很简单,但如果不知道答案就什么也回答不上来的问题。

拜托,以后不要这么干了。在面试期间你想怎么问就怎么问,但一定要让参加招聘的程序员写点代码。

你会做走廊可用性测试么?

走廊可用性测试就是当你在走廊上遇到一个路人就强迫他试着用你刚写的代码。如果你对五个人做过这种事,你会学到你代码里需要学习的95%的实用性问题的答案。

好的用户界面设计并不像你想的那么难,如果你想让用户喜欢并购买你的产品这就至关重要了。

但关于用户界面最重要的事情是,如果你把你的程序展示给很多人看(实际上五六个就足够了),你就会发现人们存在的最大的问题。即使你的用户界面设计技术还不怎么样,只要你强迫自己去做走廊可用性测试,这并没什么代价,而你的用户界面会越来越好的。

;

I. 为什么编程厉害的都是外国人

编程一开始,由外国发明的,许多编程代码全是英文,所以说变成厉害的人很多都是外国人,你这是以前的事儿现在,由于我国发展,即使人才逐步增加,亲,在握弯,人民,知识分子感到这个缺点了所以说,变成,叶,通过学习,我们国人,也掌握了很多的知识,也出现了,也处理,宝队的编制,人才,所以说,编程,厉害都是外国人,那是以前的历史,现在我国依然可以,这世界是走入了世界前列了。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:745
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1007
python中的init方法 发布:2025-10-20 08:17:33 浏览:713
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:875
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1122
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:347
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:225
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:911
python股票数据获取 发布:2025-10-20 07:39:44 浏览:871