与苏州自学引擎擎差不多的软件

您的举报已经提交成功,我们将尽快处理,谢谢!
将IP地址改为自动获取试下咯 如果原本是自动获取的 那么检查下DNS码是否正确哈
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'您的位置:
自学引擎HD
自学引擎HDv2.3
要说什么东西能让妈妈操心,那无疑是就是儿童用品了,在天朝这个山寨横行的地方,儿童用品的安全一直都是个问题哦!下面小编就推荐一些关于儿童用品方面的安卓应用,这些应…
平时家长对于孩子的学习教育是非常的看重的,都望子成龙。所以游迅网小编诚心为您推荐下面这些儿童学习软件,丰富详细的教育资料,专业的教师在线教学,随时向老师咨询,帮…
自学引擎HDv2.3
本站仅创建用户沟通交流的平台,所展示的安卓软件资源内容来自于第三方上传分享,版权问题均与我站无关。资源仅作为用户间分享讨论之用,除开发商授权外不以盈利为目的。如该游戏触犯了您的权利,请申诉!邮箱:
1468人推荐
1006人推荐
热门软件:
最新软件:
拍照摄影:
CopyRight2004年-年
游迅网 All Rights Reserved
备案编号:沪ICP备号-9小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
主流脚本语言的比较和选择
主流脚本语言的比较和选择
&主流脚本语言的比较和选择&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && Hywhy
过去这一年的时间里,我买了不少书,查了很多资料,可以算是认真的学习了几种主流的脚本语言,因为我一直想搞一个好用的自动化工具,来方便我们的系统维护。虽然这个愿望还没有达成,但是在这个过程中,还是学到了很多东西。今天下午,跟同事们聊天时,说到了脚本语言,这是比较难得的,也正好借这个契机,把我的一些看法说一说,有不妥和错误的地方,请大家多指正。为什么选择脚本语言为什么选择脚本语言,可能每个人面对的实际情况都不一样。语言本身没有好坏之分,只有合适或者不合适。因此,我所谓的选择主要是根据应用需要来选择,并非根据语言的好坏或者使用者的习惯。就我自己的情况来说,很长一段时间里,如果需要程序来辅助完成工作时,我都会选择Java。
先简单说说Java,Java是企业应用当之无愧的统治者。但是,近几年随着大家对开发语言认识的转变,Java已经让越来越多的人感到不满,取而代之的是脚本语言的迅速崛起。一个例子是,Java 7在最初的功能规划时,呼声最高的是&闭包&,而&闭包&恰恰是脚本语言最具特色的功能之一。在使用诸如Java,C之类的语言时,我们不得不面对各种复杂的数据类型、设计模式和大量看起来没用但又不能缺少的代码。而对脚本语言来说,这些问题都是天生就不存在的。现在,开发讲究敏捷,注重效率,对于一个企业来说,开发工作首先要考虑的就是成本,敏捷开发正是降低成本最有效的手段之一,而脚本语言,又是实现敏捷开发的一条可行之路。
有人说Java已经out了,但我并不这么觉得,我个人认为Java仍然是最好的跨平台方案。现在我们已经不能单纯把Java看做一门语言,它已经成为一个事实上的平台。构建在Java平台之上的优秀的Java替代产品,也已经得到大家的广泛支持和认可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于脚本语言。
说了半天废话,还是要回到我选择脚本语言的话题上。我的初衷很简单,我要找一个非Java平台的,C语言的替代品。为什么?第一,Java不是万能的,比如它做不了ICMP Ping;第二,C语言学习曲线过长,C程序的部署难度较高;第三,上述的脚本语言的所有优势。
本着以上几个原则,我学了几个流行的脚本语言,他们是:Perl、Python、Ruby,当然后来我也学习Java平台上的脚本语言,如Jython(Python的Java实现)、JRuby(Ruby的java实现)、Groovy。下面我想就这几个脚本语言,来做一个简单的比较,希望大家在选择脚本语言时,能有更多的参考。脚本语言的比较脚本语言的比较,可能比较凌乱,但我想侧重以下几个方面:学习曲线,语言本身的特色、跨平台的能力、国际化的能力,以及它在应用领域的份额。Unix/Linux Shell首选还是要提一提Unix/Linux Shell(包括awk、sed),它也是脚本语言,并且可能是我们日常使用最多的。我个人感觉,shell更适合做流程化的系统管理工作,而对于逻辑较为复杂的应用级产品,shell的开发和维护难度都相当高。带有个人情感的说,shell的学习难度大于大多数主流脚本语言,这和它的语法特点,调试、运行环境等等都有关系。因此,日常流程化的系统管理工作,shell仍然是一个不错的工具,除此之外,相信大家还有更好的选择。Python/JythonPython最大的魅力之一,就是简单易学,一个新手可以短期内(有人说是十分钟,我认为几天是完全可能的)就写出高质量并且实用的程序,它甚至被称为非计算机专业人士学习编程的最好选择。Python的功能强大,标准库的丰富程度,估计连Java也望尘莫及。Python适合做系统管理,但这并不是说它不能做大型应用程序。Python应用的成功案例,已经数不胜数,尤其是在科学计算领域更是独树一帜。Python是一门优秀的面向对象语言,但更多的Python程序员,喜欢Python面向过程的部分。我个人感觉,Python的OO不如Ruby,因为不够彻底,但这也正是Python支持者更爱它的地方。
可惜的是,Python在企业应用领域没能有更大的突破,近几年更有被后起之秀Rails(Ruby的WEB框架)抛在身后的意思。但这并不说明Python在企业应用方面不成熟(豆瓣网是离我们最近的Python案例),如果有兴趣,大家可以了解Python社区最具人气的WEB框架Django,也可以去看看简单到让人难以置信的WEB框架webpy。Python在短短几年内就成为六大主流开发语言之一,绝对不是盖的!
Jython是Python的Java实现,它是IBM WebSphere服务器官方指定的管理语言。我选择jython是看重了jdbc访问数据库的便捷。但可惜的是,jython对中文支持非常不好,可能是python本身的复杂度较高,jython团队的活跃度也比较低,总之Jython要走的路还很漫长,
至少我认为当前版本,还不具备投入生产开发的能力。Ruby/JRubyRuby是脚本语言的后起之秀,它的成功要得益于杀手级框架Rails,Rails社区早就喊出了干掉Java的口号,虽然这种口号没有什么实际意义,但Rails的确已经成为眼下最为炙手可热的企业应用框架。我个人花了几个月的时间学习Rails,虽然没有实际的开发经验,但Rails敏捷开发上的突出表现,的确是当仁不让的,这也是它能迅速窜红的主要原因吧。
抛开Rails框架,还是来说Ruby。Ruby的语言特色是纯面向对象,语法以魔幻著称(它吸收了Perl、Python等脚本语言的大量优秀元素)。因此它的学习曲线要高于Python,但是学成以后可能会写出非常优雅的代码。美中不足是Ruby还年轻,它的标准库还不够丰富,成熟的第三方库也相对较少,但这些情况会随着时间的推进逐渐改变。
Ruby完全可以胜任系统管理的需要,当然,如果开发WEB程序,Rails更是不二的选择。
JRuby是Ruby的Java实现,也是最早被Sun官方接收的Java平台脚本语言(后来还有Jython)。JRuby与Ruby的兼容性非常高,团队也非常活跃。如果想在Java平台上使用脚本语言,除了Java原生的Groovy,我推荐JRuby,这也是我的选择。Perl提到Perl可能很多人会想到CGI,我个人可能更多的会联想到文本处理,事实上,Perl设计之初的主要用途的确是在文本中提取信息。Perl像Python一样,是目前最久经考验,且成熟度最高的脚本语言之一,它有着大量的用户群和忠实的粉丝,因此我说Perl的坏话就比较心虚一点:)
坦白的说,我不太喜欢Perl,可能像大多数不喜欢Perl的人一样,Perl语法让人不太习惯,有人说Perl的语法丑陋,可能有些夸张,但这能说明一些问题。Perl社区至少也应该承认一点:Perl是一门比较难上手的语言。这并不是说,你短期内掌握不了Perl,而是你短期内写不出真正像样的东西。另外,Perl不是面向对象语言,当然,很多人并不看重这一点,但这并不是什么优点。
Perl适合做系统管理,我觉得它跟shell很像。在其他应用领域,尤其是internet方面,
Perl都有不俗的表现。Perl非常优秀,还是那句话,语言没有好坏,只有合适不合适。Groovy如果你正在为&热爱Java平台&和&厌恶Java语法&的事情纠结,Groovy可能就是最好的选择。Groovy可以说是Java平台的原生脚本语言,与Java完美结合,它本身不提供标准库,完全使用Java的API库。在Rails成功之后,Groovy社区也出现了Grails框架,用来抗衡Rails。Groovy本身也吸收了Ruby大量的经典语法,热爱Java的人,可以选择Groovy。脚本语言的缺点和未来目前大家公认的,脚本语言的主要缺陷还是性能问题,当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。从EJB的崩溃,Spring的兴起到Java遭受质疑,Rails取得成功,都说明,大家在面对不同规模的应用时,已经非常理智了。我相信能够真正服务于我们的技术,才能有好的前景,脚本语言的明天是无限光明的!
一个纸水杯的测试用例设计。
需求:一个带有广告图案的花纸杯。查看需求说明书。可从功能性、性能性、易用性、稳定性、安全性&&方面进行测试功能性:&&& 水杯的特性:&&&&&&1、杯子的容量:能装多少升水,少量、半杯、满杯。&&&&& 2、杯子的形状eg:圆形、上口大、下口小。&&&&&&3、杯子的材料:纸杯。&&&&& 4、杯子的耐温度:装冷水、冰水、热水。&&&&& 5、杯子是否会漏水。&&&&& 6、用杯子装水,看是否能喝到&&&&广告的图案:&&&&& 1、广告图案是否容易剥落。&&&&& 2、广告图案是否合法。&&&&& 3、广告图案遇水是否是否会掉落。&性能性:&&&&& 1、盛冷水和热水时分别盛多少水杯能够承受。&&易用性:&&&&& 1、杯子是否方便饮用。&&&&& 2、装热水时杯子是否烫手。&&&&& 3、杯子是否有防滑措施。&稳定性:&&&&& 1、装入液态多久后会漏水。&&&&&&2、杯子从不同高度落下的损毁程度。&安全性:&&&&& 1、杯子有没有毒或细菌。&&&&&&2、杯子装入热水是否会变形或有异味。&&&&& 3、装入不同液体,是否发生化学反应。eg:啤酒、可乐、咖啡等饮料。&可移植性:&&&&& 1、杯子再不同的地方、温度等环境下是否都可以正常使用。&破坏测试:&&&&& 1、检查水杯最大抗挤压和拉扯承受力。&&&&&&2、检查水杯被破坏后,是否会造成使用者伤害。
用户手册:&&&&& 1、用户手册是否对杯子的用法、限制、使用条件等做了详细的说明。
10条编成语录,仅供欣赏。
10. If debugging is the process of removing software bugs, then programming must be the process of putting them in. & Edsger Dijkstra如果调试程序是移除臭虫(软件缺陷)的过程,那编写程序就是把臭虫放进来的过程。&& 迪杰斯特拉
09. The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. & Tom Cargill软件开发的时间通常是这样的:一开始的90%开发工作用掉了整个计划90%的时间,剩下的10%同样需要整个计划90%的时间,而最终发布前的修改也是如此。&& N.J. Rubenking
Writing the first 90 percent of a computer program takes 90 percent of the time. &The remaining ten percent also takes 90 percent of the time and the final touches also take 90 percent of the time. ~N.J. Rubenking
08. &There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.&- C.A.R. Hoare设计软件有两种方法:一种是简单到明显没有缺陷,另一种复杂到缺陷不那么明显。&& 托尼&霍尔
07. Measuring programming progress by lines of code is like measuring aircraft building progress by weight. & Bill Gates用代码行数来衡量程序的开发进度,就好比用重量来衡量飞机的制造进度。&& 比尔&盖茨
06. &Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.& & Martin Golding在编写代码的时候,你要经常想着,那个最终维护你代码的人可能将是一个有暴力倾向的疯子,并且他还知道你住在哪里。&& 里克&奥斯本补充:关于这条语录,StackOverflow 上也有个,给出的答案可能是John Woods。
05. &The trouble with programmers is that you can never tell what a programmer is doing until it&s too late.& & Seymour Cray程序员的问题是,你无法知道他在做什么,直到为时已晚。&& 西摩&克雷
04. Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. & Rick Cook今日之编程,已是竭力要建立更大更反白痴程序的软件工程师,和正塑造更大更优质白痴的现实世界之间的比赛。目前来看,现实世界赢了。&& Rick Cook
03. &Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.& &&你们大部分人都熟悉程序员的美德。当然了,是这三种:懒惰、急躁、傲慢。&& 拉里&沃尔 (Perl 语言之父)
02. &Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday&s code.& & Christopher Thompson有的时候宁愿付钱让你周一在床上待着,也不想让你用这周剩下的时间去调试你在周一所写的代码。 && 丹&所罗门
01. Walking on water and developing software from a specification are easy if both are frozen. & Edward V Berard在水中行走,和根据一份需求开发软件一样,如果它们都&冻&住了,那就容易了。&& 爱德华&贝拉尔德文章出自:&
[浅谈]敏捷开发的关键挑战
敏捷开发看起来能够解决我们所有的问题,但事实却并不如此。有些公司在尝试敏捷开发后遇到了各种问题。有人对十七个采用敏捷开发的公司进行了调查,&。这篇文章的作者分析了九个最常见的问题。我这里只谈四个。
1. 开发者害怕暴露能力缺陷每个团队成员的工作往往是每天汇报的,例如在开会的时候每个人汇报工作。这样团队的每个成员都会知道你每天花了多少时间做了什么事。假如有一个工作你花了比正常流程更多的时间,那么你会感觉到每个人都在质问你为什么。还有,在一块白板前一起讨论设计等问题往往会暴露一个人的能力不足,或者沟通不善。&
2. 要求全能型开发者成为一个成功的敏捷开发者,你需要是一个同时具备码农,架构师,测试工程师和客户的能力。很多公司为此去培训员工,但这个代价是很高的,并且不是很有效。&
3. 对沟通的要求太高由于敏捷开发是在不断的沟通中进行的,所以团队的成员需要非常好的沟通的技能。但往往一个优秀的程序员是不善于社交、沟通的。这就是一个问题。有些团队成员无法有效的传递他们的想法给团队的其他成员。&
4. 开发者缺少业务知识敏捷开发要求开发者可以直接和客户沟通有关程序的功能。但是对于一个大型项目来说,不可能每个开发者都对项目的所有功能了解。可能每个人就做一小块功能。这样的话一旦某个人休假或者离职,那么顶替上的程序员就不具有对这块功能的业务知识,当他去和客户沟通的时候就会显的不专业。&由此可见,敏捷开发不能解决所有问题。它是一个好的方法,但是也有缺点。但是这些缺点也是有办法克服的。特别要注意的是:敏捷是为人服务的,而不是反过来!文章出自:译文出自:
那些年,我们一起找过的工作。
&&&&&&& 前些天无心学习技术就应老婆的要求下载了一些电影,其中就包括了《那些年,我们一起追过的女孩》,看着看着就回想起了自己的青涩少年时代,也回想起自己这些年到处漂泊的经历,下面就讲讲自己这些年的求职经历,有辛酸的,有搞笑的。
&&&&&&& 第一次找工作时大学还没有毕业,大约是在1999年,当时主业是在网上学网页制作技术,副业就是在BBS里写文章赚眼泪,因为那时轻舞飞扬流行的年代。有一天突然在论坛有一位我的读者联系到我,他知道我会做网站所以想让我兼职做他们公司的网站。在一个细雨蒙蒙的上午,我去了那家咖啡厅,名字叫&伽利略咖啡&。他首先给我看了他们当前的网站,然后说了他的不满意,其实我一看他们的网站我就知道自己不行了。因为那个网站是用Flash做的,在那个年代会Flash相当了不起了,我在当时也就仅仅会HTML和Javascript。后来就在公司唯一的一台电脑上捣鼓,一不小心发现他们的工资表,我发现经理级也就1000,员工才几百而已,一琢磨我即使去了肯定也那不了多少钱,所以最终没有去。当时觉得月薪1000似乎很少,实际上2002年我毕业参加工作时工资才930,扣除三险一金到手也就630而已!当然这是后话了。
&&&&&&& 第二次找工作是大学毕业之前的双选。听95、96级的师兄兼老乡说,大学曾经是包分配的,只不过到了我毕业的时候已经改为双向选择了。所谓双向选择就是每年秋冬季节都会有用人单位到学校来招聘第二年夏季毕业的学生。因为我们学校是油田院校(以前叫江汉石油学院,现在叫长江大学),所以来的基本上都是各油田单位。要说我当年的成绩确实不怎么样,专业是建筑设计与施工相关的,我心思就没怎么放在专业课上,我追求就是及格就行,而对于我感兴趣的软件开发方面的课程,一是没有专业的老师指导,二是没有机器可以实践(学校的机器都转了还原卡,一重启以前的操作全没了,而那时装个软件十有八九是要重启的)。好在那时候爱好广泛,所以认识了很多人,有一起玩游戏的朋友,有一起在BBS上写文章发闷骚的文艺青年朋友,还有一起打麻将、斗地主的牌友,还有一起在图书馆学习认识的朋友,反正种种消息汇聚到我这里,我总能第一时间知道现在学校里有哪些单位来招人了。有一天晚上一位消息灵通认识告诉我,晚上十二点左右会有天津大港油田的人来招聘。第二天八点钟的时候别人都去教室上课了,我去了学校招待所,向招待所的人问清大港油田来的住的房间的电话之后,我说了如下一通话:&您好,我知道这个时候给你打电话不是很合适,但是我想您是从学生走过来的,你肯定能体会我现在迫切需要一份工作的急切心情,所以请原谅我这么早给您打电话。我想问一下您什么时候方便,我会在您方便的时候找您。&我也不知道是不是我这番话起了作用,反正当时招聘负责人就很爽快地让我过去了,在问了我几个基本简单的问题之后就在我的就业协议书上签了字,这几个问题包括有没有计算机二级证、英语四级证之类的。
&&&&&&& 第三次找工作是在大港油田参加工作一年多的时候,那时候因为经常要出差,所以有想换个工作的想法。那个时候其实经验还不丰富,仅仅会用Java做一些简单的网页,可以说还不能系统地做一个网站。那时候面试了两家公司,两家公司都是天津南开区的。第一家公司问了我一些问题,我都回答不是很好,尽管如此别人还是决定留下我,月薪是800元。在点评我的面试表现的时候,他说了我的一些不足,我很理直气壮地说:&我现在所掌握的一切都是自己自学的,因为我是非计算机专业毕业的。&面试官很平静地对我说:&我也是非计算机专业毕业的,我现在所掌握的也都是我自学的。&我一下子接不上话来。多少年后当我成为面试官去面试别人的时候,偶尔也会有应聘者在强调自己面试不佳是因为自己是自学等这样或那样的原因时,我就会回想起当年我在天津的那次面试,我也会很平静地告诉面试者我现在所掌握的一切也都是自学的。第二家公司是天津市的一家置业公司,我去面试的时候去做了一张A3的试卷,有很多是Oracle数据库方面的知识,在此之前我只接触过MySQL和Access,所以几乎没有回答上。除此之外还有一道Java面试题我印象深刻:如果在try{}catch{}finally{}代码块中,如果try{}代码块中抛出异常语句之后的代码中有return,finally{}代码块是否能被执行?如果能执行,会是什么时候执行?像这种情况根本在实际情况中根本遇不到,虽然编译会通过并且也会执行,但是这种代码可读性不是很好,在面试中经常会问到这类的问题,它主要用来考查被面试者对基础知识的掌握程度的。可想而知,我在这次面试中的表现也不理想。第一家公司我没去成是因为它开出的薪水比我当前公司的薪水还低,而第二家公司根本就没有到谈薪水的地步。
&&&&&&&& 第四次找工作是在2005年夏季的时候,当时家里出了一点状况,爸爸胆息肉做了手术,我请了半个月假回家。到家之后爸爸的手术已经做完了,并且恢复得很不错,家里也有人来照顾爸爸,于是我给家里留了一点钱之后就去上海找工作了。在网上更新简历之后首先接到徐家汇的一家培训公司的面试邀请,面试的结果很不理想,于是过了一会有一个女孩子走了进来,说本来是想招聘我做老师的,但发现我技术不行,所以建议我报名参加他们的培训,如果不是当时身上仅有5000多元,我可能真的就很傻很天真地报名参加培训了。后来又鬼使神差参加了一家刚刚成立的中日合资的保险公司的面试,公司在北京东路与浙江中路交叉口附近的上海科技京城写字楼上,说是招聘高级营销顾问,去的人还不少,至少有二三百人,在对口才和思维敏捷能力等方面进行了解之后,最终留下了15个人,我侥幸被最终留下了。在经过一周的礼仪及行业知识培训之后,只剩下了8个人。不过因最终家里不同意(感觉靠嘴皮子吃饭不靠谱),所以我最终还是偷偷回到了天津的单位。搞笑的是,在火车正缓缓启动的时候,接到了一家软件公司的电话,说是问我是否愿意去面试并且还问我是否能接受出差,我有点哭笑不得地告诉对方我已经在离开上海的火车上。
&&&&&&& 第五次是在2006年2月。这时我已经从天津大港油田辞职并且到了山西太原了,和以往以前我这次依然很傻很天真在网上刷新简历,谁知过了一个多星期居然没有接到一个电话,这很让我很是诧异。我当时住在太原市的一个城中村里,同租的人告诉我他们找工作都是去人才交流中心的。我这才平生头一次去了太原市亲贤北街上的一家人才交流中心去看职位情况,很幸运的是在那里看到一家公司在招ASP.NET开发人员,于是我照着上面留的电话打过去,人家让我过去面试。去面试的时候发现已经有两个人在那里等着了,因为我年龄在三者之中交大且有ASP.NET开发经验所以被优先面试了。面试我的人有.NET开发经验但是没有ASP.NET的开发经验,所以问的问题都比较简单,结果自然是被录用了。等到我要走的时候,忽然有人来喊面试官去开会,于是面试官就让我去面试剩下的两个人,我当时差点没反应过来。在同一天在同一家公司先当应聘者再当面试官,我相信有这样的经历的人不多。
&&&&&&& 第六次是在太原工作了一年多的时候,那时候全国各地都成立了.NET俱乐部,太原也不例外,我也加入了山西.NET俱乐部的QQ群。因为回答问题踊跃,所以在群里有一定的影响力,这时恰好有一家想招高级.NET开发人员,于是朋友推荐了我。在那里和公司的副总聊了半天,他大谈公司规划,什么计划上市之类,许诺可以给期权。我至今都不知道期权是什么,只是听说是原始的股票,一旦上市之后将会优先获得优惠价格的股票。算到今年已经6年过去了,我也没有看到那家公司上市。
&&&&&&& 之后也曾有多次换工作的想法,并且跟很多公司接触多,所以太原的软件公司小,大都是一些软件公司的老板(更严格地说,大多是开发人员不超过5个的软件作坊),印象比较深刻的有三个。一个是一个女的,每次见面都喊得特别亲热,一起吃过几次饭,并且在她公司遇到技术问题的时候我无偿帮助过,不过我最终没有去,尽管她曾开过比较不错的薪资,但我一看到几乎一面墙的规章制度就知道不适合,我开玩笑说尽管薪水很高,但我这个人比较不遵守规章制度,如果真去了按照规章制度罚款,最终我还要倒贴钱。另一个是做技术出身的老板,我们的第一次见面是朋友叫上的,他们公司当做要做全省工商银行的考勤系统,因为情况复杂、数据量大,所以希望找一些外面的技术人员来参与,在那次交流之后大家留下了比较深刻印象。之后每逢国家节假日都会收到他送的水果,不能不说是一个有心人。曾经在一个晚上,当时是11点多,我都已经睡下了,这时候接到了他的电话,他让我到路口等他,然后他开车接我去上岛咖啡吃西餐,吃完西餐之后把车开到了城郊,在那个晚上他向我描绘了他对公司的规划并且也说了目前的短板,最后非常诚恳地邀请我加盟。说真的,我自己都感觉很奇怪,如果换做是那样一套流程让一个男孩子向女孩子求婚,没准女孩子都能答应,但是我真的没有答应加盟,尽管不知道那些不对劲,但是我就是感觉不对劲。后来有一个不错的朋友去了他那里,没多久之后果然因为一些经营上的意见相左而不得不离开。第三个老板更是一个有心人,在一个偶然的机会和他同桌吃过一次饭,在桌上我说了一句我不喜欢吃香菜,事隔数月之后他请我吃饭他还能记得我不喜欢吃香菜和最喜欢吃的菜,说真的还确实有些感动,还差点被蒙骗了。实际情况是此兄居然在员工结婚的时候送的礼金会被从工资中扣除,仅此一项就是闻所未闻,其它更不用一一道来了。
&&&&&&&&自从回到武汉之后,虽然也曾经到过一些公司去面试过,不过在以前的文章中有讲述过,这里也就没有再重复一遍的必要了,而且因为距离现在比较近,容易引起不必要的麻烦。有人说《西游记》从儿童的眼光看是一部魔幻小说,但从成人的角度看则是一部成长史,讲述了孙悟空这个刚进入社会不止天高地厚的小伙子到慢慢融入这个社会、甚至到最后强迫那些和曾经反抗社会的它一样的妖怪去融入这个社会,这完全是我们自己的一个写照,我们曾经年少轻狂过,等岁月流逝之后我们慢慢变得成熟,慢慢学会用世俗的要求去对待和当年的我们一样的年少轻狂的年轻人。在西游记中面对困难孙悟空虽偶有退意,但在行动上始终未曾退却,于是最终得成正果,在工作中如果我们亦如孙悟空一样,也终会得成正果的。&&&&&&& 工作如此,生活亦是如此。
程序员学英语三部曲
作者在IT业从业多年,翻译过多本技术图书,对英语的学习方法也有颇多积累。在本文中,他更是敞开心扉,分享了自己压箱底的三大绝技。总的来说,程序员算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时、需求也最迫切的。因此,据我观察,即便刚入门不久的程序员,面对陌生的问题,一般也能查阅英文文档,找到需要的信息。但同时,我也发现,经常阅读英文文档的程序员,英语水平许多时候却并不像&经常阅读英文&的样子。下面我列几点自己的学习心得,供大家参考。
读文档不能只读代码读文档只读代码,是很多程序员的习惯,也是导致程序员虽然读了很多英文资料,英文水平却没有相应提高的原因之一。以前曾在《程序员》上看到介绍阅读技术图书方法的文章,提出过&先代码后文字&的方法,也就是&先看代码,看不明白再看文字&。这种阅读法能极大提高阅读效率,但如果技术图书只看代码就足够,还要文字干什么呢?很多时候,代码只是冰山一角,代码背后的思维和逻辑才是真正的重头戏,只有写成文字才能解释,也只有阅读文字才能理解。比如,代码都是&x = 5;&,有时的说明是x should be not more than five,有时的说明是x should be no more than five。不查词典,你能弄清楚两种说法的区别吗&前者是&x必须小于等于5&,后者是&x应当只有5&,意思不同,应用的方法与场合也不相同。这些年来经常有希望翻译技术文档的程序员来找我讨论翻译问题,希望了解一些句子应该如何表达。一开始,我也认为这是中文表达的问题,但后来逐渐发现,其实更多的问题出在英文阅读上,所以我的回答经常是:你觉得作者这里说的是什么意思?引导对方把原文的意思逐步表达出来,其实这时候,真正的译文已经浮出水面了。最近的例子来自这句话:&But as with any web-based system, atom-based solutions trade scalability for latency, making atom often inappropriate for very low-latency notifications&。这句话之所以难翻译,问题似乎在于,除去句子的主干,之前有一个But as&,之后又有一个making&。然而我最后发现,对这个句子有疑问的程序员其实根本没搞懂trade&for&的用法(翻译为&基于atom的解决方案需要权衡延迟和性扩展性&),如果明白它是&牺牲xx换取xx&之后,整个句子就相当好理解,也非常容易翻译了:与所有基于web的系统一样,基于atom的解决方案为追求可扩展性,增大了延迟,所以atom通常并不适用要求极低延迟的提示。要解决这个问题,首先要做的是改变&只看代码不看文字&的习惯,至少要做到&阅读文字之后,认识到它的意思与代码是一致的&;其次是通过阅读纯文字的英文资料来学习某些新的知识(比如关于深入原理的细致讲解),这个方法我推荐给许多朋友,非常有效。
注意读音以前总听人说,中国人学了很多年英语,其实是哑巴英语。不知道现在的情况有多少改观,但就我所见,不少程序员虽然阅读了大量英文资料,也会加入英文的讨论组,也敢开口说,但还会在读音上出现许多问题。这里说的&读音&,并不是字正腔圆的口音,而是一些术语的读音。众所周知,计算机科学的术语来源非常广泛。例如设计模式里,有一种模式叫Facade,许多人往往直接读作['f?kɑ:d],其实这个词来自法文,正确的读音其实是[f?'sɑ:d];再比如伪代码的&伪&pseudo,正确的读音是['su:d?u],但我很少遇到程序员能把它读对,许多人干脆不会发这个音。也许有人说,这些问题不重要,大家&将错就错&,约定俗成就得了,但事情没有这么简单。最近我参加某个技术聚会,有一位嘉宾(技术高手)把框架名chameleon(变色龙)读成了['t&?milj?n],而正确的读音是[k?'milj?n],因为没有文字资料,许多人听了半天才知道他说的是什么,一些不熟悉chameleon的听众更是到结束也没明白。中国人聚会尚且如此,如果有机会参加中外技术交流,读错造成的问题就更大了。要解决这个问题,有一个非常好的办法,就是学习美国大学的公开课,耶鲁、斯坦福等学校的计算机系都放出了许多高质量的公开课,学习其中的一些精品课程,不但能夯实基础,还能顺带学会许多每天都要遇到但不会或者读错的术语。比如我就从中学到,数据类型char的读音是[kɑ:],而不是[t&ɑ:]。
锻炼英文表达如果你背过单词,大概听到过&被动单词&和&主动单词&的说法,前者是指&看到了能认出来&的单词,后者指&表达时能主动应用&的单词。据我观察,许多程序员掌握的大多数英语,都属于&被动英语&&&看到了能认识,但要表达同样的意思,未必说得出来。平时这样似乎没有问题,但如果要查阅资料,不会表达就造成了大的障碍。相比中文技术资料世界中&无责任/不负责转贴&泛滥的情况,英文技术资料的质量要高得多,Google搜索资料的准确性也远高于百度;但要能够顺利应用英文资料,需要&主动&输入信息,描述问题,这时候&被动英语&就成了大问题。我遇到过很多次这样的情况:即便答案近在咫尺,输入正确的关键词,Google的第一条结果就是答案,但程序员就是一筹莫展&&因为他不知道计算机的&嘟嘟&声是beep,不知道搜&多线程&资料应该用concurrency,也不知道&死机&是system halt,&黑屏&是blank screen&&要解决这个问题,最好的办法是在阅读资料时多用心,记住这些说法;另一方面,没事的时候多浏览stackoverflow之类的网站,不要因为问题与自己无关而忽略,要多留心这些问题到底是什么,是如何表达的。这样,在自己遇到问题时,才能迅速找到可能的解决方案,节省时间。
结束语有人说,以汉语为母语的程序员,学习英语已经是迫不得已,不但要会阅读,还要会表达,真是难上加难。这种说法有一定道理,但在目前并没有更好的解决方案的情况下,学会阅读、认准读音、锻炼表达,确实可以给自己带来好处。长远来看,要改变这种情况,需要中文技术圈的所有人员努力贡献高质量的资料(原创和翻译都可以),如果只是&无责任转贴&,既不亲自验证,也不整理格式,中文技术资料的整体质量只会持续恶化,反向逼迫更多的人把英语学好。
作者余晟,曾任盛大创新院高级研究员,现任广州某电商和物流公司技术负责人。关注技术如何解决实际的问题。业余翻译、审校过若干本技术书籍,并撰写了一本讲解正则表达式的书。
那些战胜了美国互联网明星的本地网站
当我们浏览全球各地最流行的网站时,你要知道除了Facebook、谷歌、亚马逊、eBay、Twitter等让人耳濡目染国际性网站外,其实也有一些网站在当地国家很流行,并且在当地也有类似于Facebook、谷歌等同样影响力。想知道都有哪些网站吗?一起来看看吧!
1.中国的A.I.M:QQ
中国:QQQQ成立于1998年11月,是目前中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业。它开发的即时通讯软件从当初1999年两人发展到今天用户超过7.1亿用户,同时在线用户也突破一亿四千万。不仅如此它还涵盖了门户网站、网络游戏、社交交友、电子商务等多个方面。人气:拥有7.1亿用户,是世界上第二大网站。
2.俄罗斯的Facebook:Vkontakte
俄罗斯:VkontakteVkontakte是俄罗斯最大的社交网站,它是大学生和高校毕业生的联系网。Vkontakte的俄语意思就是&结交&,借助于该网站可以认识更多同年级的同学,交新朋友,与同班同学和校友始终保持联系,给朋友留下资料,让他们能都与你联系。Vkontakte的求职功能也颇受欢迎,俄罗斯的企业常常会在该网站上发布招聘信息。另外相比Facebook,它允许用户分享种子文件、匿名发帖或发信,不过也正因为这,它上面也充斥着各种垃圾信息。人气:在2011年3月有3500万的独立访问量,是俄罗斯第四大网站。
3.日本的亚马逊:Rakuten
日本:RakutenRakuten译名乐天网站,它是日本最大电子商务平台,连全球最大电子商务网站亚马逊在日本也甘拜下风,2006年使用者超过1800万人,此外也经营&Infoseek&、职业棒球队、旅游网站、博客平台等许多不同业务的网站。人气:超过7200万的用户,网站流量在日本排名第7.(亚马逊排名第十。)
4.印度的:Shaadi
印度:Shaadi据说这个网站宣传已经成功配对200万夫妻。另外网站还提供语言、教育程度、宗教信仰、甚至星座来筛选你想要的最佳男女朋友,甚至父母也可以寻找最佳儿媳(女婿)等。人气:Shaadi婚恋网站在印度中排名第一。
5.伊朗的WordPress:Blogfa
伊朗:BlogfaBlogfa是最大的波斯语博客网站,用户可以免费注册开通个人博客,各种类别的内容十分丰富,同时它也是目前少数不被政府审查的网站之一。人气:排名于雅虎和谷歌后面,是伊朗访问量第三的网站。
6.伊拉克的ESPN:Site Kooora
伊拉克:Site KoooraSite Kooora是一个体育门户网站,不过该网站只专注于足球。据介绍该网站对各个球员的统计和分析涵盖全方位,包括球员进球统计、家庭成员、甚至有的球员会不会说阿拉伯语都包含在内。人气:在中东11个国家中排名前20,同时也是伊拉克排名第八的网站。
7.塞尔维亚的Urban Dictionary:Vukajlija
塞尔维亚:Vukajlija类似于国内的百度百科吧,不过这仅仅是供网友来发表对一些特殊的单词或短语的解释,这上面有许多正常词典里面查不到的词条,即使是正常词典里面有的在这里也会有新的精辟的解释。里面对于每一个词条会有提供很多网友的解释。这个网站建于2007年,随后在其周边多个国家流行,并被评为最受欢迎的网站。人气:在其周边国家都很流行的网站,在塞尔维亚国内排名前十。
8.韩国的雅虎:Naver
韩国:NaverNaver是NHN公司下韩国著名门户和搜索引擎网站,其Logo为一顶草帽,于1999年6月正式投入使用。使用独有的搜索引擎,并且在韩文搜索服务中独占鳌头。除了搜索之外也提供入口网站的许多服务,例如韩文新闻,电子信箱等。同事Naver也是世界第五大搜索引擎网站,仅次于谷歌、雅虎、百度和必应。另外有报道称,它目前已经开始渗透到日本。人气:是全球第五大搜索网站,在韩国是流量第四的网站,同时也占据了韩国70%的搜索市场份额。
9.法国的eBay:Leboncoin
法国:Leboncoin在这里可以买到Moebius的漫画以及法国别墅,简而言之在LEBONCOIN上几乎可以买卖一切,并且这种网站在欧洲非常流行(70%的瑞典人都访问这种交易网站),并且相对于2009年,2010年的营业额增速达到200%。人气:该网站在法国访问量排名第九(eBay排名12)。
10.苏丹的LinkedIn:Baayt
苏丹:Baayt在过去Baayt网站类似于中东的招聘网站,但是现在更像LinkedIn了。因为去年夏天,Baayt推出一个简单的搜索界面并整合Facebook账户登录后,使得网站发展飞速,在阿拉伯国家中被众多英语、法语、阿拉伯语用户所喜爱。人气:在阿拉伯国家中排名前100,并且周边国家众多求职用户也会访问该网站。
11.肯尼亚的PayPal:Pesapal
肯尼亚:PesapalPesapal在非洲国家中发展的非常快,据分析在非洲的移动支付市场2015年有望达到220亿美元,同时它的应用范围也非常广泛,包括学校学费、保险、股票交易等。据称Pesapal发展目标是在非常建议一个信用评测体系。人气:肯尼亚国内有近20万用户,同时该支付平台也发展到周边的坦桑尼亚和乌干达国家。
12.加拿大的Craigslist:Kijiji
加拿大:KijijiKijiji是加拿大一个大型网上免费分类广告网站,能够让你在当地购买到你想到的物品,类似于国内的赶集网。Kijiji是ePay的子公司。人气:Kijiji访问量在加拿大排名12位(Craigslist排名22)。
13.巴西的Google+:Orkut
巴西:Orkut随着Facebook的渐趋流行,在全球也掀起一股社交热的同时,也让Orkut在巴西成为重量级应用,它占据了巴西超过60%的页面访问,不过令人意外的是,巴西Orkut的竞争对手不是Facebook,而是MySpace。人气:截止2011年6月有3560万独立访问用户。
14.阿根廷的Reddit:Trringa!
阿根廷:Trringa!Trringa是一个社交新闻站点,里面包括轰动性新闻、有趣的图片、网页小游戏等,你可以通过该网站知道当前最热门的流行话题是什么,同时也支持根据地区分类,另外用户也可以对这些发布的链
用友高级副总裁谢志华: HANA远非完美
日前,在用友股份公司2012年策略会上,CSDN记者专访了负责研发团队的高级副总裁谢志华。谢志华1998年加盟用友,从程序员做起,现在是超过1500人的用友软件研发团队的掌门人。2011年起全面负责高端产品、中端产品、UAP平台的研发工作。
用友股份高级副总裁谢志华在上次接受的专访中,谢志华已经详细谈到了。而这一次,他分享了用友&3+1世界级产品&背后的最新研发动向。他主要谈到了以下一些点:
用友基于内存的列式存储和大数据实时商业分析技术UFIDA AE。
扩大敏捷研发在全公司研发体系的推广,广泛采用分层迭代+敏捷开发的模式。
大规模异地研发架构和团队的整合。
积极应对新技术浪潮,与合作伙伴共同研发基于Hadoop的分布式处理解决方案。
NoSQL提供了一种选择,而非替代非关系型数据库。
从卖解决方案转型到云计算服务提供方。
加大对企业移动应用的投入。
开放式研发和海绵文化。谢志华透露,几年前用友的客户就提出了大数据实时计算的需求,用友由此启动了基于内存计算和列式存储的研发项目&&UFIDA AE,并将原来的数据引擎做了革新。&现在这些产品已经提供给了客户,今年会把更多的应用往新的数据引擎上迁移&。
今年用友将推出的重磅产品NC6.0,谢志华认为最大的转变在于产品模型,他强调就技术的转变来说,NC6.0的技术可以迁移回NC5.0(据说 NC6.0的整个架构在研发过程中重写了),但是企业模型和产品模型的变化是迁移不回去的,就相当于一个人已经脱胎换骨了,换了一套模型。
业务应用轻量化、碎片化、移动化谢志华解读了2012年用友业务应用的三个特点:首先是轻量化,具体有两个含义,一是尽量在后台处理,重核心轻边缘,外部应用尽量轻量化,后台云平台要加重;二是前端数据访问,只得到用户所需要的数据就可以了。其次是产品移动化。虽然去年用友旗下的众多产品已经推出了iOS和Android的移动版,但从现在趋势来看,用友还做得不够,需要继续加强投入,把企业客户里面各个环节能移动的应用都移动起来。比如员工考勤,或者薪资以及个人数据,人事处理、销售员在渠道分销的处理,对各种库存数据的读取等等,涉及面要更加广泛和深入。
全面推广敏捷开发在谈到2012年用友股份公司研发团队管理模式和流程上的改变时,谢志华提到:1)在研发团队全面推广敏捷模式;2)进一步完善支撑用友世界级产品的国际化开发团队架构和管理,包括异地、多时区团队的协作和支持;3)核心技术、核心功能的研发、研发效率的提升;4)加强技术分享和国外研发机构交流。&
面对时下火热的Hadoop技术,谢志华表示作为一套开源的解决方案,用友早就开始研究Hadoop与现有的产品的结合模式,并和例如IBM、微软等公司就有关研究保持密切联系。
SAP HANA远非完美 就时下SAP主推的实时数据分析平台HANA,谢志华坦言这是一种业界趋势,但目前远非SAP包装得那样完美,HANA平台在数据分析方面是有优势的,但在包括OLTP(联机事务处理)在内的解决方案上并没有成熟的模式。至少还需要三到五年才能真正实现商业化的成熟应用。同时,谢志华也不认为像HANA这样的技术模式会取代关系型数据库。在他看来,&当新一波技术浪潮来的时候总会把旧的替掉,其实不是这样,新技术在一定场景上管用,旧技术在一定场景上也是管用的,永远不是替代关系,关系型数据在可以预见的时间内还会一直存在下去,列存储在某些场景下也是很好的方案,包括以前多维数据库现在依然还是有应用场景的。再比如SOA,现在也提得少了,它其实就是在组件化模型的基础上往前走了一步,也不是把组件化面向对象废了。&
写代码,如坐禅。
导读:本文作者由于受的困扰。他把这篇用户文章投递在 ,因为他的Swift To-Do List要使用Component Owl 上基于.Net框架的作为它的核心组件。当编译占用你时间时你会怎么做。不只是编译,即使是在等待任何短暂的计算机操作结束,这段时间你会干些什么?和你的工作日休息比起来这点时间是微不足道的,但是总的来说它还是能对你的生产率和幸福感感带来巨大帮助的。顺便说一下,这篇文章内容不是只针对开发者和程序员。它对任何使用电脑的聪明人都有效。后面还会附上图片。现在让我们开始吧!
为什么要写这篇文章我最近开始在我的工作习惯里使用某种时间管理技巧来提升我的生产率,减小压力,并帮助我的身体和大脑得到休息。我基本上想要在不被打扰的 100%注意力集中的一两个小时里工作,然后就是 20 到 30 分钟的休息。然而,我几乎立刻就进入了一个巨大的问题里:当我正在编译或部署什么东西时,我会自动地打开邮件客户端,facebook,新闻阅读器,新闻站点中的某一个或几个。这是一个坏习惯。它很难改掉。它扰乱了我本来专注的注意力。所以我决定搜索相关资料。在 StackExchange 有一个关于&编译时应该做什么&的论坛。投票最多的答案是&减少编译时间&一类的。然而,这些答案并不能解决更多的普遍问题:在电脑上工作时总是有些事项是需要时间来等待的。与之不同的,论坛上的人多半建议那些时间可以做些什么(类似收发邮件或是看新闻),这是一个差劲的想法。一个好的建议是这个&&&同一时间干多件事是不好的&。我赞同这个观点。但其他人呢?不认为?好的。这个答案令人失望。所以在这篇文章里,我将深入探索这个问题并且向你展示最理想的方法。
两种类型的程序员有两种极端原型的程序员&&&禅宗的程序员&,我们称为心如止水的程序员,还有&不能克制分心的程序员&,我们称为心绪不定的程序员。两者都是非常极端的,所以他们应该处于贝尔钟形曲线的两端,对吗?错。实际上,心绪不定的程序员是难以置信地普遍存在着。图片的效果要比文字有用,所以我现在用图片来说明两种程序员的精神世界的状态。
心如止水的程序员心如止水的程序员会怎么做?他写代码。这是他做的唯一的事情,这也说明了一切。也许更重要的问题是什么事情他没有做:他没有受分心的影响。专注的注意力,专注的修改,专注的编码。一到两个小时的纯代码时间,然后才是 20-30分钟的休息,通常是离开电脑。之后他会继续开始写代码。(以上所说的时间只是一个例子。他可以用其它方式安排时间&&不过他总是能平衡并搞定长时间的生产率。)他的思维像平静的水缓慢地流动。当然它不像那种恒久不变的凝固的冰。这就是心如止水的程序员精神世界看起来的样子:
心绪不定的程序员即使你的精神世界现在看起来像一个心如止水的程序员,只要你在编译的时候打开了 Facebook 或者检查了你的邮件还是做了其它什么事情。几分钟之后它就会像这样:
女士们先生们,这就是你检查你的邮件和打开Facebook后的状况。如果你还拥有一堆实时通知,即时通讯,还要去检查你的 RSS 源和推特,结果就是大脑像上面图中变成碎片的灾难一样。你可能还没有完全从这张图恢复过来。不在特定的某天,任何时候都有可能发生。即使你把精神世界所有无用的东西最小化到任务栏,它仍会留在那里,不停地引诱你,消耗你的精神资源。朋友,时间就这样走了,你会困惑它是怎么不见的。顺便说一下,如果你是一个心绪不定的人,你还是可以看看我们网站的!不必立刻回来把这篇文章读完。别忘了订阅那个漫画源!看完所有的漫画后可以分享给你的朋友并聊聊!做这些事不会过于分心的,真的!
心如止水的程序员与心绪不定的程序员之间的区别心如止水的程序员更倾向于长期的幸福感和生产率。他有能力高度集中注意力,关注目标。心绪不定的程序员更倾向于短暂的满足感,长期这样不能到达全部的潜力并且会对他自己的身体和精神带来双方面的伤害。他不能定下心来集中注意力。为了彻底领悟这点,我们首先需要理解我们的大脑是怎样工作的。
我们的大脑是怎么工作的事实上我们不能完全知道,不过,基于我们现在已有的理解,心理学家已经提出了一些有用的类比方法,可以帮助我们领悟复杂的东西。
电脑的类比你的大脑像一台电脑。当然,它要比一台个人电脑复杂多了,不过电脑的比喻说法可以让我们形容许多在大脑里运行的进程。有些东西像硬盘,有些东西像内存和中央处理器,还有进程和线程,它们的确需要一些时间来访问信息并计算数据。很明显我们的大脑拥有一定的容量在任一时刻集中注意力。你可以很好地集中在某一东西上,或是不太好地集中到几样东西上,但你不能两者都做到。把注意力从一个任务转到另一个任务甚至会影响认知能力,特别是两种毫不相干的任务。只要你把意识关注在某样东西上,就会花些时间处理它和它所分配的资源并会从内存和后台进程里初始化它。它可以存在几个小时甚至几天。最近的关注到的东西在任何时刻都会不断出现的。即时你没有注意到它们在你的大脑里流动,它们一直都在那儿&&而且它们占用资源,使你不能集中注意力。
抽屉的类比另一种有用的比喻说法是柜子里的抽屉。你的大脑像存放东西的抽屉。每个抽屉都是拥有数据且互相连接的,基于某种上下文关系和概念。在特定的时间里,一些抽屉是打开的,一些是关闭的。打开的抽屉代表着你当前的精神空间,它们很容易访问到。
主要的问题是关闭抽屉是需要很长时间的,而打开它们是非常快的。所以,当你在工作时,注意力转到新的地方,它会立即打开一堆抽屉。当你回到工作状态时,那些抽屉仍然是开着的。这样唯一的好处是可以提高你的创造力和头脑风暴&&但是不需要的抽屉开着会有影响的。它们抑制左脑的思维并降低注意力。
编译时应该做什么在等待电脑执行操作的时间里,你的行为可以判断出你是一个心如止水的程序员还是心绪不定的程序员。主要的意见是:1. 不要分心2. 短暂的休息保持注意力并不是那么难&&你必须要切断你大脑的电源,或者保持注意力集中在你的代码上。不过,关闭大脑效果更好。这样会进入一个微冥想状态,在短暂休息之后它仍会有效。为什么要进入冥想?好的,你的大脑每天都在咀嚼代码,为什么不给它一个休息呢?此外冥想科学上被证实能不断增加幸福等级。想象一下每天进行两次 30-60秒表面上看起来不重要的冥想所带来的长期优势吧。现在,短暂的休息时应该做些什么?从以下内容中选择任何事,按你的想法组合在一起。你可以把它们按照这个顺序全部做一遍,这取决于(也可以不在意)这些行为所需要的时间。1. 站起来2. 眺望远处3. 把双手放在脑后,斜靠在椅子上4. 伸长双腿,把双手尽量举高5. 闭上双眼6. 轻揉眼睛7. 慢慢地把头向各个方向转,舒展颈椎8. 闭上双眼然后深呼吸9. 倒一杯水(要小心路上别被同事分心了)你也可以做任何主要身体参与而不影响思维的事&&静力锻炼,变戏法,决斗,哈哈。顺便说一下,如果你的老板不给你足够的时间做以上的任何事,那么推荐他来看这篇文章。让自己更快地恢复精神并保持注意力,比看起来在工作其实已经分散注意力并很快就感到累的情况要好很多。伸展放松是很有益处的。我上一次见我的理疗师时她发现我的肩膀很多地方很紧绷。她告诉我这可能是因为我坐在电脑前双手总是弯曲造成的,所以肌肉缩短而且不能用力。那我应该怎么做最好呢?举高我的双手,试着举到最高。这是我在编译或是等待电脑执行操作时常做的一件事。你可能已经听说过当你在用电脑时进行有规律伸展放松和短暂休息是一个不错的想法。问题是怎么做到&&即使你设置了一个计时器,但假如到时你正处在一个复杂的事情,正做到一半的时候怎么办?这样看来就无法实现了。然而,如果你在编译时短暂休息一下,就能很好地做到了,你甚至可以把它养成一种习惯,让它变得更&自然&!现在编译就开始能提醒你做伸展放松了。这太令人不可思议了。
编译时你不应该做的事情我其实想用力点击我的主页,这样做能让事情变得简单,这里有一张你在编译时不应该做的事情的列表。以这种方式思考:这些事情不仅会使你不能集中注意力,还会让你的思维和身体不能很好地短暂休息。1. 阅读你的 RSS 源2. 阅读新闻(任何新闻)3. 收发邮件4. 浏览各类社交媒体(facebook, twitter, google+, linkedin, reddit)5. 观看视频做以下两件事要比上面的好一点,但依然不推荐:1. 和同事聊天2. 读一本物理书
专注的注意力和专注地修改我马上就要结束这篇我所想的每日工作流程的理想方法&&禅宗程序员的文章了。保证生产率和效率的关键是注意力 100% 集中在你现在正在做的事情上,做完后再把注意力完全转移到其他地方。注意力从一件事情到下一件事情的过渡不能有任何的拖泥带水。把你的工作时间分成1-2个小时一段。注意力 100% 集中在这些时间段里。然后是 20-30分钟的休息,完全可以做任何事情。在休息时间你可以浏览你的邮件和社交媒体,当然,散个步打个盹吃些健康的点心会更好。休息结束后,检查任务管理软件(比如,我用的是我的&)里下一个工作是什么,再开始另一段需要百分百注意力集中的工作。在较大程度上,这与番茄工作法有点相似。休息不是可以选择要不要的。别想去跳过它。你的身体需要休息。即使你在做你喜欢的工作,你也需要休息一下&&在这种情况,你会在接下来的时间段里有动力做更多事。
你的工作流程看起来应该像这样:(任务 1 & 任务2)- 休息 & (任务 2 & 任务 3 & 任务4) & 休息 -(另一个1-2小时的时间段) & 休息 &&
不要让它完成起来是像这样混乱随机,让人看不下去的的:任务 1 & 邮件 & 任务 1 & Facebook & 任务 1 & 任务 2 & 短暂休息 & Facebook & 任务 2 & 邮件 & reddit & 任务 3 & 邮件 & 休息 & 任务 2 & 邮件 & 任务 3 & 推特 & 黑客新闻 & 推特 & 任务 1 & 任务 3 & 休息 & 任务4如果你的工作流程是像上面这样,那你既不能完全放松也不能做完你能完成的事情。这是最低级的方法。这不仅浪费了你的潜力和时间,也让你长期身体会不适。我不想撒谎。集中注意力真的不容易。它很困难,因为当你没有集中注意力时,你基本上会朝着相反的方向过去。习惯和根深蒂固的惯例像潜意识一样难改变。好消息就是,你还可以练习。你可以学习怎样去集中精神。这是每个人都可以学的技能,而且它非常有用,值得为之努力。另附:你有没有身边的人会每天要检查 50 次邮箱?把这篇文章发给他。他之后会感谢你的。
程序员分类,你属于哪一种?
导读:近日,刊登了一篇的文章《》,文内将参差不齐的程序员按照技术水平分为从&读写&到&上帝&,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向。以下是文章摘要:随着技术发展,编程悄然融入了我们的生活。我们已然离不开那些程序和编程语言。很多人都在不同程度地谈论着如何编程,也诞生出很多编程语言排行,那么程序员到底应该如何分级呢?首先要明白什么是程序员。设计自己的Apache Web服务器的家伙?制作一个复杂Excel的家伙?还是能自己开发RPG的家伙?Minecraft的玩家?这些都属于程序员的哪一个级别呢?当我们说:&每个人都需要了解编程&,这句话意味着什么?所以,我们需要制定一个程序员的等级,以便让程序员们了解自己所处的环境和发展方向。
Level 1,读写&&他们了解设置Web服务器的方法,在普通情况下能够通过配置方式获取工作所需要的东西。他们有使用文本编辑器和文件系统的基础知识,还拥有移动和操作文件的能力,如ZIP和FTP。也能在结构中使用抽象符号、解析方式以及系统技能。
Level 2,脚本&&能够编写线性脚本告诉电脑要做什么,能够学习和使用自己的符号。如果有足够的时间和书面指导,他们可以使用bash或VB编写一些简单脚本,为自己做些实用的事情。
Level 3,管理员&&这些人了解库和API,并有能力学习更多。他们知道不管使用什么脚本语言都需要连接库。如果他们遇到问题,可以通过阅读使用手册或是在网上搜索库来解决。在工作中他能够发现或是开发自己的符号(使用struct编写函数或是声明)。大多数系统程序员都处在这个等级阶段,Excel的初级宏系统用户也同样处在这个阶段。
Level 4,高级实践者&&刚开始接触耦合性与内核,他们能编写自己的对象化脚本(有公有/私有成员和方法)。这些人能玩转技巧,了解库和构建类。如果不使用类,他们也能够创建自己的模块或是代码文件。高级脚本用户可远不止这样,有一些Excel技巧经验丰富的股票经纪人,他们使用自己VBA作为基础代码,而没有意识到自己处于这个级别。
Level 5,掌握多种技能&&一旦上升到这个级别,将会遇到各种各样的麻烦。常见编程下一阶段就是能够使用多重框架。这些人可以编写C#,也知道如何创建表格和编写SQL语句;可以编写C,同时也会使用JavaScript和HTML。这两个技能并不代表他们就是大师,只是要学会在理解同一个问题上,需要通过多种不同的方式来找寻答案。
Level 6,初级构架师&&这阶段的人才算是真正的从事编程工作。他们每天的工作就是要深入了解库和API。并不要求他们必须记住这些,但要了解用不同的模式去实现自己的目标。想要在Win32中绘制?可能需要一些GDI资源句柄,他们知道句柄是在系统表某处的一个UInt32 hash&&常见的Win32范例。想在自己的库中添加jQuery?新库里有很多格式,他们应该知道怎么做并且能解释其工作方式。与此同时,也要开始学习如何重构自己的代码并突显亮点,增强其代码的质量,慢慢地你会理解。
Level 7,资深构架师&&他们的时间是用来创建自己的API、平台或是库。也许这是一个大项目的必需品,也许只是他们个人想把自己的学识推广出去。他们开发的系统为用户解决实际问题,所面对的受众群是Level 5程序员。在这个阶段需要深入OOAD,模板和实践。我们大多数人在刚开始都会搞得一团糟,不能理解怎么用更加简单的方法将复杂事情简易化。这个阶段需要历经很长时间,需要不断修正错误,开发高质量的系统并创建更复杂、灵活性高的库。当他们从外面接受几个月的特定培训回来,肯定希望团队其他人都能理解他做了什么。
Level 8,诠释者&&在某些时候,希望这些人能意识到大量复杂信息投入结构和构架中可以更好地形容特定域的语言,其受众群体是Level 4程序员。代码的复杂性增大,就能减少代码的数量,DSL开放可以将代码展示到各种地方。总之,他们将成为程序员使用脚本语言方面的作家。通过易于使用的脚本和导向将他们的系统开放给初学者。可以分别学习这些技能,但大多数情况是在复杂的结构后,最终走向DSL的道路。很快就能看到最初规模:利用自己编写的DSL能够很好的理解问题。
Level 9,函数式编程&&慢慢接近奖金,他们要开始学习如何函数式编程。其受众群是Level 3的程序员。函数式编程是必不可少的,帮助他们轻松地脱离DSL,并能够大幅度减少代码数量来解决问题,同时拥有较高的扩展性。某些功能语言在系统运行时可以hot&swap,慢慢就会感觉到已经接近先进水平。函数式编程是一切问题的答案,它可以减少Bug,提升开发效率,但代码也相对来说很难学。程序员的脑海里需要时刻记忆很多东西&&他们必须要记住繁琐的复杂符号。但是,结根到底函数式编程只是道路上的一个阶段,就像OOAD一样。
Level 10,面向语言设计师&&他们查看所有新创建的编程语言程序。惟一的区别是新语言应该做什么。他们了解如何开发面向对象语言,语言功能和脚本语言,知道每一个语言在何时何地的用途。其受众群是Level 2程序员。他们对每一个项目都会问:&这个项目我们需要什么样的语言?&在项目完结后他们将会得到一个很好的工具,既解决了问题并易于理解还扩展了入门级程序员。大多数项目不需要面向语言设计师。
上帝级别,计算机科学家&&要么就是编程的顶峰要么就不存在,这个取决于自己的观点。这个就是科学规划,在里面有很多很酷的东西。任何一个人都是其受众群体。但重点不是在于做人们想要的东西,而是促进学术的发展。因为大多数编程能力水平都是基于人而言,人们居住在世界各地,也是必要条件之一。如何简单的在两国之间相互来往?
你在这里可能受到很多启发,例如,首先学习函数式编程再学习OOP。你也可以开发自己的编译器,这不是大学的乐趣吗?或是程序集,或是真正理解集理论,或是如何开发适用于数据库与编程数据的结构,或是开发你的第一个编程工具。这些是我所看到的大多数程序员所遵循的道路。(张祺/编译)&&原文链接:
测试的生活『转』
  首先,作为一个一直在网络和电信设备测试领域工作了几年的老油条,我想把我这几年的工作经历以及在我身边看到的故事与大家分享。希望能帮助一些刚进入测试的朋友能更好的从学生角色转换为一个职业人,少一些刚毕业时的迷茫。&  我在大学时代学的是计算机,在毕业前对网络的认识也就是学校开设的两门课计算机网络以及计算机网络与通信课程,让我印象最深的是学了一大堆与高数有关的数学公式,例如什么香农公式这类。毕业前连IP子网都算不清,也就大概知道TCP,UDP的区别。我更多的时间和精力都放在了程序的开发上,曾用Delphi独立开发了一个全省系统的MIS系统,用Linux+Gcc+Gdb+UDP开发了一个模拟QQ原理的即时聊天软件。&
  一晃到了大四找工作,我当时找工作的想法是:一定要进大公司,工资要高。我至今仍清晰的记得那句从此影响了我职业选择的话:&我们开发都要研究生,对测试是否有兴趣&。当时想了想测试没做过,可以先试试。再加上这家公司当年在成都地区非常火,在成都给本科生开得工资是最高的。所以,就抱着先试试的感觉应聘了测试。也许是我大学时代动手实习的经验较多,在没有笔试的情况下,成功应聘进了这家M公司。也是在大四的第二学期,我参加了M公司的第三期企业文化培训,这期参加培训的上百名研究院的新同事中本科生一共10人左右,而且来自成都高校的本科生才4人。说实话,我很庆幸自己的幸运。&
  1.&阴差阳错&&  在随后2个月的网络知识培训中,我第一次见到路由器、交换机、VOIP网关、电信设备,在稀里糊涂的状态下进行着配置练习。我们那时真是魔鬼式培训,从早上8点半开始,一直持续到晚上11点。有一次还持续到了晚上12点。每天上午第一件事就是考试,将头天的学习内容进行笔试考试,基本上TCP/IP详解中每一个协议的报文结构都默写过。笔试成绩每天公布分数和排名。下午从1点开始一直到晚上11点就是上机操作。做完一个练习就做下一个练习,反正就是一直要做到晚上11点才下班回家。就这样一直维持了2个月的培训,每天都是新的理念知识,新的上机练习。压力非常大也非常累,进步也非常快。&  七月分配产品线,我来到了最不愿意去的电信产品线。因为在培训期间,电信产品线的理念最难理解,也最难完成上机练习,远比TCP/IP详解难的多,所以几乎没有一个人愿意来到电信产品线。我和另3名同事都来到了电信产品线,没办法再难也只有蒙着头冲了。&
  八月我再一次被迫接受了不愿意的工作分配,电信产品线的测试经理将FrameRelay协议(因为这是一个老协议,所以我一直最不愿意测试这个协议)给我负责,并要求在半年内必须独挡一面,意思是以后公司遇到任何关于FrameRelay协议的问题都将由我来解决,就是公司这个协议的专家。对于一个刚毕业2个月的学生,面对这样一个要求,既感到压力也感到了一种挑战。在必须成为公司内该协议的专家且没有任何退路的情况下。&
  随后半年里,对于该协议无论理论还是任何实际问题我都以几乎十全十美的态度来学习或解决。不但对该协议的每一个细节,每一个bit的组合意义烂熟于心,更对该协议在产品中从FPGA到HDLC到驱动的所有实现原理进行了深入学习。再通过对实验室里和市场上各种问题的分析,最终在半年内渐渐做到了可以独挡一面,可以独立面对和解决任何与FrameRelay协议有关的市场技术问题。&
  &坚定信念,一定还有bug&&  也就在这半年时间里,我对测试的看法发生了两次大的变化。第一次变化,在进行手工测试3个月后,我心中还是认为开发比测试有意义,有挑战。而测试则是简单,无聊的工作,让我做测试就是大材小用。在这时,我内心开始讨厌测试工作,因为自己从心里看不起测试。有一次我测试了5天FrameRelay协议,没有发现一个bug,之前我已发现了这个协议上百个bug。正当我沮丧时,一位老员工的一句话改变了我对测试的认识&想想办法,肯定还有bug&。于是,我怀着半信半疑的态度,利用周末梳理了自己的思路。从自己已发现bug的方式和现象,到FrameRelay协议的所有实现原理,最后自己又提出了10个新的测试方法。周一上班,只用了4个新方法就发现了一个一级bug,一个二级bug。从此以后,在我心中对测试的看法发生了根本性的改变,不再认为测试只能由能力差的人去做。测试同样具有很强的挑战性和成就感,测试是一个必须需要创造性的工作,而且是每天都会用到创造性能力的工作。&
大家好,欢迎来到我的小站!
站长在关注}

我要回帖

更多关于 自学引擎手机版下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信