笔记:编程的一些建议
0.今天偶然和同学聊到Eric Steven Raymond的《大教堂与集市》,想起可能会有些同学没看过,给个链接吧。http://www.yeeyan.com/articles/view/Angelo/2005 ;;全中译版1.代码生成工具j2eespider_1.0.0-M2.zip.http://www.j2eespider.org/cnf/display/EN/Download请穿墙;dotnet的同学可以下载CodeSmith,自己google吧。(另外附加一个fg,嫌用代理麻烦的同学可以直接运行fg672p.exe,用ff的同学戴tor即可)
2.Eclipse反编译插件: Jodeclipse与JadClipse .需要的同学上sf搜索一下:http://sourceforge.net/(小提示,用sf.net的短域名吧!)关于Eclipse再多嘴几句:大家记得装VE插件,毕竟拖控件很方便!
3.除了去csdn,ibm,javaeye等等,你还可以去这些地方八卦一下:http://reddit.com/r/programming/ http://www.techcrunch.com/
4.要用到liunix环境的同学要是担心装了它不能正常生活而又嫌虚拟机忙得掉渣,可以装一个cygwin,老巢http://www.cygwin.com/,有一个.exe文件,下来运行直接在线安装或者下载,当然你也可以用迅雷去别处下载一个打好包的,然后依然运行它选择本地安装即可。注:据说完全安装有2G多,自己选择需要的包装吧。
5.对emacs感兴趣的同学可以参考王垠的这个页面:http://docs.huihoo.com/homepage/shredderyin/emacs.html ;;你可以用它来写
Java,搜索一下关键字emacs jde ,甚至可以把它配置得像一个IDE一样,感兴趣的慢慢发掘。
6.petstore.对jee开发/web开发的同学没有不知道他的吧?如果还不知道的话,赶紧补习吧。自己Google,文档很多的。喜欢.NET的同学,老不死也做了一个PetShop,自己找找吧,我当时看的是这篇http://www.cnblogs.com/wayfarer/archive/2006/04/14/375382.html
7.对Javascript感兴趣的同学呢,可以看看visual js,当时ajax刚浮出,作为一个国人写的框架它被人们广为熟知(至于ajax框架,dojo,atlas已经相当成熟了)https://sourceforge.net/projects/visualjs,不过这个是直接在页面端运行的,你可以下载下来放在你的web应用服务器里面(比如apache,iis,tomcat)。然后学习js还有一个比较有意思的方法,自己写一个地图项目吧,推荐GoogleMap(他在国内的合作商是Mapbar,还是Mapabc的,忘记了),51ditu的API,我用的是51ditu的,因为当时使后者贵阳的数据要全一些。ps:国内比较强的人有幻宇,可以查找一下他用javascript写的星际争霸。还有这个:http://www.masswerk.at/jsuix/用js写的unix。
8.研究面向对象/Web/JEE/架构怎么能不研究一下spring+hibernate+struts呢?可能你会嫌早,但这个东西对你绝对有帮助!现在就先了解一下吧。.NET有Nhibernate。其实这个我也还没看...汗
9.你如果想让学习面向对象不那么严肃,你可以看看《戏说面向对象程序设计》,相当轻松的笔调,我传了一个pdf的,C#版,不要因为对这个语言不熟悉就不看,跟Java很像的,再说这类语言都是C的同一类衍生品,实在不行的话你可以选择看看他给你阐述的一些思想。
10.对搜索引擎感兴趣的可以关注一下lucene项目,http://lucene.apache.org/,lucene是一个全文检索引擎有很多语言的移植版本,如果你对构建企业级的项目感兴趣可以使用Solr,当然要是想做一个想Google那样的东西你还需要一个爬虫,建议你使用Nutch,你可能还需
要把你的数据储存起来,但这些形成海量数据的时候,你肯定又得发愁了,是否我要重新优化一下数据结构呢,比如要不要也写一个像Google的BigFile那样分布在不同文件系统的虚拟文件啊?这个时候你可以试哈Hadood,同样是ASF的项目,http://hadoop.apache.org/,嗯,开源太伟大了。可能你会说,我想从头到尾写一个自己的SE,那么你可以参考一下清华的天网,它有课程有PPT有语音有书,用C++教你一步步搭建了一个完整的搜索引擎。书叫做搜索引擎——原理与技术,搜索引擎叫做TSE(Tiny Search Engine)。推荐拿这篇文章开牙:http://www.ibm.com/developerworks/cn/linux/l-spider/ ;;Ruby+Python
11.学习SICP(计算机程序构造与解释)这类“地下”刊物的同学,对于后面的联系有疑难之处,可以去http://ocaml.cn/book/sicp,不过...这个项目已经停滞很久了,当然你仍然可以和他的创建者联系,code17写得很好滴。有时间的同学一定要找这本名著来看下。插一句
,TAOCP(计算机编程艺术)这样的法典式著作等下定决心再钻研吧,Concrete.Math(具体数学)我没有看过,这里就提一下,只推荐SICP。如果这三样东东你都不知道的话,一定要马上就搜索来了解一下。数学方面再吐血推荐一本书,《离散数学及其应用》,现中文版出至第五版,我们图书馆有第4版,建议买一本,以后可以做手册。
12.推荐一下我喜欢的Python,嘿嘿!国内有个社区http://python.cn/,他们的wiki里面有不少学习的资源,包括学习的书目:wiki.woodpecker.org.cn
13.Web开发推荐MS的WebDeveloper,Expression版的就够用,我用的是2005.不过开发工具嘛,什么趁手用什么,这个自己有自己的习惯。
14.老大们一定要学好C,尤其是指针和内存,推荐《C语言核心技术》,就是那本牛头书,建议入手。还有要注意训练一些Coding的技巧,比如能很熟练地写迭代(我的方法通常是引入参数,做循环。另外注意不要写成尾递归,开始想念lisp了...),还有就是数学,算法和数据结构这样的基本功也要练好,同时做做奥赛题,让头脑多运动运动。我不是计科的学生,编译原理、机器语言等这些没有学过,自己也没有找来看过,这里就不讨论了。更多的关于程序员的修炼要诀,请参考http://uneeda.blog.51cto.com/289042/70027 的这个链接列表(joelonsoftware),千万不要轻信那些叫嚣30岁不编程流言,那些人注定是这个行业的淘汰者。在实践的同时也要注意内功的修炼,不要把大学当作java速成班了。
15.写了以上也算是对自己的一些实践经验做一次索引——看来还得努力,群里的同学别见笑哈。最后我就写一个数目吧,大家参考一下,并请大家重视选书,一本好书会让你事半功倍的。以下的条目延续上面不分类的杂乱风格(- -!),感兴趣的同学可以去豆瓣上看看这些书的评论和介绍。强烈建议看中文版,外文的会影响效率,并且翻译再差也不见得完全不能理解。不要总看电子版,慢,而且不方便。另外希望同学们能贡献自己的书列。
我最近在读或者读过的:
离散数学及其应用(原书第5版),ISBN: 9787111203261,http://www.douban.com/subject/2130743/
算法导论(原书第2版),ISBN: 9787111187776 ,http://www.douban.com/subject/1885170/
计算机程序的构造和解释:原书第2版(SICP),ISBN: 9787111135104 ,http://www.douban.com/subject/1148282/
Dive Into Python,ISBN: 9781590593561 ,http://www.douban.com/subject/1440658/
JAVA2核心技术(卷Ⅰ基础知识原书第7版,ISBN: 9787111185239,http://www.douban.com/subject/1781451/
Java编程思想.第3版,ISBN: 9787111162209,http://www.douban.com/subject/1139336/
C语言核心技术,ISBN: 9787111220503 ,http://www.douban.com/subject/2226913/
数据结构与算法分析:C语言描述,ISBN: 9787111127482 ,http://www.douban.com/subject/1139426/
JavaScript权威指南,ISBN: 9787111216322,http://www.douban.com/subject/2228378/
圣殿祭司的ASP.NET 2.0开发详解——使用C#,ISBN: 9787121032875,http://www.douban.com/subject/1936917/还有些入门书籍推荐O'Reilly系列的,就是那些封面是动物的那种
我没读过,但评价颇高的:
编译原理(龙书),ISBN: 9787111123491 ,http://www.douban.com/subject/1134994/
COM 本质论,ISBN: 9787508306117 ,http://www.douban.com/subject/1231481/
C++程序设计语言(特别版),ISBN: 9787111102021,http://www.douban.com/subject/1099889/
Effective C++,ISBN: 9787121029097,http://www.douban.com/subject/1842426/
C++ Primer中文版,ISBN: 9787115145543,http://www.douban.com/subject/1767741/
编程珠玑(第二版),ISBN: 9787508319148,http://www.douban.com/subject/1230206/
Java解惑,ISBN: 9787115142412 ,http://www.douban.com/subject/1473329/
Effective Java 中文版,ISBN: 9787111113850 ,http://www.douban.com/subject/1103015/
程序设计实践,ISBN: 9787111075738 ,http://www.douban.com/subject/1173548/
C程序设计语言,ISBN: 9787111128069,http://www.douban.com/subject/1139336/
UNIX编程艺术,ISBN: 9787121021169,http://www.douban.com/subject/1467587/
UNIX编程环境,ISBN: 9787111071150,http://www.douban.com/subject/1033144/Programming Ruby中文版,ISBN: 9787121038150 ,http://www.douban.com/subject/2032343/
应用Rails进行敏捷Web开发,ISBN: 9787121028724 ,ttp://www.douban.com/subject/1839273/建议以下当你的团队有一定规模时候再读读。
代码大全(第二版),ISBN: 9787121022982 ,http://www.douban.com/subject/1477390/ ;;就看了一点就放家里了,没经验看起很枯燥
设计模式,ISBN: 9787111075752,http://www.douban.com/subject/1052241/
人月神话,ISBN: 9787302059325,http://www.douban.com/subject/1102259/
人件(第2版),ISBN: 9787302063841,http://www.douban.com/subject/1108725/好了,暂时就能想起这些
请关注后面的评论,因为会陆续更新一些新的推荐!