摘要: 数组是最常用的数据结构(数据单元的集合)。c#数组分三类,一类是一维数组;二、多维数组;三、交错数组。一、语法1.一维数组:定义:元素类型[] 数组名;初始化一维数组: 元素类型[] 数组名={第一个元素,第二个,,,,}使用数组: 数组名[下标]例子:int[] a = {1,2,3} //定义一个元素为int的数组,然后初始化为3个元素(1,2,3)的集合。a[0];//第一个元素,即1a[2];//第三个元素,即3a[1] = 100; //第二个元素修改为100;2.多维数组:定义:元素类型[ , ] 数组名; //一个逗号分隔出两部分表示2维,两个逗号分隔出三部分表示3维。初始化多维 阅读全文
posted @ 2012-12-06 13:33 诺贝尔 阅读(967) 评论(3) 推荐(1) 编辑
摘要: c#中的泛型不支持特例化。所谓特例化就是针对 T 的不同实参,编写特定的代码。因此c#的泛型实际上都是一份代码,不会出现c++中的代码爆炸问题(缺点是让你的exe看起来很小)。唯一的例外是对值类型,因为值类型的大小不一致,所以需要生成新的代码,解决入栈出栈等实现问题,但逻辑上是一致的。一、泛型的语法二、协变和逆变协变这个词是怎么来的?据说是来自数学专业,难怪让人摸不着脑袋。要了解协变逆变,首先要了解类型转化的过程。类型系统支持类型转换,从子类可以转换成基类类型。假设子类有成员A,B, 父类有成员A,当子类对象转成父类,也就是客户端会把子类当作父类来用。当使用父类A成员,实际上就是使用子类的A成 阅读全文
posted @ 2012-12-04 16:54 诺贝尔 阅读(2971) 评论(0) 推荐(0) 编辑
摘要: 结构和类的共同点都是属于抽象数据类型,包含数据和数据的操作。不同点在于结构偏重于数据语意,而类偏重於行为语意。我们不关心对象内部是怎么实现的,我们关心的是他提供给我什么接口,有什么操作。从技术上来说,结构属于值类型,而类属于引用类型。结构不能指定继承基类类型,类可以。不过结构和类都能实现接口。一、应用场合结构的应用场合:一、自定义数据类型,数据成员是公开的,提供工具函数。二、抽象的数据类型,数据成员是密封的,提供相关的数据操作函数。总之,都是围绕数据作文章。类的应用场合:一、提供一组类,形成一个有机整体,形成一个系统,类数据成员是密封的,只提供相互通信的函数接口。类主要通过不同的类组成一个类间 阅读全文
posted @ 2012-12-04 10:57 诺贝尔 阅读(843) 评论(0) 推荐(0) 编辑
摘要: 这个主题是关于委托的。一、委托是什么?委托是用delegate定义的函数指针(其实并不只是一个指针,而是包含一组相关数据)。委托类型定义委托变量,委托变量可以用“函数名”、匿名函数和lambda赋值。而委托变量可以调用该函数。二、事件是什么?事件是对委托的封装,类似属性对字段的封装。事件施加的限制是:一、规定委托的类型,void (Object, EventArgs 或其子类 );二、对外只提供增加关联函数+= 操作和减少关联函数-=操作,而没有提供获取该委托变量的接口,防止任意修改。只需要在定义委托变量前面加event 关键字就定义了事件,标准事件的委托是EventHandler<T& 阅读全文
posted @ 2012-12-02 20:55 诺贝尔 阅读(415) 评论(0) 推荐(0) 编辑
摘要: CTS通用类型系统,是.Net中一套定义类型的规则。我们要掌握c#开发,首先要建立这个类型概念,只有知道c#的元素是什么类型,才能进行相关的分析和选材。 一、值类型和引用类型 C#分两个大类,一类是引用类型;另一类是值类型。 引用类型从技术上来讲,就是一个指针,指向具体的数据;而值类型实际就存放数据。因此引用类型大小都是固定的(虽然它实际关联其他部分,但是你传递引用类型不需要传递这些,只需要... 阅读全文
posted @ 2012-12-02 18:34 诺贝尔 阅读(1784) 评论(0) 推荐(2) 编辑
摘要: 有时候,事情总是很矛盾,一个明明对你不好的人,但是却激发了你的潜能,那你是否应该对他感恩?如果你对这种人感恩,那真正对你好的人情何以堪?人都是有认识的局限性的,而我们往往把一些成功,或者失败,归咎于某个人或者某件事之上,而没有判断这其中的因果关系(其实也真的很难明白其中的错综复杂)。成功的因素是很复杂的,并不是因为某个人对你怎样,所以就导致了你成功或者失败,成功或者失败,是一个整体合力的效果。如果一个人对你不好,它是诱因,而根本原因是你自身有奋发的精神和固有的潜能。因此你应该感谢的并不是他,而是你自己。就如同蝴蝶效应,世间的事总是相互关联,而我们往往只看到眼前的一点因素,就觉得是决定性的。毫无 阅读全文
posted @ 2012-12-01 11:18 诺贝尔 阅读(506) 评论(1) 推荐(0) 编辑
摘要: 算法是问题的分步骤解决的方法。分而治之的思想是:有很多问题,可以划分为多个小问题,而小问题本身是易于解决的,那么就通过找到”划分方法“,得到小问题后,最终解决原问题。一、是否所有问题都能划分成小问题?比如1+1=?可以划分么?不行。因此并不是所有问题都能够划分。二、怎样的问题能够划分?和规模n相关的,可以划分成每一个节点,或者某一小段,形成可以直观解决的小问题。就如一条长的线段,分成若干定长的小段,进而解决所有问题。如,一个平面,可以划分为若干小区域,也是一样的道理。只要具备规模性,不是原子性的问题,都能够划分成小的问题。三、划分的方式有什么分别?我觉得有三种划分问题的方法,第一种,是根据问题 阅读全文
posted @ 2012-11-29 14:17 诺贝尔 阅读(3177) 评论(0) 推荐(0) 编辑
摘要: 最近有两大.net高手在争论,一个说门槛高,一个说门槛低。其实这两个都是高手,为何会有截然不同的看法?其实我感觉这应该是一个“语言”理解的问题,而不是对“事实”理解的差异。比如我觉得一个东西很好,但是我说“还可以”,而另一个人觉得这个东西也很好,却说“非常不错”,然后两个人就打起来了。其实归根到底,两个人的看法并没有太大差异,差异的是所用的语言表达。另外,为何会引发争论,让大家大动肝火,我觉得可能并非是事实本身,而是有个隐喻:.net门槛低,所以就是一堆废材在搞.net。我是学java的,所以我是精英。所以学.net的害怕别人说。net门槛低,学java的喜欢说.net门槛低。其实门槛低是好事 阅读全文
posted @ 2012-11-28 14:27 诺贝尔 阅读(524) 评论(1) 推荐(0) 编辑
摘要: 程序语言有很多语法,让人无所适从,是否一定要精通所有语法才能编程?不见得,因此,我们应该注重语法的设计上的意义,而不是语法自身的细节。设计上的意义,就是你想怎样去运用这个语法,这个语法可以用来干什么。语法只是一种基础,而不是设计要素,要成成为设计要素,就要对语法进行认识和组织。你可能认识到变量的各种特性,但是你却没有发现变量实际用来做什么,你可能清楚结构的各种细节,但你又不清楚结构用来表达什么内容。因此这就是读死书。我们要组织其自己的设计元素,才能加强我们的表达力,通过理解设计上的意义,才能够快速的组织好程序设计,而不是纠结于语法细节。比如函数,可以理解为语法上的函数,也可以理解为一种通信渠道 阅读全文
posted @ 2012-11-26 15:47 诺贝尔 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 现在设计模式很流行,但我觉得什么模式并不是重点,重点是对代码的语感,也就是我说的基础技巧。模式是需要经验,而不能囫囵吞枣,简单模仿。很多时候,你不需要什么模式,只需要坚持一些“美感”就足够。闲话少说,代码设计的几个基础技巧如下:一、防止重复不要重复自己,也不要重复代码。当你发现重复的时候,就想想用一个标识符去取代具体的内容。如果是常量,就用常量标识符,如果是变量,就用变量标识符,如果是代码段落,就用函数包装,如果是数据单元的集合,就建立相关的数据结构封装,如果是状态和调用的集合,就建立对象;如果要新的数据类型,就用struct定义。只有不重复自己,不重复代码才能减少重复劳动,提高编码效率(体现 阅读全文
posted @ 2012-11-26 09:24 诺贝尔 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 现在c#的接口只是一个签名,也就是签名一样就可以用不同的实现。但是我认为这个接口模式还不是理想的模式,我认为接口应该是一个规则,而不只是一个签名。也就是要满足特定规则的实现,才是符合该接口的。规则包括对数据的定义,输入输出的关系等。从实现角度,就是接口签名外,增加代码测试功能。也就是,任何一个实现,都应该符合接口的签名(语法),同时通过它的测试(语意)。为何我有这个想法,因为大多数情况下,单单签名相同就认为是一个实现,这种约束太低了,反而实用价值不大。比如一个功能组件,建立的目的不是为了满足某一个功能吗?但是你其中一个实现却只是实现了一个接口签名,虽然能够套上去,但是组合起来完全不是你想要的功 阅读全文
posted @ 2012-11-25 18:11 诺贝尔 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 有人说微软的技术更新快,有人说快才爽。但是我觉得问题并不在这里,如果一个技术是你的主力技术,你当然希望它更新快点好,因为技术就是工具,高效的工具帮助你节省时间。但是很多新技术并不能帮你节省空间,反而浪费你学习的时间,最终效果让你非常不满意。说那么多,不管技术更新快还是慢,关键还是看你是否适用,是一个如何取舍的问题。为什么不追求所谓新的技术,在于新技术未必适合你。我认为一个技术是否适合你,首先要看你需要怎样的技术,并不是所有技术对你都有帮助,有些技术对你根本无用。要记住,做什么都有选择成本,你花精力进去这里,自然就会减少另外一个地方的精力,总精力是有限的。要怎样的新技术才算理想,我认为是能够最大 阅读全文
posted @ 2012-11-22 22:44 诺贝尔 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 可汗学院 http://open.163.com/khan/可汗学院((Khan Academy),是由孟加拉裔美国人萨尔曼·可汗创立的一家教育性非营利组织,主旨在于利用网络影片进行免费授课,现有关于数学、历史、金融、物理、化学、生物、天文学等科目的内容,教学影片超过2000段,机构的使命是加快各年龄学生的学习速度。创办人萨尔曼·可汗拥有麻省理工学院的硕士学位,以及哈佛大学的MBA学位,曾从事金融业。里面的课程很不错,感谢那些翻译者! 阅读全文
posted @ 2012-11-18 23:05 诺贝尔 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 哪些是做老板的优秀品格,我虽然不是老板,但是我有个同学做了老板,因此我就觉得是不是他的个性让他选择了做老板这个职业。1.实际。一次买网线,老板走开了,我和同学等了一会儿,同学就说,等那么久还不来,拿网线走人算了。我就很害怕,怎么可以不给钱就走呢,坚持等到老板。我们从小就受到很多道德的教育,实际上也是一种约束,这种约束有时候是好的,避免你犯错,但是更多时候是一种精神的禁锢。从这点可以看出同学这个人没有太大的精神禁锢,做人很实际。2.不欺骗自己。我和同学最大的差异,就是在道路选择上;我说努力学好,才有人要你干活;而同学说明明不喜欢,为什么要做?我们经常会用很多大条道理去欺骗自己做这个做那个,像很多 阅读全文
posted @ 2012-10-28 13:47 诺贝尔 阅读(782) 评论(2) 推荐(0) 编辑
摘要: 准备买台surface 来辅助开发应用。不过微软的支付渠道还没有搞好,不支持支付宝。开发方面,win8的文档还没有翻译完毕,相关的书籍也很少。策略方面:1.现在win8store里面有很多应用,但是质量非常非常的差,一方面可能是win8自身不够稳定,另一方面,可能就是应用程序开发者太过于随意,不够严肃对待质量问题。 因此,要在win8store得到关注,必须提供质量很好的软件做首发,win8应用支持自动更新功能,首发不行,用户卸载之后就很难让他再安装了,如果首发让用户满意,将来要推广就很容易。所以要注重首发的质量问题!2.win8store里面的应用已经有9000多款,三个月后达到30万款以上 阅读全文
posted @ 2012-10-28 11:53 诺贝尔 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 如题。很多算法书,什么这个结构,那个结构,什么网络流,什么环,什么哈夫曼,什么最短路径,什么面积,这些算法关我屁事啊。我要学在我开发过程中可以实际的,改善我编码能力的知识,而不是去认识算法有多牛B,然后自己的编程能力一点都没提高(或者有提高,毕竟枯燥的算法训练了你的忍耐力)。在实际编码中,分析复杂的逻辑,复杂的组合问题,检查逻辑漏洞,发现缺少的组合情形,这些知识就很有用,因为我们经常要去分析问题,要建立一个全面而非模糊的认识,防止逻辑判断出现没有涵盖的情形出现,要建立一个循环,每层循环之间的递推关系需要认识清楚。偶尔要建立一个递归结构,需要认识递归的条件和递归的递推化。这些东西就比较有用,而至 阅读全文
posted @ 2012-09-25 21:33 诺贝尔 阅读(384) 评论(2) 推荐(0) 编辑
摘要: 数,就是一个数,复数,就是两个数,依此类推,还有三个数等等。一个数对应实数轴,两个数对应虚数轴和实数轴(组成平面),三个数对应立体空间。也就是,多一个数,就添加一条数轴,这条数轴和之前的任意一个数轴形成一个平面,任意两个形成一个空间(至于4维就不知道如何描述了)。也就是理论上我们可以添加无限维,形成一个无限重叠,循环递归的奇怪空间。 阅读全文
posted @ 2012-09-25 20:49 诺贝尔 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 我在这里抛砖引玉啊,纯yy,不喜勿拍砖。很多人都在讨论这个订票系统,但是其实大部分讨论的人都不了解这个系统的需求有多大,比如有多少班次,多少票,然后多少人订票,还有就是有没有黄牛,有没有人恶意刷票等等具体的数据大家都不关心,就关心一个所谓的流程。我们应该明白,就算很简单的问题,如果规模乘以一亿倍,要求你一秒钟解决,那你也会很头痛。所以具体的数据应该先了解好,才能做分析,这才是合理的。而不是一下子就套自己的想法进去。第二,很多人也不了解铁道部设计的网站的流程是什么。既然如此,怎么能够发现他的问题所在呢?怎么能够通过对比来说明你的方案更加优胜呢?所谓没有调查就没有发言权,很多人都不了解这个道理。不 阅读全文
posted @ 2012-09-22 20:20 诺贝尔 阅读(2050) 评论(5) 推荐(0) 编辑
摘要: 笔记很有用,大部分读书好的人,笔记都做得好。所以笔记很有用。 阅读全文
posted @ 2012-09-21 12:43 诺贝尔 阅读(252) 评论(2) 推荐(0) 编辑
摘要: 首页是博客园的精华所在,博客园一天有500篇新博文,要是按顺序罗列出来,会浪费大家的精力,如果只是挑选一下相对比较有价值的博文出来,放在首页,无疑也是最大化大家时间价值的方法。主观推荐是不行的,我们应该用客观的算法去筛选文章,思路就如google搜索网页的原理一样。虽然,博客园的博文数量还在人力范围。一片文章有没有价值,基于什么样的线索(前提是你没有去阅读内容,不被主观影响)?第一,阅读点击量。因为博客园的所有博文都在博客园的管理范围内,所以博客园知道那篇文章多人点击。点击量有个问题,就是如果这篇文章多人点击,可能是里面有一些热门的关键字,而并不是这篇文章自身的价值。就好像很多欺骗搜索引擎的方 阅读全文
posted @ 2012-07-04 15:09 诺贝尔 阅读(937) 评论(1) 推荐(1) 编辑
摘要: 误区:1.基础最重要,所以什么英语数学应该努力学好。2.交际比技术更重要3.刻苦勤奋最重要4. 多学几门我的看法:1. 废话。假如你是个没有基础的人,你去学习编程当然会有很多不足的地方。但是如果你觉得基础很重要,就把心思放在所谓的基础上,这就是大错特错。你没有基础,就是因为你讨厌他们,那你为何还将精力放在上面呢?你最好学会接受现状,然后根据现状对自己学习的方式有个正确的评估,看看自己的基础有多少,哪些地方基础真的成为你的绊脚石。总之就将这种概念化的意识,转化为理性的,可以量化的思维。你要这样想,是否基础不好,英语不好,数学不好,就什么程序也无法完成?是否有这种基础的人,也有成功的例子和可能性。 阅读全文
posted @ 2012-06-24 13:28 诺贝尔 阅读(945) 评论(2) 推荐(1) 编辑
摘要: 中文,数学,表格,数字,图形,这些泛语言都有各自的优劣之处,针对问题的特点,选择合适的语言,或者不同语言的组合去描述问题将会有著问题的表述。 阅读全文
posted @ 2012-06-22 20:10 诺贝尔 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 大多数程序员,都是喜爱编码多过设计。遇到什么问题,首先就是想着上机“试一试",直到碰壁之后,才思考哪里出了问题。为何程序员不爱预先设计?我认为是缺乏设计工具造成的。虽然知道设计很重要,但是却缺乏行之有效的设计工具,只能见步行步。因此,我们不需要一而再再而三的强调设计的重要性,而需要总结一套行之有效的设计工具,以满足设计流程的需求。面向对象设计是一套工具,但是这套工具和编码环节很接近,属于比较后期的设计工具。在前期的设计工具就是收集资料,和分析整理资料,甚至是定下我们产品目标,这些内容很重要,而且应该在流程的初期去完成。你不可能说我用面向对象设计软件出来后,才去分析产品的定位。但是程序 阅读全文
posted @ 2012-03-08 13:32 诺贝尔 阅读(415) 评论(1) 推荐(0) 编辑
摘要: 一、语言习惯的问题排列和组合的差别是,排列的元素与位置有关,而组合的元素对位置无要求。我们的日常问题绝对不会出现这样的问法:某组元素的排列数是什么?不管是排列还是组合,日常用语都会用“组合”这个词,因此我们要分析一个问题是排列还是组合,要基于问题的前提,分析元素的位置是不是问题需要考虑的因素,如果元素位置不是问题所关心的,那么这个就是组合,否则就是排列。为了顾及语言上的误导性,一般专业的数学题都不会在涉及排列的时候出现“组合”二字,因为“排列”或者“组合”都是经过数学严格定义的术语。这造成学生只能针对数学问题做解答,而对于没有用语暗示的现实问题,往往就缺乏分析能力。二、 排列的两种方法分类法: 阅读全文
posted @ 2012-02-25 12:11 诺贝尔 阅读(4489) 评论(0) 推荐(0) 编辑
摘要: 其实财务软件有什么用?我觉得是给人一个快捷的印象,有这个印象帮助人们怎么利用现有的财富,怎么去分配,设计新的理财方案。一般来说,我们不需要太过复杂的理财工具,只有大件的物品才需要我们动用这个数学工具。比如去买房,或者计算所得税的时候,我们可能需要借助比较专业的工具。那么平时理财软件有什么用?第一个是记账,记账是无趣的,因为人们需要知道的是财务状况。当然如果不记账,怎么能得到财务状况呢,这是一个不可调和的矛盾。为此,我们需要灵活的设计记账的录入工作,让它更加简易和人性化。财务状况好的人,体现在什么地方,一个是固定的收入要多,第二个这个人需要有充足的个人时间,因为有个人时间就可以分精力去创造新的财 阅读全文
posted @ 2012-02-20 19:54 诺贝尔 阅读(1681) 评论(0) 推荐(1) 编辑
摘要: XXX有限公司章程第一章 总则第一条 根据《中华人民共和国公司法》和有关法律、行政法规制定本章程。第二条 根据相关法律法规实行登记,以登记内容为为准。公司注册、经营、清算等过程中遵守相关法律法规。公司管理者应保证股东利益。第二章 组织第三条 股东组成以行政部门的登记注册为准。股东是公司的最高权力机构。第四条 公司获利分红的受益人和分红比例由全体股东商议一致决定,股东不再享受公司红利。第五条 红利受益人和收益比例由本章程规定。公司红利按股份平均分成2000股,股份分配如下: xxx 身份证 股份1000 xxx 身份证 股份1000第六条 红利受益人不需要参与公司经营活动,并可自由转让股份。转让 阅读全文
posted @ 2012-02-19 19:14 诺贝尔 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 80年代出生的,刚好赶上人们对科技狂热的最后浪潮。微软推出的windows 95宣传上,使用了滚石的start me up (http://en.wikipedia.org/wiki/Start_Me_Up) 。大家不妨感受一下,当年大家对技术的狂热。那个时代,我们关心航天,登月,对科幻无比热衷,近乎信仰。那是一个有炽热的大众梦想的时代。而现在,我们只关心什么房价,物价,什么社会不公,一肚子怨气。唯独没有的就是梦想。 阅读全文
posted @ 2012-02-19 11:32 诺贝尔 阅读(413) 评论(2) 推荐(1) 编辑
摘要: 学面向对象最常听到的词就是“抽象”。抽象是什么,我觉得有两种定义:一、从具体的东西抽离非关键因素得到的简化实体。二、参数化。我们认识事物,都是从实体开始的,然后抽离部分细节,得到抽象简化后,归类对比等等得到认知。比如你认识一个陌生人,首先要了解他得社会身份地位,然后把他对比你其他认识的人,得出你要对他采取哪种态度。这种也叫标签化,脸谱化。作为文学家,经常要克服这种认知惯性,把细节填充进脸谱化的人物中,让人物与众不同。不过程序员不需要做到这一步。参数化从技术角度去论述这个问题。所谓参数化是指一个行为可以通过函数去描述。函数有自变量和输出值,而将行为的模式定义为参数化的函数,就把静态关系转化为动态 阅读全文
posted @ 2012-02-16 19:06 诺贝尔 阅读(2664) 评论(0) 推荐(1) 编辑
摘要: 用过win8技术预览版的人,都会发觉win8功能上改进并不多。win8是一个更好的win7,但是不见得有什么杀手应用出现。尤其在桌面用户上,新的metro桌面一点用都没有。屏幕被大大的方块占据了一大片,还是简单的图标放得多一些。而且两个桌面切换来切换去,会增加很多操作上的难度,理解上也是个问题。用户会问,我现在在哪个桌面上?很多windows用户不习惯全屏操作,只有游戏才是全屏的,甚至游戏都是窗口化的。但是metro界面要求你什么都全屏。这样会让你很不适应。说了那么多坏话,其实我不是黑win8.win8的吸引力在哪里?我认为win8对桌面用户最大的吸引力在于通信分享系统。因为win8是第一次系 阅读全文
posted @ 2012-02-15 22:08 诺贝尔 阅读(273) 评论(0) 推荐(1) 编辑
摘要: pc阵营拥有95%以上的资源,却无法产生ipad,小小的苹果公司,却独立开发出一个廉价的平板,而且还能赚钱,这太不可思议了。苹果的技术,其他公司也同样具备,为何却迟迟不会出现ipad?一个开放的市场,却输给了一个封闭的公司,这些种种奇异现象引起了我的注意。我想,这就是开放市场的局限性,开放市场在形成一个清晰的结构时,在很长一段时间都是高效率的,但是面对一个全新的不同的架构,就会不适应。传统pc市场,硬件和软件分工合作,貌似得到了资源的最有效的优化,每个公司都能得到应有的利润,同时竞争也很激烈,创新源源不断。但是效率在一个架构上最优化后,在另一个架构就显得不合时宜。苹果能够将一套硬件和一套软件组 阅读全文
posted @ 2012-02-15 20:42 诺贝尔 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 有人说,别人学习的时候,自己在玩游戏,这么多年一点一滴的时间都浪费在玩乐之上,是虚度光阴。人总是习惯于羡慕别人,别人的老婆总是最好的。 我认为,光阴会不会虚度,重点并不是你把光阴用来学习还是用来玩乐,而是你怎么去“度”光阴,这个“度”法是关键。 不管你是学习还是玩乐,甚至是做一些貌似很无趣的事情,这些内容本身是很难评价潜在价值的。在你求职的时候,你会后悔当初读书读得少,文凭不好;当你带小孩的时候,... 阅读全文
posted @ 2012-02-07 19:18 诺贝尔 阅读(618) 评论(1) 推荐(1) 编辑
摘要: 黑书,并不是贬义词,而是:“虽然不懂,但是好像很了不起的样子”。 这本书声名在外,貌似每一个算法精英必然会向你推荐此书。但是我看了n遍后,终于总结出:这本书并不适合初学者看。这并不是一本很好的教程,而是一本试题集,或者类似教师的教学重点提要。他会讲解每一个题目,或者每个内容的重点,但是他不会教会你懂得算法。 中国的很多书籍都是如此,如果你懂得,你就能看懂,如果你不懂得,那你就看不懂。 阅读全文
posted @ 2012-02-07 12:19 诺贝尔 阅读(2188) 评论(1) 推荐(0) 编辑
摘要: 很多人都幻想软件可以工厂化,流水线化生产,但是这一天却从来没有到来。软件和工厂模式的不同在于软件是研发出来,而工厂是研发出来后,持续生产。工厂中的生产阶段是重点,而软件的生产阶段只需要复制复制,可以忽略不计。所谓的流水线指的是工厂的生产阶段,所以软件很难出现所谓的流水线。那么软件是不是无法扩大规模,无法标准化?那又不需要这么悲观,我认为软件大规模“生产”(研发)是有条件的:一、组件化和接口标准化二、服务和消费模型三、可验证可测试四、性能和功能可配置其中核心是接口的标准化。一个大规模集成的环境下,标准接口是必须的,而这个往往是占山为王的思维下很难得到发展的一部分。比如QQ的通信协议就是私有的,谁 阅读全文
posted @ 2012-01-29 23:16 诺贝尔 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 不知道什么时候出现“微创新”这个词的,这个词我觉得可以用“改良”来代替,不需要强调“创新”。浮躁的社会需要“革命”性的东西,但是客观规律决定了革命性的东西很少,发展是需要逐步的。这个微创新,大概就是像粘“创新”这个革命性的词汇的光。 革命性的东西不常出现,出现也未必就是有商业前途的,比如vista系统就是革命性的,但是商业上却失败了,反而是改良型的win7获得了成功。 暂且不论这些,说说微创新和山... 阅读全文
posted @ 2012-01-26 01:03 诺贝尔 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 比起知识,我们更要重视思维本身。1.抽象抽象是人类最擅长的一种思维方法,具体的做法是把一件事复杂的细节过滤掉,留下有意义的部分。世界上有不同的事情,可以说每一件事都有不同之处,如果什么我们都要经历过,学会解决,那么我们什么都解决不了。因此,人类之所以那么聪明,最关键的一点是我们懂得过滤掉事情的细节,而剩下的部分和我们以往所经历的是相同的,所以我们可以依赖以往的经验去解决这件事情。抽象的方法很简单,重点在于你是如何去抽象的,如何去过滤掉细节,也就是那些是细节,那些是本质,这依赖于知识和经验。2.类比和映射两件不同的事情,通过抽象之后,就会得出比较类似的结构,有时候是刚好一样,所以我们可以直接用其 阅读全文
posted @ 2012-01-14 20:29 诺贝尔 阅读(1035) 评论(0) 推荐(0) 编辑
摘要: 当年做学生的时候,都可以提前拿到票,而且我们学校又比其他学校早放假(并且晚上学)所以这个火车票问题没有什么紧张的。不过看着常常的订票队伍,不免也同情。12306网站是铁道部专门用来订票的网络渠道,这个网站大家从技术途径分析很多,我本人不太懂就不做评论。我想和大家分析的是从产品角度,12306的不足之处。铁道部是一个老部门,很落后很保守,简而言之就是国中之国,不过并不像大家想想中的那么富裕,那么舒服,一个封闭的国中之国,就和朝鲜和旧中国那样,怎么可能先进发达富裕?大家义愤填膺,很多都是因为妒忌,我觉得没什么好妒忌的。12306这个网站我觉得最大的不足,并不是技术不足,而是从产品角度来说,他不是为 阅读全文
posted @ 2012-01-11 13:06 诺贝尔 阅读(1282) 评论(2) 推荐(0) 编辑
摘要: metro是火车的意思,这个UI借鉴了火车站指示牌的思路,也就是希望提供一个简明的信息给用户。但是metro绝对不是简单化信息就可以的,简单化会让UI显得很简陋。如何在一块空白中,建立足够简洁而又不过于简陋的UI,这是Metro需要尤其注意的。一、提取中心词和变量在一个小格子里面要想显示完整的信息那是不可能的,这就需要我们提供用户能够识别,而又最有意义的信息。二、设计界面先规划内容和流程美包含很多要素,但是用户界面的美学一个关键的地方就是效率,包括易于识别,易于查找,快速做决定等用户体验工程学方面的内容。第一点是先划分内容的层次,标题和内容要区分开来,不同组别的内容要区分开来,从左到右,从上到 阅读全文
posted @ 2012-01-04 14:12 诺贝尔 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: 2011年,目标是娶个老婆,开发一个汉语编程语言,最后靠编程技术赚钱。2012年,目标是生个孩子,开发一个汉语编程语言,最后靠编程技术赚钱。(悲剧的2011)祝福各位园友在2012年身体健康,事业进步!然后我说一说为什么开发一个编程语言如此难,第一个原来开发一个编程语言是很具挑战性的课题,首先需要很多复杂的看不懂的算法,脑筋要很好,第二,要编写一定数目的代码,关键还是需要深入对编程语言设计程序的理解,如何建立一个与众不同,同时又具备某项优势的编程语言,这就要你能够针对以往的编程语言进行分析和批判,知道不足和优势,并且能提出改进的方案,这并不容易。一个面向对象,都让很多人迷糊不已,何况深入的对一 阅读全文
posted @ 2012-01-03 12:09 诺贝尔 阅读(260) 评论(2) 推荐(0) 编辑
摘要: 本文献给想学编程或者需要学编程的人们。一、编程是什么?计算机(电脑)是通过程序来控制的,程序是一段指令,而编程就是编写程序,其目的是控制计算机的运作。其实生活中我们也要把编写一些简单的程序,比如有些电视机有家长控制功能和定时功能,我们就可以指定哪个时段可以看电视,电视有画面,哪个时段不能看电视。这是对电器的例子,还有一些例子是对人的,比如一套办事流程,规定你先到那个窗口,准备什么材料,再到哪个部门的哪个窗口。编程的目的就是让电器,计算机,甚至是人按照一定的程序流程办事。当然,我们这里讨论的编程是针对计算机而言的。那么计算机编程具体是怎样的过程?首先,你需要写一段文字(文本),然后保存为一个文本 阅读全文
posted @ 2011-11-29 13:32 诺贝尔 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 所谓熟能生巧,但离专家却有一个巨大的鸿沟,在农田干活的农民怎么也成不了水稻专家,推广之,那些在本职工作上勤勤恳恳的人,在业务上总有一个不可冲破的瓶颈。这种现象非常普遍,这就是为什么很多人很勤奋,却很“笨” ,有点碌碌无为的感觉。到底笨的原因在哪里?我想,之所以农民成不了专家,程序猿成不了程序设计师,主要的原因在于工作者没有专家的眼光。所谓专家的眼光是从高层次的去审视问题的,比工作者的层次要高很多,工作者往往只是一种经验性的,习惯性的劳作,而专家是经过高层次思考的工作。举例说:工作者的层次:1+1=2, 2+2=4 ……专家的层次:a+b=c简单来说,工作者可以熟练的掌握工具,可以对特定问题有着 阅读全文
posted @ 2011-11-14 13:28 诺贝尔 阅读(807) 评论(3) 推荐(5) 编辑