因为要经典,不敢写得太多,欢迎大家继续补充。这里只是涉及编程的东东.
ps.网上这些书的电子版大都是未经作者同意而发布的,我并不能保证给出的链接长期有效。我的看法是您可以先下载试看;),如果觉得物有所值,还是推荐去买一本纸质书,也是支持一下作者的辛勤劳动。
有用的网站:
MSDN Library
CSDN
经典书籍:
=======================
WINDOWS编程类
=======================
Windows程序设计中文版(Programming Windows,Charles Petzold著)这个不用我多废话了,地球人都知道的经典,用C语言+WinSDK写成。
Windows核心编程(Programming Applications for Microsoft Windows, Fourth Edition, Jeffrey Richter著)内容较深的一本书,同样经典,如果能通读一遍,可以说基本上就掌握了Windows的精髓。
Win32 ASM Tutorial Resource Kithttp://www.pediy.com/document/Win32ASMTRK.rar(解压密码:dREAMtHEATER)
dREAMtHEATER收集的WIN32ASM教程,内容很全,包括32位汇编的基础知识,Iczelion的经典教程中英文版,罗云彬的32位汇编教程,还有PE格式和VxD的一些内容。
Windows环境下32位汇编语言程序设计(罗云彬著)汇编语言版的Programmin Windows ,可以与上面Iczelion的教程相互参照着学习。
=======================
程序设计语言类
=======================
C语言程序设计(The C Programming Language (2nd Edition), Brian W.Kernighan & Dennis M.Ritchie著)作者是C语言和UNIX系统的发明人,这一本书是如此经典,以至于两位作者名字的缩写 K&R 成了一个专有名词,以至于书里的"Hello,World"这个简单的句子被无数人用无数种程序语言写出来。很薄的一本书,却成了一个不朽的传奇。个人看法,学好C语言,这一本小书足矣。
C++语言程序设计(The C++ Programming Language (Special Editon),Bjarne Stroustrup著)作者是C++语言的发明人,这本书之于C++就好比上本书之于C,不同的是这本书巨厚无比,毕竟C++复杂了太多太多。这本书介绍到了C++的方方面面,巨细无遗,毕竟是作者发明的么,不过我只看了几章就晕得受不了了。
btw:关于C++的好书还有很多,如
<< C++ Primer >>, << Thinking in C++ >>, << Essential C++ >>、<< Effective C++ >>等等,因为我对C++不很感冒,这里不敢妄加评论,请大家多补充。
再btw:对Java, .Net, Python这些新东东(Java好像也不新了吧,看来是我老了)了解不是很多,也不敢乱写,同样请各位补充。
=======================
面用对象WINDOWS编程类
=======================
也不知道这么说合适不合适,总之就是像MFC,VCL之类的东东啦。这类图书大概是最多最杂的了,像什么XX从入门到精通啦,XX编程宝典啦, XX编程100例啦……鱼龙混杂,泥沙俱下,也说不出哪个是经典。这里只选出几本有一定深度的,大家基本公认的好书。
深入浅出MFC(第二版)(侯捷著)下载地址:
侯捷网站:
关于侯先生写的和译的书,赞的人很多,骂的人也有,我是很推荐这本书的,虽然我不喜欢MFC,只硬着头皮看了前几章。感觉如果能通读下来,可以试着自己架一个类库了,呵呵。需要注意的是,读这本书先要有一定的SDK编程的基础,这本书不是教你如何用VC写程序的,好像有许多人不明白这一点,所以来骂侯先生,如果你只想快点用VC写个程序出来,建议去看看《21天VC++无师自通》之类的书。
btw:侯先生的网站上有很多有趣的东东,顺便推荐一下。
Delphi源代码分析(周爱民著)我只在很早之前玩过Delphi,水平就是只知道Form上放几个Button,Edit,双击两下就开始写代码,因为以前学过Pascal,看着语法很熟悉,玩得不亦乐乎,什么也不管,N久以后才知道有Object Pascal这回事,汗……因为N多大牛推荐这本书,所以我也推荐一下,虽然里面东西基本都不懂。同样,这本书也不是教你如何画个窗口摆个控件的,那样的书遍地都是……
=======================
数据结构与算法类
=======================
算法、数据结构,这是计算机程序的灵魂所在。下面介绍的书可以在找到,而且那里有更详细的评论,强烈推荐!
Introduction to Algorightms (算法导论,Thomas.H.Cormen等著)此书简称CLRS(四位作者名字的缩写),被人们称做“计算机算法的圣经”绝不为过,是ACM竞赛的必读书,影印版由高等教育出版社出版,共1180页,厚度约五公分虽然书很厚而且是英文,但是由于大师深入浅出的讲解,反而很好读懂,有时候我学一个算法,看相关中文书看得一头雾水,翻翻这本书却能豁然开朗。
The Art of Computer Programming vol1,2,3(计算机程序设计艺术I-III卷,Donald.E.Knuth著)简称TAOCP,经典中的经典,名气可能比上一本书还大,此系列书原计划出七卷,目前为止只出版了三卷,已经被评为20世纪最重要的20部著作之一。因为里面用一种奇怪的程序语言写成,而且只出了三卷,内容没有CLRS全面,这套我没有买,只在图书馆里翻翻(有中译本),但绝对是值得一看的好书。
Concrete Mathematics A Foundation for Computer Science (具体数学,Donald.E.Knuth & Ronald L.Graham著)
同样是ACM竞赛必读书之一,几乎包含了所有计算机科学里涉及到的数学问题,里面有众多的经典问题与经典解法,对开拓人的数学思路有极大的帮助。看这书给我的感觉是,如果你能把每章后面所有的习题都解出来,估计离图灵奖也不远了
=======================
关于编程竞赛
=======================
下面是几个比较大的在线提交系统(Online Judge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。采用黑箱测试,系统里有一套标准的输入输出数据(对外保密,而且通常数据很多很怪),你的程序的输出和标准输出完全符合即可。常见的返回信息有AC(Accepted,通过)WA(Wrong Answer,输出有错误)TLE(Time Limit Exceeded,超时)MLE(Memory Limit Exceeded,内存溢出)RE(Runtime Error,发生实时错误)等,只有AC了才算做对一题。这里只是一个简要介绍,请大家在做题时先看看各网站上的FAQ,Enjoy it~~~
浙江大学 Online Judge(ZOJ)国内最早也是最有名气的OJ,有很多高手在上面做题。特点是数据比较刁钻,经常会有你想不到的边界数据,很能考验思维的全面性,现在我主要在这个OJ上做题
北京大学 Online Judge(POJ)建立较晚,但题目加得很快,现在题数和ZOJ不相上下,特点是举行在线比赛比较多,数据比ZOJ上的要弱,有时候同样的题同样的程序,在ZOJ上WA,在POJ上就能AC
同济大学 Online Judge 这个OJ题数上不能与上两个相比,推荐这个OJ的原因是它是中文的,这对很多对英文不太感冒的兄弟是个好消息吧。它也因此吸引了众多高中的OIer,毕竟他们的英文还差一些呵呵,上面的题目也更偏向高中的信息学竞赛一些。
西班牙Valladolid大学 Online Judge(UVA)世界上最大最有名的OJ,题目巨多而且巨杂,数据也很刁钻,全世界的顶尖高手都在上面。据说如果你能在UVA上AC一千道题以上,就尽管向IBM、微软什么的发简历吧,绝对不会让你失望的。
俄罗斯Ural立大学 Online Judge(URAL)也是一个老牌的OJ,题目不多,但题题经典,我在高中的时候就在这上面做题的。
UsacoGate Online Judge(USACO)全美计算机奥林匹克竞赛(USACO)的训练网站,特点是做完一关才能继续往下做,与前面的OJ不同的是测试数据可以看到,并且做对后可以看标准解答,所以如果大家刚开始的时候在上面那些OJ上总WA却找不到原因的话,可以试着来这里做做,看看测试数据一般是从什么地方阴你的。