工作一年了,感到技术该更新了,可一时迷茫不知从何做起
07年大三进的这家公司实习,08年毕业留在公司,至今在公司两年了。刚进公司那会只会写vb、asp,公司开发用c#,自己自学了一个月,能帮他们做些边边角角的工作。后来公司让我帮美工做Demo,我就帮着做,期间接触了JavaScript比较喜欢,一直坚持学习至今,现在我几乎负责公司所有的JS脚本。老实说自己JS水平也很一般但公司没人会所以只能我来做了.学习两个月后公司换Java平台使用普元的Eos5.6做开发,同事教我用Eclipse,并让我写写简单JspTag,让我看看工厂模式等常用的设计模式,也学会了使用反射、正则表达式、在Java中执行javascript脚本,因为公司用Eos不熟悉SSH这些流行框架只看过几段Struts2源码写过几个HelowWorld程序,感觉不是很难。
现在的情况是我能在Google的帮助下完成他们交给我的工作,但是由于是自己自学的,好多东西都路子比较野,知识也不扎实
好多时候都是看论坛别人说道一个名词才知道java里边还有这个。而且好多东西写得快忘得也快,隔写天再拾起来还需要重新Google下相关的知识。
总的来说,自己还是有些自学能力的,可是J2EE太庞大了,有心想系统补充下知识但一时不知道从那看起。论坛中肯定不乏有资历有经验的前辈,想听听大家的建议。
[解决办法]
我小弟一个,经验就不谈了,帮顶吧!
[解决办法]
楼主你的技术分好高啊
[解决办法]
学技术不如学规范,学规范不如学哲理。
最后的技术很简单。就像开飞机在地球上飞,最后还是会回到起点。
[解决办法]
......这样的话感觉你基础不扎实,建议把c或者c++基础搞透彻,然后再去学习下java基础。
什么开源框架先别看,等你觉得基础弄的差不多了再抽时间学下开源的框架。
还有就是学什么技术要看公司用什么,最好是学点大多数公司都用的,那种比较偏的就别太
花时间去看,这样的话即可用于工作,对自己以后跳槽也有帮助。
[解决办法]
1.如果你喜欢就去做,java需要基本功所以这个做需要付出很多
2.如果你决定做了,就摆好心态从基础学起(java方面有很多基础的书籍)
3.具体怎么样做呢?每天坚持写实例,坚持看这方面的资料 这个坚持是需要真正的时间考验的
4.顺便提下普元的EOS我也用过 呵呵
[解决办法]
我非常支持楼主的话--好多东西都路子比较野,知识也不扎实,而且好多东西写得快忘得也快,隔写天再拾起来还需要重新Google下相关的知识!
[解决办法]
不多说,我也在学呢
[解决办法]
学习!
[解决办法]
惭愧,楼主比我强,一个前辈对我说,技术发展方向有两个:一个是深度,一个是广度。我个人认为,首先要有一定的广度,然后对自己感兴趣或者能把握住的方向要研究的深些。会些别人不会的,才能有自己的价值吧。学习在某一阶段不能贪多吧。
[解决办法]
看你的表达来说,你能力还是不错的,
学习语言关键在于思想,javascript和java和C其实关键在于能实现什么样的东西
语言本身语法上很类似,往往精通一门语言的人学习什么都快的原因是因为达到精通的人思想也很深刻,学什么都快得多!
只要你有信心,结合你现在的基础来看,学习j2ee没有问题!
[解决办法]
自学成才
[解决办法]
如果您的js已经有很多经验的话,我觉得还是深入学js。其实现在纯的js程序员肯定是有发展的。现在的项目越来越注重用户的交互和体验。所以前台的程序员还是比较有前途的。当然还要一起把Ajax学了
[解决办法]
JAVA学习有三个方面:java se ,java me, java ee
1.“而且好多东西写得快忘得也快,隔写天再拾起来还需要重新Google下相关的知识。”
-----把语法过一遍,重点是继承 ,封装,多态 ,线程 建立面向对象的思想,稳固对其了解。
2.先学基于JSP的web的开发,包含JSP+SELVLET+JAVABENA掌握MVC模式
3.“SSH这些流行框架只看过几段Struts2源码写过几个HelowWorld程序,感觉不是很难。 ”
----SSH三个框架还是蛮强大的,但如果掌握了 将对你开发带来很大的便利 和效率。
[解决办法]
俺也是刚出来java开发不久啊。。。。java功能强大。。。不是一般的强。。学不完啊。。。太多 了。。楼主慢慢来吧。从简单的来。。
[解决办法]
顶Ajax,JavaScript学深了也很牛的。
套想系统学Java就买本Java基础的书,其实很简单的,你应该学很快。学完了就可以看J2ee方向的开发,先学习servlet+jsp,然后看看struts1,和struts2.熟悉了就可以研究struts:1or2 + hibernate3.1 + spring2.0的整合开发了。
[解决办法]
最不喜欢人家一说到基础就建议去啃c,c++,中国程序员的生命期有多长大家心里都知道,选择自己的才是对的
[解决办法]
JAVA博大精深,也在学习中。。。
------解决方案--------------------
我不迷茫 就是感觉力不从心 尤其刚看到 TopCoder 高中生夺冠的新闻 无限感慨啊...
[解决办法]
up
[解决办法]
还是用到啥学啥吧,刻意的去学到时候也会忘
[解决办法]
小弟 是一直慢慢的学习java+JSP 很多时候不用 就忘得也快
关键是 工作里面没有用到 很郁闷
[解决办法]
送你一篇我正在写的一本电子书的第一张吧,仅供参考
序言言:步履江湖观大略
――从宏观上了解Web应用程序
现实因素是改变一切的根源――王兴刚。
进入九十年代中后期,随着互联网的兴起,人们强烈希望应用程序的使用,能够像浏览网页一样愉快。而传统的C/S结构应用程序,要求每一个使用者,必须在自己的计算机上安装一个客户端软件,没有这个软件,就没有办法访问位于服务器上的应用程序。因此C/S结构的笨拙,与广大人民群众日以增长的简单需求之间,产生了深刻的现形矛盾,因此,也就无法适应这个时代的历练,从而,渐渐地退出了程序开发的历史舞台。
应用程序与C/S结构一揖而别,转而投向了B/S的怀抱。应用程序的开发迎来了Web时代。作为Web应用程序领头雁的java,最开始的web应用,是以Applet(小应用程序)的方式出现的。当时的应用形式是,在服务器上发布的小应用程序,当被浏览器访问时,被下载到客户的计算机上运行。这就造成了安全上的隐患。比如,如果Applet(小应用程序)内部包含有数据库的Url,用户名,密码等敏感信息,当Applet被下载到本地以后,随便找个反编译工具,很容易地就能获取到Applet的原代码,甚至比一些垃圾程序员书写的程序更符合编码规范。当此之时,只要不是傻子都能看明白数据库的连接信息。这就等于告诉小偷:“我刚取了50万银子在家里放着呢,家里没有人,门没有锁,我也没有养狗的习惯!”。如果小偷不到你家去做客,那是他人品有问题。
仔细分析Applet的不安全性,我们发现,原因在于Applet是在客户端运行的。基于安全性考虑,人们希望java程序能从客户端走向服务器端。程序在服务器上运行,不被下载到客户端计算机上。此时出现的第一门技术是Servlet,它很好地满足了人们对java安全性的要求。但是接下来的问题是,由于Servlet对所有用于客户端显示的网页代码,都要在服务器端完成,也就是Servlet不但要完成服务器端流程的调度,还要负责页面的实现,而原本简洁的Html一旦在Servlet内部完成,就变得极其繁琐,这给开发过程带来了新的麻烦,严重影响了开发效率,从而影响了Servlet的大面积推广使用。
此后不久,Sun也终于认识到自己有点太CNN了,于是出于简化Servlet应用的目的,推出了新一代Web应用技术规范,这就是JSP规范。JSP通过在html内部嵌入java代码的方式,很好的解决了Servlet对页面显示的实现过于复杂这个难题,让web程序开发进入了一个崭新的时代。然而,倒霉的Sun公司又陷入了新的问题之中。什么问题哪,我们需要好好地思考软件开发过程中的“逻辑问题”。
就个人观点而言,一个web应用程序应该包括三个方面的逻辑,这就是:显示逻辑――负责页面的展现;控制逻辑――负责流程的调度,也就是调用哪个类进行数据处理,数据运算,调用哪个页面,将运算生成的数据显示出来。业务逻辑――这里指的就是复杂繁琐的商业运算和数据处理了。
通过对JSP的分析,我们发现,其Html部分应该负责的是页面显示的内容,属于显示逻辑的范畴,而java脚本,主要负责的是数据运算以及数据处理,应该是属于业务逻辑的范畴。而Jsp没有对这两种逻辑进行很好的划分,从而造成显示逻辑与业务逻辑交织在了一起(这就是所谓的耦合度过高),给程序的测试过程以及后期的维护造成了很大的不便。于是,Sun公司的伟大程序员们,开始伴随着使用者的抱怨和缭绕的烟雾,进行了深刻且细腻的思考。
后来有一天,当一群程序员在苹果树下放松神经的时候,忽然间,来了一阵大风,满树的苹果像冰雹一样砸到了他们的脑袋上,也砸开了他们的视野,新的应用方式诞生了,从此真正开始了java在web应用程序开发过程中的辉煌之旅,并且一直到今天,依然笑傲江湖,环球不败!那么他们思考的是什么哪?
他们发现,针对三种逻辑,JSP的强项在于页面显示,可以用于处理显示逻辑;Servlet的强项是流程调度,可以将JSP中大量用于流程调度的语句提取出来,转而交给Servlet来处理,这样控制逻辑的问题也很好地解决了;那么业务逻辑怎么办哪?JavaBean除了用来封装数据,也可以有方法的啊,为什么不用JavaBean的方法来处理业务逻辑哪,没有理由啊!那就用呗。于是乎,业务逻辑的处理问题,也找到了合适的解决方案(后来,随着编程思想和变成艺术的提高,JavaBean与普通java类之间的关系日渐模糊,人们也更提倡使用没有任何规范的普通java类来处理业务逻辑,并且给他起了个名字,以便更好地提倡这种思想,这就是POJO――普通java类)。于是三种逻辑,各得其所。此后,围绕三种逻辑,在不同复杂程度的业务系统中的应用,产生了两种模式:Model1(JSP+JavaBean)和Model2(JSP+Servlet+JavaBean)。Model1比较适合于小规模的系统,比如网站等。而针对复杂的企业级应用(比如金融系统,社保系统等),Sun公司推荐使用Model2。
Model2出现以后,人们于实际应用过程中发现,其中的jsp关注的是页面显示,Servlet关注的是流程控制,而JavaBean关注的是业务处理。这与传统的MVC非常类似,传统的MVC包括了三个方面的内容,模型,视图,控制器。模型:关注数据处理;视图:关注数据显示和报表处理;控制器:负责协调模型和视图。因此,人们开始认为,Model2是基于MVC的。就个人观点而言,如果只是进行网站的开发,还是Model1方便。原因是什么哪?Model2有些复杂。
随着现代社会的发展,商业规则的复杂程度,已经超过了人们的想象。而刁瞒的客户是不管这些的,他们给我们的时间总量是固定的。而软件公司在与客户相处的过程中始终处于弱势地位,是没有太多发言权的,原因很简单,因为公司要盈利,我们要赚客户的钱!
客户限定了时间,也就限定了项目的周期。针对一个复杂的系统,在总量一定的情况下,我们总是在寻求技术时间与业务设计时间的最佳配比。在项目周期固定的情况下,技术时间与业务设计时间是成反比的。两者此消彼长,如果用于技术处理的时间长了,那么业务设计的时间必然就要缩短,同理,如果用于业务处理的时间要增加,就必须缩短技术处理的时间。而在两者的选择过程中,我们不得不选择缩短技术时间,原因很简单,业务规则越来越麻烦,客户并不跟你摆事实,讲道理。而Model2,虽然很好地解决了三种逻辑的划分,可以应用于企业应用程序开发,但是过于繁琐,实现的手法过于粗略。好多基础性的服务没有为我们提供。比如,请求的分发,请求过程中数据的获取等等。于是人们希望应用新的方式替换Model2,或是简化Model2的应用。基于此,大量基于Model2的web框架,如雨后春笋般诞生出来。其中最优秀的就是Struts1和WebWork。后来,两者实现了新的融合,形成了Struts2。由于他们都是基于Model2的,而Model2是基于MVC的,于是人们认为,他们都是基于MVC思想而产生的。
Struts1是第一个成熟的基于MVC的web框架。他的出现使Model2的应用得到了大大的简化,我们将在此后的章节中学习它,并且会发现他的简洁和优美。Struts1简化了Model2的应用,但是只是解决了企业级应用系统的Web层问题。那么企业应用系统还有那些层哪,为什么要有这些层哪,这些层又是用什么方式解决更好哪?
MVC的出现,到今天,已经有40年的历史了,面对复杂的现代商业规则,他已经有些苍老,而用它来解决今天的问题,就好像把秦始皇从地下扣出来,然后给他一个遥控器,说一句:“哥们,把电视机闭了!”。估计这哥们肯定龙颜大怒,回敬你一句:“拖出去,毙了!”。那么既然MVC苍老了,谁还年富力强哪,答案就是分层体系架构!
下面我们来看看贯穿后继章节的分层思想。
一个好的应用系统,一般都是基于分层体系结构来完成的。分层体系结构大致如下图所示:
其中的显示层,对应于MVC的视图(V),控制层对应的是MVC的控制器(C),在后继的章节中,我们将其合并到一起,统称Web层(也有的书上称为展示层)。而Struts只是解决了这里的WEB层的技术实现。其它层又是些什么哪,应用那些技术来实现哪?
随着商业规则复杂度的增加,数据处理也日渐繁琐,而数据库技术的诞生很好地解决了这个问题。可以说,今天的应用程序开发,基本上是离不开数据库的,无论是各种运算,处理,最后都要把数据存储到数据库中,以便于将来查询,或是进一步对数据进行分析和加工。这样程序设计的最终目的,也就转换为对数据库的检索,分析和更新。也就是最终都要把内存中的数据保存到某种数据库中,以便长久存储。这就是所谓的数据持久化。而数据持久层就是解决持久化的一个专用的系统逻辑层。目前来说,应用最为广泛的是Hibernate,他是事实上的数据持久化标准。还有,后继兴起的EJB3技术,也属于此范畴,其前途也是不可限量的。
当持久层技术出现以后,它与原先的模型是什么关系,在模型内部,它处于什么地位,怎么应用持久化技术,这些在原始的MVC中都没有给出明确的定义。这也是MVC思想过时的一个原因,它的模型概念过粗,过于笼统。而分层体系架构,对此作出了明确的定义。持久层,只负责解决数据的持久化(数据持久化对象的增删改查)问题,而为了更好地应用持久层,分层思想引入了业务逻辑层。这一层,一般而言就是普通的java类(POJO),它负责组合多个持久化组件,完成复杂的商业处理(比如利息计算,帐户结转,银行转帐等)。
在一个软件系统中,经常会有一些提供基础服务的类,比如GUID码的生成,MD5加密,四舍五入的处理,电子邮件的发送等等。我们发现他们为具体的业务处理提供了基础性的服务,但是,又不专署于任何一种特定的业务逻辑。为此,分层体系结构将其单独抽象出来,形成了系统服务层。这一层,一般而言,我们也应用普通Java类(POJO)来进行处理。
基于上述分析,我们可以看到,分层体系结构中,一般而言包括四个宏观的逻辑层次,分别是Web层,业务逻辑层,持久层和系统服务层。同时,分层体系结构还定义了它们的强制性调度关系:“同层和相邻层可以相互访问,不允许夸层访问”。比如,控制层,不能跨越业务逻辑层,直接访问持久层。
当分层体系思想出现以后,软件开发系统中的各个组件都有了合适的位置。我们可以高枕无忧地大步前行了。是不是真的这样哪?实践是检验一切的唯一标准,现实的因素决定一切技术和思维的生命周期!
在实际应用过程中,新的问题又出现了。
在完成复杂功能的同时,我们一直在追求着已有功能实现(组件)的复用。而复用的最佳途径是通过已有组件的组合,产生新的功能点。这就不可避免地涉及到组件之间的调用方式问题。传统的组件调用方式,是由应用程序自身管理组件之间的调用和组合,从而造成了组件之间的高耦合,给组件的独立测试和整个系统的后期维护带来了很大麻烦,使软件质量的提高一如镜花水月,无法真正地从技术上实现。同时,在面向对象思想的应用过程中,伟大的程序员们发现,面向对象只是解决了事物之间纵向的一脉相承,而对于诸如系统日志,安全支撑,事务管理等贯穿于整个系统所有功能点的横向公共性功能,没有给出很好的解决方案。为了解决上述问题,一个新的框架应运而生了,它就是Spring。在Spring中,通过DI(依赖注入)思想,很好地解决了组件之间的调度问题。同时,引入AOP(面向切面编程)很好地解决了公共性功能的处理问题。从而给软件开发,带来了一场深刻的,触及灵魂的革命,软件行业,迎来了真正的春天。
在本书的知识体系中,对于分层体系架构的实现,WEB层将采用Struts1.x,持久层将采用Hibernate。而对于整个架构各个组件之间的宏观调度和事务处理,将采用Spring2.x来完成。这就是目前比较流行的SSH整合架构设计。
上述对于数据持久化,分层体系结构,依赖注入等的论述,都只是简单的介绍,目的是让读者能从宏观上对分层体系结构及其SSH实现有个粗浅的了解,在后继的章节中,本书将会进行详细的阐述。不必着急,那样吃不了热豆腐,坚持下去,一切都会好起来。毕竟,人,活着就有希望!
事物都在经历一个从无到有,从弱到强的过程,受实践因素的影响,我们的认识总是停留在一定的局限上的,随着实践的深入,人们的编程思想和编程技术在不断成熟和发展,新的应用技术和方法也会逐步产生,从这个角度来说,浩茫广宇,存在着无数的新思想和新技术等待我们去发现和实现。而程序员的乐趣也正在于此:可以不断地接触新奇的世界,新奇的思想。胸含广宇,气象万千!
最后,演绎林锐先生的一段话,作为本篇的结束:
让我们高举JAVA主义、软件工程思想的伟大旗帜,紧密团结在以Sun公司为核心的软件巨头周围,沿着比尔·盖茨先生的生财之道,不分白天黑夜地吐血编程,把建设有中国特色软件产业的伟大事业,全面推向21世纪。构建和谐社会,享受大康人生!
[解决办法]
J2EE觉得看看JSP可以看看
其它的框架我觉得没必要用起来在说吧
主要还是基础知识LZ有编程经验看看 JAVA编程思想
[解决办法]
看,光看不练,会觉得简单。自然印象不深 忘得快。
我学习过程都是直接写代码,写了才去看理论。
那些一本本的书,可以砸死人的,看懂 看完 看熟,都猴年马月了
[解决办法]
如果要学Java 的话, 那么就得先从 jsp/serlvet 学期喽,
还有数据库方面,做JAVA 用微软数据库的很少了。你可以去看下mysql ,oracle db2。
如果以后打算去做J2EE的话,那么Spring+strurt2+Heibernate, JSF EJB 可要去看了。
富客户端可以去看下 Flex,EXT
另外 ajax 的话 JQuery, Propertype, DOJO,DWR,
学习是有一个过程,一定要循序渐进,切不可贪多吃不了。
[解决办法]
帮顶
[解决办法]
其实我也是这么过来的,大学什么都没怎么学,学了c、c++、汇编等,都没什么用,找了工作写J2EE和c#,现在.net也可以写了
,对于那个框架其实也就那样(其实我也很努力,呵呵),只要脑子不笨就能很快掌握(他妈的不就MVC么),不过要掌握原理
就得下狠功夫
[解决办法]
其实已经挺好的了,不过接下来应该由泛入精了,
具体选择哪个突破点,还是根据自己的工作情况和兴趣来决定吧。
[解决办法]
保持一个正常的心态,持续学习的习惯。兴趣是最好的老师,总是能按公司的要求完成需求,是自己的学习能力的体现。但同时让别人牵着自己走则是懒惰的表现了。在众多的技术书籍中无所适从,就随便挑出几本随便翻翻,买自己看的进去,觉得最有收获的那本。
任何公司的应用技术都只是沧海一粟,抓住最基本的知识,保持求知欲,就自然能无往而不利!
[解决办法]
jF
[解决办法]
我和你一样,刚毕业,什么东西都得学,祝你成功!
[解决办法]
多学点知识,你比别人就高了点。。。。。。。。。
[解决办法]
只靠自己进步真有点慢~
[解决办法]
java
[解决办法]
帮顶,接分
[解决办法]
欧洲某条街上有一家修车铺Z
来了一个中国人A,他也开一家修车铺
来了一个美国人B,开了个品牌配件公司
来了一个犹太人C,开一家餐馆
后来,
A经营不下去,就打价格战。。。。。。。。。
B成了Z的供应商
C为AB的客户和AB员工服务
你就去悟吧
等到你学会了广泛的大家在用的 你是找不到工作的!
[解决办法]
先弄本JAVA的基础教程看看
啃完一本基础的书籍,再慢慢的做小型项目
有了2万行的代码量,基本找个工作就不太困难了
[解决办法]
考学吧……同学……
否则就不要怨社会了……
[解决办法]
[解决办法]
也觉得现在改学的太多了 打算Java基础再看一遍!!
之后js 模式什么的也从基础看!打扎实了什么都不怕
边工作边学时间自然紧 但要加油 年轻也就这几年
[解决办法]
up
[解决办法]
深思 学习
[解决办法]
真的是要挤出时间来学习的,可是程序这玩儿样是学业学不完的,迷茫啊。
[解决办法]