Posted on 2008-01-21 19:49
bluesky521 阅读(3976)
评论(58) 编辑 收藏 所属分类:
0.C#/ASP.NET
.Net很棒,但我迷失了方向
----Java为我打开了一扇窗
记得CSDN《程序员》杂志曾刊登过一篇文章,标题是“.Net很棒,但微软迷失了方向”,内容记不得了,但我现在发现:我迷失了方向!
学习和应用ASP.NET了多年,从一无所知到自以为是高手,我却逐渐不知道下一步的路该怎么走,身边没有高人指点,也不能经常泡在网上(工作原因),独自摸索,孤寂而迷茫。偶尔因为.Net项目的事情与同事wcy讨论Java与.Net的异同(同事以前做过Java的Web开发,但没有做过.Net,我却相反),虽然只涉及到了一些皮毛,但我觉得有一种豁然开朗的感觉,是时候要了解一下Java(或者说J2EE)了。
循着与同事讨论中涉及到的问题和思想,在网上初步了解了Struts、WebWork、Hibernate、Spring等(.Net目前也有一些类似的开源实现)知识,越看越有趣,后来不满足于看电子书了,在图书中心泡了一下午,精选了如下的Java书籍:
1.《Struts完全手册》(第二版)
2.《WebWork in Action 中文版》
3.《Spring in Action 中文版》
4.《Hibernate Quickly 中文版》
5.《J2EE快速开发》
6.《轻快的Java》
7.《Hibernate in Action》(这本书没找到L)
8.《Bitter Java 中文版》
9.《Spring框架高级编程》
10.《Enterprise Java with UML 中文版》
11.《精通EJB3.0》
12.《Eclipse3高级编程》
每一本都是经典,可是一口吃不下个胖子,再加上要出血(每本都不便宜呵),可是,可是还是冲动的把前6本买了下来,花了200多大元,乐滋滋的回家去了。
一本一本的研读(还没看多少呢),或许都是大师的作品吧,读起来如饮甘泉。联想起学习过的.Net知识,想起了那句古话----“师夷长技以制夷”,这或许是微软的初衷吧,呵呵。不过,虽然.Net这个学生在某些方面“青出于蓝而胜于蓝”,但必竟还年轻,显得有些功力不足。所以,我们不妨追随一下Java,去获取一些本源的东西。
Java向我们打开了一个思想的窗口,让我们看到更广阔的世界----如大雪过后的平原(外面的雪还在下着呢),纯净而美丽,坦荡而清澈,连空气都是自由的!
噢,我无意鼓吹Java,我也是一个.Net的信徒,我希望通过对Java思想的学习,开阔思维,走出迷茫,我相信这会使自己在技术(包括.Net)的应用上更上一个新台阶,同时又掌握了一种新的武器Java,何乐而不为呢?
如果你也在.Net中迷失了方向,那么不妨看看Java!
(如果你有更好的Java书单或Java电子书也请推荐给我,谢谢)
Feedback
貌似不少书比较重复,真的想学点东西直接看文档吧,Spring,Hibernate 这些东西都有中文文档的。
学JAVA,不如去学C++,很多东西你会豁然开朗的,再说.NET和JAVA差不多都是做WEB主打,所以学C++,可以做CS这方面的,这样就可以两手抓了。
@Share赖
.NET做cs程序一样的很优秀,不比c++差。
Java和.Net没那么鲜明的差别吧,不是有这么一句话吗:“高手要跨越语言!站在更抽象的角度去思考和解决问题!” - 后面这句算是我刚加的!:-)
Zealic 武断的说:楼主没有看过一些经典源码。套用一句话:根本就没有高手!但只要用心做…… 人人都是高手!!!
楼主涉及面太窄,做技术,忌浮躁
借助其他语言的思想来写程序。
比如明明是用vb6.0来写程序,但是思路是可以借鉴C++的。
比如明明是用asp.net来写程序,但是思路还是可以借鉴asp的。
比如明明是用.net来写程序,但是思路还是可以借鉴 java 的。
明明是数据库,那么就不能面向对象了吗?
明明是过程,就不能对象了吗?
非常理解,我也有这样的感觉,我现也对Java充满了兴趣。有人说过,.Net的程序员永远都只能做程序员,在我了解了Java后也有这样的想法.
呵呵
java方面的好书确实很多,
敏捷软件开发,重构…… 一大堆,
可我不认为楼主选的这基本很重要,软件开发重要的是思想
可楼主不过是从.net控件/框架跳到java的控件/框架而已,真的很重要吗?
@GuoYong.Che
那是看你用什么心态去写程序,与.net无关,.net也有很多好东西,你自己不学怪谁,顺便说一句,看java你更迷失,一堆东西看不完,无所适从。.net还真没到你没有东西可研究的地步。
编程序,不在乎用什么语言,.net 也好,JAVA 也罢,都能做出满足用户需求的产品来,关键是看你的编程思想,是否构件了?是否SOA了?。。。。个人觉得,一套源码,只要可读性好,只要可扩展性好?就是好代码。
@GuoYong.Che
做Java的可以搞市场,因为Java的吹牛皮比.NET在行多了...
国内那么多Java的政府项目,还不都是那些家伙搞的什么开源、安全、企业级、免费等等,结果项目花钱要比.NET高好几倍,什么玩艺!
不知道楼主n年后会不会又在javaeye写这样的文章:
JAVA很棒,但我迷失了方向
----.NET为我打开了一扇窗
不过,虽然.Net这个学生在某些方面“青出于蓝而胜于蓝”,但必竟还年轻,显得有些功力不足
---------------------------------------------------
总是有人这么说,却总是不知道功力不足在什么地方。。。
让我想起一个项目
系统架构的设计者是一位经验非常丰富的老java程序员。
因为从没做过.NET,就把实体类命名成为bean,把一般的逻辑处理模块叫做了service,结果当时就有所谓的.NET高手批这个东西不是用.NET技术做的。是用java技术在作.NET。然后还专门调查是不是因为利用了java技术会导致系统运行变慢。
汗啊~!
下次楼主先晒晒自己的项目再发中文章好么,让大家有个了解,到了什么程度就会迷失。
@刘荣华
导致系统变慢倒不一定会。但是如果让我用一种语言的编程习惯(包括命名方式等)来使用另一中语言,我就会非常难受。
你只不过看java嘛,多学些技术,面广一点是好事情。其实所有的东西都是一样的,你要看到事物的本质。
你用java写项目是在写项目,你用.net写项目也是在写项目;你用java做架构是在做架构,你用.net做架构还是在做架构,本质没区别,只是方式不同而已,人生就是在体验中学习,偶尔换换方式,可能会提高一下兴趣,也不错。
我最近都在看C\C++, OS, VM, 编译原理和汇编语言等方面的书了。
以前做过MVC的修改,但了解很有限。
拿最近在win平台下装trac和svn来说吧,svn的安装还好,挺简单,trac就没那么轻松了,要装一堆东西支持,而且装好以后只能使用现成的功能。想管理还得装插件。
再说VSS,管理代码很方便,但总有大大小小的毛病,你想改,没门。反观SVN,如果你有想法,完全可以手动修改。
谁是谁非很难说清楚,只能说看哪个能满足应用了。
不知楼主是否想表达类似的意思?
我是从.NET转向JAVA的,当时也是为了开阔思路,不想思想一起被禁锢在某一方面,从事JAVA开发已经有1年的时间,我从不鼓吹JAVA如何如何,.NET又如何如何,自己选择的就是对的,只要用心去学,JAVA的思想可以用在.NET上,反之亦然.
建议楼主有空看看《C#高级编程》,多看几遍,全理解了,全懂了,恭喜你,你达到了中级水平,等你到了能对CLR机制理解的非常透彻后,恭喜你,你成高手了。然后你再看架构,模式方面的东西吧。那些所谓的框架,能熟练运用顶多说明你只是一个熟练的程序员,仅此而已。
如果想研究这些框架的实现,那么看看确实能有好处,如果只是想使用就没意义了,我转到.net也是正好一年,感觉大部分的时间不是在学.net,而是一些各个开发框架共用的东西。
大家都是成年人了,楼主就不要哗众取宠了。学习芙蓉姐姐有什么好的。你所谓的迷失就是学会了骑自行车然后觉得去骑三轮车比较有前途。难道不能去学摩托车啊/你的那点自行车/三轮车能力不会被计算在车龄里边的。
我推荐你看《Thinking in Java》第四版,注重思想的经典。
--引用--------------------------------------------------
Goumh: 编程序,不在乎用什么语言,.net 也好,JAVA 也罢,都能做出满足用户需求的产品来,关键是看你的编程思想,是否构件了?是否SOA了?。。。。个人觉得,一套源码,只要可读性好,只要可扩展性好?就是好代码。
--------------------------------------------------------
我同意这位朋友的观点,,,我现在就是从事.net开发,觉得有很多可以研究的地方,不明白楼主为什么觉得迷茫了呢?
呵呵,方向是自己掌握的嘛。技术不能作为方向的导向。
我也是在学习.net以后一段时间发现是自己迷茫了,但看到博友 伍迷 的小菜系列文章我突然间发现我需要的是设计模式和开发的一些方法。其实,我觉得楼主和我一样也是在开发的方法上产生了迷茫。
个人认为Java在思想不比.Net先进,只是J出的时间长所以运用某些思想开发的东西比较多而已。
如果要追本朔原的话建议看Gof的设计模式,当然也极力推荐伍迷的《大话设计模式》(我目前正在看)。
另外,建议楼主理解多学习些真正核心的东西。输入到.Net的内核里去,你会发现有种豁然开朗的感觉。
--引用--------------------------------------------------
GuoYong.Che: 非常理解,我也有这样的感觉,我现也对Java充满了兴趣。有人说过,.Net的程序员永远都只能做程序员,在我了解了Java后也有这样的想法.
--------------------------------------------------------
貌似并非如此吧。Net一样可以做出精彩的框架,我个人感觉抛开一些高效及嵌入式场合不说。思想有多高.net就可以实现多远。
真的不愿意看到大家又把问题引入到Java和.Net孰优孰劣的问题.
--适合的技术是最好的技术。
我承认自己不是大家眼中的高手,我知道自己有太多东西不会.
但是我不会去把所有的东西学会,这是个团队协作的年代.
可是我们对待学习的态度是不是该平静一点,为什么不去多接触一点不一样的东西?
楼上有位朋友的网名是"有容乃大",很有深度的名字,不是吗?
java和.net都是工具.
如果你想一辈子做技术员.学java可能好点.
如果你想做一点出色的事情的话.我认为.java和.net没什么区别
技术只是工具.不是所有.
难得你花时间去掌握一种工具.但是你推翻了这一切.去掌握另外一种工具.
我觉得是很浪费时间的.(浪费之前学习那种工具的时间)
www.mycatmydog.com
@黑羽飘舞
个人认为Java在思想不比.Net先进,只是J出的时间长所以运用某些思想开发的东西比较多而已。
-------------------------
首先,谢谢指点.
也许正是这个原因才使我有了解Java的冲动.
以前没有仔细看过Java的书籍,那天在图书中心统盘浏览了一下Java和.NET的书,感觉Java在开发思想方面的书籍确实比较多.
而学习.Net的同学在达到一定程度又无法将设计模式这些概念很好的运用时,接触接触Java,我想不会是什么坏事情,呵呵.
《大话设计模式》--一定要看的.再次感谢@黑羽飘舞
我赞同博主的意见。
我从2000年底接触dotNet,那时候还是命令行的编译,叫NGWS.
2005年,因为工作机会学习了半年的Java。主要是J2EE,确实在设计模式,企业级应用上有新的收获,有些点上确实有豁然开朗的感觉。
学到了不少思想。
所以有机会看看Java方面的东西也不错,从另外一个角度审视自己的知识
--我现在还是在做.Net:);而且看样子也会长时间做下去
Java很好,很强大:)
不知道为什么会有那么多程序员执着于.net与Java的主义之争,有必要那么狭隘吗?
java 确实比较能培养人从大局观出发。
许多.net ,c++的“高手”,无非就是些对底层比较了解,然后对语法的阴暗面比较熟悉的,这种所谓的”玩家"高手,而对于软件方面却不受重视。这就是为何c语言的使用者常常鄙视他们的原因,c语言虽然是传统的,但是模块化的设计思想还是基于从软件的角度出发去解决问题。所谓高手并不应该因为底层和细节就称之为高手,真的高手无不是从大局观把握事物的人。
在说什么高手的时候,不要亮出什么.net虚拟机, 汇编优化,编译器之类的东西,而应该说说你怎样去分析解决问题吧。
java其实更多让我们迷惑的东西?.net入门简单,研究起来就难咯
@bluesky
本来不打算说什么, 井底之蛙将来自己总会跳出去的, 不过:
"可是我们对待学习的态度是不是该平静一点,为什么不去多接触一点不一样的东西?
楼上有位朋友的网名是"有容乃大",很有深度的名字,不是吗? "
你这句话就太TM让人恶心了. 别人说那些知识用不着非得Java才能学, 都是"不平静", 不能去"多接触一点不一样的东西"? 世界上就你一人"有深度"? 说别人之前, 想想自己的言论吧.
我们做一个推论:
1. 你说你在.NET领域就掌握不了设计模式之类, 在Java领域能更好的掌握, 或者如LS某人所说, 用Java才能培养更好的大局观.
2. 而其他人用不着非得局限在Java圈子就能学到东西.
=> 往好了说, 是别人至少适应.NET, 用.NET就能学到大局观, 运用好设计模式; 忘坏了说, 是某些人适应能力比别人弱, 是这些人(号称在两门共性大于异性的语言里只有另外一门语言能学到东西的人)能力差的表现.
除此之外, 其它还有什么其他推论吗?
深度在于你做过什么,不是你用过什么
最顶不顺的是楼上有人说“做.NET程序员的,永远只能做程序员”,这不是大瞎话吗
如果 你有時間。學JAVA還是有好處的。對于那些說重點就是思想的人,那是因為他想以后當項目經理。 不是人人都能成為項目經理的。
支持樓主學習。
如果是我的話。我會學C++,呵呵
@黑羽飘舞
《大话设计模式》真是一本好书,深入浅出,棒!(谢谢黑羽飘舞了)