片面思考
文章平均质量分 65
SzMing
这个作者很懒,什么都没留下…
展开
-
如何有效地记忆与学习
你所拥有的知识并不取决于你记得多少,而在于它们能否在恰当的时候被回忆起来。让我稍微说得更详细一点:学习新知识并将其存放于大脑中,最终的目的是要在恰当的时候能够想得起来去使用。因此,学习的有效性显然应该这样来衡量:当遇到需要用到学过的知识的时候,相关的知识是否会自动从你脑海中“蹦”出来,最起码——能否通过有意识的搜索将它们提取出来。这可不像它听上去那么简单,否则就不会有“掉书袋”、“读死书”转载 2012-10-16 16:00:52 · 1272 阅读 · 0 评论 -
思考问题的本质--对软件设计中抽象层意义的一点思考
最近在作一个可视化的工具,之所以要开发这个工具,是因为我们正在开发的编译系统在处理源文件的过程中,会生成内部的数据结构,很多时候,我们需要观测内部数据结构的状态。而这个数据结构从本质上来说,就是一个Graph,对于Graph来说,仅仅观察它的单个结点或是某条边的状态的话,还是比较容易的,直接dump出文本或是通过调试器trace就可以了。但是,我们还经常会需要观察Graph转载 2012-10-18 13:25:08 · 1442 阅读 · 0 评论 -
怎样学习编程
高质量自然是程序员的技术追求,也是职业道德的要求。宁可进度慢些,也要保证每个环节的质量,以图长远利益。人员管理,项目管理,可行性与需求分析,系统设计,程序设计,测试。软件开发中的三种基本策略:“复用”、“分而治之”、“优化——折衷”。进步是应该的,但不进步则是可耻的。在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的。面向对象(Object转载 2012-10-28 21:51:02 · 540 阅读 · 0 评论 -
编程的首要原则是什么?
半年前,JoelOnSoftware和CodingHorror合搞的stackoverflow.com刚上线不久,我兴冲冲地跑过去扔了一个问题:你们认为编程的首要原则是什么? 作为我的学习原则的一个实践:8. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。5个月过去了,这个问题到现在还有人回复,我得到了转载 2012-10-20 14:36:47 · 531 阅读 · 0 评论 -
为什么学C++比C#的长期风险低
语言之争是程序员永远不会疲倦的闲暇话题,初学者的语言选择也是大家所津津乐道的。回望近年来,随着微软.net战略的来势汹汹,不少初学者都喜欢以C#作为自己的第一门语言。在这样的大环境之下,讨论C++还有什么意义么?在瞎扯这个问题之前,我们先来看看为啥初学者都选择C#。估计原因很简单,就是入门容易。当然,这容易是相对于C++而言的。如果学C++,你肯定要看《C++ primer》这本经典吧?泛原创 2012-10-28 22:23:55 · 933 阅读 · 0 评论 -
C++学了这么多年,你仍不知道的事!!!
任务stringiosc++math算法 C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!! 首先谈下声明与定义的区别。 声明是将一转载 2012-11-10 17:02:57 · 646 阅读 · 0 评论 -
迈出从3K到1W的重要一步——掌握设计模式
IT职场的小菜经常有这样的疑问: 为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。 为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bu转载 2012-11-10 16:14:58 · 485 阅读 · 0 评论 -
STL,ATL,WTL之间的联系和区别
一、STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(原创 2012-11-18 13:53:43 · 487 阅读 · 0 评论 -
程序其实也是一种艺术
许 多人以为程序员就是每天面对浩如烟海的枯燥数据,进行着机械繁重的工作,毫无想象力可言。可是对于袁红岗这样一位从事了十几年程序开发工作的高级软件 工程 师来说,写程序其实也是一种艺术创作,需要作家般华丽的想象力、音乐家的激情、哲学家般缜密的思考。在这份他人看来似乎属于纯理性领域的工作里,他 总能感 受到创作的喜悦和艰辛,如同艺术作品带来的激情和成就感。在这十多年期间,袁红岗一向都很低调,只是在原创 2012-11-18 14:04:21 · 905 阅读 · 0 评论 -
一位高级程序员给学弟学妹的建议
我 始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如 C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好 笑。C#就象当年的ASP 一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学原创 2012-11-18 14:03:02 · 611 阅读 · 1 评论 -
进程管理
概念:程序并不能单独运行,作为资源分配和独立运行的基本单位都是进程。1、 程序并发执行的特征:间断性,失去封闭性,不可再现性2、 进程的三种基本状态就绪状态,执行状态,阻塞状态不少系统中只有上述三种状态,不少系统又引入了第三种状态 挂起状态3、 引起挂起状态的原因终端用户请求,父进程请求,负荷调节的需要,操作系统的需要4、 进原创 2012-11-20 11:36:19 · 609 阅读 · 0 评论 -
OOP的黄昏
本文来源于TopLanguage Group 上的一次讨论(这里 ,这里 和这里 )。pongba提出:C++的抽象机制并不完善,原因是为了性能而做的折中,未来随着计算能力的提高到一定程度,人们就能够忽略更好的抽象所带来的负面效应。就此诸老大各自提出高见,受益良多啊。经过讨论,我基本上理解了pongba的想法。但我觉得等待计算机的性能提高太消极了。我相信随着编程技术的发展,这种最优抽象造成的性转载 2012-10-19 11:26:42 · 647 阅读 · 0 评论 -
抽象思维能力训练随感
最近的一些工作感受,让自己觉得,抽象能力(或者说,思考问题本质的能力)的训练的确不是一件容易的事情。也许,对有些人来说,得天独厚生具的优势使得他们更擅长在抽象层面处理问题,他们也更容易看到问题的本质。但是对于绝大多数人类个体来说,由于在人类的漫长进化史上,我们的感性思维能力的进化时长要远远大于理性思维能力的进化时长,所以,从本能适应性的角度来看,更多人类个体,会更愿转载 2012-10-19 10:53:52 · 1307 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(part1)
1. Google&Wiki(遇到问题做的第一件事情,也是学习某个东西做功课(homework)最先用到的东西。2. 看书挑剔,只看经典。如何选择经典,可以到网上做做功课,看看评价,综合分析一下。3. 做读书笔记。一是将自己阅读的时候的思考(包括闪念)总结下来,二是将书中的好例子摘抄下来。(这个习惯是一年前才养成的,发现受益极大。)有了google note,笔记可以加上tag,非常便于回转载 2012-10-16 16:02:53 · 531 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(part3)
这篇主要写一些学习(尤其是阅读)的基本方法。1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去。万事开头难,因为从不了解到了解基本的一些事实,是一个新知识暴涨的阶段,这个时候的困难是最大的。有人熬不过去,觉得困难太大就放弃了。不过,狂热的兴趣可以抵消对困难的感觉,所以趁着对一件事情有热情的时候,开一个好头是很重要的。(当然,这并不是说持之以恒就不重要了)。当然,也许这个是转载 2012-10-16 16:04:47 · 519 阅读 · 0 评论 -
数学之美番外篇:平凡而又神奇的贝叶斯方法
概率论只不过是把常识用数学公式表达了出来。——拉普拉斯记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了——这果然是个牛逼的方法。——题记目录0. 前言 1. 历史 1.1转载 2012-10-16 17:37:33 · 1183 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(part2)
接着上次的写。1. 学习和思考的过程中常问自己的几个问题:你的问题到底是什么?(提醒自己思考不要偏离问题。) OK,到现在为止,我到底有了什么收获呢?(提醒自己时不时去总结,整理学习的东西)。设想自己正在将东西讲给别人听(有声思考;能否讲出来是判断是否真正理解的最佳办法)。3.1 设想需要讲给一个不懂的人听。(迫使自己去挖掘知识背后最本质、往往也是最简单的解释)。 时常反省和注转载 2012-10-16 16:03:38 · 305 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(四)——程序员的知识结构
自从建立了 TopLanguage 以来,发现在上面待的时间越来越多,与高手讨论问题是个粘性十足的事情,一方面,分享自己的认识是整理不成熟的想法的极好途径,另一方面,互相之间视角不同,所以往往自己忽视的地方会被别人发现。在讨论中不断精化既有的知识体系。以下这段基本上摘抄自(略有整理和添加)在 TopLanguage 上的发言:抓住不变量我喜欢把知识分为essential的和non-es转载 2012-10-16 16:05:52 · 1614 阅读 · 0 评论 -
如何清晰地思考:近一年来业余阅读的关于思维方面的知识结构整理(附大幅思维导图)
一年前一个偶然的机会我遇到了一本书——《影响力》,看完这本书之后对我们如何思维产生了极大的兴趣,于是在一年的时间里面密集地阅读了以下一些方面的经典著作:社会心理学、认知科学、神经科学、进化心理学、行为经济学、机器学习、人工智能、自然语言处理、问题求解、辩论法(Argumentation Theory)、Critical Thinking、判断与决策。以及大量的 Wikipedia 条目。这一年转载 2012-10-16 17:38:35 · 1680 阅读 · 0 评论 -
思考问题的本质--沟通的效率
最近跟公司同事的协作场景越来越多。协作过程中的沟通对象也不仅仅局限于自己的经理,而扩大到了其他的一些同事。在这个过程的初始阶段,还是遇到了一些问题。不同的个体,因为其知识背景,思考模式的差异,在问题讨论的过程中往往会表现出不一样的风格。有些风格之间的兼容性比较好,有些风格之间的兼容性就比较差。理想情况下,一个团队内部的所有成员讨论问题的风格的兼容性越强越好,这样在问题讨论过程中,可转载 2012-10-18 13:23:07 · 690 阅读 · 0 评论 -
思考问题的本质--有关提炼总结的思维习惯
在思考,分析问题的过程中做总结,提炼的工作并不是一件轻松的事情,往往也是一件认知个体欠乏足够主动性的事情。这种现象存在的原因我想也许包括如下几点: 1。总结,提炼这件事情本身要求认知个体能够突破已收集到的现象,已得到的思考结果的表层,深入到背后的那个更本质, 根源的层次,理出一条规律性的主线来。这件事情比较消耗心智精力,而且对思考能力的要求也比较高。操作层面上的绝对转载 2012-10-18 13:23:50 · 2204 阅读 · 0 评论 -
C++的替代者
C++诞生已经接近30多年了,标准化也已经快10年了。在80年代末,90年代初至今的这段日子里,C++不断成熟,并成为主流。然后,几乎每隔5年,便会出现一种语言,声称源于C++,但比C++更好。这些语言有意无意地以C++替代者的姿态出现。先是Java,然后是C#,如今还有一个D语言。那么C++的替代者真的出现了吗?这些语言真能替代C++吗?回答这些问题,得先看看C++替代者应具备的条件。要想知转载 2012-10-19 11:24:18 · 1351 阅读 · 0 评论 -
书写是为了更好的思考
我经常在走路和睡前总结所学过的内容,思考遗留的问题,一段时间的阅读和思考之后,一个总体的知识框架就会逐渐浮现在脑海中。然后我会将它书写下来,然而,我往往非常惊讶地发现,当我书写的时候,新的内容仍然源源不断的冒出来,就像我的键盘自己也会思考一样。大半年前的时候,我曾在一篇文章《跟波利亚学解题》中写到将问题求解的思维过程记录下来的好处,现在再次回忆起来,当时列出的几点其实不仅对于问题求解是大有好处转载 2012-10-18 12:35:57 · 340 阅读 · 0 评论 -
驳“C语言已经死了”
现在,有很多C/C++程序员总是自命不凡,看不起其他开发人员。其实,或许别人更看不起他呢!>> 有偏见的永远只是个体,而不是群体。作者加了后面那句,无疑证明有偏见的不是C/C++程序员,而正是他自己。 学生时代,我也曾醉心于C/C++,但时至今日,始终无法写出无懈可击的C++代码,所以我始终认为我不会C/C++。这些年,我一直在寻找编写C++代码的最佳模式。但是,老实说,我还没有见到过哪转载 2012-10-18 12:50:28 · 977 阅读 · 0 评论 -
思考问题的本质--如何走出思维困境
在思考,分析问题的过程中经常会遇到的一个障碍就是当思维过程暂时没有发现明显的可供继续推进的线索,方向时,自己会陷入一种一筹莫展的困顿状态,一时间不知道应该如何是好。以前自己走出这种思维困境,主要还是靠蒙,撞运气,机械低效地重试一些猜测,或者是跟同事进行讨论以获得一些启发。这种走出思维困境的能力欠乏方法论层面的效力,远谈不上高效,更谈不上系统了。而且以前这种走出思维困转载 2012-10-18 13:24:29 · 1268 阅读 · 0 评论 -
关于程序的健壮性及鲁棒性
鲁棒是英文Robust的音译。健壮性是指软件对于规范要求以外的输入情况的处理能力。所谓健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。另外健壮性有时也和容错性,可移植性,正确性有交叉的地方。比如,一个软件可以从错误的输入推断出正确合理的输入,这属于容错性量度标准,但是也可以认为这个软件是健壮的。一个软件可以正确地运原创 2012-12-08 12:17:44 · 2753 阅读 · 0 评论