博文
学习目标和计划——2006年2月至9月 (2006-02-26 16:55:00)
摘要:
学习目标和计划——2006年2月至9月
越来越相信没有规划的学习生活最终学到的知识将是很少的,当然规划好了也未必就会有好的成果,我觉得要出好的成果至少这个计划要具备两点:一、这个计划要确实可行,这个是最基本的前提;二、要真正付诸于行动,这个是关键。
1、操作系统原理和windows系统编程
学习途径:陈向群老师的操作系统高级课程和二学位的马洪兵老师的操作系统原理
学习意义:首先面试上,操作系统的原理部分是很重要的,学好这个有利于九月份找实习;而且学好这个对于其他课程有很大的好处,比如对于网络编程的进程间的通信这部分内容就很重要的,还有对于windows的程序设计以及MFC的学习有很大的帮助,可以更好的理解底层的机制。
学习教材:windows操作系统原理、windows内核实验教程、操作系统教程、操作系统:设计与实现以及一些以前考研使用过的练习题包括北大历年硕士研究生考试题
2、windows程序设计
学习途径:没有开课,只好自学。依靠的基础就是上学期王亚沙老师的程序设计开发环境(其实这样说是颠倒了两者的关系,windows程序设计是那门课的基础才对,不过因为上那门课的时候老师讲了些许windows程序设计的相关基础知识,故这样说)
学习意义:从某方面上看,这门课其实是游戏开发的基础课,学好这门课可以很轻松的学好DirectX、MFC、OpenGL等课程,这样就可以涉足游戏编程
学习教材:windows程序设计(第五版)
3、STL与泛型编程
学习途径:很可惜从历年学院的开课计划里面都没有看到开这门课,去年暑假的时候南京大学软件学院......
我对这里的blog的建议(2006-01-14 18:53:00)
摘要:我对这里的blog的建议
1.增加修改字体及其大小的功能,这个不知道是不是我不会用,反正每次帖都要自己在原来的地方修改一下字体,更关键的是原来的大小帖过来以后好像变化了。
下面这个是csdn的样式,可以参考一下,好丰富啊,我都想跳槽过去了。
此主题相关图片如下:
2.增加评论提醒,我有时希望看看我的文章大家是不是有好的建议,但是文章比较多,有时没有时间一篇一篇看,要是有个评论提醒就好了。(这个也实现了,呵呵)
3.增加首页设置,比如我希望我的哪些文章可以让读者一进我的blog就可以马上看到一些比较有意义的文章,而一些没什么意义的文章就让读者自己选择是不是要看了。比如我可以设置:一进我的blog,就直接进了“程序人生”区,而不是按时间排的那页,这样对阅读者来说可能更节省时间。
4.提供文章关键字搜索,比如我以前看到了一篇好了文章忘记了保存,现在想起来的时候就应该可以根据关键字来搜索到这篇文章,又或者有时需要参考哪个类型的文章时可以找得到。(这个已经实现,真的很不错,我搜索“C++”出来了很多需要的文章,谢谢)
5.取消评论的字数限制(200字,太少了,随便说几句话就超过了)。
6.允许非注册用户参与评论。从我个人而言,我的一些观点、文章除了个人私事外,我总是希望大家给点意见或者建议。如果不允许非注册用户评论,那限制实在太多了。在msn space和csdn都是允许非注册用户参与评论的。(这个已经实现了,谢谢)
7.把评论的顺序改变一下,先评论的应该在上面,后面评论的在下面,不然太影响视觉了。
期待大家的更多建议……
......
听林斌的《如何编写优秀的程序》总结(2005-11-21 00:56:00)
摘要:听林斌的《如何编写优秀的程序》总结
一、写好程序的两大要素:
1、设计
(1)系统结构设计:由一些经验比较丰富的、经验比较足的工程师(架构师)来做
(2)详细的开发设计:
2、编程
二、设计文档的编写
1、文档本身怎么写不是关键,关键是文档的内容
2、最关键的一个部分是:design goals 影响着后面文档的编写,从而间接影响着后面的编码
三、一流代码可能需要很多特性,如鲁棒、简洁、高效等等。在林锐的《高质量程序设计指南C++/C语言》(第二版)里面曾经提到十点也就是
十大,在这里作者指出其实满足这些都可能不是问题,最难的就是在于如何取得一个平衡。比如,当你改善代码使其更高效的时候可能牺牲了
代码的可读性、清晰性。还有,开发的要求在各个开发阶段是不一样的,最初可能只是简单要求系统可以work,接下去就会考虑性能、鲁棒等
四、讲座中举了一些例子来说明了写代码所犯的一些错误
1、不要定义自己的“语言”,怎么理解呢就是很多人喜欢定义一些宏来代替原来的语言格式,
如在C/C++里面,如下
define isnot !=
define or ||
define is ==
还有一些从pascal转过来的人可能会喜欢定义BEGIN和END来代替{和}
如:define BEGIN {
define END }
这种习惯很不好,人家语言本身其实很好的,你这样做以后,别人可能看不懂你的程序了
2、函数的代码行应该在143行以内(1991年的研究结果,在86年IBM研究结果是在500以内,林锐的《高质量程序设计指南C++/C语言》(第二版
)里面的建议是在50行以内)
3、枪杆子的道理-Learn API32 seriously from MSDN ;Understand the ones you use,read the SDK doc in MSDN 。尽量使用库函数
4、使用指针的地方一定要判断指针是不是为NULL(当然,你声明指针的时候一定要初始化指针否则成为野指针就麻烦了),永远不要相信客户
给你的承诺(疑心重重写代码),比如:放心啦,我们永远不会给你传一个NULL的(这种你可不要相信,哪天可能就给你......
看某某老师给同学的观点有感(2005-11-19 21:15:00)
摘要:看某某老师给同学的观点有感
http://www.programfan.com/club/showbbs.asp?id=122427
引用原文:
我的老师昨天说,现在学软件只能从上往下钻,他的意思是:不管你懂不懂什么是数据结构,如果人家已经写出来的类,你只管继承和调用它就行了,你写不出来,即使你写得出来也不如人家写的好,无谓辛苦又不讨好。他还说,现在的软件业已是一个处于一个平流的行业了,不管你想做什么软件人家都已经有现成的类了。那些底层的东西你现在不需要懂将来也不需要懂。软件业的个人英雄时代已经过去了。他对PC软件业已经失去信心了,他说,你看现在世界上除了那几个软件巨头以外还有哪个软件公司过得滋润的?标准就是由软件巨头公司定的,比如你现在做出一个比微软的OFFICE还牛的软你认为有人会用它吗?事实上你也不可能做出来。他劝我不要学这门了,他还把他以前收藏的书送给我,他说他不干了。他特别介绍了一本关于MFC的书给我说,如果你还想学的话请跟好微软的脚步,它有什么新技术只要你会调用就有饭吃了。中国想搞像windows那样的操作系统那是不现实的,先不谈技术问题,首先是没有启动资金的,以后的商业价值也是一片迷茫。你让一帮人不吃不喝跟你写那些没用的东西是不现实的。试想一下如果LIUNX不是免费软件,你现在会知道还有一个操作系统叫LIUNX吗?不要说LIUNX怎么怎么好,LIUNX能做的windows也能做。它们只是收费和免费的差别而已。
听他说了这些话以后我失落了好几天,他的话确实也有道理。试想一下,如果想开发一个windows程序不用API函数是不现实的。如果是那样的话我们学那些数据结构还有什么用呢?现在我们学C还有什么用呢?还是学VC和VB算了,在窗体上画控件,写一点事件过程就得了,什么TCP/IP,什么读/写让API自己去解决算了。我看软件是没什么搞头了,大家罢手吧!哈
我的观点:
1.“如果人家已经写出来的类,你只管继承和调用它就行”这个基本上是对的,这就是很多专家建议的,尽量使用库函数。但是这个说起来很容易做起来并不容易,现在每个语言、平台的函数库、类库里面的东西很多,你要懂得选择,因此懂得选择的人就比不懂的人强,更进一步说,你可能需要自己开发完全属于自己的东西,这时候就存在另一个问题,那就是模仿,你要懂得模仿好的程序,好的代码(包括风格......
由网上批评谭浩强说起(2005-11-17 01:09:00)
摘要:由网上批评谭浩强说起
面对网上的批评谭浩强的一些评论,我再次写下这篇文章(以前我写过的,见我的blog:http://www.programfan.com/blog/article.asp?id=3810
一、下面引用一些话来说明现在中国国内很多沽名钓誉的人的“卑劣行径”
说明:用了“卑劣行径”这种词是因为我总是觉得一些人评论某种事好像带有很大的目的性,总是对人不对事,好像要把一个人治之死地。
1、林锐博士在《高质量程序设计指南C++/C语言》(第二版)的前言中(页码:IX)写到:网上有一些愤世嫉俗者认为计算机领域的每个分支都已经有了世界名著,不具有世界顶尖水平的中国人再写类似书籍都是欺世盗名的行为,这种极度自负和极度自卑的心态导致他们专门爱骂国内作者。如果中国作者的书籍中的技术错误被他们逮住,经过放大、推理、演绎之后基本上就能断定作者是卑鄙之徒,于是砖头就拍过来了(简称“拍砖”),拍砖者们遥相呼应,很快就能拍出江湖豪情,被拍的作者就成了“倒霉鬼”。
2.下面摘自《C++图书三人谈》(见《程序员》杂志2002年第九期P113-116或者《程序员》杂志2002年增值合订本下册P396-398),
主持人:熊节(透明),《程序员》杂志编辑,C-View成员
嘉 宾:孟岩(梦魇),联想公司掌上设备事业部应用开发处任职,C-View成员。与侯捷先生合译了《C++ Standard Library》一书
金尹(恶魔),上海天宇公司CTO,在《程序员》连载有“自由与繁荣的国度”系列文章
上面的介绍是那时的,现在这三个人都有了新的发展,大家可以到csdn去看看,他们在csdn好像都有一个专门的blog
熊节:http://blog.csdn.net/gigix/ 或者http://gigix.blogdriver.com/
孟岩:http://blog.csdn.net/myan/
金尹:http://counterpoint.blogdriver.com/counterpoint/index.html
下面把一些相关的代表他们观点的内容摘录了下来。
恶魔:如果......
小评编程语言对象命名(2005-09-19 21:33:00)
摘要:小评编程语言对象命名
依据《C++ primer》,我们这里也把所有的变量、类的实例等统称对象(object)。
我觉得,对象的命名是个人习惯+一些常用的规则,比如什么时候用大写,什么时候用小写,尽量使用人家看得懂意思的名字,等,这些是基本的规则大家还是应该遵循的,也不要太叛逆或者逞强。因为你的程序可能不只是你一个人看的,你需要考虑移植,升级,维护等,而这些事情可能不是你做的,要是你的程序让别人比较难看懂的话,那么说明你的协作性不强,广义上讲也就是你的团队精神缺乏。
有件事我印象比较深,就是裘宗燕老师在《the c++ programming language》里面硬把inline翻译为“在线”,还解释了一大堆原因,但是从这里就给我留下了不好的印象,为什么几乎全世界的中国人都叫“内联”,就你叫“在线”??
有时候东西是没有对错的,只有习惯而已,比如:呆板,我记得小时候上学的时候叫:ai ban ,但是好像初中还是高中以后听说改为:dai ban,为什么呢??因为大部分人管它叫dai ban,那么就是dai ban了。世上本没有路,走的人多了也就变成了路。......
简评电脑报(2005-09-18 20:20:00)
摘要:简评电脑报
今年看的比较多的电脑报,特别是综合版、网络版和软件版,对综合版的新闻,人物的报道觉得很不错,网络版的一些规划也不错,比如一些无线、有线局域网的搭建讲得也还不错(虽然比较初级)。
不过明显电脑报的软件版的编辑人员很、非常不负责任,表现在:
主要针对里面的一个小板块:编程点将台
1.编程点将太有时给漏掉了,(即使是故意的也应该说明一下);————这个情况今年我见过2次
2.把编程点将漏掉以后就把答案的顺序公布错了(本来是隔一周,结果应该变成隔两周,但是仍然按隔一周公布,这样就相当有一期没有评奖)————这个情况今年我看过一次
3.电脑报今年投稿邮箱全部更换,但是更换后的大约一个月,有一期的电脑报的软件版竟然还使用旧的邮箱——今年见过一次;
4.今年的编程点将的题目几乎都是来自网上一直流传的“c语言程序编程百例”,这样造成两点后果:
(1)、有些获奖程序直接照搬里面的答案,甚至连注释都完全一样——比如34期(听说做错了,呵呵,我没有认真看,我都是自己编的)
(2)、有些流传着的题目本身就是错的,比如36期,我认为这期是没有答案的,因为题目原本的意思根本就不是那样,而是:我认为应该是:
第一个3位数,是第三个3位数的三倍,而第二个数是第三个数的两倍。
而这题的原来的“c程序设计百例”就是这个错误的题目,但是里面的答案是按我改的那个设计的。详见我的blog:
xiangyu.programfan.com
5.编程点将有些评选出来的答案根本就不能让人满意,首先重要的一点就是扩展性不好,很多人设计的程序只能针对题目所给的规模。——见过许多期
6.我猜测评奖的时候基本上看的程序只有最先发给编辑的前面20个,基本上以后发的程序只是形式上说是照顾晚拿到报纸的读者,但是其实这些读者即使把程序发过去,可能也只是徒劳…………呵呵,我估计的,错误的话请编辑原谅。因为我也参与了许多次,自认为有些程序比获奖程序优秀,但是从来没有获得奖;还有一点就是基本上每一期的获奖者都有北京或上海的,因为北京一般是下周的电脑报,这周六就可以拿到。我以前在厦门的时候,这周的报纸要周三才能拿到,当然这时参与的程序就晚了…… ......
2005年暑期学习总结(2005-09-10 18:45:00)
摘要:2005年暑期学习总结:
总体而言,今年的暑期过得有点堕落,不过也学到一点知识,做了一些自认为有用的事情。主要收获有以下几点:
(1)基本上把思科的CCNA的课程理解了一遍,不过,对于路由器、交换机的配置由于缺乏实际操作,现在倒也忘记了不少;
当然,具体的路由器、交换机的配置倒也不是很重要,关键是对基本原理的掌握更重要一点。
(2)复习了C++语言,加深对C++语言一些高级特性的理解;
(3)通过做每一期电脑报中的“编程点将台”来加深对一些基本算法的学习,理解。如:回溯,排列组合算法
(4)教一小孩海龟作图(logo语言),其实我以前没有学过这个东东,但是由于是一门简单的语言,我觉得完全可以胜任就接下来了(我还没看过教材^_^)。不过,还好没有误人子弟,如我所料,我通过两天的自学,掌握了里面命令的运用(因为基本算法思想是一样的,比如循环,递归)。......
也看《千万别买谭浩强的书》(2005-08-15 02:34:00)
摘要:也看《千万别买谭浩强的书》
2006年1月14号修订(今天刚好2006年的考研第一天),把里面的一些措词修改了一下,把一些脏话去掉^_^。提出一些更强有力的例子。总体意思不变。
当时大约05年8月份的时候写完这篇以后,陆陆续续又看到很多关于评论谭浩强的帖,我倒不是说不能评论什么,而是觉得很多人说话很像有目的的(也就是我说的“卑略行为”),搞不懂为什么很多中国人就是喜欢这样,难道这就是曾士强中国式管理中的真正的中国人,但是我还是不喜欢这样,所以又写了一篇:http://blog.programfan.com/article.asp?id=7045希望进一步阐明我的观点。
《千万别买谭浩强的书》这篇文章的链接:http://www.programfan.com/club/showbbs.asp?id=89829
这篇文章搞很多热门帖,不过我可不是为了这个无聊的“名誉”来发这次帖。为了这个,id:问题大王,发了个帖《主题:观看贴子<<千万别买谭浩强的书!!>>后的感慨》支持谭浩强,没想到竟然吵了起来,首先我要声明的是我可不是为了吵架。
下面代表我的观点:希望我没有误导各位
第一.这篇文章的题目本身就是错的。为什么?因为太武断了,什么叫“千万别买谭浩强的书”,这是这么观点呢?还有这篇文章不仅仅针对谭浩强《c程序设计》这本书,而且最不能让我容忍的是竟然针对人,把谭浩强扁得一文不值,说什么垃圾,什么没写过程序……我一直在想要是这篇文章让老一辈程序员看到的话,这个所谓的北航老师的学生不知道会是什么样一个后果。
1.这就是强加给大家一种思想,暂且不说这种思想是好的还是坏的,这样的做法本身就不对了。马克思主义是真理,可是当我们党一直在给我们灌输这种思想时,我们是不是会觉得很不爽啊。我知道了,还用你一直说。
2.况且,这种思想可不是正确的,至少我是这样认为的,或者至少我们还没有用实践来证明这是正确的。是吧?要不然你怎么证明啊?反过来证明这种观点是错的还差不多。因为有人暂且不说很多人,看了谭浩强的书受益啊。当然,你不能说有人看了谭浩强的书浪费了很多时间,因此就说千万别买谭浩强的书,如果是有人看了谭浩强的书浪费了很多时间,那么你得出的观点至多是:谭浩强的书并不是合适所有人读的。大家应该都是理工科......
论专业对口和找工作(2005-06-12 13:05:00)
摘要:论专业对口和找工作
一般人认为,大学所学的知识和找工作的关联越来越没必然联系了。呵呵,其实不是这样的,单单就业而言,一般地,专业对口是非常非常重要的(当然有些对专业要求不大),比如你学电子的或自动化或其它理工科的,想找做软件的就同人家计算机有点区别,人家还是偏向正统的计算机。机电系有机械和测控,平时学习时,几乎都一样,但是,LG要机械类的,就专挑机械的,不要测控的。
千万不要以为不懂以后补就是,人家公司有那么多不用补就可以给他赚钱的,为什么要一个去了还要补的呢?
至于人品那更是不得而知,谁知道你人品好?其实对于盈利公司只要你补损人利己,能为公司赚钱就可以了。
学习能力是相对的,文科的学文能力好,理工科则相反,而且能力又有很多,比如空间想象能力好的,应该比较适合做机械或建筑等,逻辑推理好的则适合当程序员等,分析能力强的则适合很多了,如系统分析,市场分析,当CTO CEO等等 ……
所以,有可能的话,做好自己想从事哪方面的准备,认真做好准备。
......