ASP.net程序员有必要转向Java Web吗?

徐牛
  • 239

现在在做WPF桌面开发,想离开北京。家乡没有类似工作,加上Web逐渐变成一种趋势,所以想转做Web开发。

以前学C#觉得C#比Java设计精良多了,但是几年下来似乎语言优势对于实际工作来说似乎连锦上添花都算不上。最近国内似乎国内很多大公司都从.Net转向Java。而且似乎开源在国内也越来越热。对.NET越来越没归属感。国内虽然还有些网站用的是.NET,但是大多都是web form开发的,感觉真的不适合学习。.NET中的MVC,Entity Framework,Unity,SignalR,这些技术似乎都做的不错,但是感觉市场上没用,怕学了浪费时间。每天看到某某公司开源,MySql又怎么怎么样了,JAVA8怎么怎么样了心里总是戈登一下。不知道这是个人情绪作祟,还是很多人确实要面对的选择。以前做桌面开发就算弹出swing发布新版本啦,QT被Nokia收购了我都会笑笑,毕竟客户端还是MFC和winform wpf的天下。

周五看了点淘宝去IOE,还有《探索GAE背后的奥秘》其中涉及到Mysql部分又让我心中一跳。正好也看到了《ClownFish:比手写代码还快的通用数据访问层》想到要做ASP还得学习ADO.NET,而CoolShell中好像一篇博客提到过说自己浪费了很多时间学习ADO.NET。纠结了一晚上,好不容易决定要投入开源,结果发现很多教程都是讲的Oracle,我去,你不是开源吗,不是免费吗。你丫的用Oracle又是什么事啊。

现在学会了点ASP.NET MVC,会用Entity Framework,了解NUnit。想更加深入的学习ASP方面的知识。却又怕市场上没用。虽然是为了工作但是主要还是提升自己编码实力,不知道Java在这方面是否优势更大?还有就当前市场是否对开源看得越来越重了。?

现在想着自己在ASP.NET上投入的时间还不是很多,要是转其他语言就趁现在。想请给位个点意见。当然咱说的意见是接地气的,说什么学什么都一样,只要深入就有前途,这个还是有点虚。毕竟咱现在在十字路口,总要选一个更好的不是。

至于Python,Go之类的新语言不打算考虑,因为大学期间排行前十的linux发行版都用过,自学过Erlang,Python,Ruby,Django,MFC/C++。工作之后又学过WPF/C#,QT/c++,clojure,RoR,ASP.NET。当时年轻整天流连于VIM,Emacs找些奇淫技巧。换各种Shell,高亮方案(bash,zsh)。捣鼓各种window(Gnome,Kde,Flubox)。却没学过数据库……现在用VS2010做WPF开发,虽然说学各种语言其实只是看过相关的一本书,但也让我明白如果不常用这些内容只会穿肠过。另一个原因就是现在要逃离北京,二线城市这些语言真找不到工作……现在晚上和周末时间都在看找到工作的web开发,这些真是没时间啊。

我知道我是个比较纠结的人,可能本文多半在发牢骚,不过希望宽恕我这新人吧,毕竟这帖子我是不敢发到CSDN或者博客园的。

回复
阅读 16.8k
3 个回答

1.推荐阅读蔡学镛写的微信《职场三阶段学习方案》
2.个人认为更重要的是理解整条线:从前端到(html\css\js)到一些简单的业务逻辑开发技术(C#\java)以及连接它们的架构(MVC、MVVM)或者技术解决方案(asp.net等),再到backend(azure等)
3.如果有相关经验,掌握一门新语言感觉不是很难得事情,而且这通常不能构成核心竞争力。

有点意思
  • 4
新手上路,请多包涵

精力充裕的情况下往Java发展是很好的。其实只要参考这些技术背后擅长的领域就知道未来还有很多路要走,不仅仅是在Web领域。
Java可以做c#不能做的事情,比如大数据,互联网之类的解决方案,C# 还没法做。Java现在也在发展Grails等更易用的Web技术,只要你会ROR,Grails不算难,反过来也是。这样的途径下其实可以掌握很多语言和技能。

个人认为ASP.NET程序员是可以学习多种语言技术傍身的。对未来有好处没坏处。

我感觉你学的有点杂,最终的结果可能就是什么都知道一点,但什么都学不好,跟别人比没有啥亮点和优势。
建议你学习一些和语言无关的通用的技术,比如:数据结构和算法,网络,操作系统,数据库,分布式系统。。。
找准你的兴趣点,坚持学下去,其他的东西项目中需要什么就学什么