我对编程/计算机科学的一些看法和经验

软件和网站开发以及相关技术探讨
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

我对编程/计算机科学的一些看法和经验

#1

帖子 anticlockwise » 2008-12-17 5:31

一直没能闲下心来写这个,不过还是想写写底层/基础的东西。我个人很喜欢Java和Python,所以写一些Java/Python相关的常用问答,然后以这两门语言展开吧。

关于CLASSPATH
看到论坛里有这样那样的关于CLASSPATH的问题。的确,我见过的关于Java的书有些都不会细讲Java的CLASSPATH,而CLASSPATH又恰恰是学Java时最需要了解的东西之一。所谓CLASSPATH,其实就是指向Java Class的路径。学过Java的人都知道Java的基本执行单元是类,而它是如何找到他所需要运行的这些类呢?无非就是通过CLASSPATH。

CLASSPATH可以是一个目录,目录中包含包结构的.class文件,也可以是某个jar文件。有人问,我下载了一个jar文件,应该放在哪里我才能够调用其中的类呢?随便,只要你的CLASSPATH指向了那个jar文件就行。

指定CLASSPATH的方法主要有两种:1. 设置CLASSPATH环境变量;2. 如果你只是想执行一次这个CLASSPATH里边的Java类,可以用java命令的-cp参数。

编程环境
关于编程环境,我一直认为刚开始学请不要用Eclipse,因为它臃肿、花哨(让你不认为你在学Java)。我认为刚开始就是应该用最简单的 文本编辑+命令行:
1. 这样你能知道程序是怎么样得到的,其实源程序只不过是一堆字符。我看到网上很多人(甚至研究生),当他们没有集成开发环境的时候,他们竟然不知道怎么样打开源程序!!
2. 你可以接触到命令行的世界。我的帖子是针对”计算机科学人员“,而”计算机科学人员“,我认为是必须知道命令行的。我不是说图形界面不好,但作为一个现在的计算机科学人士,试着懂得命令行的巧妙是很重要的。
3. 当你理解了Java程序是如何编辑和生成,并且理解了CLASSPATH,我建议你看看Ant (http://ant.apache.org)这个工具。这是一个能够让你编程效率提高的工具。当然,学习这个工具是需要更多的知识,例如XML,但这也是学习过程中的其中一步。
4. 除了Ant这个工具之外,还有Maven (http://maven.apache.org)。Maven的好处在于它能够帮你管理你项目中的依赖。例如你如果需要某一个Java类库,可以在你项目的Maven配置文件中说明,然后Maven会帮你自动从它的源中下载。

如果你觉得你已经熟悉了Java编程,那么你可以试着用用Eclipse之类的IDE。这些集成开发环境还是有他们的好处。例如Eclipse,即使编译+错误显示,代码格式化,自动导入等等。所以至今,即使我编辑代码使用的是Vim,但其实是用Vim作为编辑界面,和后端的Eclipse服务器通信,调用Eclipse的许多功能。我用的是一个叫Eclim的插件。至今,我还是喜欢写Ant文件(我有自己可以重用的Ant文件),喜欢用Vim编辑代码,然后用命令行来编译、调试和运行代码。

只学Java不行!
每个程序员都不会只知道一种语言,只知道用Java写代码不行~~只看或者只学Java相关的东西会使你的编程思想过于局限。编程语言非常多,应该多看看,多学学,知道你所用的语言的优点和缺点。我喜欢用Java,不过并不是任何时候都用它,因为有些时候,我并不需要面向对象来完成我所需要的功能。这时我会用Python,几行代码就能完成,甚至用Shell~~Python,如同其他脚本语言,优点在于它能使你快速开发出程序的原型。有了原型,程序在你脑中的构架就会更加清晰。有了清晰的程序构架,如果真的有必要,你可以采用面向对象的思想开始设计你的整个系统。

Java语言里其实还缺少许多有趣的特性,而这些特性在类似Python这样的动态语言中就会体现出来。例如 方程的方程/高阶方程/Lambda Calculus,函数式编程,List Comprehension(Python特有的)。解除更多的编程语言,你的思想会慢慢的提高,不过也要注意不要产生混淆。更有趣的编程语言是Haskell,这们语言是一门完全的 函数式编程语言,即它的所有都是由函数所实现(它最有趣的一点就是:没有循环结构),呵呵,如果想了解,就去Google搜吧~~

不光是更多的编程语言,学习某种语言时所付带的知识也非常重要~~例如,当你学习写Web程序时,就会需要去了解HTTP,当然也会要去知道HTML、CSS、Javascript(不可能任何时候都让别人帮你制作网页吧,哈哈)。

学会搜索
信息检索其实是非常重要的一门知识,但我在大学的时候似乎没有被太重视,而且是一门选修课。如何知道关键词,是需要经验的,不过首先你必须清楚你的需求是什么。

理论知识
其实这个我觉得不需要多说,谁都知道理论知识的重要性。学计算机,首先就是看你数学功底如何。数学不好,稍微复杂一点的算法就不能理解。我研究生读的是人工智能,主攻自然语言处理。学到的无非还是数学,Bayes Network, Principal Component Analysis, Hidden Markov Model等等这些经典的模型、分析方法和算法都离不开深厚的数学功底。计算机基础的数学有高等数学,线性代数,概率统计,离散数学,组合数学,这些数学的知识不论是在实用中还是思维培养上都有很大的影响,所以必须学好~~

多写、多看
也许这是学编程最重要的一点。多写,就是让你多写代码;多看,就是让你多看资料。多写代码,很多大学生会想,我写什么。的确,刚开始是没什么好写,因为编程思想都没有形成,语法也不熟。给你们一条建议:如果想学编程,对编程感兴趣,不妨把大学的课程当成写程序的实践,用程序来写作业~~其实吧,也许也没那么多的时间,不过如果有,这样做还是不错的~~也不用拘泥于给课程写程序,只要是日常生活中你觉得需要解决的问题,而又能用程序解决,其实都可以作为写代码的机会。

多看,这是我想说的。四年大学下来,如果对计算机科学真的感兴趣,你看的东西绝对不比你人矮~~看的资料包括:计算机理论知识、各种教程、计算机新闻、计算机博客、别人的源代码、各种算法/类库/技巧。这么多的东西大学能看完?我说能,而且我认为很多人都这么做了(至少我这么做了,哈哈)。大学里边最好的地方是哪?图书馆(不论是找MM还是学习 :em09 )!

有一点,我认为也许也比较重要:看英文资料。这样,你可以获得更多的资讯,可以学习另一门语言。刚开始看英文资料的确有些痛苦。对于我来说,看英文的资料可能比较简单,因为我初中在英国渡过……但我还是看到我的几个大学朋友(本人一年前年在国内大学毕业,现在国外研究生毕业……)都在看英文资料,而且后来都非常顺畅。在这里,我推荐几本Java和Python书吧:
1. Java How to Program/Advanced Java How to Program(主要是它的练习不错)
2. Thinking in Java
3. Java Tools for Extreme Programming: Mastering Open Source Tools, Including Ant, JUnit, and Cactus
4. Java Design Patterns Applied
5. Refactoring to Patterns
6. Dive into Python(网上有)
7. Learning Python

其实好书实在太多,这里介绍的也只是我认为Java/Python这两门语言的书籍中对我有过帮助的书籍。至于网上的资料,那就更多了,在这里也介绍几个Java和Python相关的网站吧:
1. Google,哈哈,这可是百科全书,任何时候我需要什么东西都会用到
2. Apache Opensource Foundation (http://www.apache.org),许多优秀开源库/工具的家,例如Ant, Maven, Struts, Jakarta Commons, Velocity
3. The Serverside.com (http://www.theserverside.com),Java服务器端的网站,许多新闻,有一些好文章
4. Java.net (http://www.java.net),Java社区,博客不错,可以学到不少技巧
5. ActiveState Python (http://code.activestate.com/recipes/langs/python/),学习写Python代码的好地方,许多实用的例子
seenxu
帖子: 229
注册时间: 2008-04-26 7:47
来自: 德国 斯图加特

Re: 我对编程/计算机科学的一些看法和经验

#2

帖子 seenxu » 2008-12-17 6:51

顶python!

我觉得其实python初学看看官方的那个tutorial和网上的免费书就够了。
之后的提高就要多练习,多搜索,在有必要的时候找书来看来查。
欢迎访问斯图论坛 stu-cn.de
macrohard
帖子: 147
注册时间: 2008-02-20 9:43
来自: Wuhan

Re: 我对编程/计算机科学的一些看法和经验

#3

帖子 macrohard » 2008-12-17 14:06

谢谢楼主经验
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 我对编程/计算机科学的一些看法和经验

#4

帖子 xhy » 2008-12-17 15:22

acm.pku.edu.cn 做对500道题,算法差不多就入门了,代码量也上去了

实际工作中能用到的算法和数据结构要比acm上面的简单很多,主要是业务逻辑的处理

高深算法的研究和设计,一般有专门的研究部门从事,跟开发人员关系不大

有一群MIT和斯坦福博士们在专注的做这个事情,大公司都有研究院做基础研究

从事技术工作的不必要在这个上面关注太多,搞工程的和搞科学毕竟不同

C++之父,Java之父 跟 Knuth比,显然是不同风格的人物

设计实现一个编译器,并不需要复杂的数学基础,而写出TAOCP这样的神书,数学功底就很重要了


java,python,cpp等都是用来表达设计思想的语言,语法本身并不是很重要

会用就行了,重要的是理解各个特性设计成这个样子的原因,我们不是要成为“语言律师”

而是拿它们去解决一些问题,要写出优秀代码,计算机系统结构也要理解,汇编语言也要懂一些

设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 我对编程/计算机科学的一些看法和经验

#5

帖子 xhy » 2008-12-17 15:26

seenxu 写了:顶python!

我觉得其实python初学看看官方的那个tutorial和网上的免费书就够了。
之后的提高就要多练习,多搜索,在有必要的时候找书来看来查。
win版python的安装包带一个chm的文档,看看这个就很好了

python语法发展很快,不向前兼容的方式,使得掌握过多语法细节成为没有意义的事情

这点不像C++,向前兼容,语法几十年来改动也不是很大
目前负债150多万
头像
tregedie
帖子: 578
注册时间: 2008-11-29 22:56
来自: Guangdong Pharmaceutical University
联系:

Re: 我对编程/计算机科学的一些看法和经验

#6

帖子 tregedie » 2008-12-17 16:35

谢谢各位大牛的经验了~~现在我在学C++,可是我们一个多月后有一个计算机设计比赛,我想去参加,但是这么短的时间能不能写出一个像样的软件我完全没把握,迷茫啊,到底要不要去拼一拼呢? :em06
猪圈里的猪想着去解放全世界
hgshlg
帖子: 222
注册时间: 2007-08-30 14:45

Re: 我对编程/计算机科学的一些看法和经验

#7

帖子 hgshlg » 2008-12-17 16:39

tregedie 写了:谢谢各位大牛的经验了~~现在我在学C++,可是我们一个多月后有一个计算机设计比赛,我想去参加,但是这么短的时间能不能写出一个像样的软件我完全没把握,迷茫啊,到底要不要去拼一拼呢? :em06
想那么多干嘛?先拼了再想
头像
tregedie
帖子: 578
注册时间: 2008-11-29 22:56
来自: Guangdong Pharmaceutical University
联系:

Re: 我对编程/计算机科学的一些看法和经验

#8

帖子 tregedie » 2008-12-17 16:47

有什么建议?比如看什么书可以迅速增长功力?。。。感觉这些东西一定要慢慢来才可以
猪圈里的猪想着去解放全世界
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

Re: 我对编程/计算机科学的一些看法和经验

#9

帖子 anticlockwise » 2008-12-17 19:17

xhy 写了:acm.pku.edu.cn 做对500道题,算法差不多就入门了,代码量也上去了

实际工作中能用到的算法和数据结构要比acm上面的简单很多,主要是业务逻辑的处理

高深算法的研究和设计,一般有专门的研究部门从事,跟开发人员关系不大

有一群MIT和斯坦福博士们在专注的做这个事情,大公司都有研究院做基础研究

从事技术工作的不必要在这个上面关注太多,搞工程的和搞科学毕竟不同

C++之父,Java之父 跟 Knuth比,显然是不同风格的人物

设计实现一个编译器,并不需要复杂的数学基础,而写出TAOCP这样的神书,数学功底就很重要了


java,python,cpp等都是用来表达设计思想的语言,语法本身并不是很重要

会用就行了,重要的是理解各个特性设计成这个样子的原因,我们不是要成为“语言律师”

而是拿它们去解决一些问题,要写出优秀代码,计算机系统结构也要理解,汇编语言也要懂一些

设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
恩,的确说得不错,可能我目前在爱丁堡大学从事研究工作,所以会比较倾向研究领域的一些经验多一点。目前做的人工智能和自然语言处理项目涉及到的方法、算法都非常多,所以也会更看中这些东西,毕竟如果数学功底不好就无法胜任~~

感谢你的回帖,设计模式方面,的确忘了四人帮的那本原书了…… :em06
seenxu
帖子: 229
注册时间: 2008-04-26 7:47
来自: 德国 斯图加特

Re: 我对编程/计算机科学的一些看法和经验

#10

帖子 seenxu » 2008-12-17 19:49

xhy 写了:
设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
四人帮的这个书给个链接吧。多谢!
欢迎访问斯图论坛 stu-cn.de
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

Re: 我对编程/计算机科学的一些看法和经验

#11

帖子 anticlockwise » 2008-12-18 19:10

seenxu 写了:
xhy 写了:
设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
四人帮的这个书给个链接吧。多谢!
去电驴搜吧:Design Patterns: Elements of Reusable Object-Oriented Software
seenxu
帖子: 229
注册时间: 2008-04-26 7:47
来自: 德国 斯图加特

Re: 我对编程/计算机科学的一些看法和经验

#12

帖子 seenxu » 2008-12-18 19:40

anticlockwise 写了:
seenxu 写了:
xhy 写了:
设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
四人帮的这个书给个链接吧。多谢!
去电驴搜吧:Design Patterns: Elements of Reusable Object-Oriented Software
谢谢!
欢迎访问斯图论坛 stu-cn.de
allenkoo
帖子: 37
注册时间: 2008-09-25 17:26

Re: 我对编程/计算机科学的一些看法和经验

#13

帖子 allenkoo » 2008-12-23 17:09

顶。写的非常的好。
hgshlg
帖子: 222
注册时间: 2007-08-30 14:45

Re: 我对编程/计算机科学的一些看法和经验

#14

帖子 hgshlg » 2009-02-24 20:35

xhy 写了:acm.pku.edu.cn 做对500道题,算法差不多就入门了,代码量也上去了

实际工作中能用到的算法和数据结构要比acm上面的简单很多,主要是业务逻辑的处理

高深算法的研究和设计,一般有专门的研究部门从事,跟开发人员关系不大

有一群MIT和斯坦福博士们在专注的做这个事情,大公司都有研究院做基础研究

从事技术工作的不必要在这个上面关注太多,搞工程的和搞科学毕竟不同

C++之父,Java之父 跟 Knuth比,显然是不同风格的人物

设计实现一个编译器,并不需要复杂的数学基础,而写出TAOCP这样的神书,数学功底就很重要了


java,python,cpp等都是用来表达设计思想的语言,语法本身并不是很重要

会用就行了,重要的是理解各个特性设计成这个样子的原因,我们不是要成为“语言律师”

而是拿它们去解决一些问题,要写出优秀代码,计算机系统结构也要理解,汇编语言也要懂一些

设计模式可以看看四人帮的那套,200多页,浓缩的精华,至少每三个月拿出来通读一遍

结合自己做的项目,思考自己项目里哪些地方模式应用的比较好,哪些地方需要改进



中文版英文我觉得是无所谓的事情,重在理解思想,即使翻译得不好,自己心里清楚是什么意思就好
说的太好了 :em11
pypcjs
帖子: 61
注册时间: 2005-11-15 23:10

Re: 我对编程/计算机科学的一些看法和经验

#15

帖子 pypcjs » 2009-03-02 13:00

anticlockwise 写了:一直没能闲下心来写这个,不过还是想写写底层/基础的东西。我个人很喜欢Java和Python,所以写一些Java/Python相关的常用问答,然后以这两门语言展开吧。

关于CLASSPATH
看到论坛里有这样那样的关于CLASSPATH的问题。的确,我见过的关于Java的书有些都不会细讲Java的CLASSPATH,而CLASSPATH又恰恰是学Java时最需要了解的东西之一。所谓CLASSPATH,其实就是指向Java Class的路径。学过Java的人都知道Java的基本执行单元是类,而它是如何找到他所需要运行的这些类呢?无非就是通过CLASSPATH。

CLASSPATH可以是一个目录,目录中包含包结构的.class文件,也可以是某个jar文件。有人问,我下载了一个jar文件,应该放在哪里我才能够调用其中的类呢?随便,只要你的CLASSPATH指向了那个jar文件就行。

指定CLASSPATH的方法主要有两种:1. 设置CLASSPATH环境变量;2. 如果你只是想执行一次这个CLASSPATH里边的Java类,可以用java命令的-cp参数。

编程环境
关于编程环境,我一直认为刚开始学请不要用Eclipse,因为它臃肿、花哨(让你不认为你在学Java)。我认为刚开始就是应该用最简单的 文本编辑+命令行:
1. 这样你能知道程序是怎么样得到的,其实源程序只不过是一堆字符。我看到网上很多人(甚至研究生),当他们没有集成开发环境的时候,他们竟然不知道怎么样打开源程序!!
2. 你可以接触到命令行的世界。我的帖子是针对”计算机科学人员“,而”计算机科学人员“,我认为是必须知道命令行的。我不是说图形界面不好,但作为一个现在的计算机科学人士,试着懂得命令行的巧妙是很重要的。
3. 当你理解了Java程序是如何编辑和生成,并且理解了CLASSPATH,我建议你看看Ant (http://ant.apache.org)这个工具。这是一个能够让你编程效率提高的工具。当然,学习这个工具是需要更多的知识,例如XML,但这也是学习过程中的其中一步。
4. 除了Ant这个工具之外,还有Maven (http://maven.apache.org)。Maven的好处在于它能够帮你管理你项目中的依赖。例如你如果需要某一个Java类库,可以在你项目的Maven配置文件中说明,然后Maven会帮你自动从它的源中下载。

如果你觉得你已经熟悉了Java编程,那么你可以试着用用Eclipse之类的IDE。这些集成开发环境还是有他们的好处。例如Eclipse,即使编译+错误显示,代码格式化,自动导入等等。所以至今,即使我编辑代码使用的是Vim,但其实是用Vim作为编辑界面,和后端的Eclipse服务器通信,调用Eclipse的许多功能。我用的是一个叫Eclim的插件。至今,我还是喜欢写Ant文件(我有自己可以重用的Ant文件),喜欢用Vim编辑代码,然后用命令行来编译、调试和运行代码。

只学Java不行!
每个程序员都不会只知道一种语言,只知道用Java写代码不行~~只看或者只学Java相关的东西会使你的编程思想过于局限。编程语言非常多,应该多看看,多学学,知道你所用的语言的优点和缺点。我喜欢用Java,不过并不是任何时候都用它,因为有些时候,我并不需要面向对象来完成我所需要的功能。这时我会用Python,几行代码就能完成,甚至用Shell~~Python,如同其他脚本语言,优点在于它能使你快速开发出程序的原型。有了原型,程序在你脑中的构架就会更加清晰。有了清晰的程序构架,如果真的有必要,你可以采用面向对象的思想开始设计你的整个系统。

Java语言里其实还缺少许多有趣的特性,而这些特性在类似Python这样的动态语言中就会体现出来。例如 方程的方程/高阶方程/Lambda Calculus,函数式编程,List Comprehension(Python特有的)。解除更多的编程语言,你的思想会慢慢的提高,不过也要注意不要产生混淆。更有趣的编程语言是Haskell,这们语言是一门完全的 函数式编程语言,即它的所有都是由函数所实现(它最有趣的一点就是:没有循环结构),呵呵,如果想了解,就去Google搜吧~~

不光是更多的编程语言,学习某种语言时所付带的知识也非常重要~~例如,当你学习写Web程序时,就会需要去了解HTTP,当然也会要去知道HTML、CSS、Javascript(不可能任何时候都让别人帮你制作网页吧,哈哈)。

学会搜索
信息检索其实是非常重要的一门知识,但我在大学的时候似乎没有被太重视,而且是一门选修课。如何知道关键词,是需要经验的,不过首先你必须清楚你的需求是什么。

理论知识
其实这个我觉得不需要多说,谁都知道理论知识的重要性。学计算机,首先就是看你数学功底如何。数学不好,稍微复杂一点的算法就不能理解。我研究生读的是人工智能,主攻自然语言处理。学到的无非还是数学,Bayes Network, Principal Component Analysis, Hidden Markov Model等等这些经典的模型、分析方法和算法都离不开深厚的数学功底。计算机基础的数学有高等数学,线性代数,概率统计,离散数学,组合数学,这些数学的知识不论是在实用中还是思维培养上都有很大的影响,所以必须学好~~

多写、多看
也许这是学编程最重要的一点。多写,就是让你多写代码;多看,就是让你多看资料。多写代码,很多大学生会想,我写什么。的确,刚开始是没什么好写,因为编程思想都没有形成,语法也不熟。给你们一条建议:如果想学编程,对编程感兴趣,不妨把大学的课程当成写程序的实践,用程序来写作业~~其实吧,也许也没那么多的时间,不过如果有,这样做还是不错的~~也不用拘泥于给课程写程序,只要是日常生活中你觉得需要解决的问题,而又能用程序解决,其实都可以作为写代码的机会。

多看,这是我想说的。四年大学下来,如果对计算机科学真的感兴趣,你看的东西绝对不比你人矮~~看的资料包括:计算机理论知识、各种教程、计算机新闻、计算机博客、别人的源代码、各种算法/类库/技巧。这么多的东西大学能看完?我说能,而且我认为很多人都这么做了(至少我这么做了,哈哈)。大学里边最好的地方是哪?图书馆(不论是找MM还是学习 :em09 )!

有一点,我认为也许也比较重要:看英文资料。这样,你可以获得更多的资讯,可以学习另一门语言。刚开始看英文资料的确有些痛苦。对于我来说,看英文的资料可能比较简单,因为我初中在英国渡过……但我还是看到我的几个大学朋友(本人一年前年在国内大学毕业,现在国外研究生毕业……)都在看英文资料,而且后来都非常顺畅。在这里,我推荐几本Java和Python书吧:
1. Java How to Program/Advanced Java How to Program(主要是它的练习不错)
2. Thinking in Java
3. Java Tools for Extreme Programming: Mastering Open Source Tools, Including Ant, JUnit, and Cactus
4. Java Design Patterns Applied
5. Refactoring to Patterns
6. Dive into Python(网上有)
7. Learning Python

其实好书实在太多,这里介绍的也只是我认为Java/Python这两门语言的书籍中对我有过帮助的书籍。至于网上的资料,那就更多了,在这里也介绍几个Java和Python相关的网站吧:
1. Google,哈哈,这可是百科全书,任何时候我需要什么东西都会用到
2. Apache Opensource Foundation (http://www.apache.org),许多优秀开源库/工具的家,例如Ant, Maven, Struts, Jakarta Commons, Velocity
3. The Serverside.com (http://www.theserverside.com),Java服务器端的网站,许多新闻,有一些好文章
4. Java.net (http://www.java.net),Java社区,博客不错,可以学到不少技巧
5. ActiveState Python (http://code.activestate.com/recipes/langs/python/),学习写Python代码的好地方,许多实用的例子
楼主的总结实在是不敢恭维。
1、不使用eclipse这样的IDE工具,只使用文本编辑器。
照你这么说,那IBM跟其它公司的钱是白花了。
对于一件事来说,干完成它是它的最终目的,使用IDE可以节省好多时间,百益无一害。不要跟我说用文本编辑器写的helloworld程序跟用IDE写的helloworld程序牛B的多。
2、只学java不行。
java大而广,IO,网络,线程等等方面的知识。用java写了一个helloworld程序,而又使用python写了一个helloworld程序,又有啥好说的呢。

一来就经验,看得恶心。
回复