分享+散分
lcf 2013-07-11 03:08:29 论坛里很多新手提问如何学习Java,我觉得不如开个帖子大家分享一下你是怎么入门的,给新人做参考。
分享内容大概包括几点:
* 描述一下你自己觉得最牛逼的项目是什么样的,多个也可以
* 从开始到入门,看了哪些资料,都教会了你什么东西?
* 你走过哪些弯路,都有什么教训?
我先自己来。
我公司是做交易系统的,所以最牛逼的项目自然是交易系统了。它要求高稳定性,低延迟。总之一切都要快,要正确。涉及到很多方面的优化,最主要的是多线程管理、线程同步。然后还有JVM的预热处理(性能可比未预热高数万甚至数十万倍)。然后,交易系统是一个复杂的系统,应用了各种设计模式。
一开始主要是学校的一门数据库的课要求做一个Java项目,要有界面,然后胡乱拿Eclipse堆了一个出来。后来差不多就是研究生毕业开始找工作的时候,要面试,就看了大半本SCJP6的教材,还有一本Effective Java,基本上面试都能秒杀了。SCJP的教材很系统地讲解了Java的基础,继承、接口等得原理。现在零星看一些Java Concurrency in Practice,但发现每一页都能学到新东西。比如昨天就学了管理listener应该用CopyOnWriteArrayList,而我之前的做法是用ArrayList,然后add/remove的时候是一个临时操作,把要添加、删除的listner放进另外的List里,在notify之前处理他们。这样来防止ConcurrentModificationException。
走的弯路大概是大学刚毕业不久开始尝试创业,写网站,买了一些SSH的书来看,并且很傲慢地认为大学时期做的那个数据库项目已经是Java的全部。然后看SSH的教程的时候就跟SSH本身一样云里雾里。而现在往回看,之前学的那些Swing根本无足轻重,倒是读到的SCJP6和Effective Java的那些东西现在仍然每天在用。所以给初学者的建议,就是如果你有一定的其他语言的编程基础,从SCJP之类的教程开始,不然就从编程本身开始,理解函数、循环、递归等概念(不一定要用Java),再来看Java。而学Java,千万别从Swing开始,那简直是浪费生命。
只接受最多10个认真的回复,每个20分,是否认真我来定。一人独得200分也有可能。